Commit Graph
146 Commits
Author SHA1 Message Date
Joseph-Eugene Winzer d4592b6077 SUPERNOVA: Removes global nullObject
Before nullObject was a static member of Object class and now a member
of GameManager. Also the Inventory constructor was extended for taking a
pointer to the nullObject that Invetory::get() returns if no Object was
found.
2018-04-15 18:47:33 +01:00
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 5008e88d4b SUPERNOVA: Fixes setCurrentImage 2018-04-15 18:28:38 +01:00
Joseph-Eugene Winzer 6ea629f944 SUPERNOVA: Moves VGA Palette to screenstatic.cpp 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 ab208d1077 SUPERNOVA: Implements image buffering 2018-04-15 18:23:12 +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 dc38d6a8cd SUPERNOVA: Renames _timer1 to _messageDuration 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 bb46e53667 SUPERNOVA: Processes all keyboard queries in processInput() 2018-04-14 11:45:52 +02:00
Joseph-Eugene Winzer 80be48c42d SUPERNOVA: Removes redundant keypress check
GameManager::processInput() already does the job
2018-04-14 11:45:52 +02:00
Joseph-Eugene Winzer 392db4ed33 SUPERNOVA: Fixes formatting 2018-03-11 23:25:00 +01:00
Joseph-Eugene Winzer 61fb88ef20 SUPERNOVA: Removes TODO for quitGameDialog() 2018-03-11 23:25:00 +01:00
Joseph-Eugene Winzer 53af82785e SUPERNOVA: Substitues constant strings 2018-03-11 23:25:00 +01: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 26b5522463 SUPERNOVA: Adds ModeList 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
Joseph-Eugene Winzer dd6df76b32 SUPERNOVA: Initializes RandomSource on stack 2018-01-23 02:15:46 +00:00
Joseph-Eugene Winzer b937268e61 SUPERNOVA: Renames INT32_MAX to kMaxTimerValue
Prevents collision with stdint.h INT32_MAX
2018-01-23 02:15:46 +00:00
Joseph-Eugene Winzer b8b0ae57cc SUPERNOVA: Fixes AudioStream leak 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
Joseph-Eugene Winzer fa1e93a15e SUPERNOVA: Removes global constructor call
Object() is redundant anyway as it instantiates an Object object and
copies it to nullObject, which was already default constructed.
2018-01-23 02:15:46 +00:00
Joseph-Eugene Winzer 6e7da43889 SUPERNOVA: Introduces INT32_MAX for eventTime 2018-01-23 02:15:44 +00:00
Joseph-Eugene Winzer b6bb1f9709 SUPERNOVA: Corrects max value for int32 2018-01-23 02:15:44 +00:00
Thierry Crozat bc78e613fd SUPERNOVA: Do not try to render INTRO room
This room has no image and this avoids getting a warning
about image file not found.
2018-01-23 02:15:43 +00:00
Thierry Crozat 1b2e4f926c SUPERNOVA: Implement alarm 2018-01-23 02:15:42 +00:00
Thierry Crozat 55fc09571f SUPERNOVA: Fix handling of room brightness
There were several issues with the brighness due to the different
implementation between the original and the code in scummvm. The
code has now been modified to be much closer to the original, which
fixed those issues and allowed to remove workarounds that had been
added in various places to deal with those issues (but those
workarounds had their own issues such as fade in happening too
soon before switching to the new room).
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
Strangerke 7d72ae0d0d SUPERNOVA: Implement errorTempSave() 2018-01-23 02:15:40 +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 58cfbb532b SUPERNOVA: Fix room rendering
It could initially access the wrong image to check the number
of section. The code was working fine as long as it had one
section, so there was probably no bad side effect to using
the wrong image (except if it was NULL).
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 b527b54c6f SUPERNOVA: Disable loading and saving during execution of event callbacks 2018-01-23 02:15:39 +00:00
Thierry Crozat 575aef711b SUPERNOVA: Fix updating the palette brightness when the current image has no palette 2018-01-23 02:15:38 +00:00