Commit Graph
429 Commits
Author SHA1 Message Date
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