Commit Graph
137148 Commits
Author SHA1 Message Date
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
Joseph-Eugene Winzer dc12a0fd23 SUPERNOVA: Enables renderImage() to render inverse sections
Besides the addition of inverse sections, the 'fullscreen' parameter was
removed as it was used only for testing purposes in the beginning.
2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer a54c9084c1 SUPERNOVA: Removes 'inverse section' case
This code section was converted from the original source, where the
sections are directly drawn to the screen instead of buffered.
If a section > 128 is set as parameter, the function takes the
dimensions of section - 128 and draws this region of section 0 to the
screen, thus restoring it.
It would not make sense loading part of section 0 in seperate Surfaces
especially since kMaxSection is smaller than 128 the else branch is
never entered so removing it doesn't change the programs behavior.
2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer 6d655b19fc SUPERNOVA: Adds GuiElement Class 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer a8f62802cc SUPERNOVA: Extends Object Class 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer 718cae659c SUPERNOVA: Adds info to NOTES 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer 30389746c8 SUPERNOVA: Fixes bathroom location on minimap 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer 7c8f5bdd3d SUPERNOVA: Adds missing copyright header 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer 69f6ef0efd SUPERNOVA: Cosmetic changes in console code 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer b6887b0740 SUPERNOVA: Converts strings back to cp437 2018-01-22 23:54:41 +00:00
Joseph-Eugene Winzer 30308fbe8d SUPERNOVA: Implements GUI routines and refactors code
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.
2018-01-22 23:54:26 +00:00
Joseph-Eugene Winzer 87a0dd970a SUPERNOVA: Fixes Message positioning 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 2c17586c76 SUPERNOVA: Fixes parameters passed to fillRect() 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 4a68aef1d6 SUPERNOVA: Fixes ScreenBufferStack 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 84eb970bb9 SUPERNOVA: Fixes endianess issue for drawing cursor 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 11b6227517 SUPERNOVA: Buffer Music files 2018-01-22 23:42:08 +00:00