aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/supernova.cpp
AgeCommit message (Collapse)Author
2018-01-23SUPERNOVA: Fix incorrect delay for message displayThierry Crozat
The delay was not set, meaning the messages were immediately removed in some cutscenes.
2018-01-23SUPERNOVA: Implement event callback mechanism and Supernova eventThierry Crozat
2018-01-23SUPERNOVA: Fix image rendering when removing imageThierry Crozat
This is mostly used in talk animations and result in bad artefacts. The issue was a regression introduced in commit e0f6da0.
2018-01-23SUPERNOVA: Do not run animations while a text box is displayedThierry Crozat
That is also what the original is doing, and this avoid having graphical glitches.
2018-01-23SUPERNOVA: Fix crash when displaying strings larger than the screenThierry Crozat
2018-01-23SUPERNOVA: Reduce memory usage to store sections and simplify codeThierry Crozat
Each section was store dusing the full image size. Now it only uses the section size, which should reduce considerably the amout of memory used for each image. Also when a section has one or more next section, they were all drawn on the surface for this section, but then they were drawn again on their own surface. And while this should not cause any issue, this was really unnecessary (and prevented optimizing the surface size for each section). So now this is no longer the case and the surface for a section only contains this section.
2018-01-23SUPERNOVA: Replace a class variable used in a single function by a local ↵Thierry Crozat
variable
2018-01-23SUPERNOVA: Cleanup dialog codeThierry Crozat
The main change consists in using a separate byte array for the sentence removal flags, move some functions from the GameManager to the Room class, and add a few additional functions to manipulate this new array. This allows to clarify some code related to dialogs. This change also allows to switch the _shown array back to a bool array.
2018-01-23SUPERNOVA: Fix delay when loading a savedgame while a message is displayedThierry Crozat
This required the user to click a mouse button to close the message and get to the mew state. Now the message is automatically closed before loading the new state.
2018-01-23SUPERNOVA: Fix displaying image missing last row and last columnThierry Crozat
This also fixes a crash for single row image sections
2018-01-23SUPERNOVA: Fix some warningsStrangerke
2018-01-23SUPERNOVA: Improve interactivity of title screen and intro cutsceneThierry Crozat
We can now press the mouse button to leave the title screen instead of having to press a key. Since the mouse cursor was visible, not being able to press the mouse button was strange. Especially as it was possible to use the mouse button earlier in the title screen. Also we can now use the mouse button or any key other than escape during the cutscene to move to the next sentence. And the code is more reactive to pressing the Escape key (we don't need to wait for the current annimation to finish) to exit the cutscene.
2018-01-23SUPERNOVA: Move object name and description strings to engine data fileThierry Crozat
2018-01-23SUPERNOVA: Load strings from the supernova.dat fileThierry Crozat
2018-01-23SUPERNOVA: Plug memory leak in MOD music streamsThierry Crozat
2018-01-23SUPERNOVA: Clean indentationsThierry Crozat
2018-01-23SUPERNOVA: Fix GCC Warning for Malformed Narrowing Conversions in C++11.D G Turner
2018-01-23SUPERNOVA: Fix clicks at start and end of audio samplesThierry Crozat
The sound samples start with a 6 bytes header (including the size of the sample coded on a little endian 16 bits uint on bytes 2 and 3) and end with 4 bytes set to null. Those were passed to the raw stream, which resulted in the audible clicks. Note that we could use the information from the header to load the sound samples instead of keeping around an array of offset and size.
2018-01-23SUPERNOVA: Add saving/loading of playtimeThierry Crozat
2018-01-23SUPERNOVA: Properly handle loading saved game from launcherThierry Crozat
2018-01-23SUPERNOVA: Improve save state handlingThierry Crozat
The saved game files now start with a header and version which allows to do some sanity check and will allow to change the format in the future if needed. Also the MetaEngine can now be queried for the meta infos of a save state.
2018-01-23SUPERNOVA: Allows saving by defaultJoseph-Eugene Winzer
When saving is not apropriate, for example during cutscenes, explicitly disable it.
2018-01-23SUPERNOVA: Fixes save/load dialogJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Fixes returned constant on load failJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Raises save game limit to 99Joseph-Eugene Winzer
2018-01-23SUPERNOVA: Changes increment size for fade in/outJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Fixes mouse events during introJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds text speed variableJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Removes commentsJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements de-/serializationJoseph-Eugene Winzer
WIP. It is currently broken.
2018-01-23SUPERNOVA: Adds engine pauseJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds RoomID to RoomsJoseph-Eugene Winzer
GameManager::airless() determined if the space suit could be taken off by comparing the current room pointer to the allocated room objects. This led to indeterministic behavior as sometimes airless() would falsely return true as the dynamic allocation of the Room objects cannot be expected to be in a certain order. Implementing the corresponing RoomID to a Room objects solves this problem.
2018-01-23 SUPERNOVA: Ignores mouse clicks while sound is playingJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements Return To LauncherJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Updates TODOsJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Removes getDOSTicks()Joseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds Alt-X as exit shortcutJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Fixes rerendering of the roomJoseph-Eugene Winzer
One sprite can consist of many sections that are concatenated in a linked list.
2018-01-23SUPERNOVA: Adds Audio info for rocksJoseph-Eugene Winzer
2018-01-23SUPERNOVA: cleanupJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds indicator for key pressesJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Extends text renderingJoseph-Eugene Winzer
textWidth() and renderText() are overloaded for handling single uint16 characters (useful when rendering key strokes directly)
2018-01-23SUPERNOVA: Adjusts game loop delayJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Implements animationJoseph-Eugene Winzer
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-23SUPERNOVA: Refactors event loopJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Fixes font renderingJoseph-Eugene Winzer
2018-01-23SUPERNOVA: Renames charcterWidth() to textWidth()Joseph-Eugene Winzer
2018-01-23SUPERNOVA: Adds debugging code for rendering available sectionsJoseph-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