Commit graph

114 commits

Author SHA1 Message Date
lahm86
cdfb5942c1 tr2/data: fix Living Quarters flame deactivation
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / TR2 (Linux) (push) Waiting to run
Publish a pre-release / TR2 (Windows) (push) Waiting to run
Publish a pre-release / TR2 (Mac) (push) Waiting to run
Publish a pre-release / Create a prerelease (push) Blocked by required conditions
Publish a pre-release / TR1 (Linux) (push) Waiting to run
Publish a pre-release / TR1 (Windows) (push) Waiting to run
Publish a pre-release / TR1 (Mac) (push) Waiting to run
Resolves #2851.
2025-04-27 15:03:53 +01:00
lahm86
83ac9514cb tr2/objects/door: prevent Lara voiding in closed doors
This uses the same approach as TR1 to avoid Lara voiding in closing/
closed doors that are not placed on portals.

Resovles #2848.
2025-04-26 12:39:42 +01:00
lahm86
15b758c57d items: replace items by index rather than room
Carried items use NO_ROOM so were not included when replacing guns
with ammo. This ensures everything is checked when replacing IDs.

Resolves #2850.
Resolves #2856.
2025-04-26 11:34:52 +01:00
Marcin Kurczewski
953f30205e build: offload binary assets to TRX-data 2025-04-22 12:37:43 +02:00
Marcin Kurczewski
fbc26fcba6 docs: update logos
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Waiting to run
Publish a pre-release / Build TR2 (push) Waiting to run
Publish a pre-release / Create a prerelease (push) Blocked by required conditions
2025-04-21 18:38:40 +02:00
lahm86
cd67279fc7 tr2/objects/gondola: save gondola position
This updates gondola objects to have their positions saved in order to
be able to restore them correctly on load when they've been destroyed.
Legacy saves will ignore this.

Resolves #1612.
2025-04-20 20:44:37 +01:00
Marcin Kurczewski
6e48174a92 config: fix assault course times reset on quit
Resolves #1578.
2025-04-20 21:25:45 +02:00
lahm86
0c0ce5bcf6 tr2/objects/boat: fix initial water height test
This fixes the boat's initial water height test when Lara is climbing
on to avoid tinting it unnecessarily.

Resolves #2787.
2025-04-20 19:41:03 +01:00
lahm86
e7fb4616e8 docs: update docs for hotkeys fix
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
Re #2797, which was fixed in 0.6.
2025-04-20 15:06:28 +01:00
lahm86
fa5a4f118b objects/movable_block: fix angle resetting and snapping
This restores pushblock angles after performing collision tests, and
also snaps them to the grid on initialisation if a builder places them
at non 90 degree angles to avoid instead snapping during collision.

Resolves #2776.
2025-04-19 19:03:30 +01:00
lahm86
ec2a0452ff tr2/savegame: save and load current music
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This allows the current music track and position to be saved and
restored on load, similar to TR1X.

Resolves #2579.
2025-04-17 19:34:35 +01:00
lahm86
0e24b65ae6 tr2/objects/waterfall: save waterfall flags
This updates waterfall objects to have their flags saved in order to be
able to restore them correctly on load.  Legacy saves will ignore this.

Resolves #2686.
2025-04-17 17:22:14 +01:00
lahm86
10f1bc6fbd tr2/data: fix invalid portals in The Deck
This disables the visibility portal from room 17 to room 104 (and vice
versa) in The Deck to avoid Lara seeing or targeting enemies in the
disconnected rooms.

Resolves #2393.
2025-04-17 17:21:24 +01:00
lahm86
45b64cbb97 tr2/objects/springboard: handle skidoo interaction
This updates the springboard to deal with the scenario when Lara
crosses one on a skidoo. The skidoo will now be thrown into the air
(along with Lara) rather than Lara falling indefinitely.

Resolves #1903.
2025-04-17 13:57:14 +01:00
lahm86
e424ad8a11 tr2/objects/bird_guardian: restore bird guardian shadow
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This restores the bird guardian's shadow if texture fixes are enabled.

Resolves #2060.
2025-04-17 12:09:33 +01:00
lahm86
94b78af2fb tr2/data: fix default mesh on Bartoli in cutscene 4
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This injects a fix to hide the default mesh that appears on Bartoli in
the Temple of Xian cutsene.

