Commit Graph

51202 Commits

Author SHA1 Message Date
Paul Gilbert
aa3adfb4b1 TITANIC: Allow GMM loading from the copyright and continue dialog 2017-09-05 23:01:12 -04:00
Paul Gilbert
d5cfa3f2be TITANIC: Fix Bellbot disappearing during checkin cutscene 2017-09-05 22:37:50 -04:00
Paul Gilbert
0c2fc12756 TITANIC: Hook up in-game sound sliders to ScummVM volumes 2017-09-05 21:11:06 -04:00
Paul Gilbert
128edeebda TITANIC: Implement setup code for sound slider positions 2017-09-04 19:11:01 -04:00
Colin Snover
110b4f0991 COMMON: Add helper macro for printing rects 2017-09-04 23:57:19 +02:00
Colin Snover
9d42bea857 SCI32: Fix creating over 20 saves in Phant2 native save game 2017-09-04 15:20:00 -05:00
Colin Snover
bdbcc90148 SCI32: Disable save game mangling in Phant2
Fixes Trac#10035.
2017-09-04 15:19:59 -05:00
Colin Snover
109d870990 SCI: Remove already-finished TODO 2017-09-04 15:19:59 -05:00
Colin Snover
67fcb0bdaf SCI: Allow deep inspection of objects in debugger 2017-09-04 15:19:59 -05:00
Paul Gilbert
50e7a7eb3f TITANIC: Cleanup and enum for CPetSound 2017-09-04 15:38:38 -04:00
Paul Gilbert
9a0798f387 TITANIC: Fix display of music system stop button when pressed 2017-09-04 12:42:05 -04:00
Paul Gilbert
f36f3942ea TITANIC: Fix Doorbot disappearing on loading prologue elevator savegame 2017-09-03 23:36:47 -04:00
Paul Gilbert
9fa97cd119 TITANIC: Fix Doorbot disappearing in prologue elevator 2017-09-03 23:18:04 -04:00
Colin Snover
0092d5eaec BLADERUNNER: Fix compilation failure on PPC-AmigaOS4
On this platform, `int32` is `long`.
2017-09-03 21:52:32 -05:00
Colin Snover
96f702e9a8 SCI: Fix builds with SCI32 disabled 2017-09-03 21:39:22 -05:00
Colin Snover
d6139890fe SCI32: Exit early from screen shake if engine is quitting 2017-09-03 20:58:10 -05:00
Colin Snover
aa20284027 SCI32: Ignore bad audio map entries on GK2 DE CD 6
This patch also cleans up the GK2 audio map blacklisting code to
reduce the number of redundant checks being made during audio map
processing.

Fixes Trac#10172.
2017-09-03 20:58:09 -05:00
Colin Snover
6e35676a9e SCI32: Fix load from launcher for Lighthouse
Launcher loads of games without a saved Robot were fine, but games
that were saved with a Robot (e.g. room 480 when facing the water)
would crash.
2017-09-03 20:58:09 -05:00
Colin Snover
be64c6ba8b SCI32: Fix closing a Robot when its Plane has been destroyed already
This can happen during game restores in at least Lighthouse, which
has a Robot on the menu screen whose plane is deleted prior to
a call to kRestoreGame32 (which closes the Robot).
2017-09-03 20:58:09 -05:00
Colin Snover
cc3088c529 SCI32: Make audio resource size mismatch non-fatal
Lighthouse audio.225 in RESSCI.002 (US English 1.0C) triggers this
condition; the audio resource says its data is one byte larger
than the recorded size in the volume. In this case, just use the
smaller of the two values for the size, to avoid overreads.
2017-09-03 20:58:08 -05:00
Colin Snover
439a026844 SCI32: Fix Lighthouse GUIOs 2017-09-03 20:58:08 -05:00
Colin Snover
08a717530d SCI32: Correct LSL7 demo GUIOs 2017-09-03 20:58:08 -05:00
Colin Snover
768d698434 SCI32: Add standard SRDialog patches to Lighthouse 2017-09-03 20:58:08 -05:00
Colin Snover
ebd5139653 SCI32: Fix crash after credits in Lighthouse 2017-09-03 20:58:07 -05:00
Colin Snover
7545bb7133 SCI32: Clip videos to the screen
This is needed for 8.VMD in Lighthouse (room 380, the credits
room), which is rendered partially off the bottom of the screen.
OSystem does not accept rects that are offscreen.

Technically this video probably should not have been doubled
vertically by game scripts, but there is not enough space to fix
the rendering with a regular script patch, and it is a very
unimportant video.
2017-09-03 20:58:07 -05:00
Colin Snover
43a07abb46 SCI32: Implement kCelLink
kCelLink exists in SSCI since 2.1mid, but it is only known to be
used in Lighthouse, during the weapon creation puzzle near the end
of the game.
2017-09-03 20:58:07 -05:00
Paul Gilbert
a2b05b5c63 TITANIC: Fix Doorbot doubletake in the prologue 2017-09-03 20:09:23 -04:00
Paul Gilbert
ba84efe497 TITANIC: Minor cleanup and warning fixes to star control 2017-09-02 11:20:17 -04:00
Paul Gilbert
2518de30a4 Merge pull request #1005 from dafioram/DVectorDAffineDestruction
TITANIC: DVectorDAffineDestruction
2017-09-02 11:12:55 -04:00
David Fioramonti
4e586ba43d TITANIC: Fix star3 locking overshoot, #9961
I fixed this previously for star2, I thought the
overshoot for star3 locking might have also been fixed
since I hadn't observed it in a while.

