Changelog

From Laughing Man Productions² Wiki
Revision as of 22:29, 2 February 2014 by Geowil (Talk | contribs)

Jump to: navigation, search

Contents

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:
Private

Private First Class
Sub-Lieutenant
Lieutenant
Lieutenant Commander
Commander
Captain
Commodore
Admiral

Station:

-Clone System
This 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 Weapons
I have added 26 new Laser Weapons.
-New Ships
I 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 modified
Max hardpoints changed from 12 to 15

Laser hardpoints changed from 5 to 6
Missile hardpoints changed from 7 to 6
Added 3 rail gun hardpoints
Draconic cost +120
Diamond cost +20

Ruby cost -30
-Junas description altered.
-Ursa description changed and the design has also been changed
Added 2 heavy weapons hardpoints

Shield points +50
Ruby cost +170
Draconic cost +250
Diamond cost +300
Xarn cost +1450

Tech level changed from 5 to 6


-Lios description altered slightly and some design changes
Laser hardpoints changed from 8 to 6

Missile hardpoints changed from 6 to 4
Added 4 Railgun hardpoints
Diamond cost +40

Xarn cost +200


Thursday, 28:

-Changed Reaper description, fixed an error where it was given no bomb holds instead of 2, and modified the ships stats/cost
Added 1 heavy weapon hardpoint

Hull points +50
Diamond cost +100
Draconic cost +250

Xarn cost +1100
-Changed description for the Velor
-Changed the description for the Vespa and changed some costs and ship stats
Movement initiative changed from 12 to 24
Added 3500 uranium cost
-Changed the Yenshu's description and some of its design attributes
Laser hardpoints changed from 1 to 2

Added 2 railgun hardpoints
Xarn cost +2500

Added 460 uranium cost


May

Monday, 23:

-Changed Xeno and Zxeth descriptions
-Changed description and attributes for the Menos command ship
Shields increased from 480 to 1100

Armor decreased from 3600 to 2500
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

Plutonium cost changed from 2000 to 2400
-Changed Rupture to Rapture
-Changed description and attributes for Whisp
Missile hardpoints changed from 4 to 2

Added 5 railgun hardpoints
Bomb holds changed from 3 to 2
Diamond cost changed from 560 to 600
Uranium cost changed from 200 to 600

Plutonium cost changed from 400 to 550


Tuesday, 24:

-Changed description for Kelos
-Changed design and description of Nirvana
Missile hardpoints changed from 4 to 6
-Changed design and description for Jestu
Laser hardpoints increased from 2 to 5

Added 5 railgun hardpoints
Added 3 heavy weapons hardpoints
Xarn cost changed from 55000 to 57000
Uranium cost changed from 3600 to 5600

Plutonium cost changed from 4100 to 7800
-Changed design and description for Orion
Missile hardpoints changed from 8 to 6

Added 5 railgun hardpoints
Added 5 heavy weapon hardpoints
Diamond cost changed from 860 to 1200
Uranium cost changed from 6950 to 9800

Plutonium cost changed from 7800 to 10500
-Changed description for Sleipnir
-Changed description and design for Asgard
Laser hardpoints changed from 8 to 12

Added 5 railgun hardpoints
Added 10 heavy weapons hardpoints

Diamond cost changed from 8700 to 14500
-Changed description and design of the Rangarok
Laser hardpoints changed from 8 to 6

Missile hardpoings changed from 8 to 6
Added 6 railgun hardpoints
Added 6 heavy weapons hardpoints

Diamond cost changed from 12400 to 16000
-Changed description for the Absolution
-Changed design and description for Black Eternity
Laser hardpoints changed from 8 to 5

Missile hardpoints changed from 8 to 5
Added 2 railgun hardpoints
Added 16 heavy weapons hardpoints

Diamond cost changed from 6700 to 8600
-Changed description and specs of Kazahth Mothership
Laser hardpoints changed from 8 to 10

Added 14 railgun hardpoints
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

Plutonium cost changed from 19800 to 28420
-Changed description and design for Valhalla
Missile hardpoints changed from 8 to 6
Bomb holds changed from 3 to 10
-Changed description and design for the Einherjar
Shields changed from 15600 to 12000

Armor changed from 9750 to 4500
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

Diamond cost changed from 5500 to 7800
-Changed description and stats of Shadow Wraith
Shields changed from 23600 to 48000

Laser hardpoints changed from 8 to 6
Missile hardpoints changed from 8 to 10
Added 2 heavy weapons hardpoints
Ruby cost changed from 16000 to 23000

Diamond cost changed from 6800 to 7500
-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 matrix
most 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 slightly
Maximum Optimal Target Distance changed from 7 to 12


Saturday, 23

ItemSystem:

-Made changes to the descriptions of the following laser weapons
150mm Prototype Lightron Blaster

