Changelog
Contents
- 1 Past Entries:
- 2 2011 (version 0.5a from here on)
- 3 2012
- 4 2013
- 4.1 January
- 4.2 February
- 4.3 April
- 4.4 June
- 4.5 October
- 4.6 December
- 4.6.1 Project-Wide
- 4.6.2 Battle Processing
- 4.6.3 Database
- 4.6.4 Data Placeholder
- 4.6.5 Data System
- 4.6.6 Defense
- 4.6.7 Entity
- 4.6.8 Game
- 4.6.9 Hostile
- 4.6.10 Message Processing
- 4.6.11 Mission
- 4.6.12 Player
- 4.6.13 Planet
- 4.6.14 Planet Processing
- 4.6.15 Relation
- 4.6.16 S. Inventory
- 4.6.17 Shield
- 4.6.18 Ship
- 4.6.19 Station
- 4.6.20 Trade
- 4.6.21 Weapon
- 4.6.22 Wingman
- 5 2014
- 5.1 January
- 5.1.1 Project-Wide
- 5.1.2 Battle Entity
- 5.1.3 Battle Processing
- 5.1.4 Damage
- 5.1.5 Database
- 5.1.6 Data Placeholder
- 5.1.7 Data System
- 5.1.8 Debug
- 5.1.9 Defense
- 5.1.10 Entity
- 5.1.11 Game
- 5.1.12 Hardpoints
- 5.1.13 Main
- 5.1.14 Map
- 5.1.15 Mission
- 5.1.16 Message Processing
- 5.1.17 Planet
- 5.1.18 Player
- 5.1.19 Relation
- 5.1.20 Shield
- 5.1.21 Ship
- 5.1.22 S. Inventory
- 5.1.23 Station
- 5.1.24 T. Damage
- 5.1.25 Weapon
- 5.2 February
- 5.3 March
- 5.3.1 Project-Wide
- 5.3.2 Asteroids
- 5.3.3 Asteroid Belts
- 5.3.4 Battle Processing
- 5.3.5 Database
- 5.3.6 Data Placeholder
- 5.3.7 Data System
- 5.3.8 Defenses
- 5.3.9 Game
- 5.3.10 Main
- 5.3.11 Message Processing
- 5.3.12 Mining
- 5.3.13 NPC
- 5.3.14 Planet
- 5.3.15 Shield
- 5.3.16 Ship
- 5.3.17 Ship2
- 5.3.18 S. Inventory
- 5.3.19 Station
- 5.3.20 Weapon
- 5.1 January
Past Entries:
Version 0.2 Alpha changes:
-Menus are now cleaned up a bit more.
-You can now save and load your game. The save .nfo files can be found in your C:\ directory. There should be 2 of them, one for player data and a second for the destroyed planet names array. Right now the array is writing each element individually in the save function till I can get the for statement to work correctly.
-the 'Oders' typo has been fixed ;P
-please note that laser banks 4 - 8 and turrets 4 - 8 will be given garbage values as I have not set them up in the player creation function yet.
-the weirdness in the Station menu has been fixed. (if you chose to buy a ship, once done it would send you to the weapons menu.).
-all menus (or almost all) have been conformed to the new layout at the top of each menu is a cout << endl; and a system("CLS"); at the end of each non-battle menu to clear the command window.
-I have now added in some more planets. In total there are now 28 planets instead of 9.
-No new ships or weapons.
-Planets now have access to more planetary defenses and can now obtain a random tech level.
-Pillage and salvage functions have been rewritten for easier access to resources.
-Fixed the issue with enemy ships not being able to attack you. They can now do both laser and missile damage. This was due to an old reinitialization of some setup variables that were not needed and were left in by mistake.
Version 0.3a Change Log:
Planet bombing:
-Bomb weight has now been implemented. While bombing weight will now be calculated via formula to produce a collateral damage value.
-You can now bomb multiple times in a row AFTER the defenses have been destroyed. Maximum is 8 times and if the planet's population reaches 0 it should break the while loop. Have not tested that particular part.
-Planet Pillaging has been fixed. The resource random was set to 1,1000 instead of 100.
-During the bombing runs all text will be run on Sleep(2000) timers.
Main Game:
-At the start of the game, you will now be asked to input your name.
-Story has now been implemented.
-All text runs on timers, how long depends on the text amount.
-Decided to leave the Save/Load functions in. See more info on the change to cloning in the Station section.
-Have changed the encounter formula again, you will encounter fewer ships in this version.
Talirath/Tech Merchant:
-Added in both the Talirath and Tech merchant, you will be able to encounter them while traveling to stations.
-Tech merchant ship battle is still a little weird, trying to get the correct effect with it.
-If your ship is NOT a tech level 4 ship (i have added 1 tech 4 ship just for testing this function) you will not be able to use the TM right now. Later on I will change this so that there are different TM level ships.
-Once you choose to upgrade the Artimis Theta (the previously mentioned t4 ship) you will be able to distribute and damage and range points yourself to any weapons you have equipped.
-At this time Tech Merc and Talirath DO NOT have their custom ships.
-Talirath will only fight you if your pirate rank is 1 and higher.
Player:
-Ranking system now implemented after gaining 5 rank points (by destroying planets and ships) your rank will increase, this can be done up to 9 times.Ranks:PrivatePrivate First Class
Sub-Lieutenant
Lieutenant
Lieutenant Commander
Commander
Captain
Commodore
Admiral
Station:
-Clone SystemThis has now been implemented. You can buy a single use clone or buy a multi use clone. When you buy the multi use, you will be asked for the number of uses. This is then multiplied by the price of a single use clone. How they work is when your ship is destroyed, your consciousness is transported tot he nearest station and put into a clone. During this process your game is saved.
-New WeaponsI have added 26 new Laser Weapons.
-New ShipsI have added in 5 new ships in the Destroyer class.
2011 (version 0.5a from here on)
April
Monday, 25:
-Fixed error in Rifter ship description. Stated only one laser hardpoint when the Rifter has three.
-Changed the Raven's description a small bit for better clarification and also changed hardpoint listings to better conform with previously created convention (ex: two(2) or five(5)).
-Changed some of the Rupture's description and fixed a typo.
-Fixed grammatical errors in Henji's description as well as changed it a little.
-Changed resource Gold to Xarn.
-Changed the description for the Isicus cruiser slightly.
-Changed the Malin's description to better follow the hardpoint convention.
-Made changes to the Rathic's description for better flow and proper grammar.
-Changes made to Gelshing, Loginus, and Vanisher ship descriptions.
-Granz ship description and design has been modifiedMax hardpoints changed from 12 to 15
Laser hardpoints changed from 5 to 6
Ruby cost -30
Missile hardpoints changed from 7 to 6
Added 3 rail gun hardpoints
Draconic cost +120
Diamond cost +20
-Junas description altered.
-Ursa description changed and the design has also been changedAdded 2 heavy weapons hardpoints
Shield points +50
Tech level changed from 5 to 6
Ruby cost +170
Draconic cost +250
Diamond cost +300
Xarn cost +1450
-Lios description altered slightly and some design changesLaser hardpoints changed from 8 to 6
Missile hardpoints changed from 6 to 4
Xarn cost +200
Added 4 Railgun hardpoints
Diamond cost +40
Thursday, 28:
-Changed Reaper description, fixed an error where it was given no bomb holds instead of 2, and modified the ships stats/costAdded 1 heavy weapon hardpoint
Hull points +50
Xarn cost +1100
Diamond cost +100
Draconic cost +250
-Changed description for the Velor
-Changed the description for the Vespa and changed some costs and ship statsMovement initiative changed from 12 to 24
Added 3500 uranium cost
-Changed the Yenshu's description and some of its design attributesLaser hardpoints changed from 1 to 2
Added 2 railgun hardpoints
Added 460 uranium cost
Xarn cost +2500
May
Monday, 23:
-Changed Xeno and Zxeth descriptions
-Changed description and attributes for the Menos command shipShields increased from 480 to 1100
Armor decreased from 3600 to 2500
Plutonium cost changed from 2000 to 2400
Hull increased from 250 to 950
Laser hardpoints changed from 2 to 4
Missile hardpoints changed from 1 to 5
Added 2 heavy weapons hard points
Added 4 railgun hardpoints
Bomb holds changed from 1 to 2
Xarn cost changed from 40000 to 75000
Ruby cost changed from 450 to 1200
Draconic cost changed from 1900 to 1300
Diamond cost changed from 320 to 800
Uranium cost changed from 1850 to 2300
-Changed Rupture to Rapture
-Changed description and attributes for WhispMissile hardpoints changed from 4 to 2
Added 5 railgun hardpoints
Plutonium cost changed from 400 to 550
Bomb holds changed from 3 to 2
Diamond cost changed from 560 to 600
Uranium cost changed from 200 to 600
Tuesday, 24:
-Changed description for Kelos
-Changed design and description of NirvanaMissile hardpoints changed from 4 to 6
-Changed design and description for JestuLaser hardpoints increased from 2 to 5
Added 5 railgun hardpoints
Plutonium cost changed from 4100 to 7800
Added 3 heavy weapons hardpoints
Xarn cost changed from 55000 to 57000
Uranium cost changed from 3600 to 5600
-Changed design and description for OrionMissile hardpoints changed from 8 to 6
Added 5 railgun hardpoints
Plutonium cost changed from 7800 to 10500
Added 5 heavy weapon hardpoints
Diamond cost changed from 860 to 1200
Uranium cost changed from 6950 to 9800
-Changed description for Sleipnir
-Changed description and design for AsgardLaser hardpoints changed from 8 to 12
Added 5 railgun hardpoints
Diamond cost changed from 8700 to 14500
Added 10 heavy weapons hardpoints
-Changed description and design of the RangarokLaser hardpoints changed from 8 to 6
Missile hardpoings changed from 8 to 6
Diamond cost changed from 12400 to 16000
Added 6 railgun hardpoints
Added 6 heavy weapons hardpoints
-Changed description for the Absolution
-Changed design and description for Black EternityLaser hardpoints changed from 8 to 5
Missile hardpoints changed from 8 to 5
Diamond cost changed from 6700 to 8600
Added 2 railgun hardpoints
Added 16 heavy weapons hardpoints
-Changed description and specs of Kazahth MothershipLaser hardpoints changed from 8 to 10
Added 14 railgun hardpoints
Plutonium cost changed from 19800 to 28420
Added 13 heavy weapon hardpoints
Bomb hold changed from 3 to 6
Diamond cost changed from 29500 to 68000
Uranium cost changed from 15600 to 24000
-Changed description and design for ValhallaMissile hardpoints changed from 8 to 6
Bomb holds changed from 3 to 10
-Changed description and design for the EinherjarShields changed from 15600 to 12000
Armor changed from 9750 to 4500
Diamond cost changed from 5500 to 7800
Hull changed from 8500 to 35000
Laser hardpoints changed from 8 to 0
Missile hardpoints changed from 8 to 14
Added 6 heavy weapon hardpoints
Bomb holds changed from 3 to 2
Movement initiative changed from 13 to 10
Xarn cost changed from 105000 to 101000
Ruby cost changed from 6980 to 4950
Draconic cost changed from 6780 to 16000
-Changed description and stats of Shadow WraithShields changed from 23600 to 48000
Laser hardpoints changed from 8 to 6
Diamond cost changed from 6800 to 7500
Missile hardpoints changed from 8 to 10
Added 2 heavy weapons hardpoints
Ruby cost changed from 16000 to 23000
-Ship Database Completed
Thursday, 26:
Player:
-Removed pRankPosition variable; unneeded
-Replaced destroyed planets array initialization with For Loop; removed 240 lines of code
-Added Platinum resource to Player
-Renamed several variables to conform to naming convention
-Replaced ship initialization with more compact and optimized system
-Player can now choose between one of five frigates as their starting ship along with the armaments they wish to employ
Monday, 30:
Player:
-Added pCShip and pCWeap functions for player starter ship creation
-Added comments to rest of functions currently present in header file
Ship:
-Added comments to present variables and also separated out like variables for cleaner look
ItemSystem:
-Added getSName, getSShield, getSArmor, getSHull ship data retrieval functions
-Fixed typo in Osprey’s name
-Fixed three major problems with shipDB matrixmost ship entries missing ship class element
bomb holds element was in the wrong place for most of the ships up to cruiser class
some ship entries did not have heavy weapons nor railgun hardpoint elements added
-Changed description for the Sleipnir
July
Wednesday, 13
New Classes:
-Added a new class; Game. This class will handle any wide scope game related functions such as saving and loading and data encryption/decryption. There may be other functions moved to here later on.
-Created a new class called menuProc (menu Processing) which will handle all of the menu option inputs. It will process the player choices and call the related functions. This is done in an attempt to move ALL player related choices out of the ‘main’ game execution file and reduce the choices throughout the rest of the project files and consolidate it all into one class eventually.
-Added Story class to this build. It only has one function at the moment for the opening story.
File Renames:
-Previously called game.cpp file has been renamed to main.cpp. Started the basic coding here including class references and starting function calls for creating the game start menu and calling the story. Renamed in lieu of Game class, would have had a name conflict with that classes implementation file (game.cpp).
Player:
-Removed Loading and Saving, Decrypting and Encrypting functions from Player.h. These functions relate more to game data then just the player class. They have been moved to the Game class.
Game:
-Added code for save function and data encryption and decryption. Function will create save folder structure if it does not exist then create the .nfo file. This does not include destroyed planet data at this time. Loading function not yet coded.
ItemSystem:
-Finished coding Ship database and removed old code for ship settings. Replaced 2,425 lines of code with 43 lines of code.
Tuesday, 19
Player:
-Removed data encryption, decryption, and save, load functions from the player class.
-Added setting functions for the player name, rank, ship name, ship class, ship technology level, and current/max armor, shield, and hull points.
Game:
-Added the code for the data decryption and encryption to the implementation file. Currently only the attributes listed in the “Player setting functions change log entry” are being used in these functions. Later on weapon and planet names will be added to these functions.
-Fixed a few types and comments in the implementation file.
ItemSystem:
-Began laser weapon entry into laserDB matrix.
-Changed the description for both the Ion-Particle Blaster and 50mm Suspended Coil Laser Cannon.
-Renamed ‘Ion-Partical Blaster’ to Ion-Particle Blaster.
-Altered the description and name for 50mm Omega Cannon Proto-Type, now called 50mm Omega Cannon Prototype.
-Description changed for 50mm High-Output Ion Cannon, 25mm Lightron Blaster, 50mm Compressed Lightron Blaster, 50mm Lightron Blaster, 100mm Suspended-coil Lightron Blaster, and 150mm Proto-Type Lightron Blaster.
-Renamed 150mm Proto-Type Lightron Blaster to 150mm Prototype Lightron Blaster and changed its attributes slightlyMaximum Optimal Target Distance changed from 7 to 12
Saturday, 23
ItemSystem:
-Made changes to the descriptions of the following laser weapons150mm Prototype Lightron Blaster
150mm Lightron Heavy Cannon
50mm Pyre Plasma Cannon
175mm Lightron Supercannon
175mm Lightron Blaster
250mm Lightron Medium Blaster
25mm Pyre Laser
-Changed attributes of the 50mm Pyre Plasma CannonMin Damage lowered from 90 to 65
Max Damage lowered from 105 to 80
-Changed the description for the 50mm Pyre Megalaser, it was also renamed from Mega-laser to Megalaser.
-Changed the description for the 100mm Pyre Laser and 100mm Pyre Plasma Cannon.
-Changed attributes of the 100mm Pyre Megalaser, name was also changed from Mega-laser to MegalaserUranium cost increased from 0 to 130
-Changed description and attributes of the 175mm Pyre Photon LaserMin Damage increased from 190 to 210
Max Damage increased from 230 to 240
Plutonium cost increased from 0 to 50
-Changed the description for the 200mm Pyre Megacannon, name changed from Mega-cannon to Megacannon.
-Changed description of the 300mm Lightron Ultra Plasma Cannon and the 300mm Pyre High-output Megacannon, which was renamed from 300mm Pyre High output Mega-cannon.
-Changed description for the Fleet Buster, Grand Hilzarat, and Grand Design.
August
Thursday, 4
ItemSystem:
-Changed the description for the following missilesCalamity Light Standard Missile
Ravager Light Missile
AP Light Missile
Cruise Missile
Warhawk Advanced Light Missile
Bloodhawk Light Missile
Serpent Light Missile
Angelus Light Missile
Spine Light Missile
Dreadlock Light Missile
Mole Light Missile
-Changed the description and attributes of the Warpigeon Light MissileMin Damage increased from 75 to 90
Max Damage increased from 95 to 120
Added 120 plutonium cost
Wednesday, 10
ItemSystem:
-Changed the descriptions for the following missilesBloodhawk Standard Missile
Angelus Standard Missile
Warpigeon Standard Missile
Spine Standard Missile
Mole Standard Missile
Ravager Standard Missile
Calamity Standard Missile
Serpent Standard Missile
Dredlock Standard Missile
AP Standard Missile
-Changed attributes of the Calamity Standard MissileMinimum damage changed from 40 to 50
Maximum damage changed from 90 to 120
Draconic cost changed from 80 to 110
Maximum target distance changed from 16 to 18
Xarn cost changed from 15000 to 22000
Ruby cost changed from 70 to 120
Diamond cost changed from 110 to 160
-Changed attributes of the Serpent Standard MissileMinimum damage changed from 48 to 50
Maximum damage changed from 72 to 76
Draconic cost changed from 70 to 230
Maximum Target Distance changed form 72 to 76
Xarn cost changed from 15000 to 17000
Ruby cost changed from 95 to 140
Diamond cost changed from 120 to 200
-Changed the attributes of the AP Standard MissileMinimum damage changed from 78 to 85
Maximum damage changed from 102 to 115
Draconic cost changed from 350 to 420
Maximum target distance changed from 12 to 10
Xarn cost changed from 19500 to 20000
Ruby cost changed from 120 to 130
Diamond cost changed from 95 to 100
-Changed the attributes of the Warpigeon Standard MissileMinimum damage changed from 100 to 110
Maximum damage changed from 126 to 130
Draconic cost changed from 120 to 400
Maximum target distance changed from 4 to 10
Xarn cost changed from 19500 to 23000
Ruby cost changed from 120 to 180
Diamond cost changed from 95 to 120
Saturday, 13
ItemSystem:
-Changed the description for the following missilesWarhawk Standard Missile
Serpent Medium Missile
Dredlock Medium Missile
Mole Medium Missile
AP Medium Missile
Ravager Medium Missile
Bloodhawk Medium Missile
Spine Medium Missile
Warpigeon Medium Missile
Calamity Medium Missile
Bloodhawk Heavy Missile
Angelus Heavy Missile
Spine Heavy Missile
AP Heavy Missile
-Added new weapon Hellstorm MissileMinimum damage set to 140
Maximum damage set to 260
Lithium cost set to 850
Maximum range set to 15
Technology level set to 8
Xarn cost set to 38000
Ruby cost set to 450
Diamond cost set to 500
Draconic cost set to 780
-Changed attributes for the Serpent Medium MissileMinimum damage changed from 54 to 80
Maximum damage changed from 86 to 105
Draconic cost changed from 50 to 400
Maximum range changed from 24 to 22
Xarn cost change from 16000 to 19000
Ruby cost changed from 100 to 130
Diamond cost changed from 34 to 350
-Changed the attributes of the Mole Medium MissileMinimum damage changed from 48 to 54
Maximum damage changed from 98 to 110
Uranium cost changed from 0 to 10
Maximum range changed from 26 to 28
Xarn cost changed from 14000 to 18000
Ruby cost changed from 120 to 230
Diamond cost changed from 48 to 360
Draconic cost changed from 180 to 390
-Changed attributes for the AP Medium MissileMinimum damage changed from 115 to 125
Maximum damage changed from 130 to 140
Lithium cost changed from 160 to 240
Maximum range change from 12 to 7
Xarn cost changed from 19000 to 21000
Ruby cost changed from 150 to 200
Diamond cost changed from 120 to 320
Draconic cost changed from 240 to 300
-Changed the attributes for the Ravager Medium MissileMinimum damage changed from 95 to 100
Maximum damage changed from 118 to 200
Uranium cost changed from 0 to 50
Maximum range changed from 18 to 16
Xarn cost changed from 17600 to 19000
Ruby cost changed from 140 to 190
Diamond cost changed from 110 to 200
Draconic cost changed from 130 to 260
Lithium cost changed from 180 to 215
-Changed the attributes of the Bloodhawk Medium Missile:Minimum damage changed from 52 to 75
Maximum damage changed from 84 to 130
Uranium cost changed from 0 to 60
Maximum range changed from 35 to 20
Xarn cost changed from 18000 to 23000
Ruby cost changed from 110 to 280
Diamond cost changed from 85 to 420
Draconic cost changed from 75 to 500
Lithium cost changed from 210 to 420
-Changed the attributes for the Spine Medium Missile:Minimum damage changed from 115 to 125
Maximum damage changed from 128 to 160
Uranium cost changed from 0 to 140
Maximum range changed from 18 to 8
Xarn cost changed from 21000 to 25000
Ruby cost changed from 170 to 220
Diamond cost changed from 160 to 390
Draconic cost changed from 290 to 520
Lithium cost changed from 85 to 160
-Changed the attributes of the WarPigeon Medium MissileMinimum damage changed from 135 to 160
Maximum damage changed from 150 to 185
Uranium cost changed from 0 to 650
Maximum range changed from 8 to 9
Technology level changed from 5 to 6
Xarn cost changed from 25000 to 32000
Ruby cost changed from 240 to 450
Diamond cost changed from 210 to 680
Draconic cost changed from 230 to 720
Lithium cost changed from 530 to 580
-Changed the attributes of the Calamity Medium MissileMinimum damage changed from 40 to 55
Maximum damage changed from 85 to 100
Uranium cost changed from 0 to 120
Maximum range changed from 12 to 10
Xarn cost changed from 12000 to 15000
Ruby cost changed from 120 to 180
Diamond cost changed from 90 to 160
Draconic cost changed from 120 to 210
Lithium cost changed from 180 to 200
-Changed the attributes of the Bloodhawk Heavy MissileMinimum damage changed from 150 to 220
Maximum damage changed from 230 to 290
Plutonium cost changed from 0 to 152
Maximum range changed from 15 to 10
Technology level changed from 5 to 7
Xarn cost changed from 26000 to 36000
Ruby cost changed from 190 to 350
Diamond cost changed from 200 to 680
Draconic cost changed from 150 to 850
Lithium cost changed from 280 to 650
Uranium cost changed from 240 to 400
-Changed the attributes of the Angelus Heavy MissileMinimum damage changed from 96 to 120
Maximum damage changed from 120 to 160
Plutonium cost changed from 0 to 120
Maximum range changed from 45 to 30
Technology level changed from 5 to 6
Xarn cost changed from 23000 to 25000
Ruby cost changed from 130 to 260
Diamond cost changed from 170 to 450
Draconic cost changed from 125 to 600
Lithium cost changed from 220 to 230
Uranium cost changed from 170 to 155
-Changed the attributes of the Spine Heavy MissileMinimum damage changed from 115 to 130
Maximum damage changed from 148 to 180
Uranium cost changed from 210 to 280
Maximum range changed from 15 to 10
Ruby cost changed from 160 to 180
Diamond cost changed from 210 to 260
Draconic cost changed from 250 to 500
Lithium cost changed from 300 to 320
-Changed the attributes for the AP Heavy MissileMinimum damage changed from 125 to 140
Maximum damaged changed from 167 to 186
Uranium cost changed from 280 to 310
Maximum range changed from 8 to 6
Technology level changed from 5 to 6
Xarn cost changed from 28500 to 30000
Ruby cost changed from 240 to 280
Diamond cost changed from 270 to 300
Draconic cost changed from 340 to 370
Lithium cost changed from 320 to 340
-Changed the attributes of the Dredlock Medium MissileMinimum damage changed from 62 to 90
Maximum damage changed from 80 to 130
Lithium cost changed from 210 to 460
Maximum range changed from 50 to 22
Xarn cost changed from 23500 to 32000
Ruby cost changed from 110 to 150
Diamond cost changed from 140 to 200
Draconic cost changed from 80 to 180
September
Wednesday, 28
ItemSystem:
-Changed the description for the following missilesWarhawk Medium
Serpent Heavy
Ragnarok
Dredlock Heavy
Mole Heavy
Warhawk Heavy
Warpigeon Heavy
Ravager Heavy
Calamity Heavy
Bloodhawk Ultra Heavy
Angelus Ultra Heavy
Spine Ultra Heavy
Dredlock Ultra Heavy
Warhawk Ultra Heavy
Serpent Ultra Heavy
Mole Ultra Heavy
AP Ultra Heavy
Ravager Ultra Heavy
Calamity Ultra Heavy
Bloodhawk Titan
Serpent Titan
Angelus Titan
Spine Titan
Dredlock Titan
Mole Titan
AP Titan
Ravager Titan
Warpigeon Titan
Warhawk Titan
Calamity Titan
Super Nova
Hell’s Teeth
-Changed the attributes of the following missilesWarhawk Medium
Serpent Heavy
Ragnarok
Dredlock Heavy
Mole Heavy
Warhawk Heavy
Warpigeon Heavy
Ravager Heavy
Calamity Heavy
Bloodhawk Ultra Heavy
Angelus Ultra Heavy
Spine Ultra Heavy
Dredlock Ultra Heavy
Warhawk Ultra Heavy
Serpent Ultra Heavy
Mole Ultra Heavy
AP Ultra Heavy
Ravager Ultra Heavy
Calamity Ultra Heavy
Bloodhawk Titan
Serpent Titan
Angelus Titan
Spine Titan
Dredlock Titan
Mole Titan
AP Titan
Ravager Titan
Warpigeon Titan
Warhawk Titan
Calamity Titan
Super Nova
Hell’s Teeth
-Compelted database for missile weapons; removed 4500 lines of code, replaced with 74 lines.
October
Wednesday, 19
ItemSystem:
-Changed the description and attributes of the following weaponsDestructor Bomb
Neopryte Bomb
Apocalypse Bomb
Light Gettysburg Bomb
Nako Advanced Bomb
Planet Cracker
Medium Nano Bomb
Medium Neopryte Bomb
Medium Gettysburg Bomb
Medium Nako Advanced Bomb
Heavy Nano Bomb
Heavy Neopryte Bomb
Heavy Gettysburg Bomb
Ultra Heavy Nano bomb
Ultra Heavy Neopryte Bomb
Ultra Heavy Gettysburg Bomb
Heavy Nako Advanced Bomb
Ultra Heavy Black Hole Bomb
Ultra Heavy Planet Cracker
Maximum Nako Advanced Bomb
Gravity Bomb
Hell’s Teeth
Lillith’s Wish
Adam’s Anger
-Replaced 1279 lines of code with 27
-Added one (1) bomb hold to Rifter design to accommodate starter ship choice.
-Added several new ‘Get’ functions for laser weapon informationgetWLName
getWLAMin
getWLDROMax
getWLAMax
getWLAOMin
getWLAOMax
getWLDRMin
getWLDRMax
getWLDROMin
Player:
-Added check to starter ship selection so that if the chosen value is out of bounds the code will default to 1.
-Added player starter laser weapon selection, including above check and IS function calls. The following weapons have been added to the start selection listLow-Tech Phaser Array
Ion-Particle Blaster
Lightron Blaster
50mm Suspended Coil Laser Cannon
50mm Omega Cannon Prototype
50mm High-Output Ion Blaster
Sunday, 23
ItemSystem:
-Changed the Osprey design, added one (1) missile turret to this ship to accommodate the starter ship choice.
-Added the following functions for player starter ship choicesgetWMName
getWMDRLow
getWBWeight
getWMDRHigh
getWMAMax
getWBName
getWBDRLow
getWBDRHigh
Player:
-Added the following functions as part of the player starter ship systempCMWeap
pCBWeap
-The following bombs and missiles have been added to the player startship armament processDestructor Bomb
Neopryte Bomb
Serpent Lite Missile
Lite Gettysburg Bomb
Nako Advanced Bomb
Calamity Lite Standard Missile
Ravager Lite Missile
Cruise Missile
Warhawk Advanced Lite Missile
Bloodhawk Lite Missile
-Added the player takeDamage function. This function has a tiered if/then/else statement system t catch any damage overflow from the different health areas; shields, armor, hull. Old system calculated damage then sent that value off to another function. This one does all of the application in house, but the damage calculations will be done from battleProc (battle processing).
Monday, 24
Player:
-Removed private variable pSTLevel as the Ship struct already contains a variable for the ship tech level.
Planet:
-Setup the Planet Class and added the following things to itFunctions:Planet (constructor)Variables:
pNamepEKS*
pPop –popultion
Hostile:
-Added the following functionshostile(string hRace, string hRank, Ship hShip, int hXarn, int hRubies, int hDia, int hDrac, int hLith, int hUra, int hPlut, int hPlat, int hNWaste) (constructor 1), hostileStory(string hName, string hRace, string hRank, Ship hShip, int hXarn, int hRubies, int hDia, int hDrac, int hLith, int hUra, int hPlut, int hPlat, int hNWaste) (constructor 2)
-Added the following variableshName
hRace
hNWaste
hRank
hShip
hXarn
hRubies
hDia
hDrac
hLith
hUra
hPlut
hPlat
BattleProc:
-Setup the BattleProc class and added the following functionsdamageCalc
endBattle
*Click here for the explanation of this variable. It was too long to include in the changelog.
December
Tuesday, 06
Planet:
-Split the class into two separate entitiesPlanet Processing will handle all global planet processes, such as placing a destroyed planet into the destroyed planets array. Planet will be a pointer based class that will function a lot like the hostile class except that planets will be stored in an array upon deletion during an event. This array will be updated each “turn” depending on various conditions if the player colonized said planet.
-Added several new variables to the planet class, all having to do with the planets habitability*pGrav -gravity
pRad -yearly radiation
pBDivers –planetary biological diversity
pOxy –atmosphere oxygen levels
pNit –atmosphere nitrogen levels
pCarb –atmosphere carbon levels
pHel –atmosphere helium levels
pALevel –strength of atmosphere and planetary coverage
pLMass –available landmass
pWMass –percentage of planetary space that is ocean
Each of these variables can be affected by certain factors, such as population growth, industrialization, or pollution. Teraforming will move these values closer to 62nd century earth’s conditions.
-Added second Defense attribute to the class for shield based defense systems.
PlanetProc:
-Added the following functionsisDest –is the planet destroyed
isOwned –is the planet already owned by the player
setPOwned –set planet as player owned
fPlanets –search for planets within scan range (currently static at 50 LY)
pPlanets –print out list of found planets
setDest –set planet as destroyed
-Added the following variablessPlanets –array for scanned planets*
oPlanets –array for player owned planets
*Click here for further explanation
MenuProc:
-Added navigation menus 1 and 2. Nav menu two will work with above fPlanets/pPlanets functions to print out found planets for the player to travel to. Similar system to be setup for stations.
Main:
-Added game class and planet processing references.
-Created start game menu operations and started on the game loop.
Game:
-Added new function sGame (start game) to the class.
Friday, 23
Player.cpp:
-Added all ‘get’ functions into the player implementation filegetAcc
getDia
getSTLevel
getDrac
getEADist
getXarn
getLith
getNucWas
getPWStatus
getPlat
getPlut
getRubies
getSArmor
getSHull
getSMArmor
getSMHull
getSMShield
getSShield
getUra
getName
getRank
getSClass
getSName
Saturday, 24
Player.h:
-Added several new functionsgetFKills
getDKills
getTKills
getCKills
getBCKills
getBKills
getCSKills
getMKills
-Added several new variables for Player ranking system*pFKills
pDKills
pTKills
pCKills
pBCKills
pBkills
pCSKills
pMKills
Player.cpp:
-Added above functions to the Player implementation file.
*Click here for more information on ranking requirements and here for more information on the Combat Experience System (CES).
Sunday, 25
Player.h:
-Modified the ranking system. Rank requirements for combat experience have now been changed to a CB level system where each battle gives exp. After a certain amount of exp your combat level will increase. At certain levels, in combination of previous requirements, you will be given an option at Alliance space stations to receive a promotion. You must go to an Alliance station in order to get this promotion once the requirements are met.
-Added the following variablespCBELevel
pCBExp
tNCBLevel
Player.cpp:
-Fixed some function definitions that had incorrect connections to the Player class.
-Added the rest of the rank system functions and set functions for player variables\setName
setRank
pCBLUp
setSArmor
setSHull
setSMArmor
setSMHull
setSShield
setSMShield
setSName
setSSTLevel
cLUp
-Added functions for player combat level gaining, noted above. Levels are calculated via the following equation*To Next Level = (Current Level • 1250) • 1000 • 1000 • Current Level / (2 / ((1000 • (Current Level • 1250)) / 2))
2012
February
Monday, 13
Player
-Moved several menus out of the player creation process and placed them into menuProc where they should be incorporated.
-Changed all function calls related to the itemSystem information ‘gets’ for starter ship initialization due to changes to the class.
-Added menuProc reference for menu creation.
-Split up takeDamage function into base parts; takeSDamage, takeADamage, and takeHDamage, in order to make applying damage from special types much easier, effective, and efficient with the least code necessary.
menuProc
-Added several new functions for player creation menuspCMenu1
pCMenu2
pCMenu4
pCMenu3
-Added generic invalid menu option catch.
itemSystem
-Reworked the weapons databases so that they could all be placed into a single matrix. Styled more after SQL table with non-applicable entries nulled.
-Added two new attributes to each weaponWeapon Type
Weapon Damage Type
-Added functions to obtain weapon and damage typegetWType
getWDType
-Removed many functions that were duplicating information ‘gets’. Instead of each weapon type having a ‘get’ function there is now only one set of them for the entire table. Weapons that do not have a specific attribute will not be able to use a ‘get’ function if they do not have that specific attribute.
-Removed Optimum Range Damage attributes from all weapons and ship struct. Optimum range damage will be applied to a multiplier at random between 1.5% and 2.5% more damage in order to simplify damage calculations due to special damage types.
Weapons
-Added new variables to each weapon structtLevel //technology level
wType //weapon type
damageTypes
-Added in some damage type descriptions to await further implementationPiercing1
Piercing2
Massaccel
Piercing3
Napalm1
Napalm2
Napalm3
Destructor
Nanite1
Nanite2
Nanite3
Doomsday1
Doomsday2
Stealth
Frigonly
Null
Emp1
Emp2
Emp3
Virus1
Virus2
Virus3
Tuesday, 14
Hostile
-Added new functions and related code in the .cpp filesetName
setRank
getSTLevel
setSArmor
setSHull
setSMArmor
setSMHull
setSShield
setSMShield
setSName
setSSTLevel
getSArmor
getSHull
getSMArmor
getSMHull
getSMShield
getSShield
getName
getRank
getSClass
getSName
-Renamed hostileStory to Hostile. Other constructors renamed to Hostile to reflect the class name change (from l.c. h to capital h). Also added in a blank constructor for definitions of hostile ship instances for multiple ship battles.
-Removed initialization code from Hostile constructors, it will now take place in battleProc.
battleProc
-Added the following functions and/or related code for those marked with a *; ** means partial codebattleLoop()**
hDCalc()
endBattle()**
pDCalc()
hInit()**
pInit()
initHR1()**
initHR2()
initHR3()
initHR4()
-Added pointer definitions to the .cpp file so that I could initialize hostile ship pointers within separate functions to facilitate cleaner looking code.
-Enemy ship creation system based on player rank
menuProc
-Added two missing functions for the navigation menusnMenu1
\nMenu2
itemSystem
-Added in functions to search and return ship technology level, hard points, and classgetSBHolds()
getSMTurrets()
getSClass()
getSLBanks()
getSRails()
getSHWBays()
getSWHPoints()
getSTLevel()
Main
-Moved game loop out of main and into menuProc (to be completed at a later date).
-Removed many class references and class pointers since pointer initialization now happens in battleProg
Wednesday, 15
Hostile
-Fixed a small typo within the class and in child classes for Talirath and Tech Merchant.
-Added in all code for most of the functions detailed in yesterday’s update.
-Changed getSTLevel from string to int to reflect change of the attribute in the ship structure.
itemSystem
-Added in the following functions, but have not implemented the code yetgetSWHP
getSLB
getSPC
getSMT
getSBH
getSRM
getSHWB
getSDesc
getSMInit
getSXC
getSRC
getSDC
getSDiC
getSUC
Player
-Changed getSTLevel from string to int to reflect change of the attribute in the ship structure.
Thursday, 16
dataSystem
-Renamed itemSystem to dataSystem. This change was undertaken because I wanted to store all static data in this class and not just item and ship information.
-Added the following new data array(s) to this classplanetNames
ranks
pDD
raceNames
-Added code for yesterday’s implemented functions.
planetProc
-Removed the following data array(s)planetNames
pDD
Player
-Removed the following array(s)ranks
Game
-Removed the following array(s)raceNames
Saturday, 18
battleProc
-Continued working on hostile initialization. Scrapped previous idea in favor of going to an object array after all ships have been initialized.
-Created two new arrays to hold both player wingmen shims and hostile ships during battle.
Hostile
-Edited both constructors to better fit both data sources and removed variables that were not going to be used at the present.
-Added all code to said constructors.
dataSystem
-Added getRace function.
Ship
-Changed some ship variable names and added a variable for movement initiative.
Thursday, 23
battleProc
-Continued work on hostile initialization. Included code to randomly pick and setup a laser hard point for the ship.
-Fixed several issues within the ship and weapon database matrices that would have caused major issues during compile.
Weapon
-Along with ship struct, I will be changing this into a class that will contain all ship related functions. Each ship will be instantiated as its own object and so can be placed into an array which leads to cleaner and short initialization code.
Ship
-Along with weapon struct, I will be changing this into a class that will contain all ship related functions. Each ship will be instantiated as its own object and so can be placed into an array which leads to cleaner and short initialization code.
Hostile
-Added the following functionsinitHardpoints
getLHP
setBH1
setLBA
setMT1
-Modified constructors a bit to better reflect their purposes and to fix some issues. Started on weapon initialization but stopped when I decided to go with the class route.
Monday, 27
Player
-Removed any and all ship/weapon related functions and code from the class.
Hostile
-Removed any and all ship/weapon related functions from the class.
Ship
-Began the process of changing this struct into a class. Consolidated all ship code from both Player and Hostile and are in process of rewriting it for the new class.
Weapon
-Began the process of changing this struct into a class. Consolidated any code related to this class into it and have begun rewriting it for use within this class.
March
Thursday, 1
Weapon
-Completed changing structs to classes. Decided to go with an Inheritance structure where each type of weapon is a child class of Weapon. The Weapon class has any and all variables and functions related to two or more specific weapon types. The classes that are childed to Weapon can access all of these while being able to contain their own specialized, one-off variables and functions. All coding for these functions has been completed as well. Included some commented functions that will be used in later versions.
-Added or changed old functions to the following functionsWeaponsetWDRange
setWAcc
getWDType
setWName
setWDtype
setWTLevel
setWType
setWASpeed- commented
getWDRLow
getWDRHigh
getWDROLow
getWDROHigh
getWALow
getWAHigh
getWAOLow
getWAOHigh
getWTLevel
getWTpye
getWASpeed- commented
getWName
BombsetWeight
getWeight
DefensesetSPoints
getSPoints
takeDamage
HeavysetDInt
getDIntLow
getDIntOHigh
getDIntHigh
getDIntOLow
-Added or changed old variables to the following variablesWeaponwAcc- weapon accuracy
wDRange- weapon damage range
wType- weapon type
wDType- weapon damage type
wName- weapon name
wTLevel- weapon technology level
BombbWeight- bomb weightDefensedSP- defense structural pointsHeavyhDInt- heavy weapons damage intensity range
Ship
-Completed changing this struct to a class and finished all coding for the related functions. Did not change many variables or add many functions that were not already in use by other classes.
-Changed weapon hard point definitions to arrays to remove seven lines of extra code per each weapon type (5 weapon types, times seven lines; total code removed 35 lines and replaced them with 5 lines) and added code to HPInit function to use weapon hard point values taken from itemsystem database to initialize only an equal number of the eight elements in each array, again to remove coding lines (this change removed 250 lines of code and replaced them with 24).
April
Tuesday, 10
damageType
-New class, this class will be responsible for both applying special events and giving extra damage based on weapon damage types.
-Added the following functionsdTPiercing1
dTPiercing2
dTMAccel
dTPiercing3
dTNapalm1
dTNapalm2
dTNapalm3
dTDestructor
dTNanite1
dTNanite2
dTNanite3
dTDDay1
dTDDay2
dTStealth
dTFOnly
dTEMP1
dTEMP2
dTEMP3
dTVirus1
dTVirus2
dTVirus3
dTVirus4
Player
-Removed the following functions, they have been moved to ship classisDestroyed()
isDisabled()
getSStatus()
battleProc
-Began adding in damage modification code. This has to do with damage types and what they will do to the ship when applied. Most will add extra, special, non-affiliated damage by taking it out of which ever health they effect beforehand. Other, more specialized, effects will also be applied here.
-Added new functionpDModifier() //modify player damage if special damage type present
Ship
-Added some new functionsisDestroyed() //If ship destroyed?
isDisabled() //Is ship disabled?
getSStatus() //Are shields up or down?
Project-Wide
-Changed damage variable from integer to float. Will be changing health types to floats later on as well.
Thursday, 12
Ship
-Added following functionstoggleSStat
toggleShields
disableShield
disableShip
-Added following variablesDTimer
Weapon
-Added following functionstoggleWeapon
isWDisabled
-Added following variableswStatus
wDTimer
-Changed all child classes so that they used public inheritance to this class
Saturday, 14
Player
-Changed takeDamage functions to floats from ints.
-Added the following variablesdamage
damage2
damageType
-edited the code for the EMP functions for more logical code flows.
battleProc
-Started recode of damage modification function for more logical code flow and to take into account the variety of damage types in order to keep the size of the function down.
-Add the following vairablesdamage
damage2
damage3
Sunday, 15
Hostile
-Added the following functionshSetup
-Removed all functions having to do with weapon and ship setup to those respective classes
battleProc
-Added the following functionshTSetup
hTInit
-Did a lot of work on several functionsinitHR1- this function now just calls specific setup functions from the respective classes along with passing the pertinent code value so those classes can do the hard work. Removed all “set” code from this function into other functions in the correct classes.battleLoop- Removed any variable declarations and put them in the header file and started writing the shell for the b. loop.battleProc- I was able to remove 90% of the variable initializations from the contructor due to changes in initHR1.
-Added the following variableshTNumber
bEnd
hostiles
pGOver
pWin
Player
-Added the following functionsgameOver
getCELvl
Ship
-Added the following functionsSetup
-Moved weapon arrays to public scope so other classes can access them and the functions therein
Weapon
-Added the following function to LaserwSetup
Monday, 17
battleProc
-Added several new variablesturrets
iTurrets
iBombs
bombs
-Changed the battleLoop function to include two new bool overrides, ship and planet. This is to facilitate if the battle is a ship to ship battle or a ship to planet battle.
-Modified the hDCalc function to actually compute the damage for hostile team, it had been doing player. Setup for loop to find only the target to apply damage to as well as pass the name through to damageType if special damage has to be applied.
-Finished coding the initHR1 function. It now contains all of the code to setup all possible hostile team ships except for newer weapon mounts (rail and heavy).
-Moved the findTarget call in both pDCalc and hDCalc to the top of the function
-Fixed some left over ‘d’ variables from the change of ‘d’ to damage2 in both pDCalc and hDCalc
Player
-Fixed some left over ‘d’ variables from the takeDamage functions from the change from ‘d’ to damage2.
Ship
-Renamed the getLHardpoints function to getLHP
-Added the following functionsgetMTP
getBH
-Fixed typo in the implementation declaration of isDestroyed
-Added the following variablesdata
sXC
sPC
sRC
sDiC
sDC
sLC
sUC
-Added in/edited code for sSetup function
Weapon
-Removed the following functionssetWDRange
setWAcc
setWASpeed- commented
setWName
setWDtype
setWTLevel
setWType
-Merged all of the above functions into wSetup function
-Moved wSetup function from Laser class into Weapon class
-Added the following variable to the classdata
-Changed the Bomb class setWeight function so that it will instead call the Weight search dataSystem function then set the weight
Wednesday, 18
menuProc
-Added the following functions and all related codepBStatus
hBStatusA
hBStatusB
-Moved int i global define from implementation file to header file as a private variable
Ship
-Added the following function and related codegetSDTimer
Thursday, 19
Project Wide
-Changed all references to menuProc to msgProc to reflect the class rename
Player
-Added the following functionspAttack
-Added the following variablessCode
wCode
-Altered the player creation functions to make use of the new ship functions added in earlier in the week. This also reduced the code linage total by a large amount. Each of the four functions had 45+ lines of code replaced by two. I also removed the menu check and other iosystem related code and moved it to msgProc. Those functions now return the player’s chosen value with the check happening on that side instead of player. This also helped reduce the number of lines used.
msgProc (formerly menuProc)
-Renamed the class to better reflect the purpose of the class.
-Nearly all of the menu functions have been changed at this point to the new method where each menu is self-contained in this class. All menu item picking and value checking happens here then the chosen value is returned to the calling function for further use.
-Added the following functiongetMsg
-Added the following variablespChoice
battleProc
-Added the following functionpRetreat
-Modified endBattle function to take a bool called escaped to check if player won by defeating the enemies or by running, the later triggers a no-rewards end battle screen.
-Added the following variablespContinue
pAttacked
hDCounter
escaped
pNTarget
-Worked a great deal on the battle loop today. Most of it has now been fleshed out for the ship battles. Planet battling is still at 0% completion. Ship battles broken into two classes, single ship battles and team battles. Currently since player team is not used it is singular to player vs. hostile team. This will change once wing men are implemented. There is still a lot of work to do on various constraints, setting up the weapons firing selections, and whatnot.
Hostile
-Added the following functionsgetRace
getDispo
-Changed the constructors to take advantage of the new ship initialization method; replaced a total of 68 code lines with 20 lines total (including function declarations).
-Uncommented get resource functions.
Ship
-Added hostile bool to ship setup function so that resource setting for hostile ships could be randomized while player resource values would not.
Main
-Added class reference for msgProc
June
Tuesday, 12
MsgProc
-Renamed mSSMenu# to mSMMenu#
-Added station market menu 1
Wednesday, 13
MsgProc
-Added station market menu 2
Station
-Added station menu loop
-Added boolean variable sLeave
-Added function sMMenu
Thursday, 14
MsgProc
-Added ship classification menu
-Added variablesdLastValue
mCode2
-Added market classification menu
-Fixed issue that could have leaf to a menu choice bug in weapons market menu
-Renamed mSSMenu functions to mSMMenu to reflect header name change
-Removed cInvalid function declaration and code; no longer needed
-Added MsgDB array that will contain heavily used messages to cut down on use of code
-Added mRMessage function and code to access the MsgDB array to get messages
Station
-Added sMMenu function code
-Began work on code for menu loop
Tuesday, 19
Station
-Added cCode2 for passing ship classification
-Added sWMLoop, sSMLoop, and sMMLoop functions
-Added the following boolean variablessWMenu
sSMenu
sMDMenu
Wednesday, 20
MsgProc
-Added functions mSMMenu8 and 9
-Removed all passed class references in function calls in favor of hard coding refs into implementation file for cleanliness
Station
-Added functions sMPurchase and sMBuy
-Renamed cCode2 and iCode2 to cCode and iCode respectively
-Removed all passed class references in function calls in favor of hard coding refs into implementation file for cleanliness
-Started coding sMPurchase and sMWLoop
-Fixed issue that would have caused menu loops to re-loop on same menu choices because player would not be asked to re-enter a menu choice
DataSystem
-Removed all xCode2 = xCode -1; statements from data grab functions. Replaced with a [xCode-1] array return to cut down on excess code; removed 45 lines of code.
-Added class element to weapons database to simplify market process
-Added getWClass and doesCMatch functions
-Altered weapon get functions to reflect new matrix element
-Found problem with get weapon codes where Xarn cost was not being returned, fixed it by adding in the function to do so and altered the remaining functions for correctly returning array elements to function call
Thursday, 21
MsgProc
-Added boolean variable mContinue
-Worked on laser weapon menu loop
Station
-Added getClass function
-Added variable cCode2
Friday, 22
Station
-Removed getClass, forgot this was already implemented in dataSystem
DataSystem
-Added getWDesc function
Thursday, 28
MsgProc
-Added iType2 for specific item delineation
-Worked on item information screen
Station
-Added iType2 for specific item delineation
DataSystem
-Started the process of adding data basting to all data gets to reduce code that should not be used in other classes
-Added the following variables for data castingdata
data2
August
Friday, 17
Player
-Added resource set functions for each resource for related functions and code for those functions.
Station
-Started working on the sMPurchase function, added resource checks for weapons; if the checks are true required resources will be removed.
Monday, 20
DataSystem
-Converted rest of get function into int returns with data casting happening internally. Some functions remain string returns but only for those data that are string variables. Total of 46 functions changed.
MsgProc
-Finished coding weapon section of item information page included resource checks.
-Added bool variable valid for valid input check on player buying weapon. This part explicitly requires valid input, no defaulting, because it can drastically affect the players game due to removed resources.
-Added new message to the message database for non-defaulting invalid menu choice.
Ship
-Removed any data casting code. Hostile resource costs also uncasted. Removed a total of 89 lines of code.
Station
-Removed any and all in-class variable function passes, they are not needed since these functions can already access the variable.
-Completed the first half of the weapon purchase function including resource removal from player. The next section will have to do with player station storage/installing bought item.
Weapon
-Removed any code previously required for casting. Removed 56 lines of code.
Thursday, 23
DataSystem
-Fixed a mistake I made earlier this month when I changed the getWClass function to an int. Changed it back to a string function and removed the data conversion code.
-Began adding weapon classes to the weaponDB matrix.
MsgProc
-Added two new messages to msgDB array.
-Modified most functions in this class. Original naming convention was m for message then the name of the calling class as a capital and then the rest of the function name (IE: mGSMenu for menu game start menu). I have changed this so that the lower case letter is the letter for the calling class instead of ‘m’ (IE: gSMenu fort game start menu).
-Renamed gSMenu to gTMenu.
-Added new function sISIMenu for item installation or storage choices.
Station
-Added new function sISItem for processing item installation and storage checks.
Player
-Added three new variables dealing with station storage space*pCSSSpace (currently used storage space)
pMSSSpace (max usable storage space)
pSSSlots (number of station storage slots)
-Added a vector to store items in the players station inventory for later use.
*Click here for more information on the storage system.
Note: Here after changes will be cataloged by class instead of date.
October
Message Proc
-Stated adding in cargo compartment buy menu (10/4).
-Finished the sBISMenu function code (10/5).
-Finished sISItem function code (10/9).
-Added a few things to the sBISMenu function to fix a bug that would have presented itself later on (10/9).
-Finished buy inventory space/slots menu functions (10/14).
Player
-Moved inventory stuff over to station where it belongs. Will also be adding it to ship later on (10/1).
-Modified all of the set functions for resources. Added an operation parameter to tell if the value should be added, subtracted, or just a simple set (10/14).
Ship
-Added new function iWeapon to install weapons if player so chooses to, no code yet (10/1).
-Changed iWeapon from void to Boolean to handle the issue of there being no open weapon hardpoints to install a weapon to (10/21).
-Added code for the iWeapon function (10/21).
Station
-Created some storage related functions for storing items and adding space. Constructor now initializes the sInv vector (10/1).
-Moved all storage variables from Player to Station (10/1).
-Split the class into to smaller classes, like what I did with planet. Station descriptive elements kept in station. Menu calls and other things that operate on the station class have been moved to stationProc (10/4).
-Moved the sInv vector, sCSSpace, sMSSpace, sISlots, bDASlot, bDASpace variables to this class from stationProc (10/4).
-Moved functions getISItem, addISpace, addISlot, getISize to this class from stationProc (10/4).
-Changed second constructor into a function for setting up cStations vector (10/4).
-Moved sSItem, sBISpace, and sBISlot back to stationProc due to a better fit with that class (10/5).
-Added getCSSpace and getMSSpace functions (10/9).
-Added an int parameter to getISItem in order to get a specific inventory vector element (10/9).
-Removed getSISlot function, could not remember what it was for and was made obsolete by another function (10/23).
-Added code for the addISpace, addISlot, and getISItem functions (10/23)
Station Processing
-Added getStation function to obtain specific station instances from vector (10/4).
-Added cStations vector to store created stations for use later on (10/4).
-Modified the following functions to account for recent changes: sMenu, sMLoop, sWMLoop, sSMLoop, sMMLoop, sRepair, bClone, useClone, sShop, sBar, sBOffice, sEAEOffice, and sMPurchase (10/4).
-Fixed typo in function sEAEOffice, should have been sEAFOffice where ‘F’ is Field (10/4).
-Moved sSItem, sBISpace, and sBISlot back to this class since they operate on values contained in the Station class (10/5).
-Finished out the code for sBISlot (10/5).
-Added some required reference passes to various functions and modified function calls in certain classes to use those reference passes (10/5).
-Added Station and msgProc reference passes to sSItem (10/9).
-Changed some lines in sSItem to call the functions added today to Station (10/9).
-Finished the buy inventory space and slot functions (10/14).
-Removed any reference passes for msgProc. MsgProc does not store any information needed elsewhere so no passes of instances required (10/14).
-Added bDone bool variable for use with a function (10/23).
-Changed sSItem a bit by adding a while loop and removing the condition statement from the for loop (10/23).
Weapon
-Added iWeapon functions and code to all of the weapon classes (10/23).
December
DataSystem
-Added station names array (12/26).
-Changed mission time limit to days instead of miliseconds and update ‘The Wolf’ mission (12/28).
MsgProc
-Removed stationProc reference from the class, it was not needed and highlighted a serious issue with another function of this class (12/28).
-Added six new messages to the msgDB (12/28).
-Modified sBISPMenu to not need the stationProc reference and also in response to changes to the sBISpace function in stationProc (12/28).
Player
-Added pMissions vector for tracking what missions the player is on and other mission related stats (12/28).
-Added addMission, removeMission, updateMission, getMission, and getAMissions functions for mission handling for the player class (12/28).
-Removed remnant inventory code from the player class that I missed earlier (12/28).
StationProc
-Added createStation function (12/26).
-Began coding sRepair function (12/16).
-Added csPos int for tracking station position in vector for updating the vector element after player leaves station (12/26).
-Added sDepart function (12/26).
-Modified the sMenu function a little bit for more logical processing (12/26).
-Added code for sDepart function (12/28).
-Added stat reference to sMenu call in createStation (12/28).
-Fixed some issues with sMenu (12/28).
-Changed several areas where messages were printed into mRMessage calls (12/28).
-Fixed a major problem with sBISpace. It did not have any execution path for when the player chose to buy or not buy inventory slots if there was not enough space. Added those and changed the way the entire function executes (12/28).
-Added modifications to sSItem to account for changes to sBISpace, much of the function had to be changed (12/28).
2013
January
DataSystem
-Added the following functions: GetMName, getMDesc, getMType, getMDur, getMDiff, getMSector, getMSystem, getMCBEReq, getMSCReq, getMMWReq, getMTName, getMTSClass, getBounty, getMXR, getMRR, getMDiR, getMDR, getMLR, getMPlR, getMUR, getMPR, getMNWR, getMEXPR, getMIR (1/1).
-Added new fields to missionDB matrix, formerly known as missions array. Added an exp and item reward field. Changed numbered fields with “Null” in them to -1, only text fields will use Null (1/1).
-Added code for the list of functions above (1/1).
Mission
-Added new class called Mission to store mission data. Will be used in instancing with pMissions vector to store each mission individually. Only basic class information at the moment but will be fleshed out later on (12/28).
-Added the following functions: getRewards, getBMInfo, getCMInfo, GetMName, getMDesc, getMType, getMDur, getMDiff, getMSector, getMSystem, getMCBEReq, getMSCReq, getMMWReq, getMTName, getMTSClass, getBounty, getMXR, getMRR, getMDiR, getMDR, getMLR, getMPlR, getMUR, getMPR, getMNWR, getMEXPR, getMIR (1/1).
-Added code for all of the functions listed above (1/1).
MsgProc
-Added mInfo function and the code required to obtain mission information through a pointer (1/1).
Player
-Added setCEXP function and code for it (1/1).
-Added completeMission function and some of the code for it (1/1).
February
BattleProc
-Began rewriting the battle loop. Changing focus from two battle styles, single and team, into only team (2/8).
-Added battleParticipants vector to store whom will be fighting and the attack order (2/8).
-Added several new variables to the class to handle the battleParticipants process (2/8).
-Added new class bParticipants to load the vector for storing name and ship movement initiative for determining the attack order (2/9).
-Added several new variables for storage of the bParticipants class for bubble sorting of vector (2/9).
-Added menu switch to player section of ship battle loop (2/11).
-Added bFSolutions to handle different attack modes during battle (2/11).
-Did some more work on bFSolutions by starting to add in the rest of the function and directing how the battle progresses from this function (2/16).
-Added new bools for dealing with weapon selection and damage type detection (2/16).
-Made some changed to fSolutions to take into account recent changes (2/27).
-Added a member variable, wtype, to track and pass weapon types (2/28).
Damage
-DamageType renamed to damage to better fit what the class will be used for (2/8).
-Added two new functions bPAttack and bHAttack to deal with player and hostile damage (2/16).
-Added setupWQueue to setup the weapon order for attacking (2/27).
-Added cleanWQueue to clear the weapon vector before use (2/27).
-Added several new member variables for dealing with damage: vDamage, mDamage, fDamage, tSDamage, sDamage (2/28).
-Added dLow and dHigh member variables for tracking weapon damage ranges (2/28).
-Added nSDamage, nADamage, and nHDamage for nanite damage calculation (2/28).
-Added wdtype to track the type of weapon damage being applied (2/28).
-Added sDNTurns and sDNANTurns to track turns left to apply napalm and nanite secondary damage (2/28).
-Added function processWQueue to cycle through the weaponQueue and pull out weapon information (2/28).
-Added processSDamage and processSecDamage to deal with secondary damages and special damages (2/28).
-Added getSDNTurns and getSDNANTurns functions to find out if any turns for these turn-based secondary damage types are present (2/28).
-Started to code bPAttack (2/28).
-Added code for all new functions mentioned above (2/28).
DataSystem
-Removed periods from end of weapon and ship descriptions for cleaner output (2/5).
-Fixed problem with data not being correctly obtained from this class. Some functions were not properly connected to the data they were supposed to be returning (2/5).
Debug
-Created new class for debugging, will become logging class in future versions of the game. This one is to be used for current development feature debugging purposes (2/4).
Hard Point
-Added these new classes to accomplish weapon spreads as well as to better approximate how hardpoints work. Hard Point is the super class while the others are sub classes for each weapon type (2/11).
-Added new constructor to hardPoint super class in order to set weapon type and slot number on creation to limit amount of code used (2/13).
Hostile
-Added new function to tell if hostile entity was actually hostile; needed for battle loop, it can be overridden (2/9).
MsgProc
-Fixed a bug that would have caused a crash within sMMenu3 by not catching invalid input. I also altered this function to actually work as it was supposed to; it was missing some things and had faulty code (2/5).
-Added new message for choosing a target to attack (2/9).
-Added new functions sWSSelection,sLWSelection, sMWSelection, sRWSelection, sHWSelection, sCWSpread, and sOWSpread. All are related to functions required by weapon spread system (2/13).
-Added new member variables totalWeapons, laser, missile, rail, heavy, and type for dealing with weapon selection (2/16).
-Added new functions bCSpread, bCWSystem, and bCWeapon (2/16).
-Changed bool valid to bValid and mContinue to bContinue (2/27).
-Added a new menu for weapon selection during battle; sCWSystems (2/27).
-Added two new messages to messageDB (2/28).
Player
-Modified pAttack for new focus on how battles are conducted from the battleProc class (2/16).
Ship
-Changed weapon hardpoint arrays into vectors using new hardpoint classes (2/11).
-Added weapon spread vectors for determining how to fire equipped weapons (2/11).
-Renames ship/shield disabled bools to conform to bool naming conventions and fixed references to them in code (2/11).
-Added bContinue bool for use later on in weapon spread creation (2/11).
-Added new hardpoint and weapon spread counters for weapon spread creation (2/11).
-Added two new classes, cWSpread and getWSpreads for dealing with weapon spread creation and execution (2/11).
-Added new variables for dealing with weapon spreads as well as player choices (2/13).
-Added five more weapon spread vectors and a temporary vector to store spreads created by the player until they can be moved to the selected weapon spread (2/13).
-Finished coding sWSpread function (2/13).
-Added several new functions: setCWSpread, setCWeapon, setCWSystem, getCWeapon, getCWSystem, getLWeapons, getMWeapons, getRWeapons, getHWeapons (2/16).
-Added a few new member variables to deal with battle weapon selection; sCWeapon, sCWSystem (2/16).
-Removed get/setCWeapon and get/setcWSystem. These were no longer needed as a different function was put into place for both solutions (2/27).
-Added getSSize to obtain size of spread vector. Also added getWVSize to get the size of the weapon vector (2/27).
-Added two new vectors to hold weapon data for full attack, weapon systems and single weapon attacks (2/27).
-Added placeholder as a means to hold hardPoint classes to return to other classes when needed (2/27).
-Added clearWVector to clear the sWVector before use (2/27).
-Added several new functions to return weapon types for specific slots on each hard point vector (2/28).
Weapon
-Added new functions to each sub-class that would allow for pointers to each specific weapon to be created for use in the menu system (2/13).
April
Note: 4/30 changes encompass changes made between 4/15 and 4/30 that were not recorded on the day those changes occurred.
Project-Wide
-Went through and removed any and all using namespace std from header files and replaced them with direct using statements for whatever was needed. I also went through and replaced the hostile/player.h includes with entity.h (4/10).
BattleProc
-Made a few small changes to the battle loop code dealing with the attack order (4/10).
-Finished changing all of the cpp code to reflect that hTeam is now a vector and not an array (4/10).
-Removed a few variable passes from functions that were not needed as the vriable was already defined in the header (4/30).
-Added new member variable rkCode to store rank codes (4/30).
-Added several other member variables dealing with response system and battle loop: bFight, hResponse, hDestroyed (4/30).
-Did major work on the initHR1 function to get it working with the changes to Hostile (4/30).
-Started work on initHR2, which prompted the work in the data system that was completed (4/30).
-Made changes to code calling functions from damage to actually be correct due to the changes made therein (4/30).
-Started work on the hail and response system where you can hail and interact with combatants; not to be confused with the tech merchant system (4/30).
-Major work done on the battle loop. Many new if statements and edits to existing ones made as I realized that many checks were missing and some of the logic was faulty or did not actually end the battle when it needed to be. Also had to make changes due to the response system considerations (4/30).
Battle Entity
-This class was created out of the bAttacker and bTarget classes in damage. Instead of having two they are now created through instancing this class. The class was also distilled to a very compact object with only the constructor and a function to delete the entity pointer when it was done being used (4/30).
Damage
-Added two new classes to the header to store attack and hostile ship objects. This was done because of other changes that now allow for fairly simple access of the attack and defender ships without having to differentiate between the different entity types. See Entity class changes for more info (4/10).
-Started changing how the class executes. Starts out by initializing the bAttacker and bTarget classes, then moves into dmgProcessing where each function is call in succession, consider it a linear non-looping execution path (4/10).
-Changed the hostile and player team calls to bTarget or bAttacker as the function required, this way no identification must be made in this class only when they are passed from battleProc (4/10).
-Started working on recoding other areas as necessary to account for changes (4/10).
-Added other weapon types to the weapon queue processing code (4/10).
-Made changes required due to moving the bAttacker and bTarget classes out of this one. Nearly all functions had some edits due to this (4/30).
-Removed the huge blocks of code used for EMP damage and instead made much smaller amounts of code in the processSDamage function where they should have been in the first place (4/30).
-Added the rest of the damage bonus and turn defines (4/30).
DataSystem
-Major changed to the cosmetic structure of the ship and weapon databases. Partitioned them off by ship class as well as added ID range to the comment for easier determination for randoms or other related operations (4/30).
-Changed the ship class requirement elements for all ships and weapons to what they should have been. They had been all set to frigate until now as I had not gotten around to doing this (4/30).
-Removed the following arrays: planet disposition, rank, race. This have been made into enums for easier use with switches (4/30).
-Added three new functions to get the enums based on passed int and return the related enumeration (4/30).
-Fixed several weapon and ship arrays that were missing the ship class requirement element (4/30).
Entity
-Created new class called Entity that will encapsulate any entity related class within the game. Moved most of the code from Hostile and Player into this class and then made them sub-classes of this one (4/10).
-Changed all of the variable names to fit with the new class both in the header and the implementation code (4/10).
-Ship reference now called Ship. Ambiguous name means that it can be accessed from any code pertaining to an entity class without having to detect if it is a player ship, hostile ship, or something else allowing for very efficient code (4/10).
-Removed takeDamage from battleProc and moved it here. Changed code so that damage filters through if/then/else statements based on value comparisons to health interfaces of the ship (4/30).
-Changed takeS/A/HDamage to applyS/A/HDamage which just passes the damage value to the proper set function in Ship (4/30).
Hostile
-Most of the code has been ripped out and replaced only with what is absolutely required for this class. The other code was moved to Entity (4/10).
-Removed second constructor and merged it with the hSetup function (4/30).
-Heavily modified the hSetup function to obtain enums from data system for various information as well as placeholders for name generate based on race of crew (4/30).
MsgProc
-Made changes here to account for the making of the entity class (4/10).
-Modified the battle menu because I forgot to add the move ship option (4/30).
Player
-Same as Hostile class. Most of the code has been ripped out save for what is required for the player class (4/10).
Ship
-Added the code for the other weapon damage type getting functions in the ship class. Laser was the only one done prior to today (10/4).
-Removed second constructor and merged it with the first (10/30).
-Modified shield/armor/hull set functions to act like other such functions in Entity. They now take a value and the operation to be carried out (4/30).
-Changed all functions and member variables having to do with shield/armor/hull to float types (4/30).
-Added some extra comments for certain private member variable declarations (4/30).
June
Damage
-Started recoding processSDamage. It needs recoding for several reasons. First because piercing damage can only apply to one or two levels of health interface; the bonus cannot affect what it should not. The only way to accomplish this is to do the damage processing from within damage. procSDamage now will do direct damage in most cases. This leads to the second reason. Some changes made this month require damage processing to be done from this class and others require other interactions with ship (6/4).
-Added all three levels of piercing to processSDamage; they were missing for some reason (6/4).
-Changed the way several sections of processSDamage execute. Since turn based damage is now stored in Ship, turns and damage for those turns must be sent there for storage. I have changed these sections to reflect that need (6/4).
-Added new function, processDamage. This will take the place of takeDamage from entity which has been removed (6/4).
-Removed many references to sDamage and mDamage, these are no longer used in the determination of damage and are used solely for storing special and modified damage for required calculations in processSDamage (6/4).
-Changed how damage is setup in processWQueue. Instead of adding it directly to vDamage and then passing that to processSDamage, the randomized damage is set first to sDamage, which is added to vDamage. No damage is now passed to processSDamage as it was not needed in the first place (6/4).
-Added two new functions called getTDamage and processTDamage. Their purpose is to scan the cDamage vector in Ship for any non-zero turn-based damage and then apply the damage for that turn and decrement the turns left of that specific turn-based damage (6/18).
-Removed the code for napalm and nanite turn-based damage and replaced it with proper code for the current system. The code now sets up a new cDamage vector element instead of applying damage (6/18).
-Fixed up the processDamage code, it was hard code from entity and not formatted properly for the damage class nor how it accesses the entity classes. It now properly reflects how the damage class interacts with entity (6/18).
-Removed the last vestiges of the old turn-based damage handling, there were still some remnant code fragments here and there within the damage class (6/18).
-Repurposed tDamage variable and created tDType variable to make handling if statements for turn-based damage calculation much easier and less complicated (6/18).
-Created short circuit in damage processing if the target ship has been reduced to zero hull points (6/18).
-Began fixing bit-wise and operators back to logical and operators in processSDamage (6/28).
-Added a line of code to remove sDamage from vDamage in piercing damage processing so we did not apply the same damage twice (6/29).
-Changed how mDamage is added to sDamage. Now it just uses mDamage instead of recalculating the extra damage (6/29).
Database
-Added this class for future work in August. This class will deal with all of the interaction with the databases as needed including retrieving data and writing data to the databases (7/1).
Data System
-Added a new function named getPNames that will send the pNames array and the size of the array to Game (6/28).
-Removed shipDB, weaponDB, missionDB, and pNames array from the class. This information is now stored in an external database and will be loaded from there; no need for hard code anymore (7/1).
-While adding data into databases I found several areas where there were missing fields or incorrect values. I have fixed appx. 25 items in the ship and weapon database that would have caused bugs, crashes, and other issues (7/1).
-Ship armor, shields, hull, and weapon damage are now represented in the database as floats (7/1).
Entity
-takeDamage has been removed from Entity. It will now be dealt with by Damage (6/4).
Game
-Added several new functions to deal with planet generation: getPNames, generatePlanets, and calcPop (6/28).
-Added gPlanets vector to hold generated planets (6/28).
-Added the following variables and vector: pNRand, pERand, pSRand, pSRRand, pDRand, popRand1-3, pPMax, pPStore, sName, nCode, pNStorage, bUPName, and bPPGen (6/28).
-Added in the code to randomly generate planets and tested it separately from the rest of the code (good thing to, bugs everywhere!) (6/29).
-Moved function calls to set planet data to the end of the generatePlanets function and removed it from the other places it was used. It doesn’t need to be used after each specific section has been done; just at the end (7/1).
Message Processing
-Removed messaged from this class. The information is now stored in an external database and is no longer needed inside of the code (7/1).
Planet
-Added new variables for use later on: pM[ResourceType], pRFProduction, pRFConsumption, pRFSupply, pRWProduction, pRWConsumption, and pRWSupply (6/28).
-Changed pPop to a long long int and added pMPop (6/29).
-Changed any instances of pPop to a long long int and also added in the code for setting, getting, and in the constructor for pMPop. Changed the set functions to the same solution I am using everywhere else (6/29).
Random
-Added new function to this class to process and return a random float (6/28).
Ship
-Added many some new functions to deal with turn based damage: addTDamage and removeTDamage. There were quite a few others but I removed them since I went in a different direction later on, on this work day (6/4).
-Added a new vector to store tDamage objects for turn based damage (6/4).
-Added a new function called checkTDamage to check the vector for any 0-turn elements. If any are found a second new function, removeTDamage, is called to delete that element from the vector (6/18).
Turn Damage
-Added this class to deal with turn based damage issue I was facing. It will be used to create objects to store the number of turns to apply extra damage when a weapon with a type of damage that is turn based is used (6/4).
-Added the new class classification system to this class. It is simple a comment block with the name of the class, its purpose, how it works, when it was created, the current version, and a mini, in-code change log. Will be adding this to every class and implementation file as time goes on (6/4).
-Changed protected keyword to private since I went a different way with the class than I had originally intended (6/28).
October
Project Wide
-Edited all calls to mRMessage and change them so that they are printed out in a cout so take into account for the new code for the function (10/30).
Battle Processing
-Changed bFSolutions function. It will only deal with the player actions now, several new functions will be added to deal with the automation of the attack style process for non-player entities (10/9).
-Fixed a major issue with how rewards are processed. Before the player class was not being updated after the battle was over so the rewards would not be permanent. Changed the endBattle function so that it takes two player objects, one being the main player reference and the other being the player’s data stored in the pTeam vector. The vector player object is now saved into the main player reference at the end of the function (10/9).
-Started working on the AI for NPCs in the battle loop and added the disable timer decrement function into the if statements for disabled ships (10/9).
-Renamed pRetreat to bRetreat and also added in the function, did not realize it was not coded. Retreat is based on several value ranges between 1 and 100 and will, in later versions, also be based on certain types of ECM and warp disruption/improvement modules (10/9).
-Fixed some incorrect if statement calls to the player class. It was calling on the main player reference instead of the player object in the pTeam vector as well as incorrect callings to the vector which were still setup to work with the pTeam array that I had missed changing (10/9).
-Added the variable bRChance for storing the randomized retreat value (10/9).
-Added include and reference for map class (10/10).
-Added function call for battle map setup (10/10).
-Added several new variables: pTChoice, hTChoice, bIsPTFighitng, and bIsHTFighting for tracking team leader targets and if a specific team is in battle to determine targets and actions for AI (10/11).
-Edited the bFSolutions function a bit since NPCs will be getting their own function for this purpose (10/11).
-Added in some TODOs for dealing with AI and what will be needed in the future (10/11).
-Added in ship destroyed checks for player wingmen and hostile ships to the battle loop if statements (10/11).
-Changed the way that wingmen will be taken care of. Wingmen are now part of a player class vector based on an entity subclass called wingmen. Will be recoding large swaths of the battle processing class tomorrow to accommodate this change (10/11).
-Began the process of renaming all hTeam and pTeam references to mHostile and mPlayer as well as figuring out how to adapt the current code for the most recent changes (10/12).
-Removed an extra ‘allies’ variable set that was not needed (10/12).
-Completely rewrote most of the battle loop for changes made in previous days (10/14).
-Rewrote the endBattle function for the same reasons as above (10/14).
-Removed the mHostile passes to initHR# functions because they are not needed (10/14).
-Rewrote the bAPArticipants function to account for the changes (10/14).
-Many parts of the bFSolutions had to be rewritten because of the changed (10/14).
-Removed some of the comments at the beginning of the cpp file due to ideas having been completed (10/19).
-Changed a few function calls for changes made in other classes due to the changes being made to this class (10/19).
-Added a TODO to end of bInit to remind myself to add in the other five rank initializations (10/19).
-Many changed have been made to the initHR# functions. First I recoded them to account for the recent changes to this class. Then I went about fixing some problems I found with how they sectioned out weapons between the first and second functions. I then added the code for the third and fourth functions as well (10/19).
-Fixed a problem that would have caused serious bugs in the bFSolutions function where if a wingman was selected as the target it would have been possible to send the code out of bounds of the eWingmen vector causing crashes or incorrect targets being supplied (10/19).
Damage
-Started adding in distance checks for weapons for damage modification (10/11).
-Added variable mDistance to hold calculated distance between the attacker and target for use in determining positive and negative damage bonuses (10/11).
-Added in the rest of the range processing for damage on added weapons (still need to do rail guns and heavy weapons) (10/11).
-Added a TODO reminding myself that bonus damage from optimum distance attacks needs to be randomized in the future, right now you will do double damage. In future updates this will be between 1.5% and 2.5% (10/11).
-Added bomb collateral damage calculations (10/11).
-Fixed some lingering bitwise ands that I had missed in previous updates in the processSDamage function (10/11).
-Fixed another issue in the processSDamage where some damages were being turned into doubles instead of floats (10/11).
-Added another variable, dBCollateral, for storing the amount of extra damage caused by the weight of the bomb (10/11).
Database
-Added several functions for dealing with opening, querying, and retrieving data from the database: openDB, tableTAccess, createStatement, getResults, returnResults (10/2).
-Added SQLite3 variables to hold the database and SQL statement (10/2).
-Added vectors to store database query results (10/2).
-Finished off coding basic framework for connecting to the database, selecting the table, querying the table, getting the result set information, and then returning those results. Still a lot of work to do in fleshing out the rest of the functions for each struct (10/3).
-Started coding the functions for getting data from the database and then returning it. Found some problems with mission function, it was missing several items causing the returned data to be incorrect (10/5).
-Tested the process in the SC Testbed project and found that there were some major issues. Due to testing I made some changes to the way the function to query the database executes, must check for a valid row queried first; got the code working properly (10/5).
-Started work for creating and determining how to partition off and connect the save database with the main database as a means of determining what unique information has been used. This may be done through physical connections between the two databases or through the code itself through querying the two databases and searching for in-common data (more resource intensive but more likely to work properly) (10/6).
-Fixed a change I made when testing something that I forgot to revert; added a second ‘missions’ vector to the returnMResults function to make sure no conflicts would occur (10/19).
-Added the function and code to return queried messages from the database class (10/19).
Data Placeholder
-Created the data placeholder file which will contain data structs for the various types of data that will be pulled from the database so that the data can be stored in their native types in the vectors until needed (10/2).
-Added several structs: ship, weapon, mission, message, planetName, planetData, empires, corporations, ranks, diplomacy, race (10/3).
Data System
-Added vectors to store data retrieved from the Database class while this one searches through the data for other classes and returns the necessary information (10/3).
-Renamed most of the vectors for data storage so they would be different from the structs they were representing. Found out during the test of the code that the names caused compile errors (10/6).
-Added a new string variable to hold converted data (10/6).
-Continued recoding the data grabbing functions in this class so that information can be obtained through the new database method. Also worked on adding in some basic validity and value checking so that -1’s, nulls, and zeros in specific fields of the database will be returned as, essentially, “not available” messages (10/6).
-Started considering what changes project-wide will be required due to the change in the database method (10/6).
-Added the rest of the database calls for the different types of data currently stored there and will continue to add more as other types of data are created and stored within the main SC database (10/6).
-Added the in-file change log into the header for this class (10/9).
-Removed calls to rData from all data retrieval functions to keep code repeat down. This will need to be called before the other data query functions are called so that the vector can be setup for the particular item in question (10/9).
-Added the code to query the database for messages to the rData function (10/19).
-Removed all of the xCode parameters from the ‘get’ functions as they are no longer needed (10/19).
-Added the function to return the text of a queries message to the requesting class (10/19).
-Added two new functions to return the race and rank values from the database (10/28).
Entity
-Moved getNOWingmen function and wingmen vector, now called eWingmen, to this class so that all child classes can have access to it (10/12).
-Changed the messageProcessing reference from msg to mp to fit in with the naming convention used in all other files (10/30).
Hard Point
-Removed iCode passes from hard point constructors since these will no longer be needed due to changes in the Ship class (10/28).
-Edited the code for the hard point constructors to take into account the above changes to the header files (10/28).
Hostile
-Edited the constructor slightly for the new database functions (10/28).
-Changed hSetup to use the new data acquisition methods and removed the switches that were being used; removed over 60 lines of code in total and replaced with five lines (10/28).
Map
-Added the map class and began work on re-creating the 3-point cord system used in v0.4a (10/10).
-Added the quadratic distance formula for calculating the distance between two points in space based on XYZ coordinates (10/10).
-Added function to set the cords for starting positions in battle. The first entity in the pTeam and hTeam vectors is the anchor point while the remaining entities are placed randomly within a ±1 to ±5 random range on each coordinate (10/10).
-Fixed a compile problem caused by circular referencing between this class and the entity class (10/11).
-Changed setPOS function to take Player and Hostile parameters instead of pTeam and hTeam vectors (10/12).
-Changed any references of pTeam and hTeam to their correct references (10/12).
Message Processing
-Added bCSpread function, it was apparently not added (10/10).
-Changed the pBStatus and hBStatus functions to take class references instead of vectors (10/19).
-Major changes to the two functions above have taken place. All of the inter-defined variables have been stripped out and redefined within the class structure and changes have been made so that the main player/hostile class can be accessed separately of the wingmen class of each entity. It is a much more code-intensive method but I have found no way around it as of yet (10/19).
-I have recoded mRMessage so that it will now call rData from dataSystem and then call and return the result of getMsg from dataSystem. All function calls to this function remain the same (10/19).
-Removed variable types from bHStatus, left some of them in by mistake (10/21).
-Added a new function for the movement system menu options (10/21).
-Added a TODO to remind myself to add a bomb weapon spread menu function (10/28).
Player
-Added a new vector called Wingmen to store wingman objects for battle processing. This is being done to deal with a particular hurdle that would have required a lot of code to account for otherwise (10/11).
-Added a new function to get the size of the pWingmen vector so iteration can be undertaken in other classes and not exceed the bounds of the vector (10/11).
-Moved the pWingmen vector out of this class and into Entity so that all subclasses can use it (10/12).
-Edited the pCShip function slightly for the new database functions (10/28).
-Removed parameter from iWeapon calls in pCxWeap functions and removed the setWeight call from the bomb function as it is no longer needed (iWeapon now sets the weight) (10/28).
Ship
-Added new function to decrement the disabled timer and reverse shield/ship disabled flags (10/9).
-Added new variables and functions to get and set XYZ position on the battle map (10/10).
-Copied SC v0.4 movement system over to v0.5 and made the many necessary changes to make it work with this version of the game (10/21).
-Added several new variables to deal with the movement system added today as well as editing some of the mRMessage calls so that they work properly with the new message retrieval system. Will be making changes to the rest of those function calls later this month (10/21).
-Added extra checks into the initHPoints function to display a message if there are no open hard points for a particular weapon group (10/28).
-Added an AI version of initHPoints that uses the functionality of the previous version of the function without the messages (10/28).
-Changed the way initShip executes. Now that we have a new method for getting data the old data access function calls had to be removed and a call to rData had to be added (10/28).
-Changed iWeapon function a bit. Added calls to wSetup to take place in order to get data loaded for the iWeapon function in the weapon classes. I also added rail guns and heavy weapons to the function, they were missing (10/28).
Weapon
-Added a new function called initWeapon to initialize the weapon name to “Not Initialized” for used in later weapon installation processes (10/28).
-Changed wSetup function so that it calls rData with the passed wCode. This sets up the data for retrieval in the iWeapon function (10/28).
-All iWeapon functions changed to reflect the new data acquisition method (10/28).
-I found some strange problems in the implementation file. Some functions were repeated or not placed in the correct areas. Offending blocks of code were either removed or moved to the correct areas (10/28).
-Added the functions for several classes that were missing them, such as the getWeapon function in Rail and Heavy as well as some get functions in Heavy (10/28).
-Removed setWeight from the bomb class as iWeapon now sets that variable (10/28).
Wingman
-Created this new class to deal with wingman entities; this way wingmen can be initialized from the station when they are hired, the Player can modify their load outs, and they are not as costly because all of the unnecessary Player variables and functions are not included saving memory space. Some new issues are presented but they are going to be less code intensive as things were previously and less convoluted (10/11).
-Added the constructor for this class to the cpp file (10/19).
-Added a new function, wSetup, to initialize the variables of the class and associated member class(es) (10/19).
December
Project-Wide
The Hostile class has been renamed to NPC. As such all references to the class have also been changed across the entire project (12/6).
Began the process of changing "set" functions that use the operator parameter to determine the operation to undertake from "set" to "update" (12/30).
Battle Processing
Fixed a problem in the hInit# functions. Due to changes with the way that weapons are now installed I had to change some of the code in these functions so that the hard point will initialize and then the weapon will be installed (12/4).
Fixed a small but heavy hitting bug in the choose weapon function call parameters (12/4).
Modified the tHail function to take new parameters and did some coding in it (12/6).
Added tAffinity and bTResponded variables to deal with the new code in tHail (12/6).
Modified the tHail function slightly (12/7).
Added several new bools for the battle loop to account for changes due to hailing system (12/8).
Completely reworked the battle loop processing. Due to changes to how the menus before battle and in battle are done I had to separate some of the menu options into to menus. Hailing, detection of enemy load out are now in a pre-battle menu along with prepare to fire and retreat options. This menu will loop until one of the bool flags trips it and then the loop may go into the battle loop proper or skip it and go to endBattle (12/8).
Changed around endBattle function a bit. I made the if/thens a bit more steamlined. I originally had checks for if the player retreated three times throughout the code; only needed it once so I placed all of the code in a check for that (12/8).
Added two sets for bDPEscape, previously just escaped, to true if the player successfully retreats (12/8).
Continued work on tHail function (12/8).
Added some more comments around the file (12/10).
Fixed a few wrong Boolean sets in the tHail function (12/10).
Changed bDTSurrender reset value from false to true (12/10).
Added the player ship movement option to the battle menu in the battle loop (12/11).
Moved some Boolean resets underneath the battle loop (12/11).
Added a mRMessage call to display a temporary message for the trading function until I get it added in 0.6A to the tHail function (12/11).
Added a bITNHostile set to true if the target does not return the player’s hail (12/11).
Started coding the main AI in the battle loop. AI actions will be carried out by randoms and ranged if/then/else ifs. These will be differentiated in chance of getting picked based on the difficulty selected in later version of the game (planning to add difficulties in 0.6A) (12/12).
Added the AI version of the firing solutions function, albeit very simplified (12/12).
Added several new variables to hold AI task randoms in the battle loop (12/12).
Fixed a typo in the battle loop where an ‘i’ was missing from an if statement checking the player’s wingmen (12/12).
Changed ship and planet to bShip and bPlanet in the battle loop to conform to the Boolean naming convention (12/13).
Moved the AI tasks code to its own function in order to cut back on used code space (12/13).
Created a new aiTasks function based off of the one for npcs for player wingmen (12/13).
Modified both aiTasks function to take specific parameters. The NPC version takes the current npc attacker and the player object it is targeting. The allied version takes the current ally attacker and the npc object it is targeting (12/13).
Found a serious issue with the hInit functions, again. The wingmen were not be initialized into the wingmen array and they were also not being set up correctly (12/13).
Began changing the way that wingmen are called from the NPC array, all of the calls are missing -1 from the .at(i) portions (12/13).
Renamed tHail to bPHail since there will be another hailing function for NPC ships (12/13).
Added the rest of the aiTasks calls to the battle loop, which is now finished for ship to ship battle; planetary battle will be tackled next (12/13).
Removed the hail option from the allied ships aiTasks, it is not needed (12/13).
Redid a few comments (12/13).
Added a new condition to battle loop attack selection so that only ships in battle can fight. This was to account for a new way of tracking ships during battle that have not been destroyed but are no longer participating, ones that have retreated for example (12/16).
Updated the way in which the battle loop checks to see if all enemy ships have been destroyed. Being destroyed is no longer the only option, ships can now have retreated or surrendered and the code was changed to reflect this (12/16).
Renamed hDestroyed to hNIBattle to more accurately reflect what this variable now tracks (12/16).
Fixed a few typos in comments around the file (12/16).
Did a lot of work in aiHTasks. Added in more code for the enemy to player hailing process and allowed for enemy ships to retreat or contact the player to surrender based on the health left of both the enemy ship and the player. Based on these values the enemy ship may also contact the player to demand surrender (12/16).
Found a huge problem with the code. The if statements were using or operators instead of ands. Because of this the code would have executed no matter what as some of the options would have included all values below a maximum value. This has been fixed but still needs to be fixed in the aiATasks function (12/16).
Added in two more bAITask random variables for processing some of the more complex or less likely options (12/16).
Added another two variables to hold double values for the percentage of hull points remaining for both the npc and player ships being worked with while the npc or ally ai is calculating their tasks (12/16).
Fixed a small issue, one of the npc wingmen if statements had one too many parentheses (12/17).
Continued work on the AITasks function for npcs. Fleshed out the hailing code block some more and added in the chances for certain events as well as added in TODOs for further specific code (12/17).
Added a Player class parameter to the parameter list for the aiHTasks function (12/18).
Added a captured check for player status for determination of ending the battle (12/18).
Did the same as above for the endBattle function for dealing with getting rewards (12/18).
Added a new else if to the code in endBattle to deal with enemies that have surrendered to the player. Their ships, if salvaged (they are done so by default right now) produce twice the resources (12/18).
Fixed some issues with the aiHTask and aiATask functions. I was using the opposite target variables than I should have been using causing the AI to attack their own side instead of enemies (12/18).
Continued work on the hailing section of the AITask function (12/18).
Updated a few function calls to take into account recent changes to those functions (12/18).
Added several TODOs to remind me to consider options for future features as well as consider how those features need to be implemented and what changes will be required to other classes (12/18).
Fixed a call to aiHTasks that was missing a Player class parameter pass (12/19).
Fixed the NPC wingmen rewards code so that it works correctly. I had made it so that wingmen always game twice as many resources instead of only when a wingman ship was captured (12/19).
Fixed the rest of the hSetup calls in the hInit functions (12/19).
Finished the aiHTasks code and copy, pasted, and edited the code for use in the aiATasks function (12/19).
Added a new array variable to hold ransom values. Might change this to a vector in the Future (12/19).
Database
Fixed a typo in the database for the target_name in the Mission_Data table (12/6).
Added the default main mission to the mission data table (12/6).
Added in a new message for coming soon features (12/11).
Began working on the AI task functions by adding in the damage function calls to start damage processing for both hostile and allied npcs (12/13).
Added a few new messages to the msg_data table (12/16).
Added several new messages to the msg_data table (12/18).
Added new vectors to the class to handle defense and module data queries (12/22).
Removed the valueX vectors as they are not needed, added them when I was going in a different direction with the database function (12/22).
Added several new functions to deal with defense and module data queries (12/22).
Began work on creating the save file structure (12/22).
Added about 13 new tables to the save file .sqlite file (12/23).
Have started the process of adding the necessary functions, code, and existing code edits to include these new tables into the database querying system (12/23).
Began coding the new functions (12/24).
Added a new function to get the number of rows in a table for use when making multiple elements in a vector (12/24).
Added a few new variable to deal with iteration through for loops for multi-element vectors (12/26).
Added some new code to a few of the functions to detect if there are any rows in the table and then to iterate through a for loop for that number of times to get all of the records from a database table (12/26).
Fixed some serious bugs in the data query code for a few functions that would have caused issues or outright crashes with the game. Several of them revolved around having incorrect vectors being used for certain functions. Others were due to wrong ix variables being used in the column queries (12/26).
Added some extra code to the getCount function for more simplification of the mess it was prior to today (12/26).
Changed some of the code in the function code added today so that the .at() portion of the vector calls used .size()-1 so that any length vectors could be used in those instances for multi-element vectors (12/26).
Found a critical oversight in all of the functions that query the database. I was missing a initialization of the vector element that would be used. This would cause an instant crash when the database was queried in any capacity. Started adding the push -backs in starting with the newer functions (12/26).
Added a detailed comment block on the relationship between weapon hard point vectors and the weapon spread vectors and how the data would be saved and then loaded into these objects. Placed it in the Ship header as well (12/26).
Added the rest of the push_back calls to the data query functions (12/26).
Finished coding the data query functions (12/26).
Added a TODO to remind me to add functions to clear the vectors once they have been used (12/26).
Added two TODO to remind me to look up how to query bools from the database and to add the code to do so in the planet data query function (12/26).
Fixed a few typos made during yesterday’s work (12/27).
Completed a few TODOs from the planet data query (12/27).
Changed two planet data table fields in the save database from bool to ints because sqlite cannot work with bools due to how it is written; the table types are there by error of the software I am using to edit the database tables visually (12/27).
Fixed two more typos, one in the newer code and another in the older code (12/27).
Fixed another typo in the message data query function where messsage, instead of message, was being used (12/27).
Added the vector clear function calls to each of the returnxResults functions (12/27).
Removed all but one of the weapon spread databases for both player and wingmen. I then compressed and rewrote the code to remove the 600 lines of code that were not actually needed. Now the functions will load the data using the double nested for loop method (12/29).
Added all 13 of the save functions and the code for them. Will need to go back through and add in error message catches for the queries though for debugging purposes (12/29).
Added a few more sql variables to store data. There were not enough in a several cases (12/29).
Fixed several types in the sql variables (12/29).
Added a function to delete the data from specific tables when saving over old save data (12/29).
Renamed a few table fields in the save database (12/29).
Removed several items from the player and wingmen ship data save as they were not actually needed (12/30).
Removed the resource fields from the player and wingmen ship tables in the save database as they are not needed (12/30).
Removed the resource variables from player wingmen ships, evidentially I forgot to do this yesterday (12/31).
Data Placeholder
Added two new structs (12/22):Module
Defense
Added the following structs (12/23):planetData
pDefData
sPInv
pSData
playerData
pShip
pSSpread
pSHPVect
pWingmenData
pWShip
pWSSpread
pWSHPVect
stationData
Changed bIsPOwned and bIsDest in the planetData struct from bool to int because Sqlite cannot deal with bools from a table. These values will be translated to bools through if statements and vise-versa during imports (loads)/exports (saves) (12/27).
Added sPID to the pSSpread and pWSSpread structs to track the spread that each weapon entry belongs to as part of the work to shrink, massively, the size of the loading/saving code for those objects (12/29).
Removed the resource variables from the ship save data (12/30).
Removed the resource variables from player wingmen ships, evidentially I forgot to do this yesterday (12/31).
Forgot to add the pID to the planetData struct; did so now (12/31).
Data System
Added all of the needed functions, with code, to get and return the data for defenses and modules (12/22).
Added defenses and modules vectors to hold data for those structs (12/22).
Added a bunch of variables to store information while it is added into the database during save operations (12/26).
Added a few more iteration variables in case they will be needed as the save functions are created. Can be removed later if they are not needed (12/26).
Fixed a typo created yesterday; period instead of a comma which caused other errors (12/27).
Changed the return type of getWType from int to string for conformity with other areas of the code and database. I also created an if statement structure to return the value based on the return from the database (12/29).
Added and started basic coding for the save data functions (12/29).
Added a declaration for the data loading functions; no code yet (12/29).
Added 13 vectors to store data for saving or loading to and from the database (12/29).
Edited the getPNames function to work with the current way the code works (12/29).
Started coding the save data function (12/30).
Continued work coding the save data function. Station and planet sections are left to do as well as relationships and missions which I just realized were not included (12/31).
Added temporary vectors to store hardPoint classes for the spread and hardpoint vector save sections of the save data function (12/31).
Added the code for stations, station inventory, and planet data saving (12/31).
Created a vector to hold the station inventory for saving the data (12/31).
Added some more temp vectors to store data for saving (12/31).
Finished work on all of the currently added vectors for saving data. Relations and missions will also be done soon (12/31).
Defense
Changed a few functions from int returns to float returns and also altered the variables those functions returned or set in order to bring the class up to speed with the changes made after it had been created (12/22).
Altered the setSPoints class to conform to the other set classes (12/22).
Added the code for most of the functions for this class. Still need to code the setup function (12/31).
Corrected a few of the comments to reflect what certain functions are now used for due to changes to the code (12/31).
Renamed setSPoints to updateSPoints (12/31).
Entity
Added several more scrap multipliers and adjusted the values. These will eventually become the difficultly multipliers for the game (12/4).
Moved eWingmen to Player and NPC (12/6).
Redid a few comments (12/13).
Added a new variable to track an entity’s status in battle (12/16).
Added two new functions to get and set the above mentioned variable (12/16).
getNOWingmen removed from this class and moved into both the Player and NPC classes (12/16).
Moved the eCXP variable and related functions to Player (12/22).
Removed planet.h include from the header to prevent cyclical referencing (12/22).
Game
Game will now contain the functions/variables from both planetProc and stationProc (when I add it back in) due to changes in how I want these old classes to operate (12/22).
Changed a lot of the comments in this file. Many still referenced arrays when we are now using vectors for most of our list needs (12/22).
Did some further segmenting of variables and functions now that planetProc and stationProc are being folded into this class (12/22).
Started work on rewriting the save/load functions to use the SQLite database instead of flat files (12/22).
Added the functions, variables, and function code for station processing to this class; still have to go through and get it compatible with this version of the game code (12/27).
Began recoding the save/load functions (12/29).
Renamed all instances of msg to mp to conform with the naming scheme for the mesProc class reference (12/29).
Removed the encrypt/decrypt functions since they are no longer needed due to the new save/load method (12/29).
Started the extensive task of recoding the implementation file for compatibility with the current code. Over 340 lines of code changed and 30 lines added (12/29).
Added a TODO to check out the logic of the sMPurchase function. Was looking over it and something just seemed really off (12/29).
Changed cStations to gStations to fit with the naming for the similar planets vector above it (12/31).
Added the empty constructor code to the implementation file (12/31).
Hostile
Fixed a typo with the cEXPReward function. Not a bug as the typo was propagated throughout the code but incorrect nonetheless (12/4).
Ranamed to NPC (12/6).
Readded the getNOWingmen function to the class (12/16).
Message Processing
Found a major bug in here where the type of weapon being chosen for the single weapon system firing solution was not being passed back at all nor was it being set properly. Fixed the function so that it will operate as expected (12/4).
Uncommented the code for missions now that the code has been added back in (12/6).
Added the first function for the hailing system and some basic code. More fleshed out code will come later this month after per-race-per-affinity level dialog has been added to the message data table (12/6).
Continued work on bHail1 by adding in the full if/then/if else/then/else structure for one race for example for the other races later on (12/7).
Started work on bHail2 as well (12/7).
Split the bMenu1 function. Some options, dealing with in-battle options, were moved to bMenu1B while the pre-battle options were kept in bMenu1 (12/8).
Filled out the skeleton of bHail2 (12/8).
Added several new functions to deal with the hailing features (12/11):bHInfo
bHEnemies
bHNothing
bHSurrender
bHTrade
Added class reference for map to the class (12/11).
Added a new function called nBSPos to display player and target ship locations during battle and the distance between them. Will display the information during the player ship move fuction (12/11).
Added several new functions to deal with in-battle hailing between the npc and the player (12/17):NHail1
bNHDemand
bNHSurrender
Added in the code for the functions listed above (12/17).
Uncommented the code for station menus (12/29).
Mission
Merged this class back into the code (12/6).
Made many changes throughout the class to account for changes made to the data system/database situation (12/6).
Added a new function called bPSurrender that handles hostile demands for ransom to allow the player to leave unharmed after surrendering (12/19).
Player
Added some more code to the constructor to set the player’s initial CE Level and calculate the cEXP needed to get to the next level (12/4).
Uncommented the code and functions for Mission and Relation (12/6).
Made multiple changes to the Mission related code to account for recent changes (12/6).
Added code to create the initial mission and relationship for the player (12/6).
Move Player version of eWingmen here, nothing else has changed in how this will work (12/6).
Added the code for the getRAffinity function. It will also add the relation if it is not present (12/6).
Added new default relationships for the Player with Juslorth and Sluikan (12/6).
Readded the getNOWingmen function to this class (12/16).
Removed a few old variables from the class because they are no longer needed (12/22).
Moved the eCXP variable/set|get functions from Entity to this class since it is the only object that actually uses it (12/22).
Added the following functions (12/30):getCEXP
getCXPTNL
setCXPTNL
updateCEXP
Planet
Added vectors to hold defenses, shields, and defense ships (12/22).
Added a couple new functions to get the sizes of the vectors listed above (12/22).
Commented out the resource variables for now (food and water). They will be added int the game in version 0.6A or 0.7A (12/23).
Added two new bools to store if the planet is player owned and if the planet is destroyed; destroyed will eventually be changed to pillaged, which will also incorporate a timer. See the features wiki article for more information (12/27).
Added pID to the Planet class for tracking planets and their defensive assets in the database for save loading (12/29).
Added the plID variable to the class and the function to get it (12/31).
Added the variables and functions to get and set the disposition and affiliation of planets as well as adding the variables to the constructors (12/31).
Planet Processing
planetProc has been removed and the functions moved to Game (12/22).
Relation
Merged this class back into the code (12/6).
Fixed up some of the functions in the header to account for recent changes (12/6).
Added the implementation file and coded the functions; had not yet done that in the code (12/6).
S. Inventory
The idea to explode the inventory out into its own class came to me a few days ago when considering the way in which the data would be saved for stations. Doing things this way makes it much easier to track the information with minimum complexity (12/31).
Added the required functions and variables for the class. Information it contains includes the item id and the number of items stored. Each element of the sInventory vector is now a "slot" and the maximum number of slots refers to the size of the vector. This class will eventually also contain a variable to track the space used by each element (12/31).
Added the code for the functions (12/31).
Moved the class into its own files (12/31).
Added the variable iSpace to store the space of the items contained in the inventory slot (12/31).
Shield
Added to this class so that information can be set and retrieved (12/22).
Changed some functions and variables to use float instead of int (12/22).
Had a "doh" moment when I realized I have never implemented shield regeneration functions for any shield objects. Started the process here and will also add a similar function to the Ship class; in the future shields will be modules and as such I have already taken shield regen values into account there (12/22).
Added the code for most of the functions in this class. Still need to do the setup function (12/31).
Added updateSP as it was missing for some reason (12/31).
Ship
Added some comments to the code and also added a TODO to remind me to look into the hard point code execution; something smells fishy with it (12/4).
Edited the sPMove function to take a Player and NPC parameter which is then passed on to message processing during the nBSPos function to calculate the distance between ships (12/11).
Added the function call to nBSPos in sPMove (12/11).
Added several new functions to get the number of hard points for rail and heavy weapons then added the code for all of the functions. They had been created but had no code (12/13).
Added in six new random storage variables to hold values for npc ship movements (12/17).
Added the AI ship movement function to the cpp file and began working on the coding for it (12/17).
Added a class reference to the map class (12/17).
Added a new function called clearSData that will initialize the player ship to default values if the player surrenders to hostile AI and they choose to steal the ship or capture the player (12/18).
Completed the coding for the AI movement function and copy, pasted, and edited the code for allied ship movement as well (12/18).
Added a detailed comment block on the relationship between weapon hard point vectors and the weapon spread vectors and how the data would be saved and then loaded into these objects. Placed it in the Database implementation file as well (12/26).
Added the following functions (12/30):getBH
getUBH
getSWHP
getULHP
getUMTP
getURM
getUHWB
Added a sUX variable for each weapon type so that the used hard points can be tracked. Will need to update some of the functions within the class to use these now instead of previous methods (12/30).
Added some more comments to the header file where I thought they were needed to explain function usage (12/30).
Added another new function to return a specific weapon spread vector (12/31).
Added a few other functions to return information required for data saving such as the maximum number of spreads the player can currently use (12/31).
Added elses to all of the if statements succeeding the first one in the getSSize function. The way it was setup before meant that each of the if statements would be checked. This way only a certain number of statements will be checked and all those after the one that is true will be skipped resulting in more efficiency (12/31).
Station
Removed stationProc from this class and moved it to Game; this includes all functions, code, and variables (12/27).
Readded the Station class into the code but I will have to do some heavy editing to make the code compatible with the current game code (12/27).
Added sID, a new variable to track the station ID, to the class. Added it to both constructors as well as created get/set functions (12/29).
Added in a few new variables to handle things that were done in the database in regards to stations (12/29).
Added in some more comments (12/31).
Added or modified the following functions (12/31):getCISlots
getSID
getAffil
getISItem
getISIAmount
getISlots
getDispo
Added variables to store the disposition and affilitation of stations. These had not yet been added. Added functions to get the data as well as added them to the constructors (12/31).
Changed the sInv vector from an int vector to one of a new class called sInv. See the class section above Shield for more information (12/31).
Made changes to much of the class to deal with the above change log entry (12/31).
Added the following functions (12/31):getCUSpace
getMISlots
Added sUSpace to keep track of all of the space that has been used (12/31).
Trade
Added this semi-empty class (it only has a constructor) in prep for work on 0.6A (12/11).
Weapon
Made a minor edit here to the weapon types list in the comments to remove defenses (12/22).
Added a new variable to weapon to store the weapon id. Also included the functions to return and set this value (12/31).
Added the wID data call to all iWeapon functions. Still need to add the function to dataSystem, however (12/31).
Wingman
Added resource and the cEXPReward variables to the class (12/4).
Added all relevant functions to the above change; many were brought over from Hostile (12/4).
Removed this class and placed Entity vector for it into Player and NPC using themselves as the vector type (12/6).
2014
January
Project-Wide
Went through and made each and every class reference unique to each .cpp file it was used in. There were some massive issues being caused because these global references were conflicting between class files (1/14).
Attempted to deal with any cyclical referencing proactively by creating forward declarations for any class that had included a header file that, that same class was also included in (1/14).
Battle Entity
Added several new constructors so that other class types could be used with this class including planet, shield, and defense (1/10).
Added the “clear” function for planets as they will be the only type with a pointer out of the new types (1/10).
Battle Processing
Decided to split the battle loops into different functions, one for ship battles and one for planet battles, as it was getting much too confusing (1/5).
Began editing all of the battle loop function calls and those function’s header definitions to use the planet pointer (1/5).
Coded the main structure of the planet battle loop however there is still a lot left to figure out and work out in terms of attack order and how to do the damn thing without having too much repetition of code (1/5).
Added several new variables to deal with planet battle (1/5):bPDBattle
pBAShields
pBPDTarget
bPHShield
bPTIDefense
pBPSTarget
Added the planet header include to the header file (1/5).
Continued working on the planet battle loop. Finished the intermediate coding and began editing existing code for other functions (1/10).
Added several new functions for dealing with planet battles (1/10):bHail_PB
getPTarget_PB
bPFSolutions_PB
Added a bool called bPBattle to track when a planet battle is taking place for use later on in the code (/1/11).
Fixed a few problems with for loop conditions in the battle loops (1/11).
Added aiHTasks_PB and went about recoding the function to mesh with planet battles (1/11).
Added a planet point parameter to endBattle (1/11).
Started adding the code to get rewards for planet battles (1/11).
Recoded bFSolutions_PB to take information for planet battles (1/11).
Commented out bAIFSolutions for the time being as I could not find it being called anywhere (1/11).
Dealt with some missing breaks from while looks in various functions (1/11).
Added in the rest of the hostile initialization functions (1/13).
Added and coded the planet battle aiATasks function (1/13).
Added a planet pointer and a bool for defenders to the ship to ship battle loop. Defenders flag is there for when I add them to planet battles in 0.6A while the pointer is there for the call to endBattle which now requires a planet pointer pass (1/13).
Edited the endBattle function and completed the coding to add in gained rewards from planet battles (1/13).
Fixed a problem with the comment on if (pBAShields != 0) in the planet battle loop. It stated that the condition was checking if there were no active shields instead of is there were active shields (1/13).
Added the code for the planet bombing section of the battle loop for players (1/13).
Added and edited the code for allies in planet battles (1/13).
Added a small bit of code at the end of the defense attack code to remove, through subtracting from the hostiles variable, the defense from the battle (1/13).
Fixed a typo in the comments on ranks and what should be unlocked per rank (1/13).
Changed the hostile initialization functions slightly so that hostile rank now also corresponds to the rank initialization being undertaken. Before ranks would be randomized 1 to 5 no matter what rank was being initialized. Now the high value in the Random() function is equal to the rank being initialized (EX: initHR4 the high value in the Random() function is 4; 1/13).
Removed loops from the AI task functions, I am not sure why I had added them as they are not needed (1/13).
Changed the bAITask1 value range as movement was removed since it will not be a factor in the planet battle system in 0.5A. I will uncomment it in 0.6A when defenders, ships that are defending a sieged planet, are added (1/13).
Added std::vector to the header file; it was missing for some reason (1/14).
Several function calls were missing the parenthesis. Added these (1/14).
Changed the pMenu1 call to bMenu1A (1/14).
Removed several instances of sMove where it will not be used, yet (1/14).
Went back to using one of the previous battle menus as nothing has changed between ship to ship and plant battle for this particular instance (1/14).
Fixed a call I typoed (1/14).
Added the correct function calls for planet hailing. Before this change it was calling up the attack function (1/14).
Fixed the tab structure on the AI task functions, it has been hugely screwed up after I had removed the while loops (1/14).
Added bpResult (1/17).
Changed the return values on the battle loops to return strings for extra processing in Main (1/17).
Added bpResult sets where ever needed in the battle loops. This variable will contain the result of the battle and return it to Main where it will be used for further processing (1/17).
Added Game reference parameter to the battle loop functions as it is needed for gOver in Player (1/17).
Added createBInfo in order to catch errors. Added it as part of a debugging block for issues with passed planet not being the correct one; since has been fixed, problem did not stem from here. Leaving the function in though for possible use later (1/30).
Fixed the tab spacing on the variables in header (1/30).
Added the variables dealing with the debug function that was added (1/30).
added bpResult to store the result of a battle. It is used to track certain things for other functions (1/30).
Added a bEnd set to the if statement checking if the passed planet is an enemy world. It was missing before and thus battle was not being carried out (1/30).
Added break to the else statement for the if statement mentioned above so that if a planet matches a player relation but are not enemies then the loop breaks (1/30).
Changed if (!bPBattle) to a while loop that will continue until the player’s choices trip a loop break (1/30).
Added a bRetreat call to the while loop, will change this to “leave” in the next version with its own function (1/30).
bEnd sets were missing from several places throughout the first section of the planet battle code. Added the sets in (1/30).
Moved bTSetup and pAParticipants/_PB out of the battle loop as they should only be called once else it will cause never ending battles or crashes due to data errors (1/30).
Moved bool resets out of the else if statement at the end of both battle loops (1/30).
Added the reward code to get exp from destroyed planetary defenses if any exist and are destroyed during planet battle (1/30).
Edited much of the bPHail_PB function, removing some bits from the ship battle function that were not used or needed and commenting out some other bits that are not going to be implemented yet. Those last bits were replaced with the “coming soon” message (1/30).
Damage
Added the following functions (1/10):dmgProcessing_PS
dmgProcessing_PDP
clearBAT_PB
dmgProcessing_PDD
dmgProcessing_PB
bAttack_PS
bAttack_PDP
bAttack_PDD
bAttack_PB
bDamage_PS
bDamage_PDP
bDamage_PDD
bDamage_PB
setupWQueue_PD
setupBAT_PS
clearBAT_PS
setupBAT_PDPA
clearBAT_PDPA
setupBAT_PDDA
clearBAT_PDDA
setupBAT_PB
Began recoding for the new functions (1/10).
Added several new functions (1/11):processDamage_PS
processDamage_PDP
processTDamage_PDP
processDamage_PB
getTDamage_PDP
Added bCSpread to hold the value of the size of the current weapon spread (1/11).
Modified the nanite damage multipliers a little bit (1/11).
Added code for most of the previously added functions (1/11).
Minor and major fixes to function calls and entity references (1/11).
A small edit to remove an unneeded entity reset (1/13).
Forgot to add the bool parameter to one of the processWQueue calls (1/14).
bDamage_PDD function was missing from the class, added it (1/14).
Database
Finished initial coding for the sData function (1/1).
Decided on a different approach for loading data. Originally it would be a single class like sData called lData. But I already coded many classes to get data from the save database tables so these will be used instead (1/1).
Added some more results vectors for newer table entries for the save file (1/1).
Added the database query functions for missions and player relations (1/1).
Forgot to remove the resource fields from the ship insert queries. Fixed that today (1/1).
Added a new field to the ship database tables and percolated that change through all of the database and data system related functions so that the max number of usable spreads could be saved and reloaded for use (1/1).
Fixed a problem with the mission data query. I had forgotten to change the data placeholder vector’s members for saving information to the vector so I had to redo many of the data sets for both of the mission vectors (1/1).
Renamed Moduel_Data to Module_Data (1/2).
Fixed a problem with the wingmen HP vector query code. The weap_id field was not being set properly and instead was still on wID from the player version of the code which is used for winman ID in the WM code (1/2).
Went through and added in all of the bug reporting code for fail cases in the SQL queries (1/5).
Added a new function called createBInfo to create the file string and the time and date string and get them ready to be sent to the debug class along with a direct __LINE__ macro call in the parameters of createBReport (1/5).
Added several new variables to deal with debugging as well as a bool bErrors pointer parameter to all of the functions that get data from the database for dealing with error checking/handling in dataSystem (1/5).
Removed some of the unneeded, leftover code from previous ideas for the loading of data (1/5).
Readded the race field to the Generated_Planets table and then changed all of the relevant code to get and set this field’s value (1/10).
For some reason I had an & in the debug reference; removed it (1/14).
Added query to get the weapon ID from the weapon_data table (1/14).
Forgot to add bErrors to the getCount call in getPSSResults; added it in (1/14).
Added a new table to store item data and added three clone items (1/15).
Added several new messages to deal with the clone system (1/15).
Added the functions to query the data and then return it for the Item_Data table (1/15).
Added several new messages (1/16).
Added a few new messages (1/17).
Recoded all of the database queries to be much more efficient (1/21).
Added a second statement variable because other functions that require a statement that are being called during a query were causing that called function to override the original query and thus returned incorrect data (1/21).
Added iType to the station inventory table and added the necessary code to account for it to various functions (1/21).
Added comments to several areas (1/21).
Recoded all of the getResults functions so that they use for loops to store the data into the dataSystem functions. A problem was made when saving the entire vector into the dataSystem vector and then clearing the results vector. Since the memory space was copied into the passed vector, clearing the results vector also cleared the dataSystem vector. Must store each item individually through a dataSystemVector.member = resultsVector.member format in a for loop (1/21).
Added a new table to the save database to store save flags to allow me to only load specific data if it was saved. This was done to deal with loading errors caused because no data was found due to no data being saved to that particular table because there was no data to save. This table will also be used to store other flags as time goes on (1/30).
Added functions to get and return the save flags mentioned above (1/30).
Added finalize, a new function to take over the place of the finalize calls that were once in closeDB. This function is called from inside the prepare_v2 if statement block and can be used for any statement object via parameter pass. Needed because old method of finalizing statements was causing compile and query errors (1/30).
All functions in this class were altered due to the above edits and also to place else catches for all if statements that if failed could mean SQL or other errors and would then require logging (1/30).
Added sFlags and sFlags_Temp vectors (1/30).
Added data to hold initial string query; see below (1/30).
All get data functions altered if one or more of their queries were for strings. Due to an issue with unused tables, a problem later fixed as mentioned above, the process of getting string data from the save database has been exploded into two parts. Queried data is saved into data, a const char*, and then checked to see if data does not equal NULL. If it does, prior to the changes made later on the code would error out with invalid null pointer assertion failures because strings cannot be null. A check is now used to alert through the log when null data is found and the game will no longer crash (1/30).
Added the following variables to deal with apostrophes in planet names (1/30):find
temp
foundAt
The save block for RData was using ID instead of RID which caused a query error resulting in no data being saved. Fixed this bug (1/30).
Planet names containing apostrophes were causing syntax errors in the SQL statements. Implemented a replacement system to replace them with quotation marks and then back to apostrophes on load (1/30).
Added comments to the first set of get/return functions (1/30).
Standardized the way that the functions are executed. Before there were two variations of when the sqlite3_prepare_vs if block was started and the for loop for rows was started. Rearranged these so that they conformed throughout the implementation file (1/30).
There were several instances of incorrect functions being called to collect data or typoes in names for struct members. A total of 24 bugs related to these conditions were fixed (1/30).
Finished expanding the return data functions (1/30).
Added push_backs for passed through vectors into the for loops for the return functions. Easier, and much cleaner, to do this here instead of in dataSystem (1/30).
Preliminary work done for efficiency improvement in saving data undertaken. I will be trying to get the save time reduced as time goes on. Right now it takes about 65 seconds on my system (1/30).
Added a -1 weapon record to the database to deal with an issue loading weapon data (1/30).
Removed “Timestamp:” from the bTDate set in creatBInfo (1/30).
Added several hundred hailing related messages (1/30).
Data Placeholder
Added the sMWSpreads member to the ship structs as per the change log entry in Database (1/1).
Added the mission and relationship data structs (1/1).
Added the race variable back into planetData (1/10).
Added the struct for item data (1/15).
Added struct for save flag data (1/30).
Data System
Added several new vectors to store queried data for loading as well as temporary vector storage (1/1).
Edited the lData and sData function declarations slightly to remove some unneeded parameters (1/1).
Added a function to get the mission id from the queried database during mission creation (1/1).
Added several necessary includes though one may cause a cyclical referencing issue that will have to be dealt with if it does (1/1).
Fixed a function call to station due to a change made tonight (1/2).
Finished the loading function code (1/2).
Fixed the "moduel" type in the rData else if statement (1/2).
Added a missing function to get the range data for planetary defenses (1/2).
Added a new function called problems to alert the player if an issue has occurred while getting, loading, or saving data. The parameter will pass through a string that indicates what the game was doing at the time of the error (1/5).
Added bErrors and bECount to handle the error checking code added to this class and Database (1/5).
Removed unneeded parameters from lData and sData (1/5).
Edited the save and load data functions to deal with re-added race in the planet data (1/10).
Finally added the getWID function in. Had been forgetting to do so for weeks but finally remember about it (1/14).
The two getSName functions in lData were not being called correctly. What was being called was getName, which does not exist and so was causing linker errors. Fixed (1/14).
Found a function call that was missing the parentheses (1/14).
Due to removed functions several for loop condition statements had to be altered (1/14).
Added the items vector to store item data and then added all of the functions (7), with code, required to get said data into other classes as needed (1/15).
Fixed a few problems in getPNames (1/21).
Added the iType variable to the load and save data functions for station inventory (1/21).
Added a new function to check the value of any passed flag. Used in conjunction with if statements to check for 0 values to skip over data that was not availalble for saving (like player wingmen data if the player has no wingmen; 1/30).
Added saveFlags vector (1/30).
Removed push_backs from rData, left the clears in though (1/30).
Added call to get save flags near the top of lData (1/30).
Found a serious bug while walking through the code looking for why the database was flaking out and causing crashes while loading. Because of the way weapon data is being loaded a connection to the database was being made while the connection to the save file was still open. This caused a complete failure of the loading system and crashes due to null or invalid data. Fixed by closing the save file connection BEFORE any call to a function where weapon data is set and then reopening the save file connection once those functions have completed their task (1/30).
Went through and, due to save flags, separated out most of the data load blocks where I had combined like data (player ship, ship hard points data for example). Instead these needed to be done separately so the flags can do their job (1/30).
Due to the above I found 10 instances where data was not being used correctly. Several times ID values created specifically for defining where the data belongs were not being used because the data had been included inside of other for loops. Station inventory data for example. When these were pulled out of the for loops and placed on their own I changed the code so they would use these ID values (1/30).
Ran into more index invalid errors than I care to recall. This was due to forgetting to push_back on nearly all of the vectors being used from dataSystem. Added in the push_backs where required (1/30).
Split the mission data saving blocks apart into two different blocks (1/30).
Changed the problems function output slightly, before flags were added, to let the player know that missing data was normal in some cases; will leave it there for now (1/30).
Debug
Changed a few things with the class. The time stamp is calculated differently now and not done in this class. It has become a parameter pass (1/5).
Added the getBTStamp function due to the above entry (1/5).
Renamed getBClass to getBLocale now that it will return the file name and the line that the __LINE__ macro was called on (1/5).
Added a link to the bug tracker into the bug report generation code so that users are reminded to report any errors that are generated in the log file (1/5).
Added some extra white space to the log writer for easier reading (1/5).
Removed extra Timestamp: addition to the output (1/21).
Defense
Added a missing function, getDCXP (1/2).
Added a missing variable, dCXP (1/2).
Did the coding for dSetup (1/2).
Added getMSPoints and the dMSP variable to go along with it; stores maximum structural points for a defense (1/11).
Added the turn based damage system to this class; ported from ship and changed the important bits to fit this class (1/11).
Added dCXP, it was missing (1/14).
Added the missing code for the getDCXP function (1/14).
Entity
Added the setStatus vector and the code for it (1/1).
Updated the applyXDamage functions to use updateX instead of setX (1/1).
Added in mission functions: getName, getRank, getRace (1/14).
Added in missing function code for (1/14):getName
getRank
setDispo
getRace
getAffil
getDispo
setRank
setName
setRace
Added in the declarations and/or code for the following functions (1/14):getStatus
rEntity
gOver
Started the process of adding the game over code starting with clones (1/15).
Added sID, sIID, and iID for dealing with clones (1/15).
Added a player reference pass to gOver (1/16).
Finished the code for gOver (1/16).
Moved setCXPLevel to Entity form Player and renamed it updateCXPLvl and altered the code to conform the other similar functions. Done due to an issue when loading data that seemed to randomly add one to the player level (1/30).
Game
Added two new functions, with code, to load stations and planets into their respective vectors (1/2).
Worked extensively on sWMLoop. Added in the rest of the switch cases for each weapon and updated the code to comply with the current game code (1/5).
Removed any passes of iCode to inter-class functions as this is not needed (1/5).
Made changes to sMPurchase weapon due to the above change log entry. I also changed any "set" function calls to "update" and also added in the station cost multiplier to item costs (1/5).
Looked over the if/then login in sMPurchase as per the TODO I put there a few days ago. The logic is sound; my brain was not working earlier due to lack of sleep. I switch the way the logic works towards the end because the if statements would be way too long and I think that is what threw me off. Left some very explicit comments on what the logic does and documenting how and why the logic changes mid-way (1/5).
Added code for the Ship section of sMPurchase though it is not completed yet. This part of the function is interesting because we have to handle equipped weapons if the player decides to change ships and we have to store weapons that cannot be used by the new ship (1/5).
Added several new vectors to hold ship weapon hardpoints (1/5).
Changed the way getIType returns the values; direct string returns now instead of the weirdness it was before (1/5).
Changed some function calls due to changes in other classes (1/5).
Added the planet and station creation code including the newer variables added recently to each (1/5).
Added several new variables to hold random values, strings, and other information for the creation functions (1/5).
Finished the code for new saving and loading functions and also added some code for error checking (1/5).
Added two bools, bDSComplete and bDLComplete, for error checking (1/5).
Removed several iType parameters from functions. These were left over. The variable is now part of the class and does not need to be passed (1/15).
Added useClone, sMBClone, and sMRefund functions and coded them (1/15).
Renamed sBar to sMOffice. It will now function as the non-bounty/non-EA mission office (1/15).
Added many new variables. Some deal with the clone system while the others are for ship repair at stations (1/15):bRepair
pAffin
dPerc_T
sRCPPX
sRCPPR
sRCPPDi
sRCPPD
dPerc
dPerc_R
dPerc_I
dPerc_I2
Finally got around to coding the station main menu functions. Started with the repair docks function which is now done (1/15).
Started coding the useClone function. When using a clone the player will experience a loss of combat EXP. This can lead to loss of levels if the drop is significant enough. The amount of CEXP lost is dependent on the clone used (1/15).
Added the item group to sMPurchase (1/15).
Added the code in for sMRefund and now need to modify the calls in other functions to compensate (1/15).
Added oldCXPTNL (1/15).
Change pPlanets to return an int (1/16).
Added the iSPlanets function (1/16).
Coded fPlanets, pPlanets, iSPlanets, rSPlanets, and getDList functions (1/16).
Added startMission and completeMission functions and coded them (1/16).
Added several new variables (1/16):pRID
nSPlanets
xarnReward
mID
gMStart
xarnMultiplier
Added nSPlanets to the constructor to initialize it to a value of 15. This is temporary as the value is going to be based off of several modules installed on ships in future versions (1/16).
Added in the other two if statements in useClone (1/16).
Coded sMOffice, sBOffice, sEAFOffice, and pub (got the “feature coming soon” work up) functions (1/16).
Got rid of some unneeded white space (1/16).
Added and coded iTStations, rTStations, fStations, and pStations (1/17).
Moved createStation to the top of the station functions section and edited to actually work. It was using the station ID as its conditional value when that was not what was being passed. Switched them to use the station name instead (1/17).
Added tStats vector to store temporary station objects generated from fStations (1/17).
Added several new variables (1/17):i3
nTStations
nTSSuffix
nTSPID
nTSSV
Edited the fPlanets function so that it would also generate the travel distance while adding the planets to sPlanets (1/17).
Fixed a few bugs in several of the planet generation functions (1/21).
Added createBInfo function to this class as well also because of intermittent bugs. Eventually figured out what was going on and fixed the cause; several of the data sets I had added did not subtract one from pRID and so if the random picked the last element then the function would try to access 243 instead of 242 causing an index out of bounds crash (1/30).
Changed how pPlanets deals with cancel, uses -1 instead of 0; it was causing issues in main using 0 (1/30).
Now that race has been added back in I updated the planet/station creation functions to set the race (1/30).
Noticed issues in battleProc when checking affil against the player relations and found that they were not named correctly. Checked both creation functions here and found that I had been using race names instead of actual affiliations. Fixed the problem (1/30).
One of the population calculation sections in generatePlanet was not properly coded; caused negative populations when the code block was hit. Fixed it (1/30).
Hardpoints
Changed the comments in the class definitions so that they reflect what the members are actually being used for now (1/1).
Moved hpWType from private space to protected space so that all sub-classes can use it (1/30).
Changed all of the sub-class constructors to take a weapon type (1/30).
Main
Stated coding Main (1/17).
Examined previous ways in which Main had been coded in other versions of the game and decided to try and compress the code as much as possible. In cases where certain menus must be called special, non-selectable, menu cases have been added. When these special cases are to be called the menu selection function is locked out and the player is forced into the menu. This prevents having to recode entire while loops in certain cases like in the previous iterations of the game (1/17).
Added some extra function calls required to make planet generation work (1/21).
Added calls to a function to clear off the screen after menus have been displayed to keep the clutter down (1/30).
Fixed a problem in battleProc from here where the planet ID being passed was one more than the actual planet that was chosen by the player. Fixed by using a -1 in the parameter pass to battleProc (1/30).
Map
Added shipEncounter function to calculate out if a ship will be encountered during a trip to a station or planet (1/17).
Coded the shipEncounter function (1/21).
Added encRand1/2 to hold random values for the shipEncounter function (1/30).
Mission
Added three new functions: getMID, getMStateID, and getMState. The first returns the mission id, the second is used to get an int state id for the database and background code, while the last one returns the string equivalent of the int state id for the messaging system (1/1).
Added the mState variable and also a short comment about what the values correspond to in terms of the missions states (0-5) (1/1).
Updated the getRewards function calls to use "update" instead of "set" (1/1).
Added 26 "set" functions that were completely non-existant. Not sure why; functions have been added and coded (1/2).
Message Processing
Began the long process of getting this class code compliant. Fixed a lot of errors dealing with changed function names from other classes and also changes to this class itself (1/5).
Fixed and finished the sMMenu function. Some of it was commented out and other parts were not compatible with the rest of the code (1/5).
Renamed and finished sMMenu3. It has been renamed to sWLMenu. This is also true of SMMenu’s 4-7 which have been renamed based on the weapon and coded (1/5).
Updated sMIInfo to comply with the code (1/5).
Added several variables to hold the station cost multiplier and the resulting final cost for items to much cleaner looking couts in sMIInfo (1/5).
Added a new function call to get the mission state in mInfo (1/5).
Added two new functions: sBSShip and sKVEquipment to deal with purchasing a new ship and then dealing with the equipped weapons (1/5).
Added three new functions: bMenu1B_PB1, bMenu1B_PB2, and bMenu1B_PB3 (1/10).
Added in several new functions to hold data for the planet status screen (1/14).
Added in the missing hBStatus_PB function code (1/14).
Added several new functions dealing with planet battle menus (1/14).
Edited a few of the battle status functions (1/14).
Added in the weapon menu for bombs which was missing completely. Still not sure why it was missing (1/14).
Edited all of the weapon menu functions except lasers so that the values would actually reflect correct ID ranges in the database (1/14).
SMMenu8 and 9 were also missing. Added the code for 8 but 9 will have to wait until I can complete the modules table (1/14).
Added cClone (1/15).
Added sDRMenu1-4 (1/15).
Added several variables to help deal with calculating the cost for ship repairs (1/15):dPerc
dPerc_R
dPerc_I2
dPerc_I
Added the gOver function to print out the game over message (1/16).
Added gGTPlanet and gGTStation functions (1/16).
Added the following functions and coded them:sMOMenu1
sMOMenu2
sSMission
sMOMenu3
sBOMenu1
sBOMenu2
sBOMenu3
sEAFOMenu1
sEAFOMenu2
sEAFOMenu3
Added a couple new variables: bErrors, rCount (1/16).
Added gGTStation (1/17).
Made a small edit to gGTPlanet so that the returned value would not need to be paired with a -1 in order to get the valid ID. This was also done because I had forgotten to -1 the player chosen ID in the information calls and this was the easier fix that would cost less code (1/17).
Replaced a bunch of character selection checks with switches throughout the implementation file. This saved appx. 74 lines of code (1/17).
Reworked the player information print outs so that the tabs lined up everything together. It was a mess previously. Will need to do the same with all of the other information print out functions (1/21).
Added race parameter to bHail1/3 and then commented out most of the if/then/else if statements as only a certain group will be used in this first version of the playable game after 0.4A. The others will be added in as time goes on and will be fully implemented by 0.7A (1/30).
Edited the player choice check slightly to accurately check for invalid input. The way it was written before meant that the value input had to be both greater than 5 and less than 1 at the same time; in other words impossible. Changed from && to || and will have to review all other checks to make sure the same mistake was not made elsewhere (1/30).
Added a function that will clear the screen in two ways. The first uses system”Pause” to get the player to press a key to clear the screen, triggered via bool parameter, while the other just clears the screen (1/30).
Another reason the planet populations were displaying incorrectly was because plMPop was not actually being set (same as with ship max values) and so negative values were returned. Fixed it and found another problem; see Planet changed for details (1/30).
Added code so that if no shields or defenses are detected a message is displayed (1/30).
Fixed an oversight in gGTStation’s first cout where it was asking you to pick a planet instead of a station. This was also present in some other station related functions. (1/30).
Planet
Added several new functions (1/2).
Changed "set" to "update" where possible (1/2).
Added a new function, addPDefenses, to load data for planetary defenses and shields (1/2).
Added code for seven functions that had not yet been coded (1/2).
Readded the race variable to this class (1/10).
Added the pillagePlanet function and have begin coding it (1/11).
Added several global defines for EKS value multipliers for resource rewards (1/11).
Finished coding the pillagePlanet function. In 0.6A I will be varying the amount of resources generated based on the resource being given as well as add in other options for the player to deal with a defeated planet. Right now you can only pillage (1/13).
Added pTDist (1/17).
Added the get/set functions for pTDist (1/17).
Fixed a critical issue that was not allowing the game to compile; circular dependency between Game and Entity (1/21).
Added some missing functions I had forgotten to bring over from my planet gen test that added trailer to planet populations so that huge random numbers were not being displayed all over the place taking up tons of room. Added one for both pop and max pop and used a naming convention I have used on other similar ones where we are returning an approximation or representative value of another variable; getPopS, getMPopS (1/30).
Fixed several issues with the above functions and got them working (1/30).
Fixed a problem caused because plMPop was not being set (1/30).
Added the following variables (1/30):Trailer
sStorage
popStorage
sPPop
sPMPop
Added bIsDest set to the constructors (1/30).
Player
Added the following functions and the code for these functions (1/1):updateFKills
updateDKills
setCXPLvl
updateCKills
updateBCKills
updateBKills
updateMKills
updateTKills
getDPlanets
updateDPlanets
Renamed pPlaDestr to pPDest (1/1).
Edited the removeMission function for some changes that have taken place recently. See below for details (1/1).
Added a new mission vector to store non-in-progress or partially completed missions. These include completed, failed, and closed missions (1/1).
Added four functions, two for missions, to allow for loading mission, relationship, and wingman data into the player class (1/2).
Added missing function code for (1/14):updateRelation
getRStatus
getARStatus
Changed getARStatus to return a vector of relation classes so that whatever class uses it can just get everything without needing to go through the player class (1/14).
Renamed eAffiliation to eAfil (1/14).
Added code for the getCELvl function (1/14).
Added code for addRelation (1/14).
Found several major issues with the exp till next level formula. The formula was broken in three ways. First, the left side if the equation was being capped due to the constraints of 32-bit integers. Changing the static values to doubles fixed this. Second, the left half of the equation was not calculating out to the proper number even with the first change so I simplified it to 1000000 instead of 1000 * 1000 and the second attempt with 1000 * 100 * 10. Lastly, the code, if reached, would have thrown a division by zero error because I had been dividing with two in the numerator. All of these have been fixed (1/15).
After more testing of the exp till next level formula I have decided to tweak it a little but by making the second division by 2 a division by 2.3 to add much more variation in the values. Before we were almost always getting “flat” numbers (numbers directly on a ten, hundred, or thousand place with zeros trailing). Now the values are much more varied and random (1/15).
Added a new function called clacOCXPTNL that will calculate out the CEXP needed for the current level the player is on (meaning using the current player level minus 1 to get the exp needed for the player to gain their current level) for checking if clone usage has caused the player’s experience to drop low enough to de-level the player (1/15).
Added cELDown in order to de-level the player due to using clones (1/15).
dded two new functions: setBOKills and getBOKills. These are temporary until I figure out a way to deal with verifying bounty kills (1/16).
Added pBOKills variable (1/16).
Recoded the completeMission functions (1/16).
Added and coded the pSetup function. Some of the stuff from the constructor was removed and place here as well (1/17).
Moved setCXPLevel to Entity and renamed it (1/30).
Relation
A function to set the name and affinity of the relation was missing so these were added tonight (1/2).
Added a second constructor which takes the variables needed to set up a new relation as parameters to expedite the addRelation code in Player (1/14).
Added a new function that will return the affinity as a string based on the range that the affinity is in (1/21.)
Shield
Added functions to set and return the module name (1/2).
Did the coding for initPS (1/2).
Added mName (1/2).
Ship
Added the following functions and code for these functions (1/1):setLHP
setMTP
setMWSpreads
setBH
setRM
setHWB
setULPH
setUMTP
setUBH
setURM
setUHWB
setMInit
Added functions to add elements to the spread and weapon hard point vectors and coded them (1/2).
Added getCSVector to readd some functionality that was lost somewhere along the way. Gets the currently selected spread vector and returns it (1/11).
Readded setCWSystem and then added getCWSystem (1/14).
Added the code for getWHPVSize (1/14).
Fixed a major bug where the max health values were not being set. This would have caused all kinds of issues down the road (1/21).
S. Inventory
Added a variable set to the constructor so that inventory slots are initialized with an item Id of 0 for the data loading process (1/2).
Added a new class to update the number of items in a slot. Conforms to other such “update” styled functions (1/15).
Added a new variable called iType and the functions to set it and get it (1/21).
Station
Added in a bunch of functions (five) that were missing as well as the code for even more (those five and another four) that had not yet been added for some reason (1/2).
Removed a few redundant functions that were not needed (1/2).
Added a new parameter to sSItem, amount, so that I can use that function for loading items from the save database without having to make a new function (1/2).
Changes "set" to "update" where needed (1/2).
Renamed sCUSlots to sMISlots since we do not need to track the number of slots used as we can simply use .size() on the inventory vector (1/2).
Changed how sSItem works to take into account the recent change to the declaration (1/2).
Added code for bIsEAEnemy, getAffil, and getDispo (1/14).
getCSUsed was missing its return (1/14).
Added the missing code for getMUSpace (1/14).
Added removeItem to remove items from the station inventory when used (1/15).
Added pTDist (1/17).
Added the get/set functions for pTDist (1/17).
T. Damage
Forgot to add the code for setATo and getATo (1/14).
Weapon
Added the code for getWClass (1/14).
Added wID and wType sets to the initWeapon function to deal with hard points with no weapons installed (1/30).
Note: All work done on 1/21 is comprised of the work done between 1/18 and 1/21 & all work done on 1/30 is comprised of work done between 1/22 and 1/30.
February
Project-Wide
Finished lowercasing any hardcoded weapon type set or used in a conditional statement (2/8).
Battle Entity
Changed pShield and pDefense references into pointers (2/9).
Battle Processing
Set planet bombing phase to use its own menu during battle (2/6).
Fixed a major problem in the bParticipants setup. The buble sort was sorting even when only one entity was in the vector, causing a crash because the index was going out of bounds. Fixed by requiring more than one entity in the vector else no sorting (2/6).
Started overhauling the bPFSolutions functions because they were not wirrten to correctly utilize the spread system, which I am also expanding (2/6).
Changing how the bPFSolutions_PB function executes so that certain types of battle only allow for certain types of weapons. This is to restrict bomb use to bombing planets and keeping other weapons from being used while doing so as well (2/6).
Fixed a bug where choosing spreads would still show up as weapon system to the setupAType function in Damage. A misplaced else statement was causing the code to jump over damage processing for spreads and no break allowed the code to traverse into the next case (2/8).
Added in code to execute shield regeneration at the end of the turn (2/8).
Fixed a major problem with the code. The battle participant code in bAParticipants in both section was using incorrect interator variables that were and would have caused crashes (2/9).
Fixed a problem with the battle loop for planet battles that caused the game to crash if you attacked a planet with shields twice. I also added in more code so that the game will move on to other phases once a shield is down and also added in the code to move back to the shield phase when a shield regenerates (2/9).
Added a flag to endBattle. The bool I had been using before was not going to work out very well (2/14).
Fixed some problems with the conditional statements in endBattle that were causing none of the code to work (2/14).
Had to recode much of how shields are dealt with in planet battle. This was due to several problems in how shields were both set and handled within the code (2/14).
Fixed a few logic issues in the battle loop that were causing issues under certain circumstances (2/14).
Removed any sets to pBAShields from anywhere but the first for loop of the battle loop (2/14).
Changed the way battle participants are added slightly for defenses. Defenses will only be counted if they have more than 0 SP. This was to fix a bug where destroyed defenses were being used by the game even though the player could not select them (2/15).
Edited some function calls due to changes in msgProc (2/16).
Edited the planet battle menus for new options (2/16).
Added a new bool called bEMenu to deal with menu looping when the player chooses an option that should not cost a turn (2/19).
Found a typo in the defense battle conditional statement that was causing a bug because it was looking for the wrong series of values (less than 0 instead of less than or equal to 0 on pBAShields; forgot to change it after fixing the 1 issue; 2/19).
Recoded 2/3s of the allies planet battle loop for clarity and to update the shield selection code to the newer, working version used in the player’s section; updated to account for the differences between the two. Also reworked the defense attacking section so that allies will choose their own targets instead of relying on the player’s target (2/19).
Finally dealt with the shield regen problem. Added a check so that the shield processing code at the end of the planet battle loop would execute only when it was the player’s turn to attack (2/19).
Damage
Fixed remainder of the single &’s throughout the class (2/7).
Fixed a problem with population damage. When population would be completely destroyed, code was setting population to value of fDamage instead of 0 (2/7).
Added a new processWQueue function dealing only with planet battle functionality. All related code removed from the original PWQ. Commented out the distance related code from the new function because planets do not yet include map coords for placement in battle; they will be added later on (2/7).
Fixed several other problems similar to the one with planet population for defenses and shields. Shields also now are disabled once depleted for a short time (2/7).
Fixed a minor problem (that would have caused a major crash) in setupWQueue_PD where the push_back had the wrong parameter order for hardPoint() constructor (2/8).
Added a new processSDamage function to deal with planetary shield special damage (2/8).
Added in calls to msgProc for damage outputs (2/9).
Added reference to msgProc (2/9).
Edited many of the declarations for functions to include a bAttacker pass (2/9).
Added a temporary Planet pointer for use in certain messages (2/9).
Added bool defense parameter to processDamage (2/9).
Commented out all non-ship-to-ship secondary damages for now; will add them back in sometime in the future (2/9).
Fixed a problem where the defense flag was being used instead of shield for planetary attacks (2/9).
Added a name check to the for loop for checking planetary shields so that we do not “re-target” the same shield twice, causing an extra increase in pBAShields which leads to index out of bounds crashes (2/9).
Fixed a problem that was causing damage after planet bombing to be way too high because the collateral damage variable was not being reset (2/14).
Balanced the weight damage multiplier (2/20).
Database
Added some extra couts to make saving more user-friendly by allowing the player to see the progress (2/2).
Added hailing message back in, somehow they were removed (2/7).
Added several new messages in (2/7).
Added in code to make saving much faster. Further efficiency can be gained but will be figured out later (2/8).
Added a test case fix for the issues brought up during the last parameterized saving test. Successful this time, will start modifying all of the other save code to this format (2/14).
Fixed several problems that were causing data not to save correctly if you loaded a save file (2/21).
Fixed a few minor issues that were keeping player and player ship data from being saved correctly (2/21).
Data System
Fixed a problem in lData where defense and shield ids for planets were not being saved correctly (2/2).
Fixed major problem with the planet defense/shield saving. It was causing zero IDs in the save file for planets that had defenses and shields (2/6).
Major changes to most of the firing solution function code for both functions. Added in code to make it possible to not be able to attack if no weapons are installed for all scenarios (2/7).
Altered two lines of code where adding elements to vectors. The parameter order was changed due to a mistake I made on some new code. Was easier to change everything else to the new way instead of fixing the new code and it makes more sense (2/8).
Edited some passes to BAT set up functions to include a planet pointer parameter (2/9).
Added a message for when player does not have enough resources when repairing (2/19).
Fixed several problems that were causing data not save correctly (2.21).
Got rid of the annoying ‘1’ that was being displayed during data load (2/21).
Fixed a few small issues that was causing some data not to load correctly (2/21).
Added messages to the loading process similar to what I did with the saving code for the release of build 1 (2/21).
Game
Added in two if statements in generatePlanet to only add defenses or shields if nomODef or numOShd is greater than 0 (2/2).
Made a small edit to see if I could get rid of the bug that is causing an extra planet to be generated (the blank named one; 2/8).
Fixed a bug where no resources would be removed for repairing armor that was fully destroyed. This was because I was not checking for zero values on the int variable and that variable is used in calculating the costs. Added the check to set the variable to a value of 100 in the event of an initial value of 0 (2/15).
Fixed another problem with the repair code caused by incorrectly made conditional statements (2/15).
A small change here to eliminate the run on messages in the repair dock (2/16).
Fixed a problem being caused by rTStations. The code was actually incorrect, it should have been clearing the vector but instead it was adding new elements to the tStats vector (2/19).
Added a TODO to remind me to add some code to search the gStations vector if it has elements and load the data from that station into the travel to menu (2/19).
Updated the go to station code to take -1 values now instead of 0 as the value for not going. It was still using 0 and as a result it was impossible to not go to a station (2/19).
Main
Added a call to setprecision and fixed to the start of main instead of having multiple calls throughout the code (2/19).
Message Processing
Added several new functions (2/6):sSCMenu
sDSpread
bCBomb
Added some much needed comments to some of the function declarations and also within the functions themselves (2/6).
Edited several function declarations to include player reference for use in the spread system (2/6).
Began reworking the spread system menus (2/6).
Added bCReturn and a vector to store spread vectors temporarily (2/6).
Found many areas where mRMessage usage had not yet been changed to the newer format; began redoing these (2/6).
Added some more comments (2/7).
Added bomb variable (2/7).
Edited function declaration for sOWSpread (2/7).
Added some extra checking to the weapon selections functions (all of them; spread, system, and single) so that the game can detect if there are no weapons installed and act accordingly (2/7).
Added a missing option to the bMenu2_PB menu (2/8).
Added many new functions (2/9):dDamage1S
dDamage1SA
dSDamageH
dDamage1A
dDamage1AH
dDamage1H
dDamage2S
dDamage3D
dDamage3P
dPSDisabled
dSDInflicted
dBonus
dSDisabled
dSSDisabled
dSDamageS
dSDamageSA
dSDamageA
dSDamageAH
Added function pInfo (2/9).
Fixed a problem caused by the new code for gGTPlanet that was causing the player menu selection to be sent back instead of the selected planet ID(2/14).
Fixed an issue caused when armor was at 0 during the repair process. Menus would report back 0 cost because of a 0 int value used in calculations. Added check for zero to set the int value to 100 (2/15).
Changed pBStatus to pBAStatus to more accurately reflect the information presented (2/16).
Added two new functions: pBStatus and hBSStatus_PB to return status information on the player ship and currently targeted shield, defense, or planet (2/16).
Added a few new options to the planet battle menus (2/16).
Finished the two functions listed above (2/19).
Removed any io manipulation function calls and placed a single one in main (2/19).
Fixed a small issue where the shield name was not being printed by the code during status lookup (2/19).
Fixed a run-on in the planet population damage output (2/19).
Added some more identifiers to battle menus to explicitly state what the player is attacking (2/19).
Updated the go to station code to match the changes to go to planet. I had not yet done so, so the return value could never be -1 and thus the player would always get sent to the station (2/19).
Changed planet population info variables from long long ints to floats so that the percentage calculation would actually work. However this also means that the population value printed out may not be as accurate (2/19).
Added a new function that will print out the rewards once battle has been completed (2/20).
Planet
Fixed getPopS in the same way that I fixed getMPopS (2/8).
Added a function to return a planet pointer for certain uses in the future (2/9).
Shield
Added two new variables: sDTimer and bISDisabled to deal with shield disabling (2/7).
Added three new functions (2/7):isDisabled
dShield
dTTDown
Added sMSP variable (2/8).
Added getMSP function (2/8).
Edited a few functions to temporarily set sMSP along with mSP for the time being (2/8).
Added a function to get the number of ticks left on sDTimer (2/9).
Ship
Removed the getXWeapon functions because they were duplicating functionality already in place. Replaced their usage across the entire project (2/6).
Added player references to several function declarations (2/6).
Added several new functions (2/6):sWSCenter
clearWSpread
editSpread
Repurposed cWVector to clear any of the weapon spreads based on passed value, renamed to clearWSpread (2/6).
Added five new weapon pointers to store, temporarily, weapon objects while dealing with the spread system (2/6).
Added sUWSpreads to track the number of used spreads for future functionality (2/6).
Added two functions to return if a ship has any weapons installed or not. Added them after realizing it would be much neater looking, and less complicated, than having a bunch of calls to other ship functions. One does everything but bombs, the other does only bombs (2/7).
Added a function to create an allout attack vector (2/7).
Modified the functions that deal with randomly creating spreads. Removed second for loop and streamlined the execution of the functions (2/7).
Added code for getting hardpoints from weapon vector from getWSHPoint (2/8).
Reordered the parameter list for addSVElement and changed any related code to reflect that change (2/8).
Removed a -1 from the slot number being passed to the hardPoint constructor in cSWArray, it was causing crashes in damage when a negative value, if the passed value was 0, was being used to try and obtain the weapon data (2/8).
Moved a call to random in cRSpread_B into the else statement block to prevent indec out of bounds errors it has been causing (2/8).
Added bAWInstalled and bABInstalled to return if there are weapons installed. Replaces larger and much more complicated if statement conditions checking for the same thing (2/8).
Added sSAVector to set up all out attacks (2/8).
March
Project-Wide
Planet defenses, planet shields, modules, and items have all been folded into the same database category called equipment and subdivided by equipment type. All necessary changes to any code in any classes has been made and the changes have been made to the database (3/5).
Added weight to all items in the game and added or changed the code required due to these changes (3/8).
Removed all references to cargo slots in the code for stations (3/8).
Started adding comment tags to denote areas where there are values that must be read externally for modding purposes (3/9).
Asteroids
Added the class (3/8).
Added the following variables (3/8):aBName
aName
rand2
aOName
aMBSize
aSize
aOAmount
rand1
Added the aBelt vector (3/8).
Added the following functions (3/8):createABelt
addAsteroid
minedOre
updateOAmount
removeAsteroid
Added the following variables (3/9):rand3
rand4
i2
numOfAsteroids
aID
i1
Added createAsteroids function (3/9).
Removed minedOre function (3/9).
Added position variables for mining (3/10).
Added a variable to hold the ore id (3/10).
Added function to return the ore id (3/10).
Modified the constructor as required to add the set for ore id (3/10).
Split the class between Asteroid (this class) and a new class called aBelts (3/10).
Asteroid Belts
Created the class and move several functions and variables to it from Asteroid(3/10).
Added tempSize3 to store total belt size (3/10).
Edited createAsteroids function to work in the new class (3/10).
Fixed a problem with several datasystem function calls that were missing the parentheses (3/12).
Battle Processing
Fixed a problem with conditional statements that were causing battles to end prematurely (3/1).
Fixed another problem causing battle to en prematurely, a key value was not being reset after the battle was over (3/3).
Fixed a problem that was causing too many entities to be added to the battleParticipants vector; it was not being cleared after battle so when a new one started more entities were added to those already there (3/3).
Fixed a logic issue in endBattle where the code would give resoruces even if the player had retreated (3/3).
Added a “No rewards” message to allow a non-silent handling of a failed endBattle conditional statement after the fix above was implemented (3/3).
Fixed several problems with the battleParticipants vector setup code. There were multiple problems causing bugs: one was keeping all of the player/npc wingmen from being added, another was causing a crash because the vector would try to find a negative index, and the last was caused by improper logic in the for loop (3/3).
Reworked the hostiles check logic so that it would actually work and made it so that it would only run when it was the player’s turn to keep stupid things from happening (3/3).
Added kill confirms to the rewards function (3/3).
Added a new function to reset the battleProc reward values once done using them (3/3).
Fixed a bug that was causing rewards to come out negative in some cases (3/4).
Fixed an issue causing “hang” in planet battle because the player was not being loaded into the battle Participants vector (3/6).
Removed initial planet hailing section from this class and moved to game (3/10).
Removed planet hailing functions from this class and put them into game (3/10).
Removed a call to bHail from the planet bombing section of planet battle and reordered the menu options (3/12).
Database
Added several new messages deal with station related functions (3/2).
Changed the row id value of the default weapon as -1 was causing the query for that information to bug out and return the last row queried instead, causing loading issues and bugs (3/4).
Added several new fields to various tables and removed a few due to design decisions in Station (see there for more info; 3/6).
Added a new table called PShip_Inv to hold ship cargo data (3/6).
Added a new table to store resource information including ores. Before being added to usable resources, resources will now take up space in your ship cargo hold (3/8).
Renamed the Size field of Resource_Data to BaseSize for asteroids (3/9).
Added a few mining lasers and some mining barges to the database (3/10).
Added several new messages relating to mining (3/10).
Added code to get the new laser weapon data from the Weapon_Data table (3/10).
Added an XCost field to the resource_data table and added the code to integrate it into the game (3/12).
Added several new table fields to the player ship table in order to track ships that are stored (3/12).
Added code to handle the changes mentioned above (3/12).
Modified the ship save code to save multiple ships instead of just one and added the new fields to the code there (3/12).
Added an SID field to pShip_Data table (3/13).
Renamed SID to SSID to avoid the naming conflict with the new field above (3/13).
Added several more messages and modified a couple (3/13).
Fixed a bug that was causing sg2 and cargo space not to save for the player ship (3/15).
Data Placeholder
Added a new struct called PSInv (3/6).
Removed or added struct members as needed due to changes in Database (3/6).
Added pSInv struct (3/8).
Added ore and resource structs (3/9).
Added wMCLength and wMCAmount to weapon struct (3/10).
Added xXCost to both resource and ore structs (3/12).
Added several more messages dealing with the storage/selling features of stations and ships (3/12).
Added the new fields to the pShip struct (3/12).
Added sID member to the pShip and ship structs so we can use the table id from ship_data (3/13).
Added the code in loading/saving areas required by the above entry (3/13).
Data System
Due to a typo in the flag name for stations, the data was not being loaded from the save file (3/1).
Went through and added or removed the related code for the changes to Database (3/6).
Added code to handle the new laser weapon data from the Weapon_Data table (3/10).
Added code for obtaining the XCost for ore and resources (3/12).
Found a problem that was causing some bugs due to resource and ore condition checks being reversed (ore was used to check resource and vice versa; 3/12).
Added tempShip, a ship object to old loaded ships while they are being sent to the proper storage area (3/12).
Modified lData to handle loading of stored ships in both ship cargo holds and station inventories (3/12).
Added code to both saving and loading to add in setting or saving the ship id from ship_data (3/13).
Added function to get the SID member from both ship data structs (3/13).
Defenses
Added dSM2 variable (3/6).
Game
Added in the code to look-up player relations for actual data and if not present add them (3/1).
Fixed a slight problem that was causing a hang with the game; forgot to put breaks in the new code mentioned above (3/1).
Fixed an issue that was causing station owner affinity to player being displayed incorrectly because the wrong relationship was being queried (3/1).
Fixed a problem that would have caused all items to cost 0; due to station multiplier defaulting to 0 (3/2).
Rewrote the code for station market menus to be a little less complicated where possible and also added code for functions in that area that had not yet been added (3/3).
Fixed a problem caused by faulty logic in the sMPurchase function. Mentioned this area previously but then noted that I found nothing wrong. Well I was wrong, there was something wrong there, very wrong. The code was not using the item class to determine if the weapon could be equipped and instead it was using the weapon type which would never complete a conditional statement and thus always failed with the item vanishing into the wastelands of the runtime compiler. Added the appropriate code to make it work (3/3).
Added cCode passes to many of the item menus (3/3).
Combined item and module sections into one group called equipment. This has not been done project-wide but will soon (3/3).
Fixed a return that was returning the wrong value from planet scanning (3/6).
Added call to createBelts to generatePlanets (3/10).
Added three new functions: pMenu, gPHail1, gFABelts (3/10).
Replaced several space calculations with function calls to a station function to determine if items can be stored without overloading maximum space (3/12).
Commented out a duplicate sSItem function, did not delete because it may be needed some time in the future (3/12).
Added some external value tags to lines in getIType as these values will need to be externalized (3/12).
Added or older functions were renamed to the following functions (3/12):sMLoop1
sMLoop2A1
sSell
sWMLoopB
sSMLoopB
sEMLoopB
sMLoop2B1
sMLoop3A1
sMLoop3A2
sMLoop4A
sMLoop4B
Commented out the following functions, they may or not be removed at a later date (3/12):sWMLoopS
sSMLoopS
sRMLoopS
sEMLoopS
Added the following variables (3/12):sMMenu2
sMMenu3
amount
sMMenu4
Did heavy editing in sSShip and sSItem (3/12).
Added a few TODOs to remind myself that certain areas need to be expanded to deal with recent changes (3/12).
Added the following variables (3/13):bRepair
bSSuccess
bExchange
Edited the sSShip function (3/13).
Moved the sBISpace function to station. Edited any code to take into account this change (3/13).
Recoded the sSItem function to account for changes to how storage processing between the station and ship are handled (3/14).
Added a bool to track if an item was bought or not to sSItem (3/14).
Added resource and ore sell menus (3/15).
Fixed and finished sSell function. It was not complete and was missing some things that were only revealed after all of the other changes that have taken place so far (3/15).
Updated sMPurchase to include resources and ore as well as recoded the equipment section to account for recent changes to that table (3/15).
Updated any calls to sMBuy to add an amount parameter (3/15).
Made a note to split up the “PEquip” section of the equipment buy loop (3/15).
Finished recoding sSItem as well as fixed a few problems with the logic of the function (3/15).
Updated any calls to sMIInfo to add an amount parameter (3/15).
Main
Fixed an issue that was causing a crash due to not having pID set to a value when ships were encountered when traveling to a station (3/1).
Added some new menu options that will be enabled at a later date (3/4).
Added an option that allows you to go looking for ships to fight (3/4).
Disabled the load game option from the game menu due to a severe crash problem related to not clearing all in-use vectors. It will come back in build 5 or version 0.6A (3/4).
Fixed a few problems that were causing crashes (3/6).
Found a problem with the pChoice value being set during locked situations. They had not been changed after the previous addition of new menu items (3/12).
Removed mining from the main menu, it will now be accessed through the initial planet menu after traveling to a planet (3/12).
Message Processing
Added the code to check if a station selected by the player has already been created. If it has then the code will load the data for that station instead of creating a new station (3/1).
Fixed a small problem that would have caused a hang in the game because the code above was missing some key breaks to keep the for loop from endlessly iterating (3/1).
Fixed a problem that was allowing players to target destroyed ships (3/1).
Started process of recoding weapons market menus (3/1).
Finished recoding laser weapon menu (3/2).
Recoded many of the station item menus and also added cCode passes for ship class comparisons (3/3).
Added several new variables (3/3):bCReturn
bNTarget
bIsTDest
Edited the game menu to add some disabled options, one new option, and disable one old option (3/3).
Did extensive work on hBStatus. Found several problems not only with the logic but also the execution of the function. Added in checks to see if the ship was destroyed before allowing data to be couted for it and also added in some code to iterate the process along; had to remove the for loop structure (3/3).
Recoded many of the station item menu functions due to them not working as expected. Instead of showing the items in a list of 10 items per page, the code now shows all of the weapons but based on the chosen class type when the player enters the market (3/4).
Fixed several problems in pInfo that were causing the detailed ship data not to display correctly. The screen clears were moved out of the for loops so that all weapons of a type would be displayed together. I also fixed a problem where rail guns and heavy weapons were not using their own usage values (3/4).
In sMInfo there was a conditional statement for bomb that was looking for a weapon type of bombs. Fixed (3/4).
Added a return true to sMInfo if the value of the player’s input is not equal to 2 or out of bounds; before the lack of this may have been causing a bug (3/4).
Fixed a problem that was causing a crash in the clone search code (3/4).
The rewards text output was not completely finished, I had forgotten to rename the couts for all of the kill confirms except frigates which caused those ones not changed to print out “Combat EXP:” instead (3/4).
sISItem was not being executed properly because bValid was not being reset to false before it was used in a while loop (3/4).
Added a reset to false for bValid in several functions (3/5).
Fixed an issue in the bonus damage reporting function where it was not reporting the correct adjusted damage (3/5).
Added several new functions (3/10):plMenu1
gGTABelt
mCTarget
mMenu1
mMenu2
Added the following functions (3/12):sMBS
sMMenu1A
mSSIConfirm
sMMenu1B1
sMMenu1B2
sMMenu1C1
sMMenu1C2
mSSIAmount
Added the following variables (3/12):pSCSize
sISize
nOShips
sSSize
In several places I replaced a message indicating ‘0’ as a cancel menu choice with code to call that message from the database (3/12).
Edited the main menu to account for the changes made in taking the start mining function and placing it in a different location (3/12).
Added the mTPos function to calculate the distance between the player and a targeted asteroid (3/12).
Fixed some typoes in the sSHCShip function (3/12).
Went through and edited several of the new station menu functions due to shifting the ship object into sInv from the station class (3/12).
Edited bPBMenu since hailing is no longer handled by battle proc (for the player anyway and for the moment, it may return later on; 3/12).
Modified the sMIInfo and sMBuy functions to include the item amounts for resources and ores (3/15).
Added (or renamed) the following functions (to), there may be functions to do similar operations, will need to do a refactoring run on the code sometime, most likely while working on 0.6A (3/14):sMBRes
sMBOre
sMECShip
sMBAmount
sMSI1
sMSI2
sMSI3A
sMSI3B
sMSI4A
sMSI4B
Added resources and ore to sMIInfo function (3/14).
Started adding external value tags to the weapon buy menu for loops (3/14).
Edited mSSIAmount to fix a logic problem (3/14).
Removed an unneeded parameter from sBISPMenu (3/15).
Added more code to mSSIConfirm to tell the player what resources they will get from selling their items. Applied the 75% decrease in buy value to any sold item, this is only temporary proper adjusting sell values will be added in later (3/15).
Mining
Added the class (3/10).
Added the following functions and coded them (3/10):mLoop
mSCycle
mSAsteroid
mECycle
mSOre
mTAsteroid
mUAsteroid
Added an int vector to store asteroid element places (3/10).
Added the following variables (3/10):bDMining
bMCycle
pPosZ
bNChange
mEOre
rand1
i
i2
i3
pChoice
mTarget
mCTime_new
mCTime_old
mCTime_left
tempDist
mTDist
mOPCycle
pPosX
pPosY
NPC
Added code to create resource values for resources that are not used in buying ships (3/1).
Fixed a problem with negative resource values by adding code to default the value of resources to 0 when a new npc entity is created (3/4).
Planet
Added vector belts to the class (3/10).
Added function to create a random number of belts per planet (3/10).
Added a string array containing the roman numerals for 1-10 for use in naming asteroid belts (3/10).
Added new variable beltRand (3/10).
Shield
Added mSM2 variable (3/6).
Ship
Added a function to return an int value associated with the class of the ship; for station market menus (3/1).
Fixed some problems in the sSAVector class where incorrect variables were being used in conditional statements. This may have been causing a hang and a crash during battle but reproduction of the issue is hard so it is not fully confirmed if the problems are fixed (3/4).
Added an inventory vector called sCargo to the ship class (3/6).
Added sSM2, sUCSpace, and sMCSpace variables (3/6).
Added sPMove_M and getMLInfo functions (3/10).
Edited the loadCargo call in addCItem function (3/10).
Added or edited the following functions (3/12):checkSpace
addCItem
loadCargo
updateCIAmount
Found several problems with the addCItem class. Simplified it and move most of the problem code into updateCIAmount and loadCargo where it made more sense and worked better (3/12).
Added several new variables (3/12):sSID
sSTID
sLocal
Added several new functions (3/12):setSID
setSTID
loadSCargo
setSLocal
getSID
getSTID
getSLocal
Fixed a typo in getMLInfo (3/12).
Added the following functions (3/14):getID
setID
storeItem
changeShip
Added the following member variables (3/14):sID
bDone
nOItems
Added the new variables to the iniShip function (3/14).
Edited select sInv push_backs to include an item amount (3/14).
Ship2
Added the Ship2 class to deal with circular dependency issues caused by the Ship class (3/13).
Added a constructor that will take a Ship2 object as well as item id, size, and amount (3/13).
Removed all extra constructors and instead copied the initShip function from Ship and made parameters for every variable in the class (almost) (3/13).
Added getID and setSSG2 functions (3/14).
S. Inventory
Edited the constructors to take a bool to determine if the incoming item to be stored was a ship or not (3/12).
Added a Ship object to this class to store a ship instead of an item if needed (3/12).
Added bIsShip variable (3/12).
Added the isShip to get if the inventory element contains a ship (3/12).
Fixed a circular dependency issue between this class and ship (3/12).
Added a bunch of code to the ship sInv constructor so that the values, and not the actual object, of the object passed to the function were used (3/12).
Rolled back the change above to pass a Ship2 object and then added extra parameters to also pass the ship id and amount of items (3/13 & 3/14).
Station
Removed all references to slots from the class and related code. Inventory will be space limited-only now (3/6).
Removed the shipHold vector I had placed into the class previously. Moved it into sInv instead as it made more sense that way (a ship hold on a ship? Which would also have a ship hold? This way is less exploity; 3/12).
Added the checkSpace function to replace multiple size conditional statements. Also added similar function to ship. Returns true or false if a new item(s) can be stored without exceeding max storage space (3/12).
Added a TODO to remind me to fix the sSShip function, still using sSHold instead of going through sInventory (3/12).
Added Game forward declaration (3/14).
Added the following functions (3/14):sBISpace
getItem
Edited sSItem and sSShip extensively to account for recent changes and to make these functions actually work in the context of their location (3/14 & 3/15).
Added the following variables (3/14):i2
i3
bDone
i4
nOItems
pChoice
iPChoice
bPChoice
Weapon
Changed the default weapon id from -1 to 999999 to deal with query issues being caused by the -1 row id (3/4).
Added getCLength and getCMAmount functions to the laser class to return mining laser specific information (3/10).
Added wMCLength and wMCAmount variables to the laser class (3/10).
Note: All work reported as done on 3/8 includes work from 3/7 through 3/8.