Commit graph

5169 commits

Author SHA1 Message Date
lahm86
8de5ab20dd game: move game mode flag to game module
This makes the bonus flag common between both games, now accessible in
the game module. This paves the way for TR2 to offer alternate game
modes in the future (beyond current scope).
2025-04-06 20:56:25 +01:00
lahm86
f6d1cfe475 tr2/savegame: refactor savegame logic
This is a general refactor of the savegame logic, primarily to bring it
closer to TR1 in preparation for introducing strategies.
2025-04-06 20:56:25 +01:00
lahm86
5b932b38bb tr2/savegame: move resume info to module storage
This moves the resume info array into the common savegame module.
2025-04-06 20:56:25 +01:00
lahm86
e4545e0d73 tr2/savegame: hide legacy functions
This updates callers to use the Savgame_Save and Savegame_Load
functions in order to hide the current legacy approach. TR1 also had
duplicated function declarations, so these are removed.
2025-04-06 20:56:25 +01:00
lahm86
efdd14aa8d tr2/misc: eliminate current stats
This removes current_stats in favour of using the current info for
levels.
2025-04-06 20:56:25 +01:00
lahm86
fc4a22f79a tr2/types: rename START_INFO to RESUME_INFO
This renames the START_INFO struct to RESUME_INFO, along with the
relevant variables that use it.
2025-04-06 20:56:25 +01:00
lahm86
0c8a9ecb95 input: ignore ALT-F4 on Windows
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
Either Alt key can be used with F4 to close windows, so this ensures
both cases are accounted for to ensure no action is taken on the F4
input role.

Resolves #2690.
2025-04-05 19:34:18 +01:00
lahm86
a627ff2beb tr1/savegame: set save game info on save
This allows strategies to set any values in savegame info during saving
that would normally be set during initial fill_info reads. This
resolves the restart level option not being available until the saves
are re-scanned.
2025-04-05 19:33:57 +01:00
lahm86
9e0e36c3c7 tr1/option_passport: fix restart level escape check
This ensures the menu back input is respected when using save crystals
and there are no saves present.
2025-04-05 19:33:57 +01:00
lahm86
1717158094 objects: assign default sprite lighting if not set
This restores default shading on sprites that have values below zero
(i.e. TombEditor default) in the level file.

Resolves #2701.
2025-04-05 17:26:02 +01:00
Marcin Kurczewski
d1986f82d7
tr1/docs: update changelog
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-04-05 13:13:16 +02:00
Marcin Kurczewski
d647539581 tr1/output: move good functions to its own module
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-04-04 23:11:09 +02:00
Marcin Kurczewski
8a6a852af3 tr1/output: disable object clipping
Tackles #2005 for TR1.
2025-04-04 23:11:09 +02:00
Marcin Kurczewski
431436eea1 tr1/output: fix fog being applied twice to objects 2025-04-04 23:11:09 +02:00
Marcin Kurczewski
b90707805b tr1/output: minor cleanups 2025-04-04 23:11:09 +02:00
Marcin Kurczewski
02c265683b tr1/inventory: remove sprite objects
They never seem to be used in either OG or the custom levels.
2025-04-04 20:36:54 +02:00
Marcin Kurczewski
30c5d02344 tr1/output: draw trigger debug info using the new approach 2025-04-04 20:36:54 +02:00
Marcin Kurczewski
c874ec0669 tr1/output: draw portal debug info using the new approach 2025-04-04 20:36:54 +02:00
Marcin Kurczewski
530f7f7931 tr1/output: improve file hierarchy 2025-04-04 20:36:54 +02:00
Marcin Kurczewski
a02a8e1229 tr1/output: draw spheres using the new approach 2025-04-04 20:36:54 +02:00
Marcin Kurczewski
519783fafb tr1/output: draw shadows using the new approach 2025-04-04 20:36:54 +02:00
Marcin Kurczewski
effabcfb9c
docs/tr1: update changelog 2025-04-04 17:11:18 +02:00
Marcin Kurczewski
767df0999d tr1/output: merge s_output.c to output.c 2025-04-04 17:10:15 +02:00
Marcin Kurczewski
b797d9f75f tr1/output/objects: rewrite object mesh drawing
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-04-04 12:29:34 +02:00
Marcin Kurczewski
a6c154d89a tr1/output: fix the scissor test 2025-04-04 12:29:34 +02:00
Marcin Kurczewski
273a63bafe tr1/output: rewrite room drawing 2025-04-04 09:49:15 +02:00
Marcin Kurczewski
01e18f2cf0
gfx/context: fix Mac 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-04-04 00:04:35 +02:00
lahm86
de1a63fc74 tools: clean-up config tool build messages
This fixes VS messages regarding namespaces, removes some redundant
usings and SDK parameters, and adds XAML design data contexts.
2025-04-03 17:09:56 +01:00
lahm86
494c2724fc tools: merge config tool projects
This merges the three config tool projects into a single VS solution.
2025-04-03 17:09:56 +01:00
Marcin Kurczewski
6e27f24264 tr1/output/sprites: do not interpolate texture layer
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-04-01 23:48:39 +02:00
Marcin Kurczewski
c0ff49461c tr1/output/sprites: fix small mistakes 2025-04-01 23:48:39 +02:00
Marcin Kurczewski
88870ef539 tr1/output/sprites: simplify projection matrix 2025-04-01 23:48:39 +02:00
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