Resolves #2558.
2025-04-16 22:19:39 +01:00
lahm86
772308b359 tr2/data: fix boat explosion showing default mesh
This injects an object to represent the boat exploding when it crosses
mines, and safeguards the code to ensure the object is present to avoid
showing the default mesh.

Resolves #1605.
2025-04-16 22:19:39 +01:00
lahm86
a277f91654 tr2/objects/lift: adjust directional tests
Some checks failed
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
Run code linters / Run code linters (push) Has been cancelled
This fixes the lift so that it can be used facing any cardinal
direction in custom levels, and not just South.

Resolves #2100.
2025-04-15 06:42:53 +01:00
lahm86
71b1ce78d2 tr2/data: fix various softlocks
This fixes softlocks in Temple of Xian, Floating Islands and Vegas.

Resolves #2042.
Resolves #2590.
Resolves #1851.
2025-04-14 18:09:27 +01:00
lahm86
ecab0d92e6 object: move bridge, drawbridge and trapdoor to TRX
This moves the three bridges, drawbridge and trapdoor implementations
to TRX, and makes the config option to fix collision issues available
in TR2.

Resolves #2752.
Resolves #2294.
2025-04-13 13:21:06 +01:00
lahm86
d57b2b9234 effects: raise TR2 effects limit
This raises the TR2 effects limits from 100 to 1000, like TR1. The
constant has been renamed for TR1 as well for consistency.

Resolves #1581.
2025-04-12 16:42:06 +01:00
lahm86
28fc94a89f pathing: raise TR2 creature slot limit
This brings TR2 into line with TR1 in terms of the maximum number of
enemies at a time.

Resolves #1624.
2025-04-12 16:42:06 +01:00
lahm86
941d525d37 items: raise TR2 item limit
This brings TR2 into line with TR1 in terms of the maximum number of
items per level. Because of how floor data is compiled, the maximum for
referencing items in triggers is 1024.

Resolves #1794.
2025-04-12 16:42:06 +01:00
lahm86
c69fe9c891 objects: raise static mesh slot capacity
This raises the static mesh slot capacity from 50 to 256. 2D statics
remain fixed at 50 for the time being.

Resolves #2734.
2025-04-12 12:36:49 +01:00
lahm86
adf2703305 tr2/objects/bird_guardian: remove hard-coded end level behaviour
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This removes the hard-coded end level behaviour of the bird guardian in
TR2. For OG, an injection is provided to add a command to the death
animation to yield the same result; custom levels can modify the object
accordingly externally.

Resolves #1583.
2025-04-12 08:41:07 +01:00
lahm86
36ab43f0b3 tr2/option_passport: add new game options
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This adds NG+, Japanese, and Japanese NG+ options (as well as regular
NG) to the new game page in the passport.

Resolves #2731.
2025-04-11 21:30:11 +01:00
Marcin Kurczewski
98acd91c5a tr2/options: add graphic options dialog
Resolves #1615.
2025-04-11 08:25:16 +02:00
Marcin Kurczewski
0f5e54d714 tr2/output: make fog distances customizable
Resolves #1622.
2025-04-11 08:25:16 +02:00
lahm86
0d80ca8f8f tr2/savegame: implement BSON saves
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This implements BSON save games, similar to TR1, and opts for it to be
used in place of legacy for writing. Saves will also be stored in a
separate saves directory.
2025-04-06 20:56:25 +01:00
lahm86
e2bcd1aeb7 docs: update docs 2025-03-30 12:34:54 +01:00
lahm86
f396ef4514 tr2: add support for The Golden Mask
This implements support for the Golden Mask by providing relevant game
flow files, command line handling, and object alias setup on launch.

Resolves #1554.
Resolves #1604.
Resolves #1621.
Resolves #2667.
2025-03-24 14:46:21 +00:00
lahm86
5727910c6e tr2/stats: allow two of each secret type
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This allows custom levels to define up to two of each secret type per
level, and continue to have statistics accurately captured.

Resolves #2674.
2025-03-23 08:07:26 +00:00
lahm86
3d47493af6 tr2/game_flow: implement bonus level support
This implements bonus level handling the game flow for TR2, similar to
TR1.

