aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/state.h
AgeCommit message (Collapse)Author
2018-01-23SUPERNOVA: Adds engine pauseJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds RoomID to RoomsJoseph-Eugene Winzer
GameManager::airless() determined if the space suit could be taken off by comparing the current room pointer to the allocated room objects. This led to indeterministic behavior as sometimes airless() would falsely return true as the dynamic allocation of the Room objects cannot be expected to be in a certain order. Implementing the corresponing RoomID to a Room objects solves this problem.
2018-01-23SUPERNOVA: RefactoringJoseph-Eugene Winzer
Renaming variables of GameState to avoid ambiguity.
2018-01-23SUPERNOVA: Corrects GameState variable namesJoseph-Eugene Winzer
According to the naming convention class member variables need to be prefixed with an underscore. Unfortunately, I already started converting time constants when making this change so ticksToMsec() and constant changes are sprinkled over this commit.
2018-01-23SUPERNOVA: Fixes terminal in sleeping chamberJoseph-Eugene Winzer
Instead of manipulating C-Strings edit() now takes a Common::String as a parameter and the terminal input gets redrawn after every keystroke what simplifies the function greatly.
2018-01-23SUPERNOVA: Implements the remaining room definitionsJoseph-Eugene Winzer
While it compiles, it is still WIP. Also there has been some confusion about the numbering of the AxacussCorridor classes among other things that need to be done.
2018-01-23SUPERNOVA: Adds code for remaining game logicJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements edit()Joseph-Eugene Winzer
As the TODO says, there are still problems with the function that can be observed when using the terminal in the sleeping chamber.
2018-01-23SUPERNOVA: Fixes parameter name for getKeyInput()Joseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements death screenJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Refactors init and destruction of GameManagerJoseph-Eugene Winzer
During the gameplay room state is overwritten and needs to be restored on restart/load. Currently the original room state is not preserved and thus needs to be destroyed and reinitialized to obtain the original state.
2018-01-23SUPERNOVA: Adds clear() to Inventory ClassJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Input handlingJoseph-Eugene Winzer
GetKeyInput/MouseInput/Input() block until the expected input happens. GetKeyInput() takes a parameter that checks if the key input is a 'printable' character, backspace, delete, return or escape. Also, the key state is now stored instead of just the ascii value of the pressed key.
2018-01-23SUPERNOVA: Adds indicator for key pressesJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Converts char game state variables to byteJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements animationJoseph-Eugene Winzer
The original game's time was stored in 55ms ticks but we just run on milliseconds. setAnimationTimer() sets the ticks the currrent room's animation() function will not be called.
2018-01-23SUPERNOVA: Rewrites animation for Cockpit and SleepCabinJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements showing cockpit monitorJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements delay for animationsJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Converts Inventory as GuiElementsJoseph-Eugene Winzer
By encapsulating the inventory state in GuiElements we can through out inventory_object
2018-01-23SUPERNOVA: Removes isVisible flag from GuiElementJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds tons of stuffJoseph-Eugene Winzer
Most notably changes are, Handling of object state when calling drawImage() for inverse section rendering Beginning to convert GUI to GuiElements (_guiCommandButton) Mouse Input handling This is still WIP but better than the glitchfest before.
2018-01-23SUPERNOVA: Removes warnings for Inventory codeJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Adds GuiElement ClassJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Implements GUI routines and refactors codeJoseph-Eugene Winzer
Of course the short description does not adequately describe the changes made with this commit and I assume this won't be the last big restructuring unfortunately. Focus of this commit was to implement/fix the code so the main user interface can be rendered. Bugs in the core routines for rendering Messages and Images were fixed as well.