-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Unfinished Business #580
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
891d619
to
7c108c8
Compare
The level sequencing option has been reworked to take game mode into account, so all options are now in a dialog box. Game mode only applies to TR1 for now; the concept is there in TRGE for TR/3 though. TRUB level file hashes added, these are the ones that ship with TR1X. Fixed gamestring checks always expecting Cistern and Mines to be present. Altered rando logo overlay for title screen.
TRUB has packed floor data, so our current method was failing as it always expected each sector to point to a unique entry. I've streamlined the class overall, removing lots of duplication, and updated the tests to run against every level. We can't test byte-for-byte in TRUB, so we ensure that each sector continues to point to a valid entry. There was also one snag with Antarctica in TR3 which has a single unused triangulation entry, so there is a workaround in the test to get by this. GIGO.
7c108c8
to
b16a9a8
Compare
There have been a few bugs identified and fixed after testing, so I think this is good for review now. |
rr-
approved these changes
Dec 5, 2023
Added texture fixes, lever/keyhole changes, water changes, trap rando and puzzle/challenge rooms. Made several more trap models available for import, including the Midas touch which needed some extra adjustments in model transport to allow correct import via environment mods. Updated room creation to allow omitting textures (for boulder trigger rooms mainly). Improvements added to the underwater maze puzzle at the end of Natla's Mines - better lighting, some texture hints, and a slightly more lenient timed swim. Improved lighting in other rooms as well. Improved the lighting in the Folly return path.
A tweak to enemy randomization to ensure we don't write back floor data too early while we're still scanning over it. Texture dependencies calculated for model import. Some room restrictions defined for Adam in default mode. Locations defined for eggs. Adjusted the enemy key drop option to allow keys to be shifted if the player wants to play pacifist. For TR1, Pierre's items in Tihocan are adjusted to add them to the level for trview lookup.
Locations defined for tweaking Lara's starting position. Added more to the OG levels too.
Added some English placeholders for now until translations are implemented.
The next version of TR1X will fix a bug where pushblocks could be moved onto slopes. We used this for two glitched secrets, so these have been swapped out with alternatives.
Updated outfit randomization to allow the gym outfit to appear in all levels, unless a T-Rex is present.
Routes and invalid item locations defined for TRUB. Key item IDs defined and adjustments made to always calculate the correct base for level sequencing regardless of game mode. Updated location generation to skip over triggers for Thor's hammer - we just assume the trigger is below the hammer head for ease. Fixed a couple of routing issues in Folly too.
Full texture rando support added. Some tweaks needed to wireframing to avoid too many lava textures on walls in the end levels. Not as noticeable in the original levels, but I've updated those too. Also fixed Bacon Lara not remaining solid when the option is picked for solid enemies.
Reward rooms created and reward items earmarked. Locations marked for each TRUB level. Added a method of pinpointing entity indices from environment mods, which we use to adjust some secrets after they have been placed.
Added some minimums and potentially some bonus secret rewards to be fairer to players. The Hive for example has one reward item by default, but could potentially have 5 secrets to collect.
b16a9a8
to
6221a9c
Compare
Pierre dies immediately underwater, so predefined alternative locations have been marked for him. An extra check is also done in Temple of the Cat to avoid setting one-shot on a timed switch trigger, as it can lead to softlock. This is the only instance of this.
Mimics the FD injections in TR1X to avoid looping tracks (especially noticeable with short speech tracks).
Added functionality to create custom textures, and to lock those textures to avoid wireframing replacing them. This is used in a puzzle room in The Hive where texture hints are needed. This also uses a mechanism to lock audio tracks, as again this room uses audio hints so we want to guarantee specific tracks. More boulders added to Stronghold.
6221a9c
to
6d4b580
Compare
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #579.
Checklist
Description
This is largely a data PR for the TRUB levels, but there have been a few key changes in the code to support this, and to add further enhancements.
FDControl
has undergone a refactor because the TRUB level files seem to have been compiled with aggressive floor data packing, and our library wasn't configured to handle this. I've also removed a lot of the duplication in this class so it's easier to manage.LaraMiscAnim
model is also imported, regardless of whether or not a different alias is already in the level.All that should remain for full TRUB support is text translation - the current entries are effectively placeholders, so whichever language is chosen, the randomizer will fall back to these English defaults for the time being.