Commit Graph
137148 Commits
Author SHA1 Message Date
Joseph-Eugene Winzer 1b220e75e5 SUPERNOVA: Implements playSoundMod() 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer ef1bbce68e SUPERNOVA: Buffers sections of image on init 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 1ae1134706 SUPERNOVA: Converts mouse cursor data 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 7c4a763710 SUPERNOVA: Replaces magic numbers 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 9e21dc42ee SUPERNOVA: Implements rendering of newspaper articles
The resolution will change dynamically depending what image is about to
be rendered. As there are no other GUI elements shown that depend on the
screen resolution when the artciles are rendered, there shouldn't be any
problems.
2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer cd080b820a SUPERNOVA: Buffers audio samples on startup 2018-01-22 23:42:08 +00:00
Joseph-Eugene Winzer 6c4768a051 SUPERNOVA: Reformatting
Substitute size_t with ScummVM defined uint type
2018-01-22 23:42:07 +00:00
Joseph-Eugene Winzer 018cff8c42 SUPERNOVA: Enables debug console and preload images 2018-01-22 23:42:07 +00:00
Joseph-Eugene Winzer 5ebe90a45e SUPERNOVA: Implements loading of newspaper images
While the 640x480 images are loaded correctly, they are displayed
cropped to 320x240, the default resolution.
2018-01-22 23:42:02 +00:00
Joseph-Eugene Winzer be5f3a6319 SUPERNOVA: Fixes file name creation 2018-01-22 23:40:38 +00:00
Joseph-Eugene Winzer 29021aa7dd SUPERNOVA: Refactoring 2018-01-22 23:40:27 +00:00
Joseph-Eugene Winzer 7da3ab2611 SUPERNOVA: Enables rendering of debug console 2018-01-22 23:34:50 +00:00
Joseph-Eugene Winzer a3b6352050 SUPERNOVA: Formatting 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 38e9e2d3e7 SUPERNOVA: Adds missing copyright notes 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 932b3669d3 SUPERNOVA: Adds room specific game logic
This is the game logic for the first act of the game.
It will see restructuring to remove gotos/jumps and hardcoded
differences in game behavior depending on settings (e.g. sound on/off).
2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer e6802ed633 SUPERNOVA: Refactoring 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 74b822c220 SUPERNOVA: Refactors and adds GameManager functions 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer f2e3a4d9c4 SUPERNOVA: Changes return type to int for getDOSTicks()
The maximum return value is 0x1800B0, so easily covered by int
 (assuming 32bit+ architecture)
2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 534bd38370 SUPERNOVA: Extends renderText()
Restructures the renderText() function for providing a renderText(text)
overload that starts rendering the string where the last call stopped.
2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 8f5e712df0 SUPERNOVA: Adds further game logic stubs
Signed-off-by: Joseph-Eugene Winzer <m999@openmailbox.org>
2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer f036ebe3d5 SUPERNOVA: Extends Rooms for setting section visibility 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 7ee596efb2 SUPERNOVA: Provides rooms with engine pointers 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer 495f12f815 SUPERNOVA: Lifts encapsulation of GameManager Class
Room specific logic needs access to functions that currently are
unavailable to them. Once no further extension or rearchitecture is
rather unlikely, thoughts on encapsulation can be given but for now all
members will be made public.
2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer fbcb3d3203 SUPERNOVA: Renames game functions 2018-01-22 23:34:49 +00:00
Joseph-Eugene Winzer e00e93ed4d SUPERNOVA: Implements GameManager Class and extension to engine
An instance of GameManager acts as an interface between the game logic
and engine. It provides game specific functions like isHelmetOff() to
check if the player wears his helmet.

This commit also adds engine extensions like saveScreen() and
restoreScreen() that makes use of the ScreenBufferStack class for
temporarily saving and restoring sections of the screen.

