Commit Graph
167 Commits
Author SHA1 Message Date
Thierry Crozat 1b2e4f926c SUPERNOVA: Implement alarm 2018-01-23 02:15:42 +00:00
Thierry Crozat 0c5f02959f SUPERNOVA: Remove outdated comment and warning 2018-01-23 02:15:42 +00:00
Thierry Crozat 5f0709d66f SUPERNOVA: Silence warning about unhandled switch cases 2018-01-23 02:15:42 +00:00
Strangerke b4d7a83c75 SUPERNOVA: Small cleanups 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
Thierry Crozat 626e93e6f8 SUPERNOVA: Consume click event when hiding message 2018-01-23 02:15:41 +00:00
Strangerke 37706ade78 SUPERNOVA: Implement searchStartEvent, fix bug in corridor initialization 2018-01-23 02:15:41 +00:00
Strangerke cccdcf9c26 SUPERNOVA: Implement guardWalkEvent 2018-01-23 02:15:41 +00:00
Thierry Crozat 4014f4efae SUPERNOVA: Fix timing of search events 2018-01-23 02:15:41 +00:00
Thierry Crozat deb6168ed1 SUPERNOVA: Make sure to exit bathroom to the same room from which it was entered 2018-01-23 02:15:41 +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
Strangerke 1ff953b815 SUPERNOVA: Move 2 strings to the DAT file 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
Strangerke ca1acaf5ea SUPERNOVA: Implement guardNoticed() 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 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 ee905b762a SUPERNOVA: Implement shipstart cutscene 2018-01-23 02:15:40 +00:00
Thierry Crozat b39beb43fd SUPERNOVA: Fix initialization of timer when starting or loading game 2018-01-23 02:15:40 +00:00
Strangerke d189820ce3 SUPERNOVA: Implement AxacussExit interaction logic 2018-01-23 02:15:39 +00:00
Strangerke d1d1d988b0 SUPERNOVA: Add interaction logic for AxacussIntersection 2018-01-23 02:15:39 +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 965b4ca3de SUPERNOVA: Check shouldQuit to break from input loop 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
Strangerke 897a1e93a1 SUPERNOVA: Display stubs, remove useless function declaration 2018-01-23 02:15:39 +00:00
Strangerke d3eb662fe2 SUPERNOVA: Fix warning 2018-01-23 02:15:39 +00:00
Thierry Crozat f40a534737 SUPERNOVA: Fix room brightness
The incorrect implementation meant than for example when leaving
the cave the room could stay black.

Note that the implementation is still approximative for the HOLD
and LANDINGMODULE rooms.
2018-01-23 02:15:39 +00:00
Thierry Crozat 70e8f36a55 SUPERNOVA: Remove variables and stub functions related to overlay 2018-01-23 02:15:38 +00:00
Thierry Crozat 8a8a0b9d38 SUPERNOVA: Implement event callback mechanism and Supernova event 2018-01-23 02:15:38 +00:00
Thierry Crozat 909818c730 SUPERNOVA: Fix combining ObjectType enum values
It was storing the result of bitwise operation on the ObjectType
enum values in a ObjectType variable. But that was incorrect as
the result was not a value from the enum.

Also removing a property was actually adding the property if it
was not present in the value initially.
2018-01-23 02:15:38 +00:00
Thierry Crozat c8c6eeb974 SUPERNOVA: Fix usage of uninitialized variables 2018-01-23 02:15:38 +00:00
Thierry Crozat 5b76bbb016 SUPERNOVA: Fix graphics glitches 2018-01-23 02:15:37 +00:00
Thierry Crozat bd6cdf4ba2 SUPERNOVA: Handle events during dialogs 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
Thierry Crozat 21899d8716 SUPERNOVA: Implement most dialog related functions 2018-01-23 02:15:37 +00:00
Thierry Crozat f98fcd139b SUPERNOVA: Fix screen shake
OSystem::setShakePos(int) can only take positive offset (as documented).
Passing a negative offset caused memory issues in the drawing code and
some random crashes.
2018-01-23 02:15:36 +00:00
Strangerke 1cee221e7a SUPERNOVA: Finish the string extraction in state.cpp 2018-01-23 02:15:36 +00:00
Strangerke d4351a5ff2 SUPERNOVA: Extract some strings from state.cpp 2018-01-23 02:15:36 +00:00
Strangerke 4d7d802333 SUPERNOVA: Change the signature of dialog(), fix calls, extract some more strings 2018-01-23 02:15:35 +00:00
Strangerke 56f9328e90 SUPERNOVA: Extract ArsanoRoger texts 2018-01-23 02:15:35 +00:00
Strangerke ed9d92407e SUPERNOVA: Extract more dialog texts 2018-01-23 02:15:35 +00:00
Strangerke cb12a88fc5 SUPERNOVA: Extract strings for ShibCabinL3 & R3 and for ShipAirlock 2018-01-23 02:15:35 +00:00
Thierry Crozat 69d7b91965 SUPERNOVA: Improve interactivity of title screen and intro cutscene
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-23 02:15:33 +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 d1bdfd2bde SUPERNOVA: Clean indentations 2018-01-23 02:15:32 +00:00
Strangerke 4c9fc3cdbc SUPERNOVA: Fix compilation using MSVC9, silent some CppCheck warnings 2018-01-23 02:15:32 +00:00
D G Turner 2e79e24392 SUPERNOVA: Fix GCC Signed vs. Unsigned Comparison Warnings. 2018-01-23 02:15:32 +00:00