Commit Graph
86814 Commits
Author SHA1 Message Date
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
Colin Snover d2b4e16ab2 SDL: Fix unsafe sprintf usage
Translation strings come from external data sources and can cause
a stack buffer overflow here just by accidentally (or maliciously)
being too long.
2017-09-03 20:00:23 -05:00
Paul Gilbert a2b05b5c63 TITANIC: Fix Doorbot doubletake in the prologue 2017-09-03 20:09:23 -04:00
Paul Gilbert e72a1d7c46 VIDEO: Simplify AVIDecoder reverse playback special handling 2017-09-03 19:52:48 -04:00
Paul Gilbert 22e24d7c0b VIDEO: Fix reverse playback in AVIDecoder 2017-09-03 17:29:09 -04:00
Cameron Cawley aba431ca9b RISCOS: Use double quotes in sed command 2017-09-03 10:40:07 +02:00
Cameron Cawley 0d1df59be1 RISCOS: Automatically calculate the correct WimpSlot size 2017-09-03 10:40:07 +02:00
Cameron Cawley faf9fde50f RISCOS: Use armv3m as the target architecture instead of armv4 2017-09-03 10:40:07 +02:00
Cameron Cawley b9694a01db RISCOS: Use shorter filenames for config and log files 2017-09-03 10:40:07 +02:00
Cameron Cawley f55fa848b6 RISCOS: Check for GCCSDK_INSTALL_ENV 2017-09-03 10:40:07 +02:00
Cameron Cawley 0e7d9414a6 RISCOS: Correctly set executable extension 2017-09-03 10:40:07 +02:00
Cameron Cawley 7a00045df0 RISCOS: Add networking files to application 2017-09-03 10:40:07 +02:00
cameron a11985c46d RISCOS: Add RISC OS support 2017-09-03 10:40:07 +02: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
Bastien Bouclet a46d126e73 CREDITS: Add Titanic 2017-09-02 16:38:31 +02:00
Paul Gilbert 471ff91776 CREDITS: Add section for Titanic engine 2017-09-02 10:31:40 -04: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
Paul Gilbert bdabf32bea Merge pull request #1003 from dafioram/fix9961
TITANIC:  Star_Control cleanup and Fix bug #9961
2017-08-31 19:59:33 -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
David Fioramonti 6a43e8d958 TITANIC: StarCamera work 2017-08-30 19:53:13 -07:00
David Fioramonti b64a5bc3d2 TITANIC: AutoMover and related refactoring 2017-08-30 19:53:13 -07:00
David Fioramonti 8f479522c4 TITANIC: CCameraMover and related classes Refactor
1. Removed updatePosition function defintions since
UnmarkedCameraMover and MarkedCameraMover, derived classes,
are overriddening it. I.e., CCameraMover::updatePosition doesn't
get used.

This also allowed some header files to removed.

2. Renaming of some functions.
2017-08-30 19:53:13 -07:00
Paul Gilbert d1325e2d12 TITANIC: Formatting fixes for viewport refactoring 2017-08-30 20:05:47 -04:00