Skip to content

TR3 Mirroring#297

Merged
DanzaG merged 4 commits intoLostArtefacts:masterfrom
lahm86:master
Dec 21, 2021
Merged

TR3 Mirroring#297
DanzaG merged 4 commits intoLostArtefacts:masterfrom
lahm86:master

Conversation

@lahm86
Copy link
Copy Markdown
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