Commit graph

521 commits

Author SHA1 Message Date
Thierry Crozat
b527b54c6f SUPERNOVA: Disable loading and saving during execution of event callbacks 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
575aef711b SUPERNOVA: Fix updating the palette brightness when the current image has no palette 2018-01-23 02:15:38 +00:00
Thierry Crozat
af226daf81 SUPERNOVA: Fix incorrect delay for message display
The delay was not set, meaning the messages were immediately
removed in some cutscenes.
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
3270b51372 SUPERNOVA: Add strings for supernova explosion cutscene 2018-01-23 02:15:38 +00:00
Thierry Crozat
54201327f7 SUPERNOVA: Fix image rendering when removing image
This is mostly used in talk animations and result in bad artefacts.
The issue was a regression introduced in commit e0f6da0.
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
3f2c0673e4 SUPERNOVA: Do not run animations while a text box is displayed
That is also what the original is doing, and this avoid having
graphical glitches.
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
841e7182f2 SUPERNOVA: Reduce memory usage to store sections and simplify code
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-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
5b76bbb016 SUPERNOVA: Fix graphics glitches 2018-01-23 02:15:37 +00:00
Thierry Crozat
7c40e38d7c SUPERNOVA: Fix recursive infinite loop in door closing animation in ArsanoEntrance 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
f4b10b7a83 SUPERNOVA: Add missing game string 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
Thierry Crozat
15b4e7a298 SUPERNOVA: Fix delay when loading a savedgame while a message is displayed
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-23 02:15:36 +00:00
Strangerke
201fd0ff56 SUPERNOVA: Change detection to use data files instead of executables 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
c4ee3e72b7 SUPERNOVA: Extract some more stings from rooms.cpp 2018-01-23 02:15:35 +00:00
Strangerke
e0dde7865b SUPERNOVA: Remove AxacussCorridor5::interact in order to get rid of several GOTOs 2018-01-23 02:15:35 +00:00
Strangerke
f213ea8e0a SUPERNOVA: extract strings for Axacuss Corridor 5 2018-01-23 02:15:35 +00:00
Thierry Crozat
9db84783be SUPERNOVA: Merge two strings to help with translation 2018-01-23 02:15:35 +00:00
Thierry Crozat
52952c48a7 SUPERNOVA: Fix displaying image missing last row and last column
This also fixes a crash for single row image sections
2018-01-23 02:15:35 +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
7cfe38501c SUPERNOVA: Extract ArsanoGlider, ArsanoMeetup 2 & 3 and AxacussCell strings 2018-01-23 02:15:35 +00:00
Strangerke
56f9328e90 SUPERNOVA: Extract ArsanoRoger texts 2018-01-23 02:15:35 +00:00
Strangerke
609856d36a SUPERNOVA: Fix a remaining kStringDialogSeparator 2018-01-23 02:15:35 +00:00
Strangerke
ed9d92407e SUPERNOVA: Extract more dialog texts 2018-01-23 02:15:35 +00:00
Strangerke
38fbda9189 SUPERNOVA: Extract strings used in ShipHold and operations related to the cable 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
a141438e60 SUPERNOVA: Fix check of dialog status in ArsanoRoger onEntrance 2018-01-23 02:15:34 +00:00
Thierry Crozat
c290e144db SUPERNOVA: Simplify a bit the code 2018-01-23 02:15:34 +00:00
Strangerke
572f205e67 SUPERNOVA: Extract the strings from ShipCockpit 2018-01-23 02:15:34 +00:00
Strangerke
f23baf902f SUPERNOVA: Extract strings for Ship Hall and Ship Sleep Cabin 2018-01-23 02:15:34 +00:00
Strangerke
31a0496091 SUPERNOVA: Janitorial - Fix some spacing in rooms.cpp 2018-01-23 02:15:34 +00:00
Strangerke
7485a45909 SUPERNOVA: Remove useless 2nd initialization of _shown to false 2018-01-23 02:15:34 +00:00
Strangerke
46bdb304dd SUPERNOVA: Remove useless defines 2018-01-23 02:15:34 +00:00
Strangerke
9bf0a656a6 SUPERNOVA: Change _shown to an array of bytes in order to handle extra values used by dialogs, fix ArsanoMeetup2::onEntrance by using a shown variable 2018-01-23 02:15:34 +00:00
Strangerke
f0d139d519 SUPERNOVA: Fix some warnings 2018-01-23 02:15:34 +00:00
Thierry Crozat
c3241c7c42 SUPERNOVA: Improve translated title display
The title is displayed on three lines aligned on their center,
but the code provides the left coordinate for each line so we
need to compute it based on the translated line length.
2018-01-23 02:15:34 +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
095679c4f2 SUPERNOVA: Move intro cutscene strings to engine data file 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