Skip to content
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

TR3 Mirroring #297

Merged
merged 4 commits into from
Dec 21, 2021
Merged

TR3 Mirroring #297

merged 4 commits into from
Dec 21, 2021

Conversation

lahm86
Copy link
Collaborator

@lahm86 lahm86 commented Dec 20, 2021

#241 Mirroring Implementation

FDControl updates for mirroring:

  • Renamed FDFunctions.FloorTriangulationNESW_SW to FDFunctions.FloorTriangulationNESW_SE as this appears to be a typo in TRosettaStone (SE indicates right-angle of triangle portal).
  • Added ability to set Function, H1 and H2 values in FDSetup.
  • Added ability to set corner values of FDTriangulationData.

Main mirroring details:

  • Main level mirroring implemented for TR3, including the minor environment changes needed for awkward doors and suchlike in each level. Note that Thames has two environment JSON files, with the extra one targeted at the Japanese version because of entity differences.
  • Function added to mirror a model, but this is only possible for ones that have only one mesh and no animations (Slot2 in Antarctica for example).
  • Move slot function implemented for TR3.
  • Mirroring option made available in UI (no other environment options yet - these are temporarily hidden by checking if the reward room type is available to target TR3 only).

#295 Mirrored Secret Filtering

Closes #295. Added a LevelState property to Location to allow secrets to be tied to mirrored or non-mirrored levels. The default is Any, which means that a location is universal. If mirroring is selected, the list of levels will be allocated prior to the secrets being placed so that the secret randomizer knows which locations it can use. The mirroring itself still takes place later, so this also means that mirrored-only secrets must be defined in normal world space.

Added a randomizer.json trview settings file to the shared resources for convenience so this can be edited alongside Location as necessary. This won't be included in the build.

#296 Caustics/Waves

Closes #296. Adds checks in TR3Room to only modify caustics/waves if the vertex doesn't already have these set, so that normal water and swamp rooms retain the effects as standard.

FDControl updates for mirroring:
- Renamed FDFunctions.FloorTriangulationNESW_SW to FDFunctions.FloorTriangulationNESW_SE as this appears to be a typo in TRosettaStone (SE indicates right-angle of triangle portal).
- Added ability to set Function, H1 and H2 values in FDSetup.
- Added ability to set corner values of FDTriangulationData.
- Main level mirroring implemented for TR3, including the minor environment changes needed for awkward doors and suchlike in each level.
- Function added to mirror a model, but this is only possible for ones that have only one mesh and no animations (Slot2 in Antarctica for example).
- Move slot function implemented for TR3.
- Mirroring option made available in UI (no other environment options yet).
Adds a LevelState property to Location to allow secrets to be tied to mirrored or non-mirrored levels. The default is Any meaning they are universal. If mirroring is selected, the list of levels will be allocated prior to the secrets being placed so that the secret randomizer knows which locations it can use (the mirroring itself still takes place later, so this also means that mirrored-only secrets must be defined in normal world space).

Added a randomizer.json trview settings file to the shared resources for convenience. This won't be included in the build.
Original water and swamp rooms will retain caustic and wave effects regardless of the global options for these.
@DanzaG DanzaG merged commit 49ac43e into LostArtefacts:master Dec 21, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

TR3 - Lost Caustics/Waves in water and swamp rooms TR3 - Add LevelState property to locations
2 participants