Commit graph

4887 commits

Author SHA1 Message Date
Marcin Kurczewski
e88764f280
tr1: release 4.9
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
2025-03-31 14:12:05 +02:00
Marcin Kurczewski
a52d1efc81
docs/tr1: release 4.9
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
2025-03-31 14:11:39 +02:00
Marcin Kurczewski
41155eed25
tr1: release 4.9 2025-03-31 14:10:31 +02:00
Marcin Kurczewski
85235ce6a3
docs/tr1: release 4.9 2025-03-31 14:10:17 +02:00
Marcin Kurczewski
3f76e74ed5 build: merge Docker images 2025-03-31 14:09:23 +02:00
Marcin Kurczewski
e048bad1b6 build: split justfile into smaller files; add groups 2025-03-31 14:09:23 +02:00
Marcin Kurczewski
12661fe6e6
docs: fix wording 2025-03-31 12:44:25 +02:00
Marcin Kurczewski
3e2206906e build: add TR2 installer automatic builds
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
2025-03-30 12:34:54 +01:00
lahm86
e2bcd1aeb7 docs: update docs 2025-03-30 12:34:54 +01:00
lahm86
0618baebc9 tools/installer: create TR2 installer
This creates a TR2 installer in similar fashion to TR1. The installers
themselves are basically directory tree copiers, rather than having to
extract from BIN/ISO like TR1.
2025-03-30 12:34:54 +01:00
lahm86
b670eaa16a tr2/data: create images directory
This updates the game flows to look in a dedicated images directory in
order to tidy up the main data folder. Default images provided as PNG
to avoid users having to copy manually.
2025-03-30 12:34:54 +01:00
lahm86
5fb3f84fed tools/installer: standardize output paths
This standardizes output paths to conform with shipped TRX data.
Folders and files created within the target folder will be in
lower-case; PCX files will be copied to a sub-directory within images
as TRX ships with custom images, and this as a result keeps the data
folder tidy.
2025-03-30 12:34:54 +01:00
lahm86
24fb920cd1 tools/installer: rename solution 2025-03-30 12:34:54 +01:00
lahm86
417e7486c8 tools/installer: decouple shortcut and expansion logic
This decouples the shortcut creation so it can be used generically in
either game. It also allows for the expansion pack zip names to be
defined externally rather than guessing from the selected type.
2025-03-30 12:34:54 +01:00
lahm86
cf8fc3d6bf tools/installer: migrate TR1X installer
This migrates the TR1X installer to use the new common library.
2025-03-30 12:34:54 +01:00
lahm86
6142621274 tools/installer: hide expansion options unless enabled 2025-03-30 12:34:54 +01:00
lahm86
365cff79c1 tools/installer: move language to external file
This moves all language used in the installer to an embedded JSON file
to allow for customisation per game.
2025-03-30 12:34:54 +01:00
lahm86
e16fcda94b tools/installer: create common installer library
This creates a generic common installer WPF library for both games.
2025-03-30 12:34:54 +01:00
walkawayy
2adaf2ac0f
controls: fix console opening when remapping its key (#2683)
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
Resolves #2641.
2025-03-26 09:30:47 -04:00
lahm86
0939b6b384 tr2/inventory: handle GF weapon removal and addition
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 responds to scenarios when the game flow removes all weapons but
also re-adds pistols, such that Lara's meshes can be drawn correctly.

Resolves #2677.
2025-03-24 14:46:21 +00: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
ae5a7fe208 objects/wolf: create Golden Mask wolf alias
This allows for the small spider in the Golden Mask to be used as an
alias for the wolf.
2025-03-24 14:46:21 +00:00
lahm86
5bc307b14f objects/bear: create Golden Mask bear alias
This allows for the big spider in the Golden Mask to be used as an
alias for the bear.
2025-03-24 14:46:21 +00:00
lahm86
0aaa6a6779 tr2/objects/monk: create Golden Mask monk alias
This allows the Golden Mask mod to refer to an alias of Monk1 as Monk3,
which in turn allows for the object's shadow to be removed.
2025-03-24 14:46:21 +00:00
lahm86
faa6819832 objects/wolf: move wolf to TRX
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 moves the wolf module fully to TRX.
2025-03-23 13:27:58 +00:00
lahm86
1fafa4483c objects/bear: move bear to TRX
This moves the bear module fully to TRX.
2025-03-23 13:27:58 +00:00
lahm86
3562a23716 lara: move damage function to TRX
This moves Lara_TakeDamage fully to TRX.
2025-03-23 13:27:58 +00:00
lahm86
9e3729702a spawn: move initial spawn declaration to TRX
This moves the declaration of Spawn_Blood to TRX.
2025-03-23 13:27:58 +00:00
lahm86
b6bb8459e8 creature: move creature declarations to TRX
This moves common creature function declarations, types, enums and
consts to TRX, along with TR2's Creature_Activate approach, although
currently only used in TR2. A follow-up task will be to update each
TR1 creature control similarly.
2025-03-23 13:27:58 +00:00
lahm86
58e8def9e5 lot: move initial LOT declaration to TRX
This moves the declaration of LOT_EnableBaddieAI to TRX.
2025-03-23 13:27:58 +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
46892814fb tr2/level: pre-load default statistics
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 for statistics to be gathered en masse during game launch,
such that legacy saves can still be utilised and refer to accurate
total statistics, such as secrets.
2025-03-22 21:35:06 +00:00
Marcin Kurczewski
5d3d677a00 tr1/output: optimize dynamic sprites 2025-03-22 19:58:24 +01:00
Marcin Kurczewski
edf4b2d5a6 vector: fix const correctness 2025-03-22 19:58:24 +01:00
Marcin Kurczewski
0d7fb0ebef gl: add debug messages in debug builds 2025-03-22 19:58:24 +01: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
9191c91407 stats: introduce TRX stats header
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 moves the item load observer header to TRX, to allow it to be
called commonly from the main level reader.
2025-03-21 18:16:38 +00:00
lahm86
e45f331ec5 tr2/game_flow: remove secret count from game flow
This removes the need the control around setting secret counts in the
game flow, which is now redundant.
2025-03-21 18:16:38 +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
walkawayy
e7809774f4 stats: fix the distance travelled display when over 1000m
Resolves #2659.
2025-03-21 11:43:22 -04:00
walkawayy
66d1b59330 tr1/stats: change the detailed stats option to three modes
Resolves #2658.
The three stat options include:
minimal: kills, pickups, secrets, time
detailed: minimal and max pickup and max kill count
full: detailed and ammo hits/used, health packs used, distance
2025-03-21 11:43:22 -04:00
walkawayy
9424083dd8 tr1/stats: move Deaths stat to last in non-detailed stats mode 2025-03-21 11:43:22 -04:00
walkawayy
e3b4a14ac1 tr1/savegame: use simpler method to get savegame header version 2025-03-21 11:43:22 -04:00
walkawayy
0c6ee1b4c5 tr1/stats: introduce stat incrementing functions 2025-03-21 11:43:22 -04:00
walkawayy
2ef5723457 tr1/stats: add extra stats from TR2
Resolves #2651.
Added stats are ammo hits/used, health packs used, and distance
travelled.
2025-03-21 11:43:22 -04:00
lahm86
6583b6f111 tr1/savegame_bson: handle Lara animation shift
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
Prior to 4.8, Lara's legacy animation set could still be referenced
from old savegames, but the case now is that only applicable animations
are setup during level load. This shifts Lara's animation index to
match her object if detected on load; a similar approach is already in
place for TombATI saves.

Resolves #2654.
2025-03-21 11:33:18 +00:00
Marcin Kurczewski
1fecbf8c2f tr1/output: color underwater sprites
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
Resolves #2093.
2025-03-20 22:43:23 +01:00
Marcin Kurczewski
0c4f92a61f tr1/output: simplify frame drawing functions 2025-03-20 18:16:19 +01:00
Marcin Kurczewski
39a4279a2e tr1/output: render room sprites using new approach 2025-03-20 18:16:02 +01:00
Marcin Kurczewski
2f7a1aa46d gfx/gl: extract common shader code
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
2025-03-20 14:20:02 +01:00