Most of the structure and code is bound to change but gives something to
improve on.
2018-01-22 23:34:39 +00:00
Joseph-Eugene Winzer e534581e62 SUPERNOVA: Extends screen message system
Messages will be 'removable' by over-rendering the message by invoking
removeMessage() with what was previously overdrawn.
_messageDisplayed might need to be reworked to an int, depending if
there are multiple messages rendered simultaneously.
2018-01-22 23:32:46 +00:00
Joseph-Eugene Winzer 5c706dfb59 SUPERNOVA: Extends Inventory::get()
The code added as comments to Inventory::add() is the original code to
check if scrolling in inventory is needed and redraw it.
2018-01-22 23:32:32 +00:00
Joseph-Eugene Winzer 8a45d56630 SUPERNOVA: Adds getDOSTicks() 2018-01-22 23:29:44 +00:00
Joseph-Eugene Winzer 4f3f231afd SUPERNOVA: Adds Container for temporarily storing screen sections 2018-01-22 23:29:35 +00:00
Joseph-Eugene Winzer ddcfda7d02 SUPERNOVA: Adds constant messages 2018-01-22 23:17:49 +00:00
Joseph-Eugene Winzer 7a16dbdd50 SUPERNOVA: Adds isSectionVisible() to Object Class 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer 0e859cd296 SUPERNOVA: Fixes getObject() to return pointer to Object 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer 54f8df764e SUPERNOVA: Adds GameState Class 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer 6c5865c44c SUPERNOVA: Adds getObject() to Room Interface 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer a1462cae1f SUPERNOVA: Adds static combine() to Object Class 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer 55c67005a6 SUPERNOVA: Returns if section is invalid
Sections with an x2 value of 0 cannot span any area and are thus invalid
2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer 85aa1985ac SUPERNOVA: Reformatting 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer b15169cd43 SUPERNOVA: Adds getFileNumber() to Room Class 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer b34fb59f96 SUPERNOVA: Reformatting 2018-01-22 23:17:48 +00:00
Joseph-Eugene Winzer 8ec4773628 SUPERNOVA: Adds text for commands in GUI 2018-01-22 23:17:37 +00:00
Joseph-Eugene Winzer f2e51c3cfe SUPERNOVA: Adds hasProperty() for Objects and bit ops 2018-01-22 23:08:39 +00:00
Joseph-Eugene Winzer f4eb7cbfc5 SUPERNOVA: Adds Inventory Class 2018-01-22 23:08:39 +00:00
Joseph-Eugene Winzer 18ac67f907 SUPERNOVA: Substitutes magic numbers in Object ctor 2018-01-22 23:08:39 +00:00
Joseph-Eugene Winzer 42af582e4c SUPERNOVA: Substitutes magic numbers with symbols 2018-01-22 23:08:39 +00:00
Joseph-Eugene Winzer f3656ecce9 SUPERNOVA: Adds methods for alterting Object state 2018-01-22 23:08:31 +00:00
Joseph-Eugene Winzer 6538a6386b SUPERNOVA: Refactoring 2018-01-22 22:59:48 +00:00
Joseph-Eugene Winzer 51df751e44 SUPERNOVA: Removes ORing ObjectTypes from msn_def.h
The reason for the removal is because of gcc warnings when the operator
is not used in a translation unit that includes msn_def.h.
Currently I also see it used in the game logic anyway so there's no need
for it to be defined in a ubiquitiously used header file like msn_def.h
2018-01-22 22:59:48 +00:00
Joseph-Eugene Winzer 87287de83b SUPERNOVA: Adds color palette constants 2018-01-22 22:59:48 +00:00
Joseph-Eugene Winzer ad7184b379 SUPERNOVA: Moves Object Class from rooms.h to msn_def.h 2018-01-22 22:59:48 +00:00
Joseph-Eugene Winzer 79ada90398 SUPERNOVA: Adds room data for Ship chapter 2018-01-22 22:59:48 +00:00