aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova
AgeCommit message (Collapse)Author
2018-01-23SUPERNOVA: Makes Inventory::get() return nullObjectJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Refactors room definitionsJoseph-Eugene Winzer
Calling renderImage() directly causes unintended side effects since e9d7b7ca0f as drawImage() besides rendering also set visibility flags.
2018-01-23SUPERNOVA: Corrects OPEN to more descriptive OPENABLEJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds debugging code for rendering available sectionsJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds tons of stuffJoseph-Eugene Winzer
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-23SUPERNOVA: Removes warnings for Inventory codeJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Fixes renderRoom() by limiting the section rangeJoseph-Eugene Winzer
2018-01-22SUPERNOVA: removeMessage() now restores the screen on destructionJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Fixes typo in definition of objectsJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Enables renderImage() to render inverse sectionsJoseph-Eugene Winzer
Besides the addition of inverse sections, the 'fullscreen' parameter was removed as it was used only for testing purposes in the beginning.
2018-01-22SUPERNOVA: Removes 'inverse section' caseJoseph-Eugene Winzer
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-22SUPERNOVA: Adds GuiElement ClassJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Extends Object ClassJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Adds info to NOTESJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Fixes bathroom location on minimapJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Adds missing copyright headerJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Cosmetic changes in console codeJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Converts strings back to cp437Joseph-Eugene Winzer
2018-01-22SUPERNOVA: Implements GUI routines and refactors codeJoseph-Eugene Winzer
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-22SUPERNOVA: Fixes Message positioningJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Fixes parameters passed to fillRect()Joseph-Eugene Winzer
2018-01-22SUPERNOVA: Fixes ScreenBufferStackJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Fixes endianess issue for drawing cursorJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Buffer Music filesJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Implements playSoundMod()Joseph-Eugene Winzer
2018-01-22SUPERNOVA: Buffers sections of image on initJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Converts mouse cursor dataJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Replaces magic numbersJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Implements rendering of newspaper articlesJoseph-Eugene Winzer
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-22SUPERNOVA: Buffers audio samples on startupJoseph-Eugene Winzer
2018-01-22SUPERNOVA: ReformattingJoseph-Eugene Winzer
Substitute size_t with ScummVM defined uint type
2018-01-22SUPERNOVA: Enables debug console and preload imagesJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Implements loading of newspaper imagesJoseph-Eugene Winzer
While the 640x480 images are loaded correctly, they are displayed cropped to 320x240, the default resolution.
2018-01-22SUPERNOVA: Fixes file name creationJoseph-Eugene Winzer
2018-01-22SUPERNOVA: RefactoringJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Enables rendering of debug consoleJoseph-Eugene Winzer
2018-01-22SUPERNOVA: FormattingJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Adds missing copyright notesJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Adds room specific game logicJoseph-Eugene Winzer
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-22SUPERNOVA: RefactoringJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Refactors and adds GameManager functionsJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Changes return type to int for getDOSTicks()Joseph-Eugene Winzer
The maximum return value is 0x1800B0, so easily covered by int (assuming 32bit+ architecture)
2018-01-22SUPERNOVA: Extends renderText()Joseph-Eugene Winzer
Restructures the renderText() function for providing a renderText(text) overload that starts rendering the string where the last call stopped.
2018-01-22SUPERNOVA: Adds further game logic stubsJoseph-Eugene Winzer
Signed-off-by: Joseph-Eugene Winzer <m999@openmailbox.org>
2018-01-22SUPERNOVA: Extends Rooms for setting section visibilityJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Provides rooms with engine pointersJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Lifts encapsulation of GameManager ClassJoseph-Eugene Winzer
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-22SUPERNOVA: Renames game functionsJoseph-Eugene Winzer
2018-01-22SUPERNOVA: Implements GameManager Class and extension to engineJoseph-Eugene Winzer
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-22SUPERNOVA: Extends screen message systemJoseph-Eugene Winzer
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.