diff --git a/CHANGELOG.md b/CHANGELOG.md
index 066146e5d..20579e51c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,13 +1,15 @@
-## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.4...master) - xxxx-xx-xx
+## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.9.0...master) - xxxx-xx-xx
+
+## [V1.9.0](https://github.com/LostArtefacts/TR-Rando/compare/V1.8.4...V1.9.0) - 2024-06-22
- 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)
-- added separate secret audio for TR1 and TR3 when not using reward rooms (#687)
- added an option to shuffle items rather than randomize their types and locations in each level (#625)
- added an option to control weapon allocation in item randomization (#690)
- added an option to move enemies such as eels, whose placement can lead to forced damage or difficulty in passing (#311)
+- added an option to stack rewards with secrets in TR1 and TR3, rather than using reward rooms (#687)
+- added Lara's assault course outfit in TR2 for outfit randomization (#672)
+- added gun holsters to Lara's robe outfit in TR2 (#672)
+- added separate secret audio for TR1 and TR3 when not using reward rooms (#687)
- added Finnish, Portuguese, and Swedish translations to TR1 and added all supported language translations to TRUB (#701)
- fixed several potential key item softlocks in TR2 (#691)
- fixed a key item softlock in Crash Site (#662)
diff --git a/Deps/TRGE.Coord.dll b/Deps/TRGE.Coord.dll
index c58baea0f..15df017f9 100644
Binary files a/Deps/TRGE.Coord.dll and b/Deps/TRGE.Coord.dll differ
diff --git a/Deps/TRGE.Core.dll b/Deps/TRGE.Core.dll
index a145f0b89..89e7c6486 100644
Binary files a/Deps/TRGE.Core.dll and b/Deps/TRGE.Core.dll differ
diff --git a/README.md b/README.md
index 3982ed79b..9a0dcc025 100644
--- a/README.md
+++ b/README.md
@@ -2,14 +2,9 @@
-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
+TR Rando is a randomizer tool for the classic Tomb Raider series (TR 1-3 and Unfinished Business) and Tomb Raider I-III Remastered. 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 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).
->
-> Rando Team 2024-06-01
-
## Installation
1. Download the [latest version](https://github.com/LostArtefacts/TR-Rando/releases/latest), making sure to select the `TRRando` zip and not the source code.
diff --git a/Resources/UI.png b/Resources/UI.png
index eab2b6e52..6bddd5aad 100644
Binary files a/Resources/UI.png and b/Resources/UI.png differ
diff --git a/Resources/Using/confirmdelete.png b/Resources/Using/confirmdelete.png
index a956a1836..58aac923a 100644
Binary files a/Resources/Using/confirmdelete.png and b/Resources/Using/confirmdelete.png differ
diff --git a/Resources/Using/deletebackup.png b/Resources/Using/deletebackup.png
index b91d6e521..c0dbf61e3 100644
Binary files a/Resources/Using/deletebackup.png and b/Resources/Using/deletebackup.png differ
diff --git a/Resources/Using/finalizing.png b/Resources/Using/finalizing.png
new file mode 100644
index 000000000..0f407e594
Binary files /dev/null and b/Resources/Using/finalizing.png differ
diff --git a/Resources/Using/firstwindow.png b/Resources/Using/firstwindow.png
index b99b2538b..6738db0ff 100644
Binary files a/Resources/Using/firstwindow.png and b/Resources/Using/firstwindow.png differ
diff --git a/Resources/Using/integrity.png b/Resources/Using/integrity.png
index 7e8cc4f88..cbd71d046 100644
Binary files a/Resources/Using/integrity.png and b/Resources/Using/integrity.png differ
diff --git a/Resources/Using/randofolder.png b/Resources/Using/randofolder.png
index be354bcac..a2dc11b56 100644
Binary files a/Resources/Using/randofolder.png and b/Resources/Using/randofolder.png differ
diff --git a/Resources/Using/randomizing.png b/Resources/Using/randomizing.png
index d28ff0986..d510bc191 100644
Binary files a/Resources/Using/randomizing.png and b/Resources/Using/randomizing.png differ
diff --git a/Resources/Using/recentfolder.png b/Resources/Using/recentfolder.png
index e949384cb..403709c23 100644
Binary files a/Resources/Using/recentfolder.png and b/Resources/Using/recentfolder.png differ
diff --git a/Resources/Using/restore.png b/Resources/Using/restore.png
index 5f91b2d73..61bdd0af2 100644
Binary files a/Resources/Using/restore.png and b/Resources/Using/restore.png differ
diff --git a/Resources/randomizerlogo.png b/Resources/randomizerlogo.png
index a018d29c9..de1c3bf88 100644
Binary files a/Resources/randomizerlogo.png and b/Resources/randomizerlogo.png differ
diff --git a/TRImageControl/TRImage.cs b/TRImageControl/TRImage.cs
index d0aa65304..9f869fe9f 100644
--- a/TRImageControl/TRImage.cs
+++ b/TRImageControl/TRImage.cs
@@ -435,7 +435,7 @@ public void Overlay(TRImage image)
{
if (image.Size.Width > Size.Width || image.Size.Height > Size.Height)
{
- throw new InvalidOperationException();
+ image = image.Export(new(0, 0, Math.Min(image.Size.Width, Size.Width), Math.Min(image.Size.Height, Size.Height)));
}
Import(image, new(0, 0), true);
}
diff --git a/TRRandomizerCore/Randomizers/TR1/Remastered/TR1REnemyRandomizer.cs b/TRRandomizerCore/Randomizers/TR1/Remastered/TR1REnemyRandomizer.cs
index 92735c9f0..cc8ad1e6d 100644
--- a/TRRandomizerCore/Randomizers/TR1/Remastered/TR1REnemyRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR1/Remastered/TR1REnemyRandomizer.cs
@@ -1,6 +1,5 @@
using TRDataControl;
using TRGE.Core;
-using TRLevelControl;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRRandomizerCore.Helpers;
diff --git a/TRRandomizerCore/Randomizers/TR2/Classic/TR2OutfitRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/Classic/TR2OutfitRandomizer.cs
index 7fa033cae..37ce0a895 100644
--- a/TRRandomizerCore/Randomizers/TR2/Classic/TR2OutfitRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR2/Classic/TR2OutfitRandomizer.cs
@@ -278,7 +278,7 @@ private bool Import(TR2CombinedLevel level, TR2Type lara)
if (lara == TR2TypeUtilities.GetAliasForLevel(level.Name, TR2Type.Lara))
{
// In case a previous attempt failed, we need to restore default texture mapping
- _outer.TextureMonitor.GetMonitor(level.Name)?.RemovedTextures?.Remove(TR2Type.Lara);
+ _outer.TextureMonitor.GetMonitor(level.Name)?.RemovedTextures?.RemoveAll(t => t == TR2Type.Lara);
}
if (level.IsCutScene)
diff --git a/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-large.png b/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-large.png
index c51d31e0a..cd0d50d75 100644
Binary files a/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-large.png and b/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-large.png differ
diff --git a/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-small.png b/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-small.png
index 37fe6afad..483debf0f 100644
Binary files a/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-small.png and b/TRRandomizerCore/Resources/Shared/Graphics/tr1badge-small.png differ
diff --git a/TRRandomizerCore/Resources/Shared/Graphics/tr2badge-small.png b/TRRandomizerCore/Resources/Shared/Graphics/tr2badge-small.png
index 3ee9ef0a0..d7609f81a 100644
Binary files a/TRRandomizerCore/Resources/Shared/Graphics/tr2badge-small.png and b/TRRandomizerCore/Resources/Shared/Graphics/tr2badge-small.png differ
diff --git a/TRRandomizerCore/Resources/Shared/Graphics/tr3badge-small.png b/TRRandomizerCore/Resources/Shared/Graphics/tr3badge-small.png
index f24c250af..14e3c1979 100644
Binary files a/TRRandomizerCore/Resources/Shared/Graphics/tr3badge-small.png and b/TRRandomizerCore/Resources/Shared/Graphics/tr3badge-small.png differ
diff --git a/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json b/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json
index 9fbf59806..92dffd9db 100644
--- a/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json
+++ b/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json
@@ -65,77 +65,6 @@
"Room": 2
},
"IfLandCreature": true
- },
- {
- "Comments": "Make a ramp.",
- "EMType": 7,
- "Location": {
- "X": 67072,
- "Y": -2304,
- "Z": 55808,
- "Room": 2
- },
- "FloorClicks": -1,
- "SlantType": 2,
- "XSlant": -1
- },
- {
- "Comments": "Move some faces to fit the ramp.",
- "EMType": 23,
- "Modifications": [
- {
- "RoomNumber": 2,
- "FaceIndex": 81,
- "VertexChanges": {
- "2": {
- "Y": -256
- }
- }
- },
- {
- "RoomNumber": 2,
- "FaceIndex": 79,
- "VertexChanges": {
- "0": {
- "Y": -256
- },
- "3": {
- "Y": -256
- }
- }
- }
- ]
- },
- {
- "Comments": "Patch gaps.",
- "EMType": 26,
- "Quads": {
- "2": [
- {
- "Type": 4,
- "Vertices": [
- 177,
- 178,
- 92,
- 93
- ],
- "Texture": 13
- }
- ]
- },
- "Triangles": {
- "2": [
- {
- "Type": 3,
- "Vertices": [
- 93,
- 107,
- 177
- ],
- "Texture": 15
- }
- ]
- }
}
],
[
diff --git a/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json
index c78ca2b3c..24e787827 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json
@@ -88,23 +88,9 @@
"Z": 55891,
"Room": 152
},
- "Clicks": -4,
- "FloorTexture": 65535,
- "SideTexture": 1688,
- "Flags": 7
- },
- {
- "Comments": "Put another on top.",
- "EMType": 1,
- "Location": {
- "X": 83440,
- "Y": -9216,
- "Z": 55891,
- "Room": 152
- },
- "Clicks": -2,
+ "Clicks": -6,
"FloorTexture": 1709,
- "SideTexture": 1863,
+ "SideTexture": 1688,
"Flags": 7
}
],
diff --git a/TRRandomizerCore/Resources/TR2/Textures/Mapping/HOUSE.TR2-Textures.json b/TRRandomizerCore/Resources/TR2/Textures/Mapping/HOUSE.TR2-Textures.json
index 611d9f392..7b360e31d 100644
--- a/TRRandomizerCore/Resources/TR2/Textures/Mapping/HOUSE.TR2-Textures.json
+++ b/TRRandomizerCore/Resources/TR2/Textures/Mapping/HOUSE.TR2-Textures.json
@@ -69,7 +69,7 @@
"Segment": 8,
"Tile": 9,
"X": 96,
- "Y": 96
+ "Y": 56
},
{
"Segment": 9,
diff --git a/TRRandomizerView/App.xaml.cs b/TRRandomizerView/App.xaml.cs
index 45233524b..ea1b51dfb 100644
--- a/TRRandomizerView/App.xaml.cs
+++ b/TRRandomizerView/App.xaml.cs
@@ -21,7 +21,6 @@ static App()
}
public string Title { get; private set; }
- public string Description { get; private set; }
public string Version { get; private set; }
public string TaggedVersion { get; private set; }
public string Copyright { get; private set; }
@@ -32,20 +31,14 @@ public App()
Assembly assembly = Assembly.GetExecutingAssembly();
- object[] attributes = assembly.GetCustomAttributes(typeof(AssemblyTitleAttribute), false);
+ object[] attributes = assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);
if (attributes.Length > 0)
{
- Title = ((AssemblyTitleAttribute)attributes[0]).Title;
+ Title = ((AssemblyProductAttribute)attributes[0]).Product;
}
else
{
- Title = "TRRandomizer";
- }
-
- attributes = assembly.GetCustomAttributes(typeof(AssemblyProductAttribute), false);
- if (attributes.Length > 0)
- {
- Description = ((AssemblyProductAttribute)attributes[0]).Product;
+ Title = "Tomb Raider Randomizer";
}
attributes = assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false);
diff --git a/TRRandomizerView/Controls/FolderLoadControl.xaml b/TRRandomizerView/Controls/FolderLoadControl.xaml
index 71ea158d7..313a5990a 100644
--- a/TRRandomizerView/Controls/FolderLoadControl.xaml
+++ b/TRRandomizerView/Controls/FolderLoadControl.xaml
@@ -47,15 +47,20 @@
-
-
+
+ Margin="10,0,0,2">
+
+
+
+
+
+
+
+
+
diff --git a/TRRandomizerView/Resources/rando.ico b/TRRandomizerView/Resources/rando.ico
index 386be5f73..0bf5ef5ec 100644
Binary files a/TRRandomizerView/Resources/rando.ico and b/TRRandomizerView/Resources/rando.ico differ
diff --git a/TRRandomizerView/Resources/rando.png b/TRRandomizerView/Resources/rando.png
index f4130a33b..db946fc67 100644
Binary files a/TRRandomizerView/Resources/rando.png and b/TRRandomizerView/Resources/rando.png differ
diff --git a/TRRandomizerView/Resources/rando_sm.png b/TRRandomizerView/Resources/rando_sm.png
new file mode 100644
index 000000000..a0d00ec5b
Binary files /dev/null and b/TRRandomizerView/Resources/rando_sm.png differ
diff --git a/TRRandomizerView/TRRandomizerView.csproj b/TRRandomizerView/TRRandomizerView.csproj
index 14afae90e..c85fe9801 100644
--- a/TRRandomizerView/TRRandomizerView.csproj
+++ b/TRRandomizerView/TRRandomizerView.csproj
@@ -20,9 +20,9 @@
false
Resources\rando.ico
- 1.8.4
+ 1.9.0
Tomb Raider Randomizer
- Copyright © Tomb Raider Community 2023
+ Copyright © Tomb Raider Community 2024
@@ -52,6 +52,7 @@
+
@@ -90,6 +91,7 @@
+
diff --git a/TRRandomizerView/Windows/AboutWindow.xaml b/TRRandomizerView/Windows/AboutWindow.xaml
index e5d505826..1518bc422 100644
--- a/TRRandomizerView/Windows/AboutWindow.xaml
+++ b/TRRandomizerView/Windows/AboutWindow.xaml
@@ -12,7 +12,7 @@
ShowInTaskbar="False"
Loaded="Window_Loaded"
SizeToContent="Height"
- Title="{Binding AboutTitle}" Width="550">
+ Title="{Binding Title}" Width="550">
@@ -27,7 +27,8 @@
@@ -36,8 +37,8 @@
Foreground="{StaticResource ThemeColour7}">
-
-
+
+
@@ -101,7 +102,7 @@
- Icon made by
+ Icon adapted from original by
diff --git a/TRRandomizerView/Windows/AboutWindow.xaml.cs b/TRRandomizerView/Windows/AboutWindow.xaml.cs
index 8e276a4e5..7cb7730df 100644
--- a/TRRandomizerView/Windows/AboutWindow.xaml.cs
+++ b/TRRandomizerView/Windows/AboutWindow.xaml.cs
@@ -6,63 +6,11 @@ namespace TRRandomizerView.Windows;
public partial class AboutWindow : Window
{
- #region Dependency Properties
- public static readonly DependencyProperty AboutTitleProperty = DependencyProperty.Register
- (
- "AboutTitle", typeof(string), typeof(AboutWindow)
- );
-
- public static readonly DependencyProperty AppTitleProperty = DependencyProperty.Register
- (
- "AppTitle", typeof(string), typeof(AboutWindow)
- );
-
- public static readonly DependencyProperty VersionProperty = DependencyProperty.Register
- (
- "Version", typeof(string), typeof(AboutWindow)
- );
-
- public static readonly DependencyProperty CopyrightProperty = DependencyProperty.Register
- (
- "Copyright", typeof(string), typeof(AboutWindow)
- );
-
- public string AboutTitle
- {
- get => (string)GetValue(AboutTitleProperty);
- private set => SetValue(AboutTitleProperty, value);
- }
-
- public string AppTitle
- {
- get => (string)GetValue(AppTitleProperty);
- private set => SetValue(AppTitleProperty, value);
- }
-
- public string Version
- {
- get => (string)GetValue(VersionProperty);
- private set => SetValue(VersionProperty, value);
- }
-
- public string Copyright
- {
- get => (string)GetValue(CopyrightProperty);
- private set => SetValue(CopyrightProperty, value);
- }
- #endregion
-
public AboutWindow()
{
InitializeComponent();
Owner = WindowUtils.GetActiveWindow(this);
- DataContext = this;
-
- App app = (App)Application.Current;
- AboutTitle = "About " + app.Title;
- AppTitle = app.Description;
- Version = app.TaggedVersion;
- Copyright = app.Copyright;
+ DataContext = Application.Current;
}
private void Window_Loaded(object sender, RoutedEventArgs e)
diff --git a/TRRandomizerView/Windows/MessageWindow.xaml b/TRRandomizerView/Windows/MessageWindow.xaml
index dadd76dd8..ac8ef0a69 100644
--- a/TRRandomizerView/Windows/MessageWindow.xaml
+++ b/TRRandomizerView/Windows/MessageWindow.xaml
@@ -10,7 +10,7 @@
ShowInTaskbar="False"
Loaded="Window_Loaded"
SizeToContent="Height"
- Title="TR Rando" Height="200" Width="420">
+ Height="200" Width="420">
diff --git a/TRRandomizerView/Windows/MessageWindow.xaml.cs b/TRRandomizerView/Windows/MessageWindow.xaml.cs
index 6d249337a..8e27cad4a 100644
--- a/TRRandomizerView/Windows/MessageWindow.xaml.cs
+++ b/TRRandomizerView/Windows/MessageWindow.xaml.cs
@@ -108,6 +108,7 @@ private MessageWindow(string message, Icon icon, MessageBoxButton buttons, strin
InitializeComponent();
Owner = WindowUtils.GetActiveWindow(this);
DataContext = this;
+ Title = ((App)Application.Current).Title;
Message = message;
Details = details;
diff --git a/TRRandomizerView/Windows/UpdateAvailableWindow.xaml b/TRRandomizerView/Windows/UpdateAvailableWindow.xaml
index 401c524ed..34206ae63 100644
--- a/TRRandomizerView/Windows/UpdateAvailableWindow.xaml
+++ b/TRRandomizerView/Windows/UpdateAvailableWindow.xaml
@@ -33,7 +33,7 @@
+ Text="A new version of Tomb Raider Randomizer is available."/>