Resolves #2668.
2025-03-22 17:25:22 +00:00
lahm86
fc4064582d tr2/stats: determine secret count automatically
This fixes the hardcoded check to skip secret counts in statistics for
the final two levels and allows to do away with the game flow's secret
count mechanic, by counting the number of secret pickups in the level
and storing in the stats.

Resolves #1582.
2025-03-21 18:16:38 +00:00
Marcin Kurczewski
28479fe0ce shell: add -s/--save argument support 2025-03-15 22:04:13 +01:00
lahm86
5eef83b912 tr2/data: fix pickup mesh scaling and rotations
This fixes scaling on various pickup model meshes, and in the case of
the Barkhang prayer wheel, restores base animation data. It also fixes
default rotations on some models so they appear correctly in the
inventory.

Resolves #1831.
Resolves #1832.
Part of #1894.
2025-03-15 16:29:38 +00:00
lahm86
969039bac5 tr2/data: fix seaweed collision in Living Quarters
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This fixes the seaweed collision in Living Quarters, which can prevent
Lara from climbing out of the water in certain places.

Resolves #2197.
2025-03-14 22:01:33 +00:00
lahm86
dfbec724eb tr2/data: fix missing enemy SFX
This restores SFX details for the gunman and stick goon in the
underwater levels.

Resolves #2293.
2025-03-14 09:53:31 +00:00
lahm86
0245db179d tr2/game_flow: specify SFX file in game flow
Some checks are pending
Run code linters / Run code linters (push) Waiting to run
Publish a pre-release / Build TR1 (push) Has been skipped
Publish a pre-release / Build TR2 (push) Has been skipped
Publish a pre-release / Create a prerelease (push) Has been skipped
This removes the hardcoded reference to main.sfx, and allows it to be
defined globally in the game flow, and per level.

Resolves #2615.
2025-03-13 20:44:34 +00:00
Marcin Kurczewski
888ffaee07 tr2: add quadrilateral interpolation 2025-03-12 22:43:20 +01:00
Marcin Kurczewski
0e85a3d155 tr2: add accented fonts
Resolves #2356.
2025-03-11 21:10:32 +01:00
Marcin Kurczewski
8a0c695b02 tr2: add 60 fps 2025-03-09 17:03:01 +01:00
lahm86
1a8d956f55 tr2/movable_block: fix falling pushblock SFX
This makes falling pushblocks use the correct SFX when they land.

Resolves #2193.
2025-03-08 21:32:22 +00:00
lahm86
34ff171fa3 tr2/movable_block: fix pushblock stacking issues
This resolves issues with being unable to stack pushblocks across
multiple rooms.
2025-03-08 21:32:22 +00:00
lahm86
e89d6932bf tr2/movable_block: fix falling pushblock height issues
This resolves falling pushblocks causing various floor height issues
depending on where they are placed above the floor.
2025-03-08 21:32:22 +00:00
lahm86
8621b05dd8 tr2/room: fix floor height alteration creating walls
This fixes altering the floor height to a wall in the case where
pushblocks have been stacked and the one on top is touching the
ceiling.
2025-03-08 21:32:22 +00:00
lahm86
206b4d5cb5 tr2/lara/misc: fix landing damage check
This brings TR2 into line with TR1 when Lara has landed bad, so that
later checks can make decisions on the goal anim state more accurately.

Resolves #2575.
2025-03-06 13:14:31 +00:00
lahm86
798dc168f0 camera: fix unchecked NO_HEIGHT usage
This resolves an OG bug whereby the camera shift could result in
extremely large values when NO_HEIGHT is involved, hence resulting in
the camera going out of bounds for a frame or so. We now check for this
case and use the previous valid Y position of the camera.

Resolves #1034.
2025-02-28 22:13:03 +00:00
lahm86
a187d535a7 tr2/objects/window: unblock box on savegame load
This ensures that the box where a window sits is unblocked if the
window has already been smashed and the game is loaded from a save.

Resolves #2535.
2025-02-20 17:11:02 +00:00
lahm86
efe124c60e level: allow empty SFX data while reading
This allows reading levels that contain no SFX data.

Resolves #2460.
2025-02-08 18:24:05 +00:00