Commit Graph
89 Commits
Author SHA1 Message Date
Joseph-Eugene Winzer a4ac8895da SUPERNOVA: Removes renderImageSection() from SupernovaEngine
This function is never called by itself. It is a helper function for
renderImage().
2018-04-15 18:28:39 +01:00
Joseph-Eugene Winzer 0668f9d363 SUPERNOVA: Removes unused RNG instance 2018-04-15 18:28:38 +01:00
Joseph-Eugene Winzer 3749f98dea SUPERNOVA: Fixes type camel case 2018-04-15 18:28:38 +01:00
Joseph-Eugene Winzer 93dde5d235 SUPERNOVA: Renames Music/AudioIndex to Music/AudioId 2018-04-15 18:28:38 +01:00
Joseph-Eugene Winzer 2ead17f09f SUPERNOVA: Implements render functions
Although SupernovaEngine forwards render calls to screen, it also
exposed members publicly like _brightness. Therefore, a few changes were
necessary in rooms and state.
2018-04-15 18:28:29 +01:00
Joseph-Eugene Winzer 6187e25199 SUPERNOVA: Renames NULL to nullptr 2018-04-15 18:23:11 +01:00
Joseph-Eugene Winzer d963827dbb SUPERNOVA: Renames MSNImageDecoder to MSNImage 2018-04-15 18:23:11 +01:00
Joseph-Eugene Winzer b2dc8d5424 SUPERNOVA: Adds resource abstraction
The resource abstraction includes loading of sound files and cursor
graphics.
2018-04-15 18:22:57 +01:00
Joseph-Eugene Winzer 07f5f34d42 SUPERNOVA: Removes stopAudio() 2018-04-14 11:45:52 +02:00
Joseph-Eugene Winzer 32877639d7 SUPERNOVA: Adds init function to SupernovaEngine 2018-04-14 11:45:52 +02:00
Joseph-Eugene Winzer 26543be637 SUPERNOVA: Adds sound abstraction 2018-04-14 11:45:52 +02:00
Joseph-Eugene Winzer ff5426c609 SUPERNOVA: Moves updateEvents() to GameManager
updatEvents() depends on an initalized GameManager instance and mostly
manipulates its state. So it seemed fitting to move it over.
2018-04-14 11:45:52 +02:00
Joseph-Eugene Winzer bb9bfcba4a SUPERNOVA: Encapsulates GuiElement
It simplifies the overloaded functions for renderBox/Text and saveScreen
2018-03-11 23:25:00 +01:00
Joseph-Eugene Winzer 7f5cea54e3 SUPERNOVA: Implements original quit prompt 2018-03-11 23:25:00 +01:00
Joseph-Eugene Winzer a38db245ed SUPERNOVA: Fixes formatting
Because of confusion when indentation level is raised and thus tabs or
spaces should be used when aligning code, this commit switches to tabs
to avoid any further confusion.
2018-03-11 23:25:00 +01:00
Joseph-Eugene Winzer ccd4e20e32 SUPERNOVA: Fixes destruction of SoundSample buffer 2018-01-23 02:15:47 +00:00
Thierry Crozat ac609c91db SUPERNOVA: Make _event a local variable 2018-01-23 02:15:47 +00:00
Thierry Crozat d12b182450 SUPERNOVA: Remove declaration for unimplemented and unused function 2018-01-23 02:15:47 +00:00
Joseph-Eugene Winzer dd6df76b32 SUPERNOVA: Initializes RandomSource on stack 2018-01-23 02:15:46 +00:00
Joseph-Eugene Winzer 32e8d22c14 SUPERNOVA: Corrects header guard name 2018-01-23 02:15:46 +00:00
Joseph-Eugene Winzer d68ce6dc07 SUPERNOVA: Changes array to seperate variables 2018-01-23 02:15:46 +00:00
Joseph-Eugene Winzer e40a017962 SUPERNOVA: Fixes segfault if dat file not found 2018-01-23 02:15:46 +00:00
Thierry Crozat 4a042c8465 SUPERNOVA: Save/restore _playerHidden flag in savegames 2018-01-23 02:15:44 +00:00
Thierry Crozat 75e3568f06 SUPERNOVA: Implement dialogs with variable text
This was partially implemented but not finished. However I reverted
the changes already done to support that in order to use a different
approach.
2018-01-23 02:15:42 +00:00
Thierry Crozat 1b2e4f926c SUPERNOVA: Implement alarm 2018-01-23 02:15:42 +00:00
Strangerke 13319458dc SUPERNOVA; Move some strings to game text file, 2018-01-23 02:15:42 +00:00
Strangerke 4810d514fe SUPERNOVA: Implement telomat, increase savegame version 2018-01-23 02:15:41 +00:00
Strangerke e2b85ab741 SUPERNOVA: Update savegame version 2018-01-23 02:15:41 +00:00
Thierry Crozat 177539ba2e SUPERNOVA: Load images on demand 2018-01-23 02:15:41 +00:00
Thierry Crozat 87ab33a8aa SUPERNOVA: Fix several issues with savegames 2018-01-23 02:15:41 +00:00
Thierry Crozat 1759d1ffdd SUPERNOVA: Implement autosave used for dream sequence 2018-01-23 02:15:40 +00:00
Thierry Crozat 888930660a SUPERNOVA: Use setCurrentImage instead of passing the image to renderImage
This is more similar to what the original code does and allows to retire
the renderImage variant that takes an image.
2018-01-23 02:15:40 +00:00
Thierry Crozat 624425077b SUPERNOVA: Add warning when trying to use out of bound file number
This is likely happening, and a comment has also been added to
indicate this. The warning was added to help detect those issue
and so that we don't forgert about it.
2018-01-23 02:15:40 +00:00
Thierry Crozat b11772d904 SUPERNOVA: Fix logic in rendering code
There were several issues fixed by this commit. The main ones are:
 - It was in many places only drawing the first section even for
   images that have multiple sections.
 - It was in some places using the wrong image.

