Changelog
Contents
- 1 Past Entries:
- 2 2011 (version 0.5a from here on)
- 3 2012
- 4 2013
- 4.1 January
- 4.2 February
- 4.3 April
- 4.4 June
- 4.5 October
- 4.6 December 2013
- 4.6.1 Project-Wide
- 4.6.2 Battle Processing
- 4.6.3 Database
- 4.6.4 Data Placeholder
- 4.6.5 Data System
- 4.6.6 Defense
- 4.6.7 Entity
- 4.6.8 Game
- 4.6.9 Hostile
- 4.6.10 Message Processing
- 4.6.11 Mission
- 4.6.12 Player
- 4.6.13 Planet
- 4.6.14 Planet Processing
- 4.6.15 Relation
- 4.6.16 S. Inventory
- 4.6.17 Shield
- 4.6.18 Ship
- 4.6.19 Station
- 4.6.20 Trade
- 4.6.21 Weapon
- 4.6.22 Wingman
- 4.7 January 2014
Past Entries:
Version 0.2 Alpha changes:
-Menus are now cleaned up a bit more.
-You can now save and load your game. The save .nfo files can be found in your C:\ directory. There should be 2 of them, one for player data and a second for the destroyed planet names array. Right now the array is writing each element individually in the save function till I can get the for statement to work correctly.
-the 'Oders' typo has been fixed ;P
-please note that laser banks 4 - 8 and turrets 4 - 8 will be given garbage values as I have not set them up in the player creation function yet.
-the weirdness in the Station menu has been fixed. (if you chose to buy a ship, once done it would send you to the weapons menu.).
-all menus (or almost all) have been conformed to the new layout at the top of each menu is a cout << endl; and a system("CLS"); at the end of each non-battle menu to clear the command window.
-I have now added in some more planets. In total there are now 28 planets instead of 9.
-No new ships or weapons.
-Planets now have access to more planetary defenses and can now obtain a random tech level.
-Pillage and salvage functions have been rewritten for easier access to resources.
-Fixed the issue with enemy ships not being able to attack you. They can now do both laser and missile damage. This was due to an old reinitialization of some setup variables that were not needed and were left in by mistake.
Version 0.3a Change Log:
Planet bombing:
-Bomb weight has now been implemented. While bombing weight will now be calculated via formula to produce a collateral damage value.
-You can now bomb multiple times in a row AFTER the defenses have been destroyed. Maximum is 8 times and if the planet's population reaches 0 it should break the while loop. Have not tested that particular part.
-Planet Pillaging has been fixed. The resource random was set to 1,1000 instead of 100.
-During the bombing runs all text will be run on Sleep(2000) timers.
Main Game:
-At the start of the game, you will now be asked to input your name.
-Story has now been implemented.
-All text runs on timers, how long depends on the text amount.
-Decided to leave the Save/Load functions in. See more info on the change to cloning in the Station section.
-Have changed the encounter formula again, you will encounter fewer ships in this version.
Talirath/Tech Merchant:
-Added in both the Talirath and Tech merchant, you will be able to encounter them while traveling to stations.
-Tech merchant ship battle is still a little weird, trying to get the correct effect with it.
-If your ship is NOT a tech level 4 ship (i have added 1 tech 4 ship just for testing this function) you will not be able to use the TM right now. Later on I will change this so that there are different TM level ships.
-Once you choose to upgrade the Artimis Theta (the previously mentioned t4 ship) you will be able to distribute and damage and range points yourself to any weapons you have equipped.
-At this time Tech Merc and Talirath DO NOT have their custom ships.
-Talirath will only fight you if your pirate rank is 1 and higher.
Player:
-Ranking system now implemented after gaining 5 rank points (by destroying planets and ships) your rank will increase, this can be done up to 9 times.Ranks:PrivatePrivate First Class
Sub-Lieutenant
Lieutenant
Lieutenant Commander
Commander
Captain
Commodore
Admiral
Station:
-Clone SystemThis has now been implemented. You can buy a single use clone or buy a multi use clone. When you buy the multi use, you will be asked for the number of uses. This is then multiplied by the price of a single use clone. How they work is when your ship is destroyed, your consciousness is transported tot he nearest station and put into a clone. During this process your game is saved.
-New WeaponsI have added 26 new Laser Weapons.
-New ShipsI have added in 5 new ships in the Destroyer class.
2011 (version 0.5a from here on)
April
Monday, 25:
-Fixed error in Rifter ship description. Stated only one laser hardpoint when the Rifter has three.
-Changed the Raven's description a small bit for better clarification and also changed hardpoint listings to better conform with previously created convention (ex: two(2) or five(5)).
-Changed some of the Rupture's description and fixed a typo.
-Fixed grammatical errors in Henji's description as well as changed it a little.
-Changed resource Gold to Xarn.
-Changed the description for the Isicus cruiser slightly.
-Changed the Malin's description to better follow the hardpoint convention.
-Made changes to the Rathic's description for better flow and proper grammar.
-Changes made to Gelshing, Loginus, and Vanisher ship descriptions.
-Granz ship description and design has been modifiedMax hardpoints changed from 12 to 15
Laser hardpoints changed from 5 to 6
Ruby cost -30
Missile hardpoints changed from 7 to 6
Added 3 rail gun hardpoints
Draconic cost +120
Diamond cost +20
-Junas description altered.
-Ursa description changed and the design has also been changedAdded 2 heavy weapons hardpoints
Shield points +50
Tech level changed from 5 to 6
Ruby cost +170
Draconic cost +250
Diamond cost +300
Xarn cost +1450
-Lios description altered slightly and some design changesLaser hardpoints changed from 8 to 6
Missile hardpoints changed from 6 to 4
Xarn cost +200
Added 4 Railgun hardpoints
Diamond cost +40
Thursday, 28:
-Changed Reaper description, fixed an error where it was given no bomb holds instead of 2, and modified the ships stats/costAdded 1 heavy weapon hardpoint
Hull points +50
Xarn cost +1100
Diamond cost +100
Draconic cost +250
-Changed description for the Velor
-Changed the description for the Vespa and changed some costs and ship statsMovement initiative changed from 12 to 24
Added 3500 uranium cost
-Changed the Yenshu's description and some of its design attributesLaser hardpoints changed from 1 to 2
Added 2 railgun hardpoints
Added 460 uranium cost
Xarn cost +2500
May
Monday, 23:
-Changed Xeno and Zxeth descriptions
-Changed description and attributes for the Menos command shipShields increased from 480 to 1100
Armor decreased from 3600 to 2500
Plutonium cost changed from 2000 to 2400
Hull increased from 250 to 950
Laser hardpoints changed from 2 to 4
Missile hardpoints changed from 1 to 5
Added 2 heavy weapons hard points
Added 4 railgun hardpoints
Bomb holds changed from 1 to 2
Xarn cost changed from 40000 to 75000
Ruby cost changed from 450 to 1200
Draconic cost changed from 1900 to 1300
Diamond cost changed from 320 to 800
Uranium cost changed from 1850 to 2300
-Changed Rupture to Rapture
-Changed description and attributes for WhispMissile hardpoints changed from 4 to 2
Added 5 railgun hardpoints
Plutonium cost changed from 400 to 550
Bomb holds changed from 3 to 2
Diamond cost changed from 560 to 600
Uranium cost changed from 200 to 600
Tuesday, 24:
-Changed description for Kelos
-Changed design and description of NirvanaMissile hardpoints changed from 4 to 6
-Changed design and description for JestuLaser hardpoints increased from 2 to 5
Added 5 railgun hardpoints
Plutonium cost changed from 4100 to 7800
Added 3 heavy weapons hardpoints
Xarn cost changed from 55000 to 57000
Uranium cost changed from 3600 to 5600
-Changed design and description for OrionMissile hardpoints changed from 8 to 6
Added 5 railgun hardpoints
Plutonium cost changed from 7800 to 10500
Added 5 heavy weapon hardpoints
Diamond cost changed from 860 to 1200
Uranium cost changed from 6950 to 9800
-Changed description for Sleipnir
-Changed description and design for AsgardLaser hardpoints changed from 8 to 12
Added 5 railgun hardpoints
Diamond cost changed from 8700 to 14500
Added 10 heavy weapons hardpoints
-Changed description and design of the RangarokLaser hardpoints changed from 8 to 6
Missile hardpoings changed from 8 to 6
Diamond cost changed from 12400 to 16000
Added 6 railgun hardpoints
Added 6 heavy weapons hardpoints
-Changed description for the Absolution
-Changed design and description for Black EternityLaser hardpoints changed from 8 to 5
Missile hardpoints changed from 8 to 5
Diamond cost changed from 6700 to 8600
Added 2 railgun hardpoints
Added 16 heavy weapons hardpoints
-Changed description and specs of Kazahth MothershipLaser hardpoints changed from 8 to 10
Added 14 railgun hardpoints
Plutonium cost changed from 19800 to 28420
Added 13 heavy weapon hardpoints
Bomb hold changed from 3 to 6
Diamond cost changed from 29500 to 68000
Uranium cost changed from 15600 to 24000
-Changed description and design for ValhallaMissile hardpoints changed from 8 to 6
Bomb holds changed from 3 to 10
-Changed description and design for the EinherjarShields changed from 15600 to 12000
Armor changed from 9750 to 4500
Diamond cost changed from 5500 to 7800
Hull changed from 8500 to 35000
Laser hardpoints changed from 8 to 0
Missile hardpoints changed from 8 to 14
Added 6 heavy weapon hardpoints
Bomb holds changed from 3 to 2
Movement initiative changed from 13 to 10
Xarn cost changed from 105000 to 101000
Ruby cost changed from 6980 to 4950
Draconic cost changed from 6780 to 16000
-Changed description and stats of Shadow WraithShields changed from 23600 to 48000
Laser hardpoints changed from 8 to 6
Diamond cost changed from 6800 to 7500
Missile hardpoints changed from 8 to 10
Added 2 heavy weapons hardpoints
Ruby cost changed from 16000 to 23000
-Ship Database Completed
Thursday, 26:
Player:
-Removed pRankPosition variable; unneeded
-Replaced destroyed planets array initialization with For Loop; removed 240 lines of code
-Added Platinum resource to Player
-Renamed several variables to conform to naming convention
-Replaced ship initialization with more compact and optimized system
-Player can now choose between one of five frigates as their starting ship along with the armaments they wish to employ
Monday, 30:
Player:
-Added pCShip and pCWeap functions for player starter ship creation
-Added comments to rest of functions currently present in header file
Ship:
-Added comments to present variables and also separated out like variables for cleaner look
ItemSystem:
-Added getSName, getSShield, getSArmor, getSHull ship data retrieval functions
-Fixed typo in Osprey’s name
-Fixed three major problems with shipDB matrixmost ship entries missing ship class element
bomb holds element was in the wrong place for most of the ships up to cruiser class
some ship entries did not have heavy weapons nor railgun hardpoint elements added
-Changed description for the Sleipnir
July
Wednesday, 13
New Classes:
-Added a new class; Game. This class will handle any wide scope game related functions such as saving and loading and data encryption/decryption. There may be other functions moved to here later on.
-Created a new class called menuProc (menu Processing) which will handle all of the menu option inputs. It will process the player choices and call the related functions. This is done in an attempt to move ALL player related choices out of the ‘main’ game execution file and reduce the choices throughout the rest of the project files and consolidate it all into one class eventually.
-Added Story class to this build. It only has one function at the moment for the opening story.
File Renames:
-Previously called game.cpp file has been renamed to main.cpp. Started the basic coding here including class references and starting function calls for creating the game start menu and calling the story. Renamed in lieu of Game class, would have had a name conflict with that classes implementation file (game.cpp).
Player:
-Removed Loading and Saving, Decrypting and Encrypting functions from Player.h. These functions relate more to game data then just the player class. They have been moved to the Game class.
Game:
-Added code for save function and data encryption and decryption. Function will create save folder structure if it does not exist then create the .nfo file. This does not include destroyed planet data at this time. Loading function not yet coded.
ItemSystem:
-Finished coding Ship database and removed old code for ship settings. Replaced 2,425 lines of code with 43 lines of code.
Tuesday, 19
Player:
-Removed data encryption, decryption, and save, load functions from the player class.
-Added setting functions for the player name, rank, ship name, ship class, ship technology level, and current/max armor, shield, and hull points.
Game:
-Added the code for the data decryption and encryption to the implementation file. Currently only the attributes listed in the “Player setting functions change log entry” are being used in these functions. Later on weapon and planet names will be added to these functions.
-Fixed a few types and comments in the implementation file.
ItemSystem:
-Began laser weapon entry into laserDB matrix.
-Changed the description for both the Ion-Particle Blaster and 50mm Suspended Coil Laser Cannon.
-Renamed ‘Ion-Partical Blaster’ to Ion-Particle Blaster.
-Altered the description and name for 50mm Omega Cannon Proto-Type, now called 50mm Omega Cannon Prototype.
-Description changed for 50mm High-Output Ion Cannon, 25mm Lightron Blaster, 50mm Compressed Lightron Blaster, 50mm Lightron Blaster, 100mm Suspended-coil Lightron Blaster, and 150mm Proto-Type Lightron Blaster.
-Renamed 150mm Proto-Type Lightron Blaster to 150mm Prototype Lightron Blaster and changed its attributes slightlyMaximum Optimal Target Distance changed from 7 to 12
Saturday, 23
ItemSystem:
-Made changes to the descriptions of the following laser weapons150mm Prototype Lightron Blaster
150mm Lightron Heavy Cannon
50mm Pyre Plasma Cannon
175mm Lightron Supercannon
175mm Lightron Blaster
250mm Lightron Medium Blaster
25mm Pyre Laser
-Changed attributes of the 50mm Pyre Plasma CannonMin Damage lowered from 90 to 65
Max Damage lowered from 105 to 80
-Changed the description for the 50mm Pyre Megalaser, it was also renamed from Mega-laser to Megalaser.
-Changed the description for the 100mm Pyre Laser and 100mm Pyre Plasma Cannon.
-Changed attributes of the 100mm Pyre Megalaser, name was also changed from Mega-laser to MegalaserUranium cost increased from 0 to 130
-Changed description and attributes of the 175mm Pyre Photon LaserMin Damage increased from 190 to 210
Max Damage increased from 230 to 240
Plutonium cost increased from 0 to 50
-Changed the description for the 200mm Pyre Megacannon, name changed from Mega-cannon to Megacannon.
-Changed description of the 300mm Lightron Ultra Plasma Cannon and the 300mm Pyre High-output Megacannon, which was renamed from 300mm Pyre High output Mega-cannon.
-Changed description for the Fleet Buster, Grand Hilzarat, and Grand Design.
August
Thursday, 4
ItemSystem:
-Changed the description for the following missilesCalamity Light Standard Missile
Ravager Light Missile
AP Light Missile
Cruise Missile
Warhawk Advanced Light Missile
Bloodhawk Light Missile
Serpent Light Missile
Angelus Light Missile
Spine Light Missile
Dreadlock Light Missile
Mole Light Missile
-Changed the description and attributes of the Warpigeon Light MissileMin Damage increased from 75 to 90
Max Damage increased from 95 to 120
Added 120 plutonium cost
Wednesday, 10
ItemSystem:
-Changed the descriptions for the following missilesBloodhawk Standard Missile
Angelus Standard Missile
Warpigeon Standard Missile
Spine Standard Missile
Mole Standard Missile
Ravager Standard Missile
Calamity Standard Missile
Serpent Standard Missile
Dredlock Standard Missile
AP Standard Missile
-Changed attributes of the Calamity Standard MissileMinimum damage changed from 40 to 50
Maximum damage changed from 90 to 120
Draconic cost changed from 80 to 110
Maximum target distance changed from 16 to 18
Xarn cost changed from 15000 to 22000
Ruby cost changed from 70 to 120
Diamond cost changed from 110 to 160
-Changed attributes of the Serpent Standard MissileMinimum damage changed from 48 to 50
Maximum damage changed from 72 to 76
Draconic cost changed from 70 to 230
Maximum Target Distance changed form 72 to 76
Xarn cost changed from 15000 to 17000
Ruby cost changed from 95 to 140
Diamond cost changed from 120 to 200
-Changed the attributes of the AP Standard MissileMinimum damage changed from 78 to 85
Maximum damage changed from 102 to 115
Draconic cost changed from 350 to 420
Maximum target distance changed from 12 to 10
Xarn cost changed from 19500 to 20000
Ruby cost changed from 120 to 130
Diamond cost changed from 95 to 100
-Changed the attributes of the Warpigeon Standard MissileMinimum damage changed from 100 to 110
Maximum damage changed from 126 to 130
Draconic cost changed from 120 to 400
Maximum target distance changed from 4 to 10
Xarn cost changed from 19500 to 23000
Ruby cost changed from 120 to 180
Diamond cost changed from 95 to 120
Saturday, 13
ItemSystem:
-Changed the description for the following missilesWarhawk Standard Missile
Serpent Medium Missile
Dredlock Medium Missile
Mole Medium Missile
AP Medium Missile
Ravager Medium Missile
Bloodhawk Medium Missile
Spine Medium Missile
Warpigeon Medium Missile
Calamity Medium Missile
Bloodhawk Heavy Missile
Angelus Heavy Missile
Spine Heavy Missile
AP Heavy Missile
-Added new weapon Hellstorm MissileMinimum damage set to 140
Maximum damage set to 260
Lithium cost set to 850
Maximum range set to 15
Technology level set to 8
Xarn cost set to 38000
Ruby cost set to 450
Diamond cost set to 500
Draconic cost set to 780
-Changed attributes for the Serpent Medium MissileMinimum damage changed from 54 to 80
Maximum damage changed from 86 to 105
Draconic cost changed from 50 to 400
Maximum range changed from 24 to 22
Xarn cost change from 16000 to 19000
Ruby cost changed from 100 to 130
Diamond cost changed from 34 to 350
-Changed the attributes of the Mole Medium MissileMinimum damage changed from 48 to 54
Maximum damage changed from 98 to 110
Uranium cost changed from 0 to 10
Maximum range changed from 26 to 28
Xarn cost changed from 14000 to 18000
Ruby cost changed from 120 to 230
Diamond cost changed from 48 to 360
Draconic cost changed from 180 to 390
-Changed attributes for the AP Medium MissileMinimum damage changed from 115 to 125
Maximum damage changed from 130 to 140
Lithium cost changed from 160 to 240
Maximum range change from 12 to 7
Xarn cost changed from 19000 to 21000
Ruby cost changed from 150 to 200
Diamond cost changed from 120 to 320
Draconic cost changed from 240 to 300
-Changed the attributes for the Ravager Medium MissileMinimum damage changed from 95 to 100
Maximum damage changed from 118 to 200
Uranium cost changed from 0 to 50
Maximum range changed from 18 to 16
Xarn cost changed from 17600 to 19000
Ruby cost changed from 140 to 190
Diamond cost changed from 110 to 200
Draconic cost changed from 130 to 260
Lithium cost changed from 180 to 215
-Changed the attributes of the Bloodhawk Medium Missile:Minimum damage changed from 52 to 75
Maximum damage changed from 84 to 130
Uranium cost changed from 0 to 60
Maximum range changed from 35 to 20
Xarn cost changed from 18000 to 23000
Ruby cost changed from 110 to 280
Diamond cost changed from 85 to 420
Draconic cost changed from 75 to 500
Lithium cost changed from 210 to 420
-Changed the attributes for the Spine Medium Missile:Minimum damage changed from 115 to 125
Maximum damage changed from 128 to 160
Uranium cost changed from 0 to 140
Maximum range changed from 18 to 8
Xarn cost changed from 21000 to 25000
Ruby cost changed from 170 to 220
Diamond cost changed from 160 to 390
Draconic cost changed from 290 to 520
Lithium cost changed from 85 to 160
-Changed the attributes of the WarPigeon Medium MissileMinimum damage changed from 135 to 160
Maximum damage changed from 150 to 185
Uranium cost changed from 0 to 650
Maximum range changed from 8 to 9
Technology level changed from 5 to 6
Xarn cost changed from 25000 to 32000
Ruby cost changed from 240 to 450
Diamond cost changed from 210 to 680
Draconic cost changed from 230 to 720
Lithium cost changed from 530 to 580
-Changed the attributes of the Calamity Medium MissileMinimum damage changed from 40 to 55
Maximum damage changed from 85 to 100
Uranium cost changed from 0 to 120
Maximum range changed from 12 to 10
Xarn cost changed from 12000 to 15000
Ruby cost changed from 120 to 180
Diamond cost changed from 90 to 160
Draconic cost changed from 120 to 210
Lithium cost changed from 180 to 200
-Changed the attributes of the Bloodhawk Heavy MissileMinimum damage changed from 150 to 220
Maximum damage changed from 230 to 290
Plutonium cost changed from 0 to 152
Maximum range changed from 15 to 10
Technology level changed from 5 to 7
Xarn cost changed from 26000 to 36000
Ruby cost changed from 190 to 350
Diamond cost changed from 200 to 680
Draconic cost changed from 150 to 850
Lithium cost changed from 280 to 650
Uranium cost changed from 240 to 400
-Changed the attributes of the Angelus Heavy MissileMinimum damage changed from 96 to 120
Maximum damage changed from 120 to 160
Plutonium cost changed from 0 to 120
Maximum range changed from 45 to 30
Technology level changed from 5 to 6
Xarn cost changed from 23000 to 25000
Ruby cost changed from 130 to 260
Diamond cost changed from 170 to 450
Draconic cost changed from 125 to 600
Lithium cost changed from 220 to 230
Uranium cost changed from 170 to 155
-Changed the attributes of the Spine Heavy MissileMinimum damage changed from 115 to 130
Maximum damage changed from 148 to 180
Uranium cost changed from 210 to 280
Maximum range changed from 15 to 10
Ruby cost changed from 160 to 180
Diamond cost changed from 210 to 260
Draconic cost changed from 250 to 500
Lithium cost changed from 300 to 320
-Changed the attributes for the AP Heavy MissileMinimum damage changed from 125 to 140
Maximum damaged changed from 167 to 186
Uranium cost changed from 280 to 310
Maximum range changed from 8 to 6
Technology level changed from 5 to 6
Xarn cost changed from 28500 to 30000
Ruby cost changed from 240 to 280
Diamond cost changed from 270 to 300
Draconic cost changed from 340 to 370
Lithium cost changed from 320 to 340
-Changed the attributes of the Dredlock Medium MissileMinimum damage changed from 62 to 90
Maximum damage changed from 80 to 130
Lithium cost changed from 210 to 460
Maximum range changed from 50 to 22
Xarn cost changed from 23500 to 32000
Ruby cost changed from 110 to 150
Diamond cost changed from 140 to 200
Draconic cost changed from 80 to 180
September
Wednesday, 28
ItemSystem:
-Changed the description for the following missilesWarhawk Medium
Serpent Heavy
Ragnarok
Dredlock Heavy
Mole Heavy
Warhawk Heavy
Warpigeon Heavy
Ravager Heavy
Calamity Heavy
Bloodhawk Ultra Heavy
Angelus Ultra Heavy
Spine Ultra Heavy
Dredlock Ultra Heavy
Warhawk Ultra Heavy
Serpent Ultra Heavy
Mole Ultra Heavy
AP Ultra Heavy
Ravager Ultra Heavy
Calamity Ultra Heavy
Bloodhawk Titan
Serpent Titan
Angelus Titan
Spine Titan
Dredlock Titan
Mole Titan
AP Titan
Ravager Titan
Warpigeon Titan
Warhawk Titan
Calamity Titan
Super Nova
Hell’s Teeth
-Changed the attributes of the following missilesWarhawk Medium
Serpent Heavy
Ragnarok
Dredlock Heavy
Mole Heavy
Warhawk Heavy
Warpigeon Heavy
Ravager Heavy
Calamity Heavy
Bloodhawk Ultra Heavy
Angelus Ultra Heavy
Spine Ultra Heavy
Dredlock Ultra Heavy
Warhawk Ultra Heavy
Serpent Ultra Heavy
Mole Ultra Heavy
AP Ultra Heavy
Ravager Ultra Heavy
Calamity Ultra Heavy
Bloodhawk Titan
Serpent Titan
Angelus Titan
Spine Titan
Dredlock Titan
Mole Titan
AP Titan
Ravager Titan
Warpigeon Titan
Warhawk Titan
Calamity Titan
Super Nova
Hell’s Teeth
-Compelted database for missile weapons; removed 4500 lines of code, replaced with 74 lines.
October
Wednesday, 19
ItemSystem:
-Changed the description and attributes of the following weaponsDestructor Bomb
Neopryte Bomb
Apocalypse Bomb
Light Gettysburg Bomb
Nako Advanced Bomb
Planet Cracker
Medium Nano Bomb
Medium Neopryte Bomb
Medium Gettysburg Bomb
Medium Nako Advanced Bomb
Heavy Nano Bomb
Heavy Neopryte Bomb
Heavy Gettysburg Bomb
Ultra Heavy Nano bomb
Ultra Heavy Neopryte Bomb
Ultra Heavy Gettysburg Bomb
Heavy Nako Advanced Bomb
Ultra Heavy Black Hole Bomb
Ultra Heavy Planet Cracker
Maximum Nako Advanced Bomb
Gravity Bomb
Hell’s Teeth
Lillith’s Wish
Adam’s Anger
-Replaced 1279 lines of code with 27
-Added one (1) bomb hold to Rifter design to accommodate starter ship choice.
-Added several new ‘Get’ functions for laser weapon informationgetWLName
getWLAMin
getWLDROMax
getWLAMax
getWLAOMin
getWLAOMax
getWLDRMin
getWLDRMax
getWLDROMin
Player:
-Added check to starter ship selection so that if the chosen value is out of bounds the code will default to 1.
-Added player starter laser weapon selection, including above check and IS function calls. The following weapons have been added to the start selection listLow-Tech Phaser Array
Ion-Particle Blaster
Lightron Blaster
50mm Suspended Coil Laser Cannon
50mm Omega Cannon Prototype
50mm High-Output Ion Blaster
Sunday, 23
ItemSystem:
-Changed the Osprey design, added one (1) missile turret to this ship to accommodate the starter ship choice.
-Added the following functions for player starter ship choicesgetWMName
getWMDRLow
getWBWeight
getWMDRHigh
getWMAMax
getWBName
getWBDRLow
getWBDRHigh
Player:
-Added the following functions as part of the player starter ship systempCMWeap
pCBWeap
-The following bombs and missiles have been added to the player startship armament processDestructor Bomb
Neopryte Bomb
Serpent Lite Missile
Lite Gettysburg Bomb
Nako Advanced Bomb
Calamity Lite Standard Missile
Ravager Lite Missile
Cruise Missile
Warhawk Advanced Lite Missile
Bloodhawk Lite Missile
-Added the player takeDamage function. This function has a tiered if/then/else statement system t catch any damage overflow from the different health areas; shields, armor, hull. Old system calculated damage then sent that value off to another function. This one does all of the application in house, but the damage calculations will be done from battleProc (battle processing).
Monday, 24
Player:
-Removed private variable pSTLevel as the Ship struct already contains a variable for the ship tech level.
Planet:
-Setup the Planet Class and added the following things to itFunctions:Planet (constructor)Variables:
pNamepEKS*
pPop –popultion
Hostile:
-Added the following functionshostile(string hRace, string hRank, Ship hShip, int hXarn, int hRubies, int hDia, int hDrac, int hLith, int hUra, int hPlut, int hPlat, int hNWaste) (constructor 1), hostileStory(string hName, string hRace, string hRank, Ship hShip, int hXarn, int hRubies, int hDia, int hDrac, int hLith, int hUra, int hPlut, int hPlat, int hNWaste) (constructor 2)
-Added the following variableshName
hRace
hNWaste
hRank
hShip
hXarn
hRubies
hDia
hDrac
hLith
hUra
hPlut
hPlat
BattleProc:
-Setup the BattleProc class and added the following functionsdamageCalc
endBattle
*Click here for the explanation of this variable. It was too long to include in the changelog.
December
Tuesday, 06
Planet:
-Split the class into two separate entitiesPlanet Processing will handle all global planet processes, such as placing a destroyed planet into the destroyed planets array. Planet will be a pointer based class that will function a lot like the hostile class except that planets will be stored in an array upon deletion during an event. This array will be updated each “turn” depending on various conditions if the player colonized said planet.
-Added several new variables to the planet class, all having to do with the planets habitability*pGrav -gravity
pRad -yearly radiation
pBDivers –planetary biological diversity
pOxy –atmosphere oxygen levels
pNit –atmosphere nitrogen levels
pCarb –atmosphere carbon levels
pHel –atmosphere helium levels
pALevel –strength of atmosphere and planetary coverage
pLMass –available landmass
pWMass –percentage of planetary space that is ocean
Each of these variables can be affected by certain factors, such as population growth, industrialization, or pollution. Teraforming will move these values closer to 62nd century earth’s conditions.
-Added second Defense attribute to the class for shield based defense systems.
PlanetProc:
-Added the following functionsisDest –is the planet destroyed
isOwned –is the planet already owned by the player
setPOwned –set planet as player owned
fPlanets –search for planets within scan range (currently static at 50 LY)
pPlanets –print out list of found planets
setDest –set planet as destroyed
-Added the following variablessPlanets –array for scanned planets*
oPlanets –array for player owned planets
*Click here for further explanation
MenuProc:
-Added navigation menus 1 and 2. Nav menu two will work with above fPlanets/pPlanets functions to print out found planets for the player to travel to. Similar system to be setup for stations.
Main:
-Added game class and planet processing references.
-Created start game menu operations and started on the game loop.
Game:
-Added new function sGame (start game) to the class.
Friday, 23
Player.cpp:
-Added all ‘get’ functions into the player implementation filegetAcc
getDia
getSTLevel
getDrac
getEADist
getXarn
getLith
getNucWas
getPWStatus
getPlat
getPlut
getRubies
getSArmor
getSHull
getSMArmor
getSMHull
getSMShield
getSShield
getUra
getName
getRank
getSClass
getSName
Saturday, 24
Player.h:
-Added several new functionsgetFKills
getDKills
getTKills
getCKills
getBCKills
getBKills
getCSKills
getMKills
-Added several new variables for Player ranking system*pFKills
pDKills
pTKills
pCKills
pBCKills
pBkills
pCSKills
pMKills
Player.cpp:
-Added above functions to the Player implementation file.
*Click here for more information on ranking requirements and here for more information on the Combat Experience System (CES).
Sunday, 25
Player.h:
-Modified the ranking system. Rank requirements for combat experience have now been changed to a CB level system where each battle gives exp. After a certain amount of exp your combat level will increase. At certain levels, in combination of previous requirements, you will be given an option at Alliance space stations to receive a promotion. You must go to an Alliance station in order to get this promotion once the requirements are met.
-Added the following variablespCBELevel
pCBExp
tNCBLevel
Player.cpp:
-Fixed some function definitions that had incorrect connections to the Player class.
-Added the rest of the rank system functions and set functions for player variables\setName
setRank
pCBLUp
setSArmor
setSHull
setSMArmor
setSMHull
setSShield
setSMShield
setSName
setSSTLevel
cLUp
-Added functions for player combat level gaining, noted above. Levels are calculated via the following equation*To Next Level = (Current Level • 1250) • 1000 • 1000 • Current Level / (2 / ((1000 • (Current Level • 1250)) / 2))
2012
February
Monday, 13
Player
-Moved several menus out of the player creation process and placed them into menuProc where they should be incorporated.
-Changed all function calls related to the itemSystem information ‘gets’ for starter ship initialization due to changes to the class.
-Added menuProc reference for menu creation.
-Split up takeDamage function into base parts; takeSDamage, takeADamage, and takeHDamage, in order to make applying damage from special types much easier, effective, and efficient with the least code necessary.
menuProc
-Added several new functions for player creation menuspCMenu1
pCMenu2
pCMenu4
pCMenu3
-Added generic invalid menu option catch.
itemSystem
-Reworked the weapons databases so that they could all be placed into a single matrix. Styled more after SQL table with non-applicable entries nulled.
-Added two new attributes to each weaponWeapon Type
Weapon Damage Type
-Added functions to obtain weapon and damage typegetWType
getWDType
-Removed many functions that were duplicating information ‘gets’. Instead of each weapon type having a ‘get’ function there is now only one set of them for the entire table. Weapons that do not have a specific attribute will not be able to use a ‘get’ function if they do not have that specific attribute.
-Removed Optimum Range Damage attributes from all weapons and ship struct. Optimum range damage will be applied to a multiplier at random between 1.5% and 2.5% more damage in order to simplify damage calculations due to special damage types.
Weapons
-Added new variables to each weapon structtLevel //technology level
wType //weapon type
damageTypes
-Added in some damage type descriptions to await further implementationPiercing1
Piercing2
Massaccel
Piercing3
Napalm1
Napalm2
Napalm3
Destructor
Nanite1
Nanite2
Nanite3
Doomsday1
Doomsday2
Stealth
Frigonly
Null
Emp1
Emp2
Emp3
Virus1
Virus2
Virus3
Tuesday, 14
Hostile
-Added new functions and related code in the .cpp filesetName
setRank
getSTLevel
setSArmor
setSHull
setSMArmor
setSMHull
setSShield
setSMShield
setSName
setSSTLevel
getSArmor
getSHull
getSMArmor
getSMHull
getSMShield
getSShield
getName
getRank
getSClass
getSName
-Renamed hostileStory to Hostile. Other constructors renamed to Hostile to reflect the class name change (from l.c. h to capital h). Also added in a blank constructor for definitions of hostile ship instances for multiple ship battles.
-Removed initialization code from Hostile constructors, it will now take place in battleProc.
battleProc
-Added the following functions and/or related code for those marked with a *; ** means partial codebattleLoop()**
hDCalc()
endBattle()**
pDCalc()
hInit()**
pInit()
initHR1()**
initHR2()
initHR3()
initHR4()
-Added pointer definitions to the .cpp file so that I could initialize hostile ship pointers within separate functions to facilitate cleaner looking code.
-Enemy ship creation system based on player rank
menuProc
-Added two missing functions for the navigation menusnMenu1
\nMenu2
itemSystem
-Added in functions to search and return ship technology level, hard points, and classgetSBHolds()
getSMTurrets()
getSClass()
getSLBanks()
getSRails()
getSHWBays()
getSWHPoints()
getSTLevel()
Main
-Moved game loop out of main and into menuProc (to be completed at a later date).
-Removed many class references and class pointers since pointer initialization now happens in battleProg
Wednesday, 15
Hostile
-Fixed a small typo within the class and in child classes for Talirath and Tech Merchant.
-Added in all code for most of the functions detailed in yesterday’s update.
-Changed getSTLevel from string to int to reflect change of the attribute in the ship structure.
itemSystem
-Added in the following functions, but have not implemented the code yetgetSWHP
getSLB
getSPC
getSMT
getSBH
getSRM
getSHWB
getSDesc
getSMInit
getSXC
getSRC
getSDC
getSDiC
getSUC
Player
-Changed getSTLevel from string to int to reflect change of the attribute in the ship structure.
Thursday, 16
dataSystem
-Renamed itemSystem to dataSystem. This change was undertaken because I wanted to store all static data in this class and not just item and ship information.
-Added the following new data array(s) to this classplanetNames
ranks
pDD
raceNames
-Added code for yesterday’s implemented functions.
planetProc
-Removed the following data array(s)planetNames
pDD
Player
-Removed the following array(s)ranks
Game
-Removed the following array(s)raceNames
Saturday, 18
battleProc
-Continued working on hostile initialization. Scrapped previous idea in favor of going to an object array after all ships have been initialized.
-Created two new arrays to hold both player wingmen shims and hostile ships during battle.
Hostile
-Edited both constructors to better fit both data sources and removed variables that were not going to be used at the present.
-Added all code to said constructors.
dataSystem
-Added getRace function.
Ship
-Changed some ship variable names and added a variable for movement initiative.
Thursday, 23
battleProc
-Continued work on hostile initialization. Included code to randomly pick and setup a laser hard point for the ship.
-Fixed several issues within the ship and weapon database matrices that would have caused major issues during compile.
Weapon
-Along with ship struct, I will be changing this into a class that will contain all ship related functions. Each ship will be instantiated as its own object and so can be placed into an array which leads to cleaner and short initialization code.
Ship
-Along with weapon struct, I will be changing this into a class that will contain all ship related functions. Each ship will be instantiated as its own object and so can be placed into an array which leads to cleaner and short initialization code.
Hostile
-Added the following functionsinitHardpoints
getLHP
setBH1
setLBA
setMT1
-Modified constructors a bit to better reflect their purposes and to fix some issues. Started on weapon initialization but stopped when I decided to go with the class route.
Monday, 27
Player
-Removed any and all ship/weapon related functions and code from the class.
Hostile
-Removed any and all ship/weapon related functions from the class.
Ship
-Began the process of changing this struct into a class. Consolidated all ship code from both Player and Hostile and are in process of rewriting it for the new class.
Weapon
-Began the process of changing this struct into a class. Consolidated any code related to this class into it and have begun rewriting it for use within this class.
March
Thursday, 1
Weapon
-Completed changing structs to classes. Decided to go with an Inheritance structure where each type of weapon is a child class of Weapon. The Weapon class has any and all variables and functions related to two or more specific weapon types. The classes that are childed to Weapon can access all of these while being able to contain their own specialized, one-off variables and functions. All coding for these functions has been completed as well. Included some commented functions that will be used in later versions.
-Added or changed old functions to the following functionsWeaponsetWDRange
setWAcc
getWDType
setWName
setWDtype
setWTLevel
setWType
setWASpeed- commented
getWDRLow
getWDRHigh
getWDROLow
getWDROHigh
getWALow
getWAHigh
getWAOLow
getWAOHigh
getWTLevel
getWTpye
getWASpeed- commented
getWName
BombsetWeight
getWeight
DefensesetSPoints
getSPoints
takeDamage
HeavysetDInt
getDIntLow
getDIntOHigh
getDIntHigh
getDIntOLow
-Added or changed old variables to the following variablesWeaponwAcc- weapon accuracy
wDRange- weapon damage range
wType- weapon type
wDType- weapon damage type
wName- weapon name
wTLevel- weapon technology level
BombbWeight- bomb weightDefensedSP- defense structural pointsHeavyhDInt- heavy weapons damage intensity range
Ship
-Completed changing this struct to a class and finished all coding for the related functions. Did not change many variables or add many functions that were not already in use by other classes.
-Changed weapon hard point definitions to arrays to remove seven lines of extra code per each weapon type (5 weapon types, times seven lines; total code removed 35 lines and replaced them with 5 lines) and added code to HPInit function to use weapon hard point values taken from itemsystem database to initialize only an equal number of the eight elements in each array, again to remove coding lines (this change removed 250 lines of code and replaced them with 24).
April
Tuesday, 10
damageType
-New class, this class will be responsible for both applying special events and giving extra damage based on weapon damage types.
-Added the following functionsdTPiercing1
dTPiercing2
dTMAccel
dTPiercing3
dTNapalm1
dTNapalm2
dTNapalm3
dTDestructor
dTNanite1
dTNanite2
dTNanite3
dTDDay1
dTDDay2
dTStealth
dTFOnly
dTEMP1
dTEMP2
dTEMP3
dTVirus1
dTVirus2
dTVirus3
dTVirus4
Player
-Removed the following functions, they have been moved to ship classisDestroyed()
isDisabled()
getSStatus()
battleProc
-Began adding in damage modification code. This has to do with damage types and what they will do to the ship when applied. Most will add extra, special, non-affiliated damage by taking it out of which ever health they effect beforehand. Other, more specialized, effects will also be applied here.
-Added new functionpDModifier() //modify player damage if special damage type present
Ship
-Added some new functionsisDestroyed() //If ship destroyed?
isDisabled() //Is ship disabled?
getSStatus() //Are shields up or down?
Project-Wide
-Changed damage variable from integer to float. Will be changing health types to floats later on as well.
Thursday, 12
Ship
-Added following functionstoggleSStat
toggleShields
disableShield
disableShip
-Added following variablesDTimer
Weapon
-Added following functionstoggleWeapon
isWDisabled
-Added following variableswStatus
wDTimer
-Changed all child classes so that they used public inheritance to this class
Saturday, 14
Player
-Changed takeDamage functions to floats from ints.
-Added the following variablesdamage
damage2
damageType
-edited the code for the EMP functions for more logical code flows.
battleProc
-Started recode of damage modification function for more logical code flow and to take into account the variety of damage types in order to keep the size of the function down.
-Add the following vairablesdamage
damage2
damage3
Sunday, 15
Hostile
-Added the following functionshSetup
-Removed all functions having to do with weapon and ship setup to those respective classes
battleProc
-Added the following functionshTSetup
hTInit
-Did a lot of work on several functionsinitHR1- this function now just calls specific setup functions from the respective classes along with passing the pertinent code value so those classes can do the hard work. Removed all “set” code from this function into other functions in the correct classes.battleLoop- Removed any variable declarations and put them in the header file and started writing the shell for the b. loop.battleProc- I was able to remove 90% of the variable initializations from the contructor due to changes in initHR1.
-Added the following variableshTNumber
bEnd
hostiles
pGOver
pWin
Player
-Added the following functionsgameOver
getCELvl
Ship
-Added the following functionsSetup
-Moved weapon arrays to public scope so other classes can access them and the functions therein
Weapon
-Added the following function to LaserwSetup
Monday, 17
battleProc
-Added several new variablesturrets
iTurrets
iBombs
bombs
-Changed the battleLoop function to include two new bool overrides, ship and planet. This is to facilitate if the battle is a ship to ship battle or a ship to planet battle.
-Modified the hDCalc function to actually compute the damage for hostile team, it had been doing player. Setup for loop to find only the target to apply damage to as well as pass the name through to damageType if special damage has to be applied.
-Finished coding the initHR1 function. It now contains all of the code to setup all possible hostile team ships except for newer weapon mounts (rail and heavy).
-Moved the findTarget call in both pDCalc and hDCalc to the top of the function
-Fixed some left over ‘d’ variables from the change of ‘d’ to damage2 in both pDCalc and hDCalc
Player
-Fixed some left over ‘d’ variables from the takeDamage functions from the change from ‘d’ to damage2.
Ship
-Renamed the getLHardpoints function to getLHP
-Added the following functionsgetMTP
getBH
-Fixed typo in the implementation declaration of isDestroyed
-Added the following variablesdata
sXC
sPC
sRC
sDiC
sDC
sLC
sUC
-Added in/edited code for sSetup function
Weapon
-Removed the following functionssetWDRange
setWAcc
setWASpeed- commented
setWName
setWDtype
setWTLevel
setWType
-Merged all of the above functions into wSetup function
-Moved wSetup function from Laser class into Weapon class
-Added the following variable to the classdata
-Changed the Bomb class setWeight function so that it will instead call the Weight search dataSystem function then set the weight
Wednesday, 18
menuProc
-Added the following functions and all related codepBStatus
hBStatusA
hBStatusB
-Moved int i global define from implementation file to header file as a private variable
Ship
-Added the following function and related codegetSDTimer
Thursday, 19
Project Wide
-Changed all references to menuProc to msgProc to reflect the class rename
Player
-Added the following functionspAttack
-Added the following variablessCode
wCode
-Altered the player creation functions to make use of the new ship functions added in earlier in the week. This also reduced the code linage total by a large amount. Each of the four functions had 45+ lines of code replaced by two. I also removed the menu check and other iosystem related code and moved it to msgProc. Those functions now return the player’s chosen value with the check happening on that side instead of player. This also helped reduce the number of lines used.
msgProc (formerly menuProc)
-Renamed the class to better reflect the purpose of the class.
-Nearly all of the menu functions have been changed at this point to the new method where each menu is self-contained in this class. All menu item picking and value checking happens here then the chosen value is returned to the calling function for further use.
-Added the following functiongetMsg
-Added the following variablespChoice
battleProc
-Added the following functionpRetreat
-Modified endBattle function to take a bool called escaped to check if player won by defeating the enemies or by running, the later triggers a no-rewards end battle screen.
-Added the following variablespContinue
pAttacked
hDCounter
escaped
pNTarget
-Worked a great deal on the battle loop today. Most of it has now been fleshed out for the ship battles. Planet battling is still at 0% completion. Ship battles broken into two classes, single ship battles and team battles. Currently since player team is not used it is singular to player vs. hostile team. This will change once wing men are implemented. There is still a lot of work to do on various constraints, setting up the weapons firing selections, and whatnot.
Hostile
-Added the following functionsgetRace
getDispo
-Changed the constructors to take advantage of the new ship initialization method; replaced a total of 68 code lines with 20 lines total (including function declarations).
-Uncommented get resource functions.
Ship
-Added hostile bool to ship setup function so that resource setting for hostile ships could be randomized while player resource values would not.
Main
-Added class reference for msgProc
June
Tuesday, 12
MsgProc
-Renamed mSSMenu# to mSMMenu#
-Added station market menu 1
Wednesday, 13
MsgProc
-Added station market menu 2
Station
-Added station menu loop
-Added boolean variable sLeave
-Added function sMMenu
Thursday, 14
MsgProc
-Added ship classification menu
-Added variablesdLastValue
mCode2
-Added market classification menu
-Fixed issue that could have leaf to a menu choice bug in weapons market menu
-Renamed mSSMenu functions to mSMMenu to reflect header name change
-Removed cInvalid function declaration and code; no longer needed
-Added MsgDB array that will contain heavily used messages to cut down on use of code
-Added mRMessage function and code to access the MsgDB array to get messages
Station
-Added sMMenu function code
-Began work on code for menu loop
Tuesday, 19
Station
-Added cCode2 for passing ship classification
-Added sWMLoop, sSMLoop, and sMMLoop functions
-Added the following boolean variablessWMenu
sSMenu
sMDMenu
Wednesday, 20
MsgProc
-Added functions mSMMenu8 and 9
-Removed all passed class references in function calls in favor of hard coding refs into implementation file for cleanliness
Station
-Added functions sMPurchase and sMBuy
-Renamed cCode2 and iCode2 to cCode and iCode respectively
-Removed all passed class references in function calls in favor of hard coding refs into implementation file for cleanliness
-Started coding sMPurchase and sMWLoop
-Fixed issue that would have caused menu loops to re-loop on same menu choices because player would not be asked to re-enter a menu choice
DataSystem
-Removed all xCode2 = xCode -1; statements from data grab functions. Replaced with a [xCode-1] array return to cut down on excess code; removed 45 lines of code.
-Added class element to weapons database to simplify market process
-Added getWClass and doesCMatch functions
-Altered weapon get functions to reflect new matrix element
-Found problem with get weapon codes where Xarn cost was not being returned, fixed it by adding in the function to do so and altered the remaining functions for correctly returning array elements to function call
Thursday, 21
MsgProc
-Added boolean variable mContinue
-Worked on laser weapon menu loop
Station
-Added getClass function
-Added variable cCode2
Friday, 22
Station
-Removed getClass, forgot this was already implemented in dataSystem
DataSystem
-Added getWDesc function
Thursday, 28
MsgProc
-Added iType2 for specific item delineation
-Worked on item information screen
Station
-Added iType2 for specific item delineation
DataSystem
-Started the process of adding data basting to all data gets to reduce code that should not be used in other classes
-Added the following variables for data castingdata
data2
August
Friday, 17
Player
-Added resource set functions for each resource for related functions and code for those functions.
Station
-Started working on the sMPurchase function, added resource checks for weapons; if the checks are true required resources will be removed.
Monday, 20
DataSystem
-Converted rest of get function into int returns with data casting happening internally. Some functions remain string returns but only for those data that are string variables. Total of 46 functions changed.
MsgProc
-Finished coding weapon section of item information page included resource checks.
-Added bool variable valid for valid input check on player buying weapon. This part explicitly requires valid input, no defaulting, because it can drastically affect the players game due to removed resources.
-Added new message to the message database for non-defaulting invalid menu choice.
Ship
-Removed any data casting code. Hostile resource costs also uncasted. Removed a total of 89 lines of code.
Station
-Removed any and all in-class variable function passes, they are not needed since these functions can already access the variable.
-Completed the first half of the weapon purchase function including resource removal from player. The next section will have to do with player station storage/installing bought item.
Weapon
-Removed any code previously required for casting. Removed 56 lines of code.
Thursday, 23
DataSystem
-Fixed a mistake I made earlier this month when I changed the getWClass function to an int. Changed it back to a string function and removed the data conversion code.
-Began adding weapon classes to the weaponDB matrix.
MsgProc
-Added two new messages to msgDB array.
-Modified most functions in this class. Original naming convention was m for message then the name of the calling class as a capital and then the rest of the function name (IE: mGSMenu for menu game start menu). I have changed this so that the lower case letter is the letter for the calling class instead of ‘m’ (IE: gSMenu fort game start menu).
-Renamed gSMenu to gTMenu.
-Added new function sISIMenu for item installation or storage choices.
Station
-Added new function sISItem for processing item installation and storage checks.
Player
-Added three new variables dealing with station storage space*pCSSSpace (currently used storage space)
pMSSSpace (max usable storage space)
pSSSlots (number of station storage slots)
-Added a vector to store items in the players station inventory for later use.
*Click here for more information on the storage system.
Note: Here after changes will be cataloged by class instead of date.
October
Message Proc
-Stated adding in cargo compartment buy menu (10/4).
-Finished the sBISMenu function code (10/5).
-Finished sISItem function code (10/9).
-Added a few things to the sBISMenu function to fix a bug that would have presented itself later on (10/9).
-Finished buy inventory space/slots menu functions (10/14).
Player
-Moved inventory stuff over to station where it belongs. Will also be adding it to ship later on (10/1).
-Modified all of the set functions for resources. Added an operation parameter to tell if the value should be added, subtracted, or just a simple set (10/14).
Ship
-Added new function iWeapon to install weapons if player so chooses to, no code yet (10/1).
-Changed iWeapon from void to Boolean to handle the issue of there being no open weapon hardpoints to install a weapon to (10/21).
-Added code for the iWeapon function (10/21).
Station
-Created some storage related functions for storing items and adding space. Constructor now initializes the sInv vector (10/1).
-Moved all storage variables from Player to Station (10/1).
-Split the class into to smaller classes, like what I did with planet. Station descriptive elements kept in station. Menu calls and other things that operate on the station class have been moved to stationProc (10/4).
-Moved the sInv vector, sCSSpace, sMSSpace, sISlots, bDASlot, bDASpace variables to this class from stationProc (10/4).
-Moved functions getISItem, addISpace, addISlot, getISize to this class from stationProc (10/4).
-Changed second constructor into a function for setting up cStations vector (10/4).
-Moved sSItem, sBISpace, and sBISlot back to stationProc due to a better fit with that class (10/5).
-Added getCSSpace and getMSSpace functions (10/9).
-Added an int parameter to getISItem in order to get a specific inventory vector element (10/9).
-Removed getSISlot function, could not remember what it was for and was made obsolete by another function (10/23).
-Added code for the addISpace, addISlot, and getISItem functions (10/23)
Station Processing
-Added getStation function to obtain specific station instances from vector (10/4).
-Added cStations vector to store created stations for use later on (10/4).
-Modified the following functions to account for recent changes: sMenu, sMLoop, sWMLoop, sSMLoop, sMMLoop, sRepair, bClone, useClone, sShop, sBar, sBOffice, sEAEOffice, and sMPurchase (10/4).
-Fixed typo in function sEAEOffice, should have been sEAFOffice where ‘F’ is Field (10/4).
-Moved sSItem, sBISpace, and sBISlot back to this class since they operate on values contained in the Station class (10/5).
-Finished out the code for sBISlot (10/5).
-Added some required reference passes to various functions and modified function calls in certain classes to use those reference passes (10/5).
-Added Station and msgProc reference passes to sSItem (10/9).
-Changed some lines in sSItem to call the functions added today to Station (10/9).
-Finished the buy inventory space and slot functions (10/14).
-Removed any reference passes for msgProc. MsgProc does not store any information needed elsewhere so no passes of instances required (10/14).
-Added bDone bool variable for use with a function (10/23).
-Changed sSItem a bit by adding a while loop and removing the condition statement from the for loop (10/23).
Weapon
-Added iWeapon functions and code to all of the weapon classes (10/23).
December
DataSystem
-Added station names array (12/26).
-Changed mission time limit to days instead of miliseconds and update ‘The Wolf’ mission (12/28).
MsgProc
-Removed stationProc reference from the class, it was not needed and highlighted a serious issue with another function of this class (12/28).
-Added six new messages to the msgDB (12/28).
-Modified sBISPMenu to not need the stationProc reference and also in response to changes to the sBISpace function in stationProc (12/28).
Player
-Added pMissions vector for tracking what missions the player is on and other mission related stats (12/28).
-Added addMission, removeMission, updateMission, getMission, and getAMissions functions for mission handling for the player class (12/28).
-Removed remnant inventory code from the player class that I missed earlier (12/28).
StationProc
-Added createStation function (12/26).
-Began coding sRepair function (12/16).
-Added csPos int for tracking station position in vector for updating the vector element after player leaves station (12/26).
-Added sDepart function (12/26).
-Modified the sMenu function a little bit for more logical processing (12/26).
-Added code for sDepart function (12/28).
-Added stat reference to sMenu call in createStation (12/28).
-Fixed some issues with sMenu (12/28).
-Changed several areas where messages were printed into mRMessage calls (12/28).
-Fixed a major problem with sBISpace. It did not have any execution path for when the player chose to buy or not buy inventory slots if there was not enough space. Added those and changed the way the entire function executes (12/28).
-Added modifications to sSItem to account for changes to sBISpace, much of the function had to be changed (12/28).
2013
January
DataSystem
-Added the following functions: GetMName, getMDesc, getMType, getMDur, getMDiff, getMSector, getMSystem, getMCBEReq, getMSCReq, getMMWReq, getMTName, getMTSClass, getBounty, getMXR, getMRR, getMDiR, getMDR, getMLR, getMPlR, getMUR, getMPR, getMNWR, getMEXPR, getMIR (1/1).
-Added new fields to missionDB matrix, formerly known as missions array. Added an exp and item reward field. Changed numbered fields with “Null” in them to -1, only text fields will use Null (1/1).
-Added code for the list of functions above (1/1).
Mission
-Added new class called Mission to store mission data. Will be used in instancing with pMissions vector to store each mission individually. Only basic class information at the moment but will be fleshed out later on (12/28).
-Added the following functions: getRewards, getBMInfo, getCMInfo, GetMName, getMDesc, getMType, getMDur, getMDiff, getMSector, getMSystem, getMCBEReq, getMSCReq, getMMWReq, getMTName, getMTSClass, getBounty, getMXR, getMRR, getMDiR, getMDR, getMLR, getMPlR, getMUR, getMPR, getMNWR, getMEXPR, getMIR (1/1).
-Added code for all of the functions listed above (1/1).
MsgProc
-Added mInfo function and the code required to obtain mission information through a pointer (1/1).
Player
-Added setCEXP function and code for it (1/1).
-Added completeMission function and some of the code for it (1/1).
February
BattleProc
-Began rewriting the battle loop. Changing focus from two battle styles, single and team, into only team (2/8).
-Added battleParticipants vector to store whom will be fighting and the attack order (2/8).
-Added several new variables to the class to handle the battleParticipants process (2/8).
-Added new class bParticipants to load the vector for storing name and ship movement initiative for determining the attack order (2/9).
-Added several new variables for storage of the bParticipants class for bubble sorting of vector (2/9).
-Added menu switch to player section of ship battle loop (2/11).
-Added bFSolutions to handle different attack modes during battle (2/11).
-Did some more work on bFSolutions by starting to add in the rest of the function and directing how the battle progresses from this function (2/16).
-Added new bools for dealing with weapon selection and damage type detection (2/16).
-Made some changed to fSolutions to take into account recent changes (2/27).
-Added a member variable, wtype, to track and pass weapon types (2/28).
Damage
-DamageType renamed to damage to better fit what the class will be used for (2/8).
-Added two new functions bPAttack and bHAttack to deal with player and hostile damage (2/16).
-Added setupWQueue to setup the weapon order for attacking (2/27).
-Added cleanWQueue to clear the weapon vector before use (2/27).
-Added several new member variables for dealing with damage: vDamage, mDamage, fDamage, tSDamage, sDamage (2/28).
-Added dLow and dHigh member variables for tracking weapon damage ranges (2/28).
-Added nSDamage, nADamage, and nHDamage for nanite damage calculation (2/28).
-Added wdtype to track the type of weapon damage being applied (2/28).
-Added sDNTurns and sDNANTurns to track turns left to apply napalm and nanite secondary damage (2/28).
-Added function processWQueue to cycle through the weaponQueue and pull out weapon information (2/28).
-Added processSDamage and processSecDamage to deal with secondary damages and special damages (2/28).
-Added getSDNTurns and getSDNANTurns functions to find out if any turns for these turn-based secondary damage types are present (2/28).
-Started to code bPAttack (2/28).
-Added code for all new functions mentioned above (2/28).
DataSystem
-Removed periods from end of weapon and ship descriptions for cleaner output (2/5).
-Fixed problem with data not being correctly obtained from this class. Some functions were not properly connected to the data they were supposed to be returning (2/5).
Debug
-Created new class for debugging, will become logging class in future versions of the game. This one is to be used for current development feature debugging purposes (2/4).
Hard Point
-Added these new classes to accomplish weapon spreads as well as to better approximate how hardpoints work. Hard Point is the super class while the others are sub classes for each weapon type (2/11).
-Added new constructor to hardPoint super class in order to set weapon type and slot number on creation to limit amount of code used (2/13).
Hostile
-Added new function to tell if hostile entity was actually hostile; needed for battle loop, it can be overridden (2/9).
MsgProc
-Fixed a bug that would have caused a crash within sMMenu3 by not catching invalid input. I also altered this function to actually work as it was supposed to; it was missing some things and had faulty code (2/5).
-Added new message for choosing a target to attack (2/9).
-Added new functions sWSSelection,sLWSelection, sMWSelection, sRWSelection, sHWSelection, sCWSpread, and sOWSpread. All are related to functions required by weapon spread system (2/13).
-Added new member variables totalWeapons, laser, missile, rail, heavy, and type for dealing with weapon selection (2/16).
-Added new functions bCSpread, bCWSystem, and bCWeapon (2/16).
-Changed bool valid to bValid and mContinue to bContinue (2/27).
-Added a new menu for weapon selection during battle; sCWSystems (2/27).
-Added two new messages to messageDB (2/28).
Player
-Modified pAttack for new focus on how battles are conducted from the battleProc class (2/16).
Ship
-Changed weapon hardpoint arrays into vectors using new hardpoint classes (2/11).
-Added weapon spread vectors for determining how to fire equipped weapons (2/11).
-Renames ship/shield disabled bools to conform to bool naming conventions and fixed references to them in code (2/11).
-Added bContinue bool for use later on in weapon spread creation (2/11).
-Added new hardpoint and weapon spread counters for weapon spread creation (2/11).
-Added two new classes, cWSpread and getWSpreads for dealing with weapon spread creation and execution (2/11).
-Added new variables for dealing with weapon spreads as well as player choices (2/13).
-Added five more weapon spread vectors and a temporary vector to store spreads created by the player until they can be moved to the selected weapon spread (2/13).
-Finished coding sWSpread function (2/13).
-Added several new functions: setCWSpread, setCWeapon, setCWSystem, getCWeapon, getCWSystem, getLWeapons, getMWeapons, getRWeapons, getHWeapons (2/16).
-Added a few new member variables to deal with battle weapon selection; sCWeapon, sCWSystem (2/16).
-Removed get/setCWeapon and get/setcWSystem. These were no longer needed as a different function was put into place for both solutions (2/27).
-Added getSSize to obtain size of spread vector. Also added getWVSize to get the size of the weapon vector (2/27).
-Added two new vectors to hold weapon data for full attack, weapon systems and single weapon attacks (2/27).
-Added placeholder as a means to hold hardPoint classes to return to other classes when needed (2/27).
-Added clearWVector to clear the sWVector before use (2/27).
-Added several new functions to return weapon types for specific slots on each hard point vector (2/28).
Weapon
-Added new functions to each sub-class that would allow for pointers to each specific weapon to be created for use in the menu system (2/13).
April
Note: 4/30 changes encompass changes made between 4/15 and 4/30 that were not recorded on the day those changes occurred.
Project-Wide
-Went through and removed any and all using namespace std from header files and replaced them with direct using statements for whatever was needed. I also went through and replaced the hostile/player.h includes with entity.h (4/10).
BattleProc
-Made a few small changes to the battle loop code dealing with the attack order (4/10).
-Finished changing all of the cpp code to reflect that hTeam is now a vector and not an array (4/10).
-Removed a few variable passes from functions that were not needed as the vriable was already defined in the header (4/30).
-Added new member variable rkCode to store rank codes (4/30).
-Added several other member variables dealing with response system and battle loop: bFight, hResponse, hDestroyed (4/30).
-Did major work on the initHR1 function to get it working with the changes to Hostile (4/30).
-Started work on initHR2, which prompted the work in the data system that was completed (4/30).
-Made changes to code calling functions from damage to actually be correct due to the changes made therein (4/30).
-Started work on the hail and response system where you can hail and interact with combatants; not to be confused with the tech merchant system (4/30).
-Major work done on the battle loop. Many new if statements and edits to existing ones made as I realized that many checks were missing and some of the logic was faulty or did not actually end the battle when it needed to be. Also had to make changes due to the response system considerations (4/30).
Battle Entity
-This class was created out of the bAttacker and bTarget classes in damage. Instead of having two they are now created through instancing this class. The class was also distilled to a very compact object with only the constructor and a function to delete the entity pointer when it was done being used (4/30).
Damage
-Added two new classes to the header to store attack and hostile ship objects. This was done because of other changes that now allow for fairly simple access of the attack and defender ships without having to differentiate between the different entity types. See Entity class changes for more info (4/10).
-Started changing how the class executes. Starts out by initializing the bAttacker and bTarget classes, then moves into dmgProcessing where each function is call in succession, consider it a linear non-looping execution path (4/10).
-Changed the hostile and player team calls to bTarget or bAttacker as the function required, this way no identification must be made in this class only when they are passed from battleProc (4/10).
-Started working on recoding other areas as necessary to account for changes (4/10).
-Added other weapon types to the weapon queue processing code (4/10).
-Made changes required due to moving the bAttacker and bTarget classes out of this one. Nearly all functions had some edits due to this (4/30).
-Removed the huge blocks of code used for EMP damage and instead made much smaller amounts of code in the processSDamage function where they should have been in the first place (4/30).
-Added the rest of the damage bonus and turn defines (4/30).
DataSystem
-Major changed to the cosmetic structure of the ship and weapon databases. Partitioned them off by ship class as well as added ID range to the comment for easier determination for randoms or other related operations (4/30).
-Changed the ship class requirement elements for all ships and weapons to what they should have been. They had been all set to frigate until now as I had not gotten around to doing this (4/30).
-Removed the following arrays: planet disposition, rank, race. This have been made into enums for easier use with switches (4/30).
-Added three new functions to get the enums based on passed int and return the related enumeration (4/30).
-Fixed several weapon and ship arrays that were missing the ship class requirement element (4/30).
Entity
-Created new class called Entity that will encapsulate any entity related class within the game. Moved most of the code from Hostile and Player into this class and then made them sub-classes of this one (4/10).
-Changed all of the variable names to fit with the new class both in the header and the implementation code (4/10).
-Ship reference now called Ship. Ambiguous name means that it can be accessed from any code pertaining to an entity class without having to detect if it is a player ship, hostile ship, or something else allowing for very efficient code (4/10).
-Removed takeDamage from battleProc and moved it here. Changed code so that damage filters through if/then/else statements based on value comparisons to health interfaces of the ship (4/30).
-Changed takeS/A/HDamage to applyS/A/HDamage which just passes the damage value to the proper set function in Ship (4/30).
Hostile
-Most of the code has been ripped out and replaced only with what is absolutely required for this class. The other code was moved to Entity (4/10).
-Removed second constructor and merged it with the hSetup function (4/30).
-Heavily modified the hSetup function to obtain enums from data system for various information as well as placeholders for name generate based on race of crew (4/30).
MsgProc
-Made changes here to account for the making of the entity class (4/10).
-Modified the battle menu because I forgot to add the move ship option (4/30).
Player
-Same as Hostile class. Most of the code has been ripped out save for what is required for the player class (4/10).
Ship
-Added the code for the other weapon damage type getting functions in the ship class. Laser was the only one done prior to today (10/4).
-Removed second constructor and merged it with the first (10/30).
-Modified shield/armor/hull set functions to act like other such functions in Entity. They now take a value and the operation to be carried out (4/30).
-Changed all functions and member variables having to do with shield/armor/hull to float types (4/30).
-Added some extra comments for certain private member variable declarations (4/30).
June
Damage
-Started recoding processSDamage. It needs recoding for several reasons. First because piercing damage can only apply to one or two levels of health interface; the bonus cannot affect what it should not. The only way to accomplish this is to do the damage processing from within damage. procSDamage now will do direct damage in most cases. This leads to the second reason. Some changes made this month require damage processing to be done from this class and others require other interactions with ship (6/4).
-Added all three levels of piercing to processSDamage; they were missing for some reason (6/4).
-Changed the way several sections of processSDamage execute. Since turn based damage is now stored in Ship, turns and damage for those turns must be sent there for storage. I have changed these sections to reflect that need (6/4).
-Added new function, processDamage. This will take the place of takeDamage from entity which has been removed (6/4).
-Removed many references to sDamage and mDamage, these are no longer used in the determination of damage and are used solely for storing special and modified damage for required calculations in processSDamage (6/4).
-Changed how damage is setup in processWQueue. Instead of adding it directly to vDamage and then passing that to processSDamage, the randomized damage is set first to sDamage, which is added to vDamage. No damage is now passed to processSDamage as it was not needed in the first place (6/4).
-Added two new functions called getTDamage and processTDamage. Their purpose is to scan the cDamage vector in Ship for any non-zero turn-based damage and then apply the damage for that turn and decrement the turns left of that specific turn-based damage (6/18).
-Removed the code for napalm and nanite turn-based damage and replaced it with proper code for the current system. The code now sets up a new cDamage vector element instead of applying damage (6/18).
-Fixed up the processDamage code, it was hard code from entity and not formatted properly for the damage class nor how it accesses the entity classes. It now properly reflects how the damage class interacts with entity (6/18).
-Removed the last vestiges of the old turn-based damage handling, there were still some remnant code fragments here and there within the damage class (6/18).
-Repurposed tDamage variable and created tDType variable to make handling if statements for turn-based damage calculation much easier and less complicated (6/18).
-Created short circuit in damage processing if the target ship has been reduced to zero hull points (6/18).
-Began fixing bit-wise and operators back to logical and operators in processSDamage (6/28).
-Added a line of code to remove sDamage from vDamage in piercing damage processing so we did not apply the same damage twice (6/29).
-Changed how mDamage is added to sDamage. Now it just uses mDamage instead of recalculating the extra damage (6/29).
Database
-Added this class for future work in August. This class will deal with all of the interaction with the databases as needed including retrieving data and writing data to the databases (7/1).
Data System
-Added a new function named getPNames that will send the pNames array and the size of the array to Game (6/28).
-Removed shipDB, weaponDB, missionDB, and pNames array from the class. This information is now stored in an external database and will be loaded from there; no need for hard code anymore (7/1).
-While adding data into databases I found several areas where there were missing fields or incorrect values. I have fixed appx. 25 items in the ship and weapon database that would have caused bugs, crashes, and other issues (7/1).
-Ship armor, shields, hull, and weapon damage are now represented in the database as floats (7/1).
Entity
-takeDamage has been removed from Entity. It will now be dealt with by Damage (6/4).
Game
-Added several new functions to deal with planet generation: getPNames, generatePlanets, and calcPop (6/28).
-Added gPlanets vector to hold generated planets (6/28).
-Added the following variables and vector: pNRand, pERand, pSRand, pSRRand, pDRand, popRand1-3, pPMax, pPStore, sName, nCode, pNStorage, bUPName, and bPPGen (6/28).
-Added in the code to randomly generate planets and tested it separately from the rest of the code (good thing to, bugs everywhere!) (6/29).
-Moved function calls to set planet data to the end of the generatePlanets function and removed it from the other places it was used. It doesn’t need to be used after each specific section has been done; just at the end (7/1).
Message Processing
-Removed messaged from this class. The information is now stored in an external database and is no longer needed inside of the code (7/1).
Planet
-Added new variables for use later on: pM[ResourceType], pRFProduction, pRFConsumption, pRFSupply, pRWProduction, pRWConsumption, and pRWSupply (6/28).
-Changed pPop to a long long int and added pMPop (6/29).
-Changed any instances of pPop to a long long int and also added in the code for setting, getting, and in the constructor for pMPop. Changed the set functions to the same solution I am using everywhere else (6/29).
Random
-Added new function to this class to process and return a random float (6/28).
Ship
-Added many some new functions to deal with turn based damage: addTDamage and removeTDamage. There were quite a few others but I removed them since I went in a different direction later on, on this work day (6/4).
-Added a new vector to store tDamage objects for turn based damage (6/4).
-Added a new function called checkTDamage to check the vector for any 0-turn elements. If any are found a second new function, removeTDamage, is called to delete that element from the vector (6/18).
Turn Damage
-Added this class to deal with turn based damage issue I was facing. It will be used to create objects to store the number of turns to apply extra damage when a weapon with a type of damage that is turn based is used (6/4).
-Added the new class classification system to this class. It is simple a comment block with the name of the class, its purpose, how it works, when it was created, the current version, and a mini, in-code change log. Will be adding this to every class and implementation file as time goes on (6/4).
-Changed protected keyword to private since I went a different way with the class than I had originally intended (6/28).
October
Project Wide
-Edited all calls to mRMessage and change them so that they are printed out in a cout so take into account for the new code for the function (10/30).
Battle Processing
-Changed bFSolutions function. It will only deal with the player actions now, several new functions will be added to deal with the automation of the attack style process for non-player entities (10/9).
-Fixed a major issue with how rewards are processed. Before the player class was not being updated after the battle was over so the rewards would not be permanent. Changed the endBattle function so that it takes two player objects, one being the main player reference and the other being the player’s data stored in the pTeam vector. The vector player object is now saved into the main player reference at the end of the function (10/9).
-Started working on the AI for NPCs in the battle loop and added the disable timer decrement function into the if statements for disabled ships (10/9).
-Renamed pRetreat to bRetreat and also added in the function, did not realize it was not coded. Retreat is based on several value ranges between 1 and 100 and will, in later versions, also be based on certain types of ECM and warp disruption/improvement modules (10/9).
-Fixed some incorrect if statement calls to the player class. It was calling on the main player reference instead of the player object in the pTeam vector as well as incorrect callings to the vector which were still setup to work with the pTeam array that I had missed changing (10/9).
-Added the variable bRChance for storing the randomized retreat value (10/9).
-Added include and reference for map class (10/10).
-Added function call for battle map setup (10/10).
-Added several new variables: pTChoice, hTChoice, bIsPTFighitng, and bIsHTFighting for tracking team leader targets and if a specific team is in battle to determine targets and actions for AI (10/11).
-Edited the bFSolutions function a bit since NPCs will be getting their own function for this purpose (10/11).
-Added in some TODOs for dealing with AI and what will be needed in the future (10/11).
-Added in ship destroyed checks for player wingmen and hostile ships to the battle loop if statements (10/11).
-Changed the way that wingmen will be taken care of. Wingmen are now part of a player class vector based on an entity subclass called wingmen. Will be recoding large swaths of the battle processing class tomorrow to accommodate this change (10/11).
-Began the process of renaming all hTeam and pTeam references to mHostile and mPlayer as well as figuring out how to adapt the current code for the most recent changes (10/12).
-Removed an extra ‘allies’ variable set that was not needed (10/12).
-Completely rewrote most of the battle loop for changes made in previous days (10/14).
-Rewrote the endBattle function for the same reasons as above (10/14).
-Removed the mHostile passes to initHR# functions because they are not needed (10/14).
-Rewrote the bAPArticipants function to account for the changes (10/14).
-Many parts of the bFSolutions had to be rewritten because of the changed (10/14).
-Removed some of the comments at the beginning of the cpp file due to ideas having been completed (10/19).
-Changed a few function calls for changes made in other classes due to the changes being made to this class (10/19).
-Added a TODO to end of bInit to remind myself to add in the other five rank initializations (10/19).
-Many changed have been made to the initHR# functions. First I recoded them to account for the recent changes to this class. Then I went about fixing some problems I found with how they sectioned out weapons between the first and second functions. I then added the code for the third and fourth functions as well (10/19).
-Fixed a problem that would have caused serious bugs in the bFSolutions function where if a wingman was selected as the target it would have been possible to send the code out of bounds of the eWingmen vector causing crashes or incorrect targets being supplied (10/19).
Damage
-Started adding in distance checks for weapons for damage modification (10/11).
-Added variable mDistance to hold calculated distance between the attacker and target for use in determining positive and negative damage bonuses (10/11).
-Added in the rest of the range processing for damage on added weapons (still need to do rail guns and heavy weapons) (10/11).
-Added a TODO reminding myself that bonus damage from optimum distance attacks needs to be randomized in the future, right now you will do double damage. In future updates this will be between 1.5% and 2.5% (10/11).
-Added bomb collateral damage calculations (10/11).
-Fixed some lingering bitwise ands that I had missed in previous updates in the processSDamage function (10/11).
-Fixed another issue in the processSDamage where some damages were being turned into doubles instead of floats (10/11).
-Added another variable, dBCollateral, for storing the amount of extra damage caused by the weight of the bomb (10/11).
Database
-Added several functions for dealing with opening, querying, and retrieving data from the database: openDB, tableTAccess, createStatement, getResults, returnResults (10/2).
-Added SQLite3 variables to hold the database and SQL statement (10/2).
-Added vectors to store database query results (10/2).
-Finished off coding basic framework for connecting to the database, selecting the table, querying the table, getting the result set information, and then returning those results. Still a lot of work to do in fleshing out the rest of the functions for each struct (10/3).
-Started coding the functions for getting data from the database and then returning it. Found some problems with mission function, it was missing several items causing the returned data to be incorrect (10/5).
-Tested the process in the SC Testbed project and found that there were some major issues. Due to testing I made some changes to the way the function to query the database executes, must check for a valid row queried first; got the code working properly (10/5).
-Started work for creating and determining how to partition off and connect the save database with the main database as a means of determining what unique information has been used. This may be done through physical connections between the two databases or through the code itself through querying the two databases and searching for in-common data (more resource intensive but more likely to work properly) (10/6).
-Fixed a change I made when testing something that I forgot to revert; added a second ‘missions’ vector to the returnMResults function to make sure no conflicts would occur (10/19).
-Added the function and code to return queried messages from the database class (10/19).
Data Placeholder
-Created the data placeholder file which will contain data structs for the various types of data that will be pulled from the database so that the data can be stored in their native types in the vectors until needed (10/2).
-Added several structs: ship, weapon, mission, message, planetName, planetData, empires, corporations, ranks, diplomacy, race (10/3).
Data System
-Added vectors to store data retrieved from the Database class while this one searches through the data for other classes and returns the necessary information (10/3).
-Renamed most of the vectors for data storage so they would be different from the structs they were representing. Found out during the test of the code that the names caused compile errors (10/6).
-Added a new string variable to hold converted data (10/6).
-Continued recoding the data grabbing functions in this class so that information can be obtained through the new database method. Also worked on adding in some basic validity and value checking so that -1’s, nulls, and zeros in specific fields of the database will be returned as, essentially, “not available” messages (10/6).
-Started considering what changes project-wide will be required due to the change in the database method (10/6).
-Added the rest of the database calls for the different types of data currently stored there and will continue to add more as other types of data are created and stored within the main SC database (10/6).
-Added the in-file change log into the header for this class (10/9).
-Removed calls to rData from all data retrieval functions to keep code repeat down. This will need to be called before the other data query functions are called so that the vector can be setup for the particular item in question (10/9).
-Added the code to query the database for messages to the rData function (10/19).
-Removed all of the xCode parameters from the ‘get’ functions as they are no longer needed (10/19).
-Added the function to return the text of a queries message to the requesting class (10/19).
-Added two new functions to return the race and rank values from the database (10/28).
Entity
-Moved getNOWingmen function and wingmen vector, now called eWingmen, to this class so that all child classes can have access to it (10/12).
-Changed the messageProcessing reference from msg to mp to fit in with the naming convention used in all other files (10/30).
Hard Point
-Removed iCode passes from hard point constructors since these will no longer be needed due to changes in the Ship class (10/28).
-Edited the code for the hard point constructors to take into account the above changes to the header files (10/28).
Hostile
-Edited the constructor slightly for the new database functions (10/28).
-Changed hSetup to use the new data acquisition methods and removed the switches that were being used; removed over 60 lines of code in total and replaced with five lines (10/28).
Map
-Added the map class and began work on re-creating the 3-point cord system used in v0.4a (10/10).
-Added the quadratic distance formula for calculating the distance between two points in space based on XYZ coordinates (10/10).
-Added function to set the cords for starting positions in battle. The first entity in the pTeam and hTeam vectors is the anchor point while the remaining entities are placed randomly within a ±1 to ±5 random range on each coordinate (10/10).
-Fixed a compile problem caused by circular referencing between this class and the entity class (10/11).
-Changed setPOS function to take Player and Hostile parameters instead of pTeam and hTeam vectors (10/12).
-Changed any references of pTeam and hTeam to their correct references (10/12).
Message Processing
-Added bCSpread function, it was apparently not added (10/10).
-Changed the pBStatus and hBStatus functions to take class references instead of vectors (10/19).
-Major changes to the two functions above have taken place. All of the inter-defined variables have been stripped out and redefined within the class structure and changes have been made so that the main player/hostile class can be accessed separately of the wingmen class of each entity. It is a much more code-intensive method but I have found no way around it as of yet (10/19).
-I have recoded mRMessage so that it will now call rData from dataSystem and then call and return the result of getMsg from dataSystem. All function calls to this function remain the same (10/19).
-Removed variable types from bHStatus, left some of them in by mistake (10/21).
-Added a new function for the movement system menu options (10/21).
-Added a TODO to remind myself to add a bomb weapon spread menu function (10/28).
Player
-Added a new vector called Wingmen to store wingman objects for battle processing. This is being done to deal with a particular hurdle that would have required a lot of code to account for otherwise (10/11).
-Added a new function to get the size of the pWingmen vector so iteration can be undertaken in other classes and not exceed the bounds of the vector (10/11).
-Moved the pWingmen vector out of this class and into Entity so that all subclasses can use it (10/12).
-Edited the pCShip function slightly for the new database functions (10/28).
-Removed parameter from iWeapon calls in pCxWeap functions and removed the setWeight call from the bomb function as it is no longer needed (iWeapon now sets the weight) (10/28).
Ship
-Added new function to decrement the disabled timer and reverse shield/ship disabled flags (10/9).
-Added new variables and functions to get and set XYZ position on the battle map (10/10).
-Copied SC v0.4 movement system over to v0.5 and made the many necessary changes to make it work with this version of the game (10/21).
-Added several new variables to deal with the movement system added today as well as editing some of the mRMessage calls so that they work properly with the new message retrieval system. Will be making changes to the rest of those function calls later this month (10/21).
-Added extra checks into the initHPoints function to display a message if there are no open hard points for a particular weapon group (10/28).
-Added an AI version of initHPoints that uses the functionality of the previous version of the function without the messages (10/28).
-Changed the way initShip executes. Now that we have a new method for getting data the old data access function calls had to be removed and a call to rData had to be added (10/28).
-Changed iWeapon function a bit. Added calls to wSetup to take place in order to get data loaded for the iWeapon function in the weapon classes. I also added rail guns and heavy weapons to the function, they were missing (10/28).
Weapon
-Added a new function called initWeapon to initialize the weapon name to “Not Initialized” for used in later weapon installation processes (10/28).
-Changed wSetup function so that it calls rData with the passed wCode. This sets up the data for retrieval in the iWeapon function (10/28).
-All iWeapon functions changed to reflect the new data acquisition method (10/28).
-I found some strange problems in the implementation file. Some functions were repeated or not placed in the correct areas. Offending blocks of code were either removed or moved to the correct areas (10/28).
-Added the functions for several classes that were missing them, such as the getWeapon function in Rail and Heavy as well as some get functions in Heavy (10/28).
-Removed setWeight from the bomb class as iWeapon now sets that variable (10/28).
Wingman
-Created this new class to deal with wingman entities; this way wingmen can be initialized from the station when they are hired, the Player can modify their load outs, and they are not as costly because all of the unnecessary Player variables and functions are not included saving memory space. Some new issues are presented but they are going to be less code intensive as things were previously and less convoluted (10/11).
-Added the constructor for this class to the cpp file (10/19).
-Added a new function, wSetup, to initialize the variables of the class and associated member class(es) (10/19).
December 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
sPInv
pSData
playerData
pShip
pSSpread
pSHPVect
pWingmenData
pWShip
pWSSpread
pWSHPVect
stationData
Changed bIsPOwned and bIsDest in the planetData struct from bool to int because Sqlite cannot deal with bools from a table. These values will be translated to bools through if statements and vise-versa during imports (loads)/exports (saves) (12/27).
Added sPID to the pSSpread and pWSSpread structs to track the spread that each weapon entry belongs to as part of the work to shrink, massively, the size of the loading/saving code for those objects (12/29).
Removed the resource variables from the ship save data (12/30).
Removed the resource variables from player wingmen ships, evidentially I forgot to do this yesterday (12/31).
Forgot to add the pID to the planetData struct; did so now (12/31).
Data System
Added all of the needed functions, with code, to get and return the data for defenses and modules (12/22).
Added defenses and modules vectors to hold data for those structs (12/22).
Added a bunch of variables to store information while it is added into the database during save operations (12/26).
Added a few more iteration variables in case they will be needed as the save functions are created. Can be removed later if they are not needed (12/26).
Fixed a typo created yesterday; period instead of a comma which caused other errors (12/27).
Changed the return type of getWType from int to string for conformity with other areas of the code and database. I also created an if statement structure to return the value based on the return from the database (12/29).
Added and started basic coding for the save data functions (12/29).
Added a declaration for the data loading functions; no code yet (12/29).
Added 13 vectors to store data for saving or loading to and from the database (12/29).
Edited the getPNames function to work with the current way the code works (12/29).
Started coding the save data function (12/30).
Continued work coding the save data function. Station and planet sections are left to do as well as relationships and missions which I just realized were not included (12/31).
Added temporary vectors to store hardPoint classes for the spread and hardpoint vector save sections of the save data function (12/31).
Added the code for stations, station inventory, and planet data saving (12/31).
Created a vector to hold the station inventory for saving the data (12/31).
Added some more temp vectors to store data for saving (12/31).
Finished work on all of the currently added vectors for saving data. Relations and missions will also be done soon (12/31).
Defense
Changed a few functions from int returns to float returns and also altered the variables those functions returned or set in order to bring the class up to speed with the changes made after it had been created (12/22).
Altered the setSPoints class to conform to the other set classes (12/22).
Added the code for most of the functions for this class. Still need to code the setup function (12/31).
Corrected a few of the comments to reflect what certain functions are now used for due to changes to the code (12/31).
Renamed setSPoints to updateSPoints (12/31).
Entity
Added several more scrap multipliers and adjusted the values. These will eventually become the difficultly multipliers for the game (12/4).
Moved eWingmen to Player and NPC (12/6).
Redid a few comments (12/13).
Added a new variable to track an entity’s status in battle (12/16).
Added two new functions to get and set the above mentioned variable (12/16).
getNOWingmen removed from this class and moved into both the Player and NPC classes (12/16).
Moved the eCXP variable and related functions to Player (12/22).
Removed planet.h include from the header to prevent cyclical referencing (12/22).
Game
Game will now contain the functions/variables from both planetProc and stationProc (when I add it back in) due to changes in how I want these old classes to operate (12/22).
Changed a lot of the comments in this file. Many still referenced arrays when we are now using vectors for most of our list needs (12/22).
Did some further segmenting of variables and functions now that planetProc and stationProc are being folded into this class (12/22).
Started work on rewriting the save/load functions to use the SQLite database instead of flat files (12/22).
Added the functions, variables, and function code for station processing to this class; still have to go through and get it compatible with this version of the game code (12/27).
Began recoding the save/load functions (12/29).
Renamed all instances of msg to mp to conform with the naming scheme for the mesProc class reference (12/29).
Removed the encrypt/decrypt functions since they are no longer needed due to the new save/load method (12/29).
Started the extensive task of recoding the implementation file for compatibility with the current code. Over 340 lines of code changed and 30 lines added (12/29).
Added a TODO to check out the logic of the sMPurchase function. Was looking over it and something just seemed really off (12/29).
Changed cStations to gStations to fit with the naming for the similar planets vector above it (12/31).
Added the empty constructor code to the implementation file (12/31).
Hostile
Fixed a typo with the cEXPReward function. Not a bug as the typo was propagated throughout the code but incorrect nonetheless (12/4).
Ranamed to NPC (12/6).
Readded the getNOWingmen function to the class (12/16).
Message Processing
Found a major bug in here where the type of weapon being chosen for the single weapon system firing solution was not being passed back at all nor was it being set properly. Fixed the function so that it will operate as expected (12/4).
Uncommented the code for missions now that the code has been added back in (12/6).
Added the first function for the hailing system and some basic code. More fleshed out code will come later this month after per-race-per-affinity level dialog has been added to the message data table (12/6).
Continued work on bHail1 by adding in the full if/then/if else/then/else structure for one race for example for the other races later on (12/7).
Started work on bHail2 as well (12/7).
Split the bMenu1 function. Some options, dealing with in-battle options, were moved to bMenu1B while the pre-battle options were kept in bMenu1 (12/8).
Filled out the skeleton of bHail2 (12/8).
Added several new functions to deal with the hailing features (12/11):bHInfo
bHEnemies
bHNothing
bHSurrender
bHTrade
Added class reference for map to the class (12/11).
Added a new function called nBSPos to display player and target ship locations during battle and the distance between them. Will display the information during the player ship move fuction (12/11).
Added several new functions to deal with in-battle hailing between the npc and the player (12/17):NHail1
bNHDemand
bNHSurrender
Added in the code for the functions listed above (12/17).
Uncommented the code for station menus (12/29).
Mission
Merged this class back into the code (12/6).
Made many changes throughout the class to account for changes made to the data system/database situation (12/6).
Added a new function called bPSurrender that handles hostile demands for ransom to allow the player to leave unharmed after surrendering (12/19).
Player
Added some more code to the constructor to set the player’s initial CE Level and calculate the cEXP needed to get to the next level (12/4).
Uncommented the code and functions for Mission and Relation (12/6).
Made multiple changes to the Mission related code to account for recent changes (12/6).
Added code to create the initial mission and relationship for the player (12/6).
Move Player version of eWingmen here, nothing else has changed in how this will work (12/6).
Added the code for the getRAffinity function. It will also add the relation if it is not present (12/6).
Added new default relationships for the Player with Juslorth and Sluikan (12/6).
Readded the getNOWingmen function to this class (12/16).
Removed a few old variables from the class because they are no longer needed (12/22).
Moved the eCXP variable/set|get functions from Entity to this class since it is the only object that actually uses it (12/22).
Added the following functions (12/30):getCEXP
getCXPTNL
setCXPTNL
updateCEXP
Planet
Added vectors to hold defenses, shields, and defense ships (12/22).
Added a couple new functions to get the sizes of the vectors listed above (12/22).
Commented out the resource variables for now (food and water). They will be added int the game in version 0.6A or 0.7A (12/23).
Added two new bools to store if the planet is player owned and if the planet is destroyed; destroyed will eventually be changed to pillaged, which will also incorporate a timer. See the features wiki article for more information (12/27).
Added pID to the Planet class for tracking planets and their defensive assets in the database for save loading (12/29).
Added the plID variable to the class and the function to get it (12/31).
Added the variables and functions to get and set the disposition and affiliation of planets as well as adding the variables to the constructors (12/31).
Planet Processing
planetProc has been removed and the functions moved to Game (12/22).
Relation
Merged this class back into the code (12/6).
Fixed up some of the functions in the header to account for recent changes (12/6).
Added the implementation file and coded the functions; had not yet done that in the code (12/6).
S. Inventory
The idea to explode the inventory out into its own class came to me a few days ago when considering the way in which the data would be saved for stations. Doing things this way makes it much easier to track the information with minimum complexity (12/31).
Added the required functions and variables for the class. Information it contains includes the item id and the number of items stored. Each element of the sInventory vector is now a "slot" and the maximum number of slots refers to the size of the vector. This class will eventually also contain a variable to track the space used by each element (12/31).
Added the code for the functions (12/31).
Moved the class into its own files (12/31).
Added the variable iSpace to store the space of the items contained in the inventory slot (12/31).
Shield
Added to this class so that information can be set and retrieved (12/22).
Changed some functions and variables to use float instead of int (12/22).
Had a "doh" moment when I realized I have never implemented shield regeneration functions for any shield objects. Started the process here and will also add a similar function to the Ship class; in the future shields will be modules and as such I have already taken shield regen values into account there (12/22).
Added the code for most of the functions in this class. Still need to do the setup function (12/31).
Added updateSP as it was missing for some reason (12/31).
Ship
Added some comments to the code and also added a TODO to remind me to look into the hard point code execution; something smells fishy with it (12/4).
Edited the sPMove function to take a Player and NPC parameter which is then passed on to message processing during the nBSPos function to calculate the distance between ships (12/11).
Added the function call to nBSPos in sPMove (12/11).
Added several new functions to get the number of hard points for rail and heavy weapons then added the code for all of the functions. They had been created but had no code (12/13).
Added in six new random storage variables to hold values for npc ship movements (12/17).
Added the AI ship movement function to the cpp file and began working on the coding for it (12/17).
Added a class reference to the map class (12/17).
Added a new function called clearSData that will initialize the player ship to default values if the player surrenders to hostile AI and they choose to steal the ship or capture the player (12/18).
Completed the coding for the AI movement function and copy, pasted, and edited the code for allied ship movement as well (12/18).
Added a detailed comment block on the relationship between weapon hard point vectors and the weapon spread vectors and how the data would be saved and then loaded into these objects. Placed it in the Database implementation file as well (12/26).
Added the following functions (12/30):getBH
getUBH
getSWHP
getULHP
getUMTP
getURM
getUHWB
Added a sUX variable for each weapon type so that the used hard points can be tracked. Will need to update some of the functions within the class to use these now instead of previous methods (12/30).
Added some more comments to the header file where I thought they were needed to explain function usage (12/30).
Added another new function to return a specific weapon spread vector (12/31).
Added a few other functions to return information required for data saving such as the maximum number of spreads the player can currently use (12/31).
Added elses to all of the if statements succeeding the first one in the getSSize function. The way it was setup before meant that each of the if statements would be checked. This way only a certain number of statements will be checked and all those after the one that is true will be skipped resulting in more efficiency (12/31).
Station
Removed stationProc from this class and moved it to Game; this includes all functions, code, and variables (12/27).
Readded the Station class into the code but I will have to do some heavy editing to make the code compatible with the current game code (12/27).
Added sID, a new variable to track the station ID, to the class. Added it to both constructors as well as created get/set functions (12/29).
Added in a few new variables to handle things that were done in the database in regards to stations (12/29).
Added in some more comments (12/31).
Added or modified the following functions (12/31):getCISlots
getSID
getAffil
getISItem
getISIAmount
getISlots
getDispo
Added variables to store the disposition and affilitation of stations. These had not yet been added. Added functions to get the data as well as added them to the constructors (12/31).
Changed the sInv vector from an int vector to one of a new class called sInv. See the class section above Shield for more information (12/31).
Made changes to much of the class to deal with the above change log entry (12/31).
Added the following functions (12/31):getCUSpace
getMISlots
Added sUSpace to keep track of all of the space that has been used (12/31).
Trade
Added this semi-empty class (it only has a constructor) in prep for work on 0.6A (12/11).
Weapon
Made a minor edit here to the weapon types list in the comments to remove defenses (12/22).
Added a new variable to weapon to store the weapon id. Also included the functions to return and set this value (12/31).
Added the wID data call to all iWeapon functions. Still need to add the function to dataSystem, however (12/31).
Wingman
Added resource and the cEXPReward variables to the class (12/4).
Added all relevant functions to the above change; many were brought over from Hostile (12/4).
Removed this class and placed Entity vector for it into Player and NPC using themselves as the vector type (12/6).
January 2014
Battle Processing
Decided to split the battle loops into different functions, one for ship battles and one for planet battles, as it was getting much too confusing (1/5).
Began editing all of the battle loop function calls and those function’s header definitions to use the planet pointer (1/5).
Coded the main structure of the planet battle loop however there is still a lot left to figure out and work out in terms of attack order and how to do the damn thing without having too much repetition of code (1/5).
Added several new variables to deal with planet battle (1/5):bPDBattle
pBAShields
pBPDTarget
bPHShield
bPTIDefense
pBPSTarget
Added the planet header include to the header file (1/5).
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).
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).
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).
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).
Defense
Added a missing function, getDCXP (1/2).
Added a missing variable, dCXP (1/2).
Did the coding for dSetup (1/2).
Entity
Added the setStatus vector and the code for it (1/1).
Updated the applyXDamage functions to use updateX instead of setX (1/1).
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).
Hardpoints
Changed the comments in the class definitions so that they reflect what the members are actually being used for now (1/1).
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).
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).
Player
Added the following functions and the code for these functions (1/1):updateFKills
updateDKills
setCXPLvl
updateCKills
updateBCKills
updateBKills
updateMKills
updateTKills
getDPlanets
updateDPlanets
Renamed pPlaDestr to pPDest (1/1).
Edited the removeMission function for some changes that have taken place recently. See below for details (1/1).
Added a new mission vector to store non-in-progress or partially completed missions. These include completed, failed, and closed missions (1/1).
Added four functions, two for missions, to allow for loading mission, relationship, and wingman data into the player class (1/2).
Relation
A function to set the name and affinity of the relation was missing so these were added tonight (1/2).
Shield
Added functions to set and return the module name (1/2).
Did the coding for initPS (1/2).
Added mName (1/2).
Ship
Added the following functions and code for these functions (1/1):setLHP
setMTP
setMWSpreads
setBH
setRM
setHWB
setULPH
setUMTP
setUBH
setURM
setUHWB
setMInit
Added functions to add elements to the spread and weapon hard point vectors and coded them (1/2).
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).
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).