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