150mm Lightron Heavy Cannon
175mm Lightron Supercannon
175mm Lightron Blaster
250mm Lightron Medium Blaster
25mm Pyre Laser

50mm Pyre Plasma Cannon
-Changed attributes of the 50mm Pyre Plasma Cannon
Min 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 Megalaser
Uranium cost increased from 0 to 130
-Changed description and attributes of the 175mm Pyre Photon Laser
Min 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 missiles
Calamity Light Standard Missile

Ravager 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

AP Light Missile
-Changed the description and attributes of the Warpigeon Light Missile
Min 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 missiles
Bloodhawk Standard Missile

Angelus Standard Missile
Spine Standard Missile
Mole Standard Missile
Ravager Standard Missile
Calamity Standard Missile
Serpent Standard Missile
Dredlock Standard Missile
AP Standard Missile

Warpigeon Standard Missile
-Changed attributes of the Calamity Standard Missile
Minimum damage changed from 40 to 50

Maximum damage changed from 90 to 120
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

Draconic cost changed from 80 to 110
-Changed attributes of the Serpent Standard Missile
Minimum damage changed from 48 to 50

Maximum damage changed from 72 to 76
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

Draconic cost changed from 70 to 230
-Changed the attributes of the AP Standard Missile
Minimum damage changed from 78 to 85

Maximum damage changed from 102 to 115
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

Draconic cost changed from 350 to 420
-Changed the attributes of the Warpigeon Standard Missile
Minimum damage changed from 100 to 110

Maximum damage changed from 126 to 130
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

Draconic cost changed from 120 to 400


Saturday, 13

ItemSystem:

-Changed the description for the following missiles
Warhawk Standard Missile

Serpent 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

Dredlock Medium Missile
-Added new weapon Hellstorm Missile
Minimum damage set to 140

Maximum damage set to 260
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

Lithium cost set to 850
-Changed attributes for the Serpent Medium Missile
Minimum damage changed from 54 to 80

Maximum damage changed from 86 to 105
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

Draconic cost changed from 50 to 400
-Changed the attributes of the Mole Medium Missile
Minimum damage changed from 48 to 54

Maximum damage changed from 98 to 110
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

Uranium cost changed from 0 to 10
-Changed attributes for the AP Medium Missile
Minimum damage changed from 115 to 125

Maximum damage changed from 130 to 140
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

Lithium cost changed from 160 to 240
-Changed the attributes for the Ravager Medium Missile
Minimum damage changed from 95 to 100

Maximum damage changed from 118 to 200
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

Uranium cost changed from 0 to 50
-Changed the attributes of the Bloodhawk Medium Missile:
Minimum damage changed from 52 to 75

Maximum damage changed from 84 to 130
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

Uranium cost changed from 0 to 60
-Changed the attributes for the Spine Medium Missile:
Minimum damage changed from 115 to 125

Maximum damage changed from 128 to 160
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

Uranium cost changed from 0 to 140
-Changed the attributes of the WarPigeon Medium Missile
Minimum damage changed from 135 to 160

Maximum damage changed from 150 to 185
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

Uranium cost changed from 0 to 650
-Changed the attributes of the Calamity Medium Missile
Minimum damage changed from 40 to 55

Maximum damage changed from 85 to 100
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

Uranium cost changed from 0 to 120
-Changed the attributes of the Bloodhawk Heavy Missile
Minimum damage changed from 150 to 220

Maximum damage changed from 230 to 290
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

Plutonium cost changed from 0 to 152
-Changed the attributes of the Angelus Heavy Missile
Minimum damage changed from 96 to 120

Maximum damage changed from 120 to 160
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

Plutonium cost changed from 0 to 120
-Changed the attributes of the Spine Heavy Missile
Minimum damage changed from 115 to 130

Maximum damage changed from 148 to 180
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

Uranium cost changed from 210 to 280
-Changed the attributes for the AP Heavy Missile
Minimum damage changed from 125 to 140

Maximum damaged changed from 167 to 186
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

Uranium cost changed from 280 to 310
-Changed the attributes of the Dredlock Medium Missile
Minimum damage changed from 62 to 90

Maximum damage changed from 80 to 130
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

Lithium cost changed from 210 to 460


September

Wednesday, 28

ItemSystem:

-Changed the description for the following missiles
Warhawk Medium

Serpent Heavy
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

Ragnarok
-Changed the attributes of the following missiles
Warhawk Medium

Serpent Heavy
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

Ragnarok
-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 weapons
Destructor Bomb

Neopryte 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

Apocalypse Bomb
-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 information
getWLName

getWLAMin
getWLAMax
getWLAOMin
getWLAOMax
getWLDRMin
getWLDRMax
getWLDROMin

getWLDROMax

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 list
Low-Tech Phaser Array

