Age | Commit message (Collapse) | Author | |
---|---|---|---|
2018-01-22 | SUPERNOVA: Adds room specific game logic | Joseph-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-22 | SUPERNOVA: Refactoring | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Refactors and adds GameManager functions | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: 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-22 | SUPERNOVA: 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-22 | SUPERNOVA: Adds further game logic stubs | Joseph-Eugene Winzer | |
Signed-off-by: Joseph-Eugene Winzer <m999@openmailbox.org> | |||
2018-01-22 | SUPERNOVA: Extends Rooms for setting section visibility | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Provides rooms with engine pointers | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Lifts encapsulation of GameManager Class | Joseph-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-22 | SUPERNOVA: Renames game functions | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Implements GameManager Class and extension to engine | Joseph-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-22 | SUPERNOVA: Extends screen message system | Joseph-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. | |||
2018-01-22 | SUPERNOVA: Extends Inventory::get() | Joseph-Eugene Winzer | |
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 | SUPERNOVA: Adds getDOSTicks() | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds Container for temporarily storing screen sections | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds constant messages | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds isSectionVisible() to Object Class | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Fixes getObject() to return pointer to Object | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds GameState Class | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds getObject() to Room Interface | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds static combine() to Object Class | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Returns if section is invalid | Joseph-Eugene Winzer | |
Sections with an x2 value of 0 cannot span any area and are thus invalid | |||
2018-01-22 | SUPERNOVA: Reformatting | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds getFileNumber() to Room Class | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Reformatting | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds text for commands in GUI | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds hasProperty() for Objects and bit ops | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds Inventory Class | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Substitutes magic numbers in Object ctor | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Substitutes magic numbers with symbols | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds methods for alterting Object state | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Refactoring | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Removes ORing ObjectTypes from msn_def.h | Joseph-Eugene Winzer | |
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 | SUPERNOVA: Adds color palette constants | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Moves Object Class from rooms.h to msn_def.h | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Adds room data for Ship chapter | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Updates renderImage() function | Joseph-Eugene Winzer | |
renderImage() now considers the size of image sections instead of blitting them on 320x200 by default. | |||
2018-01-22 | SUPERNOVA: Setup image and section viewer | Joseph-Eugene Winzer | |
Pressing 'w' increases the image index and 'e' the section index. | |||
2018-01-22 | SUPERNOVA: Adds an empty ObjectType/ID and RoomID | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Convert 18bit VGA to 24bit CLUT8 | Joseph-Eugene Winzer | |
Colors on VGA are 6bit per color channel, that is why the colors were so dark in earlier commits. Shifting the colors left by 2 gives us an approximated value for CLUT8. | |||
2018-01-22 | SUPERNOVA: Fix OOB write in paletteBrightness() | Joseph-Eugene Winzer | |
Palette color 255 doesn't seem to be used | |||
2018-01-22 | SUPERNOVA: Add palette fade in/out | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Fix image palette loading | Joseph-Eugene Winzer | |
Mistakenly, during image loading the system palette was completely substituted by the image palette although the first 16 colors are supposed to be preserved. | |||
2018-01-22 | SUPERNOVA: add text rendering | Joseph-Eugene Winzer | |
Currently renderText() has two performance drawbacks. First, it locks the screen surface during the whole function for drawing the text directly to it. Besides that, it accesses the pixels in a cache unfriendly way because the font glyphs are stored tilted by 90 degrees. Most likely it won't pose any problems but if it should those issues need to be prioritized. | |||
2018-01-22 | SUPERNOVA: add characterWidth() function | Joseph-Eugene Winzer | |
Also did some cleanup on the font definition | |||
2018-01-22 | SUPERNOVA: add renderBox() | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: fix palette corruption on decoding | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: (TEMP COMMIT) drawing to screen surface | Joseph-Eugene Winzer | |
2018-01-22 | SUPERNOVA: Added basic game loop and play sound samples | Joseph-Eugene Winzer | |
There has been many other changes like copy/pasting room definitions, skeleton for image decoder, .. Getting supernova mod format support seems to be a good next step. | |||
2018-01-22 | SUPERNOVA: Create engine skeleton and game detection | Joseph-Eugene Winzer | |