The first issue has been fixed by removing the GameManager::drawImage
function, and moving its logic to SupernovaEngine::renderImage which
was initially only drawing one section, but was nevertheless called
directly from many place.

The second image required more changes to the rendering code to allow
setting the current image file when it is different from the room file.
This fixes some memory issues and random crashes in places where it was
for example trying to use the image -1. This also fixes the rendering
of the flying cutscene.
2018-01-23 02:15:40 +00:00
Thierry Crozat 7eb5924f65 SUPERNOVA: Implement text speed dialog
The text speed is also saved in the scummvm.ini file so that
it persists between runs.
2018-01-23 02:15:39 +00:00
Thierry Crozat 529a9c9811 SUPERNOVA: Properly handle timer stop/start 2018-01-23 02:15:39 +00:00
Thierry Crozat 8a8a0b9d38 SUPERNOVA: Implement event callback mechanism and Supernova event 2018-01-23 02:15:38 +00:00
Thierry Crozat 8f7dcbe4ac SUPERNOVA: Fix crash when displaying strings larger than the screen 2018-01-23 02:15:37 +00:00
Thierry Crozat 73278c3f9f SUPERNOVA: Replace a class variable used in a single function by a local variable 2018-01-23 02:15:37 +00:00
Thierry Crozat 7bf803f6e6 SUPERNOVA: Cleanup dialog code
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-23 02:15:37 +00:00
Strangerke f0d139d519 SUPERNOVA: Fix some warnings 2018-01-23 02:15:34 +00:00
Thierry Crozat 7722fe99cd SUPERNOVA: Move object name and description strings to engine data file 2018-01-23 02:15:33 +00:00
Thierry Crozat 6fc0659222 SUPERNOVA: Start using strings from the engine data file
This means that now all that remains to be done to play in English
is to move all the strings to the engine data file and to translate
them.
2018-01-23 02:15:33 +00:00
Thierry Crozat 184b3a1662 SUPERNOVA: Load strings from the supernova.dat file 2018-01-23 02:15:33 +00:00
Thierry Crozat 0f4d364e63 SUPERNOVA: Add getting translated images from the engine data file 2018-01-23 02:15:33 +00:00
Thierry Crozat d1bdfd2bde SUPERNOVA: Clean indentations 2018-01-23 02:15:32 +00:00
Thierry Crozat ed7fa6f7d7 SUPERNOVA: Improve save state handling
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-23 02:15:31 +00:00
Joseph-Eugene Winzer 7b4e9a5424 SUPERNOVA: Adds text speed variable 2018-01-23 02:00:59 +00:00
Joseph-Eugene Winzer 3f68cda2d7 SUPERNOVA: Implements de-/serialization
WIP. It is currently broken.
2018-01-23 01:53:31 +00:00
Joseph-Eugene Winzer ef14dfb7c3 SUPERNOVA: Adds engine pause 2018-01-23 01:53:28 +00:00