From 762336f71b9447931702157d4f8deb61614901c9 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sat, 27 Sep 2025 14:07:42 +0100 Subject: [PATCH 01/10] Fix TR2R docile bird monsters Ensures aliased bird monster guiser types are normalised for TR2R map files. --- .../Randomizers/TR2/Remastered/TR2REnemyRandomizer.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/TRRandomizerCore/Randomizers/TR2/Remastered/TR2REnemyRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/Remastered/TR2REnemyRandomizer.cs index b294f323..f338bea1 100644 --- a/TRRandomizerCore/Randomizers/TR2/Remastered/TR2REnemyRandomizer.cs +++ b/TRRandomizerCore/Randomizers/TR2/Remastered/TR2REnemyRandomizer.cs @@ -353,7 +353,8 @@ internal void ApplyRandomization() { TR2EnemyAllocator.DisguiseType(level.Name, level.Data.Models, importedCollection.BirdMonsterGuiser, TR2Type.BirdMonster); TR2EnemyAllocator.DisguiseType(level.Name, level.PDPData, importedCollection.BirdMonsterGuiser, TR2Type.BirdMonster); - level.MapData[importedCollection.BirdMonsterGuiser] = _birdMonsterTypes.RandomItem(_outer._generator); + level.MapData[TR2TypeUtilities.TranslateAlias(importedCollection.BirdMonsterGuiser)] + = _birdMonsterTypes.RandomItem(_outer._generator); enemies.BirdMonsterGuiser = importedCollection.BirdMonsterGuiser; } From bce13c10541d709e66400ee7cf83e4def3594b04 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sun, 28 Sep 2025 11:22:32 +0100 Subject: [PATCH 02/10] Exclude pickups on bridges TRX no longer uses dummy triggers for bridges, meaning they all have collision. This avoids items being placed in the same sector as a bridge e.g. Lost Valley when on the floor. --- TRLevelControl/Helpers/TR1TypeUtilities.cs | 1 - TRLevelControl/Helpers/TR2TypeUtilities.cs | 1 - 2 files changed, 2 deletions(-) diff --git a/TRLevelControl/Helpers/TR1TypeUtilities.cs b/TRLevelControl/Helpers/TR1TypeUtilities.cs index a582ca0c..8a1a96a6 100644 --- a/TRLevelControl/Helpers/TR1TypeUtilities.cs +++ b/TRLevelControl/Helpers/TR1TypeUtilities.cs @@ -526,7 +526,6 @@ public static bool CanSharePickupSpace(TR1Type type) || IsKeyholeType(type) || IsSlotType(type) || IsEnemyType(type) - || IsBridge(type) || IsTrapdoor(type) || IsDoorType(type) || IsPushblockType(type) diff --git a/TRLevelControl/Helpers/TR2TypeUtilities.cs b/TRLevelControl/Helpers/TR2TypeUtilities.cs index 560336c0..a2ed48e9 100644 --- a/TRLevelControl/Helpers/TR2TypeUtilities.cs +++ b/TRLevelControl/Helpers/TR2TypeUtilities.cs @@ -908,7 +908,6 @@ public static bool CanSharePickupSpace(TR2Type type, bool remastered) || IsUnrenderedType(type) || IsVehicleType(type) || IsBreakableWindowType(type) - || IsBridgeType(type) || type == TR2Type.Lara || type == TR2Type.Drawbridge || type == TR2Type.FallingBlock From c63bcebf0c70f8c5db698945b4208afff79b0763 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Tue, 30 Sep 2025 18:42:46 +0100 Subject: [PATCH 03/10] Fix Furnace flipmap key trigger --- .../Environment/LEVEL3.TR2-Environment.json | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/TRRandomizerCore/Resources/TR2/Environment/LEVEL3.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/LEVEL3.TR2-Environment.json index 252f1eee..19394d25 100644 --- a/TRRandomizerCore/Resources/TR2/Environment/LEVEL3.TR2-Environment.json +++ b/TRRandomizerCore/Resources/TR2/Environment/LEVEL3.TR2-Environment.json @@ -30,6 +30,25 @@ } ] }, + { + "Comments": "Ensure slot 118 triggers the doors in the unflipped state.", + "EMType": 61, + "EntityLocation": 118, + "Trigger": { + "TrigType": 3, + "Mask": 31, + "SwitchOrKeyRef": 118, + "Actions": [ + { + "Parameter": 117 + }, + { + "Parameter": 116 + } + ] + }, + "Replace": true + }, { "Comments": "Add a ladder as a return path from room 8.", "EMType": 26, From 4150c81e7314fc1928fedd56c237ee8f035919e8 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:15:00 +0100 Subject: [PATCH 04/10] Fix Colosseum room 2 mesh Fixes a hole in the wall in Colosseum room 2. --- .../Environment/LEVEL5.PHD-Environment.json | 55 +++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json b/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json index b43273ae..9d57dc1e 100644 --- a/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json +++ b/TRRandomizerCore/Resources/TR1/Environment/LEVEL5.PHD-Environment.json @@ -24,6 +24,61 @@ "272": 181 } }, + { + "Comments": "Fix a hole in the wall in room 2.", + "EMType": 23, + "Modifications": [ + { + "RoomNumber": 2, + "FaceIndex": 2, + "VertexChanges": { + "0": { + "Y": -256 + } + } + }, + { + "RoomNumber": 2, + "FaceIndex": 1, + "VertexChanges": { + "2": { + "X": 1024, + "Y": -256 + } + } + } + ] + }, + { + "EMType": 26, + "Triangles": { + "2": [ + { + "Type": 3, + "Vertices": [ + 4, + 152, + 153 + ], + "Texture": 16 + } + ] + } + }, + { + "EMType": 23, + "Modifications": [ + { + "RoomNumber": 2, + "FaceIndex": 1, + "VertexChanges": { + "2": { + "X": -1024 + } + } + } + ] + }, { "Comments": "Add wind to outside rooms.", "EMType": 121, From 8ed68ac11aaa04124f1a1797d3e82a3eb0c3b01e Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Fri, 3 Oct 2025 10:17:28 +0100 Subject: [PATCH 05/10] Remove TR1 braid cutscene check The minimum supported version of TR1X is greater than the original cutscene check in place, so this removes some redundant code. --- .../Randomizers/TR1/Classic/TR1OutfitRandomizer.cs | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/TRRandomizerCore/Randomizers/TR1/Classic/TR1OutfitRandomizer.cs b/TRRandomizerCore/Randomizers/TR1/Classic/TR1OutfitRandomizer.cs index 158d71be..b8900967 100644 --- a/TRRandomizerCore/Randomizers/TR1/Classic/TR1OutfitRandomizer.cs +++ b/TRRandomizerCore/Randomizers/TR1/Classic/TR1OutfitRandomizer.cs @@ -20,7 +20,6 @@ public class TR1OutfitRandomizer : BaseTR1Randomizer { private static readonly string _gymOutfitHash = "6523d69dbf1f0ab671f5f877afe6ff35"; private static readonly string _mauledOutfitHash = "ab52e600b2f4fa7edfd3e9a32d1a5582"; - private static readonly Version _minBraidCutsceneVersion = new(2, 13, 0); private static readonly TR1SFX[] _barefootSfxIDs = new TR1SFX[] { TR1SFX.LaraFeet, TR1SFX.LaraLand }; private static readonly double _mauledLaraChance = (double)1 / 3; private static readonly double _partialGymChance = (double)1 / 3; @@ -454,20 +453,13 @@ private void AmendBackpack(TR1CombinedLevel level) } } - private bool CutsceneSupportsBraid(TR1CombinedLevel parentLevel) + private static bool CutsceneSupportsBraid(TR1CombinedLevel parentLevel) { if (!parentLevel.HasCutScene || parentLevel.Is(TR1LevelNames.MINES)) { return false; } - // Not supported before 2.13, so don't make any changes to Lara here. - Version tr1xVersion = _outer.ScriptEditor.Edition.ExeVersion; - if (tr1xVersion == null || tr1xVersion < _minBraidCutsceneVersion) - { - return false; - } - if (parentLevel.Is(TR1LevelNames.ATLANTIS)) { // Lara's head may be Natla's or Pierre's, so only support the braid if From 5c3ea96a029ee58e2f633bd7f8330efe409ced9e Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Fri, 3 Oct 2025 13:14:17 +0100 Subject: [PATCH 06/10] Fix 40F Bartoli spawn point --- .../Resources/TR2/Environment/UNWATER.TR2-Environment.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json index 4accdbba..41bf1ad5 100644 --- a/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json +++ b/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json @@ -2586,9 +2586,9 @@ "EMType": 44, "EntityIndex": 2, "TargetLocation": { - "X": 36842, + "X": 36352, "Y": -512, - "Z": 48100, + "Z": 47616, "Angle": -16384 } }, From 52911d0ca58d2b1ae81f55bd9a9d8eab06cb933d Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sat, 4 Oct 2025 13:48:24 +0100 Subject: [PATCH 07/10] Fix Deck level name --- TRRandomizerCore/Resources/TR2/Strings/G11N/gamestrings_EN.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TRRandomizerCore/Resources/TR2/Strings/G11N/gamestrings_EN.json b/TRRandomizerCore/Resources/TR2/Strings/G11N/gamestrings_EN.json index 5dd3ec2f..5424555e 100644 --- a/TRRandomizerCore/Resources/TR2/Strings/G11N/gamestrings_EN.json +++ b/TRRandomizerCore/Resources/TR2/Strings/G11N/gamestrings_EN.json @@ -559,7 +559,7 @@ "Quest for the Seraph", "Iceberg Wins", "Big Air Pocket", - "[ then ]" + "Up then down" ], "KeyItems": { "Key2": [ From ff1875c1e12b0821c5704be2b88353fd9d8c8849 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sun, 5 Oct 2025 11:01:44 +0100 Subject: [PATCH 08/10] Add tester logo --- .../Textures/Mapping/LEVEL7A.PHD-Textures.json | 9 +++++++++ .../Source/Static/Landmarks/Rylael/Data.json | 7 +++++++ .../Source/Static/Landmarks/Rylael/Segments.png | Bin 0 -> 5848 bytes 3 files changed, 16 insertions(+) create mode 100644 TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Data.json create mode 100644 TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Segments.png diff --git a/TRRandomizerCore/Resources/TR1/Textures/Mapping/LEVEL7A.PHD-Textures.json b/TRRandomizerCore/Resources/TR1/Textures/Mapping/LEVEL7A.PHD-Textures.json index 358c8d95..056e91e2 100644 --- a/TRRandomizerCore/Resources/TR1/Textures/Mapping/LEVEL7A.PHD-Textures.json +++ b/TRRandomizerCore/Resources/TR1/Textures/Mapping/LEVEL7A.PHD-Textures.json @@ -8,6 +8,15 @@ "BackgroundIndex": 15 } ] + }, + "Landmarks.Rylael": { + "0": [ + { + "RoomNumber": 5, + "RectangleIndices": [ 21 ], + "BackgroundIndex": 30 + } + ] } }, diff --git a/TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Data.json b/TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Data.json new file mode 100644 index 00000000..fca17f88 --- /dev/null +++ b/TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Data.json @@ -0,0 +1,7 @@ +{ + "VariantMap": { + "Default": [ + "0, 0, 64, 64" + ] + } +} diff --git a/TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Segments.png b/TRRandomizerCore/Resources/TR1/Textures/Source/Static/Landmarks/Rylael/Segments.png new file mode 100644 index 0000000000000000000000000000000000000000..d69abb20cf640fbcdb6d190f94babf6b6c7f5cfd GIT binary patch literal 5848 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 i;A|^!w&g1i;C}#rN*xl^Ln{pc0000 Date: Fri, 3 Oct 2025 11:19:10 +0100 Subject: [PATCH 09/10] Uprev TRX minimum versions TR1X 4.15 and TR2X 1.5 are now the supported minimums. --- CHANGELOG.md | 2 +- Deps/TRGE.Coord.dll | Bin 48128 -> 48128 bytes Deps/TRGE.Core.dll | Bin 242176 -> 242176 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1b3af3ab..a3664ef2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ## [Unreleased](https://github.com/LostArtefacts/TR-Rando/compare/V1.10.2...master) - xxxx-xx-xx -- added support for TR1X 4.14 (now the minimum version supported) (#803) +- added support for TR1X 4.15 (now the minimum version supported) (#803) - added support for TR2X (#821) - added support for The Golden Mask in TR2X and playing in combined mode (see Level Sequencing options) (#59) - added Spanish translations for TR1 (#800) diff --git a/Deps/TRGE.Coord.dll b/Deps/TRGE.Coord.dll index 48f7aa4384be187dce192b9fcde39c877f4b6e6a..99fe3415be6e26885ab05f214f6a73c5c65f7854 100644 GIT binary patch delta 237 zcmZqp!PM}BX+j5!m!jjgjXf@l1b#}M6g8ju$#c8WtG#Qtt=h5q!J=pZ4Ksr@!(?L% zqqIaz6HDXd)HH*XRFmY?Btv5ZBcl{^Gm}I^i)2&F#H1v%q{+#f6Io=puU|Cz#O442%`0ad z_SyEkt`kи$v{A7(SJ_=Al);y>nNOh&|#ax{g2KBnT)(UK%vSkm8zbS(;gCRo_ zgAqd-g9(^4W-wqd1M-p?QW;EvGKmZpK+*uL&HyN8!e9v$GXct50@a%XX^@&EAT(o0 K+B|<}A`<|VLr_-$ diff --git a/Deps/TRGE.Core.dll b/Deps/TRGE.Core.dll index 4846607ad7bdf1021dca27493d06bf08f1d10e10..7c2c66461ee209937e773a2194a48eef004b4e7b 100644 GIT binary patch delta 7174 zcmZwM3wRXO6$kLSJ9%hA9-EMaB!nHnC1C^P{Q@H|5fTjvgarZuh9n3gE;$huF_|bW zs1PtsacnCppkhD-N-@S(DW(0CQniRkDfpm*NUIGR5fLH1XEr1v_BxE94dPh5SjP}|(_ zwL=MWCnve08orTRzHVkhLUON+sRiN&{aab|WH$|UC_xUNiBdIrM5rTeQiu}baimS; z2Srh0GgT#)9~H&f+u9yL8P>MzdMX0KXlyU^ zFt;n5ycp_3i+~7f03vB65JfFOG;IK!v=NA*tw1d82Kv%IhHjp{D~=9hD4sq866gZZ zkAh1BXX;8MCy+!#fn*vB^rvzlh2{VQsG(H1mUGc+3~96h7)YCdL9_!HOr5|DbR2L~ z7chjb0I8IGtF_ZKo!rn+8Vz{J3#8LxU>H3H45ux?2r3N66T7i7p3lz|CppbfiB1$Q<&UGZE1EZ+OgwAh%*Nrq0L&f9;ZlW4s zG}QxRNC(DJ3owqh0OP3>xS8GqCeYb3>+|Qjh1AK`p-v`=}ha zpB4iT&}v{gZ2=yneZUGj0X#$(C3OGSud9(_r&upt6J=P?n&p>1jfEd(SHX|4>)@5_ zdiW>oM))!IV*%@K?Qt$V8z{K7HSE3cTJ|Bhg?$QM$L@yLvxBDw&PHovJ7I&J-fQ{& zuRX?QE8*gE_)yA|HZ-U2_v-VZ;^KI}LD{dx;BoVnRE61-y-Iz}wl|;g{L_;2rEE@GI=I z@J{w+w*UI4?czezH0um^vy}Bw)?4QCN?Df*U?|+FN@Z`sG--?7iYZ?L=JH`$@y-V}Zwqp?64RRNP}i67?mzuX=zE9idAn?f6ask8~Gq&I+R zbOP|wIbb^V05d3ImUY-ODNiDB{jZ|Y7@9>@z-+1qZl^WC9NGiSrDMQ6>H_Yd(Am~r zt0@JTPkB02LuEiMRReX@04$(Z;7-~JEVSqFMfMzi7ahg4#q<@R-%Y`{TSvEqQh<9X z5AabLu$1b6dTIoSHUJH@7r2*>0?Vu%&i&_o9K?IC0IvJ(Is5^84qtB1;Sbt#_zHW# ze#joM8_AZho9y{orwe>Mz1QDn^YSz&a1@#u@)BV)EGBz@Nsq}{C9Ree1g3mJ}LJv-=!#g#1js{AG43a zpRiBCpR#-4Q|yF0tONW9I|KfVT?C(&`&Y<|!Wnj;Ig{_|&)K$K>@3^Xdws#S^;+lH zwqEO>Y+GyfFLn*~r+>+XD})>~a++j^_3 zY+Gy8!?s!(x26bbH+Cr4qhJTS99G$Nz2^QqhzpIF5X^3YL)hElQ1*WKIyN_R<`+#f z-^yibbv{AlV@SBZ)`6YNhAFW$YPjnC;7~zhEIhO_TaTov=xn> za*-i=jEo8~z@ex{d4-r8BUB}OiT%BF}N;i1xp&BAp?@KjMh?0Q)k=5eeTDcAJ1$iGRbzSo5k;tP{? z$BI$1s`|p^cEU_wA7k@W@pwdpIWoo^i7<*P#g8J=$e$+WheXMd=4j)YX~H9%#=&V~ zf>G)f$;MEx7${b&CakiI-IjwdD>=e=S~N~A3C%e=^3^}l44O&9%(;^h=N zF5jH;WD?|dn*4nGPmM>+Q{u8`fgHbPZpY^7BElj18M|hR+M?Vjp$u+Pl;`B*E_uIZ zaOJ(U=$<=!hqBe>SFD#*yb&ylox>q1Az)`jY_>!Z6~?Abk~VAr_kXMO&%)3^U@$1qa2<)`Im zF376MDa>9_U6fmtQ&YDfv$ig`rfz;#PG)v?Z9#r+byi_bUQvy4^(FQ3xTBv}>{djX z{9Biz%#i<1%D;!5G&Z)Y3BfsX=Q&1ayE-`f&8Fk$4|g7%xcAGZ!VmUU?lHb>S4*>d zt7k9tR(Y)h-3y<8X?Mxg*uU;8enc)1`0r`n)>;R~i*<&+P0b48fsS3<)ajxl@?~{| zTAr_DDhre>rAEn73YBcRU9A);x$<9*tkp?pDz)-4*VKGDGe=gk<^Q!xfs!xl)v{J7 aNAu)!YK%2I)kepz!Vc#ywM(>ShW-Z>MR4o@ delta 7155 zcmZwM3s_WT8VB%m<}hF&cL4!$j+YS}RPL8iNzqIp5fla`QUk;^(~+0%1P8OtQps4N z)9!ZBtZl_uZC#gWbIsg++}5ogbIn}4xyhQlTUumhrtJ5gVb1^9u0G71-}`;@oeMDM z{|>FE!&*;=J^o0*n*-f#?VCr)UF|y-%9S0moNRySkRnxdjIvGWsFIWA6&>qjP2Sic z+oJ7Hl-VR%Z`i5i?J2W;ez{}o6?@3-Q>C@a=G!Gnj_a6nHQ%UhMs3gISGVSm?rQwX zCIvea6C7c~8_$bP@7L_OxCB4-vOIaL)-S5A%$D&sDZu76P^=_Q3bLil36ug|wv^fY zBt@qyQnV!TS7eKe=SE51Z^TO{+G1Qk9#8$>@x=51>2$0l{YAXK@d6)6EVa#%)_S#X zjiVx+VQdelSIq5rI&5wyP@lP-NSDm*5fonJe{B*u&FzttW^OyKBR3FCg(fsd2zg97 zhSEwPlp29BS`UO%8xTRAKqNf_MA1t?G`#{0qy0W;;!-$b=m>^l=`$dXE&#*HUhF?p zM?6IW2{ax^q(Wc>l>$k$7#K;70-EolI~=qDLn?Iwqi7p2n!158)C-KI6M&P>0psWj zkW7g;ndgu~P7NAQ(*PHFfK*xqOrS@BiL@PY2XbjIkVhwgd>R1UlvHBwXfmY&Q^-9CO?>;O(rgSBkO#P)>VRp~08A$hD5N%E z25kpsQZH}=y$j5uGYsGFpW{YS=9z~&n;gI#$^eR}5GbY+;3ld9=2AUSLJhz?S`U;` z=RD2aYZ<+Sp#{_nl+$6Lg8BdtT>vV{UTUtkkYa#EY{Pyc;rs( z5&RN+@u0=~kNPVv+=dA|*iCR3TZebDcfv2T_ru-nqwufUXW(7z%Rck{PucWh5sjdD|MJcxN;S7f(kydZ zq@blhFx@5KzyF6&8-|8j;*}$mwqYd9av2@r)Qgb_Isin{yFe6u0z}g}U>IG|pco3N z^#2GrVkr)YqYPj;6#?;71td^CkVvb65!4JMQ9GcGq-P)p?E+Lf0F0uez-a0N#?VDz zEGY}kb8u25FpiReWXc!>-~Usn07K)c1aQ$xAeB0R3A7WKNJoH4bP`CTi$FRli_C+| zpcuyB{XdhEF_cA9fNb&rIn)5;k_O~ivtT~8VZ=?{z+`JmoFY;p?*CJ*F|oiJ6R#&H z(%Up^N}O&@iG}nwb~J;I12e7h?*?o9o26Of-;LJzH=E92g*kKyD58)m^Ewt&5^xix z0duJkD4{A~9M9Jwu-(0?jX&6i+OabDG69ZIe?c+fVET)G*B}@ z)Cn}wUf@nT2Ha)I;hN)aUl2F$0FHaCIs9I04!_Tu!|%7|@Fr`(e!v>An?=Aj&#uLq zuQj^hJ09cy+iKjN7W=2FM#zhYjgXfL8zHX%HbP!0{4lRq2X9~_wyTe@eaYQ-|20w} z(z|MeLIil#2!*S#pb-k!!$v6F1RJ5S8#Y2AV!!%0AAk}3eeZv2I~NfC)t|BtVF4pW zo`s*_@yl>08!dwRBpY3VYNXEOCFT`2LT7>S;QiN^I?+j}M(RW}p&F?Z{e)^{Dzl4l zsz#zCtx35n2n?h(zcvR3j3h!BCAz z~5dNDnzYm3DT(|T!1BQuBxC1GXDJ!7hjY&TfEDvbVq=3TxDj!bd#eAp9}=IQ$9w6#OZB06xWz zyVX3vf3VZw&)9DGwAjBy9u)d`0-7`RpKMDnc7|=~y*_7Kdabi;ORx1WwxzZDH@gn| z`;XYaME9Za1y5KHf62D=R_EB3-s(Kt(p!DSeh#nynr&&V`q`G&>Kn2DYkI2->^)fE zTlP`-BKsWt9UC81sF&CwHRiYAd$y&uy3Dq;R@x6-u=G|}*p}YvD%;W;4Y18t#;HoO zuoF9!*;8N}yA)Q~^`VrDbK;Grl|RUCyvSSpF|}`t zKag(Wrpx=C7zj>vMoB4`#8zmOqD2Kn*;Bq3hztmcv=22t+#V9-y(}tX)(_%o;(H&5 zMM+mpwJb|T2S(bXgIajUkwKAx*DUvrbvgaeJUKPzir9@S z)7He#-gvPK*Ek;@Tj>gpbp_j8lYLeKyrX%zSWr(cl_!StOBC;TF6MHvu2dd9&RA#C zwd?RG&)uFQ&cj$=-&rarO!h4xiouqh%bWrKk^-%4zadJ*`Y0X&bQV zrDgJxC`plmo7DjE7lI~!9F`*M`^)6(d3>Nuo}}8uc&j2FTqA8M1-zTl;c`j<7kI<2 zm&}*DLjr}57=<9+zCdo6Fhmq4xNJ?6#hTtW@iz&@`OB!6|zf?(BG<%XUUOzxJRC%hk4{g zz1}0=5g5&LhVh(u{k%t>o)jtye1%sU3;sxYNu@l(9V4dD3GtID&LdWAr+ni-JsvU6 zhRd$yV*Hx9J1Ek3LnQ+_9{TytBa_{Edv_Q=ww zHKOJzmnOv9qzF+PGuu;igLs~*msH6!<+z^qD!HIFwb~92f(~?{w{00;6tQY#eR6nmN+Nz)5p%iBhRy)TIR>fM&x{Gsqs%@cv3N1O*-y#<9|9gtJ z)%H=b@$MXkP#T From aebd5cf0e3ca95df7c05848338b2777ccf973d87 Mon Sep 17 00:00:00 2001 From: lahm86 <33758420+lahm86@users.noreply.github.com> Date: Sat, 4 Oct 2025 14:00:08 +0100 Subject: [PATCH 10/10] Release V1.11.0 --- README.md | 2 +- TRRandomizerView/TRRandomizerView.csproj | 4 ++-- USING.md | 8 +++----- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 6e3ca47a..39b283c9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ TR Rando

-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 +TR Rando is a randomizer tool for the classic Tomb Raider series (TR 1-3, Unfinished Business and The Golden Mask) 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). ## Installation diff --git a/TRRandomizerView/TRRandomizerView.csproj b/TRRandomizerView/TRRandomizerView.csproj index 9caf8fd8..46410240 100644 --- a/TRRandomizerView/TRRandomizerView.csproj +++ b/TRRandomizerView/TRRandomizerView.csproj @@ -20,9 +20,9 @@ false Resources\rando.ico - 1.10.2 + 1.11.0 Tomb Raider Randomizer - Copyright © Tomb Raider Community 2024 + Copyright © Tomb Raider Community 2025 diff --git a/USING.md b/USING.md index 95e02ba8..18417a4e 100644 --- a/USING.md +++ b/USING.md @@ -29,14 +29,12 @@ Following is a brief video explanation of the setup, but be sure to read each of Before you launch the randomizer for the first time, you should carry out a few steps as follows. *** > ### TR1 -> You must use [TR1X](https://github.com/LostArtefacts/TR1X) to be able to randomize Tomb Raider 1. Follow the installation guide on the TR1X GitHub page, or you can also refer to [this video](https://www.youtube.com/watch?v=WfyHin4Hpgs) for guidance. Note that if using the TR1X installer, the default directory where your game will be located is your Documents folder as opposed to the base game folder. +> You must use [TR1X](https://github.com/LostArtefacts/TRX) to be able to randomize Tomb Raider 1. Follow the installation guide on the TR1X GitHub page, or you can also refer to [this video](https://www.youtube.com/watch?v=WfyHin4Hpgs) for guidance. Note that if using the TR1X installer, the default directory where your game will be located is your Documents folder as opposed to the base game folder. > > You must also ensure that you have the Unfinished Business levels files in your installation. These are available when using the TR1X installer, and we recommend that you choose the set that contains music triggers. The level files are also available to download manually from https://lostartefacts.dev/aux/tr1x/trub-music.zip - you can then simply extract the files into your TR1X data folder. *** > ### TR2 -> Use the [Version Swapper](https://github.com/TombRunners/tr2-version-swapper) or install and configure [TR2Main](https://github.com/Arsunt/TR2Main). -> -> _This step is entirely optional based on your own preference of gameplay._ +> You must use [TR2X](https://github.com/LostArtefacts/TRX) to be able to randomize Tomb Raider 2. Follow the installation guide on the TR2X GitHub page. Note that if using the TR2X installer, the default directory where your game will be located is your Documents folder as opposed to the base game folder. *** > ### TR3 > Use the [Version Swapper](https://github.com/TombRunners/tr3-version-swapper) or install and configure [tomb3](https://github.com/Trxyebeep/tomb3). Using tomb3 is recommended to enable all features in the randomizer, plus to enjoy all of the benefits of the improved game. See https://github.com/Trxyebeep/tomb3/blob/master/USING.md for detailed installation steps. @@ -131,7 +129,7 @@ You may see the following error message when you try to launch the randomizer - If however the randomizer doesn't launch, but you don't see the above error, you can install the runtime manually using the link below. -- https://aka.ms/dotnet/6.0/windowsdesktop-runtime-win-x64.exe +- https://aka.ms/dotnet/8.0/windowsdesktop-runtime-win-x64.exe ### General issues If you encounter error messages during randomization, the most likely cause is unclean data files. In this case, you should follow these steps.