Skip to content

Commit

Permalink
Add TRR documentation (#700)
Browse files Browse the repository at this point in the history
Resolves #614.
  • Loading branch information
lahm86 authored Jun 2, 2024
1 parent 479efb9 commit 1086754
Show file tree
Hide file tree
Showing 13 changed files with 37 additions and 15 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -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)
Expand Down
15 changes: 6 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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!
>
> <p align="right"><em>Rando Team</em><br/><em>2024-03-13</em></p>
> <p align="right"><em>Rando Team</em><br/><em>2024-06-01</em></p>
## Installation

Expand Down Expand Up @@ -54,11 +48,14 @@ For keeping track of levels while you play, check out the [TRRandoTracker](https
## Showcase
![TR1 Rando](Resources/Screenshots/Compressed/TR1_3.jpg)
![TR1 Rando](Resources/Screenshots/Compressed/TR1_4.jpg)
![TR1R Rando](Resources/Screenshots/Compressed/TR1R_1.jpg)
![TR2 Rando](Resources/Screenshots/Compressed/TR2_1.jpg)
![TR2 Rando](Resources/Screenshots/Compressed/TR2_4.jpg)
![TR2 Rando](Resources/Screenshots/Compressed/TR2_5.jpg)
![TR2R Rando](Resources/Screenshots/Compressed/TR2R_1.jpg)
![TR3 Rando](Resources/Screenshots/Compressed/TR3_2.jpg)
![TR3 Rando](Resources/Screenshots/Compressed/TR3_3.jpg)
![TR3R Rando](Resources/Screenshots/Compressed/TR3R_1.jpg)

[View all](Resources/Screenshots).

Expand Down
Binary file added Resources/Screenshots/Compressed/TR1R_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Screenshots/Compressed/TR2R_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Screenshots/Compressed/TR3R_1.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Screenshots/TR1R_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Screenshots/TR2R_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Resources/Screenshots/TR3R_1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/Screenshots/TR3_2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/Using/randomizing.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Resources/Using/saved.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
21 changes: 17 additions & 4 deletions TRRandomizerCore/Randomizers/TR2/Classic/TR2ItemRandomizer.cs
Original file line number Diff line number Diff line change
Expand Up @@ -152,21 +152,34 @@ private void AdjustSeraphContinuity(TR2CombinedLevel level)
private void RandomizeVehicles(TR2CombinedLevel level)
{
Dictionary<TR2Type, Queue<Location>> 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)
Expand Down
15 changes: 13 additions & 2 deletions USING.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down Expand Up @@ -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.

Expand Down

0 comments on commit 1086754

Please sign in to comment.