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
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 )
...
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
...
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
...
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
...
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
...
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
...
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
...
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
...
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
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
Marcin Kurczewski
57c7146f32
gfx/gl: remove opengl 2.1 support
...
According to GitHub comments, it was not working anyway.
2025-03-20 14:20:02 +01:00
Marcin Kurczewski
1ce8e57dd6
gfx/gl: improve metrics
2025-03-20 14:20:02 +01:00
Marcin Kurczewski
87503ba133
benchmark: fix one-liner benchmark messages
...
Ending a benchmark without ticking in-between with a non-NULL message
would print the time twice.
2025-03-20 14:20:02 +01:00
Marcin Kurczewski
100b49c15f
strings: fix NULL
2025-03-20 14:20:02 +01:00