Hello everyone, welcome to our December progress update for Space Crusade. This update cycle I got quite a bit done as far as new things go. Two new systems were added in and I also completed the Corporations page on the wiki. So let's break down what happened, also the change log on the wiki site has already been updated:
One of the new additions to this class was to the mission database matrix where mission information is stored. I added in new fields due to some changes that have been made in other areas and I also changed how some of the 'null' data is dealt with. I added in EXP and item rewards fields as well as changed any 'null' values for integer fields into -1's; only the string fields will use nulls to indicate no data present for a particular field.
I also added in many functions and the code for those functions due to additions elsewhere. These functions are related to the mission database and retrieve information from it for the Mission class.
The Mission class is one of the new additions I spoke of. This class is actually just a reference for the player class missions vector where each mission undertaken will be stored until completed or aborted. All of the mission details will be stored and accessed from this class instead of directly from the Data System class.
The class is fully formed with all of the functions I have though that might be necessary and the code for those functions.
I added eleven new messages to the message database. One of them is a user-facing message to indicate that they are already on a mission if they try to re-accept it. Another four were put into place for when testing starts in case errors or bugs keep the mission system from functioning correctly. The rest deal with station activities or item storage processes.
I also added in mInfo, a function which is used to obtain data about a mission and is displayed to the player. It works by passing a pointer to the particular mission instance in question and then calls the functions for that instance of the mission class to get the data. Two variations are included based on a boolean variable also passed to the function where the level of detail can be widened.
I removed a Station Processing reference from the .cpp file because it was no needed and actually highlighted a more serious issue within a function in this class which I fixed.
I made serious changes to the sBISPMenu (station Buy Inventory Space Menu in case you were wondering what the acronym stood for) highlighted by the Station Proc. reference I removed and also because of changes made to the sBISpace function in Station Processing.
The player class also saw a lot of action during this cycle. I added the pMissions vector to store each new instance of the Mission class when a new mission is undertaken by the player. I also added several Mission related functions and the code for them.
Removed the last vestiges of the inventory code that were left over after I moved them to Ship and Station.
After looking over the Player class I found a serious oversight and that was that there was no way to add combat EXP to the player. So I added in the setCEXP function. It functions just like the other set functions, meaning that a flag is passed to denote the operation to be undertaken with the integer value that is passed through to the function.
I located and fixed a misnamed function calls for weapon installation. I added in functions, but no code just yet, for Relation class related activities. In addition I also fixed an incorrect nuclear waste variable call, changed the class reference class for Message Processing from msg to mp, and added an new variable to help deal with for loop iteration.
This is another new class added in this cycle. This class will be used in a similar way to the Mission class where relations between the player and other in-game entities are tracked and used for various purposes. These also use a vector in the Player class. This class is still fairly empty and only has the most basic needs.
A lot of changes happened in here as well. I added a createStation function but have not fully coded it yet and I have started coding the sRepair function. Added a csPos integer to remember the vector element ID for the currently visited station so that the element can be updated with the latest data after the player has selected to leave the station. This keeps updating station information efficient.
Added and coded the sDepart function to deal with updating the station information once the player decides to leave and I modified the sMenu function for a more logical flow of progression through the menus. Added a Station reference to sMenu call in createStation function and then also fixed some potential bugs in the sMenu function.
Changed several areas where messages were printed into mRMessage calls. Fixed a major problem with the sBISpace function. It did not have an execution path if the player were to choose to buy, or not buy, storage slots but where there was not enough space in the hold to compensate for the new slots. Due to this I had to recode the entire function to add in the required if statements and execution paths.
Finally I modified the sSItem function to take into account changes to sBISpace, much of the function had to change.
Space Crusade Developer's VLog Edition 3
Note: The rest of the parts are currently uploading (11:22PM 2/1/13)
As you can see a lot of work was done. I also managed to fit in time to work on the Corporations Wiki page. It is now complete but only for the Corporations that were already listed within it from when I first created the page. New corporations will be added as time goes on.
Thanks for following the project and I will see you in two months.