Ion-Particle Blaster
50mm Suspended Coil Laser Cannon
50mm Omega Cannon Prototype
50mm High-Output Ion Blaster

Lightron 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 choices
getWMName

getWMDRLow
getWMDRHigh
getWMAMax
getWBName
getWBDRLow
getWBDRHigh

getWBWeight


Player:

-Added the following functions as part of the player starter ship system
pCMWeap
pCBWeap
-The following bombs and missiles have been added to the player startship armament process
Destructor Bomb

Neopryte Bomb
Lite Gettysburg Bomb
Nako Advanced Bomb
Calamity Lite Standard Missile
Ravager Lite Missile
Cruise Missile
Warhawk Advanced Lite Missile
Bloodhawk Lite Missile

Serpent 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 it
Functions:
Planet (constructor)

Variables:

pName

pEKS*

pPop –popultion

Hostile:

-Added the following functions
hostile(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 variables
hName

hRace
hRank
hShip
hXarn
hRubies
hDia
hDrac
hLith
hUra
hPlut
hPlat

hNWaste

BattleProc:

-Setup the BattleProc class and added the following functions
damageCalc
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 entities
Planet 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
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

pBDivers –planetary biological diversity
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 functions
isDest –is the planet destroyed

isOwned –is the planet already owned by the player
fPlanets –search for planets within scan range (currently static at 50 LY)
pPlanets –print out list of found planets
setDest –set planet as destroyed

setPOwned –set planet as player owned
-Added the following variables
sPlanets –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 file
getAcc

getDia
getDrac
getEADist
getXarn
getLith
getNucWas
getPWStatus
getPlat
getPlut
getRubies
getSArmor
getSHull
getSMArmor
getSMHull
getSMShield
getSShield
getUra
getName
getRank
getSClass
getSName

getSTLevel


Saturday, 24

Player.h:

-Added several new functions
getFKills

getDKills
getCKills
getBCKills
getBKills
getCSKills
getMKills

getTKills
-Added several new variables for Player ranking system*
pFKills

pDKills
pCKills
pBCKills
pBkills
pCSKills
pMKills

pTKills

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 variables
pCBELevel

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
setSArmor
setSHull
setSMArmor
setSMHull
setSShield
setSMShield
setSName
setSSTLevel
cLUp

pCBLUp
-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 menus
pCMenu1

pCMenu2
pCMenu3

pCMenu4
-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 weapon
Weapon Type
Weapon Damage Type
-Added functions to obtain weapon and damage type
getWType
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 struct
tLevel //technology level
wType //weapon type

damageTypes

-Added in some damage type descriptions to await further implementation
Piercing1

Piercing2
Piercing3
Napalm1
Napalm2
Napalm3
Destructor
Nanite1
Nanite2
Nanite3
Doomsday1
Doomsday2
Stealth
Frigonly
Null
Emp1
Emp2
Emp3
Virus1
Virus2
Virus3

Massaccel


Tuesday, 14

Hostile

-Added new functions and related code in the .cpp file
setName

setRank
setSArmor
setSHull
setSMArmor
setSMHull
setSShield
setSMShield
setSName
setSSTLevel
getSArmor
getSHull
getSMArmor
getSMHull
getSMShield
getSShield
getName
getRank
getSClass
getSName

getSTLevel
-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 code
battleLoop()**

hDCalc()
pDCalc()
hInit()**
pInit()
initHR1()**
initHR2()
initHR3()
initHR4()

endBattle()**
-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 menus
nMenu1
\nMenu2

itemSystem

-Added in functions to search and return ship technology level, hard points, and class
getSBHolds()

getSMTurrets()
getSLBanks()
getSRails()
getSHWBays()
getSWHPoints()
getSTLevel()

getSClass()


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 yet
getSWHP

getSLB
getSMT
getSBH
getSRM
getSHWB
getSDesc
getSMInit
getSXC
getSRC
getSDC
getSDiC
getSUC

getSPC

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 class
planetNames

ranks
raceNames

pDD
-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 functions
initHardpoints

getLHP
setLBA
setMT1

setBH1
-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 functions
Weapon
setWDRange

setWAcc
setWName
setWDtype
setWTLevel
setWType
setWASpeed- commented
getWDRLow
getWDRHigh
getWDROLow
getWDROHigh
getWALow
getWAHigh
getWAOLow
getWAOHigh
getWTLevel
getWTpye
getWASpeed- commented
getWName

getWDType


Bomb
setWeight
getWeight


Defense
setSPoints

getSPoints

takeDamage
Heavy
setDInt

getDIntLow
getDIntHigh
getDIntOLow

getDIntOHigh
-Added or changed old variables to the following variables
Weapon
wAcc- weapon accuracy

wDRange- weapon damage range
wDType- weapon damage type
wName- weapon name
wTLevel- weapon technology level

wType- weapon type
Bomb
bWeight- bomb weight
Defense
dSP- defense structural points
Heavy
hDInt- 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 functions
dTPiercing1

dTPiercing2
dTPiercing3
dTNapalm1
dTNapalm2
dTNapalm3
dTDestructor
dTNanite1
dTNanite2
dTNanite3
dTDDay1
dTDDay2
dTStealth
dTFOnly
dTEMP1
dTEMP2
dTEMP3
dTVirus1
dTVirus2
dTVirus3
dTVirus4

dTMAccel

Player

-Removed the following functions, they have been moved to ship class
isDestroyed()

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 function
pDModifier() //modify player damage if special damage type present

Ship

-Added some new functions
isDestroyed() //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 functions
toggleSStat

toggleShields
disableShip

disableShield
-Added following variable
sDTimer

Weapon

-Added following functions
toggleWeapon
isWDisabled
-Added following variables
wStatus
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 variables
damage
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 vairables
damage

damage2

damage3


Sunday, 15

Hostile

-Added the following functions
hSetup
-Removed all functions having to do with weapon and ship setup to those respective classes

battleProc

-Added the following functions
hTSetup
hTInit
-Did a lot of work on several functions
initHR1- 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 variables
hTNumber

bEnd
pGOver
pWin

hostiles

Player

-Added the following functions
gameOver
getCELvl

Ship

-Added the following function
sSetup
-Moved weapon arrays to public scope so other classes can access them and the functions therein

Weapon

-Added the following function to Laser
wSetup


Monday, 17

battleProc

-Added several new variables
turrets

iTurrets
bombs

iBombs
-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 functions
getMTP
getBH
-Fixed typo in the implementation declaration of isDestroyed
-Added the following variables
data

sXC
sRC
sDiC
sDC
sLC
sUC

sPC
-Added in/edited code for sSetup function

Weapon

-Removed the following functions
setWDRange

setWAcc
setWName
setWDtype
setWTLevel
setWType

setWASpeed- commented
-Merged all of the above functions into wSetup function
-Moved wSetup function from Laser class into Weapon class
-Added the following variable to the class
data
-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 code
pBStatus

hBStatusA

hBStatusB
-Moved int i global define from implementation file to header file as a private variable

Ship

-Added the following function and related code
getSDTimer


Thursday, 19

Project Wide

-Changed all references to menuProc to msgProc to reflect the class rename

Player

-Added the following functions
pAttack
-Added the following variables
sCode
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 function
getMsg
-Added the following variables
pChoice

battleProc

-Added the following function
pRetreat
-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 variables
pContinue

pAttacked
escaped
pNTarget

hDCounter
-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 functions
getRace
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 variables
dLastValue
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 variables
sWMenu

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 casting
data
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 2013

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
pSData
playerData
pShip
pSSpread
pSHPVect
pWingmenData
pWShip
pWSSpread
pWSHPVect
stationData

sPInv
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
bHSurrender
bHTrade

bHNothing
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
updateCEXP

setCXPTNL

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
getULHP
getUMTP
getURM
getUHWB

getSWHP
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
getISItem
getISIAmount
getISlots
getDispo

getAffil
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
bPHShield
bPTIDefense
pBPSTarget

pBPDTarget
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
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

clearBAT_PB
Began recoding for the new functions (1/10).
Added several new functions (1/11):
processDamage_PS

processDamage_PDP
processDamage_PB
getTDamage_PDP

processTDamage_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
getRace
getAffil
getDispo
setRank
setName
setRace

setDispo
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
sRCPPX
sRCPPR
sRCPPDi
sRCPPD
dPerc
dPerc_R
dPerc_I
dPerc_I2

dPerc_T
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
mID
gMStart
xarnMultiplier

xarnReward
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
nTSPID
nTSSV

nTSSuffix
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_I

dPerc_I2
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
sMOMenu3
sBOMenu1
sBOMenu2
sBOMenu3
sEAFOMenu1
sEAFOMenu2
sEAFOMenu3

sSMission
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
sPPop
sPMPop

popStorage
Added bIsDest set to the constructors (1/30).

Player

Added the following functions and the code for these functions (1/1):
updateFKills

updateDKills
updateCKills
updateBCKills
updateBKills
updateMKills
updateTKills
getDPlanets
updateDPlanets

setCXPLvl
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
setBH
setRM
setHWB
setULPH
setUMTP
setUBH
setURM
setUHWB
setMInit

setMWSpreads
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

Database

Added some extra couts to make saving more user-friendly by allowing the player to see the progress (2/2).

Data System

Fixed a problem in lData where defense and shield ids for planets were not being saved correctly (2/2).

Game

Added in two if statements in generatePlanet to only add defenses or shields if nomODef or numOShd is greater than 0 (2/2).