Joseph-Eugene Winzer
3579bdef80
SUPERNOVA: Adds and corrects constants
2018-01-23 01:13:41 +00:00
Joseph-Eugene Winzer
7c13706d28
SUPERNOVA: Fixes code
...
kMaxSection - 1 was used in the original code to indicate if the GUI is
currently shown. In this engine an explicit variable _guiEnabled is
used.
2018-01-23 01:01:19 +00:00
Joseph-Eugene Winzer
aa0606beed
SUPERNOVA: Replaces longjmp to 'dead'
2018-01-23 01:01:19 +00:00
Joseph-Eugene Winzer
d4c8fe528a
SUPERNOVA: Substitues umlauts with their cp437 octal equivalent
2018-01-23 01:01:19 +00:00
Joseph-Eugene Winzer
8e9141d516
SUPERNOVA: Fixes SleepCabin::animation()
...
Some of the code didn't belong into the function.
2018-01-23 01:01:19 +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
6f9374c737
SUPERNOVA: Fixes parameter name for getKeyInput()
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
0fdb3d8d10
SUPERNOVA: Extends text rendering
...
textWidth() and renderText() are overloaded for handling single uint16
characters (useful when rendering key strokes directly)
2018-01-23 00:29:35 +00:00
Joseph-Eugene Winzer
160ff13934
SUPERNOVA: Fixes object indices in room definition
2018-01-23 00:29:35 +00:00
Joseph-Eugene Winzer
678c10ea55
SUPERNOVA: Corrects typo
2018-01-23 00:29:35 +00:00
Joseph-Eugene Winzer
18c3647a63
SUPERNOVA: Updates NOTES
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
5dce4bc874
SUPERNOVA: Converts char game state variables to byte
2018-01-23 00:29:34 +00:00
Joseph-Eugene Winzer
afb873c032
SUPERNOVA: Adjusts game loop delay
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
Joseph-Eugene Winzer
2ff15f37eb
SUPERNOVA: Gets input before drawing calls;
...
Before the status line would show invalid input for a frame what was
especially annoying during animations, as they currently tend to block the game
loop for their duration.
2018-01-23 00:29:34 +00:00
Joseph-Eugene Winzer
0462bd0184
SUPERNOVA: Implements animation
...
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-23 00:29:34 +00:00
Joseph-Eugene Winzer
97ef7cbe87
SUERNOVA: Initializes missing rooms on startup
2018-01-23 00:28:29 +00:00
Joseph-Eugene Winzer
4227195a82
SUPERNOVA: Rewrites animation for Cockpit and SleepCabin
2018-01-23 00:28:29 +00:00
Joseph-Eugene Winzer
daf55369a9
SUPERNOVA: Implements showing cockpit monitor
2018-01-23 00:28:29 +00:00
Joseph-Eugene Winzer
ffcd447a08
SUPERNOVA: Fixes visibility of room constructors
...
Signed-off-by: Joseph-Eugene Winzer <m999@openmailbox.org >
2018-01-23 00:28:29 +00:00
Joseph-Eugene Winzer
3f98c29ab1
SUPERNOVA: Corrects exit direction of sleeping cabin
2018-01-23 00:28:29 +00:00
Joseph-Eugene Winzer
02995da224
SUPERNOVA: Adds definitions for remaining rooms
2018-01-23 00:28:22 +00:00
Joseph-Eugene Winzer
0627ca35cb
SUPERNOVA: Implements delay for animations
2018-01-23 00:00:12 +00:00
Joseph-Eugene Winzer
30c5c85243
SUPERNOVA: Refactors event loop
2018-01-23 00:00:12 +00:00
Joseph-Eugene Winzer
83a5c81468
SUPERNOVA: Fixes typo in room definition
2018-01-23 00:00:12 +00:00
Joseph-Eugene Winzer
aa447e81bc
SUPERNOVA: Initializes clickField.next with 0
...
It seems it is possible that some objects or subsequent click fields
'pointed' to by next are outside of the initialized range and are
expected to be zeroed. This would explain the non-deterministic freezes
I experienced.
2018-01-23 00:00:12 +00:00
Joseph-Eugene Winzer
83523ebbdc
SUPERNOVA: Corrects left mouse click behavior
...
This still needs work especially concerning actions that need two
objects like ACTION_USE or ACTION_GIVE.
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
d70ded12f6
SUPERNOVA: Fixes that objects are removed when taken
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
4fc7f73442
SUPERNOVA: Converts Inventory as GuiElements
...
By encapsulating the inventory state in GuiElements we can through out
inventory_object
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
aa22029ffe
SUPERNOVA: Removes isVisible flag from GuiElement
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
36263aaa0b
SUPERNOVA: Fixes font rendering
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
e0aa700dac
SUPERNOVA: Renames charcterWidth() to textWidth()
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
2a19f34bb5
SUPERNOVA: Adds table for octal cp437 umlauts
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
4c26b418cd
SUPERNOVA: Makes Inventory::get() return nullObject
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
5224c4d313
SUPERNOVA: Refactors room definitions
...
Calling renderImage() directly causes unintended side effects since
e9d7b7ca0f as drawImage() besides rendering also set visibility flags.
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
4d3e1eed8e
SUPERNOVA: Corrects OPEN to more descriptive OPENABLE
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
40c609c40b
SUPERNOVA: Adds debugging code for rendering available sections
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
e9375ea3ee
SUPERNOVA: Adds tons of stuff
...
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-23 00:00:11 +00:00
Joseph-Eugene Winzer
0f7266a6b4
SUPERNOVA: Removes warnings for Inventory code
2018-01-23 00:00:11 +00:00
Joseph-Eugene Winzer
c903ede023
SUPERNOVA: Fixes renderRoom() by limiting the section range
2018-01-22 23:54:42 +00:00
Joseph-Eugene Winzer
b959453b39
SUPERNOVA: removeMessage() now restores the screen on destruction
2018-01-22 23:54:42 +00:00
Joseph-Eugene Winzer
28b6430eaa
SUPERNOVA: Fixes typo in definition of objects
2018-01-22 23:54:42 +00:00