Commit Graph
167 Commits
Author SHA1 Message Date
D G Turner e6fea1bd86 SUPERNOVA: Fix GCC Unused Variable Warnings. 2018-01-23 02:15:32 +00:00
Thierry Crozat a4470edb29 SUPERNOVA: Fix exiting intro cutscene using Escape 2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer aef0e122c7 SUPERNOVA: Restores brightness when leaving the cave 2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer e45d94b065 SUPERNOVA: Implements screen shake 2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer ba7729a767 SUPERNOVA: Restores brightness if power on 2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer 7da494427d SUPERNOVA: Adds current room to save file
and restores player location to it on load.
2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer 03414f789a SUPERNOVA: Implements inventory arrows 2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer 3814f33826 SUPERNOVA: Scrolls inventory when taking an object
Signed-off-by: Joseph-Eugene Winzer <joewinzer@googlemail.com>
2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer 9f3f9f47ad SUPERNOVA: Limits inventory scroll 2018-01-23 02:15:31 +00:00
Joseph-Eugene Winzer 23f57ca83f SUPERNOVA: Fixes de-/serialization of game state 2018-01-23 02:14:56 +00:00
Joseph-Eugene Winzer 68c52362e5 SUPERNOVA: Adds Outro initialization 2018-01-23 02:14:47 +00:00
Joseph-Eugene Winzer 7cae6fde30 SUPERNOVA: Fixes number of rooms 2018-01-23 02:07:37 +00:00
Joseph-Eugene Winzer 5f19833803 SUPERNOVA: Remvomes manual assigning of current room 2018-01-23 02:01:00 +00:00
Joseph-Eugene Winzer 98ab5ee142 SUPERNOVA: Alters wait function to stall at least _delay ms
wait2() is used for updating events all over the code with a parameter
of 1, so to be sure there's at least one update it is wrapped in a
do-while now.
2018-01-23 02:01:00 +00:00
Joseph-Eugene Winzer 7f513ac1db SUPERNOVA: Adds key input check function
This is temporary. Input is all over the place right now I feel, so it
will be reworked 'soon'.
2018-01-23 02:01:00 +00:00
Joseph-Eugene Winzer de539134f9 SUPERNOVA: Removes comments 2018-01-23 02:00:59 +00:00
Joseph-Eugene Winzer 0ffd005995 SUPERNOVA: Adds message prompt on exit 2018-01-23 02:00:59 +00:00
Joseph-Eugene Winzer 82efa9dd65 SUPERNOVA: Simplifies timing code
Removing remnants of the original code like _timeAlarmSystem.
2018-01-23 02:00:51 +00:00
Joseph-Eugene Winzer 3f68cda2d7 SUPERNOVA: Implements de-/serialization
WIP. It is currently broken.
2018-01-23 01:53:31 +00:00
Joseph-Eugene Winzer edef2792da SUPERNOVA: Adds RoomID to Rooms
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-23 01:52:59 +00:00
Joseph-Eugene Winzer 18abc4702a SUPERNOVA: Implements Return To Launcher 2018-01-23 01:52:50 +00:00
Joseph-Eugene Winzer e15f281113 SUPERNOVA: Removes color macros 2018-01-23 01:47:02 +00:00
Joseph-Eugene Winzer 63c62d25e1 SUPERNOVA: Adds explicitly invalid state for Objects 2018-01-23 01:47:02 +00:00
Joseph-Eugene Winzer 714b38dde4 SUPERNOVA: Fixes dimming when ship energy low
roomBrightness() saw the greatest change by ripping out dimColors().
I compared the result with the original game and I cannot see any
difference by just reducing the palette brightness to 60%.
2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer c95efb1e3e SUPERNOVA: Refactoring
Renaming variables of GameState to avoid ambiguity.
2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer 2545ffd074 SUPERNOVA: Fixes overdraw of input 2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer 316aeeabd5 SUPERNOVA: Converts Object name and description to Strings 2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer 604d421660 SUPERNOVA: Changes parameter name of timeToString() 2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer 644a6835e5 SUPERNOVA: Adjusts init time values
to the approximated ms per tick constant of 55ms.
2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer 53c086c341 SUPERNOVA: Fixes setting alarm time on watch 2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer b64248981b SUPERNOVA: Fixes too large edit() field
Before edit() cleared the input on screen by overdrawing it from x to
the right side of the screen. This works fine for terminals but for
example setting the watches alarm time it does not.
The text font is 5x8 so overdrawing the max input length + 1 * 5 is
sufficient to clear the screen from our input and the cursor. Also if
the value ends up being too big it is clamped to the right side
of the screen.
2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer 2c0518e0ba SUPERNOVA: Removes redundant loops around edit() 2018-01-23 01:47:01 +00:00
Joseph-Eugene Winzer cd01ca0ad3 SUPERNOVA: Converts special characters 2018-01-23 01:42:32 +00:00
Joseph-Eugene Winzer a24af98b5e SUPERNOVA: Corrects GameState variable names
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-23 01:42:32 +00:00
Joseph-Eugene Winzer 89059ff50d SUPERNOVA: Fixes render error on death screen fadeout 2018-01-23 01:42:32 +00:00
Joseph-Eugene Winzer 18894e8f13 SUPERNOVA: Implements turnOn() 2018-01-23 01:42:26 +00:00
Joseph-Eugene Winzer b0c108ff60 SUPERNOVA: Adds ticks to msec conversion constant 2018-01-23 01:33:25 +00:00
Joseph-Eugene Winzer 29b7b91a59 SUPERNOVA: Removes TODOs 2018-01-23 01:33:24 +00:00
Joseph-Eugene Winzer c8e0f94fd1 SUPERNOVA: Fixes terminal in sleeping chamber
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-23 01:33:24 +00:00
Joseph-Eugene Winzer 8a766b5b48 SUPERNOVA: Adds code for remaining game logic 2018-01-23 01:19:02 +00:00
Joseph-Eugene Winzer 48870921f0 SUPERNOVA: Implements shock() and removes longjmps to 'dead' 2018-01-23 01:01:18 +00:00
Joseph-Eugene Winzer 172377f093 SUPERNOVA: cleanup 2018-01-23 01:01:18 +00:00
Joseph-Eugene Winzer 2c9f7b4ba9 SUPERNOVA: Implements edit()
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-23 01:01:18 +00:00
Joseph-Eugene Winzer 51c9357549 SUPERNOVA: Implements death screen 2018-01-23 01:01:18 +00:00
Joseph-Eugene Winzer 37b4a77732 SUPERNOVA: Refactors init and destruction of GameManager
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-23 01:01:18 +00:00
Joseph-Eugene Winzer 8ce533bb1b SUPERNOVA: Adds clear() to Inventory Class 2018-01-23 01:01:18 +00:00
Joseph-Eugene Winzer 99d7e7c1f6 SUPERNOVA: Input handling
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-23 01:01:10 +00:00
Joseph-Eugene Winzer 30e138dcfa SUPERNOVA: Adds indicator for key presses 2018-01-23 00:29:35 +00:00
Joseph-Eugene Winzer bcd32509bb SUPERNOVA: Implements 'wait for input'
Currrently the only implemented scene that uses this function is looking
at the monitor in the cockpit. Depending on use cases in other scenes
the function needs to be extended.
2018-01-23 00:29:34 +00:00
Joseph-Eugene Winzer cf98468c32 SUPERNOVA: Removes shadowing of variables 2018-01-23 00:29:34 +00:00