I applied the same workaround by setting the old position
to be the new position.
2017-09-02 07:41:26 -07:00
David Fioramonti
0d5d031564 TITANIC: Added/Removed comments for new functions in FVector and FPose 2017-09-02 06:41:07 -07:00
David Fioramonti
d6ca9eda93 TITANIC: Move Matrix4Inv out of starcamera and into FPose function 2017-09-02 06:41:07 -07:00
David Fioramonti
d55406b642 TITANIC: Remove DVector and DAffine files from build and folder 2017-09-02 06:41:07 -07:00
David Fioramonti
1160b88d06 TITANIC: Swap DAffine for FPose in Orientation and Transforms
More swapping of functions in the Orientation and Transform classes.
2017-09-02 06:40:41 -07:00
David Fioramonti
b842a43c40 TITANIC: Swap DAffine usage for FPose in setViewportAngle 2017-09-02 06:40:41 -07:00
David Fioramonti
910e221861 TITANIC: Replace DAffine with FPose in Transform and Orientation classes 2017-09-02 06:40:41 -07:00
David Fioramonti
fa11ae477f TITANIC: Duplicate DAffine usage in lockMarker2 with FPose usage 2017-09-02 06:40:41 -07:00
David Fioramonti
8ab7ececba TITANIC: Templatize matrix_inv
This allows DAffine and FPose to use a double version
and a float version of matrix4Inv.
2017-09-02 06:39:57 -07:00
Paul Gilbert
87ebc7140c Merge pull request #1004 from dafioram/fix10170
TITANIC: Don't allow unlocking stars while locking onto a star
2017-09-01 20:46:39 -04:00
David Fioramonti
f01115f450 TITANIC: Added DAffine functions that combines several vector operations 2017-09-01 15:42:51 -07:00
Eugene Sandulenko
7ac66c0fc1 JANITORIAL: Fix whitespaces 2017-09-01 13:46:25 +02:00
Eugene Sandulenko
0aa07efc2b COMPOSER: Added detection for German Baba Yaga from bug #10171 2017-09-01 13:45:58 +02:00
David Fioramonti
24c2e3ce4f TITANIC: Replace all external uses of DVector with FVector
Wherever DVector was used outside of DAffine and CMatrixTransform
I replaced with FVectors. So Internally those functions are still
using DVectors.

This required adding some new functions to FVector that duplicated
functionality in DVector.
2017-09-01 04:30:55 -07:00
David Fioramonti
0df15f0b0d TITANIC: Don't allow unlocking stars while locking onto a star
Fixes #10170.

I've added a boolean variable that tracks whether the game is
in the process of locking onto a star or not.

When the user hits the unlock button _isInLockingProcess gets checked and
the request to unlock is denied if the locking on is currently happening.

Once the locking on is finished then the release is lifted and the user
can unlock at this time (or after locking onto the next star).
2017-08-31 19:25:40 -07:00
Paul Gilbert
88782928ff TITANIC: Minor syntactic fixes for Star Control classes 2017-08-31 20:04:28 -04:00
David Fioramonti
4dbfc3595e TITANIC: Fix star lock2/lock3 overshoot, fixes #9961
The problem was that the camera when locking onto the 2nd star
was starting at a bad spot and then overshooting when it moved
to do the locking movements.

A solution I picked is just to start at the final spot.

I also removed the check that the distance the mover had to move
was too large since the bug is now avoided.
2017-08-31 04:10:07 -07:00
David Fioramonti
4c2ac405a5 TITANIC: Star Camera lockMarker2 refactor
Named many variables in the lockMarker2 functions.
2017-08-31 04:10:06 -07:00
David Fioramonti
9d5ee36019 TITANIC: Add 4x4 inverse to Daffine and use it
Very important for StarCamera:lockMarker2 is an inverse of the
difference between locked star1 and about to be star2.

Before it was calculating the col4 values by doing a
new col4 = -inv(R)*col4. col4 represents the x,y,z
position of the vector. This calculation is not correct
in the most general sense and is only valid for a single
rotation and translation.

For any more than one rotation and translation the upper left
3x3 inverse is still the transpose of the previous 3x3
portion there since that is just the rotation part, but the
translation part is now R2T1 + T2, which can't be undone by
simply multiplying by the inverse of R2. This gets more complicated
for lots of rotations so I've added a general 4x4 inverse
calculation and just pulled of the column 4 values.

The inverse implementation I used was from the mesa 3d library and
that has an MIT license so its okay to use in GPL.
2017-08-31 04:08:31 -07:00
David Fioramonti
f411da4902 TITANIC: Renamed a dvector func
More correct function naming then before.
2017-08-30 19:53:13 -07:00
David Fioramonti
f1e673c133 TITANIC: StarCamera separate function for calculating angle
This makes lockMarker2 more manageable.
2017-08-30 19:53:13 -07:00