diff --git a/CHANGELOG.md b/CHANGELOG.md
index db5e76e67..e7c40c171 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,6 @@
## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.4...master) - xxxx-xx-xx
- added support for TR1X V4 (#626)
+- added support for TR I-III Remastered (#614)
- added Lara's assault course outfit in TR2 for outfit randomization (#672)
- added gun holsters to Lara's robe outfit in TR2 (#672)
- added an option to stack rewards with secrets in TR1 and TR3, rather than using reward rooms (#687)
diff --git a/README.md b/README.md
index 63dcd688e..1b6d38331 100644
--- a/README.md
+++ b/README.md
@@ -5,16 +5,10 @@
TR Rando is a randomizer tool for the classic Tomb Raider series (TR 1-3 and Unfinished Business). It allows you to change many aspects of the
original levels, such as item pickups, secrets, enemies, Lara's appearance, level order, text...[and so much more](#features).
-> ## Tomb Raider Remasters
-> Currently, the randomizer *does not work* with the remasters as there are several differences with how the new games function compared to the originals. This includes some new file formats that as yet remain unexplored, along with the unknown factor of how randomization will affect built-in game features, such as achievements.
+> ## Tomb Raider I-III Remastered
+> The current release of the randomizer *does not work* with the remasters. Testing is currently underway on supporting these games; for the time being, support remains only for the _original_ games as detailed in [USING.md](USING.md).
>
-> We do not want to exert development effort at this stage while the new games are fresh, to allow for patches to settle in - these patches may change fundamental game assets/logic/features etc, so it makes sense to wait. The task thereafter to see what is and what is not going to be possible is a large one; then working out the best way to continue to support the original games will need careful consideration.
->
-> For the foreseeable future, support will remain with randomizing the _original_ games only as detailed in [USING.md](USING.md).
->
-> We appreciate your patience, and hope that you are enjoying the remastered experience as much as we are!
->
->
Rando Team
2024-03-13
+> Rando Team
2024-06-01
## Installation
@@ -54,11 +48,14 @@ For keeping track of levels while you play, check out the [TRRandoTracker](https
## Showcase


+



+


+
[View all](Resources/Screenshots).
diff --git a/Resources/Screenshots/Compressed/TR1R_1.jpg b/Resources/Screenshots/Compressed/TR1R_1.jpg
new file mode 100644
index 000000000..c08868223
Binary files /dev/null and b/Resources/Screenshots/Compressed/TR1R_1.jpg differ
diff --git a/Resources/Screenshots/Compressed/TR2R_1.jpg b/Resources/Screenshots/Compressed/TR2R_1.jpg
new file mode 100644
index 000000000..d2f74d332
Binary files /dev/null and b/Resources/Screenshots/Compressed/TR2R_1.jpg differ
diff --git a/Resources/Screenshots/Compressed/TR3R_1.jpg b/Resources/Screenshots/Compressed/TR3R_1.jpg
new file mode 100644
index 000000000..57a40c7a3
Binary files /dev/null and b/Resources/Screenshots/Compressed/TR3R_1.jpg differ
diff --git a/Resources/Screenshots/TR1R_1.png b/Resources/Screenshots/TR1R_1.png
new file mode 100644
index 000000000..ad6298768
Binary files /dev/null and b/Resources/Screenshots/TR1R_1.png differ
diff --git a/Resources/Screenshots/TR2R_1.png b/Resources/Screenshots/TR2R_1.png
new file mode 100644
index 000000000..13175a0a1
Binary files /dev/null and b/Resources/Screenshots/TR2R_1.png differ
diff --git a/Resources/Screenshots/TR3R_1.png b/Resources/Screenshots/TR3R_1.png
new file mode 100644
index 000000000..5a362d00b
Binary files /dev/null and b/Resources/Screenshots/TR3R_1.png differ
diff --git a/Resources/Screenshots/TR3_2.png b/Resources/Screenshots/TR3_2.png
index 08d38e84c..d7d6d97bd 100644
Binary files a/Resources/Screenshots/TR3_2.png and b/Resources/Screenshots/TR3_2.png differ
diff --git a/Resources/Using/randomizing.png b/Resources/Using/randomizing.png
index 8e9418678..d28ff0986 100644
Binary files a/Resources/Using/randomizing.png and b/Resources/Using/randomizing.png differ
diff --git a/Resources/Using/saved.png b/Resources/Using/saved.png
index 213186010..0983595d1 100644
Binary files a/Resources/Using/saved.png and b/Resources/Using/saved.png differ
diff --git a/TRRandomizerCore/Randomizers/TR2/Classic/TR2ItemRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/Classic/TR2ItemRandomizer.cs
index 60d3662eb..4f308ec31 100644
--- a/TRRandomizerCore/Randomizers/TR2/Classic/TR2ItemRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR2/Classic/TR2ItemRandomizer.cs
@@ -152,21 +152,34 @@ private void AdjustSeraphContinuity(TR2CombinedLevel level)
private void RandomizeVehicles(TR2CombinedLevel level)
{
Dictionary> vehicleLocations = new();
+ void StoreLocation(TR2Type type)
+ {
+ Location location = VehicleUtilities.GetRandomLocation(level.Name, level.Data, type, _generator);
+ if (location == null)
+ {
+ return;
+ }
+
+ if (!vehicleLocations.ContainsKey(type))
+ {
+ vehicleLocations[type] = new();
+ }
+ vehicleLocations[type].Enqueue(location);
+ }
+
if (VehicleUtilities.HasLocations(level.Name, TR2Type.Boat))
{
- vehicleLocations[TR2Type.Boat] = new();
int boatCount = Math.Max(1, level.Data.Entities.Count(e => e.TypeID == TR2Type.Boat));
for (int i = 0; i < boatCount; i++)
{
- vehicleLocations[TR2Type.Boat].Enqueue(VehicleUtilities.GetRandomLocation(level.Name, level.Data, TR2Type.Boat, _generator));
+ StoreLocation(TR2Type.Boat);
}
}
if (level.IsAssault)
{
// Regular skidoo rando comes with enemy rando currently
- vehicleLocations[TR2Type.RedSnowmobile] = new();
- vehicleLocations[TR2Type.RedSnowmobile].Enqueue(VehicleUtilities.GetRandomLocation(level.Name, level.Data, TR2Type.RedSnowmobile, _generator));
+ StoreLocation(TR2Type.RedSnowmobile);
}
if (vehicleLocations.Count == 0)
diff --git a/USING.md b/USING.md
index 9f4ca0f64..885ee9c85 100644
--- a/USING.md
+++ b/USING.md
@@ -25,10 +25,13 @@ Before you launch the randomizer for the first time, you should carry out a few
>
> _This step is entirely optional based on your own preference of gameplay._
***
-It is recommended at this point that you create a copy of your game folder. If you choose to use the original folder and decide later that you want to revert the changes made by the randomizer, see the [relevant point below](USING.md#reverting).
+
+It is recommended at this point that you create a copy of your game folder _if playing classic TR_. If you choose to use the original folder and decide later that you want to revert the changes made by the randomizer, see the [relevant point below](USING.md#reverting).
Let's say you are setting up TR2 and have it installed in `D:\Games\TR2`. You should copy this folder in its entirety and name it something like `D:\Games\TR2Rando`.
+For TR I-III Remastered, you will need to point the randomizer to your main installation of TRR, as copying the folder and launching it from a different location will trigger Steam (for example) to launch, which will in turn always run from your main installation folder. This means that you cannot have separate folders setup for different playthroughs. Use the [reverting](USING.md#reverting) guide below to restore your game to defaults once you have finished playing with the randomizer. You can then later re-open and randomize safely if you wish. Note too that some files are shared so if you randomize TR1R, you may for example see some text changes in both TR2R and TR3R as a result. Again, restoring defaults will revert everything back to normal.
+
> ### IMPORTANT
> Now that you have a dedicated folder for the randomizer to work on, you should **_not_** change anything manually in this folder as it can cause corruption when randomizing again. Everything can be controlled in the randomizer, so provided that you have set the game up as above per your preferences, you should have no need to edit anything manually.
@@ -56,7 +59,15 @@ The randomizer will now check the data in the folder you have selected and creat
It is **_strongly_** recommended that you click `Yes` if you see this message, reinstall the game and follow this guide carefully again from the [beginning](USING.md#randomizer-setup).
## Randomizing
-Now that you have your TR game folder open in the randomizer, you can select each aspect that you wish to randomize. There are several options available, so be sure to click the available `Options` button in each pane.
+Now that you have your TR game folder open in the randomizer, you can select each aspect that you wish to randomize. There are several options available, so be sure to click the available `Options` button in each pane. Note that for TR I-III Remastered, the options that are available to randomize are much more limited than the classics. Only the following aspects are currently supported, the remaining options will be greyed out in the UI.
+
+- Secrets
+- Items
+- Enemies
+- Start positions
+- Secret rewards (excluding TR2R)
+- Audio
+- Game text
When you are ready to start, click the large green `Randomize` button. A progress bar will appear and the randomizer will make the selected changes.