From 65618e0af252345035595b8f89811833f2f0fe56 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 16:26:17 +0000
Subject: [PATCH 01/17] Create key item options
Options added for key item return path locations, range, whether or not enemies drop keys, and whether or not to maintain continuity (will be applied to the Seraph).
---
TREnvironmentEditor/Helpers/EMTag.cs | 1 +
.../Editors/RandomizerSettings.cs | 13 ++++++++++
.../Randomizers/Shared/EnvironmentPicker.cs | 4 ++++
TRRandomizerCore/TRRandomizerController.cs | 24 +++++++++++++++++++
TRRandomizerCore/TRRandomizerType.cs | 1 +
TRRandomizerCore/TRVersionSupport.cs | 1 +
6 files changed, 44 insertions(+)
diff --git a/TREnvironmentEditor/Helpers/EMTag.cs b/TREnvironmentEditor/Helpers/EMTag.cs
index 9f15b7572..cece54cfa 100644
--- a/TREnvironmentEditor/Helpers/EMTag.cs
+++ b/TREnvironmentEditor/Helpers/EMTag.cs
@@ -14,4 +14,5 @@ public enum EMTag
ReturnPath,
GeneralBugFix,
ShortcutFix,
+ KeyItemFix,
}
diff --git a/TRRandomizerCore/Editors/RandomizerSettings.cs b/TRRandomizerCore/Editors/RandomizerSettings.cs
index ad10d4f13..03f3dfa60 100644
--- a/TRRandomizerCore/Editors/RandomizerSettings.cs
+++ b/TRRandomizerCore/Editors/RandomizerSettings.cs
@@ -38,6 +38,11 @@ public class RandomizerSettings
public GlobeDisplayOption GlobeDisplay { get; set; }
public bool HardSecrets { get; set; }
public bool IncludeKeyItems { get; set; }
+ public bool AllowReturnPathLocations { get; set; }
+ public ItemRange KeyItemRange { get; set; }
+ public bool AllowEnemyKeyDrops { get; set; }
+ public bool MaintainKeyContinuity { get; set; }
+ public bool IncludeReturnPathLocations => AllowReturnPathLocations && AddReturnPaths;
public bool IncludeExtraPickups { get; set; }
public bool DevelopmentMode { get; set; }
public ItemDifficulty RandoItemDifficulty { get; set; }
@@ -199,6 +204,10 @@ public void ApplyConfig(Config config)
RandomizeItems = config.GetBool(nameof(RandomizeItems));
ItemSeed = config.GetInt(nameof(ItemSeed), defaultSeed);
IncludeKeyItems = config.GetBool(nameof(IncludeKeyItems), true);
+ KeyItemRange = (ItemRange)config.GetEnum(nameof(KeyItemRange), typeof(ItemRange), ItemRange.Medium);
+ AllowEnemyKeyDrops = config.GetBool(nameof(AllowEnemyKeyDrops), true);
+ MaintainKeyContinuity = config.GetBool(nameof(MaintainKeyContinuity), true);
+ AllowReturnPathLocations = config.GetBool(nameof(AllowReturnPathLocations), true);
IncludeExtraPickups = config.GetBool(nameof(IncludeExtraPickups), true);
RandoItemDifficulty = (ItemDifficulty)config.GetEnum(nameof(RandoItemDifficulty), typeof(ItemDifficulty), ItemDifficulty.Default);
RandomizeItemTypes = config.GetBool(nameof(RandomizeItemTypes), true);
@@ -359,6 +368,10 @@ public void StoreConfig(Config config)
config[nameof(RandomizeItems)] = RandomizeItems;
config[nameof(ItemSeed)] = ItemSeed;
config[nameof(IncludeKeyItems)] = IncludeKeyItems;
+ config[nameof(KeyItemRange)] = KeyItemRange;
+ config[nameof(AllowEnemyKeyDrops)] = AllowEnemyKeyDrops;
+ config[nameof(MaintainKeyContinuity)] = MaintainKeyContinuity;
+ config[nameof(AllowReturnPathLocations)] = AllowReturnPathLocations;
config[nameof(IncludeExtraPickups)] = IncludeExtraPickups;
config[nameof(RandoItemDifficulty)] = RandoItemDifficulty;
config[nameof(RandomizeItemTypes)] = RandomizeItemTypes;
diff --git a/TRRandomizerCore/Randomizers/Shared/EnvironmentPicker.cs b/TRRandomizerCore/Randomizers/Shared/EnvironmentPicker.cs
index 40235a222..ce6ee7ab0 100644
--- a/TRRandomizerCore/Randomizers/Shared/EnvironmentPicker.cs
+++ b/TRRandomizerCore/Randomizers/Shared/EnvironmentPicker.cs
@@ -55,6 +55,10 @@ public void LoadTags(RandomizerSettings settings, bool isCommunityPatch)
{
excludedTags.Add(EMTag.PuzzleRoom);
}
+ if (!settings.RandomizeItems || !settings.IncludeKeyItems)
+ {
+ excludedTags.Add(EMTag.KeyItemFix);
+ }
// If we're using a community patch, exclude mods that
// only apply to non-community patch and vice-versa.
diff --git a/TRRandomizerCore/TRRandomizerController.cs b/TRRandomizerCore/TRRandomizerController.cs
index 93a235f2b..d45d8ccbf 100644
--- a/TRRandomizerCore/TRRandomizerController.cs
+++ b/TRRandomizerCore/TRRandomizerController.cs
@@ -1453,6 +1453,30 @@ public bool IncludeKeyItems
set => LevelRandomizer.IncludeKeyItems = value;
}
+ public bool AllowReturnPathLocations
+ {
+ get => LevelRandomizer.AllowReturnPathLocations;
+ set => LevelRandomizer.AllowReturnPathLocations = value;
+ }
+
+ public ItemRange KeyItemRange
+ {
+ get => LevelRandomizer.KeyItemRange;
+ set => LevelRandomizer.KeyItemRange = value;
+ }
+
+ public bool AllowEnemyKeyDrops
+ {
+ get => LevelRandomizer.AllowEnemyKeyDrops;
+ set => LevelRandomizer.AllowEnemyKeyDrops = value;
+ }
+
+ public bool MaintainKeyContinuity
+ {
+ get => LevelRandomizer.MaintainKeyContinuity;
+ set => LevelRandomizer.MaintainKeyContinuity = value;
+ }
+
public bool IncludeExtraPickups
{
get => LevelRandomizer.IncludeExtraPickups;
diff --git a/TRRandomizerCore/TRRandomizerType.cs b/TRRandomizerCore/TRRandomizerType.cs
index f64e04d18..c65ae4fc9 100644
--- a/TRRandomizerCore/TRRandomizerType.cs
+++ b/TRRandomizerCore/TRRandomizerType.cs
@@ -61,4 +61,5 @@ public enum TRRandomizerType
ReturnPaths,
GeneralBugFixes,
ShortcutFixes,
+ KeyContinuity,
}
diff --git a/TRRandomizerCore/TRVersionSupport.cs b/TRRandomizerCore/TRVersionSupport.cs
index fadd641cf..171dc9881 100644
--- a/TRRandomizerCore/TRVersionSupport.cs
+++ b/TRRandomizerCore/TRVersionSupport.cs
@@ -74,6 +74,7 @@ internal class TRVersionSupport
TRRandomizerType.GlitchedSecrets,
TRRandomizerType.HardSecrets,
TRRandomizerType.Item,
+ TRRandomizerType.KeyContinuity,
TRRandomizerType.KeyItems,
TRRandomizerType.KeyItemTextures,
TRRandomizerType.Ladders,
From 143b6f0f23c0f618db2cb9822babb352ae9456f9 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 16:31:04 +0000
Subject: [PATCH 02/17] Update location properties
Key item, range and room type properties added. Tidied whitespace and unnecessary initialisers.
Moved trview JSON file out of core project.
---
.../trview}/randomizer.json | 34 +++++++++--
TRRandomizerCore/Helpers/ItemRange.cs | 8 +++
TRRandomizerCore/Helpers/Location.cs | 60 +++++++++----------
TRRandomizerCore/Helpers/RoomType.cs | 9 +++
TRRandomizerCore/TRRandomizerCore.csproj | 5 --
5 files changed, 73 insertions(+), 43 deletions(-)
rename {TRRandomizerCore/Resources/Shared => Resources/trview}/randomizer.json (68%)
create mode 100644 TRRandomizerCore/Helpers/ItemRange.cs
create mode 100644 TRRandomizerCore/Helpers/RoomType.cs
diff --git a/TRRandomizerCore/Resources/Shared/randomizer.json b/Resources/trview/randomizer.json
similarity index 68%
rename from TRRandomizerCore/Resources/Shared/randomizer.json
rename to Resources/trview/randomizer.json
index 96ee4cdab..dcc2aaa15 100644
--- a/TRRandomizerCore/Resources/Shared/randomizer.json
+++ b/Resources/trview/randomizer.json
@@ -31,11 +31,6 @@
"display": "Requires Damage",
"type": "boolean"
},
- "KeyItemGroupID": {
- "default": 0,
- "display": "Key Item Group ID",
- "type": "number"
- },
"LevelState": {
"default": "Any",
"display": "Level State",
@@ -69,6 +64,33 @@
"TowandAA"
],
"type": "string"
+ },
+ "RequiresReturnPath": {
+ "default": false,
+ "display": "Requires Return Path",
+ "type": "boolean"
+ },
+ "Range": {
+ "default": "Small",
+ "display": "Range",
+ "options": [ "Small", "Medium", "Large" ],
+ "type": "string"
+ },
+ "RoomType": {
+ "default": "Normal",
+ "display": "Room Type",
+ "options": [ "Normal", "ReturnPath", "Challenge", "Reward" ],
+ "type": "string"
+ },
+ "KeyItemsLow": {
+ "default": "",
+ "display": "Key IDs (min room inc.)",
+ "type": "string"
+ },
+ "KeyItemsHigh": {
+ "default": "",
+ "display": "Key IDs (max room exc.)",
+ "type": "string"
}
}
-}
\ No newline at end of file
+}
diff --git a/TRRandomizerCore/Helpers/ItemRange.cs b/TRRandomizerCore/Helpers/ItemRange.cs
new file mode 100644
index 000000000..5f5f2a148
--- /dev/null
+++ b/TRRandomizerCore/Helpers/ItemRange.cs
@@ -0,0 +1,8 @@
+namespace TRRandomizerCore.Helpers;
+
+public enum ItemRange
+{
+ Small,
+ Medium,
+ Large,
+}
diff --git a/TRRandomizerCore/Helpers/Location.cs b/TRRandomizerCore/Helpers/Location.cs
index 30d4edcc8..7e5a931a8 100644
--- a/TRRandomizerCore/Helpers/Location.cs
+++ b/TRRandomizerCore/Helpers/Location.cs
@@ -1,4 +1,5 @@
using System.ComponentModel;
+using System.Numerics;
namespace TRRandomizerCore.Helpers;
@@ -7,36 +8,26 @@ public class Location
public const string DefaultPackID = "TRRando";
public int X { get; set; }
-
public int Y { get; set; }
-
public int Z { get; set; }
-
public int Room { get; set; }
-
- [DefaultValue(16384)]
- public short Angle { get; set; }
-
public bool RequiresGlitch { get; set; }
-
public Difficulty Difficulty { get; set; }
-
public bool IsInRoomSpace { get; set; }
-
- public bool IsItem { get; set; }
-
+ public ItemRange Range { get; set; }
+ public RoomType RoomType { get; set; }
public bool VehicleRequired { get; set; }
-
- [DefaultValue(true)]
- public bool Validated { get; set; }
-
public bool RequiresDamage { get; set; }
-
+ public bool InvalidatesRoom { get; set; }
public int KeyItemGroupID { get; set; }
+ public bool RequiresReturnPath { get; set; }
+ public LevelState LevelState { get; set; }
- public bool InvalidatesRoom { get; set; }
+ [DefaultValue(16384)]
+ public short Angle { get; set; }
- public LevelState LevelState { get; set; }
+ [DefaultValue(true)]
+ public bool Validated { get; set; }
[DefaultValue(-1)]
public int EntityIndex { get; set; }
@@ -47,26 +38,21 @@ public class Location
[DefaultValue(DefaultPackID)]
public string PackID { get; set; }
+ [DefaultValue("")]
+ public string KeyItemsLow { get; set; }
+
+ [DefaultValue("")]
+ public string KeyItemsHigh { get; set; }
+
public Location()
{
- X = 0;
- Y = 0;
- Z = 0;
- Room = 0;
Angle = 16384;
- RequiresGlitch = false;
- Difficulty = Difficulty.Easy;
- IsInRoomSpace = false;
- IsItem = false;
- VehicleRequired = false;
Validated = true;
- RequiresDamage = false;
- KeyItemGroupID = 0;
- InvalidatesRoom = false;
- LevelState = LevelState.Any;
EntityIndex = -1;
TargetType = -1;
PackID = DefaultPackID;
+ KeyItemsLow = string.Empty;
+ KeyItemsHigh = string.Empty;
}
public bool IsEquivalent(Location other)
@@ -76,4 +62,14 @@ public bool IsEquivalent(Location other)
&& other.Z == Z
&& other.Room == Room;
}
+
+ public Vector3 ToVector()
+ {
+ return new(X, Y, Z);
+ }
+
+ public override string ToString()
+ {
+ return $"{base.ToString()} X: {X} Y: {Y} Z: {Z} Room: {Room} Angle: {Angle}";
+ }
}
diff --git a/TRRandomizerCore/Helpers/RoomType.cs b/TRRandomizerCore/Helpers/RoomType.cs
new file mode 100644
index 000000000..cd2d14071
--- /dev/null
+++ b/TRRandomizerCore/Helpers/RoomType.cs
@@ -0,0 +1,9 @@
+namespace TRRandomizerCore.Helpers;
+
+public enum RoomType
+{
+ Normal,
+ ReturnPath,
+ Challenge,
+ Reward,
+}
diff --git a/TRRandomizerCore/TRRandomizerCore.csproj b/TRRandomizerCore/TRRandomizerCore.csproj
index b7935f9fd..36cfc6363 100644
--- a/TRRandomizerCore/TRRandomizerCore.csproj
+++ b/TRRandomizerCore/TRRandomizerCore.csproj
@@ -33,9 +33,4 @@
PreserveNewest
-
-
- Never
-
-
From 60a0b4ba9d37de97074d50d4f195fd90d8d13834 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 16:43:11 +0000
Subject: [PATCH 03/17] Update location generation
More robust height checks added for water scenarios - this prevents items being placed in wading locations for TR1.
Items will not be placed on room portals or where mincarts stop.
Fixed tiles with pickups triggers being excluded.
Improved height difference tests between flipped rooms. This targets TR3 where a location has triangles, but the triangulation differs in the flipped state.
Added a key item mode flag to allow individual tiles to be excluded in the JSON, but these remain valid for regular items e.g. Lost Valley room 1 tile [7,3].
---
LocationExport/Program.cs | 1 -
TRFDControl/Utilities/FDUtilities.cs | 48 +++++++++++--
TRLevelControl/Helpers/TRConsts.cs | 2 +
.../Locations/AbstractLocationGenerator.cs | 68 +++++++++++--------
.../Locations/TR1LocationGenerator.cs | 5 +-
.../Locations/TR2LocationGenerator.cs | 5 +-
.../Locations/TR3LocationGenerator.cs | 5 +-
7 files changed, 94 insertions(+), 40 deletions(-)
diff --git a/LocationExport/Program.cs b/LocationExport/Program.cs
index 8d4fac3b6..2cd36021f 100644
--- a/LocationExport/Program.cs
+++ b/LocationExport/Program.cs
@@ -5,7 +5,6 @@
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRRandomizerCore.Helpers;
-using TRRandomizerCore.Randomizers;
using TRRandomizerCore.Utilities;
namespace LocationExport;
diff --git a/TRFDControl/Utilities/FDUtilities.cs b/TRFDControl/Utilities/FDUtilities.cs
index 9c4476765..0f32e62e2 100644
--- a/TRFDControl/Utilities/FDUtilities.cs
+++ b/TRFDControl/Utilities/FDUtilities.cs
@@ -513,15 +513,23 @@ private static int CheckCeilingTriangle(FDControl floorData, TRRoomSector sector
return 0;
}
- public static int GetHeight(int x, int z, short roomIndex, TR1Level level, FDControl floorData)
+ public static int GetHeight(int x, int z, short roomIndex, TR1Level level, FDControl floorData, bool waterOnly)
{
TRRoom room = level.Rooms[roomIndex];
- TRRoomSector baseSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
+ if (waterOnly && !room.ContainsWater)
+ {
+ return TRConsts.NoHeight;
+ }
+ TRRoomSector baseSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
TRRoomSector floorSector = baseSector;
while (floorSector.RoomBelow != TRConsts.NoRoom)
{
room = level.Rooms[floorSector.RoomBelow];
+ if (waterOnly && !room.ContainsWater)
+ {
+ break;
+ }
floorSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
}
@@ -529,21 +537,33 @@ public static int GetHeight(int x, int z, short roomIndex, TR1Level level, FDCon
while (ceilingSector.RoomAbove != TRConsts.NoRoom)
{
room = level.Rooms[ceilingSector.RoomAbove];
+ if (waterOnly && !room.ContainsWater)
+ {
+ break;
+ }
ceilingSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
}
return GetHeight(x, z, floorSector, ceilingSector, floorData);
}
- public static int GetHeight(int x, int z, short roomIndex, TR2Level level, FDControl floorData)
+ public static int GetHeight(int x, int z, short roomIndex, TR2Level level, FDControl floorData, bool waterOnly)
{
TR2Room room = level.Rooms[roomIndex];
- TRRoomSector baseSector = GetRoomSector(x, z, room.SectorList, room.Info, room.NumZSectors);
+ if (waterOnly && !room.ContainsWater)
+ {
+ return TRConsts.NoHeight;
+ }
+ TRRoomSector baseSector = GetRoomSector(x, z, room.SectorList, room.Info, room.NumZSectors);
TRRoomSector floorSector = baseSector;
while (floorSector.RoomBelow != TRConsts.NoRoom)
{
room = level.Rooms[floorSector.RoomBelow];
+ if (waterOnly && !room.ContainsWater)
+ {
+ break;
+ }
floorSector = GetRoomSector(x, z, room.SectorList, room.Info, room.NumZSectors);
}
@@ -551,21 +571,33 @@ public static int GetHeight(int x, int z, short roomIndex, TR2Level level, FDCon
while (ceilingSector.RoomAbove != TRConsts.NoRoom)
{
room = level.Rooms[ceilingSector.RoomAbove];
+ if (waterOnly && !room.ContainsWater)
+ {
+ break;
+ }
ceilingSector = GetRoomSector(x, z, room.SectorList, room.Info, room.NumZSectors);
}
return GetHeight(x, z, floorSector, ceilingSector, floorData);
}
- public static int GetHeight(int x, int z, short roomIndex, TR3Level level, FDControl floorData)
+ public static int GetHeight(int x, int z, short roomIndex, TR3Level level, FDControl floorData, bool waterOnly)
{
TR3Room room = level.Rooms[roomIndex];
- TRRoomSector baseSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
+ if (waterOnly && !room.ContainsWater)
+ {
+ return TRConsts.NoHeight;
+ }
+ TRRoomSector baseSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
TRRoomSector floorSector = baseSector;
while (floorSector.RoomBelow != TRConsts.NoRoom)
{
room = level.Rooms[floorSector.RoomBelow];
+ if (waterOnly && !room.ContainsWater)
+ {
+ break;
+ }
floorSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
}
@@ -573,6 +605,10 @@ public static int GetHeight(int x, int z, short roomIndex, TR3Level level, FDCon
while (ceilingSector.RoomAbove != TRConsts.NoRoom)
{
room = level.Rooms[ceilingSector.RoomAbove];
+ if (waterOnly && !room.ContainsWater)
+ {
+ break;
+ }
ceilingSector = GetRoomSector(x, z, room.Sectors, room.Info, room.NumZSectors);
}
diff --git a/TRLevelControl/Helpers/TRConsts.cs b/TRLevelControl/Helpers/TRConsts.cs
index ceb7bd9d3..9351cc169 100644
--- a/TRLevelControl/Helpers/TRConsts.cs
+++ b/TRLevelControl/Helpers/TRConsts.cs
@@ -17,4 +17,6 @@ public static class TRConsts
public const int NoRoom = 255;
public const int WallShift = 10;
+ public const int NoHeight = -32512;
+ public const int WallClicks = -127;
}
diff --git a/TRRandomizerCore/Utilities/Locations/AbstractLocationGenerator.cs b/TRRandomizerCore/Utilities/Locations/AbstractLocationGenerator.cs
index 5c53008fe..1abd0ba14 100644
--- a/TRRandomizerCore/Utilities/Locations/AbstractLocationGenerator.cs
+++ b/TRRandomizerCore/Utilities/Locations/AbstractLocationGenerator.cs
@@ -18,19 +18,19 @@ public abstract class AbstractLocationGenerator where L : class
protected FDControl _floorData;
protected ISet _excludedSectors, _antiExcludedSectors; // Anti-excluded => not necessarily included
- public List Generate(L level, List exclusions)
+ public List Generate(L level, List exclusions, bool keyItemMode = false)
{
_floorData = new FDControl();
ReadFloorData(level);
// Manual exclusions or known rooms such as swamps we wish to eliminate first
- DetermineBaseExcludedSectors(level, exclusions);
+ DetermineBaseExcludedSectors(level, exclusions, keyItemMode);
// Check all remaining sectors and build a list of valid locations
return GetValidLocations(level);
}
- protected void DetermineBaseExcludedSectors(L level, List exclusions)
+ protected void DetermineBaseExcludedSectors(L level, List exclusions, bool keyItemMode)
{
_excludedSectors = new HashSet();
_antiExcludedSectors = new HashSet();
@@ -44,8 +44,10 @@ protected void DetermineBaseExcludedSectors(L level, List exclusions)
_antiExcludedSectors.Add(GetSector(location, level));
}
- // Check all other room or individual location exclusions
- List mainExclusions = exclusions.FindAll(l => l.Validated);
+ // Check all other room or individual location exclusions. If TargetType is set,
+ // it applies only to key item mode.
+ List mainExclusions = exclusions.FindAll(
+ l => l.Validated && (l.TargetType == -1 || keyItemMode));
foreach (Location location in mainExclusions)
{
if (location.InvalidatesRoom)
@@ -136,11 +138,6 @@ private bool RoomHasCollisionalPortal(L level, short room)
{
foreach (TRRoomSector sector in GetRoomSectors(level, room))
{
- if (sector.IsImpenetrable)
- {
- continue;
- }
-
// Vertical?
if (sector.RoomAbove != TRConsts.NoRoom || sector.RoomBelow != TRConsts.NoRoom)
{
@@ -148,12 +145,10 @@ private bool RoomHasCollisionalPortal(L level, short room)
}
// Horizontal?
- if (sector.FDIndex != 0)
+ if (sector.FDIndex != 0
+ && _floorData.Entries[sector.FDIndex].Any(e => e is FDPortalEntry))
{
- if (_floorData.Entries[sector.FDIndex].Any(e => e is FDPortalEntry))
- {
- return true;
- }
+ return true;
}
}
@@ -197,7 +192,7 @@ protected void ExcludeFlipSectors(L level, short room, short flipRoom)
int flipIndex = flipSectors.IndexOf(flipSector);
Location flipLoc = CreateLocation(level, flipRoom, flipIndex, flipSector);
- if (flipLoc == null || flipLoc.Y != roomLoc.Y || flipSector.IsImpenetrable)
+ if (flipLoc == null || roomLoc.ToVector() != flipLoc.ToVector() || flipSector.IsImpenetrable)
{
_excludedSectors.Add(roomSector);
}
@@ -245,8 +240,9 @@ private Location CreateLocation(L level, short roomIndex, int sectorIndex, TRRoo
{
List entries = _floorData.Entries[sector.FDIndex];
bool invalidFloorData = false;
- foreach (FDEntry entry in entries)
+ for (int i = 0; i < entries.Count; i++)
{
+ FDEntry entry = entries[i];
if (entry is FDTriggerEntry trigger)
{
// Basic trigger checks - e.g. end level, underwater current
@@ -256,6 +252,11 @@ private Location CreateLocation(L level, short roomIndex, int sectorIndex, TRRoo
break;
}
}
+ else if (entry is FDPortalEntry)
+ {
+ invalidFloorData = true;
+ break;
+ }
else if (entry is FDKillLaraEntry)
{
// For obvious reasons
@@ -300,6 +301,11 @@ private Location CreateLocation(L level, short roomIndex, int sectorIndex, TRRoo
break;
}
}
+ else if (entry is TR3MinecartRotateLeftEntry && i < entries.Count - 1 && entries[i + 1] is TR3MinecartRotateRightEntry)
+ {
+ // Minecart stops here, so block this tile.
+ invalidFloorData = true;
+ }
}
// Bail out if we don't like the look of the FD here
@@ -324,6 +330,15 @@ private Location CreateLocation(L level, short roomIndex, int sectorIndex, TRRoo
location.Z += dz;
location.Angle = angle;
+ if (!WadingAllowed)
+ {
+ int waterHeight = GetHeight(level, location, true);
+ if (waterHeight != TRConsts.NoHeight && waterHeight < _standardHeight)
+ {
+ return null;
+ }
+ }
+
// Check the absolute height from floor to ceiling to ensure Lara can be here.
// Test around the mid-point for cases of steep ceiling slopes.
Location testLocation = new()
@@ -337,7 +352,7 @@ private Location CreateLocation(L level, short roomIndex, int sectorIndex, TRRoo
{
testLocation.X = location.X + x * TRConsts.Step1 / 2;
testLocation.Z = location.Z + z * TRConsts.Step1 / 2;
- int height = GetHeight(level, testLocation);
+ int height = GetHeight(level, testLocation, false);
if (height < (CrawlspacesAllowed ? _crawlspaceHeight : _standardHeight))
{
return null;
@@ -352,20 +367,18 @@ private bool IsSectorInvalid(TRRoomSector sector)
{
// Inside a wall, on a "normal" slope, or too near the ceiling
return _excludedSectors.Contains(sector)
- || sector.IsImpenetrable
+ || sector.Floor == TRConsts.WallClicks
+ || sector.Ceiling == TRConsts.WallClicks
|| sector.IsSlipperySlope;
}
private static bool IsTriggerInvalid(FDTriggerEntry trigger)
{
// Any trigger types where we don't want items placed
- return trigger.TrigType == FDTrigType.Pickup
- || trigger.TrigActionList.Any
- (
- a =>
- a.TrigAction == FDTrigAction.UnderwaterCurrent
- || a.TrigAction == FDTrigAction.EndLevel
- );
+ return trigger.TrigActionList.Any(a =>
+ a.TrigAction == FDTrigAction.UnderwaterCurrent
+ || a.TrigAction == FDTrigAction.EndLevel
+ );
}
public Vector4? GetBestSlantMidpoint(FDSlantEntry slant)
@@ -699,6 +712,7 @@ private static Location CreateLocation(short roomIndex, TRRoomSector sector, int
protected abstract ushort GetRoomDepth(L level, short room);
protected abstract int GetRoomYTop(L level, short room);
protected abstract Vector2 GetRoomPosition(L level, short room);
- protected abstract int GetHeight(L level, Location location);
+ protected abstract int GetHeight(L level, Location location, bool waterOnly);
public abstract bool CrawlspacesAllowed { get; }
+ public abstract bool WadingAllowed { get; }
}
diff --git a/TRRandomizerCore/Utilities/Locations/TR1LocationGenerator.cs b/TRRandomizerCore/Utilities/Locations/TR1LocationGenerator.cs
index bb8b8bd2e..0308390be 100644
--- a/TRRandomizerCore/Utilities/Locations/TR1LocationGenerator.cs
+++ b/TRRandomizerCore/Utilities/Locations/TR1LocationGenerator.cs
@@ -8,6 +8,7 @@ namespace TRRandomizerCore.Utilities;
public class TR1LocationGenerator : AbstractLocationGenerator
{
public override bool CrawlspacesAllowed => false;
+ public override bool WadingAllowed => false;
protected override void ReadFloorData(TR1Level level)
{
@@ -87,8 +88,8 @@ protected override Vector2 GetRoomPosition(TR1Level level, short room)
return new Vector2(level.Rooms[room].Info.X, level.Rooms[room].Info.Z);
}
- protected override int GetHeight(TR1Level level, Location location)
+ protected override int GetHeight(TR1Level level, Location location, bool waterOnly)
{
- return FDUtilities.GetHeight(location.X, location.Z, (short)location.Room, level, _floorData);
+ return FDUtilities.GetHeight(location.X, location.Z, (short)location.Room, level, _floorData, waterOnly);
}
}
diff --git a/TRRandomizerCore/Utilities/Locations/TR2LocationGenerator.cs b/TRRandomizerCore/Utilities/Locations/TR2LocationGenerator.cs
index 574a1e0e5..261f160fd 100644
--- a/TRRandomizerCore/Utilities/Locations/TR2LocationGenerator.cs
+++ b/TRRandomizerCore/Utilities/Locations/TR2LocationGenerator.cs
@@ -8,6 +8,7 @@ namespace TRRandomizerCore.Utilities;
public class TR2LocationGenerator : AbstractLocationGenerator
{
public override bool CrawlspacesAllowed => false;
+ public override bool WadingAllowed => true;
protected override void ReadFloorData(TR2Level level)
{
@@ -87,8 +88,8 @@ protected override Vector2 GetRoomPosition(TR2Level level, short room)
return new Vector2(level.Rooms[room].Info.X, level.Rooms[room].Info.Z);
}
- protected override int GetHeight(TR2Level level, Location location)
+ protected override int GetHeight(TR2Level level, Location location, bool waterOnly)
{
- return FDUtilities.GetHeight(location.X, location.Z, (short)location.Room, level, _floorData);
+ return FDUtilities.GetHeight(location.X, location.Z, (short)location.Room, level, _floorData, waterOnly);
}
}
diff --git a/TRRandomizerCore/Utilities/Locations/TR3LocationGenerator.cs b/TRRandomizerCore/Utilities/Locations/TR3LocationGenerator.cs
index 215e174a7..264406573 100644
--- a/TRRandomizerCore/Utilities/Locations/TR3LocationGenerator.cs
+++ b/TRRandomizerCore/Utilities/Locations/TR3LocationGenerator.cs
@@ -8,6 +8,7 @@ namespace TRRandomizerCore.Utilities;
public class TR3LocationGenerator : AbstractLocationGenerator
{
public override bool CrawlspacesAllowed => true;
+ public override bool WadingAllowed => true;
protected override void ReadFloorData(TR3Level level)
{
@@ -87,8 +88,8 @@ protected override Vector2 GetRoomPosition(TR3Level level, short room)
return new Vector2(level.Rooms[room].Info.X, level.Rooms[room].Info.Z);
}
- protected override int GetHeight(TR3Level level, Location location)
+ protected override int GetHeight(TR3Level level, Location location, bool waterOnly)
{
- return FDUtilities.GetHeight(location.X, location.Z, (short)location.Room, level, _floorData);
+ return FDUtilities.GetHeight(location.X, location.Z, (short)location.Room, level, _floorData, waterOnly);
}
}
From cbd9aab69d951760ece5668482f5c7bd79446418 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 16:47:09 +0000
Subject: [PATCH 04/17] Update TR1 environment changes
Update to door mirroring to avoid treating doors that are in front of each other as side-by-side double doors. This only affected the ones at the end of Vilcabamba, which wasn't too big an issue before, but it would be possible with the coming key item changes for the gold idol to appear between the doors, so it would lead to a softlock.
General environment updates:
City of Khamoon - makes sure a door is open after leaving a challenge room, as key items may end up here.
Obelisk - a mod may add a key to exit the level. We now leave this in a default spot rather than picking one from the mods, and key item rando will detect and move it.
Mines - return paths added in the TNT area. And similar to Obelisk, we make an added key item static for key item rando to detect.
---
.../Model/Types/Mirroring/EMMirrorFunction.cs | 20 +-
.../Environment/LEVEL10A.PHD-Environment.json | 315 +++++++++---------
.../Environment/LEVEL8A.PHD-Environment.json | 19 ++
.../Environment/LEVEL8B.PHD-Environment.json | 70 +---
4 files changed, 188 insertions(+), 236 deletions(-)
diff --git a/TREnvironmentEditor/Model/Types/Mirroring/EMMirrorFunction.cs b/TREnvironmentEditor/Model/Types/Mirroring/EMMirrorFunction.cs
index d26fe9bdb..95edbf867 100644
--- a/TREnvironmentEditor/Model/Types/Mirroring/EMMirrorFunction.cs
+++ b/TREnvironmentEditor/Model/Types/Mirroring/EMMirrorFunction.cs
@@ -1,6 +1,7 @@
using System.Diagnostics;
using TRFDControl;
using TRFDControl.FDEntryTypes;
+using TRLevelControl;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRModelTransporter.Model.Textures;
@@ -944,12 +945,19 @@ private static bool AreDoubleDoors(TREntity door1, TREntity door2)
where T : Enum
{
// If the difference between X or Z position is one sector size, they share the same Y val,
- // and they are facing the same diretion, then they're double doors.
- return !EqualityComparer.Default.Equals(door1.TypeID, door2.TypeID)
- && door1.Room == door2.Room
- && door1.Y == door2.Y
- && door1.Angle == door2.Angle
- && (Math.Abs(door1.X - door2.X) == SectorSize || Math.Abs(door1.Z - door2.Z) == SectorSize);
+ // and they are facing the same direction, then they're double doors.
+ if (EqualityComparer.Default.Equals(door1.TypeID, door2.TypeID)
+ || door1.Room != door2.Room
+ || door1.Y != door2.Y
+ || door1.Angle != door2.Angle)
+ {
+ return false;
+ }
+
+ // Be careful not to shift doors that are in front of each other, like at the end of Vilcabamba.
+ return (door1.Angle == _north || door1.Angle == _south)
+ ? Math.Abs(door1.X - door2.X) == TRConsts.Step4
+ : Math.Abs(door1.Z - door2.Z) == TRConsts.Step4;
}
private void MirrorNullMeshes(TR1Level level)
diff --git a/TRRandomizerCore/Resources/TR1/Environment/LEVEL10A.PHD-Environment.json b/TRRandomizerCore/Resources/TR1/Environment/LEVEL10A.PHD-Environment.json
index a1b891251..a3d380c63 100644
--- a/TRRandomizerCore/Resources/TR1/Environment/LEVEL10A.PHD-Environment.json
+++ b/TRRandomizerCore/Resources/TR1/Environment/LEVEL10A.PHD-Environment.json
@@ -53,6 +53,146 @@
}
}
]
+ },
+ {
+ "Comments": "Add some trapdoors as return paths near the TNT.",
+ "EMType": 51,
+ "Tags": [
+ 9
+ ],
+ "TypeID": 66,
+ "Flags": 15872,
+ "Location": {
+ "X": 92672,
+ "Y": 6144,
+ "Z": 62976,
+ "Room": 48,
+ "Angle": -16384
+ }
+ },
+ {
+ "EMType": 51,
+ "Tags": [
+ 9
+ ],
+ "TypeID": 66,
+ "Flags": 15872,
+ "Location": {
+ "X": 82432,
+ "Y": 3584,
+ "Z": 68096,
+ "Room": 50
+ }
+ },
+ {
+ "Comments": "Add dummy triggers.",
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "EntityLocation": -2,
+ "Trigger": {
+ "TrigType": 8,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": -2
+ }
+ ]
+ }
+ },
+ {
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 82432,
+ "Y": 3584,
+ "Z": 68096,
+ "Room": 84
+ }
+ ],
+ "EntityLocation": -1,
+ "Trigger": {
+ "TrigType": 8,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": -1
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "And regular triggers.",
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 92672,
+ "Y": 5888,
+ "Z": 64000,
+ "Room": 48
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": -2
+ }
+ ]
+ }
+ },
+ {
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 83456,
+ "Y": 3584,
+ "Z": 67072,
+ "Room": 51
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": -1
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Reset the boulder trap too.",
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 82432,
+ "Y": 4224,
+ "Z": 58880,
+ "Room": 46
+ }
+ ],
+ "Trigger": {
+ "TrigType": 6,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 86
+ }
+ ]
+ }
}
],
"Any": [
@@ -421,7 +561,7 @@
}
},
{
- "Comments": "Add a keyhole - the key itself will be added in ConditionalAllWithin.",
+ "Comments": "Add a keyhole.",
"EMType": 51,
"TypeID": 137,
"Intensity": -1,
@@ -466,6 +606,18 @@
}
]
}
+ },
+ {
+ "Comments": "Default key location - key item rando can move this.",
+ "EMType": 51,
+ "TypeID": 129,
+ "Intensity": 4096,
+ "Location": {
+ "X": 53760,
+ "Y": -7168,
+ "Z": 24064,
+ "Room": 3
+ }
}
],
[
@@ -7452,166 +7604,7 @@
]
}
],
- "ConditionalAllWithin": [
- {
- "Condition": {
- "Comments": "If the portal between rooms 21 and 17 has been reduced, a key is now needed to pass.",
- "ConditionType": 23,
- "Location": {
- "X": 60928,
- "Y": -3584,
- "Z": 49664,
- "Room": 21
- }
- },
- "OnTrue": [
- [
- {
- "Comments": "Potential key location.",
- "EMType": 51,
- "TypeID": 129,
- "Intensity": 4096,
- "Location": {
- "X": 53760,
- "Y": -7168,
- "Z": 24064,
- "Room": 3
- }
- }
- ],
- [
- {
- "Comments": "Put the key in the shack.",
- "EMType": 51,
- "TypeID": 129,
- "Flags": 256,
- "Intensity": 4096,
- "Location": {
- "X": 68096,
- "Y": -7168,
- "Z": 28160,
- "Room": 94
- }
- },
- {
- "Comments": "Trigger the key once the fuses are used (same method as pistols).",
- "EMType": 68,
- "Locations": [
- {
- "X": 66048,
- "Y": -7296,
- "Z": 32256,
- "Room": 96
- },
- {
- "X": 67072,
- "Y": -7168,
- "Z": 32256,
- "Room": 96
- },
- {
- "X": 68096,
- "Y": -7296,
- "Z": 32256,
- "Room": 97
- },
- {
- "X": 69120,
- "Y": -7296,
- "Z": 32256,
- "Room": 97
- },
- {
- "X": 70144,
- "Y": -7680,
- "Z": 32256,
- "Room": 98
- },
- {
- "X": 71168,
- "Y": -7808,
- "Z": 32256,
- "Room": 98
- },
- {
- "X": 72192,
- "Y": -7424,
- "Z": 32256,
- "Room": 98
- },
- {
- "X": 73216,
- "Y": -7808,
- "Z": 32256,
- "Room": 98
- }
- ],
- "Actions": [
- {
- "Parameter": -1
- }
- ]
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 51,
- "TypeID": 129,
- "Intensity": 4096,
- "Location": {
- "X": 61952,
- "Y": -10496,
- "Z": 29184,
- "Room": 32
- }
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 51,
- "TypeID": 129,
- "Intensity": 4096,
- "Location": {
- "X": 77312,
- "Y": -10240,
- "Z": 24064,
- "Room": 42
- }
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 51,
- "TypeID": 129,
- "Intensity": 4096,
- "Location": {
- "X": 82432,
- "Y": -10240,
- "Z": 27136,
- "Room": 35
- }
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 51,
- "TypeID": 129,
- "Intensity": 4096,
- "Location": {
- "X": 99840,
- "Y": -7808,
- "Z": 31232,
- "Room": 37
- }
- }
- ]
- ]
- }
- ],
+ "ConditionalAllWithin": [],
"ConditionalAll": [
{
"Condition": {
diff --git a/TRRandomizerCore/Resources/TR1/Environment/LEVEL8A.PHD-Environment.json b/TRRandomizerCore/Resources/TR1/Environment/LEVEL8A.PHD-Environment.json
index 5fff75d06..7eadb32a7 100644
--- a/TRRandomizerCore/Resources/TR1/Environment/LEVEL8A.PHD-Environment.json
+++ b/TRRandomizerCore/Resources/TR1/Environment/LEVEL8A.PHD-Environment.json
@@ -4052,6 +4052,25 @@
]
}
},
+ {
+ "Comments": "Open the door from the other side, just in case.",
+ "EMType": 61,
+ "Locations": [
+ {
+ "X": 28160,
+ "Y": -384,
+ "Z": 6656
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": -1
+ }
+ ]
+ }
+ },
{
"Comments": "Ensure the swinging blade model is available.",
"EMType": 145,
diff --git a/TRRandomizerCore/Resources/TR1/Environment/LEVEL8B.PHD-Environment.json b/TRRandomizerCore/Resources/TR1/Environment/LEVEL8B.PHD-Environment.json
index a0a4c7dcc..c6fcd855c 100644
--- a/TRRandomizerCore/Resources/TR1/Environment/LEVEL8B.PHD-Environment.json
+++ b/TRRandomizerCore/Resources/TR1/Environment/LEVEL8B.PHD-Environment.json
@@ -270,7 +270,7 @@
"Intensity1": 4096
},
{
- "Comments": "Move it somewhere reachable. Conditional changes below may shift it elsewhere.",
+ "Comments": "Move it somewhere reachable - key item rando can move this.",
"EMType": 44,
"EntityIndex": 12,
"TargetLocation": {
@@ -4148,74 +4148,6 @@
}
],
"ConditionalAllWithin": [
- {
- "Condition": {
- "Comments": "If the spare switch from City is now a key, relocate it.",
- "ConditionType": 0,
- "EntityIndex": 12,
- "EntityType": 129
- },
- "OnTrue": [
- [
- {
- "Comments": "Default location from Any.",
- "EMType": 1000
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 44,
- "EntityIndex": 12,
- "TargetLocation": {
- "X": 37376,
- "Y": -1280,
- "Z": 31232,
- "Room": 67
- }
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 44,
- "EntityIndex": 12,
- "TargetLocation": {
- "X": 36352,
- "Y": -3072,
- "Z": 39424,
- "Room": 59
- }
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 44,
- "EntityIndex": 12,
- "TargetLocation": {
- "X": 48640,
- "Y": 7680,
- "Z": 50688,
- "Room": 63
- }
- }
- ],
- [
- {
- "Comments": "Potential key location.",
- "EMType": 44,
- "EntityIndex": 12,
- "TargetLocation": {
- "X": 34304,
- "Y": 1024,
- "Z": 40448,
- "Room": 62
- }
- }
- ]
- ]
- },
{
"Condition": {
"Comments": "Check if room 3 contains water and move the slots accordingly.",
From 053eab5992b752ccb24d6bb92ce9edda17dbee29 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 16:53:09 +0000
Subject: [PATCH 05/17] Update TR2 environment changes
Return paths added to Opera, Wreck, The Deck, Tibet, and Ice Palace.
Fixed flipmap issues in Catacombs ahead of the initial mask being randomized.
Added various trigger checks ahead of key item rando. This includes converting some triggers to pickup type so they can be detected and moved, like the mask in Ice Palace.
TR2 also has several checks for secret repositioning in environment mods e.g. after we have drained an area. This was specifically looking for stone, jade or gold in some cases. Secret zoning will change so these mods now look for each type.
---
.../Environment/CATACOMB.TR2-Environment.json | 170 ++
.../TR2/Environment/DECK.TR2-Environment.json | 42 +-
.../Environment/EMPRTOMB.TR2-Environment.json | 98 +-
.../Environment/FLOATING.TR2-Environment.json | 321 ++--
.../Environment/ICECAVE.TR2-Environment.json | 802 +++++++++
.../TR2/Environment/KEEL.TR2-Environment.json | 86 +
.../Environment/MONASTRY.TR2-Environment.json | 14 +
.../Environment/OPERA.TR2-Environment.json | 483 +++++-
.../Environment/PLATFORM.TR2-Environment.json | 8 +
.../Environment/SKIDOO.TR2-Environment.json | 1521 +++++++++++++++--
.../Environment/UNWATER.TR2-Environment.json | 32 +-
11 files changed, 3294 insertions(+), 283 deletions(-)
diff --git a/TRRandomizerCore/Resources/TR2/Environment/CATACOMB.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/CATACOMB.TR2-Environment.json
index 9baaa5944..7e31d56f1 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/CATACOMB.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/CATACOMB.TR2-Environment.json
@@ -112,6 +112,130 @@
},
"IsNegativeX": true
},
+ {
+ "Comments": "Restore missing breakable tile triggers in flip room 116.",
+ "EMType": 63,
+ "Locations": [
+ {
+ "X": 34304,
+ "Y": 3840,
+ "Z": 44544,
+ "Room": 116
+ }
+ ],
+ "BaseLocation": {
+ "X": 34304,
+ "Y": 3840,
+ "Z": 44544,
+ "Room": 98
+ }
+ },
+ {
+ "EMType": 63,
+ "Locations": [
+ {
+ "X": 35328,
+ "Y": 3840,
+ "Z": 44544,
+ "Room": 116
+ }
+ ],
+ "BaseLocation": {
+ "X": 35328,
+ "Y": 3840,
+ "Z": 44544,
+ "Room": 98
+ }
+ },
+ {
+ "EMType": 63,
+ "Locations": [
+ {
+ "X": 36352,
+ "Y": 3840,
+ "Z": 44544,
+ "Room": 116
+ }
+ ],
+ "BaseLocation": {
+ "X": 36352,
+ "Y": 3840,
+ "Z": 44544,
+ "Room": 98
+ }
+ },
+ {
+ "Comments": "Restore missing enemy triggers in flip room 116.",
+ "EMType": 63,
+ "Locations": [
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 37376,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 38400,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 39424,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 40448,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 41472,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 42496,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 43520,
+ "Room": 116
+ },
+ {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 44544,
+ "Room": 116
+ }
+ ],
+ "BaseLocation": {
+ "X": 32256,
+ "Y": 5376,
+ "Z": 37376,
+ "Room": 98
+ }
+ },
+ {
+ "Comments": "Restore the missing ladder FD in room 116.",
+ "EMType": 0,
+ "TextureMap": {},
+ "Location": {
+ "X": 36352,
+ "Y": 5376,
+ "Z": 44544,
+ "Room": 116
+ },
+ "IsPositiveX": true
+ },
{
"EMType": 0,
"Tags": [
@@ -2707,6 +2831,52 @@
"TargetSpriteID": 175
}
]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #9 is in its default position. If not, move the trigger to its new location.",
+ "ConditionType": 0,
+ "EntityIndex": 9,
+ "X": 27136,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 2
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 27136,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 2
+ },
+ "EntityLocation": 9
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #112 is in its default position. If not, move the trigger to its new location.",
+ "ConditionType": 0,
+ "EntityIndex": 112,
+ "X": 19968,
+ "Y": 10496,
+ "Z": 54784,
+ "Room": 67
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 19968,
+ "Y": 10496,
+ "Z": 54784,
+ "Room": 67
+ },
+ "EntityLocation": 112
+ }
+ ]
}
],
"ConditionalOneOf": [],
diff --git a/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json
index bc2e78c57..44e2148c1 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/DECK.TR2-Environment.json
@@ -1,5 +1,45 @@
{
- "All": [],
+ "All": [
+ {
+ "Comments": "Replace the trigger under the cabin key with a pad (only if key item rando is enabled).",
+ "EMType": 69,
+ "Tags": [
+ 12
+ ],
+ "Location": {
+ "X": 61952,
+ "Y": 5376,
+ "Z": 49664,
+ "Room": 15
+ },
+ "TrigType": 1
+ },
+ {
+ "Comments": "Make a ladder from the stern back to the first deck, in case the stern key is there and was missed.",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1713": {
+ "86": {
+ "Rectangles": [
+ 85,
+ 86,
+ 87
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 39424,
+ "Y": 3072,
+ "Z": 36352,
+ "Room": 86
+ },
+ "IsPositiveZ": true
+ }
+ ],
"Any": [
[
{
diff --git a/TRRandomizerCore/Resources/TR2/Environment/EMPRTOMB.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/EMPRTOMB.TR2-Environment.json
index 0cb82a124..f4cddc370 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/EMPRTOMB.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/EMPRTOMB.TR2-Environment.json
@@ -1,5 +1,95 @@
{
"All": [
+ {
+ "Comments": "Convert door 191's activation if key item rando is enabled.",
+ "EMType": 48,
+ "Tags": [
+ 12
+ ],
+ "EntityIndex": 191,
+ "Flags": 0
+ },
+ {
+ "EMType": 68,
+ "Tags": [
+ 12
+ ],
+ "Location": {
+ "X": 47616,
+ "Y": 18944,
+ "Z": 44544,
+ "Room": 168
+ },
+ "Actions": [
+ {
+ "Parameter": 191
+ }
+ ]
+ },
+ {
+ "EMType": 69,
+ "Tags": [
+ 12
+ ],
+ "Location": {
+ "X": 48640,
+ "Y": 18944,
+ "Z": 34304,
+ "Room": 116
+ },
+ "TrigType": 9
+ },
+ {
+ "Comments": "It's entirely possible to softlock in OG in the main chamber area, so prevent that by adjusting some triggers for trapdoors 79 and 144.",
+ "EMType": 71,
+ "Locations": [
+ {
+ "X": 25088,
+ "Y": -1792,
+ "Z": 67072,
+ "Room": 90
+ }
+ ],
+ "ActionItem": {
+ "Parameter": 79
+ }
+ },
+ {
+ "EMType": 71,
+ "Locations": [
+ {
+ "X": 25088,
+ "Y": -1792,
+ "Z": 67072,
+ "Room": 90
+ }
+ ],
+ "ActionItem": {
+ "Parameter": 145
+ }
+ },
+ {
+ "EMType": 61,
+ "Locations": [
+ {
+ "X": 26112,
+ "Y": -11264,
+ "Z": 66048,
+ "Room": 135
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 79
+ },
+ {
+ "Parameter": 145
+ }
+ ]
+ }
+ },
{
"Comments": "Create a return path from the top of the waterfall to the very beginning.",
"EMType": 126,
@@ -4686,7 +4776,9 @@
"Comments": "A glitched secret may be in the unreachable room, so move it to another glitched location.",
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -4757,7 +4849,9 @@
"Comments": "A glitched secret may be in the unreachable room, so move it to another glitched location.",
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
diff --git a/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json
index e9650721e..297b83848 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/FLOATING.TR2-Environment.json
@@ -1,5 +1,79 @@
{
- "All": [],
+ "All": [
+ {
+ "Comments": "Tweak a slope at the end for easier key item exploration, if enabled.",
+ "EMType": 7,
+ "Tags": [
+ 12
+ ],
+ "Location": {
+ "X": 24064,
+ "Y": -8448,
+ "Z": 73216,
+ "Room": 40
+ },
+ "SlantType": 1,
+ "XSlant": 0,
+ "ZSlant": -1
+ },
+ {
+ "EMType": 23,
+ "Tags": [
+ 12
+ ],
+ "Modifications": [
+ {
+ "RoomNumber": 40,
+ "FaceIndices": [
+ 82,
+ 83
+ ],
+ "VertexChanges": {
+ "0": {
+ "Y": -768
+ },
+ "1": {
+ "Y": -768
+ }
+ }
+ },
+ {
+ "RoomNumber": 40,
+ "FaceType": 1,
+ "FaceIndex": 12,
+ "VertexChanges": {
+ "0": {
+ "Y": -256,
+ "Z": -1024
+ },
+ "1": {
+ "Y": -256,
+ "Z": -1024
+ },
+ "2": {
+ "Y": -256,
+ "Z": -1024
+ }
+ }
+ }
+ ]
+ },
+ {
+ "EMType": 21,
+ "Tags": [
+ 12
+ ],
+ "TextureMap": {
+ "1557": {
+ "40": {
+ "Triangles": [
+ 12
+ ]
+ }
+ }
+ }
+ }
+ ],
"Any": [
[
{
@@ -30,6 +104,98 @@
"SideTexture": 1863,
"Flags": 7
}
+ ],
+ [
+ {
+ "Comments": "Move the end trigger.",
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 22115,
+ "Y": -7424,
+ "Z": 64052,
+ "Room": 40
+ },
+ "NewLocation": {
+ "X": 22167,
+ "Y": -7424,
+ "Z": 61012,
+ "Room": 161
+ }
+ },
+ {
+ "Comments": "Deactivate the door into Lair.",
+ "EMType": 48,
+ "EntityIndex": 37,
+ "Flags": 0
+ },
+ {
+ "Comments": "Flip the door around so the portal's on the right side.",
+ "EMType": 44,
+ "EntityIndex": 37,
+ "TargetLocation": {
+ "X": 22016,
+ "Y": -7424,
+ "Z": 65024,
+ "Room": 40
+ }
+ },
+ {
+ "Comments": "Convert some spikes into a mystic plaque slot.",
+ "EMType": 45,
+ "EntityIndex": 58,
+ "NewEntityType": 182
+ },
+ {
+ "Comments": "Reposition it to the Lair door.",
+ "EMType": 44,
+ "EntityIndex": 58,
+ "TargetLocation": {
+ "X": 22016,
+ "Y": -7424,
+ "Z": 65024,
+ "Room": 40,
+ "Angle": 16384
+ }
+ },
+ {
+ "Comments": "Make a trigger to open the door.",
+ "EMType": 61,
+ "Locations": [
+ {
+ "X": 22016,
+ "Y": -7424,
+ "Z": 65024,
+ "Room": 40
+ }
+ ],
+ "Trigger": {
+ "TrigType": 3,
+ "Mask": 31,
+ "SwitchOrKeyRef": 58,
+ "Actions": [
+ {
+ "Parameter": 37
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Convert some other spikes into a mystic plaque.",
+ "EMType": 45,
+ "EntityIndex": 57,
+ "NewEntityType": 174
+ },
+ {
+ "Comments": "Default position for the new mystic plaque - key item rando can move this.",
+ "EMType": 44,
+ "EntityIndex": 57,
+ "TargetLocation": {
+ "X": 26482,
+ "Y": -8636,
+ "Z": 72639,
+ "Room": 144
+ }
+ }
]
],
"AllWithin": [],
@@ -2110,156 +2276,6 @@
}
]
]
- },
- {
- "Leader": [
- {
- "Comments": "Move the end trigger.",
- "EMType": 67,
- "BaseLocation": {
- "X": 22115,
- "Y": -7424,
- "Z": 64052,
- "Room": 40
- },
- "NewLocation": {
- "X": 22167,
- "Y": -7424,
- "Z": 61012,
- "Room": 161
- }
- },
- {
- "Comments": "Deactivate the door into Lair.",
- "EMType": 48,
- "EntityIndex": 37,
- "Flags": 0
- },
- {
- "Comments": "Flip the door around so the portal's on the right side.",
- "EMType": 44,
- "EntityIndex": 37,
- "TargetLocation": {
- "X": 22016,
- "Y": -7424,
- "Z": 65024,
- "Room": 40
- }
- },
- {
- "Comments": "Convert some spikes into a mystic plaque slot.",
- "EMType": 45,
- "EntityIndex": 58,
- "NewEntityType": 182
- },
- {
- "Comments": "Reposition it to the Lair door.",
- "EMType": 44,
- "EntityIndex": 58,
- "TargetLocation": {
- "X": 22016,
- "Y": -7424,
- "Z": 65024,
- "Room": 40,
- "Angle": 16384
- }
- },
- {
- "Comments": "Make a trigger to open the door.",
- "EMType": 61,
- "Locations": [
- {
- "X": 22016,
- "Y": -7424,
- "Z": 65024,
- "Room": 40
- }
- ],
- "Trigger": {
- "TrigType": 3,
- "Mask": 31,
- "SwitchOrKeyRef": 58,
- "Actions": [
- {
- "Parameter": 37
- }
- ]
- }
- },
- {
- "Comments": "Convert some other spikes into a mystic plaque.",
- "EMType": 45,
- "EntityIndex": 57,
- "NewEntityType": 174
- }
- ],
- "Followers": [
- [
- {
- "Comments": "Default position for the new mystic plaque.",
- "EMType": 44,
- "EntityIndex": 57,
- "TargetLocation": {
- "X": 26482,
- "Y": -8636,
- "Z": 72639,
- "Room": 144
- }
- }
- ],
- [
- {
- "Comments": "Potential position for the new mystic plaque.",
- "EMType": 44,
- "EntityIndex": 57,
- "TargetLocation": {
- "X": 23062,
- "Y": -4484,
- "Z": 67097,
- "Room": 124
- }
- }
- ],
- [
- {
- "Comments": "Potential position for the new mystic plaque.",
- "EMType": 44,
- "EntityIndex": 57,
- "TargetLocation": {
- "X": 26358,
- "Y": -5796,
- "Z": 64409,
- "Room": 159
- }
- }
- ],
- [
- {
- "Comments": "Potential position for the new mystic plaque.",
- "EMType": 44,
- "EntityIndex": 57,
- "TargetLocation": {
- "X": 33294,
- "Y": -8351,
- "Z": 64069,
- "Room": 159
- }
- }
- ],
- [
- {
- "Comments": "Potential position for the new mystic plaque.",
- "EMType": 44,
- "EntityIndex": 57,
- "TargetLocation": {
- "X": 35268,
- "Y": -9984,
- "Z": 62927,
- "Room": 41
- }
- }
- ]
- ]
}
],
"ConditionalAllWithin": [],
@@ -2605,6 +2621,7 @@
"1688": 1704,
"1863": 1879,
"1709": 1725,
- "1678": 1694
+ "1678": 1694,
+ "1557": 1573
}
}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR2/Environment/ICECAVE.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/ICECAVE.TR2-Environment.json
index 542bb28e3..6427db9a4 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/ICECAVE.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/ICECAVE.TR2-Environment.json
@@ -1,5 +1,724 @@
{
"All": [
+ {
+ "Comments": "Replace the trigger under the mask with a pickup type (only if key item rando is enabled, so that the trigger can be detected when moving the mask).",
+ "EMType": 61,
+ "Tags": [
+ 12
+ ],
+ "EntityLocation": 138,
+ "Trigger": {
+ "TrigType": 4,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 138
+ },
+ {
+ "Parameter": 131
+ }
+ ]
+ },
+ "Replace": true
+ },
+ {
+ "Comments": "If we've taken the shortcut past the mask door, make it open from the other side.",
+ "EMType": 61,
+ "Locations": [
+ {
+ "X": 42496,
+ "Y": 3328,
+ "Z": 50688,
+ "Room": 31
+ },
+ {
+ "X": 41472,
+ "Y": 5888,
+ "Z": 55808,
+ "Room": 65
+ },
+ {
+ "X": 41472,
+ "Y": 5888,
+ "Z": 56832,
+ "Room": 65
+ },
+ {
+ "X": 41472,
+ "Y": 5888,
+ "Z": 57856,
+ "Room": 65
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 83
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Create a return path from the chicken area to the yeti hideout.",
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 51200,
+ "Y": 9472,
+ "Z": 23552
+ },
+ "LinkedLocation": {
+ "X": 38400,
+ "Y": 6400,
+ "Z": 28160,
+ "Room": 61
+ },
+ "Textures": {
+ "Floor": 1369,
+ "Ceiling": 1343,
+ "WallAlignment": 4,
+ "Wall4": 1343,
+ "Wall3": 1416,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 8191,
+ "DefaultVertex": {
+ "Lighting": 6446,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 1536,
+ "Intensity1": 3072,
+ "Intensity2": 3072,
+ "Fade1": 2048,
+ "Fade2": 2048
+ },
+ {
+ "X": 1536,
+ "Y": -5376,
+ "Z": 1536,
+ "Intensity1": 1024,
+ "Intensity2": 1024,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 23,
+ "Width": 3,
+ "Depth": 4,
+ "CeilingHeights": {
+ "19": [
+ 6
+ ]
+ }
+ },
+ {
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 46080,
+ "Y": 3584,
+ "Z": 23552
+ },
+ "LinkedLocation": {
+ "X": 38400,
+ "Y": 6400,
+ "Z": 28160,
+ "Room": 61
+ },
+ "Textures": {
+ "Floor": 1369,
+ "Ceiling": 1343,
+ "WallAlignment": 4,
+ "Wall4": 1343,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 8191,
+ "DefaultVertex": {
+ "Lighting": 6446,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 2560,
+ "Intensity1": 3072,
+ "Intensity2": 3072,
+ "Fade1": 2048,
+ "Fade2": 2048
+ },
+ {
+ "X": 6656,
+ "Y": -512,
+ "Z": 1536,
+ "Intensity1": 1024,
+ "Intensity2": 1024,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 4,
+ "Width": 8,
+ "Depth": 4,
+ "FloorHeights": {
+ "-127": [
+ 10,
+ 14,
+ 18,
+ 22,
+ 26
+ ]
+ }
+ },
+ {
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 37888,
+ "Y": 3584,
+ "Z": 25600
+ },
+ "LinkedLocation": {
+ "X": 38400,
+ "Y": 6400,
+ "Z": 28160,
+ "Room": 61
+ },
+ "Textures": {
+ "Floor": 1369,
+ "Ceiling": 1343,
+ "WallAlignment": 4,
+ "Wall4": 1343,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 8191,
+ "DefaultVertex": {
+ "Lighting": 6446,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 2560,
+ "Intensity1": 1024,
+ "Intensity2": 1024,
+ "Fade1": 1024,
+ "Fade2": 1024
+ },
+ {
+ "X": 9728,
+ "Y": -512,
+ "Z": 1536,
+ "Intensity1": 3072,
+ "Intensity2": 3072,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 4,
+ "Width": 11,
+ "Depth": 4,
+ "FloorHeights": {
+ "-127": [
+ 5,
+ 9,
+ 13,
+ 17,
+ 21,
+ 25,
+ 29,
+ 33
+ ]
+ }
+ },
+ {
+ "Comments": "Make visibility portals.",
+ "EMType": 81,
+ "Tags": [
+ 9
+ ],
+ "Portals": [
+ {
+ "BaseRoom": 61,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 5120,
+ "Y": 3584,
+ "Z": 2048
+ },
+ {
+ "X": 4096,
+ "Y": 3584,
+ "Z": 2048
+ },
+ {
+ "X": 4096,
+ "Y": 3584,
+ "Z": 3072
+ },
+ {
+ "X": 5120,
+ "Y": 3584,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": 61,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": 3584,
+ "Z": 3072
+ },
+ {
+ "X": 2048,
+ "Y": 3584,
+ "Z": 3072
+ },
+ {
+ "X": 2048,
+ "Y": 3584,
+ "Z": 2048
+ },
+ {
+ "X": 1024,
+ "Y": 3584,
+ "Z": 2048
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": -2,
+ "Normal": {
+ "Z": 1
+ },
+ "Vertices": [
+ {
+ "X": 10240,
+ "Y": 2560,
+ "Z": 1024
+ },
+ {
+ "X": 9216,
+ "Y": 2560,
+ "Z": 1024
+ },
+ {
+ "X": 9216,
+ "Y": 3584,
+ "Z": 1024
+ },
+ {
+ "X": 10240,
+ "Y": 3584,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": -2,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Z": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": 2560,
+ "Z": 3072
+ },
+ {
+ "X": 2048,
+ "Y": 2560,
+ "Z": 3072
+ },
+ {
+ "X": 2048,
+ "Y": 3584,
+ "Z": 3072
+ },
+ {
+ "X": 1024,
+ "Y": 3584,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": -2,
+ "AdjoiningRoom": -3,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 6144,
+ "Y": 3584,
+ "Z": 2048
+ },
+ {
+ "X": 7168,
+ "Y": 3584,
+ "Z": 2048
+ },
+ {
+ "X": 7168,
+ "Y": 3584,
+ "Z": 1024
+ },
+ {
+ "X": 6144,
+ "Y": 3584,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": -3,
+ "AdjoiningRoom": -2,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 2048,
+ "Y": 3584,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": 3584,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": 3584,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": 3584,
+ "Z": 2048
+ }
+ ]
+ },
+ {
+ "BaseRoom": -3,
+ "AdjoiningRoom": 103,
+ "Normal": {
+ "Z": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": 8448,
+ "Z": 3072
+ },
+ {
+ "X": 2048,
+ "Y": -77,
+ "Z": 3072
+ },
+ {
+ "X": 2048,
+ "Y": 9472,
+ "Z": 3072
+ },
+ {
+ "X": 1024,
+ "Y": 9472,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": 103,
+ "AdjoiningRoom": -3,
+ "Normal": {
+ "Z": 1
+ },
+ "Vertices": [
+ {
+ "X": 5120,
+ "Y": 8448,
+ "Z": 1024
+ },
+ {
+ "X": 4096,
+ "Y": -77,
+ "Z": 1024
+ },
+ {
+ "X": 4096,
+ "Y": 9472,
+ "Z": 1024
+ },
+ {
+ "X": 5120,
+ "Y": 9472,
+ "Z": 1024
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Comments": "Make horizontal portals.",
+ "EMType": 82,
+ "Tags": [
+ 9
+ ],
+ "Portals": {
+ "-1": {
+ "-2": [
+ {
+ "X": 47616,
+ "Z": 26112
+ }
+ ]
+ },
+ "-2": {
+ "-1": [
+ {
+ "X": 47616,
+ "Z": 27136
+ }
+ ]
+ },
+ "-3": {
+ "-2": [
+ {
+ "X": 51712,
+ "Z": 25088
+ }
+ ],
+ "103": [
+ {
+ "X": 52736,
+ "Z": 27136
+ }
+ ]
+ },
+ "103": {
+ "-3": [
+ {
+ "X": 52736,
+ "Z": 26112
+ }
+ ]
+ },
+ "126": {
+ "-3": [
+ {
+ "X": 52736,
+ "Z": 26112
+ }
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Make vertical portals.",
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 39424,
+ "Y": 3584,
+ "Z": 28160,
+ "Room": -1
+ },
+ "Floor": {
+ "X": 39424,
+ "Y": 4608,
+ "Z": 28160,
+ "Room": 61
+ },
+ "InheritFloorBox": true
+ },
+ {
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 52736,
+ "Y": 3584,
+ "Z": 25088,
+ "Room": -2
+ },
+ "Floor": {
+ "X": 52736,
+ "Y": 4608,
+ "Z": 25088,
+ "Room": -3
+ },
+ "InheritFloorBox": true
+ },
+ {
+ "Comments": "Add a ladder.",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1510": {
+ "-3": {
+ "Rectangles": [
+ 2,
+ 3,
+ 4,
+ 5,
+ 6
+ ]
+ }
+ },
+ "1512": {
+ "-3": {
+ "Rectangles": [
+ 7
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 52736,
+ "Y": 9472,
+ "Z": 25088,
+ "Room": -3
+ },
+ "IsNegativeX": true
+ },
+ {
+ "Comments": "Adjust faces to fit.",
+ "EMType": 23,
+ "Tags": [
+ 9
+ ],
+ "Modifications": [
+ {
+ "RoomNumber": 103,
+ "FaceIndex": 32,
+ "VertexChanges": {
+ "2": {
+ "Y": -1024
+ },
+ "3": {
+ "Y": -1024
+ }
+ }
+ }
+ ],
+ "Rotations": [
+ {
+ "RoomNumber": -3,
+ "FaceIndices": [
+ 2
+ ],
+ "VertexRemap": {
+ "0": 3,
+ "1": 0,
+ "2": 1,
+ "3": 2
+ }
+ },
+ {
+ "RoomNumber": -3,
+ "FaceIndices": [
+ 3
+ ],
+ "VertexRemap": {
+ "0": 1,
+ "1": 2,
+ "2": 3,
+ "3": 0
+ }
+ },
+ {
+ "RoomNumber": -3,
+ "FaceIndices": [
+ 5,
+ 6
+ ],
+ "VertexRemap": {
+ "0": 2,
+ "1": 3,
+ "2": 0,
+ "3": 1
+ }
+ }
+ ]
+ },
+ {
+ "Comments": "Remove redundant faces.",
+ "EMType": 22,
+ "Tags": [
+ 9
+ ],
+ "GeometryMap": {
+ "61": {
+ "Rectangles": [
+ 39
+ ]
+ },
+ "-3": {
+ "Rectangles": [
+ 1,
+ 28
+ ]
+ },
+ "-2": {
+ "Rectangles": [
+ 7,
+ 25
+ ]
+ },
+ "-1": {
+ "Rectangles": [
+ 0,
+ 37
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Generate lighting.",
+ "EMType": 128,
+ "Tags": [
+ 9
+ ],
+ "RoomIndices": [
+ -1,
+ -2,
+ -3
+ ]
+ },
{
"Comments": "Add a ladder to room 34 as a return path.",
"EMType": 0,
@@ -393,6 +1112,20 @@
}
],
[
+ {
+ "Comments": "Raise the platform where the gong bonger normally is (to allow obvious exiting).",
+ "EMType": 1,
+ "Location": {
+ "X": 31232,
+ "Y": 9984,
+ "Z": 49664,
+ "Room": 29
+ },
+ "Clicks": -4,
+ "FloorTexture": 1375,
+ "SideTexture": 1375,
+ "Flags": 15
+ },
{
"Comments": "Drain the rooms below the lava bowl.",
"EMType": 3,
@@ -2069,6 +2802,75 @@
]
}
]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #36 is in its default position. If not, move the trigger to its new location.",
+ "ConditionType": 0,
+ "EntityIndex": 36,
+ "X": 30848,
+ "Y": 9984,
+ "Z": 48640,
+ "Room": 29
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 30848,
+ "Y": 9984,
+ "Z": 48640,
+ "Room": 29
+ },
+ "EntityLocation": 36
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #138 is in its default position. If not, move the trigger to its new location.",
+ "ConditionType": 0,
+ "EntityIndex": 138,
+ "X": 60928,
+ "Y": 512,
+ "Z": 51712,
+ "Room": 100
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 60928,
+ "Y": 512,
+ "Z": 51712,
+ "Room": 100
+ },
+ "EntityLocation": 138
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #145 is in its default position. If not, move the trigger to its new location.",
+ "ConditionType": 0,
+ "EntityIndex": 145,
+ "X": 57856,
+ "Y": 9984,
+ "Z": 30208,
+ "Room": 127
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 57856,
+ "Y": 9984,
+ "Z": 30208,
+ "Room": 127
+ },
+ "EntityLocation": 145
+ }
+ ]
}
],
"ConditionalOneOf": [],
diff --git a/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json
index 5a8ee9b3d..dcf4a8e53 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/KEEL.TR2-Environment.json
@@ -61,6 +61,92 @@
},
"IsNegativeZ": true
},
+ {
+ "Comments": "Modify the slopes to allow climbing back up.",
+ "EMType": 7,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 64000,
+ "Y": -2688,
+ "Z": 42496,
+ "Room": 43
+ },
+ "SlantType": 1,
+ "ZSlant": -2
+ },
+ {
+ "EMType": 7,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 62976,
+ "Y": -2688,
+ "Z": 42496,
+ "Room": 43
+ },
+ "SlantType": 1,
+ "ZSlant": -2
+ },
+ {
+ "Comments": "Move some faces for the new slopes.",
+ "EMType": 23,
+ "Tags": [
+ 9
+ ],
+ "Modifications": [
+ {
+ "RoomNumber": 43,
+ "FaceIndices": [
+ 8,
+ 30
+ ],
+ "VertexChanges": {
+ "2": {
+ "Y": -256
+ },
+ "3": {
+ "Y": -256
+ }
+ }
+ },
+ {
+ "RoomNumber": 43,
+ "FaceIndices": [
+ 15,
+ 33
+ ],
+ "VertexChanges": {
+ "0": {
+ "Y": -256
+ },
+ "1": {
+ "Y": -256
+ }
+ }
+ },
+ {
+ "RoomNumber": 43,
+ "FaceIndex": 10,
+ "VertexChanges": {
+ "2": {
+ "Y": -256
+ }
+ }
+ },
+ {
+ "RoomNumber": 43,
+ "FaceIndex": 41,
+ "VertexChanges": {
+ "3": {
+ "Y": -256
+ }
+ }
+ }
+ ]
+ },
{
"Comments": "Make it possible to return to the piston room from below. The fake ladder here becomes real.",
"EMType": 0,
diff --git a/TRRandomizerCore/Resources/TR2/Environment/MONASTRY.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/MONASTRY.TR2-Environment.json
index a7161accf..f13d8342c 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/MONASTRY.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/MONASTRY.TR2-Environment.json
@@ -10,6 +10,20 @@
5
],
"IsSkyboxVisible": true
+ },
+ {
+ "Comments": "Replace the trigger under the flame room prayer wheel with a pad (only if key item rando is enabled).",
+ "EMType": 69,
+ "Tags": [
+ 12
+ ],
+ "Location": {
+ "X": 34304,
+ "Y": -1024,
+ "Z": 34304,
+ "Room": 54
+ },
+ "TrigType": 1
}
],
"Any": [
diff --git a/TRRandomizerCore/Resources/TR2/Environment/OPERA.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/OPERA.TR2-Environment.json
index 798d5ad9e..cc21553e4 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/OPERA.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/OPERA.TR2-Environment.json
@@ -1,5 +1,486 @@
{
- "All": [],
+ "All": [
+ {
+ "Comments": "Create a return path from inside the opera house to the start area.",
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 83968,
+ "Y": 512,
+ "Z": 41984
+ },
+ "LinkedLocation": {
+ "X": 85504,
+ "Y": 2304,
+ "Z": 45568,
+ "Room": 50
+ },
+ "Textures": {
+ "Floor": 1699,
+ "Ceiling": 1672,
+ "WallAlignment": 5,
+ "Wall4": 1672,
+ "Wall1": 1700
+ },
+ "AmbientLighting": 8047,
+ "DefaultVertex": {
+ "Lighting": 6697,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 3584,
+ "Intensity1": 2048,
+ "Intensity2": 2048,
+ "Fade1": 1024,
+ "Fade2": 1024
+ }
+ ],
+ "Height": 5,
+ "Width": 4,
+ "Depth": 5,
+ "FloorHeights": {
+ "-1": [
+ 12,
+ 13
+ ]
+ },
+ "CeilingHeights": {
+ "-127": [
+ 6,
+ 7
+ ]
+ }
+ },
+ {
+ "Comments": "Make visibility portals.",
+ "EMType": 81,
+ "Tags": [
+ 9
+ ],
+ "Portals": [
+ {
+ "BaseRoom": 50,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 3072,
+ "Y": 512,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 3072
+ },
+ {
+ "X": 3072,
+ "Y": 512,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": 50,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": 512,
+ "Z": 4096
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 4096
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 3072
+ },
+ {
+ "X": 1024,
+ "Y": 512,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": 6,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 2048
+ },
+ {
+ "X": 3072,
+ "Y": 512,
+ "Z": 2048
+ },
+ {
+ "X": 3072,
+ "Y": 512,
+ "Z": 1024
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": 6,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 3072,
+ "Y": 512,
+ "Z": 7168
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 7168
+ },
+ {
+ "X": 2048,
+ "Y": 512,
+ "Z": 8192
+ },
+ {
+ "X": 3072,
+ "Y": 512,
+ "Z": 8192
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Comments": "Make horizontal portals.",
+ "EMType": 82,
+ "Tags": [
+ 9
+ ],
+ "Portals": {
+ "50": {
+ "-1": [
+ {
+ "X": 86528,
+ "Z": 45568
+ }
+ ]
+ },
+ "6": {
+ "-1": [
+ {
+ "X": 86528,
+ "Z": 44544
+ }
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Make vertical portals.",
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 85504,
+ "Y": 512,
+ "Z": 45568,
+ "Room": -1
+ },
+ "Floor": {
+ "X": 85504,
+ "Y": 1536,
+ "Z": 45568,
+ "Room": 50
+ },
+ "InheritFloorBox": true
+ },
+ {
+ "Comments": "Make vertical portals.",
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 86528,
+ "Y": 512,
+ "Z": 43520,
+ "Room": -1
+ },
+ "Floor": {
+ "X": 86528,
+ "Y": 1536,
+ "Z": 43520,
+ "Room": 6
+ },
+ "InheritFloorBox": true
+ },
+ {
+ "Comments": "Add a ladder.",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1702": {
+ "50": {
+ "Rectangles": [
+ 29
+ ]
+ }
+ },
+ "1765": {
+ "50": {
+ "Rectangles": [
+ 21
+ ]
+ }
+ },
+ "1769": {
+ "-1": {
+ "Rectangles": [
+ 6
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 85504,
+ "Y": 2304,
+ "Z": 45568,
+ "Room": 50
+ },
+ "IsPositiveX": true
+ },
+ {
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1702": {
+ "5": {
+ "Rectangles": [
+ 109
+ ]
+ }
+ },
+ "1682": {
+ "5": {
+ "Rectangles": [
+ 110
+ ]
+ }
+ },
+ "1769": {
+ "5": {
+ "Rectangles": [
+ 108
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 82432,
+ "Y": 2304,
+ "Z": 52736,
+ "Room": 5
+ },
+ "IsPositiveX": true
+ },
+ {
+ "Comments": "Adjust faces to fit the ladder.",
+ "EMType": 23,
+ "Tags": [
+ 9
+ ],
+ "Modifications": [
+ {
+ "RoomNumber": 50,
+ "FaceIndex": 29,
+ "VertexChanges": {
+ "0": {
+ "Y": 768
+ },
+ "1": {
+ "Y": 768
+ }
+ }
+ },
+ {
+ "RoomNumber": 50,
+ "FaceIndex": 21,
+ "VertexChanges": {
+ "0": {
+ "X": 1024
+ },
+ "1": {
+ "X": 1024
+ },
+ "2": {
+ "Y": 768
+ },
+ "3": {
+ "Y": 768
+ }
+ }
+ }
+ ]
+ },
+ {
+ "Comments": "Remove redundant faces.",
+ "EMType": 22,
+ "Tags": [
+ 9
+ ],
+ "GeometryMap": {
+ "-1": {
+ "Rectangles": [
+ 0,
+ 9
+ ]
+ },
+ "6": {
+ "Rectangles": [
+ 40
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Convert a fan into a trapdoor.",
+ "EMType": 45,
+ "Tags": [
+ 9
+ ],
+ "EntityIndex": 153,
+ "NewEntityType": 114
+ },
+ {
+ "Comments": "Kill Lara where the fan used to be.",
+ "EMType": 70,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 61952,
+ "Y": 11136,
+ "Z": 34304,
+ "Room": 128
+ }
+ ]
+ },
+ {
+ "Comments": "Move the door to block the path from the start side.",
+ "EMType": 44,
+ "Tags": [
+ 9
+ ],
+ "EntityIndex": 153,
+ "TargetLocation": {
+ "X": 86528,
+ "Y": 512,
+ "Z": 43520,
+ "Room": 6,
+ "Angle": -32768
+ }
+ },
+ {
+ "Comments": "Remove its old trigger action.",
+ "EMType": 72,
+ "Tags": [
+ 9
+ ],
+ "Entities": [
+ 153
+ ]
+ },
+ {
+ "Comments": "Add a dummy trigger for it.",
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "EntityLocation": 153,
+ "Trigger": {
+ "TrigType": 8,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 153
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "And a regular trigger for it, plus door 11 in case it was skipped.",
+ "EMType": 61,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 86528,
+ "Z": 44544,
+ "Room": -1
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 153
+ },
+ {
+ "Parameter": 11
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Generate lighting.",
+ "EMType": 128,
+ "Tags": [
+ 9
+ ],
+ "RoomIndices": [
+ -1
+ ]
+ }
+ ],
"Any": [
[
{
diff --git a/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json
index 3c5dff29b..ab50110f0 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/PLATFORM.TR2-Environment.json
@@ -944,6 +944,8 @@
"Comments": "Adjust a secret.",
"EMType": 43,
"Types": [
+ 192,
+ 191,
190
],
"SectorLocations": [
@@ -965,6 +967,8 @@
"Comments": "Floors another secret.",
"EMType": 43,
"Types": [
+ 192,
+ 191,
190
],
"SectorLocations": [
@@ -980,6 +984,8 @@
"Comments": "Floors another secret.",
"EMType": 43,
"Types": [
+ 192,
+ 191,
190
],
"SectorLocations": [
@@ -995,6 +1001,8 @@
"Comments": "Floors another secret.",
"EMType": 43,
"Types": [
+ 192,
+ 191,
190
],
"SectorLocations": [
diff --git a/TRRandomizerCore/Resources/TR2/Environment/SKIDOO.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/SKIDOO.TR2-Environment.json
index b47fdab72..d7400e198 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/SKIDOO.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/SKIDOO.TR2-Environment.json
@@ -272,6 +272,1077 @@
}
]
}
+ },
+ {
+ "Comments": "Replace the trigger under the hut key with a pickup type (only if key item rando is enabled, so that the trigger can be detected when moving it).",
+ "EMType": 61,
+ "Tags": [
+ 12
+ ],
+ "Locations": [
+ {
+ "X": 12800,
+ "Y": 1024,
+ "Z": 57856,
+ "Room": 97
+ }
+ ],
+ "Trigger": {
+ "TrigType": 4,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 48
+ },
+ {
+ "Parameter": 52
+ }
+ ]
+ },
+ "Replace": true
+ },
+ {
+ "Comments": "Create a return path from near the hut back to the start.",
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 79872,
+ "Y": 256,
+ "Z": 21504
+ },
+ "LinkedLocation": {
+ "X": 80384,
+ "Y": 256,
+ "Z": 38400,
+ "Room": 18
+ },
+ "Textures": {
+ "Floor": 1308,
+ "Ceiling": 1308,
+ "WallAlignment": 4,
+ "Wall4": 1288,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 7680,
+ "DefaultVertex": {
+ "Lighting": 7680,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 16896,
+ "Intensity1": 4096,
+ "Intensity2": 4096,
+ "Fade1": 2560,
+ "Fade2": 2560
+ },
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 1536,
+ "Intensity1": 3072,
+ "Intensity2": 3072,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 4,
+ "Width": 4,
+ "Depth": 18,
+ "FloorHeights": {
+ "-127": [
+ 20,
+ 21,
+ 22,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32,
+ 33
+ ]
+ }
+ },
+ {
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 73728,
+ "Y": 256,
+ "Z": 21504
+ },
+ "LinkedLocation": {
+ "X": 80384,
+ "Y": 256,
+ "Z": 38400,
+ "Room": 18
+ },
+ "Textures": {
+ "Floor": 1308,
+ "Ceiling": 1308,
+ "WallAlignment": 4,
+ "Wall4": 1288,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 7680,
+ "DefaultVertex": {
+ "Lighting": 7680,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 6656,
+ "Y": -512,
+ "Z": 1536,
+ "Intensity1": 3072,
+ "Intensity2": 3072,
+ "Fade1": 2048,
+ "Fade2": 2048
+ },
+ {
+ "X": 1536,
+ "Y": -4608,
+ "Z": 1536,
+ "Intensity1": 1024,
+ "Intensity2": 1024,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 20,
+ "Width": 8,
+ "Depth": 3,
+ "CeilingHeights": {
+ "16": [
+ 7,
+ 10,
+ 13,
+ 16,
+ 19
+ ]
+ }
+ },
+ {
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 73728,
+ "Y": -4864,
+ "Z": 19456
+ },
+ "LinkedLocation": {
+ "X": 80384,
+ "Y": 256,
+ "Z": 38400,
+ "Room": 18
+ },
+ "Textures": {
+ "Floor": 1308,
+ "Ceiling": 1308,
+ "WallAlignment": 5,
+ "Wall4": 1288,
+ "Wall2": 1376,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 7680,
+ "DefaultVertex": {
+ "Lighting": 7680,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 3584,
+ "Intensity1": 1024,
+ "Intensity2": 1024,
+ "Fade1": 2048,
+ "Fade2": 2048
+ },
+ {
+ "X": 1536,
+ "Y": -2048,
+ "Z": 1536,
+ "Intensity1": 2048,
+ "Intensity2": 2048,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 10,
+ "Width": 3,
+ "Depth": 5,
+ "FloorHeights": {
+ "-6": [
+ 6,
+ 7
+ ]
+ }
+ },
+ {
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 70656,
+ "Y": -6400,
+ "Z": 13312
+ },
+ "LinkedLocation": {
+ "X": 80384,
+ "Y": 256,
+ "Z": 38400,
+ "Room": 18
+ },
+ "Textures": {
+ "Floor": 1308,
+ "Ceiling": 1308,
+ "WallAlignment": 4,
+ "Wall4": 1288,
+ "RandomRotationSeed": 3112023
+ },
+ "AmbientLighting": 7680,
+ "DefaultVertex": {
+ "Lighting": 7680,
+ "Lighting2": 6000,
+ "Attributes": 16
+ },
+ "Lights": [
+ {
+ "X": 4608,
+ "Y": -512,
+ "Z": 6656,
+ "Intensity1": 2048,
+ "Intensity2": 2048,
+ "Fade1": 2048,
+ "Fade2": 2048
+ }
+ ],
+ "Height": 4,
+ "Width": 6,
+ "Depth": 8,
+ "FloorHeights": {
+ "-127": [
+ 10,
+ 11,
+ 12,
+ 13,
+ 14,
+ 18,
+ 19,
+ 20,
+ 21,
+ 22,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30
+ ]
+ }
+ },
+ {
+ "Comments": "Make visibility portals.",
+ "EMType": 81,
+ "Tags": [
+ 9
+ ],
+ "Portals": [
+ {
+ "BaseRoom": 81,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 5120,
+ "Y": -6400,
+ "Z": 6144
+ },
+ {
+ "X": 4096,
+ "Y": -6400,
+ "Z": 6144
+ },
+ {
+ "X": 4096,
+ "Y": -6400,
+ "Z": 7168
+ },
+ {
+ "X": 5120,
+ "Y": -6400,
+ "Z": 7168
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": 81,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -6400,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": -6400,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": -6400,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -6400,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": -2,
+ "Normal": {
+ "Z": -1
+ },
+ "Vertices": [
+ {
+ "X": 4096,
+ "Y": -7424,
+ "Z": 7168
+ },
+ {
+ "X": 5120,
+ "Y": -7424,
+ "Z": 7168
+ },
+ {
+ "X": 5120,
+ "Y": -6400,
+ "Z": 7168
+ },
+ {
+ "X": 4096,
+ "Y": -6400,
+ "Z": 7168
+ }
+ ]
+ },
+ {
+ "BaseRoom": -2,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Z": 1
+ },
+ "Vertices": [
+ {
+ "X": 2048,
+ "Y": -7424,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -7424,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -6400,
+ "Z": 1024
+ },
+ {
+ "X": 2048,
+ "Y": -6400,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": -2,
+ "AdjoiningRoom": -3,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -4864,
+ "Z": 4096
+ },
+ {
+ "X": 2048,
+ "Y": -4864,
+ "Z": 4096
+ },
+ {
+ "X": 2048,
+ "Y": -4864,
+ "Z": 3072
+ },
+ {
+ "X": 1024,
+ "Y": -4864,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": -3,
+ "AdjoiningRoom": -2,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 2048,
+ "Y": -4864,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -4864,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -4864,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": -4864,
+ "Z": 2048
+ }
+ ]
+ },
+ {
+ "BaseRoom": -3,
+ "AdjoiningRoom": -4,
+ "Normal": {
+ "X": -1
+ },
+ "Vertices": [
+ {
+ "X": 7168,
+ "Y": -768,
+ "Z": 2048
+ },
+ {
+ "X": 7168,
+ "Y": -768,
+ "Z": 1024
+ },
+ {
+ "X": 7168,
+ "Y": 256,
+ "Z": 1024
+ },
+ {
+ "X": 7168,
+ "Y": 256,
+ "Z": 2048
+ }
+ ]
+ },
+ {
+ "BaseRoom": -4,
+ "AdjoiningRoom": -3,
+ "Normal": {
+ "X": 1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -768,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -768,
+ "Z": 2048
+ },
+ {
+ "X": 1024,
+ "Y": 256,
+ "Z": 2048
+ },
+ {
+ "X": 1024,
+ "Y": 256,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": -4,
+ "AdjoiningRoom": 18,
+ "Normal": {
+ "X": 1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -768,
+ "Z": 16384
+ },
+ {
+ "X": 1024,
+ "Y": -768,
+ "Z": 17408
+ },
+ {
+ "X": 1024,
+ "Y": 256,
+ "Z": 17408
+ },
+ {
+ "X": 1024,
+ "Y": 256,
+ "Z": 16384
+ }
+ ]
+ },
+ {
+ "BaseRoom": 18,
+ "AdjoiningRoom": -4,
+ "Normal": {
+ "X": -1
+ },
+ "Vertices": [
+ {
+ "X": 3072,
+ "Y": -768,
+ "Z": 5120
+ },
+ {
+ "X": 3072,
+ "Y": -768,
+ "Z": 4096
+ },
+ {
+ "X": 3072,
+ "Y": 256,
+ "Z": 4096
+ },
+ {
+ "X": 3072,
+ "Y": 256,
+ "Z": 5120
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Comments": "Make horizontal portals.",
+ "EMType": 82,
+ "Tags": [
+ 9
+ ],
+ "Portals": {
+ "81": {
+ "-1": [
+ {
+ "X": 73216,
+ "Z": 14848
+ }
+ ]
+ },
+ "-1": {
+ "-2": [
+ {
+ "X": 75264,
+ "Z": 20992
+ }
+ ]
+ },
+ "-2": {
+ "-1": [
+ {
+ "X": 75264,
+ "Z": 19968
+ }
+ ]
+ },
+ "-3": {
+ "-2": [
+ {
+ "X": 75264,
+ "Z": 22016
+ }
+ ],
+ "-4": [
+ {
+ "X": 81408,
+ "Z": 23040
+ }
+ ]
+ },
+ "-4": {
+ "-3": [
+ {
+ "X": 80384,
+ "Z": 23040
+ }
+ ],
+ "18": [
+ {
+ "X": 80384,
+ "Z": 38400
+ }
+ ]
+ },
+ "18": {
+ "-4": [
+ {
+ "X": 81408,
+ "Z": 38400
+ }
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Make vertical portals.",
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 72192,
+ "Y": -6400,
+ "Z": 14848,
+ "Room": -1
+ },
+ "Floor": {
+ "X": 72192,
+ "Y": -5376,
+ "Z": 14848,
+ "Room": 81
+ },
+ "InheritFloorBox": true
+ },
+ {
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 75264,
+ "Y": -4864,
+ "Z": 23040,
+ "Room": -2
+ },
+ "Floor": {
+ "X": 75264,
+ "Y": -3840,
+ "Z": 23040,
+ "Room": -3
+ },
+ "InheritFloorBox": true
+ },
+ {
+ "Comments": "Add a ladder.",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1295": {
+ "-3": {
+ "Rectangles": [
+ 16,
+ 17,
+ 18,
+ 19,
+ 20
+ ]
+ },
+ "-2": {
+ "Rectangles": [
+ 21
+ ]
+ }
+ },
+ "1448": {
+ "-2": {
+ "Rectangles": [
+ 20
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 75264,
+ "Y": 256,
+ "Z": 23040,
+ "Room": -3
+ },
+ "IsNegativeZ": true
+ },
+ {
+ "Comments": "Adjust faces to fit.",
+ "EMType": 23,
+ "Tags": [
+ 9
+ ],
+ "Modifications": [
+ {
+ "RoomNumber": 81,
+ "FaceIndex": 71,
+ "VertexChanges": {
+ "2": {
+ "Y": -512,
+ "Z": 1024
+ },
+ "3": {
+ "Y": -768,
+ "Z": 1024
+ }
+ }
+ },
+ {
+ "RoomNumber": 81,
+ "FaceIndex": 73,
+ "VertexChanges": {
+ "0": {
+ "Y": -768
+ },
+ "1": {
+ "Y": -512
+ }
+ }
+ },
+ {
+ "RoomNumber": 81,
+ "FaceIndex": 79,
+ "VertexChanges": {
+ "0": {
+ "Y": -512
+ },
+ "1": {
+ "Y": -768
+ }
+ }
+ }
+ ],
+ "Rotations": [
+ {
+ "RoomNumber": -3,
+ "FaceIndices": [
+ 16,
+ 19,
+ 20
+ ],
+ "VertexRemap": {
+ "0": 1,
+ "1": 2,
+ "2": 3,
+ "3": 0
+ }
+ },
+ {
+ "RoomNumber": -3,
+ "FaceIndices": [
+ 18
+ ],
+ "VertexRemap": {
+ "0": 3,
+ "1": 0,
+ "2": 1,
+ "3": 2
+ }
+ },
+ {
+ "RoomNumber": -2,
+ "FaceIndices": [
+ 21
+ ],
+ "VertexRemap": {
+ "0": 3,
+ "1": 0,
+ "2": 1,
+ "3": 2
+ }
+ }
+ ]
+ },
+ {
+ "Comments": "Plug a gap in the wall in room 81.",
+ "EMType": 26,
+ "Tags": [
+ 9
+ ],
+ "Quads": {
+ "81": [
+ {
+ "Vertices": [
+ 107,
+ 104,
+ 78,
+ 77
+ ],
+ "Texture": 1376
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Remove redundant faces.",
+ "EMType": 22,
+ "Tags": [
+ 9
+ ],
+ "GeometryMap": {
+ "18": {
+ "Rectangles": [
+ 31
+ ]
+ },
+ "-4": {
+ "Rectangles": [
+ 2,
+ 7
+ ]
+ },
+ "-3": {
+ "Rectangles": [
+ 1,
+ 40
+ ]
+ },
+ "-2": {
+ "Rectangles": [
+ 4,
+ 9
+ ]
+ },
+ "-1": {
+ "Rectangles": [
+ 0,
+ 36
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Remove the ceiling slant from the portal we've created in room 81.",
+ "EMType": 7,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 72192,
+ "Y": -3456,
+ "Z": 14848,
+ "Room": 81
+ },
+ "RemoveSlant": true
+ },
+ {
+ "Comments": "And raise the ceiling to match.",
+ "EMType": 5,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 72192,
+ "Y": -3456,
+ "Z": 14848,
+ "Room": 81
+ },
+ "CeilingClicks": -3
+ },
+ {
+ "Comments": "Generate lighting.",
+ "EMType": 128,
+ "Tags": [
+ 9
+ ],
+ "RoomIndices": [
+ -1,
+ -2,
+ -3,
+ -4
+ ]
+ },
+ {
+ "Comments": "Add ladders near the boulders at the beginning.",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1295": {
+ "79": {
+ "Rectangles": [
+ 20
+ ]
+ },
+ "78": {
+ "Rectangles": [
+ 108
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 84480,
+ "Y": 1920,
+ "Z": 10752,
+ "Room": 79
+ },
+ "IsPositiveZ": true
+ },
+ {
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1295": {
+ "79": {
+ "Rectangles": [
+ 24
+ ]
+ },
+ "78": {
+ "Rectangles": [
+ 116
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 85504,
+ "Y": 1920,
+ "Z": 10752,
+ "Room": 79
+ },
+ "IsPositiveZ": true
+ },
+ {
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1295": {
+ "78": {
+ "Rectangles": [
+ 126
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 86528,
+ "Y": 1920,
+ "Z": 10752,
+ "Room": 78
+ },
+ "IsPositiveZ": true
+ },
+ {
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1295": {
+ "78": {
+ "Rectangles": [
+ 136
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 87552,
+ "Y": 1920,
+ "Z": 10752,
+ "Room": 78
+ },
+ "IsPositiveZ": true
+ },
+ {
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1295": {
+ "78": {
+ "Rectangles": [
+ 145
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 88576,
+ "Y": 1920,
+ "Z": 10752,
+ "Room": 78
+ },
+ "IsPositiveZ": true
+ },
+ {
+ "Comments": "Adjust faces to fit.",
+ "EMType": 23,
+ "Tags": [
+ 9
+ ],
+ "Rotations": [
+ {
+ "RoomNumber": 79,
+ "FaceIndices": [
+ 24
+ ],
+ "VertexRemap": {
+ "0": 1,
+ "1": 2,
+ "2": 3,
+ "3": 0
+ }
+ },
+ {
+ "RoomNumber": 78,
+ "FaceIndices": [
+ 145
+ ],
+ "VertexRemap": {
+ "0": 1,
+ "1": 2,
+ "2": 3,
+ "3": 0
+ }
+ }
+ ]
}
],
"Any": [
@@ -354,7 +1425,9 @@
"Comments": "Adjust a potential secret.",
"EMType": 43,
"Types": [
- 191
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -427,6 +1500,8 @@
"Comments": "Adjust a potential secret.",
"EMType": 43,
"Types": [
+ 192,
+ 191,
190
],
"SectorLocations": [
@@ -477,6 +1552,8 @@
"Comments": "Adjust a potential secret.",
"EMType": 43,
"Types": [
+ 192,
+ 191,
190
],
"SectorLocations": [
@@ -499,6 +1576,92 @@
"AllWithin": [
[
[
+ {
+ "Comments": "Leave the first canyon as-is.",
+ "EMType": 1000
+ }
+ ],
+ [
+ {
+ "Comments": "Allow climbing out near the canyon entrance.",
+ "EMType": 7,
+ "Location": {
+ "X": 70144,
+ "Y": 2816,
+ "Z": 29184
+ },
+ "FloorClicks": 3
+ },
+ {
+ "Comments": "Fix facing.",
+ "EMType": 23,
+ "Modifications": [
+ {
+ "FaceIndex": 46,
+ "VertexChanges": {
+ "0": {
+ "Y": 768
+ },
+ "1": {
+ "Y": 768
+ },
+ "2": {
+ "Y": 768
+ },
+ "3": {
+ "Y": 768
+ }
+ }
+ },
+ {
+ "FaceIndex": 50,
+ "VertexChanges": {
+ "0": {
+ "Y": 768
+ },
+ "1": {
+ "Y": 768
+ }
+ }
+ },
+ {
+ "FaceIndex": 47,
+ "VertexChanges": {
+ "0": {
+ "Y": 768
+ },
+ "1": {
+ "Y": 768
+ }
+ }
+ }
+ ]
+ },
+ {
+ "EMType": 26,
+ "Quads": {
+ "0": [
+ {
+ "Vertices": [
+ 82,
+ 83,
+ 200,
+ 199
+ ],
+ "Texture": 1474
+ },
+ {
+ "Vertices": [
+ 85,
+ 82,
+ 199,
+ 202
+ ],
+ "Texture": 1475
+ }
+ ]
+ }
+ },
{
"Comments": "Raise the water in the first canyon.",
"EMType": 2,
@@ -522,7 +1685,9 @@
"Comments": "Adjust a potential secret.",
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -537,7 +1702,9 @@
"Comments": "Adjust a potential secret.",
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -565,61 +1732,90 @@
}
},
{
- "Comments": "Make some blocks as we can't flood rooms 37, 38 etc because of height differences.",
- "EMType": 1,
- "Location": {
- "X": 59743,
+ "Comments": "Make a wall as we can't flood rooms 37, 38 etc because of height differences.",
+ "EMType": 127,
+ "Locations": [
+ {
+ "X": 59904,
+ "Y": 6144,
+ "Z": 35328,
+ "Room": 37
+ }
+ ],
+ "EntityMoveLocation": {
+ "X": 59904,
"Y": 6144,
- "Z": 34157,
- "Room": 28
- },
- "Clicks": -5,
- "FloorTexture": 1297,
- "SideTexture": 1330,
- "Flags": 9
+ "Z": 35328,
+ "Room": 37
+ }
},
{
- "EMType": 1,
- "Location": {
- "X": 59829,
+ "Comments": "Remove portals to match above.",
+ "EMType": 86,
+ "Location1": {
+ "X": 59904,
"Y": 6144,
- "Z": 35325,
+ "Z": 34304,
"Room": 37
},
- "Clicks": -4,
- "FloorTexture": 65535,
- "SideTexture": 1297,
- "Flags": 4
+ "Location2": {
+ "X": 59904,
+ "Y": 6144,
+ "Z": 35328,
+ "Room": 28
+ }
+ },
+ {
+ "Comments": "Adjust faces to match the new layout.",
+ "EMType": 26,
+ "Quads": {
+ "37": [
+ {
+ "Vertices": [
+ 7,
+ 11,
+ 8,
+ 3
+ ],
+ "Texture": 1291
+ }
+ ]
+ }
+ },
+ {
+ "EMType": 23,
+ "Modifications": [
+ {
+ "RoomNumber": 28,
+ "FaceIndex": 16,
+ "VertexChanges": {
+ "2": {
+ "Y": 1024
+ },
+ "3": {
+ "Y": 768
+ }
+ }
+ }
+ ]
},
{
- "Comments": "Tidy room 37 a little.",
"EMType": 22,
"GeometryMap": {
"37": {
"Triangles": [
+ 0,
1
+ ],
+ "Rectangles": [
+ 0,
+ 1,
+ 2,
+ 16
]
}
}
},
- {
- "Comments": "Move anything that sits in the now blocked doorway.",
- "EMType": 43,
- "SectorLocations": [
- {
- "X": 59829,
- "Y": 6144,
- "Z": 35325,
- "Room": 37
- }
- ],
- "TargetLocation": {
- "X": 59955,
- "Y": 6259,
- "Z": 36417,
- "Room": 37
- }
- },
{
"Comments": "Make some ladders to get out of room 34.",
"EMType": 0,
@@ -627,7 +1823,7 @@
3
],
"TextureMap": {
- "1386": {
+ "1295": {
"34": {
"Rectangles": [
3
@@ -645,11 +1841,8 @@
},
{
"EMType": 0,
- "Tags": [
- 3
- ],
"TextureMap": {
- "1386": {
+ "1295": {
"34": {
"Rectangles": [
9
@@ -667,11 +1860,8 @@
},
{
"EMType": 0,
- "Tags": [
- 3
- ],
"TextureMap": {
- "1386": {
+ "1295": {
"34": {
"Rectangles": [
14
@@ -689,11 +1879,8 @@
},
{
"EMType": 0,
- "Tags": [
- 3
- ],
"TextureMap": {
- "1386": {
+ "1295": {
"34": {
"Rectangles": [
20
@@ -711,11 +1898,8 @@
},
{
"EMType": 0,
- "Tags": [
- 3
- ],
"TextureMap": {
- "1386": {
+ "1295": {
"34": {
"Rectangles": [
25
@@ -738,6 +1922,26 @@
},
"IsNegativeZ": true
},
+ {
+ "Comments": "Face rotations for the ladders.",
+ "EMType": 23,
+ "Rotations": [
+ {
+ "RoomNumber": 34,
+ "FaceIndices": [
+ 3,
+ 9,
+ 20
+ ],
+ "VertexRemap": {
+ "0": 3,
+ "1": 0,
+ "2": 1,
+ "3": 2
+ }
+ }
+ ]
+ },
{
"Comments": "Remove rectangles to make a doorway.",
"EMType": 22,
@@ -797,44 +2001,7 @@
],
[
{
- "Comments": "Or completely drain the first canyon.",
- "EMType": 3,
- "Tags": [
- 2
- ],
- "RoomNumbers": [
- 13,
- 21,
- 29,
- 38,
- 39
- ],
- "WaterTextures": [
- 1487,
- 1488,
- 1307,
- 1489
- ]
- },
- {
- "Comments": "Remove the water sound sources for above.",
- "EMType": 103,
- "Source": {
- "X": 65024,
- "Y": 7936,
- "Z": 31232
- }
- },
- {
- "EMType": 103,
- "Source": {
- "X": 77312,
- "Y": 7936,
- "Z": 31232
- }
- },
- {
- "Comments": "Make a ladder to link to the current one in this area.",
+ "Comments": "Or completely drain the first canyon. Make a ladder to link to the current one in this area.",
"EMType": 0,
"Tags": [
3
@@ -843,28 +2010,21 @@
"1310": {
"13": {
"Rectangles": [
- 51
+ 72
]
}
},
"1295": {
"13": {
"Rectangles": [
- 52
+ 73
]
}
},
"1449": {
"1": {
"Rectangles": [
- 41
- ]
- }
- },
- "1439": {
- "1": {
- "Rectangles": [
- 41
+ 62
]
}
}
@@ -878,21 +2038,120 @@
"IsPositiveX": true
},
{
- "Comments": "Add a warning for the bad slope in this area.",
- "EMType": 24,
- "Locations": [
+ "Comments": "Fix an illegal slope to avoid softlock.",
+ "EMType": 7,
+ "Location": {
+ "X": 62976,
+ "Y": 10624,
+ "Z": 29184,
+ "Room": 29
+ },
+ "SlantType": 1,
+ "XSlant": -1
+ },
+ {
+ "Comments": "Fix faces.",
+ "EMType": 23,
+ "Modifications": [
{
- "X": 62986,
- "Y": 10767,
- "Z": 29187,
- "Room": 29,
- "Angle": -32768
+ "RoomNumber": 29,
+ "FaceIndex": 36,
+ "VertexChanges": {
+ "0": {
+ "Y": -512
+ },
+ "3": {
+ "Y": -512
+ }
+ }
+ },
+ {
+ "RoomNumber": 29,
+ "FaceIndex": 49,
+ "VertexChanges": {
+ "0": {
+ "Y": -512
+ },
+ "1": {
+ "Y": -512
+ }
+ }
+ },
+ {
+ "RoomNumber": 29,
+ "FaceIndex": 39,
+ "VertexChanges": {
+ "0": {
+ "Y": -512
+ }
+ }
+ }
+ ],
+ "Rotations": [
+ {
+ "RoomNumber": 1,
+ "FaceIndices": [
+ 62
+ ],
+ "VertexRemap": {
+ "0": 1,
+ "1": 2,
+ "2": 3,
+ "3": 0
+ }
}
+ ]
+ },
+ {
+ "EMType": 26,
+ "Triangles": {
+ "29": [
+ {
+ "Vertices": [
+ 59,
+ 32,
+ 46
+ ],
+ "Texture": 1361
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Perform the draining.",
+ "EMType": 3,
+ "Tags": [
+ 2
],
- "Mesh": {
- "Intensity1": 6400,
- "Intensity2": 6400,
- "MeshID": 23
+ "RoomNumbers": [
+ 13,
+ 21,
+ 29,
+ 38,
+ 39
+ ],
+ "WaterTextures": [
+ 1487,
+ 1488,
+ 1307,
+ 1489
+ ]
+ },
+ {
+ "Comments": "Remove the water sound sources for above.",
+ "EMType": 103,
+ "Source": {
+ "X": 65024,
+ "Y": 7936,
+ "Z": 31232
+ }
+ },
+ {
+ "EMType": 103,
+ "Source": {
+ "X": 77312,
+ "Y": 7936,
+ "Z": 31232
}
}
]
@@ -1905,7 +3164,31 @@
}
],
"ConditionalAllWithin": [],
- "ConditionalAll": [],
+ "ConditionalAll": [
+ {
+ "Condition": {
+ "Comments": "Check if key item #48 is in its default position. If not, move the trigger to its new location.",
+ "ConditionType": 0,
+ "EntityIndex": 48,
+ "X": 12800,
+ "Y": 1024,
+ "Z": 57856,
+ "Room": 70
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 12800,
+ "Y": 1024,
+ "Z": 57856,
+ "Room": 97
+ },
+ "EntityLocation": 48
+ }
+ ]
+ }
+ ],
"ConditionalOneOf": [],
"Mirrored": []
}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json b/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json
index f0b181dd1..b897035d5 100644
--- a/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR2/Environment/UNWATER.TR2-Environment.json
@@ -392,7 +392,9 @@
"Comments": "Several secret adjustments are needed.",
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -412,7 +414,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -432,7 +436,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -452,7 +458,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -473,7 +481,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -494,7 +504,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -508,7 +520,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
@@ -535,7 +549,9 @@
{
"EMType": 43,
"Types": [
- 192
+ 192,
+ 191,
+ 190
],
"SectorLocations": [
{
From bc7f2aa9465d337fcd33804a607e995f8f8fc24d Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 16:56:11 +0000
Subject: [PATCH 06/17] Update TR3 environment changes
Return paths added to Lud's and HSC, and updated in Area51 and Hallows.
Key item checks performed to move triggers and/or make items visible e.g. old coin in Aldwych.
---
.../Environment/ANTARC.TR2-Environment.json | 64 +++
.../Environment/AREA51.TR2-Environment.json | 17 +
.../TR3/Environment/CITY.TR2-Environment.json | 229 ++++++++-
.../Environment/COMPOUND.TR2-Environment.json | 461 +++++++++++++++++-
.../Environment/NEVADA.TR2-Environment.json | 32 ++
.../Environment/SEWER.TR2-Environment.json | 32 ++
.../Environment/STPAUL.TR2-Environment.json | 20 +
.../Environment/TOWER.TR2-Environment.json | 101 +++-
8 files changed, 953 insertions(+), 3 deletions(-)
diff --git a/TRRandomizerCore/Resources/TR3/Environment/ANTARC.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/ANTARC.TR2-Environment.json
index 8aa367a90..06e7a1ab5 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/ANTARC.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/ANTARC.TR2-Environment.json
@@ -117,6 +117,70 @@
]
}
]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #55 is in its default position. If not, ensure it is visible and remove its old trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 55,
+ "X": 68096,
+ "Y": -3840,
+ "Z": 28160,
+ "Room": 87
+ },
+ "OnFalse": [
+ {
+ "EMType": 48,
+ "EntityIndex": 55,
+ "Invisible": false
+ },
+ {
+ "EMType": 71,
+ "Locations": [
+ {
+ "X": 68096,
+ "Y": -3840,
+ "Z": 28160,
+ "Room": 87
+ }
+ ],
+ "ActionItem": {
+ "Parameter": 55
+ }
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #66 is in its default position. If not, ensure it is visible and remove its old trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 66,
+ "X": 54784,
+ "Y": -6144,
+ "Z": 47616,
+ "Room": 93
+ },
+ "OnFalse": [
+ {
+ "EMType": 48,
+ "EntityIndex": 66,
+ "Invisible": false
+ },
+ {
+ "EMType": 71,
+ "Locations": [
+ {
+ "X": 54784,
+ "Y": -6144,
+ "Z": 47616,
+ "Room": 93
+ }
+ ],
+ "ActionItem": {
+ "Parameter": 66
+ }
+ }
+ ]
}
],
"ConditionalOneOf": [],
diff --git a/TRRandomizerCore/Resources/TR3/Environment/AREA51.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/AREA51.TR2-Environment.json
index c2a2bedea..b8e813b3c 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/AREA51.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/AREA51.TR2-Environment.json
@@ -79,6 +79,23 @@
}
}
]
+ },
+ {
+ "Comments": "Make a step in room 64 to allow climbing back outside.",
+ "EMType": 1,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 34304,
+ "Y": 5632,
+ "Z": 60928,
+ "Room": 64
+ },
+ "Clicks": -1,
+ "FloorTexture": 1918,
+ "SideTexture": 2245,
+ "Flags": 15
}
],
"Any": [],
diff --git a/TRRandomizerCore/Resources/TR3/Environment/CITY.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/CITY.TR2-Environment.json
index 0ad77c1dd..af91e59ea 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/CITY.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/CITY.TR2-Environment.json
@@ -973,13 +973,240 @@
}
]
}
+ },
+ {
+ "Comments": "Replace the trigger under the wind mask with a pickup trigger, only if key item rando is enabled.",
+ "EMType": 61,
+ "Tags": [
+ 12
+ ],
+ "EntityLocation": 76,
+ "Trigger": {
+ "TrigType": 4,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 76
+ },
+ {
+ "Parameter": 77
+ }
+ ]
+ },
+ "Replace": true
+ },
+ {
+ "Comments": "Convert the exit door for the wind maze into a lifting type as it will no longer close.",
+ "EMType": 45,
+ "Tags": [
+ 12
+ ],
+ "EntityIndex": 77,
+ "NewEntityType": 133
+ },
+ {
+ "Comments": "Replace the trigger under the fire mask with a pickup trigger, only if key item rando is enabled.",
+ "EMType": 61,
+ "Tags": [
+ 12
+ ],
+ "EntityLocation": 105,
+ "Trigger": {
+ "TrigType": 4,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 105
+ },
+ {
+ "Parameter": 106
+ }
+ ]
+ },
+ "Replace": true
+ },
+ {
+ "Comments": "Convert the exit door for the fire room into a lifting type as it will no longer close.",
+ "EMType": 45,
+ "Tags": [
+ 12
+ ],
+ "EntityIndex": 106,
+ "NewEntityType": 133
+ },
+ {
+ "Comments": "Replace the trigger near the water mask with a pickup trigger for the mask, only if key item rando is enabled.",
+ "EMType": 61,
+ "Tags": [
+ 12
+ ],
+ "EntityLocation": 73,
+ "Trigger": {
+ "TrigType": 4,
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 73
+ },
+ {
+ "Parameter": 120
+ }
+ ]
+ }
+ },
+ {
+ "Comments": "Remove the switch trigger.",
+ "EMType": 62,
+ "Tags": [
+ 12
+ ],
+ "Locations": [
+ {
+ "X": 37376,
+ "Y": -2048,
+ "Z": 89600,
+ "Room": 109
+ }
+ ]
+ },
+ {
+ "Comments": "Replace the switch with a pickup.",
+ "EMType": 45,
+ "Tags": [
+ 12
+ ],
+ "EntityIndex": 94,
+ "NewEntityType": 177
+ },
+ {
+ "Comments": "Put it where the mask was.",
+ "EMType": 44,
+ "Tags": [
+ 12
+ ],
+ "EntityIndex": 94,
+ "TargetLocation": {
+ "X": 35328,
+ "Y": -2560,
+ "Z": 89600,
+ "Room": 94
+ }
+ },
+ {
+ "Comments": "Replace the wall texture.",
+ "EMType": 21,
+ "Tags": [
+ 12
+ ],
+ "TextureMap": {
+ "1889": {
+ "109": {
+ "Rectangles": [
+ 4
+ ]
+ }
+ }
+ }
}
],
"Any": [],
"AllWithin": [],
"OneOf": [],
"ConditionalAllWithin": [],
- "ConditionalAll": [],
+ "ConditionalAll": [
+ {
+ "Condition": {
+ "Comments": "If the earth mask has been moved, move its trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 108,
+ "X": 44544,
+ "Y": -8192,
+ "Z": 77312,
+ "Room": 120
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 44544,
+ "Y": -8192,
+ "Z": 77312,
+ "Room": 120
+ },
+ "EntityLocation": 108
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "If the wind mask has been moved, move its trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 76,
+ "X": 8704,
+ "Y": -12032,
+ "Z": 54784,
+ "Room": 97
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 8704,
+ "Y": -12032,
+ "Z": 54784,
+ "Room": 97
+ },
+ "EntityLocation": 76
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "If the water mask has been moved, move its trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 73,
+ "X": 35328,
+ "Y": -2560,
+ "Z": 89600,
+ "Room": 94
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 35328,
+ "Y": -2560,
+ "Z": 89600,
+ "Room": 94
+ },
+ "EntityLocation": 73
+ }
+ ]
+ },
+ {
+ "Condition": {
+ "Comments": "If the fire mask has been moved, move its trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 105,
+ "X": 16896,
+ "Y": 512,
+ "Z": 80384,
+ "Room": 119
+ },
+ "OnFalse": [
+ {
+ "EMType": 67,
+ "BaseLocation": {
+ "X": 16896,
+ "Y": 512,
+ "Z": 80384,
+ "Room": 119
+ },
+ "EntityLocation": 105
+ }
+ ]
+ }
+ ],
"ConditionalOneOf": [],
"Mirrored": []
}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR3/Environment/COMPOUND.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/COMPOUND.TR2-Environment.json
index d16480cd8..a147746ac 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/COMPOUND.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/COMPOUND.TR2-Environment.json
@@ -1,5 +1,464 @@
{
- "All": [],
+ "All": [
+ {
+ "Comments": "Create a return path from OG key 179 to the top of the satellite tower area.",
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 63488,
+ "Y": -256,
+ "Z": 6144
+ },
+ "LinkedLocation": {
+ "X": 67072,
+ "Z": 7680,
+ "Room": 129
+ },
+ "Textures": {
+ "Floor": 1855,
+ "Ceiling": 1765,
+ "WallAlignment": 4,
+ "Wall4": 1827
+ },
+ "AmbientLighting": 7424,
+ "DefaultVertex": {
+ "Lighting": 3170,
+ "Attributes": 16,
+ "Colour": 3170
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -768,
+ "Z": 1536,
+ "Intensity1": 512,
+ "Fade1": 4096,
+ "Colour": {
+ "Red": 255,
+ "Green": 255,
+ "Blue": 255
+ },
+ "LightProperties": [
+ -1688,
+ -1,
+ 732,
+ 0
+ ]
+ }
+ ],
+ "Height": 8,
+ "Width": 4,
+ "Depth": 8,
+ "FloorHeights": {
+ "-127": [
+ 18,
+ 19,
+ 20,
+ 21,
+ 22
+ ]
+ },
+ "CeilingHeights": {
+ "4": [
+ 9,
+ 10,
+ 11,
+ 12,
+ 13,
+ 17
+ ]
+ }
+ },
+ {
+ "EMType": 126,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 63488,
+ "Y": -2304,
+ "Z": 11264
+ },
+ "LinkedLocation": {
+ "X": 67072,
+ "Z": 7680,
+ "Room": 129
+ },
+ "Textures": {
+ "Floor": 1855,
+ "Ceiling": 1765,
+ "WallAlignment": 4,
+ "Wall4": 1827
+ },
+ "AmbientLighting": 7424,
+ "DefaultVertex": {
+ "Lighting": 3170,
+ "Attributes": 16,
+ "Colour": 3170
+ },
+ "Lights": [
+ {
+ "X": 1536,
+ "Y": -768,
+ "Z": 1536,
+ "Intensity1": 512,
+ "Fade1": 4096,
+ "Colour": {
+ "Red": 255,
+ "Green": 255,
+ "Blue": 255
+ },
+ "LightProperties": [
+ -1688,
+ -1,
+ 732,
+ 0
+ ]
+ }
+ ],
+ "Height": 8,
+ "Width": 3,
+ "Depth": 5,
+ "FloorHeights": {
+ "-4": [
+ 7
+ ]
+ }
+ },
+ {
+ "Comments": "Make visibility portals.",
+ "EMType": 81,
+ "Tags": [
+ 9
+ ],
+ "Portals": [
+ {
+ "BaseRoom": 38,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 2048
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": 38,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 4096
+ },
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 4096
+ },
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 3072
+ },
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 3072
+ }
+ ]
+ },
+ {
+ "BaseRoom": -1,
+ "AdjoiningRoom": -2,
+ "Normal": {
+ "Y": -1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 2048
+ },
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 1024
+ }
+ ]
+ },
+ {
+ "BaseRoom": -2,
+ "AdjoiningRoom": -1,
+ "Normal": {
+ "Y": 1
+ },
+ "Vertices": [
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 6144
+ },
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 6144
+ },
+ {
+ "X": 1024,
+ "Y": -2304,
+ "Z": 7168
+ },
+ {
+ "X": 2048,
+ "Y": -2304,
+ "Z": 7168
+ }
+ ]
+ },
+ {
+ "BaseRoom": -2,
+ "AdjoiningRoom": 129,
+ "Normal": {
+ "X": -1
+ },
+ "Vertices": [
+ {
+ "X": 3072,
+ "Y": -1280,
+ "Z": 2048
+ },
+ {
+ "X": 3072,
+ "Y": -1280,
+ "Z": 1024
+ },
+ {
+ "X": 3072,
+ "Y": -256,
+ "Z": 1024
+ },
+ {
+ "X": 3072,
+ "Y": -256,
+ "Z": 2048
+ }
+ ]
+ },
+ {
+ "BaseRoom": 129,
+ "AdjoiningRoom": -2,
+ "Normal": {
+ "X": 1
+ },
+ "Vertices": [
+ {
+ "X": 1024,
+ "Y": -1280,
+ "Z": 1024
+ },
+ {
+ "X": 1024,
+ "Y": -1280,
+ "Z": 2048
+ },
+ {
+ "X": 1024,
+ "Y": -256,
+ "Z": 2048
+ },
+ {
+ "X": 1024,
+ "Y": -256,
+ "Z": 1024
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "Comments": "Horizontal portals.",
+ "EMType": 82,
+ "Tags": [
+ 9
+ ],
+ "Portals": {
+ "38": {
+ "-1": [
+ {
+ "X": 65024,
+ "Z": 13824
+ }
+ ]
+ },
+ "-2": {
+ "129": [
+ {
+ "X": 67072,
+ "Z": 7680
+ }
+ ],
+ "-1": [
+ {
+ "X": 65024,
+ "Z": 13824
+ }
+ ]
+ },
+ "129": {
+ "-2": [
+ {
+ "X": 66048,
+ "Z": 7680
+ }
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Vertical portals.",
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 65024,
+ "Y": -2304,
+ "Z": 14848,
+ "Room": -1
+ },
+ "Floor": {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 14848,
+ "Room": 38
+ }
+ },
+ {
+ "Comments": "Vertical portals.",
+ "EMType": 83,
+ "Tags": [
+ 9
+ ],
+ "Ceiling": {
+ "X": 65024,
+ "Y": -2304,
+ "Z": 12800,
+ "Room": -1
+ },
+ "Floor": {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 12800,
+ "Room": -2
+ }
+ },
+ {
+ "Comments": "Add a ladder.",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1848": {
+ "-2": {
+ "Rectangles": [
+ 24,
+ 25
+ ]
+ },
+ "-1": {
+ "Rectangles": [
+ 4
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 65024,
+ "Y": -256,
+ "Z": 12800,
+ "Room": -2
+ },
+ "IsPositiveZ": true
+ },
+ {
+ "Comments": "Remove faces on portals.",
+ "EMType": 22,
+ "Tags": [
+ 9
+ ],
+ "GeometryMap": {
+ "38": {
+ "Rectangles": [
+ 1
+ ]
+ },
+ "-1": {
+ "Rectangles": [
+ 0,
+ 13
+ ]
+ },
+ "-2": {
+ "Rectangles": [
+ 21,
+ 32
+ ]
+ },
+ "129": {
+ "Rectangles": [
+ 3
+ ]
+ }
+ }
+ },
+ {
+ "Comments": "Generate lighting.",
+ "EMType": 128,
+ "Tags": [
+ 9
+ ],
+ "RoomIndices": [
+ -1,
+ -2
+ ]
+ }
+ ],
"Any": [],
"AllWithin": [],
"OneOf": [],
diff --git a/TRRandomizerCore/Resources/TR3/Environment/NEVADA.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/NEVADA.TR2-Environment.json
index 4e3784d11..47489811c 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/NEVADA.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/NEVADA.TR2-Environment.json
@@ -475,6 +475,38 @@
]
}
]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #57 is in its default position. If not, ensure it is visible and remove its old trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 57,
+ "X": 4608,
+ "Y": -3328,
+ "Z": 60928,
+ "Room": 69
+ },
+ "OnFalse": [
+ {
+ "EMType": 48,
+ "EntityIndex": 57,
+ "Invisible": false
+ },
+ {
+ "EMType": 71,
+ "Locations": [
+ {
+ "X": 32256,
+ "Y": -12800,
+ "Z": 86528,
+ "Room": 119
+ }
+ ],
+ "ActionItem": {
+ "Parameter": 57
+ }
+ }
+ ]
}
],
"ConditionalOneOf": [],
diff --git a/TRRandomizerCore/Resources/TR3/Environment/SEWER.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/SEWER.TR2-Environment.json
index 384743c67..b9e01ec8c 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/SEWER.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/SEWER.TR2-Environment.json
@@ -277,6 +277,38 @@
}
}
]
+ },
+ {
+ "Condition": {
+ "Comments": "Check if key item #86 is in its default position. If not, ensure it is visible and remove its old trigger.",
+ "ConditionType": 0,
+ "EntityIndex": 86,
+ "X": 62976,
+ "Y": 768,
+ "Z": 56832,
+ "Room": 42
+ },
+ "OnFalse": [
+ {
+ "EMType": 48,
+ "EntityIndex": 86,
+ "Invisible": false
+ },
+ {
+ "EMType": 71,
+ "Locations": [
+ {
+ "X": 42496,
+ "Y": 768,
+ "Z": 58880,
+ "Room": 68
+ }
+ ],
+ "ActionItem": {
+ "Parameter": 86
+ }
+ }
+ ]
}
],
"ConditionalOneOf": [],
diff --git a/TRRandomizerCore/Resources/TR3/Environment/STPAUL.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/STPAUL.TR2-Environment.json
index 5bebabcab..1dd2d9ede 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/STPAUL.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/STPAUL.TR2-Environment.json
@@ -1,5 +1,25 @@
{
"All": [
+ {
+ "Comments": "Allow resetting the zipline to avoid softlocks.",
+ "EMType": 61,
+ "Locations": [
+ {
+ "X": 41472,
+ "Y": -3840,
+ "Z": 53760,
+ "Room": 55
+ }
+ ],
+ "Trigger": {
+ "Mask": 31,
+ "Actions": [
+ {
+ "Parameter": 9
+ }
+ ]
+ }
+ },
{
"Comments": "Create a return path to get back out of the cathedral.",
"EMType": 126,
diff --git a/TRRandomizerCore/Resources/TR3/Environment/TOWER.TR2-Environment.json b/TRRandomizerCore/Resources/TR3/Environment/TOWER.TR2-Environment.json
index 6463d22e7..5f38a3877 100644
--- a/TRRandomizerCore/Resources/TR3/Environment/TOWER.TR2-Environment.json
+++ b/TRRandomizerCore/Resources/TR3/Environment/TOWER.TR2-Environment.json
@@ -1,5 +1,104 @@
{
- "All": [],
+ "All": [
+ {
+ "Comments": "Make ladders in rooms 69 and 72",
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1996": {
+ "72": {
+ "Rectangles": [
+ 81
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 54784,
+ "Y": -5376,
+ "Z": 35328,
+ "Room": 69
+ },
+ "IsPositiveX": true
+ },
+ {
+ "EMType": 0,
+ "Tags": [
+ 9
+ ],
+ "TextureMap": {
+ "1996": {
+ "72": {
+ "Rectangles": [
+ 79
+ ]
+ }
+ }
+ },
+ "Location": {
+ "X": 54784,
+ "Y": -5376,
+ "Z": 34304,
+ "Room": 69
+ },
+ "IsPositiveX": true
+ },
+ {
+ "Comments": "Make a block to reach the ladder.",
+ "EMType": 1,
+ "Tags": [
+ 9
+ ],
+ "Location": {
+ "X": 53760,
+ "Y": -6656,
+ "Z": 35328,
+ "Room": 69
+ },
+ "Clicks": -4,
+ "FloorTexture": 2029,
+ "SideTexture": 2029,
+ "Flags": 15
+ },
+ {
+ "Comments": "Alter door 211 to avoid softlock if exploring the area before it again.",
+ "EMType": 48,
+ "Tags": [
+ 9
+ ],
+ "EntityIndex": 211,
+ "Flags": 0
+ },
+ {
+ "Comments": "Adjust its triggers.",
+ "EMType": 62,
+ "Tags": [
+ 9
+ ],
+ "Locations": [
+ {
+ "X": 56832,
+ "Y": -1536,
+ "Z": 32256,
+ "Room": 198
+ }
+ ]
+ },
+ {
+ "EMType": 68,
+ "Tags": [
+ 9
+ ],
+ "EntityLocation": 109,
+ "Actions": [
+ {
+ "Parameter": 211
+ }
+ ]
+ }
+ ],
"Any": [],
"AllWithin": [],
"OneOf": [],
From 98b2a576fd8112dc5959b9ddc37a688bede87992 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 17:00:47 +0000
Subject: [PATCH 07/17] Fix TR2 model adjustments
TR2 replaces P2 items with P3, to allow for the dragon to be placed in each level (the dagger is hardcoded as a P2 item). This was always done after key item rando to allow for zoning of the original items. I forgot to move this logic in #568. Zoning of these items must now be done based on them being P3.
Removed the puzzle reassignment checks from TR3 as it's not applicable there.
Also updated the enemy adjustment logic (this clears out unused enemies in heavy-item levels) so that the items can be re-used if needed.
---
.../Editors/RandomizerSettings.cs | 2 +-
TRRandomizerCore/Editors/TR2RandoEditor.cs | 45 +++++++++++--------
TRRandomizerCore/Editors/TR3RandoEditor.cs | 4 +-
.../Processors/TR2/TR2EnemyAdjuster.cs | 4 ++
.../TR2/TR2GameStringRandomizer.cs | 2 +-
.../TR3/TR3GameStringRandomizer.cs | 37 +++++++--------
6 files changed, 51 insertions(+), 43 deletions(-)
diff --git a/TRRandomizerCore/Editors/RandomizerSettings.cs b/TRRandomizerCore/Editors/RandomizerSettings.cs
index 03f3dfa60..1f6b9fcde 100644
--- a/TRRandomizerCore/Editors/RandomizerSettings.cs
+++ b/TRRandomizerCore/Editors/RandomizerSettings.cs
@@ -138,7 +138,7 @@ public class RandomizerSettings
public bool RandomizeItemPositions { get; set; }
public bool DeduplicateTextures => RandomizeTextures || RandomizeNightMode || (RandomizeEnemies && CrossLevelEnemies) || RandomizeOutfits;// || RandomizeEnvironment; // Not needed until trap model import takes place
- public bool ReassignPuzzleNames => RandomizeEnemies && CrossLevelEnemies;
+ public bool ReassignPuzzleItems => (RandomizeEnemies && CrossLevelEnemies) || (RandomizeItems && IncludeKeyItems);
public bool RandomizeVfx { get; set; }
public Color VfxFilterColor { get; set; }
diff --git a/TRRandomizerCore/Editors/TR2RandoEditor.cs b/TRRandomizerCore/Editors/TR2RandoEditor.cs
index 36d44e060..c0a6187cb 100644
--- a/TRRandomizerCore/Editors/TR2RandoEditor.cs
+++ b/TRRandomizerCore/Editors/TR2RandoEditor.cs
@@ -33,7 +33,7 @@ protected override int GetSaveTarget(int numLevels)
{
int target = base.GetSaveTarget(numLevels);
- if (Settings.RandomizeGameStrings || Settings.ReassignPuzzleNames)
+ if (Settings.RandomizeGameStrings || Settings.ReassignPuzzleItems)
{
target++;
}
@@ -83,10 +83,16 @@ protected override int GetSaveTarget(int numLevels)
target += numLevels * 2;
}
+ if (Settings.ReassignPuzzleItems)
+ {
+ // For TR2ModelAdjuster
+ target += numLevels;
+ }
+
if (Settings.RandomizeEnemies)
{
- // *4 => 3 for multithreading work, 1 for ModelAdjuster
- target += Settings.CrossLevelEnemies ? numLevels * 4 : numLevels;
+ // 3 for multithreading cross-level work
+ target += Settings.CrossLevelEnemies ? numLevels * 3 : numLevels;
// And again for eliminating unused enemies
target += numLevels;
}
@@ -172,11 +178,12 @@ protected override void SaveImpl(AbstractTRScriptEditor scriptEditor, TRSaveMoni
Levels = levels,
BasePath = wipDirectory,
BackupPath = backupDirectory,
- SaveMonitor = monitor
+ SaveMonitor = monitor,
+ ItemFactory = itemFactory,
}.AdjustEnemies();
}
- if (!monitor.IsCancelled && (Settings.RandomizeGameStrings || Settings.ReassignPuzzleNames))
+ if (!monitor.IsCancelled && (Settings.RandomizeGameStrings || Settings.ReassignPuzzleItems))
{
monitor.FireSaveStateBeginning(TRSaveCategory.Custom, "Adjusting game strings");
new TR2GameStringRandomizer
@@ -228,23 +235,23 @@ protected override void SaveImpl(AbstractTRScriptEditor scriptEditor, TRSaveMoni
itemRandomizer.Randomize(Settings.ItemSeed);
}
- if (!monitor.IsCancelled && Settings.RandomizeEnemies)
+ if (!monitor.IsCancelled && Settings.ReassignPuzzleItems)
{
- if (Settings.CrossLevelEnemies)
+ // P2 items are converted to P3 in case the dragon is present as the dagger type is hardcoded.
+ // Must take place before enemy randomization. OG P2 key items must be zoned based on being P3.
+ monitor.FireSaveStateBeginning(TRSaveCategory.Custom, "Adjusting level models");
+ new TR2ModelAdjuster
{
- // For now all P2 items become P3 to avoid dragon issues. This must take place after Item
- // randomization for P2/3 zoning because P2 entities will become P3.
- monitor.FireSaveStateBeginning(TRSaveCategory.Custom, "Adjusting level models");
- new TR2ModelAdjuster
- {
- ScriptEditor = tr23ScriptEditor,
- Levels = levels,
- BasePath = wipDirectory,
- BackupPath = backupDirectory,
- SaveMonitor = monitor
- }.AdjustModels();
- }
+ ScriptEditor = tr23ScriptEditor,
+ Levels = levels,
+ BasePath = wipDirectory,
+ BackupPath = backupDirectory,
+ SaveMonitor = monitor
+ }.AdjustModels();
+ }
+ if (!monitor.IsCancelled && Settings.RandomizeEnemies)
+ {
monitor.FireSaveStateBeginning(TRSaveCategory.Custom, "Randomizing enemies");
new TR2EnemyRandomizer
{
diff --git a/TRRandomizerCore/Editors/TR3RandoEditor.cs b/TRRandomizerCore/Editors/TR3RandoEditor.cs
index 7c335a99c..eb80095d7 100644
--- a/TRRandomizerCore/Editors/TR3RandoEditor.cs
+++ b/TRRandomizerCore/Editors/TR3RandoEditor.cs
@@ -35,7 +35,7 @@ protected override int GetSaveTarget(int numLevels)
// randomizers are implemented, just call Settings.GetSaveTarget(numLevels) per TR2.
int target = base.GetSaveTarget(numLevels);
- if (Settings.RandomizeGameStrings || Settings.ReassignPuzzleNames)
+ if (Settings.RandomizeGameStrings)
{
target++;
}
@@ -159,7 +159,7 @@ protected override void SaveImpl(AbstractTRScriptEditor scriptEditor, TRSaveMoni
using (textureMonitor)
{
- if (!monitor.IsCancelled && (Settings.RandomizeGameStrings || Settings.ReassignPuzzleNames))
+ if (!monitor.IsCancelled && Settings.RandomizeGameStrings)
{
monitor.FireSaveStateBeginning(TRSaveCategory.Custom, "Adjusting game strings");
new TR3GameStringRandomizer
diff --git a/TRRandomizerCore/Processors/TR2/TR2EnemyAdjuster.cs b/TRRandomizerCore/Processors/TR2/TR2EnemyAdjuster.cs
index a2d3e3106..79d8863e6 100644
--- a/TRRandomizerCore/Processors/TR2/TR2EnemyAdjuster.cs
+++ b/TRRandomizerCore/Processors/TR2/TR2EnemyAdjuster.cs
@@ -3,6 +3,7 @@
using TRGE.Core;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
+using TRRandomizerCore.Helpers;
namespace TRRandomizerCore.Processors;
@@ -14,6 +15,8 @@ public class TR2EnemyAdjuster : TR2LevelProcessor
[TR2LevelNames.MONASTERY] = new List { 38, 39, 118 }
};
+ public ItemFactory ItemFactory { get; set; }
+
public void AdjustEnemies()
{
foreach (TR2ScriptedLevel lvl in Levels)
@@ -43,6 +46,7 @@ private void AdjustInstanceEnemies()
{
_levelInstance.Data.Entities[enemyIndex].TypeID = TR2Type.CameraTarget_N;
FDUtilities.RemoveEntityTriggers(_levelInstance.Data, enemyIndex, floorData);
+ ItemFactory?.FreeItem(_levelInstance.Name, enemyIndex);
}
floorData.WriteToLevel(_levelInstance.Data);
diff --git a/TRRandomizerCore/Randomizers/TR2/TR2GameStringRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/TR2GameStringRandomizer.cs
index 53783628f..eaa64531c 100644
--- a/TRRandomizerCore/Randomizers/TR2/TR2GameStringRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR2/TR2GameStringRandomizer.cs
@@ -40,7 +40,7 @@ public override void Randomize(int seed)
}
}
- if (Settings.ReassignPuzzleNames)
+ if (Settings.ReassignPuzzleItems)
{
// This is specific to the Dagger of Xian if it appears in other levels with the dragon. We'll just
// use whatever has already been allocated as the dagger name in Lair.
diff --git a/TRRandomizerCore/Randomizers/TR3/TR3GameStringRandomizer.cs b/TRRandomizerCore/Randomizers/TR3/TR3GameStringRandomizer.cs
index b9766f781..c143c3123 100644
--- a/TRRandomizerCore/Randomizers/TR3/TR3GameStringRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR3/TR3GameStringRandomizer.cs
@@ -12,31 +12,28 @@ public class TR3GameStringRandomizer : BaseTR3Randomizer
public override void Randomize(int seed)
{
- if (Settings.RandomizeGameStrings)
- {
- _generator = new Random(seed);
- _g11n = new G11N(G11NGame.TR3);
+ _generator = new(seed);
+ _g11n = new(G11NGame.TR3);
- if (!Settings.GameStringLanguage.IsHybrid)
- {
- _gameStrings = _g11n.GetGameStrings(Settings.GameStringLanguage) as TR23GameStrings;
- }
- _defaultGameStrings = _g11n.GetDefaultGameStrings() as TR23GameStrings;
+ if (!Settings.GameStringLanguage.IsHybrid)
+ {
+ _gameStrings = _g11n.GetGameStrings(Settings.GameStringLanguage) as TR23GameStrings;
+ }
+ _defaultGameStrings = _g11n.GetDefaultGameStrings() as TR23GameStrings;
- TR23Script script = ScriptEditor.Script as TR23Script;
- List gamestrings1 = new(script.GameStrings1);
- List gamestrings2 = new(script.GameStrings2);
+ TR23Script script = ScriptEditor.Script as TR23Script;
+ List gamestrings1 = new(script.GameStrings1);
+ List gamestrings2 = new(script.GameStrings2);
- ProcessGlobalStrings(0, gamestrings1);
- ProcessGlobalStrings(1, gamestrings2);
+ ProcessGlobalStrings(0, gamestrings1);
+ ProcessGlobalStrings(1, gamestrings2);
- script.GameStrings1 = gamestrings1.ToArray();
- script.GameStrings2 = gamestrings2.ToArray();
+ script.GameStrings1 = gamestrings1.ToArray();
+ script.GameStrings2 = gamestrings2.ToArray();
- foreach (AbstractTRScriptedLevel level in ScriptEditor.ScriptedLevels)
- {
- ProcessLevelStrings(level);
- }
+ foreach (AbstractTRScriptedLevel level in ScriptEditor.ScriptedLevels)
+ {
+ ProcessLevelStrings(level);
}
SaveScript();
From df845fbf3f8bd3079d7e4d5b031757477fc1ccb1 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 17:03:20 +0000
Subject: [PATCH 08/17] Secret updates
Moved some general consts into TRLevelControl as they're better placed there.
Fixed some locations in TR2 that had the wrong room numbers set and one that was missing a skidoo flag.
---
TRLevelControl/Helpers/TRConsts.cs | 3 +++
TRLevelControlTests/TR3/IOTests.cs | 5 +++--
.../Resources/TR2/Locations/locations.json | 16 +++++++++-------
TRRandomizerCore/Secrets/TRSecretPlacement.cs | 10 ++++------
4 files changed, 19 insertions(+), 15 deletions(-)
diff --git a/TRLevelControl/Helpers/TRConsts.cs b/TRLevelControl/Helpers/TRConsts.cs
index 9351cc169..2bc0c38d3 100644
--- a/TRLevelControl/Helpers/TRConsts.cs
+++ b/TRLevelControl/Helpers/TRConsts.cs
@@ -19,4 +19,7 @@ public static class TRConsts
public const int WallShift = 10;
public const int NoHeight = -32512;
public const int WallClicks = -127;
+
+ public const int MaskBits = 5;
+ public const int FullMask = (1 << MaskBits) - 1;
}
diff --git a/TRLevelControlTests/TR3/IOTests.cs b/TRLevelControlTests/TR3/IOTests.cs
index ff62081ee..82b3ad6c1 100644
--- a/TRLevelControlTests/TR3/IOTests.cs
+++ b/TRLevelControlTests/TR3/IOTests.cs
@@ -1,5 +1,6 @@
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TRFDControl;
+using TRLevelControl;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRLevelControl.Model.Base.Enums;
@@ -217,7 +218,7 @@ public void TestSecretTriggerMasks()
for (int totalSecrets = 1; totalSecrets <= 21; totalSecrets++)
{
// The number of doors determines the trigger masks
- int requiredDoors = (int)Math.Ceiling((double)totalSecrets / TRSecretPlacement.MaskBits);
+ int requiredDoors = (int)Math.Ceiling((double)totalSecrets / TRConsts.MaskBits);
List doors = new(requiredDoors);
for (int i = 0; i < requiredDoors; i++)
{
@@ -245,7 +246,7 @@ public void TestSecretTriggerMasks()
int mask = 0;
doorTriggers.ForEach(s => mask += s.TriggerMask);
- Assert.AreEqual(TRSecretPlacement.FullActivation, mask);
+ Assert.AreEqual(TRConsts.FullMask, mask);
}
}
}
diff --git a/TRRandomizerCore/Resources/TR2/Locations/locations.json b/TRRandomizerCore/Resources/TR2/Locations/locations.json
index 5ad3194c6..7844145ae 100644
--- a/TRRandomizerCore/Resources/TR2/Locations/locations.json
+++ b/TRRandomizerCore/Resources/TR2/Locations/locations.json
@@ -636,7 +636,7 @@
"X": 33764,
"Y": 787,
"Z": 37989,
- "Room": 65
+ "Room": 66
},
{
"X": 31643,
@@ -1102,7 +1102,7 @@
"X": 25647,
"Y": 807,
"Z": 77925,
- "Room": 154,
+ "Room": 146,
"PackID": "apel"
},
{
@@ -1526,7 +1526,7 @@
"X": 53349,
"Y": -116,
"Z": 23023,
- "Room": 71
+ "Room": 64
},
{
"X": 33893,
@@ -1742,7 +1742,7 @@
"X": 69531,
"Y": 8192,
"Z": 59291,
- "Room": 173
+ "Room": 176
},
{
"X": 72805,
@@ -1953,7 +1953,7 @@
"X": 70154,
"Y": 5632,
"Z": 56820,
- "Room": 115
+ "Room": 116
},
{
"X": 70168,
@@ -1977,7 +1977,7 @@
"X": 75675,
"Y": 7936,
"Z": 48027,
- "Room": 84
+ "Room": 83
},
{
"X": 88987,
@@ -4772,7 +4772,9 @@
"X": 3181,
"Y": -3300,
"Z": 76871,
- "Room": 74
+ "Room": 74,
+ "TargetType": 13,
+ "VehicleRequired": true
},
{
"X": 6063,
diff --git a/TRRandomizerCore/Secrets/TRSecretPlacement.cs b/TRRandomizerCore/Secrets/TRSecretPlacement.cs
index 5f4453eaa..8d6c576d1 100644
--- a/TRRandomizerCore/Secrets/TRSecretPlacement.cs
+++ b/TRRandomizerCore/Secrets/TRSecretPlacement.cs
@@ -1,12 +1,10 @@
-using TRRandomizerCore.Helpers;
+using TRLevelControl;
+using TRRandomizerCore.Helpers;
namespace TRRandomizerCore.Secrets;
public class TRSecretPlacement where E : Enum
{
- public static readonly int MaskBits = 5;
- public static readonly int FullActivation = (1 << MaskBits) - 1;
-
public Location Location { get; set; }
public E PickupType { get; set; }
public ushort EntityIndex { get; set; }
@@ -21,7 +19,7 @@ public class TRSecretPlacement where E : Enum
public TRSecretPlacement()
{
// Default to standard mask and no door
- TriggerMask = (byte)FullActivation;
+ TriggerMask = TRConsts.FullMask;
DoorIndex = ushort.MaxValue;
CameraIndex = ushort.MaxValue;
}
@@ -50,7 +48,7 @@ public void SetMaskAndDoor(int secretCount, List doorItems)
int alignedIndex = SecretIndex + 1;
if (alignedIndex == secretCount || alignedIndex % split == 0)
{
- while (++position < MaskBits)
+ while (++position < TRConsts.MaskBits)
{
mask |= 1 << position;
}
From d227c222aa2d4c5ea67e00015773aa480acb9438 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 21:06:12 +0000
Subject: [PATCH 09/17] Create unified zoning logic
Key items and secrets will now be placed using identical logic in all games. This uses routes (currently empty) to mark the minimum and maximum rooms key items can be placed in to prevent softlocks. For secrets, the previous sphere-testing method is replaced with a distance approximator, again using the provided level route. TR2 secrets will continue to be in Stone/Jade/Gold order, based on the dev-intended route of a level.
---
.../Helpers/CollectionExtensions.cs | 15 +
TRRandomizerCore/Helpers/ExtRoomInfo.cs | 43 ++
TRRandomizerCore/Helpers/ItemFactory.cs | 30 ++
.../Randomizers/Shared/IRouteManager.cs | 9 +
.../Randomizers/Shared/LocationPicker.cs | 312 +++++++++++++--
.../Randomizers/Shared/SecretConsts.cs | 14 +
.../Randomizers/Shared/SecretPicker.cs | 125 +++++-
.../Randomizers/TR1/TR1ItemRandomizer.cs | 37 +-
.../Randomizers/TR1/TR1SecretRandomizer.cs | 371 ++++++------------
.../Randomizers/TR2/TR2ItemRandomizer.cs | 355 ++++-------------
.../Randomizers/TR2/TR2SecretRandomizer.cs | 361 ++++++-----------
.../Randomizers/TR3/TR3ItemRandomizer.cs | 102 +----
.../Randomizers/TR3/TR3SecretRandomizer.cs | 341 ++++++----------
.../Resources/TR1/Locations/routes.json | 2 +
.../Resources/TR2/Locations/routes.json | 2 +
.../Resources/TR3/Locations/routes.json | 2 +
16 files changed, 1005 insertions(+), 1116 deletions(-)
create mode 100644 TRRandomizerCore/Helpers/ExtRoomInfo.cs
create mode 100644 TRRandomizerCore/Randomizers/Shared/IRouteManager.cs
create mode 100644 TRRandomizerCore/Randomizers/Shared/SecretConsts.cs
create mode 100644 TRRandomizerCore/Resources/TR1/Locations/routes.json
create mode 100644 TRRandomizerCore/Resources/TR2/Locations/routes.json
create mode 100644 TRRandomizerCore/Resources/TR3/Locations/routes.json
diff --git a/TRRandomizerCore/Helpers/CollectionExtensions.cs b/TRRandomizerCore/Helpers/CollectionExtensions.cs
index 5462fb35c..febe06b42 100644
--- a/TRRandomizerCore/Helpers/CollectionExtensions.cs
+++ b/TRRandomizerCore/Helpers/CollectionExtensions.cs
@@ -56,4 +56,19 @@ public static void Shuffle(this List list, Random rand)
iterList.Remove(item);
}
}
+
+ public static List> Split(this List list, int parts)
+ {
+ int boundary = (int)Math.Ceiling(list.Count / (double)parts);
+ List> splits = new();
+ for (int i = 0; i < list.Count; i++)
+ {
+ if (i % boundary == 0)
+ {
+ splits.Add(new());
+ }
+ splits[^1].Add(list[i]);
+ }
+ return splits;
+ }
}
diff --git a/TRRandomizerCore/Helpers/ExtRoomInfo.cs b/TRRandomizerCore/Helpers/ExtRoomInfo.cs
new file mode 100644
index 000000000..6d1de44c2
--- /dev/null
+++ b/TRRandomizerCore/Helpers/ExtRoomInfo.cs
@@ -0,0 +1,43 @@
+using TRLevelControl;
+using TRLevelControl.Model;
+
+namespace TRRandomizerCore.Helpers;
+
+public class ExtRoomInfo
+{
+ public int MinX { get; private set; }
+ public int MaxX { get; private set; }
+ public int MinZ { get; private set; }
+ public int MaxZ { get; private set; }
+ public int MinY { get; private set; }
+ public int MaxY { get; private set; }
+
+ public int Width { get; private set; }
+ public int Height { get; private set; }
+ public int Depth { get; private set; }
+
+ public int Size { get; private set; }
+
+ public ExtRoomInfo(TRRoomInfo info, int numXSectors, int numZSectors)
+ {
+ MinX = info.X + TRConsts.Step4;
+ MaxX = info.X + TRConsts.Step4 * (numXSectors - 1);
+ MinZ = info.Z + TRConsts.Step4;
+ MaxZ = info.Z + TRConsts.Step4 * (numZSectors - 1);
+ MinY = info.YTop;
+ MaxY = info.YBottom;
+
+ Width = numXSectors - 2;
+ Depth = numZSectors - 2;
+ Height = Math.Abs(MaxY - MinY) / TRConsts.Step1;
+
+ Size = Width * Depth * Height;
+ }
+
+ public bool Contains(Location location)
+ {
+ return location.X >= MinX && location.X < MaxX
+ && location.Y > MinY && location.Y <= MaxY
+ && location.Z >= MinZ && location.Z < MaxZ;
+ }
+}
diff --git a/TRRandomizerCore/Helpers/ItemFactory.cs b/TRRandomizerCore/Helpers/ItemFactory.cs
index aed763a23..766e40612 100644
--- a/TRRandomizerCore/Helpers/ItemFactory.cs
+++ b/TRRandomizerCore/Helpers/ItemFactory.cs
@@ -91,6 +91,36 @@ public bool CanCreateItems(string lvl, List allItems, int count, bool
return allItems.Count + count <= _entityLimit || allowLimitBreak;
}
+ public TR1Entity CreateLockedItem(string lvl, List allItems, Location location = null, bool allowLimitBreak = false)
+ {
+ TR1Entity entity = CreateItem(lvl, allItems, location, allowLimitBreak);
+ if (entity != null)
+ {
+ LockItem(lvl, allItems.IndexOf(entity));
+ }
+ return entity;
+ }
+
+ public TR2Entity CreateLockedItem(string lvl, List allItems, Location location = null, bool allowLimitBreak = false)
+ {
+ TR2Entity entity = CreateItem(lvl, allItems, location, allowLimitBreak);
+ if (entity != null)
+ {
+ LockItem(lvl, allItems.IndexOf(entity));
+ }
+ return entity;
+ }
+
+ public TR3Entity CreateLockedItem(string lvl, List allItems, Location location = null, bool allowLimitBreak = false)
+ {
+ TR3Entity entity = CreateItem(lvl, allItems, location, allowLimitBreak);
+ if (entity != null)
+ {
+ LockItem(lvl, allItems.IndexOf(entity));
+ }
+ return entity;
+ }
+
public TR1Entity CreateItem(string lvl, List allItems, Location location = null, bool allowLimitBreak = false)
{
TR1Entity item;
diff --git a/TRRandomizerCore/Randomizers/Shared/IRouteManager.cs b/TRRandomizerCore/Randomizers/Shared/IRouteManager.cs
new file mode 100644
index 000000000..9db3a835a
--- /dev/null
+++ b/TRRandomizerCore/Randomizers/Shared/IRouteManager.cs
@@ -0,0 +1,9 @@
+using TRRandomizerCore.Helpers;
+
+namespace TRRandomizerCore.Randomizers;
+
+public interface IRouteManager
+{
+ int LevelSize { get; }
+ int GetProximity(Location locationA, Location locationB);
+}
diff --git a/TRRandomizerCore/Randomizers/Shared/LocationPicker.cs b/TRRandomizerCore/Randomizers/Shared/LocationPicker.cs
index 692fbde45..fe973935a 100644
--- a/TRRandomizerCore/Randomizers/Shared/LocationPicker.cs
+++ b/TRRandomizerCore/Randomizers/Shared/LocationPicker.cs
@@ -1,70 +1,330 @@
-using TRLevelControl;
+using Newtonsoft.Json;
+using TRLevelControl;
using TRLevelControl.Model;
+using TRRandomizerCore.Editors;
using TRRandomizerCore.Helpers;
using TRRandomizerCore.Utilities;
namespace TRRandomizerCore.Randomizers;
-public class LocationPicker
+public class LocationPicker : IRouteManager
{
private static readonly int _rotation = -8192;
- private List _locations;
- private List _usedTriggerLocations;
+ private readonly Dictionary> _routes;
+
+ private List _locations, _usedTriggerLocations, _currentRoute;
+ private List _allRooms;
+ private RandomizerSettings _settings;
private Random _generator;
public Func TriggerTestAction { get; set; }
public Func KeyItemTestAction { get; set; }
+ public List RoomInfos { get; set; }
+ public int LevelSize { get; private set; }
+
+ private enum KeyMode
+ {
+ Low,
+ High,
+ }
- public void Initialise(List globalLocations, Random generator)
+ public LocationPicker(string routePath)
+ {
+ _routes = JsonConvert.DeserializeObject>>(File.ReadAllText(routePath));
+ }
+
+ public void Initialise(string levelName, List globalLocations, RandomizerSettings settings, Random generator)
{
_locations = globalLocations;
_usedTriggerLocations = new();
+ _settings = settings;
_generator = generator;
+ LoadCurrentRoute(levelName);
+ _locations.Shuffle(_generator);
+
+ _allRooms = _locations
+ .Select(l => l.Room)
+ .Distinct()
+ .ToList();
+
+ LevelSize = _allRooms.Sum(r => RoomInfos?[r].Size ?? 0);
}
- public List GetLocations()
+ private void LoadCurrentRoute(string levelName)
{
- return _locations;
+ _currentRoute = _routes.ContainsKey(levelName) ? _routes[levelName] : null;
+ if (_currentRoute == null || RoomInfos == null)
+ {
+ return;
+ }
+
+ // Dynamic locations can indicate return paths or even added puzzle/challenge rooms.
+ // If we cannot match them precisely to a room that's been added, mark them as invalid.
+ // This assumes our level design does not overlap rooms anywhere.
+ List dynamicLocations = _currentRoute
+ .FindAll(l => l.RoomType == RoomType.ReturnPath || l.RoomType == RoomType.Challenge);
+
+ foreach (Location location in dynamicLocations)
+ {
+ List matchingInfos = RoomInfos.FindAll(r => r.Contains(location));
+ if (matchingInfos.Count == 1)
+ {
+ if ((location.RoomType == RoomType.ReturnPath || location.RequiresReturnPath)
+ && !_settings.IncludeReturnPathLocations)
+ {
+ // Return paths may be present, but the user doesn't want items placed here.
+ InvalidateLocation(location);
+ }
+ else
+ {
+ location.Room = RoomInfos.IndexOf(matchingInfos[0]);
+ }
+ }
+ else
+ {
+ InvalidateLocation(location);
+ }
+ }
+ }
+
+ private static void InvalidateLocation(Location location)
+ {
+ location.Room = TRConsts.NoRoom;
+ location.Validated = false;
}
- public Location GetPickupLocation()
+ public void RandomizePickupLocation(TREntity entity)
+ where T : Enum
{
- return _locations[_generator.Next(0, _locations.Count)];
+ Location location = GetRandomLocation();
+ if (location != null)
+ {
+ SetLocation(entity, location);
+ }
}
- public Location GetKeyItemLocation(List locations, TREntity entity, bool hasPickupTrigger)
+ public void RandomizeKeyItemLocation(TREntity entity, bool hasPickupTrigger, int levelSequence, TRRoomInfo roomInfo)
where T : Enum
{
- // Currently we pass in locations - once all key items are zoned,
- // we can simply use the auto-generated locations.
+ int keyItemID = GetKeyItemID(levelSequence, entity, roomInfo);
+ if (!Enum.IsDefined(typeof(T), keyItemID))
+ {
+ return;
+ }
+
+ Location location = GetKeyItemLocation(keyItemID, entity, hasPickupTrigger);
+ if (location != null)
+ {
+ SetLocation(entity, location);
+ }
+ }
- if (!hasPickupTrigger)
+ public Location GetKeyItemLocation(int keyItemID, TREntity entity, bool hasPickupTrigger)
+ where T : Enum
+ {
+ List roomPool = GetRoomPool(keyItemID);
+ if (roomPool.Count == 0)
{
- return locations[_generator.Next(0, locations.Count)];
+ // This key item must remain static.
+ return null;
}
+ Location newLocation;
Location currentLocation = entity.GetLocation();
// If there is a trigger for this key item that will be shifted by environment
// changes, make sure to select a location that doesn't already have a trigger.
- Location location;
- do
+ // Don't test triggers if we have picked the same tile, but do allow callers to
+ // handle their own specific tests in all cases.
+ while (true)
+ {
+ newLocation = GetRandomLocation(roomPool);
+ if (hasPickupTrigger && !newLocation.IsEquivalent(currentLocation)
+ && (TriggerTestAction(newLocation) || _usedTriggerLocations.Contains(newLocation)))
+ {
+ continue;
+ }
+
+ if (KeyItemTestAction != null && !KeyItemTestAction(newLocation))
+ {
+ continue;
+ }
+
+ break;
+ }
+
+ if (hasPickupTrigger)
+ {
+ _usedTriggerLocations.Add(newLocation);
+ }
+
+ return newLocation;
+ }
+
+ public List GetRoomPool(int keyItemID)
+ {
+ List roomPool = new();
+ if (_currentRoute == null)
+ {
+ return roomPool;
+ }
+
+ List zones = new();
+ for (int i = 0; i < _currentRoute.Count; i++)
+ {
+ Location location = _currentRoute[i];
+ if (TestLocation(location, KeyMode.Low, keyItemID))
+ {
+ zones.Add(new()
+ {
+ LowIndex = i,
+ HighIndex = -1
+ });
+ }
+
+ if (TestLocation(location, KeyMode.High, keyItemID))
+ {
+ if (zones.Count == 0)
+ {
+ // Assume a waypoint at the start of the level has been omitted
+ zones.Add(new());
+ }
+
+ if (i == zones[^1].LowIndex)
+ {
+ // Intentionally do not move this item e.g. Seraph in The Deck
+ return roomPool;
+ }
+
+ // Clamp to outside this room e.g. when several waypoints may be placed on
+ // an upper bound, we want to be in the previous room, not previous waypoint.
+ int highIndex = i;
+ int highRoom = _currentRoute[highIndex].Room;
+ while (_currentRoute[highIndex].Room == highRoom && highIndex >= 0)
+ {
+ highIndex--;
+ }
+
+ zones[^1].HighIndex = highIndex;
+ }
+ }
+
+ foreach (Zone zone in zones)
+ {
+ if (zone.HighIndex == -1)
+ {
+ // Assume the zone extends to level end
+ zone.HighIndex = _currentRoute.Count - 1;
+ }
+
+ for (int i = zone.LowIndex; i <= zone.HighIndex; i++)
+ {
+ // Not validated indicates although part of a valid route overall, this
+ // room can't support key items e.g. room 38 in Temple of Xian
+ if (_currentRoute[i].Validated && !roomPool.Contains(_currentRoute[i].Room))
+ {
+ roomPool.Add(_currentRoute[i].Room);
+ }
+ }
+ }
+
+ return roomPool;
+ }
+
+ private bool TestLocation(Location location, KeyMode keyTestMode, int keyItemID)
+ {
+ // This assumes that all possible scenarios are defined on a route
+ string keyIDs = keyTestMode == KeyMode.Low ? location.KeyItemsLow : location.KeyItemsHigh;
+ if (keyIDs == null || !keyIDs.Contains(keyItemID.ToString()))
+ {
+ return false;
+ }
+
+ if (location.Range != _settings.KeyItemRange)
+ {
+ return false;
+ }
+
+ return (location.RequiresReturnPath && _settings.IncludeReturnPathLocations)
+ || (!location.RequiresReturnPath && !_settings.IncludeReturnPathLocations);
+ }
+
+ public int GetRoutePosition(Location location)
+ {
+ return _currentRoute.FindIndex(l => l.Room == location.Room);
+ }
+
+ public List GetRouteRooms()
+ {
+ return _currentRoute
+ .Select(l => l.Room)
+ .Distinct()
+ .ToList();
+ }
+
+ public int GetProximity(Location location1, Location location2)
+ {
+ if (_currentRoute == null)
+ {
+ return -1;
+ }
+
+ int routeIndex1 = _currentRoute.FindIndex(l => l.Room == location1.Room);
+ int routeIndex2 = _currentRoute.FindIndex(l => l.Room == location2.Room);
+
+ int distance = 0;
+ if (routeIndex1 == -1 || routeIndex2 == -1)
{
- location = locations[_generator.Next(0, locations.Count)];
- if (location.IsEquivalent(currentLocation))
+ return distance;
+ }
+
+ HashSet visitedRooms = new();
+ for (int i = Math.Min(routeIndex1, routeIndex2); i <= Math.Max(routeIndex1, routeIndex2); i++)
+ {
+ Location route = _currentRoute[i];
+ if (route.Room != TRConsts.NoRoom && _allRooms.Contains(route.Room) && visitedRooms.Add(route.Room))
{
- // No need to test if we've selected the same tile
- break;
+ distance += RoomInfos[route.Room].Size;
}
}
- while (TriggerTestAction(location) || _usedTriggerLocations.Contains(location)
- || (KeyItemTestAction != null && !KeyItemTestAction(location)));
- _usedTriggerLocations.Add(location);
+ return distance;
+ }
+
+ public Location GetRandomLocation(List roomPool = null)
+ {
+ if (roomPool == null || !_locations.Any(l => roomPool.Contains(l.Room)))
+ {
+ roomPool = _allRooms;
+ }
+
+ Location location;
+ do
+ {
+ location = _locations[_generator.Next(0, _locations.Count)];
+ }
+ while (!roomPool.Contains(location.Room));
+
return location;
}
+ public static int GetKeyItemID(int levelSequence, TREntity entity, TRRoomInfo roomInfo)
+ where T : Enum
+ {
+ // Arbitrary method of generating unique IDs per level.
+ int x = (entity.X - roomInfo.X) / TRConsts.Step4;
+ int z = (entity.Z - roomInfo.Z) / TRConsts.Step4;
+ int y = entity.Y / TRConsts.Step1;
+
+ return 10000
+ + (levelSequence - 1) * 1000
+ + (int)(object)entity.TypeID
+ + entity.Room * 2
+ + x * z
+ + y;
+ }
+
public void SetLocation(TREntity entity, Location location)
where T : Enum
{
@@ -82,4 +342,10 @@ public void SetLocation(TREntity entity, Location location)
entity.Angle = (short)(_generator.Next(0, 8) * _rotation);
}
}
+
+ private class Zone
+ {
+ public int LowIndex { get; set; }
+ public int HighIndex { get; set; }
+ }
}
diff --git a/TRRandomizerCore/Randomizers/Shared/SecretConsts.cs b/TRRandomizerCore/Randomizers/Shared/SecretConsts.cs
new file mode 100644
index 000000000..ac9c75453
--- /dev/null
+++ b/TRRandomizerCore/Randomizers/Shared/SecretConsts.cs
@@ -0,0 +1,14 @@
+namespace TRRandomizerCore.Randomizers;
+
+public static class SecretConsts
+{
+ public static readonly string InvalidLocationMsg = "Cannot place a nonvalidated secret where a trigger already exists - {0} [X={1}, Y={2}, Z={3}, R={4}]";
+ public static readonly string TrapdoorLocationMsg = "Cannot place a secret on the same sector as a bridge/trapdoor - {0} [X={1}, Y={2}, Z={3}, R={4}]";
+ public static readonly string MidairErrorMsg = "Cannot place a secret in mid-air or on a breakable tile - {0} [X={1}, Y={2}, Z={3}, R={4}]";
+ public static readonly string TriggerWarningMsg = "Existing trigger object action with parameter {0} will be lost - {1} [X={2}, Y={3}, Z={4}, R={5}]";
+ public static readonly string FlipMapWarningMsg = "Secret is being placed in a room that has a flipmap - {0} [X={1}, Y={2}, Z={3}, R={4}]";
+ public static readonly string FlipMapErrorMsg = "Secret cannot be placed in a flipped room - {0} [X={1}, Y={2}, Z={3}, R={4}]";
+ public static readonly string EdgeInfoMsg = "Adding extra tile edge trigger for {0} [X={1}, Y={2}, Z={3}, R={4}]";
+
+ public static readonly int TriggerEdgeLimit = 103; // Within ~10% of a tile edge, triggers should be copied into neighbours
+}
diff --git a/TRRandomizerCore/Randomizers/Shared/SecretPicker.cs b/TRRandomizerCore/Randomizers/Shared/SecretPicker.cs
index e47a24a08..de39f2b1f 100644
--- a/TRRandomizerCore/Randomizers/Shared/SecretPicker.cs
+++ b/TRRandomizerCore/Randomizers/Shared/SecretPicker.cs
@@ -1,14 +1,70 @@
-using TRRandomizerCore.Editors;
+using System.Diagnostics;
+using TRLevelControl.Model;
+using TRRandomizerCore.Editors;
using TRRandomizerCore.Helpers;
namespace TRRandomizerCore.Randomizers;
public class SecretPicker
{
+ private const int _maxRetryLimit = 500;
+ private const float _distanceStep = 1.0f;
+ private const float _minDistanceDivisor = _distanceStep * 3;
+ private static readonly List _retryTolerances = new()
+ {
+ 10, 25, 50
+ };
+
+ private int _proxEvaluationCount;
+ private float _distanceDivisor;
+
public RandomizerSettings Settings { get; set; }
public Random Generator { get; set; }
public IMirrorControl Mirrorer { get; set; }
public ItemFactory ItemFactory { get; set; }
+ public IRouteManager RouteManager { get; set; }
+ public Func SectorAction { get; set; }
+ public Func PlacementTestAction { get; set; }
+
+ public List GetLocations(List allLocations, bool isMirrored, int totalCount)
+ {
+ ResetEvaluators(totalCount);
+
+ List locations = new();
+ Queue guaranteedLocations = GetGuaranteedLocations(allLocations, isMirrored, totalCount, location =>
+ {
+ bool result = TestLocation(location, locations, isMirrored, totalCount);
+ if (result)
+ {
+ locations.Add(location);
+ }
+ return result;
+ });
+
+ for (int i = 0; i < totalCount; i++)
+ {
+ Location location;
+ if (guaranteedLocations.Count > 0)
+ {
+ location = guaranteedLocations.Dequeue();
+ }
+ else
+ {
+ do
+ {
+ location = allLocations[Generator.Next(0, allLocations.Count)];
+ }
+ while (!TestLocation(location, locations, isMirrored, totalCount));
+ }
+
+ if (!locations.Contains(location))
+ {
+ locations.Add(location);
+ }
+ }
+
+ return locations;
+ }
public Queue GetGuaranteedLocations(IEnumerable allLocations, bool isMirrored, int totalCount, Func validCallback = null)
{
@@ -94,6 +150,69 @@ public Queue GetGuaranteedLocations(IEnumerable allLocations
return locations;
}
+ public bool TestLocation(Location location, List usedLocations, bool isMirrored, int totalCount)
+ {
+ if (location.Difficulty == Difficulty.Hard && !Settings.HardSecrets)
+ {
+ return false;
+ }
+
+ if (location.RequiresGlitch && !Settings.GlitchedSecrets)
+ {
+ return false;
+ }
+
+ if (isMirrored && location.LevelState == LevelState.NotMirrored)
+ {
+ return false;
+ }
+
+ if (!isMirrored && location.LevelState == LevelState.Mirrored)
+ {
+ return false;
+ }
+
+ if (!PlacementTestAction?.Invoke(location) ?? false)
+ {
+ return false;
+ }
+
+ if (usedLocations.Count == 0 || usedLocations == null)
+ {
+ ResetEvaluators(totalCount);
+ return true;
+ }
+
+ _proxEvaluationCount++;
+ if (_retryTolerances.Contains(_proxEvaluationCount) || _proxEvaluationCount > _retryTolerances.Max())
+ {
+ _distanceDivisor += _distanceStep;
+ }
+
+ float minProximity = RouteManager.LevelSize / _distanceDivisor;
+
+ TRRoomSector newSector = SectorAction(location);
+ foreach (Location used in usedLocations)
+ {
+ int proximity = RouteManager.GetProximity(location, used);
+ if ((proximity >= 0 && proximity < minProximity)
+ || newSector == SectorAction(used)
+ || (used.Room == location.Room && _proxEvaluationCount < _maxRetryLimit))
+ {
+ return false;
+ }
+ }
+
+ ResetEvaluators(totalCount);
+ return true;
+ }
+
+ private void ResetEvaluators(int totalCount)
+ {
+ _proxEvaluationCount = 0;
+ _distanceDivisor = Math.Max(_minDistanceDivisor, totalCount);
+ }
+
public void FinaliseSecretPool(IEnumerable usedLocations, string level)
{
// Secrets in packs are permitted to enforce level state
@@ -111,6 +230,10 @@ public void FinaliseSecretPool(IEnumerable usedLocations, string level
// Indicates that a secret relies on another item to remain in its original position
ItemFactory.LockItem(level, location.EntityIndex);
}
+
+#if DEBUG
+ Debug.WriteLine(level + ": " + DescribeLocations(usedLocations));
+#endif
}
private static IEnumerable FilterLocations(IEnumerable locations, bool isMirrored, Difficulty difficulty, bool glitched)
diff --git a/TRRandomizerCore/Randomizers/TR1/TR1ItemRandomizer.cs b/TRRandomizerCore/Randomizers/TR1/TR1ItemRandomizer.cs
index 2852f265a..9888c7d5a 100644
--- a/TRRandomizerCore/Randomizers/TR1/TR1ItemRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR1/TR1ItemRandomizer.cs
@@ -49,7 +49,6 @@ public class TR1ItemRandomizer : BaseTR1Randomizer
= 0, // Default = 21
};
- private readonly Dictionary> _keyItemLocations;
private readonly Dictionary> _excludedLocations;
private readonly Dictionary> _pistolLocations;
@@ -66,10 +65,9 @@ public class TR1ItemRandomizer : BaseTR1Randomizer
public TR1ItemRandomizer()
{
- _keyItemLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR1\Locations\item_locations.json"));
_excludedLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR1\Locations\invalid_item_locations.json"));
_pistolLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR1\Locations\unarmed_locations.json"));
- _picker = new();
+ _picker = new(GetResourcePath(@"TR1\Locations\routes.json"));
}
public override void Randomize(int seed)
@@ -82,7 +80,7 @@ public override void Randomize(int seed)
FindUnarmedLevelPistols(_levelInstance);
- _picker.Initialise(GetItemLocationPool(_levelInstance), _generator);
+ _picker.Initialise(_levelInstance.Name, GetItemLocationPool(_levelInstance, false), Settings, _generator);
_secretMapping = TRSecretMapping.Get(GetResourcePath($@"TR1\SecretMapping\{_levelInstance.Name}-SecretMapping.json"));
if (Settings.IncludeExtraPickups)
@@ -129,7 +127,6 @@ public void RandomizeKeyItems()
foreach (TR1ScriptedLevel lvl in Levels)
{
LoadLevelInstance(lvl);
- _picker.Initialise(GetItemLocationPool(_levelInstance), _generator);
RandomizeKeyItems(_levelInstance);
SaveLevelInstance();
@@ -187,7 +184,7 @@ private void AddExtraPickups(TR1CombinedLevel level)
break;
}
- TR1Entity newItem = ItemFactory.CreateItem(level.Name, level.Data.Entities, _picker.GetPickupLocation());
+ TR1Entity newItem = ItemFactory.CreateItem(level.Name, level.Data.Entities, _picker.GetRandomLocation());
newItem.TypeID = stdItemTypes[_generator.Next(0, stdItemTypes.Count)];
}
}
@@ -300,8 +297,7 @@ public void RandomizeItemLocations(TR1CombinedLevel level)
// Move standard items only, excluding any unarmed level pistols, and reward items
if (TR1TypeUtilities.IsStandardPickupType(entity.TypeID) && entity != _unarmedLevelPistols)
{
- Location location = _picker.GetPickupLocation();
- _picker.SetLocation(entity, location);
+ _picker.RandomizePickupLocation(entity);
entity.Intensity = 0;
}
}
@@ -314,7 +310,7 @@ public void RandomizeItemLocations(TR1CombinedLevel level)
}
}
- private List GetItemLocationPool(TR1CombinedLevel level)
+ private List GetItemLocationPool(TR1CombinedLevel level, bool keyItemMode)
{
List exclusions = new();
if (_excludedLocations.ContainsKey(level.Name))
@@ -345,34 +341,33 @@ private List GetItemLocationPool(TR1CombinedLevel level)
}
TR1LocationGenerator generator = new();
- return generator.Generate(level.Data, exclusions);
+ return generator.Generate(level.Data, exclusions, keyItemMode);
}
private void RandomizeKeyItems(TR1CombinedLevel level)
{
- List locations;
- if (!_keyItemLocations.ContainsKey(level.Name) || (locations = _keyItemLocations[level.Name]).Count == 0)
- {
- return;
- }
-
FDControl floorData = new();
floorData.ParseFromLevel(level.Data);
_picker.TriggerTestAction = location => LocationUtilities.HasAnyTrigger(location, level.Data, floorData);
+ _picker.RoomInfos = level.Data.Rooms
+ .Select(r => new ExtRoomInfo(r.Info, r.NumXSectors, r.NumZSectors))
+ .ToList();
+
+ _picker.Initialise(_levelInstance.Name, GetItemLocationPool(_levelInstance, true), Settings, _generator);
for (int i = 0; i < level.Data.Entities.Count; i++)
{
TR1Entity entity = level.Data.Entities[i];
- if (!TR1TypeUtilities.IsKeyItemType(entity.TypeID) || IsSecretItem(entity, i, level.Data, floorData))
+ if (!TR1TypeUtilities.IsKeyItemType(entity.TypeID)
+ || ItemFactory.IsItemLocked(level.Name, i))
{
continue;
}
- int itemID = 10000 + ((level.Script.OriginalSequence - 1) * 1000) + (int)entity.TypeID + entity.Room;
- List pool = locations.FindAll(l => l.KeyItemGroupID == itemID);
- Location location = _picker.GetKeyItemLocation(locations, entity, LocationUtilities.HasPickupTriger(entity, i, level.Data, floorData));
- _picker.SetLocation(entity, location);
+ _picker.RandomizeKeyItemLocation(
+ entity, LocationUtilities.HasPickupTriger(entity, i, level.Data, floorData),
+ level.Script.OriginalSequence, level.Data.Rooms[entity.Room].Info);
}
}
diff --git a/TRRandomizerCore/Randomizers/TR1/TR1SecretRandomizer.cs b/TRRandomizerCore/Randomizers/TR1/TR1SecretRandomizer.cs
index 1059ab37a..6fc8ea19a 100644
--- a/TRRandomizerCore/Randomizers/TR1/TR1SecretRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR1/TR1SecretRandomizer.cs
@@ -1,6 +1,5 @@
using Newtonsoft.Json;
using System.Diagnostics;
-using System.Numerics;
using TREnvironmentEditor.Helpers;
using TREnvironmentEditor.Model.Types;
using TRFDControl;
@@ -8,6 +7,7 @@
using TRFDControl.Utilities;
using TRGE.Core;
using TRGE.Core.Item.Enums;
+using TRLevelControl;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRModelTransporter.Transport;
@@ -16,46 +16,26 @@
using TRRandomizerCore.Processors;
using TRRandomizerCore.Secrets;
using TRRandomizerCore.Utilities;
+using SC = TRRandomizerCore.Randomizers.SecretConsts;
namespace TRRandomizerCore.Randomizers;
public class TR1SecretRandomizer : BaseTR1Randomizer, ISecretRandomizer
{
- private static readonly string _invalidLocationMsg = "Cannot place a nonvalidated secret where a trigger already exists - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _trapdoorLocationMsg = "Cannot place a secret on the same sector as a bridge/trapdoor - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _midairErrorMsg = "Cannot place a secret in mid-air or on a breakable tile - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _triggerWarningMsg = "Existing trigger object action with parameter {0} will be lost - {1} [X={2}, Y={3}, Z={4}, R={5}]";
- private static readonly string _flipMapWarningMsg = "Secret is being placed in a room that has a flipmap - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _flipMapErrorMsg = "Secret cannot be placed in a flipped room - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _edgeInfoMsg = "Adding extra tile edge trigger for {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly List _devRooms = null;
-
private static readonly ushort _maxSecretCount = 5;
private readonly Dictionary> _locations, _unarmedLocations;
-
- private int _proxEvaluationCount;
-
- private static readonly float _LARGE_RADIUS = 5000.0f;
- private static readonly float _MED_RADIUS = 2500.0f;
- private static readonly float _SMALL_RADIUS = 750.0f;
- private static readonly float _TINY_RADIUS = 5.0f;
-
- private static readonly int _LARGE_RETRY_TOLERANCE = 10;
- private static readonly int _MED_RETRY_TOLERANCE = 25;
- private static readonly int _SMALL_RETRY_TOLERANCE = 50;
-
- private static readonly int _triggerEdgeLimit = 103; // Within ~10% of a tile edge, triggers will be copied into neighbours
+ private readonly LocationPicker _routePicker;
+ private SecretPicker _secretPicker;
public ItemFactory ItemFactory { get; set; }
public IMirrorControl Mirrorer { get; set; }
- private SecretPicker _picker;
-
public TR1SecretRandomizer()
{
_locations = JsonConvert.DeserializeObject>>(ReadResource(@"TR1\Locations\locations.json"));
_unarmedLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR1\Locations\unarmed_locations.json"));
+ _routePicker = new(GetResourcePath(@"TR1\Locations\routes.json"));
}
public IEnumerable GetPacks()
@@ -68,13 +48,14 @@ public IEnumerable GetPacks()
public override void Randomize(int seed)
{
- _generator = new Random(seed);
- _picker = new SecretPicker
+ _generator = new(seed);
+ _secretPicker = new()
{
Settings = Settings,
Generator = _generator,
ItemFactory = ItemFactory,
Mirrorer = Mirrorer,
+ RouteManager = _routePicker,
};
if (ScriptEditor.Edition.IsCommunityPatch && !Settings.UseSecretPack)
@@ -410,56 +391,39 @@ private void PlaceAllSecrets(TR1CombinedLevel level, List pickupTypes,
int pickupIndex = 0;
ushort secretIndex = 0;
ushort countedSecrets = _maxSecretCount;
- bool damagingLocationUsed = false;
- bool glitchedDamagingLocationUsed = false;
foreach (Location location in locations)
{
- if (_devRooms == null || _devRooms.Contains(location.Room))
- {
- if (Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.NotMirrored)
- continue;
+ if (Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.NotMirrored)
+ continue;
- if (!Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.Mirrored)
- continue;
-
- secret.Location = location;
- secret.EntityIndex = (ushort)ItemFactory.GetNextIndex(level.Name, level.Data.Entities, true);
- secret.SecretIndex = (ushort)(secretIndex % countedSecrets); // Cycle through each secret number
- secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count]; // Cycle through the types
+ if (!Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.Mirrored)
+ continue;
- // #238 Point this secret to a specific camera and look-at target if applicable.
- if (Settings.UseRewardRoomCameras && rewardRoom.HasCameras)
- {
- secret.CameraIndex = (ushort)rewardRoom.CameraIndices[pickupIndex % rewardRoom.CameraIndices.Count];
- secret.CameraTarget = (ushort)rewardRoom.DoorIndices[0];
- }
+ secret.Location = location;
+ secret.EntityIndex = (ushort)ItemFactory.GetNextIndex(level.Name, level.Data.Entities, true);
+ secret.SecretIndex = (ushort)(secretIndex % countedSecrets);
+ secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count];
- secret.SetMaskAndDoor(countedSecrets, rewardRoom.DoorIndices);
+ if (Settings.UseRewardRoomCameras && rewardRoom.HasCameras)
+ {
+ secret.CameraIndex = (ushort)rewardRoom.CameraIndices[pickupIndex % rewardRoom.CameraIndices.Count];
+ secret.CameraTarget = (ushort)rewardRoom.DoorIndices[0];
+ }
- if (PlaceSecret(level, secret, floorData))
- {
- // This will either make a new entity or repurpose an old one
- TR1Entity entity = ItemFactory.CreateItem(level.Name, level.Data.Entities, secret.Location, true);
- entity.TypeID = secret.PickupType;
+ secret.SetMaskAndDoor(countedSecrets, rewardRoom.DoorIndices);
+ PlaceSecret(level, secret, floorData);
- secretIndex++;
- pickupIndex++;
+ // This will either make a new entity or repurpose an old one
+ TR1Entity entity = ItemFactory.CreateLockedItem(level.Name, level.Data.Entities, secret.Location, true);
+ entity.TypeID = secret.PickupType;
- if (location.RequiresDamage)
- {
- damagingLocationUsed = true;
- if (location.RequiresGlitch)
- {
- glitchedDamagingLocationUsed = true;
- }
- }
- }
- }
+ secretIndex++;
+ pickupIndex++;
}
floorData.WriteToLevel(level.Data);
- AddDamageControl(level, damagingLocationUsed, glitchedDamagingLocationUsed);
+ AddDamageControl(level, locations);
}
private void RandomizeSecrets(TR1CombinedLevel level, List pickupTypes, TRSecretRoom rewardRoom)
@@ -469,49 +433,28 @@ private void RandomizeSecrets(TR1CombinedLevel level, List pickupTypes,
List locations = _locations[level.Name];
locations.Shuffle(_generator);
- List usedLocations = new();
- Queue guaranteedLocations = _picker.GetGuaranteedLocations(locations, Mirrorer.IsMirrored(level.Name), level.Script.NumSecrets, location =>
- {
- bool result = EvaluateProximity(location, usedLocations, level, floorData);
- if (result)
- {
- usedLocations.Add(location);
- }
- _proxEvaluationCount = 0;
- return result;
- });
+ _secretPicker.SectorAction = loc
+ => FDUtilities.GetRoomSector(loc.X, loc.Y, loc.Z, (short)loc.Room, level.Data, floorData);
+ _secretPicker.PlacementTestAction = loc
+ => TestSecretPlacement(level, loc, floorData);
- usedLocations.Clear();
+ _routePicker.RoomInfos = level.Data.Rooms
+ .Select(r => new ExtRoomInfo(r.Info, r.NumXSectors, r.NumZSectors))
+ .ToList();
+ _routePicker.Initialise(level.Name, locations, Settings, _generator);
+
+ List pickedLocations = _secretPicker.GetLocations(locations, Mirrorer.IsMirrored(level.Name), level.Script.NumSecrets);
- TRSecretPlacement secret = new();
int pickupIndex = 0;
- bool damagingLocationUsed = false;
- bool glitchedDamagingLocationUsed = false;
- while (secret.SecretIndex < level.Script.NumSecrets)
+ TRSecretPlacement secret = new();
+ for (int i = 0; i < level.Script.NumSecrets; i++)
{
- Location location;
- if (guaranteedLocations.Count > 0)
- {
- location = guaranteedLocations.Dequeue();
- }
- else
- {
- do
- {
- location = locations[_generator.Next(0, locations.Count)];
- }
- while (!EvaluateProximity(location, usedLocations, level, floorData));
- }
-
- _proxEvaluationCount = 0;
-
- usedLocations.Add(location);
+ Location location = pickedLocations[i];
secret.Location = location;
secret.EntityIndex = (ushort)ItemFactory.GetNextIndex(level.Name, level.Data.Entities);
- secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count]; // Cycle through the types
+ secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count];
- // #238 Point this secret to a specific camera and look-at target if applicable.
if (Settings.UseRewardRoomCameras && rewardRoom.HasCameras)
{
secret.CameraIndex = (ushort)rewardRoom.CameraIndices[pickupIndex % rewardRoom.CameraIndices.Count];
@@ -519,100 +462,28 @@ private void RandomizeSecrets(TR1CombinedLevel level, List pickupTypes,
}
secret.SetMaskAndDoor(level.Script.NumSecrets, rewardRoom.DoorIndices);
+ PlaceSecret(level, secret, floorData);
- if (PlaceSecret(level, secret, floorData))
- {
- // This will either make a new entity or repurpose an old one
- TR1Entity entity = ItemFactory.CreateItem(level.Name, level.Data.Entities, secret.Location);
- entity.TypeID = secret.PickupType;
-
- secret.SecretIndex++;
- pickupIndex++;
+ // This will either make a new entity or repurpose an old one. Ensure it is locked
+ // to prevent item rando from potentially treating it as a key item.
+ TR1Entity entity = ItemFactory.CreateLockedItem(level.Name, level.Data.Entities, secret.Location);
+ entity.TypeID = secret.PickupType;
- if (location.RequiresDamage)
- {
- damagingLocationUsed = true;
- if (location.RequiresGlitch)
- {
- glitchedDamagingLocationUsed = true;
- }
- }
- }
+ secret.SecretIndex++;
+ pickupIndex++;
}
floorData.WriteToLevel(level.Data);
- AddDamageControl(level, damagingLocationUsed, glitchedDamagingLocationUsed);
-
- _picker.FinaliseSecretPool(usedLocations, level.Name);
-
-#if DEBUG
- Debug.WriteLine(level.Name + ": " + SecretPicker.DescribeLocations(usedLocations));
-#endif
- }
-
- private bool EvaluateProximity(Location loc, List usedLocs, TR1CombinedLevel level, FDControl floorData)
- {
- bool SafeToPlace = true;
- if (loc.Difficulty == Difficulty.Hard && !Settings.HardSecrets)
- return false;
-
- if (loc.RequiresGlitch && !Settings.GlitchedSecrets)
- return false;
-
- if (Mirrorer.IsMirrored(level.Name) && loc.LevelState == LevelState.NotMirrored)
- return false;
-
- if (!Mirrorer.IsMirrored(level.Name) && loc.LevelState == LevelState.Mirrored)
- return false;
-
- if (usedLocs.Count == 0 || usedLocs == null)
- return true;
-
- _proxEvaluationCount++;
-
- float proximity;
- //Be more generous with proximity if we are failing to place.
- if (_proxEvaluationCount <= _LARGE_RETRY_TOLERANCE)
- {
- proximity = _LARGE_RADIUS;
- }
- else if (_proxEvaluationCount > _LARGE_RETRY_TOLERANCE && _proxEvaluationCount <= _MED_RETRY_TOLERANCE)
- {
- proximity = _MED_RADIUS;
- }
- else if (_proxEvaluationCount > _MED_RETRY_TOLERANCE && _proxEvaluationCount <= _SMALL_RETRY_TOLERANCE)
- {
- proximity = _SMALL_RADIUS;
- }
- else
- {
- proximity = _TINY_RADIUS;
- }
-
- Sphere newLoc = new(new Vector3(loc.X, loc.Y, loc.Z), proximity);
- // Tilted sectors can still pass the proximity test, so in any case we never want 2 secrets sharing a tile.
- // We also want to try to avoid secrets in the same room, unless we've exhausted all other attempts.
- TRRoomSector newSector = FDUtilities.GetRoomSector(loc.X, loc.Y, loc.Z, (short)loc.Room, level.Data, floorData);
-
- foreach (Location used in usedLocs)
- {
- SafeToPlace = !newLoc.IsColliding(new Sphere(new Vector3(used.X, used.Y, used.Z), proximity))
- && newSector != FDUtilities.GetRoomSector(used.X, used.Y, used.Z, (short)used.Room, level.Data, floorData)
- && (proximity == _TINY_RADIUS || used.Room != loc.Room);
-
- if (SafeToPlace == false)
- break;
- }
-
- return SafeToPlace;
+ AddDamageControl(level, pickedLocations);
+ _secretPicker.FinaliseSecretPool(pickedLocations, level.Name);
}
- private void AddDamageControl(TR1CombinedLevel level, bool damagingLocationUsed, bool glitchedDamagingLocationUsed)
+ private void AddDamageControl(TR1CombinedLevel level, List locations)
{
// If we have used a secret that requires damage, add a large medi to an unarmed level
// weapon location.
- if (damagingLocationUsed && _unarmedLocations.ContainsKey(level.Name))
+ if (locations.Any(l => l.RequiresDamage) && _unarmedLocations.ContainsKey(level.Name))
{
if (ItemFactory.CanCreateItem(level.Name, level.Data.Entities, Settings.DevelopmentMode))
{
@@ -630,7 +501,7 @@ private void AddDamageControl(TR1CombinedLevel level, bool damagingLocationUsed,
// If we have also used a secret that requires damage and is glitched, add an additional
// medi as these tend to occur where Lara has to drop far after picking them up.
- if (glitchedDamagingLocationUsed && ScriptEditor.Edition.IsCommunityPatch)
+ if (locations.Any(l => l.RequiresDamage && l.RequiresGlitch) && ScriptEditor.Edition.IsCommunityPatch)
{
level.Script.AddStartInventoryItem(TR1Items.SmallMedi);
}
@@ -663,17 +534,17 @@ private static void PopulateScriptStrings(int index, List gameStrings, s
}
}
- private bool PlaceSecret(TR1CombinedLevel level, TRSecretPlacement secret, FDControl floorData)
+ private bool TestSecretPlacement(TR1CombinedLevel level, Location location, FDControl floorData)
{
// Check if this secret is being added to a flipped room, as that won't work
for (int i = 0; i < level.Data.NumRooms; i++)
{
- if (level.Data.Rooms[i].AlternateRoom == secret.Location.Room)
+ if (level.Data.Rooms[i].AlternateRoom == location.Room)
{
if (Settings.DevelopmentMode)
{
// Place it anyway in dev mode to allow relocating
- Debug.WriteLine(string.Format(_flipMapErrorMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, secret.Location.Room));
+ Debug.WriteLine(string.Format(SC.FlipMapErrorMsg, level.Name, location.X, location.Y, location.Z, location.Room));
break;
}
else
@@ -684,18 +555,18 @@ private bool PlaceSecret(TR1CombinedLevel level, TRSecretPlacement secr
}
// Get the sector and check if it is shared with a trapdoor, breakable tile or bridge, as these won't work either.
- TRRoomSector sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, (short)secret.Location.Room, level.Data, floorData);
+ TRRoomSector sector = FDUtilities.GetRoomSector(location.X, location.Y, location.Z, (short)location.Room, level.Data, floorData);
foreach (TR1Entity otherEntity in level.Data.Entities)
{
TR1Type type = otherEntity.TypeID;
- if (secret.Location.Room == otherEntity.Room && (TR1TypeUtilities.IsTrapdoor(type) || TR1TypeUtilities.IsBridge(type) || type == TR1Type.FallingBlock))
+ if (location.Room == otherEntity.Room && (TR1TypeUtilities.IsTrapdoor(type) || TR1TypeUtilities.IsBridge(type) || type == TR1Type.FallingBlock))
{
TRRoomSector otherSector = FDUtilities.GetRoomSector(otherEntity.X, otherEntity.Y, otherEntity.Z, otherEntity.Room, level.Data, floorData);
if (otherSector == sector)
{
if (Settings.DevelopmentMode)
{
- Debug.WriteLine(string.Format(_trapdoorLocationMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, secret.Location.Room));
+ Debug.WriteLine(string.Format(SC.TrapdoorLocationMsg, level.Name, location.X, location.Y, location.Z, location.Room));
}
return false;
}
@@ -704,50 +575,77 @@ private bool PlaceSecret(TR1CombinedLevel level, TRSecretPlacement secr
// Additional checks for bridge, trapdoor and breakable tile triggers that may be in rooms further below.
// We look for floating secrets except if underwater or if the flipped room exists and has a floor below it.
- if (!CheckSectorsBelow(level, secret.Location, sector, floorData))
+ if (!CheckSectorsBelow(level, location, sector, floorData))
{
- Debug.WriteLine(string.Format(_midairErrorMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, secret.Location.Room));
+ Debug.WriteLine(string.Format(SC.MidairErrorMsg, level.Name, location.X, location.Y, location.Z, location.Room));
return false;
}
- // Create the trigger. If this was unsuccessful, bail out.
- if (!CreateSecretTriggers(level, secret, (short)secret.Location.Room, floorData, sector))
+ if (!TestTriggerPlacement(level, location, (short)location.Room, sector, floorData))
{
return false;
}
- // #248 If the room has a flipmap, make sure to add the trigger there too.
- short altRoom = level.Data.Rooms[secret.Location.Room].AlternateRoom;
+ // If the room has a flipmap, make sure to test the trigger there too.
+ short altRoom = level.Data.Rooms[location.Room].AlternateRoom;
if (altRoom != -1)
{
- sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, altRoom, level.Data, floorData);
- if (!CreateSecretTriggers(level, secret, altRoom, floorData, sector))
+ sector = FDUtilities.GetRoomSector(location.X, location.Y, location.Z, altRoom, level.Data, floorData);
+ if (!TestTriggerPlacement(level, location, altRoom, sector, floorData))
{
return false;
}
if (Settings.DevelopmentMode)
{
- Debug.WriteLine(string.Format(_flipMapWarningMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, altRoom));
+ Debug.WriteLine(string.Format(SC.FlipMapWarningMsg, level.Name, location.X, location.Y, location.Z, altRoom));
}
}
- // Turn off walk-to-items in T1M if we are placing on a slope above water.
+ return true;
+ }
+
+ private bool TestTriggerPlacement(TR1CombinedLevel level, Location location, short room, TRRoomSector sector, FDControl floorData)
+ {
+ if (!location.Validated && LocationUtilities.HasAnyTrigger(sector, floorData))
+ {
+ // There is already a trigger here and the location hasn't been marked as being
+ // safe to move the action items to the new pickup trigger.
+ if (Settings.DevelopmentMode)
+ {
+ Debug.WriteLine(string.Format(SC.InvalidLocationMsg, level.Name, location.X, location.Y, location.Z, room));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ private void PlaceSecret(TR1CombinedLevel level, TRSecretPlacement secret, FDControl floorData)
+ {
+ // This assumes TestTriggerPlacement has already been called and passed.
+ TRRoomSector sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, (short)secret.Location.Room, level.Data, floorData);
+ CreateSecretTriggers(level, secret, (short)secret.Location.Room, floorData, sector);
+
+ short altRoom = level.Data.Rooms[secret.Location.Room].AlternateRoom;
+ if (altRoom != -1)
+ {
+ sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, altRoom, level.Data, floorData);
+ CreateSecretTriggers(level, secret, altRoom, floorData, sector);
+ }
+
+ // Turn off walk-to-items in TR1X if we are placing on a slope above water.
if (ScriptEditor.Edition.IsCommunityPatch
&& !level.Data.Rooms[secret.Location.Room].ContainsWater
&& secret.Location.IsSlipperySlope(level.Data, floorData))
{
(ScriptEditor as TR1ScriptEditor).WalkToItems = false;
}
-
- // Checks have passed, so we can actually create the entity.
- return true;
}
private static bool CheckSectorsBelow(TR1CombinedLevel level, Location location, TRRoomSector sector, FDControl floorData)
{
// Allow this check to be overridden with Validated - covers glitched locations.
- if (!location.Validated && sector.RoomBelow != 255)
+ if (!location.Validated && sector.RoomBelow != TRConsts.NoRoom)
{
if (level.Data.Rooms[location.Room].ContainsWater)
{
@@ -760,7 +658,7 @@ private static bool CheckSectorsBelow(TR1CombinedLevel level, Location location,
{
// Flipped room may have a floor here, or be underwater
sector = FDUtilities.GetRoomSector(location.X, location.Y, location.Z, level.Data.Rooms[location.Room].AlternateRoom, level.Data, floorData);
- return sector.RoomBelow == 255 || level.Data.Rooms[altRoom].ContainsWater;
+ return sector.RoomBelow == TRConsts.NoRoom || level.Data.Rooms[altRoom].ContainsWater;
}
return false;
@@ -769,55 +667,50 @@ private static bool CheckSectorsBelow(TR1CombinedLevel level, Location location,
return true;
}
- private bool CreateSecretTriggers(TR1CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector baseSector)
+ private void CreateSecretTriggers(TR1CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector baseSector)
{
TRRoomSector mainSector = baseSector;
- while (mainSector.RoomBelow != 255)
+ while (mainSector.RoomBelow != TRConsts.NoRoom)
{
- // Ensure we go as far down as possible - for example, Atlantis room 47 sector 10,9
- mainSector = FDUtilities.GetRoomSector(secret.Location.X, mainSector.Floor * 256 + 256, secret.Location.Z, mainSector.RoomBelow, level.Data, floorData);
+ // Ensure we go as far down as possible - for example, Atlantis room 47 sector 10,9 - but stay in the same room
+ mainSector = FDUtilities.GetRoomSector(secret.Location.X, (mainSector.Floor + 1) * TRConsts.Step1, secret.Location.Z, mainSector.RoomBelow, level.Data, floorData);
}
- if (!CreateSecretTrigger(level, secret, room, floorData, mainSector))
- {
- return false;
- }
+ CreateSecretTrigger(level, secret, room, floorData, mainSector);
// Check neighbouring sectors if we are very close to tile edges. We scan 8 locations around
// the secret's position based on the edge tolerance and see if the sector has changed.
- ISet processedSectors = new HashSet { baseSector };
+ HashSet processedSectors = new() { baseSector };
for (int xNorm = -1; xNorm < 2; xNorm++)
{
for (int zNorm = -1; zNorm < 2; zNorm++)
{
if (xNorm == 0 && zNorm == 0) continue; // Primary trigger's sector
- int x = secret.Location.X + xNorm * _triggerEdgeLimit;
- int z = secret.Location.Z + zNorm * _triggerEdgeLimit;
+ int x = secret.Location.X + xNorm * SC.TriggerEdgeLimit;
+ int z = secret.Location.Z + zNorm * SC.TriggerEdgeLimit;
TRRoomSector neighbour = FDUtilities.GetRoomSector(x, secret.Location.Y, z, room, level.Data, floorData);
// Process each unique sector only once and if it's a valid neighbour, add the extra trigger
if (processedSectors.Add(neighbour) && !IsInvalidNeighbour(neighbour))
{
- if (neighbour.RoomBelow != baseSector.RoomBelow && neighbour.RoomBelow != 255)
+ if (neighbour.RoomBelow != baseSector.RoomBelow && neighbour.RoomBelow != TRConsts.NoRoom)
{
// Try to find the absolute floor
do
{
- neighbour = FDUtilities.GetRoomSector(x, (neighbour.Floor + 1) * 256, z, neighbour.RoomBelow, level.Data, floorData);
+ neighbour = FDUtilities.GetRoomSector(x, (neighbour.Floor + 1) * TRConsts.Step1, z, neighbour.RoomBelow, level.Data, floorData);
}
- while (neighbour.RoomBelow != 255);
+ while (neighbour.RoomBelow != TRConsts.NoRoom);
}
CreateSecretTrigger(level, secret, room, floorData, neighbour);
if (Settings.DevelopmentMode)
{
- Debug.WriteLine(string.Format(_edgeInfoMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, room));
+ Debug.WriteLine(string.Format(SC.EdgeInfoMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, room));
}
}
}
}
-
- return true;
}
private static bool IsInvalidNeighbour(TRRoomSector neighbour)
@@ -825,43 +718,31 @@ private static bool IsInvalidNeighbour(TRRoomSector neighbour)
return neighbour.Floor == -127 && neighbour.Ceiling == -127; // Inside a wall
}
- private bool CreateSecretTrigger(TR1CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector sector)
+ private void CreateSecretTrigger(TR1CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector sector)
{
if (sector.FDIndex == 0)
{
floorData.CreateFloorData(sector);
}
- FDTriggerEntry existingTrigger = floorData.Entries[sector.FDIndex].Find(e => e is FDTriggerEntry) as FDTriggerEntry;
- if (existingTrigger != null && !secret.Location.Validated)
- {
- // There is already a trigger here and the location hasn't been marked as being
- // safe to move the action items to the new pickup trigger.
- if (Settings.DevelopmentMode)
- {
- Debug.WriteLine(string.Format(_invalidLocationMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, room));
- }
- return false;
- }
-
// Make a new pickup trigger
FDTriggerEntry trigger = new()
{
- Setup = new FDSetup { Value = 4 },
- TrigSetup = new FDTrigSetup
+ Setup = new() { Value = 4 },
+ TrigSetup = new()
{
Value = 15872,
Mask = secret.TriggerMask
},
TrigType = FDTrigType.Pickup,
- TrigActionList = new List
+ TrigActionList = new()
{
- new FDActionListItem
+ new()
{
TrigAction = FDTrigAction.Object,
Parameter = secret.EntityIndex
},
- new FDActionListItem
+ new()
{
TrigAction = FDTrigAction.SecretFound,
Parameter = secret.SecretIndex
@@ -871,7 +752,7 @@ private bool CreateSecretTrigger(TR1CombinedLevel level, TRSecretPlacement e is FDTriggerEntry) is FDTriggerEntry existingTrigger)
{
List existingActions = new();
foreach (FDActionListItem actionItem in existingTrigger.TrigActionList)
@@ -892,10 +773,10 @@ private bool CreateSecretTrigger(TR1CombinedLevel level, TRSecretPlacement.FullActivation)
+ else if (secret.TriggerMask == TRConsts.FullMask)
{
existingActions.Add(actionItem);
}
@@ -911,8 +792,6 @@ private bool CreateSecretTrigger(TR1CombinedLevel level, TRSecretPlacement
diff --git a/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs
index 5477a2b00..9f46b49b3 100644
--- a/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR2/TR2ItemRandomizer.cs
@@ -2,6 +2,7 @@
using TRFDControl;
using TRFDControl.Utilities;
using TRGE.Core;
+using TRGE.Core.Item.Enums;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRModelTransporter.Packing;
@@ -10,12 +11,19 @@
using TRRandomizerCore.Levels;
using TRRandomizerCore.Textures;
using TRRandomizerCore.Utilities;
-using TRRandomizerCore.Zones;
namespace TRRandomizerCore.Randomizers;
public class TR2ItemRandomizer : BaseTR2Randomizer
{
+ private static readonly Location _barkhangSeraphLocation = new()
+ {
+ X = 35328,
+ Y = 768,
+ Z = 17920,
+ Room = 43
+ };
+
internal TR2TextureMonitorBroker TextureMonitor { get; set; }
public ItemFactory ItemFactory { get; set; }
@@ -32,7 +40,7 @@ public TR2ItemRandomizer()
{
_excludedLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR2\Locations\invalid_item_locations.json"));
_pistolLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR2\Locations\unarmed_locations.json"));
- _picker = new();
+ _picker = new(GetResourcePath(@"TR2\Locations\routes.json"));
}
public override void Randomize(int seed)
@@ -45,7 +53,7 @@ public override void Randomize(int seed)
FindUnarmedPistolsLocation();
- _picker.Initialise(GetItemLocationPool(_levelInstance), _generator);
+ _picker.Initialise(_levelInstance.Name, GetItemLocationPool(_levelInstance, false), Settings, _generator);
if (Settings.RandomizeItemPositions)
{
@@ -104,7 +112,6 @@ public void RandomizeKeyItems()
foreach (TR2ScriptedLevel lvl in Levels)
{
LoadLevelInstance(lvl);
- _picker.Initialise(GetItemLocationPool(_levelInstance), _generator);
RandomizeKeyItems(_levelInstance);
SaveLevelInstance();
@@ -130,7 +137,7 @@ public void RandomizeLevelsSprites()
}
}
- private List GetItemLocationPool(TR2CombinedLevel level)
+ private List GetItemLocationPool(TR2CombinedLevel level, bool keyItemMode)
{
List exclusions = new();
if (_excludedLocations.ContainsKey(level.Name))
@@ -151,7 +158,7 @@ private List GetItemLocationPool(TR2CombinedLevel level)
}
TR2LocationGenerator generator = new();
- return generator.Generate(level.Data, exclusions);
+ return generator.Generate(level.Data, exclusions, keyItemMode);
}
private void RandomizeSprites()
@@ -188,121 +195,6 @@ private void RandomizeSprites()
_levelInstance.Data.SpriteTextures = _spriteRandomizer.Textures.ToArray();
}
- ///
- /// If Deck is before monastery Nothing happens...
- /// If monastery is before deck the Seraph becomes a pickup in monastery and the Deck finishes normally without Seraph pickup
- /// We are mindfull of Tibet inventory forcing Seraph in Vanilla and leave it only when it has been picked up previously
- ///
- private void RandomizeSeraph()
- {
- bool SeraphInMonastery = false;
-
- //List of pickup items
- List stdItemTypes = TR2TypeUtilities.GetGunTypes();
- stdItemTypes.AddRange(TR2TypeUtilities.GetAmmoTypes());
-
- if (_levelInstance.Is(TR2LevelNames.MONASTERY))
- {
- TR2ScriptedLevel theDeck = Levels.Find(l => l.Is(TR2LevelNames.DECK));
-
- // if The deck is included in levels I check if its after monastery
- if (theDeck != null)
- {
- if (theDeck.Sequence > _levelInstance.Sequence) SeraphInMonastery = true;
- }
- else // Id Deck is not included we force the seraph in monastery
- {
- SeraphInMonastery = true;
- }
-
- if (SeraphInMonastery)
- {
- // Get all visible pickups in the level (there may be invisible ones if using OneItem mode)
- List pickups = _levelInstance.Data.Entities.FindAll(e => !e.Invisible && stdItemTypes.Contains(e.TypeID));
- List replacementCandidates = new(pickups);
-
- // Eliminate any that share a tile with an enemy in case of pacifist runs/unable to find guns
- FDControl floorData = new();
- floorData.ParseFromLevel(_levelInstance.Data);
- for (int i = replacementCandidates.Count - 1; i >= 0; i--)
- {
- TR2Entity pickup = replacementCandidates[i];
- TRRoomSector pickupTile = FDUtilities.GetRoomSector(pickup.X, pickup.Y, pickup.Z, pickup.Room, _levelInstance.Data, floorData);
- // Does an enemy share this tile? If so, remove it from the candidate list
- if (_levelInstance.Data.Entities.Find(e => e != pickup
- && TR2TypeUtilities.IsEnemyType(e.TypeID)
- && FDUtilities.GetRoomSector(e.X, e.Y, e.Z, e.Room, _levelInstance.Data, floorData) == pickupTile) != null)
- {
- replacementCandidates.RemoveAt(i);
- }
- }
-
- TR2Entity entityToReplace;
- if (replacementCandidates.Count > 0)
- {
- // We have at least one pickup that's visible and not under an enemy, so pick one at random
- entityToReplace = replacementCandidates[_generator.Next(0, replacementCandidates.Count)];
- }
- else
- {
- // We couldn't find anything, but because The Deck has been processed first, we should
- // add The Seraph somewhere to remain consistent - default to the puzzle slot itself and
- // just move an item to the same tile. This will be extremely rare.
- TR2Entity slot4 = _levelInstance.Data.Entities.Find(e => e.TypeID == TR2Type.PuzzleHole4);
- entityToReplace = pickups[_generator.Next(0, pickups.Count)];
- entityToReplace.X = slot4.X;
- entityToReplace.Y = slot4.Y;
- entityToReplace.Z = slot4.Z;
- entityToReplace.Room = slot4.Room;
- }
-
- // Change the pickup type to The Seraph, and remove The Seraph from the inventory
- entityToReplace.TypeID = TR2Type.Puzzle4_S_P;
- _levelInstance.Script.RemoveStartInventoryItem(TRGE.Core.Item.Enums.TR2Items.Puzzle4);
- }
- }
- else if (_levelInstance.Is(TR2LevelNames.TIBET))
- {
- TR2ScriptedLevel deck = Levels.Find(l => l.Is(TR2LevelNames.DECK));
- TR2ScriptedLevel monastery = Levels.Find(l => l.Is(TR2LevelNames.MONASTERY));
-
- // Deck not present => Barkhang pickup and used instant (if it's not present its never picked up anyway)
- // Deck present but Barkhang absent => Seraph picked up at Deck and never consumed
- // Deck and Barkhang presents => remove Seraph from Tibet if comes before deck or after barkhang
- if (deck == null ||
- (monastery == null && _levelInstance.Script.Sequence < deck.Sequence) ||
- (monastery != null && (_levelInstance.Script.Sequence < deck.Sequence || _levelInstance.Script.Sequence < monastery.Sequence)))
- {
- _levelInstance.Script.RemoveStartInventoryItem(TRGE.Core.Item.Enums.TR2Items.Puzzle4);
- }
- }
- else if (_levelInstance.Is(TR2LevelNames.DECK))
- {
- TR2ScriptedLevel monastery = Levels.Find(l => l.Is(TR2LevelNames.MONASTERY));
-
- if (monastery != null)
- {
- if (monastery.Sequence < _levelInstance.Sequence) SeraphInMonastery = true;
- }
- else // Id Monastery is not included we stay as before
- {
- SeraphInMonastery = false;
- }
-
- if (SeraphInMonastery)
- {
- //Replace Seraph by a pickup
-
- TR2Entity seraph = _levelInstance.Data.Entities.Find(e => e.TypeID == TR2Type.Puzzle4_S_P);
-
- if (seraph != null)
- {
- seraph.TypeID = stdItemTypes[_generator.Next(0, stdItemTypes.Count)];
- }
- }
- }
- }
-
public void RandomizeItemLocations(TR2CombinedLevel level)
{
if (level.Is(TR2LevelNames.HOME) && (level.Script.RemovesWeapons || level.Script.RemovesAmmo))
@@ -320,21 +212,26 @@ public void RandomizeItemLocations(TR2CombinedLevel level)
continue;
}
- Location location = _picker.GetPickupLocation();
- if (location != null)
- {
- _picker.SetLocation(entity, location);
- }
+ _picker.RandomizePickupLocation(entity);
}
}
private void RandomizeKeyItems(TR2CombinedLevel level)
{
- ZonedLocationCollection zonedLocations = new();
- if (!level.IsAssault)
- {
- zonedLocations.PopulateZones(GetResourcePath($@"TR2\Zones\{level.Name}-Zones.json"), _picker.GetLocations(), ZonePopulationMethod.KeyPuzzleQuestOnly);
- }
+ FDControl floorData = new();
+ floorData.ParseFromLevel(level.Data);
+
+ _picker.TriggerTestAction = location => LocationUtilities.HasAnyTrigger(location, level.Data, floorData);
+ _picker.KeyItemTestAction = location => TestKeyItemLocation(location, level);
+ _picker.RoomInfos = level.Data.Rooms
+ .Select(r => new ExtRoomInfo(r.Info, r.NumXSectors, r.NumZSectors))
+ .ToList();
+
+ _picker.Initialise(_levelInstance.Name, GetItemLocationPool(_levelInstance, true), Settings, _generator);
+
+ // The Seraph may be removed from The Deck and added to Barkhang. Do that first to allow
+ // its location to be changed.
+ AdjustSeraphContinuity(level);
for (int i = 0; i < level.Data.Entities.Count; i++)
{
@@ -345,163 +242,61 @@ private void RandomizeKeyItems(TR2CombinedLevel level)
continue;
}
- Location location;
- do
- {
- location = GetKeyItemLocation(entity, i, zonedLocations);
- }
- while (location != null && !TestKeyItemLocation(location, level));
-
- if (location != null)
- {
- _picker.SetLocation(entity, location);
- }
+ _picker.RandomizeKeyItemLocation(
+ entity, LocationUtilities.HasPickupTriger(entity, i, level.Data, floorData),
+ level.Script.OriginalSequence, level.Data.Rooms[entity.Room].Info);
}
-
- // Special case for the Seraph in Deck/Barkhang
- RandomizeSeraph();
}
- private Location GetKeyItemLocation(TR2Entity entity, int index, ZonedLocationCollection zonedLocations)
+ private void AdjustSeraphContinuity(TR2CombinedLevel level)
{
- Location location = null;
-
- switch (entity.TypeID)
+ if (!Settings.MaintainKeyContinuity)
{
- case TR2Type.Puzzle1_S_P:
- if (zonedLocations.Puzzle1Zone.Count > 0)
- {
- if (_levelInstance.Name == TR2LevelNames.DA)
- {
- int burnerChipID = 120;
- int consoleChipID = 7;
-
- //Special case - multiple chips
- if (index == burnerChipID)
- {
- //Burner Chip
- List allowedBurnerRooms = new() { 13, 14, 15, 16, 21, 22, 23, 24, 25, 26, 29, 32, 75, 80, 83, 84, 85, 86, 87, 88, 89 };
- do
- {
- location = zonedLocations.Puzzle1Zone[_generator.Next(0, zonedLocations.Puzzle1Zone.Count)];
- }
- while (!allowedBurnerRooms.Contains(location.Room));
- }
- else if (index == consoleChipID)
- {
- //Center Console Chip
- List allowedConsoleRooms = new() { 2, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 25, 26, 29, 30, 32, 34, 35, 64, 65, 66, 68, 69, 70, 75, 80, 82, 83, 84, 85, 86, 87, 88, 89 };
- do
- {
- location = zonedLocations.Puzzle1Zone[_generator.Next(0, zonedLocations.Puzzle1Zone.Count)];
- }
- while (!allowedConsoleRooms.Contains(location.Room));
- }
- else
- {
- location = zonedLocations.Puzzle1Zone[_generator.Next(0, zonedLocations.Puzzle1Zone.Count)];
- }
- }
- else
- {
- location = zonedLocations.Puzzle1Zone[_generator.Next(0, zonedLocations.Puzzle1Zone.Count)];
- }
- }
- break;
- case TR2Type.Puzzle2_S_P:
- if (zonedLocations.Puzzle2Zone.Count > 0)
- {
- location = zonedLocations.Puzzle2Zone[_generator.Next(0, zonedLocations.Puzzle2Zone.Count)];
- }
- break;
- case TR2Type.Puzzle3_S_P:
- if (zonedLocations.Puzzle3Zone.Count > 0)
- {
- location = zonedLocations.Puzzle3Zone[_generator.Next(0, zonedLocations.Puzzle3Zone.Count)];
- }
- break;
- case TR2Type.Puzzle4_S_P:
- if (zonedLocations.Puzzle4Zone.Count > 0)
- {
- location = zonedLocations.Puzzle4Zone[_generator.Next(0, zonedLocations.Puzzle4Zone.Count)];
- }
- break;
- case TR2Type.Key1_S_P:
- if (zonedLocations.Key1Zone.Count > 0)
- {
- if (_levelInstance.Name == TR2LevelNames.OPERA)
- {
- int startKeyID = 172;
- int fanKeyID = 118;
+ return;
+ }
- //Special case - multiple keys
- if (index == startKeyID)
- {
- //Start key
- List allowedStartRooms = new() { 10, 23, 25, 27, 29, 30, 31, 32, 33, 35, 127, 162, 163 };
- do
- {
- location = zonedLocations.Key1Zone[_generator.Next(0, zonedLocations.Key1Zone.Count)];
- }
- while (!allowedStartRooms.Contains(location.Room));
- }
- else if (index == fanKeyID)
- {
- //Fan area key
- List allowedFanRooms = new() { 1, 5, 8, 16, 37, 38, 44, 46, 47, 48, 49, 50, 52, 53, 55, 57, 59, 60, 63, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 77, 78, 82, 83, 86, 87, 88, 89, 90, 93, 95, 96, 100, 102, 103, 105, 107, 109, 111, 120, 132, 139, 141, 143, 144, 151, 153, 154, 155, 156, 158, 159, 161, 174, 176, 177, 178, 179, 183, 185, 187, 188, 189 };
+ if (level.Is(TR2LevelNames.MONASTERY))
+ {
+ TR2ScriptedLevel theDeck = Levels.Find(l => l.Is(TR2LevelNames.DECK));
+ if ((theDeck == null || theDeck.Sequence > level.Sequence)
+ && ItemFactory.CanCreateItem(level.Name, level.Data.Entities))
+ {
+ // Place The Seraph inside Barkhang. This location determines the key item ID to
+ // therefore allow it to be randomized.
+ TR2Entity seraph = ItemFactory.CreateItem(level.Name, level.Data.Entities, _barkhangSeraphLocation);
+ seraph.TypeID = TR2Type.Puzzle4_S_P;
+ level.Script.RemoveStartInventoryItem(TR2Items.Puzzle4);
+ }
+ }
+ else if (level.Is(TR2LevelNames.TIBET))
+ {
+ TR2ScriptedLevel deck = Levels.Find(l => l.Is(TR2LevelNames.DECK));
+ TR2ScriptedLevel monastery = Levels.Find(l => l.Is(TR2LevelNames.MONASTERY));
- do
- {
- location = zonedLocations.Key1Zone[_generator.Next(0, zonedLocations.Key1Zone.Count)];
- }
- while (!allowedFanRooms.Contains(location.Room));
- }
- else
- {
- location = zonedLocations.Key1Zone[_generator.Next(0, zonedLocations.Key1Zone.Count)];
- }
- }
- else
- {
- location = zonedLocations.Key1Zone[_generator.Next(0, zonedLocations.Key1Zone.Count)];
- }
- }
- break;
- case TR2Type.Key2_S_P:
- if (zonedLocations.Key2Zone.Count > 0)
- {
- location = zonedLocations.Key2Zone[_generator.Next(0, zonedLocations.Key2Zone.Count)];
- }
- break;
- case TR2Type.Key3_S_P:
- if (zonedLocations.Key3Zone.Count > 0)
- {
- location = zonedLocations.Key3Zone[_generator.Next(0, zonedLocations.Key3Zone.Count)];
- }
- break;
- case TR2Type.Key4_S_P:
- if (zonedLocations.Key4Zone.Count > 0)
- {
- location = zonedLocations.Key4Zone[_generator.Next(0, zonedLocations.Key4Zone.Count)];
- }
- break;
- case TR2Type.Quest1_S_P:
- if (zonedLocations.Quest1Zone.Count > 0)
- {
- location = zonedLocations.Quest1Zone[_generator.Next(0, zonedLocations.Quest1Zone.Count)];
- }
- break;
- case TR2Type.Quest2_S_P:
- if (zonedLocations.Quest2Zone.Count > 0)
+ // Deck not present => Barkhang pickup only
+ // Deck present but Barkhang absent => Deck pickup, carried to Tibet if sequence is after
+ // Deck and Barkhang present => remove Seraph from Tibet unless it comes between these levels
+ if (deck == null ||
+ (monastery == null && level.Script.Sequence < deck.Sequence) ||
+ (monastery != null && (level.Script.Sequence < deck.Sequence || level.Script.Sequence > monastery.Sequence)))
+ {
+ level.Script.RemoveStartInventoryItem(TR2Items.Puzzle4);
+ }
+ }
+ else if (level.Is(TR2LevelNames.DECK))
+ {
+ TR2ScriptedLevel monastery = Levels.Find(l => l.Is(TR2LevelNames.MONASTERY));
+ if (monastery != null && monastery.Sequence < level.Sequence)
+ {
+ // Anticlimactic regular item pickup to end the level
+ TR2Entity seraph = level.Data.Entities.Find(e => e.TypeID == TR2Type.Puzzle4_S_P);
+ if (seraph != null)
{
- location = zonedLocations.Quest2Zone[_generator.Next(0, zonedLocations.Quest2Zone.Count)];
+ List stdItemTypes = TR2TypeUtilities.GetStandardPickupTypes();
+ seraph.TypeID = stdItemTypes[_generator.Next(0, stdItemTypes.Count)];
}
- break;
- default:
- break;
+ }
}
-
- return location;
}
private bool TestKeyItemLocation(Location location, TR2CombinedLevel level)
@@ -512,12 +307,12 @@ private bool TestKeyItemLocation(Location location, TR2CombinedLevel level)
.FindAll(e => TR2TypeUtilities.IsEnemyType(e.TypeID))
.Find(e => e.GetLocation().IsEquivalent(location));
- return enemy == null || TR2TypeUtilities.CanDropPickups
+ return enemy == null || (Settings.AllowEnemyKeyDrops && TR2TypeUtilities.CanDropPickups
(
TR2TypeUtilities.GetAliasForLevel(level.Name, enemy.TypeID),
Settings.RandomizeEnemies && !Settings.ProtectMonks,
Settings.RandomizeEnemies && Settings.UnconditionalChickens
- );
+ ));
}
private void RandomizeItemTypes(TR2CombinedLevel level)
diff --git a/TRRandomizerCore/Randomizers/TR2/TR2SecretRandomizer.cs b/TRRandomizerCore/Randomizers/TR2/TR2SecretRandomizer.cs
index 1be45421b..5fea9055c 100644
--- a/TRRandomizerCore/Randomizers/TR2/TR2SecretRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR2/TR2SecretRandomizer.cs
@@ -1,21 +1,28 @@
using Newtonsoft.Json;
-using System.Diagnostics;
+using TRFDControl;
+using TRFDControl.Utilities;
using TRGE.Core;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRRandomizerCore.Helpers;
+using TRRandomizerCore.Levels;
using TRRandomizerCore.Utilities;
-using TRRandomizerCore.Zones;
namespace TRRandomizerCore.Randomizers;
public class TR2SecretRandomizer : BaseTR2Randomizer, ISecretRandomizer
{
- private static readonly List _devRooms = null;
private static readonly int _levelSecretCount = 3;
+ private static readonly List _textureFixLevels = new()
+ {
+ TR2LevelNames.FLOATER,
+ TR2LevelNames.LAIR,
+ TR2LevelNames.HOME
+ };
private readonly Dictionary> _locations;
- private SecretPicker _picker;
+ private readonly LocationPicker _routePicker;
+ private SecretPicker _secretPicker;
public IMirrorControl Mirrorer { get; set; }
public ItemFactory ItemFactory { get; set; }
@@ -23,6 +30,7 @@ public class TR2SecretRandomizer : BaseTR2Randomizer, ISecretRandomizer
public TR2SecretRandomizer()
{
_locations = JsonConvert.DeserializeObject>>(ReadResource(@"TR2\Locations\locations.json"));
+ _routePicker = new(GetResourcePath(@"TR2\Locations\routes.json"));
}
public IEnumerable GetPacks()
@@ -33,295 +41,174 @@ public IEnumerable GetPacks()
.Distinct();
}
- private void RandomizeSecrets(List LevelLocations)
+ public override void Randomize(int seed)
{
- if (LevelLocations.Count > 2)
+ _generator = new(seed);
+ _secretPicker = new()
{
- if (Settings.DevelopmentMode)
- {
- PlaceAllSecrets(LevelLocations);
- return;
- }
-
- Location goldLocation = null;
- Location jadeLocation = null;
- Location stoneLocation = null;
-
- // Applied guaranteed logic first.
- Queue guaranteedLocations = _picker.GetGuaranteedLocations(LevelLocations, false, _levelSecretCount);
-
- //Apply zoning to the locations to ensure they are spread out.
- List stoneZone, jadeZone, goldZone;
- bool secretPackMode = Settings.UseSecretPack && LevelLocations.Any(l => l.PackID != Location.DefaultPackID);
- if (secretPackMode)
- {
- stoneZone = jadeZone = goldZone = LevelLocations;
- guaranteedLocations = new(guaranteedLocations.Reverse());
- }
- else
- {
- ZonedLocationCollection zones = new();
- zones.PopulateZones(GetResourcePath(@"TR2\Zones\" + _levelInstance.Name + "-Zones.json"), LevelLocations, ZonePopulationMethod.SecretsOnly);
- stoneZone = zones.StoneZone;
- jadeZone = zones.JadeZone;
- goldZone = zones.GoldZone;
- }
-
- bool TestLocation(Location location, params Location[] setLocations)
- {
- if (secretPackMode)
- {
- return true;
- }
-
- bool valid = true;
- foreach (Location setLocation in setLocations)
- {
- valid &= setLocation == null || setLocation.Room != location.Room;
- }
-
- return valid;
- }
+ Settings = Settings,
+ Generator = _generator,
+ ItemFactory = ItemFactory,
+ Mirrorer = Mirrorer,
+ RouteManager = _routePicker
+ };
- while (guaranteedLocations.Count > 0)
+ foreach (TR2ScriptedLevel lvl in Levels)
+ {
+ LoadLevelInstance(lvl);
+ if (_locations.ContainsKey(_levelInstance.Name))
{
- Location location = guaranteedLocations.Dequeue();
- if (goldZone.Contains(location) && goldLocation == null)
+ if (Settings.DevelopmentMode)
{
- if (TestLocation(location, stoneLocation, jadeLocation))
- {
- goldLocation = location;
- }
+ PlaceAllSecrets(_levelInstance);
}
- else if (jadeZone.Contains(location) && jadeLocation == null)
- {
- if (TestLocation(location, stoneLocation, goldLocation))
- {
- jadeLocation = location;
- }
- }
- else if (stoneLocation == null)
+ else
{
- if (TestLocation(location, jadeLocation, goldLocation))
- {
- stoneLocation = location;
- }
+ RandomizeSecrets(_levelInstance);
}
}
- //Find suitable locations for those not allocated yet, ensuring they are zoned, do not share a room and difficulty.
+ FixSecretTextures(_levelInstance);
+ SaveLevelInstance();
- if (goldLocation == null)
+ if (!TriggerProgress())
{
- do
- {
- goldLocation = goldZone[_generator.Next(0, goldZone.Count)];
- } while ((goldLocation.Difficulty == Difficulty.Hard && Settings.HardSecrets == false) ||
- (goldLocation.RequiresGlitch == true && Settings.GlitchedSecrets == false));
+ break;
}
+ }
+ }
- if (jadeLocation == null)
+ private void PlaceAllSecrets(TR2CombinedLevel level)
+ {
+ Queue existingIndices = new();
+ for (int i = 0; i < level.Data.Entities.Count; i++)
+ {
+ if (TR2TypeUtilities.IsSecretType(level.Data.Entities[i].TypeID))
{
- do
- {
- jadeLocation = jadeZone[_generator.Next(0, jadeZone.Count)];
- } while ((jadeLocation.Room == goldLocation.Room) ||
- (jadeLocation.Difficulty == Difficulty.Hard && Settings.HardSecrets == false) ||
- (jadeLocation.RequiresGlitch == true && Settings.GlitchedSecrets == false));
+ existingIndices.Enqueue(i);
}
+ }
- if (stoneLocation == null)
- {
- do
- {
- stoneLocation = stoneZone[_generator.Next(0, stoneZone.Count)];
- } while ((stoneLocation.Room == goldLocation.Room) ||
- (stoneLocation.Room == jadeLocation.Room) ||
- (stoneLocation.Difficulty == Difficulty.Hard && Settings.HardSecrets == false) ||
- (stoneLocation.RequiresGlitch == true && Settings.GlitchedSecrets == false));
- }
+ _routePicker.Initialise(level.Name, _locations[level.Name], Settings, _generator);
- //Due to TRMod only accepting room space coords entities are actually stored in level space. So include some
- //calls to support a transformation of any locations that are specified in room space to maintain backwards compatbility
- //with older locations and support locations that are specified in both level or room space.
- goldLocation = SpatialConverters.TransformToLevelSpace(goldLocation, _levelInstance.Data.Rooms[goldLocation.Room].Info);
- jadeLocation = SpatialConverters.TransformToLevelSpace(jadeLocation, _levelInstance.Data.Rooms[jadeLocation.Room].Info);
- stoneLocation = SpatialConverters.TransformToLevelSpace(stoneLocation, _levelInstance.Data.Rooms[stoneLocation.Room].Info);
+ // Simulate zoning of sorts by splitting the route equally. This of course doesn't guarantee
+ // what will be assigned in regular mode.
+ List routeRooms = _routePicker.GetRouteRooms();
+ List> zones = routeRooms.Split(_levelSecretCount);
+ List secretTypes = TR2TypeUtilities.GetSecretTypes();
- Dictionary secretMap = new()
+ foreach (Location location in _locations[level.Name])
+ {
+ TR2Entity entity;
+ if (existingIndices.Count > 0)
{
- [TR2Type.StoneSecret_S_P] = stoneLocation,
- [TR2Type.JadeSecret_S_P] = jadeLocation,
- [TR2Type.GoldSecret_S_P] = goldLocation
- };
-
- foreach (TR2Type secretType in secretMap.Keys)
+ entity = level.Data.Entities[existingIndices.Dequeue()];
+ }
+ else
{
- //Does the level contain an entity for this type?
- TR2Entity secretEntity = _levelInstance.Data.Entities.Find(ent => ent.TypeID == secretType);
-
- //If not, create a placeholder entity for now
- if (secretEntity == null)
- {
- _levelInstance.Data.Entities.Add(secretEntity = new());
- }
-
- // Move it to the new location and ensure it has the correct type set
- Location location = secretMap[secretType];
- secretEntity.TypeID = secretType;
- secretEntity.Room = (short)location.Room;
- secretEntity.X = location.X;
- secretEntity.Y = location.Y;
- secretEntity.Z = location.Z;
- secretEntity.Intensity1 = -1;
- secretEntity.Intensity2 = -1;
- secretEntity.Angle = 0;
- secretEntity.Flags = 0;
+ level.Data.Entities.Add(entity = new());
}
- FixSecretTextures();
- CheckForSecretDamage(secretMap);
-
- _picker.FinaliseSecretPool(secretMap.Values, _levelInstance.Name);
-
-#if DEBUG
- Debug.WriteLine(_levelInstance.Name + ": " + SecretPicker.DescribeLocations(secretMap.Values));
-#endif
+ int zone = zones.FindIndex(z => z.Contains(location.Room));
+ PlaceSecret(entity, secretTypes[zone], location);
}
+
+ AddDamageControl(level, _locations[level.Name]);
}
- private void PlaceAllSecrets(List LevelLocations)
+ private void RandomizeSecrets(TR2CombinedLevel level)
{
- ZonedLocationCollection ZonedLocations = new();
+ FDControl floorData = new();
+ floorData.ParseFromLevel(level.Data);
- ZonedLocations.PopulateZones(GetResourcePath(@"TR2\Zones\" + _levelInstance.Name + "-Zones.json"), LevelLocations, ZonePopulationMethod.SecretsOnly);
+ List locations = _locations[level.Name];
+ locations.Shuffle(_generator);
- // Store existing secret indices for re-use (avoids FD problems when the originals are removed)
- Queue existingIndices = new();
- for (int i = 0; i < _levelInstance.Data.Entities.Count; i++)
- {
- if (TR2TypeUtilities.IsSecretType(_levelInstance.Data.Entities[i].TypeID))
- {
- existingIndices.Enqueue(i);
- }
- }
+ _secretPicker.SectorAction = loc
+ => FDUtilities.GetRoomSector(loc.X, loc.Y, loc.Z, (short)loc.Room, level.Data, floorData);
+ _routePicker.RoomInfos = level.Data.Rooms
+ .Select(r => new ExtRoomInfo(r.Info, r.NumXSectors, r.NumZSectors))
+ .ToList();
- //Add new entities
- Dictionary> secretMap = new()
- {
- [TR2Type.StoneSecret_S_P] = ZonedLocations.StoneZone,
- [TR2Type.JadeSecret_S_P] = ZonedLocations.JadeZone,
- [TR2Type.GoldSecret_S_P] = ZonedLocations.GoldZone
- };
+ _routePicker.Initialise(level.Name, locations, Settings, _generator);
- foreach (TR2Type secretType in secretMap.Keys)
- {
- foreach (Location loc in secretMap[secretType])
- {
- Location copy = SpatialConverters.TransformToLevelSpace(loc, _levelInstance.Data.Rooms[loc.Room].Info);
+ // Organise picked locations according to route position to allow classic Stone/Jade/Gold order.
+ List pickedLocations = _secretPicker.GetLocations(locations, Mirrorer.IsMirrored(level.Name), _levelSecretCount);
+ List secretTypes = TR2TypeUtilities.GetSecretTypes();
+ pickedLocations.Sort((l1, l2) =>
+ _routePicker.GetRoutePosition(l1).CompareTo(_routePicker.GetRoutePosition(l2)));
- if (_devRooms == null || _devRooms.Contains(copy.Room))
- {
- TR2Entity entity;
- if (existingIndices.Count > 0)
- {
- entity = _levelInstance.Data.Entities[existingIndices.Dequeue()];
- }
- else
- {
- _levelInstance.Data.Entities.Add(entity = new());
- }
-
- entity.TypeID = secretType;
- entity.Room = (short)copy.Room;
- entity.X = copy.X;
- entity.Y = copy.Y;
- entity.Z = copy.Z;
- entity.Angle = 0;
- entity.Intensity1 = -1;
- entity.Intensity2 = -1;
- entity.Flags = 0;
- }
- }
+ for (int i = 0; i < pickedLocations.Count; i++)
+ {
+ TR2Entity entity = level.Data.Entities.Find(e => e.TypeID == secretTypes[i]);
+ entity ??= ItemFactory.CreateItem(level.Name, level.Data.Entities);
+ PlaceSecret(entity, secretTypes[i], pickedLocations[i]);
}
- FixSecretTextures();
+ AddDamageControl(level, pickedLocations);
+ _secretPicker.FinaliseSecretPool(pickedLocations, level.Name);
}
- private void FixSecretTextures()
+ private void PlaceSecret(TR2Entity entity, TR2Type type, Location location)
{
- if (_levelInstance.Is(TR2LevelNames.FLOATER) || _levelInstance.Is(TR2LevelNames.LAIR) || _levelInstance.Is(TR2LevelNames.HOME))
- {
- // Swap Stone and Jade textures - OG has them the wrong way around.
- // SpriteSequence offsets have to remain in order, so swap the texture targets instead.
- TRSpriteSequence stoneSequence = Array.Find(_levelInstance.Data.SpriteSequences, s => s.SpriteID == (int)TR2Type.StoneSecret_S_P);
- TRSpriteSequence jadeSequence = Array.Find(_levelInstance.Data.SpriteSequences, s => s.SpriteID == (int)TR2Type.JadeSecret_S_P);
-
- TRSpriteTexture[] textures = _levelInstance.Data.SpriteTextures;
- (textures[jadeSequence.Offset], textures[stoneSequence.Offset])
- = (textures[stoneSequence.Offset], textures[jadeSequence.Offset]);
- }
+ _routePicker.SetLocation(entity, location);
+ entity.TypeID = type;
+ entity.Intensity1 = -1;
+ entity.Intensity2 = -1;
+ entity.Flags = 0;
}
- public override void Randomize(int seed)
+ private static void FixSecretTextures(TR2CombinedLevel level)
{
- _generator = new Random(seed);
- _picker = new SecretPicker
+ if (!_textureFixLevels.Contains(level.Name))
{
- Settings = Settings,
- Generator = _generator,
- ItemFactory = ItemFactory,
- Mirrorer = Mirrorer,
- };
-
- foreach (TR2ScriptedLevel lvl in Levels)
- {
- //Read the level into a level object
- LoadLevelInstance(lvl);
- if (_locations.ContainsKey(_levelInstance.Name))
- {
- //Apply the modifications
- RandomizeSecrets(_locations[_levelInstance.Name]);
+ return;
+ }
- //Write back the level file
- SaveLevelInstance();
- }
+ // Swap Stone and Jade textures - OG has them the wrong way around.
+ // SpriteSequence offsets have to remain in order, so swap the texture targets instead.
+ TRSpriteSequence stoneSequence = Array.Find(level.Data.SpriteSequences, s => s.SpriteID == (int)TR2Type.StoneSecret_S_P);
+ TRSpriteSequence jadeSequence = Array.Find(level.Data.SpriteSequences, s => s.SpriteID == (int)TR2Type.JadeSecret_S_P);
- if (!TriggerProgress())
- {
- break;
- }
- }
+ TRSpriteTexture[] textures = level.Data.SpriteTextures;
+ (textures[jadeSequence.Offset], textures[stoneSequence.Offset])
+ = (textures[stoneSequence.Offset], textures[jadeSequence.Offset]);
}
- private void CheckForSecretDamage(Dictionary secretMap)
+ private static void AddDamageControl(TR2CombinedLevel level, List locations)
{
+ IEnumerable damagingLocations = locations.Where(l => l.RequiresDamage);
+ if (!damagingLocations.Any())
+ {
+ return;
+ }
+
uint easyDamageCount = 0;
uint hardDamageCount = 0;
- foreach (TR2Type secretType in secretMap.Keys)
+ foreach (Location location in damagingLocations)
{
- Location location = secretMap[secretType];
-
- if (location.RequiresDamage)
+ if (location.Difficulty == Difficulty.Hard)
{
- if (location.Difficulty == Difficulty.Hard)
- hardDamageCount++;
- else
- easyDamageCount++;
+ hardDamageCount++;
+ }
+ else
+ {
+ easyDamageCount++;
}
}
- // If we found some secrets needing damage
- if (hardDamageCount > 0 || easyDamageCount > 0)
+ if (level.Script.RemovesWeapons)
{
- // If this an unarmed level I add one hard damage
- if (_levelInstance.Script.RemovesWeapons) hardDamageCount++;
- // If its one of the firsts level I add one easy damage
- if (_levelInstance.Sequence < 2) easyDamageCount++;
+ hardDamageCount++;
+ }
- _levelInstance.Script.AddStartInventoryItem(ItemUtilities.ConvertToScriptItem(TR2Type.LargeMed_S_P), hardDamageCount);
- _levelInstance.Script.AddStartInventoryItem(ItemUtilities.ConvertToScriptItem(TR2Type.SmallMed_S_P), easyDamageCount);
+ if (level.Sequence < 2)
+ {
+ easyDamageCount++;
}
+
+ level.Script.AddStartInventoryItem(ItemUtilities.ConvertToScriptItem(TR2Type.LargeMed_S_P), hardDamageCount);
+ level.Script.AddStartInventoryItem(ItemUtilities.ConvertToScriptItem(TR2Type.SmallMed_S_P), easyDamageCount);
}
}
diff --git a/TRRandomizerCore/Randomizers/TR3/TR3ItemRandomizer.cs b/TRRandomizerCore/Randomizers/TR3/TR3ItemRandomizer.cs
index 1758a36e3..c2f369df6 100644
--- a/TRRandomizerCore/Randomizers/TR3/TR3ItemRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR3/TR3ItemRandomizer.cs
@@ -15,13 +15,9 @@ namespace TRRandomizerCore.Randomizers;
public class TR3ItemRandomizer : BaseTR3Randomizer
{
- private readonly Dictionary _keyItemZones;
- private readonly Dictionary> _keyItemLocations;
private readonly Dictionary> _excludedLocations;
private readonly Dictionary> _pistolLocations;
- private static readonly int _ANY_ROOM_ALLOWED = 2048; //Max rooms is 1024 - so this should never be possible.
-
// Track the pistols so they remain a weapon type and aren't moved
private TR3Entity _unarmedLevelPistols;
@@ -34,11 +30,9 @@ public class TR3ItemRandomizer : BaseTR3Randomizer
public TR3ItemRandomizer()
{
- _keyItemZones = JsonConvert.DeserializeObject>(ReadResource(@"TR3\Locations\Zones.json"));
- _keyItemLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR3\Locations\item_locations.json"));
_excludedLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR3\Locations\invalid_item_locations.json"));
_pistolLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR3\Locations\unarmed_locations.json"));
- _picker = new();
+ _picker = new(GetResourcePath(@"TR3\Locations\routes.json"));
}
public override void Randomize(int seed)
@@ -51,7 +45,7 @@ public override void Randomize(int seed)
FindUnarmedLevelPistols(_levelInstance);
- _picker.Initialise(GetItemLocationPool(_levelInstance), _generator);
+ _picker.Initialise(_levelInstance.Name, GetItemLocationPool(_levelInstance, false), Settings, _generator);
_secretMapping = TRSecretMapping.Get(GetResourcePath($@"TR3\SecretMapping\{_levelInstance.Name}-SecretMapping.json"));
// #312 If this is the assault course, import required models. On failure, don't perform any item rando.
@@ -88,7 +82,6 @@ public void RandomizeKeyItems()
foreach (TR3ScriptedLevel lvl in Levels)
{
LoadLevelInstance(lvl);
- _picker.Initialise(GetItemLocationPool(_levelInstance), _generator);
RandomizeKeyItems(_levelInstance);
SaveLevelInstance();
@@ -276,17 +269,16 @@ public void RandomizeItemLocations(TR3CombinedLevel level)
continue;
}
- TR3Entity ent = level.Data.Entities[i];
+ TR3Entity entity = level.Data.Entities[i];
// Move standard items only, excluding any unarmed level pistols, and reward items
- if (TR3TypeUtilities.IsStandardPickupType(ent.TypeID) && ent != _unarmedLevelPistols)
+ if (TR3TypeUtilities.IsStandardPickupType(entity.TypeID) && entity != _unarmedLevelPistols)
{
- Location location = _picker.GetPickupLocation();
- _picker.SetLocation(ent, location);
+ _picker.RandomizePickupLocation(entity);
}
}
}
- private List GetItemLocationPool(TR3CombinedLevel level)
+ private List GetItemLocationPool(TR3CombinedLevel level, bool keyItemMode)
{
List exclusions = new();
if (_excludedLocations.ContainsKey(level.Name))
@@ -333,60 +325,34 @@ private List GetItemLocationPool(TR3CombinedLevel level)
}
TR3LocationGenerator generator = new();
- return generator.Generate(level.Data, exclusions);
+ return generator.Generate(level.Data, exclusions, keyItemMode);
}
public void RandomizeKeyItems(TR3CombinedLevel level)
{
- if (!_keyItemLocations.ContainsKey(level.Name))
- {
- return;
- }
-
FDControl floorData = new();
floorData.ParseFromLevel(level.Data);
_picker.TriggerTestAction = location => LocationUtilities.HasAnyTrigger(location, level.Data, floorData);
_picker.KeyItemTestAction = location => TestKeyItemLocation(location, level);
+ _picker.RoomInfos = level.Data.Rooms
+ .Select(r => new ExtRoomInfo(r.Info, r.NumXSectors, r.NumZSectors))
+ .ToList();
- //Get all locations that have a KeyItemGroupID - e.g. intended for key items
- List levelLocations = _keyItemLocations[level.Name].Where(i => i.KeyItemGroupID != 0).ToList();
+ _picker.Initialise(_levelInstance.Name, GetItemLocationPool(_levelInstance, true), Settings, _generator);
for (int i = 0; i < level.Data.Entities.Count; i++)
{
TR3Entity entity = level.Data.Entities[i];
- //Calculate its alias
- TR3Type aliasedKeyItemID = entity.TypeID + entity.Room + GetLevelKeyItemBaseAlias(level.Name);
-
- //Any special handling for key item entities
- switch (aliasedKeyItemID)
+ if (!TR3TypeUtilities.IsKeyItemType(entity.TypeID)
+ || ItemFactory.IsItemLocked(level.Name, i))
{
- case TR3Type.DetonatorKey:
- entity.Invisible = false;
- break;
- default:
- break;
+ continue;
}
- if (aliasedKeyItemID < TR3Type.JungleKeyItemBase)
- throw new NotSupportedException("Level does not have key item alias group defined");
-
- //Is entity one we are allowed/expected to move? (is the alias and base type correct?)
- if (_keyItemZones[level.Name].AliasedExpectedKeyItems.Contains(aliasedKeyItemID) &&
- _keyItemZones[level.Name].BaseExpectedKeyItems.Contains(entity.TypeID))
- {
- do
- {
- //Only get locations that are to position the intended key item.
- //We can probably get rid of the do while loop as any location in this list should be valid
- List keyItemLocations = levelLocations.Where(i => i.KeyItemGroupID == (int)aliasedKeyItemID).ToList();
- Location location = _picker.GetKeyItemLocation(keyItemLocations, entity, LocationUtilities.HasPickupTriger(entity, i, level.Data, floorData));
- _picker.SetLocation(entity, location);
-
- } while (!_keyItemZones[level.Name].AllowedRooms[aliasedKeyItemID].Contains(entity.Room) &&
- (!_keyItemZones[level.Name].AllowedRooms[aliasedKeyItemID].Contains(_ANY_ROOM_ALLOWED)));
- //Try generating locations until it is in the zone - if list contains 2048 then any room is allowed.
- }
+ _picker.RandomizeKeyItemLocation(
+ entity, LocationUtilities.HasPickupTriger(entity, i, level.Data, floorData),
+ level.Script.OriginalSequence, level.Data.Rooms[entity.Room].Info);
}
}
@@ -398,40 +364,10 @@ private bool TestKeyItemLocation(Location location, TR3CombinedLevel level)
.FindAll(e => TR3TypeUtilities.IsEnemyType(e.TypeID))
.Find(e => e.GetLocation().IsEquivalent(location));
- return enemy == null || TR3TypeUtilities.CanDropPickups
+ return enemy == null || (Settings.AllowEnemyKeyDrops && TR3TypeUtilities.CanDropPickups
(
TR3TypeUtilities.GetAliasForLevel(level.Name, enemy.TypeID),
!Settings.RandomizeEnemies || Settings.ProtectMonks
- );
- }
-
- private static int GetLevelKeyItemBaseAlias(string name)
- {
- TR3Type alias = name switch
- {
- TR3LevelNames.JUNGLE => TR3Type.JungleKeyItemBase,
- TR3LevelNames.RUINS => TR3Type.TempleKeyItemBase,
- TR3LevelNames.GANGES => TR3Type.GangesKeyItemBase,
- TR3LevelNames.CAVES => TR3Type.KaliyaKeyItemBase,
- TR3LevelNames.NEVADA => TR3Type.NevadaKeyItemBase,
- TR3LevelNames.HSC => TR3Type.HSCKeyItemBase,
- TR3LevelNames.AREA51 => TR3Type.Area51KeyItemBase,
- TR3LevelNames.COASTAL => TR3Type.CoastalKeyItemBase,
- TR3LevelNames.CRASH => TR3Type.CrashKeyItemBase,
- TR3LevelNames.MADUBU => TR3Type.MadubuKeyItemBase,
- TR3LevelNames.PUNA => TR3Type.PunaKeyItemBase,
- TR3LevelNames.THAMES => TR3Type.ThamesKeyItemBase,
- TR3LevelNames.ALDWYCH => TR3Type.AldwychKeyItemBase,
- TR3LevelNames.LUDS => TR3Type.LudsKeyItemBase,
- TR3LevelNames.CITY => TR3Type.CityKeyItemBase,
- TR3LevelNames.ANTARC => TR3Type.AntarcticaKeyItemBase,
- TR3LevelNames.RXTECH => TR3Type.RXKeyItemBase,
- TR3LevelNames.TINNOS => TR3Type.TinnosKeyItemBase,
- TR3LevelNames.WILLIE => TR3Type.CavernKeyItemBase,
- TR3LevelNames.HALLOWS => TR3Type.HallowsKeyItemBase,
- _ => default,
- };
-
- return (int)alias;
+ ));
}
}
diff --git a/TRRandomizerCore/Randomizers/TR3/TR3SecretRandomizer.cs b/TRRandomizerCore/Randomizers/TR3/TR3SecretRandomizer.cs
index f012f35eb..f822b3140 100644
--- a/TRRandomizerCore/Randomizers/TR3/TR3SecretRandomizer.cs
+++ b/TRRandomizerCore/Randomizers/TR3/TR3SecretRandomizer.cs
@@ -5,6 +5,7 @@
using TRFDControl.Utilities;
using TRGE.Core;
using TRGE.Core.Item.Enums;
+using TRLevelControl;
using TRLevelControl.Helpers;
using TRLevelControl.Model;
using TRModelTransporter.Transport;
@@ -14,45 +15,27 @@
using TRRandomizerCore.Secrets;
using TRRandomizerCore.Textures;
using TRRandomizerCore.Utilities;
+using SC = TRRandomizerCore.Randomizers.SecretConsts;
namespace TRRandomizerCore.Randomizers;
public class TR3SecretRandomizer : BaseTR3Randomizer, ISecretRandomizer
{
- private static readonly string _invalidLocationMsg = "Cannot place a nonvalidated secret where a trigger already exists - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _trapdoorLocationMsg = "Cannot place a secret on the same sector as a bridge/trapdoor - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _triggerWarningMsg = "Existing trigger object action with parameter {0} will be lost - {1} [X={2}, Y={3}, Z={4}, R={5}]";
- private static readonly string _flipMapWarningMsg = "Secret is being placed in a room that has a flipmap - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _flipMapErrorMsg = "Secret cannot be placed in a flipped room - {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly string _edgeInfoMsg = "Adding extra tile edge trigger for {0} [X={1}, Y={2}, Z={3}, R={4}]";
- private static readonly List _devRooms = null;
private static readonly ushort _devModeSecretCount = 6;
private readonly Dictionary> _locations, _unarmedLocations;
-
- private int _proxEvaluationCount;
-
- private static readonly float _LARGE_RADIUS = 5000.0f;
- private static readonly float _MED_RADIUS = 2500.0f;
- private static readonly float _SMALL_RADIUS = 750.0f;
- private static readonly float _TINY_RADIUS = 5.0f;
-
- private static readonly int _LARGE_RETRY_TOLERANCE = 10;
- private static readonly int _MED_RETRY_TOLERANCE = 25;
- private static readonly int _SMALL_RETRY_TOLERANCE = 50;
-
- private static readonly int _triggerEdgeLimit = 103; // Within ~10% of a tile edge, triggers will be copied into neighbours
+ private readonly LocationPicker _routePicker;
+ private SecretPicker _secretPicker;
internal TR3TextureMonitorBroker TextureMonitor { get; set; }
public ItemFactory ItemFactory { get; set; }
public IMirrorControl Mirrorer { get; set; }
- private SecretPicker _picker;
-
public TR3SecretRandomizer()
{
_locations = JsonConvert.DeserializeObject>>(ReadResource(@"TR3\Locations\locations.json"));
_unarmedLocations = JsonConvert.DeserializeObject>>(ReadResource(@"TR3\Locations\unarmed_locations.json"));
+ _routePicker = new(GetResourcePath(@"TR3\Locations\routes.json"));
}
public IEnumerable GetPacks()
@@ -65,13 +48,14 @@ public IEnumerable GetPacks()
public override void Randomize(int seed)
{
- _generator = new Random(seed);
- _picker = new SecretPicker
+ _generator = new(seed);
+ _secretPicker = new()
{
Settings = Settings,
Generator = _generator,
ItemFactory = ItemFactory,
Mirrorer = Mirrorer,
+ RouteManager = _routePicker,
};
SetMessage("Randomizing secrets - loading levels");
@@ -171,7 +155,7 @@ private TRSecretRoom MakePlaceholderRewardRoom(TR3CombinedLevel level
// Trigger activation masks have 5 bits so we need a specific number of doors to match.
// For development mode, test the maximum.
double countedSecrets = Settings.DevelopmentMode ? _devModeSecretCount : level.Script.NumSecrets;
- int requiredDoors = (int)Math.Ceiling(countedSecrets / TRSecretPlacement.MaskBits);
+ int requiredDoors = (int)Math.Ceiling(countedSecrets / TRConsts.MaskBits);
// Make the doors and store the entity indices for the secret triggers
rewardRoom = new TRSecretRoom
@@ -341,56 +325,40 @@ private void PlaceAllSecrets(TR3CombinedLevel level, List pickupTypes,
int pickupIndex = 0;
ushort secretIndex = 0;
ushort countedSecrets = _devModeSecretCount; // For dev mode test the max number of secrets in TR3
- bool damagingLocationUsed = false;
- bool glitchedDamagingLocationUsed = false;
foreach (Location location in locations)
{
- if (_devRooms == null || _devRooms.Contains(location.Room))
- {
- if (Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.NotMirrored)
- continue;
-
- if (!Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.Mirrored)
- continue;
+ if (Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.NotMirrored)
+ continue;
- secret.Location = location;
- secret.EntityIndex = (ushort)ItemFactory.GetNextIndex(level.Name, level.Data.Entities, true);
- secret.SecretIndex = (ushort)(secretIndex % countedSecrets); // Cycle through each secret number
- secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count]; // Cycle through the types
+ if (!Mirrorer.IsMirrored(level.Name) && location.LevelState == LevelState.Mirrored)
+ continue;
- // #238 Point this secret to a specific camera and look-at target if applicable.
- if (Settings.UseRewardRoomCameras && rewardRoom.HasCameras)
- {
- secret.CameraIndex = (ushort)rewardRoom.CameraIndices[pickupIndex % rewardRoom.CameraIndices.Count];
- secret.CameraTarget = (ushort)rewardRoom.DoorIndices[0];
- }
+ secret.Location = location;
+ secret.EntityIndex = (ushort)ItemFactory.GetNextIndex(level.Name, level.Data.Entities, true);
+ secret.SecretIndex = (ushort)(secretIndex % countedSecrets); // Cycle through each secret number
+ secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count]; // Cycle through the types
- secret.SetMaskAndDoor(countedSecrets, rewardRoom.DoorIndices);
+ // #238 Point this secret to a specific camera and look-at target if applicable.
+ if (Settings.UseRewardRoomCameras && rewardRoom.HasCameras)
+ {
+ secret.CameraIndex = (ushort)rewardRoom.CameraIndices[pickupIndex % rewardRoom.CameraIndices.Count];
+ secret.CameraTarget = (ushort)rewardRoom.DoorIndices[0];
+ }
- if (PlaceSecret(level, secret, floorData))
- {
- // This will either make a new entity or repurpose an old one
- TR3Entity entity = ItemFactory.CreateItem(level.Name, level.Data.Entities, secret.Location, true);
- entity.TypeID = secret.PickupType;
+ secret.SetMaskAndDoor(countedSecrets, rewardRoom.DoorIndices);
+ PlaceSecret(level, secret, floorData);
- secretIndex++;
- pickupIndex++;
+ // This will either make a new entity or repurpose an old one
+ TR3Entity entity = ItemFactory.CreateLockedItem(level.Name, level.Data.Entities, secret.Location, true);
+ entity.TypeID = secret.PickupType;
- if (location.RequiresDamage)
- {
- damagingLocationUsed = true;
- if (location.RequiresGlitch)
- {
- glitchedDamagingLocationUsed = true;
- }
- }
- }
- }
+ secretIndex++;
+ pickupIndex++;
}
floorData.WriteToLevel(level.Data);
- AddDamageControl(level, pickupTypes, damagingLocationUsed, glitchedDamagingLocationUsed);
+ AddDamageControl(level, pickupTypes, locations);
}
private void RandomizeSecrets(TR3CombinedLevel level, List pickupTypes, TRSecretRoom rewardRoom)
@@ -399,47 +367,29 @@ private void RandomizeSecrets(TR3CombinedLevel level, List pickupTypes,
floorData.ParseFromLevel(level.Data);
List locations = _locations[level.Name];
- List usedLocations = new();
+ locations.Shuffle(_generator);
- Queue guaranteedLocations = _picker.GetGuaranteedLocations(locations, Mirrorer.IsMirrored(level.Name), level.Script.NumSecrets, location =>
- {
- bool result = EvaluateProximity(location, usedLocations, level);
- if (result)
- {
- usedLocations.Add(location);
- }
- _proxEvaluationCount = 0;
- return result;
- });
+ _secretPicker.SectorAction = loc
+ => FDUtilities.GetRoomSector(loc.X, loc.Y, loc.Z, (short)loc.Room, level.Data, floorData);
+ _secretPicker.PlacementTestAction = loc
+ => TestSecretPlacement(level, loc, floorData);
- TRSecretPlacement secret = new();
- int pickupIndex = 0;
- bool damagingLocationUsed = false;
- bool glitchedDamagingLocationUsed = false;
- while (secret.SecretIndex < level.Script.NumSecrets)
- {
- Location location;
- if (guaranteedLocations.Count > 0)
- {
- location = guaranteedLocations.Dequeue();
- }
- else
- {
- do
- {
- location = locations[_generator.Next(0, locations.Count)];
- }
- while (!EvaluateProximity(location, usedLocations, level));
- }
+ _routePicker.RoomInfos = level.Data.Rooms
+ .Select(r => new ExtRoomInfo(r.Info, r.NumXSectors, r.NumZSectors))
+ .ToList();
+ _routePicker.Initialise(level.Name, locations, Settings, _generator);
- _proxEvaluationCount = 0;
+ List pickedLocations = _secretPicker.GetLocations(locations, Mirrorer.IsMirrored(level.Name), level.Script.NumSecrets);
- usedLocations.Add(location);
+ int pickupIndex = 0;
+ TRSecretPlacement secret = new();
+ for (int i = 0; i < level.Script.NumSecrets; i++)
+ {
+ Location location = pickedLocations[i];
secret.Location = location;
secret.EntityIndex = (ushort)ItemFactory.GetNextIndex(level.Name, level.Data.Entities);
- secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count]; // Cycle through the types
+ secret.PickupType = pickupTypes[pickupIndex % pickupTypes.Count];
- // #238 Point this secret to a specific camera and look-at target if applicable.
if (Settings.UseRewardRoomCameras && rewardRoom.HasCameras)
{
secret.CameraIndex = (ushort)rewardRoom.CameraIndices[pickupIndex % rewardRoom.CameraIndices.Count];
@@ -447,96 +397,28 @@ private void RandomizeSecrets(TR3CombinedLevel level, List pickupTypes,
}
secret.SetMaskAndDoor(level.Script.NumSecrets, rewardRoom.DoorIndices);
+ PlaceSecret(level, secret, floorData);
- if (PlaceSecret(level, secret, floorData))
- {
- // This will either make a new entity or repurpose an old one
- TR3Entity entity = ItemFactory.CreateItem(level.Name, level.Data.Entities, secret.Location);
- entity.TypeID = secret.PickupType;
-
- secret.SecretIndex++;
- pickupIndex++;
+ // This will either make a new entity or repurpose an old one. Ensure it is locked
+ // to prevent item rando from potentially treating it as a key item.
+ TR3Entity entity = ItemFactory.CreateLockedItem(level.Name, level.Data.Entities, secret.Location);
+ entity.TypeID = secret.PickupType;
- if (location.RequiresDamage)
- {
- damagingLocationUsed = true;
- if (location.RequiresGlitch)
- {
- glitchedDamagingLocationUsed = true;
- }
- }
- }
+ secret.SecretIndex++;
+ pickupIndex++;
}
floorData.WriteToLevel(level.Data);
- AddDamageControl(level, pickupTypes, damagingLocationUsed, glitchedDamagingLocationUsed);
-
- _picker.FinaliseSecretPool(usedLocations, level.Name);
-
-#if DEBUG
- Debug.WriteLine(level.Name + ": " + SecretPicker.DescribeLocations(usedLocations));
-#endif
+ AddDamageControl(level, pickupTypes, pickedLocations);
+ _secretPicker.FinaliseSecretPool(pickedLocations, level.Name);
}
- private bool EvaluateProximity(Location loc, List usedLocs, TR3CombinedLevel level)
- {
- bool SafeToPlace = true;
- float proximity;
-
- if (loc.Difficulty == Difficulty.Hard && !Settings.HardSecrets)
- return false;
-
- if (loc.RequiresGlitch && !Settings.GlitchedSecrets)
- return false;
-
- if (Mirrorer.IsMirrored(level.Name) && loc.LevelState == LevelState.NotMirrored)
- return false;
-
- if (!Mirrorer.IsMirrored(level.Name) && loc.LevelState == LevelState.Mirrored)
- return false;
-
- if (usedLocs.Count == 0 || usedLocs == null)
- return true;
-
- _proxEvaluationCount++;
-
- //Be more generous with proximity if we are failing to place.
- if ( _proxEvaluationCount <= _LARGE_RETRY_TOLERANCE)
- {
- proximity = _LARGE_RADIUS;
- }
- else if (_proxEvaluationCount > _LARGE_RETRY_TOLERANCE && _proxEvaluationCount <= _MED_RETRY_TOLERANCE)
- {
- proximity = _MED_RADIUS;
- }
- else if (_proxEvaluationCount > _MED_RETRY_TOLERANCE && _proxEvaluationCount <= _SMALL_RETRY_TOLERANCE)
- {
- proximity = _SMALL_RADIUS;
- }
- else
- {
- proximity = _TINY_RADIUS;
- }
-
- Sphere newLoc = new(new System.Numerics.Vector3(loc.X, loc.Y, loc.Z), proximity);
-
- foreach (Location used in usedLocs)
- {
- SafeToPlace = !newLoc.IsColliding(new Sphere(new System.Numerics.Vector3(used.X, used.Y, used.Z), proximity));
-
- if (SafeToPlace == false)
- break;
- }
-
- return SafeToPlace;
- }
-
- private void AddDamageControl(TR3CombinedLevel level, List pickupTypes, bool damagingLocationUsed, bool glitchedDamagingLocationUsed)
+ private void AddDamageControl(TR3CombinedLevel level, List pickupTypes, List locations)
{
// If we have used a secret that requires damage, add a large medi to an unarmed level
// weapon location.
- if (damagingLocationUsed && _unarmedLocations.ContainsKey(level.Name))
+ if (locations.Any(l => l.RequiresDamage) && _unarmedLocations.ContainsKey(level.Name))
{
if (ItemFactory.CanCreateItem(level.Name, level.Data.Entities, Settings.DevelopmentMode))
{
@@ -554,7 +436,7 @@ private void AddDamageControl(TR3CombinedLevel level, List pickupTypes,
// If we have also used a secret that requires damage and is glitched, add something to the
// top ring to allow medi dupes.
- if (glitchedDamagingLocationUsed)
+ if (locations.Any(l => l.RequiresDamage && l.RequiresGlitch))
{
// If we have a spare model slot, duplicate one of the artefacts into this so that
// we can add a hint with the item name. Otherwise, just re-use a puzzle item.
@@ -621,17 +503,17 @@ private static void SetPuzzleTypeName(TR3CombinedLevel level, TR3Type itemType,
}
}
- private bool PlaceSecret(TR3CombinedLevel level, TRSecretPlacement secret, FDControl floorData)
+ private bool TestSecretPlacement(TR3CombinedLevel level, Location location, FDControl floorData)
{
// Check if this secret is being added to a flipped room, as that won't work
for (int i = 0; i < level.Data.NumRooms; i++)
{
- if (level.Data.Rooms[i].AlternateRoom == secret.Location.Room)
+ if (level.Data.Rooms[i].AlternateRoom == location.Room)
{
if (Settings.DevelopmentMode)
{
// Place it anyway in dev mode to allow relocating
- Debug.WriteLine(string.Format(_flipMapErrorMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, secret.Location.Room));
+ Debug.WriteLine(string.Format(SC.FlipMapErrorMsg, level.Name, location.X, location.Y, location.Z, location.Room));
break;
}
else
@@ -642,69 +524,94 @@ private bool PlaceSecret(TR3CombinedLevel level, TRSecretPlacement secr
}
// Get the sector and check if it is shared with a trapdoor or bridge, as these won't work either.
- TRRoomSector sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, (short)secret.Location.Room, level.Data, floorData);
+ TRRoomSector sector = FDUtilities.GetRoomSector(location.X, location.Y, location.Z, (short)location.Room, level.Data, floorData);
foreach (TR3Entity otherEntity in level.Data.Entities)
{
TR3Type type = otherEntity.TypeID;
- if (secret.Location.Room == otherEntity.Room && (TR3TypeUtilities.IsTrapdoor(type) || TR3TypeUtilities.IsBridge(type)))
+ if (location.Room == otherEntity.Room && (TR3TypeUtilities.IsTrapdoor(type) || TR3TypeUtilities.IsBridge(type)))
{
TRRoomSector otherSector = FDUtilities.GetRoomSector(otherEntity.X, otherEntity.Y, otherEntity.Z, otherEntity.Room, level.Data, floorData);
if (otherSector == sector)
{
if (Settings.DevelopmentMode)
{
- Debug.WriteLine(string.Format(_trapdoorLocationMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, secret.Location.Room));
+ Debug.WriteLine(string.Format(SC.TrapdoorLocationMsg, level.Name, location.X, location.Y, location.Z, location.Room));
}
return false;
}
}
}
- // Create the trigger. If this was unsuccessful, bail out.
- if (!CreateSecretTriggers(level, secret, (short)secret.Location.Room, floorData, sector))
+ if (!TestTriggerPlacement(level, location, (short)location.Room, sector, floorData))
{
return false;
}
- // #248 If the room has a flipmap, make sure to add the trigger there too.
- short altRoom = level.Data.Rooms[secret.Location.Room].AlternateRoom;
+ // If the room has a flipmap, make sure to test the trigger there too.
+ short altRoom = level.Data.Rooms[location.Room].AlternateRoom;
if (altRoom != -1)
{
- sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, altRoom, level.Data, floorData);
- if (!CreateSecretTriggers(level, secret, altRoom, floorData, sector))
+ sector = FDUtilities.GetRoomSector(location.X, location.Y, location.Z, altRoom, level.Data, floorData);
+ if (!TestTriggerPlacement(level, location, altRoom, sector, floorData))
{
return false;
}
if (Settings.DevelopmentMode)
{
- Debug.WriteLine(string.Format(_flipMapWarningMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, altRoom));
+ Debug.WriteLine(string.Format(SC.FlipMapWarningMsg, level.Name, location.X, location.Y, location.Z, altRoom));
}
}
- // Checks have passed, so we can actually create the entity.
return true;
}
- private bool CreateSecretTriggers(TR3CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector baseSector)
+ private bool TestTriggerPlacement(TR3CombinedLevel level, Location location, short room, TRRoomSector sector, FDControl floorData)
{
- // Try to make the primary trigger
- if (!CreateSecretTrigger(level, secret, room, floorData, baseSector))
+ if (!location.Validated && LocationUtilities.HasAnyTrigger(sector, floorData))
{
+ // There is already a trigger here and the location hasn't been marked as being
+ // safe to move the action items to the new pickup trigger.
+ if (Settings.DevelopmentMode)
+ {
+ Debug.WriteLine(string.Format(SC.InvalidLocationMsg, level.Name, location.X, location.Y, location.Z, room));
+ }
return false;
}
+ return true;
+ }
+
+
+ private void PlaceSecret(TR3CombinedLevel level, TRSecretPlacement secret, FDControl floorData)
+ {
+ // This assumes TestTriggerPlacement has already been called and passed.
+ TRRoomSector sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, (short)secret.Location.Room, level.Data, floorData);
+ CreateSecretTriggers(level, secret, (short)secret.Location.Room, floorData, sector);
+
+ short altRoom = level.Data.Rooms[secret.Location.Room].AlternateRoom;
+ if (altRoom != -1)
+ {
+ sector = FDUtilities.GetRoomSector(secret.Location.X, secret.Location.Y, secret.Location.Z, altRoom, level.Data, floorData);
+ CreateSecretTriggers(level, secret, altRoom, floorData, sector);
+ }
+ }
+
+ private void CreateSecretTriggers(TR3CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector baseSector)
+ {
+ // Try to make the primary trigger
+ CreateSecretTrigger(level, secret, room, floorData, baseSector);
// Check neighbouring sectors if we are very close to tile edges. We scan 8 locations around
// the secret's position based on the edge tolerance and see if the sector has changed.
- ISet processedSectors = new HashSet { baseSector };
+ HashSet processedSectors = new() { baseSector };
for (int xNorm = -1; xNorm < 2; xNorm++)
{
for (int zNorm = -1; zNorm < 2; zNorm++)
{
if (xNorm == 0 && zNorm == 0) continue; // Primary trigger's sector
- int x = secret.Location.X + xNorm * _triggerEdgeLimit;
- int z = secret.Location.Z + zNorm * _triggerEdgeLimit;
+ int x = secret.Location.X + xNorm * SC.TriggerEdgeLimit;
+ int z = secret.Location.Z + zNorm * SC.TriggerEdgeLimit;
TRRoomSector neighbour = FDUtilities.GetRoomSector(x, secret.Location.Y, z, room, level.Data, floorData);
// Process each unique sector only once and if it's a valid neighbour, add the extra trigger.
@@ -712,18 +619,16 @@ private bool CreateSecretTriggers(TR3CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector sector)
+ private void CreateSecretTrigger(TR3CombinedLevel level, TRSecretPlacement secret, short room, FDControl floorData, TRRoomSector sector)
{
if (sector.FDIndex == 0)
{
floorData.CreateFloorData(sector);
}
- FDTriggerEntry existingTrigger = floorData.Entries[sector.FDIndex].Find(e => e is FDTriggerEntry) as FDTriggerEntry;
- if (existingTrigger != null && !secret.Location.Validated)
- {
- // There is already a trigger here and the location hasn't been marked as being
- // safe to move the action items to the new pickup trigger.
- if (Settings.DevelopmentMode)
- {
- Debug.WriteLine(string.Format(_invalidLocationMsg, level.Name, secret.Location.X, secret.Location.Y, secret.Location.Z, room));
- }
- return false;
- }
-
// Make a new pickup trigger
FDTriggerEntry trigger = new()
{
- Setup = new FDSetup { Value = 4 },
- TrigSetup = new FDTrigSetup
+ Setup = new() { Value = 4 },
+ TrigSetup = new()
{
Value = 15872,
Mask = secret.TriggerMask
},
TrigType = FDTrigType.Pickup,
- TrigActionList = new List
+ TrigActionList = new()
{
- new FDActionListItem
+ new()
{
TrigAction = FDTrigAction.Object,
Parameter = secret.EntityIndex
},
- new FDActionListItem
+ new()
{
TrigAction = FDTrigAction.SecretFound,
Parameter = secret.SecretIndex
@@ -783,7 +676,7 @@ private bool CreateSecretTrigger(TR3CombinedLevel level, TRSecretPlacement e is FDTriggerEntry) is FDTriggerEntry existingTrigger)
{
List existingActions = new();
foreach (FDActionListItem actionItem in existingTrigger.TrigActionList)
@@ -802,9 +695,9 @@ private bool CreateSecretTrigger(TR3CombinedLevel level, TRSecretPlacement.FullActivation)
+ else if (secret.TriggerMask == TRConsts.FullMask)
{
existingActions.Add(actionItem);
}
@@ -820,8 +713,6 @@ private bool CreateSecretTrigger(TR3CombinedLevel level, TRSecretPlacement
diff --git a/TRRandomizerCore/Resources/TR1/Locations/routes.json b/TRRandomizerCore/Resources/TR1/Locations/routes.json
new file mode 100644
index 000000000..7a73a41bf
--- /dev/null
+++ b/TRRandomizerCore/Resources/TR1/Locations/routes.json
@@ -0,0 +1,2 @@
+{
+}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR2/Locations/routes.json b/TRRandomizerCore/Resources/TR2/Locations/routes.json
new file mode 100644
index 000000000..7a73a41bf
--- /dev/null
+++ b/TRRandomizerCore/Resources/TR2/Locations/routes.json
@@ -0,0 +1,2 @@
+{
+}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR3/Locations/routes.json b/TRRandomizerCore/Resources/TR3/Locations/routes.json
new file mode 100644
index 000000000..7a73a41bf
--- /dev/null
+++ b/TRRandomizerCore/Resources/TR3/Locations/routes.json
@@ -0,0 +1,2 @@
+{
+}
\ No newline at end of file
From 69991fa0339ae3425a9e92d87e3f79da61da05a8 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 21:10:27 +0000
Subject: [PATCH 10/17] Update aliases and shared space types
Key item alias IDs updated per LocationPicker.GetKeyItemID.
Additional objects identified that can share pickup space with items.
---
TRLevelControl/Helpers/TR1TypeUtilities.cs | 17 +++
TRLevelControl/Helpers/TR2TypeUtilities.cs | 1 +
TRLevelControl/Helpers/TR3TypeUtilities.cs | 7 +-
TRLevelControl/Model/Base/Enums/TR1Type.cs | 79 +++++++------
TRLevelControl/Model/TR2/Enums/TR2Type.cs | 74 ++++++++++++
TRLevelControl/Model/TR3/Enums/TR3Type.cs | 127 ++++++++++-----------
6 files changed, 202 insertions(+), 103 deletions(-)
diff --git a/TRLevelControl/Helpers/TR1TypeUtilities.cs b/TRLevelControl/Helpers/TR1TypeUtilities.cs
index d87674080..29d695482 100644
--- a/TRLevelControl/Helpers/TR1TypeUtilities.cs
+++ b/TRLevelControl/Helpers/TR1TypeUtilities.cs
@@ -474,6 +474,21 @@ public static bool IsPushblockType(TR1Type type)
return GetPushblockTypes().Contains(type);
}
+ public static List GetCogMachineTypes()
+ {
+ return new()
+ {
+ TR1Type.Animating1,
+ TR1Type.Animating2,
+ TR1Type.Animating3,
+ };
+ }
+
+ public static bool IsCogMachineType(TR1Type type)
+ {
+ return GetCogMachineTypes().Contains(type);
+ }
+
public static bool CanSharePickupSpace(TR1Type type)
{
// Can we place a standard pickup on the same tile as this type?
@@ -487,6 +502,7 @@ public static bool CanSharePickupSpace(TR1Type type)
|| IsTrapdoor(type)
|| IsDoorType(type)
|| IsPushblockType(type)
+ || IsCogMachineType(type)
|| type == TR1Type.CameraTarget_N
|| type == TR1Type.Earthquake_N
|| type == TR1Type.WaterfallMist_N
@@ -494,6 +510,7 @@ public static bool CanSharePickupSpace(TR1Type type)
|| type == TR1Type.Barricade
|| type == TR1Type.RollingBall
|| type == TR1Type.MovingBlock
+ || type == TR1Type.SwingingBlade
|| type == TR1Type.Lara;
}
diff --git a/TRLevelControl/Helpers/TR2TypeUtilities.cs b/TRLevelControl/Helpers/TR2TypeUtilities.cs
index 072f8bbbe..878531408 100644
--- a/TRLevelControl/Helpers/TR2TypeUtilities.cs
+++ b/TRLevelControl/Helpers/TR2TypeUtilities.cs
@@ -769,6 +769,7 @@ public static List UnrenderedTypes()
TR2Type.DrippingWater_N,
TR2Type.BartoliHideoutClock_N,
TR2Type.SingingBirds_N,
+ TR2Type.DragonExplosionEmitter_N,
};
}
diff --git a/TRLevelControl/Helpers/TR3TypeUtilities.cs b/TRLevelControl/Helpers/TR3TypeUtilities.cs
index c4eaeef9e..6498bcb1b 100644
--- a/TRLevelControl/Helpers/TR3TypeUtilities.cs
+++ b/TRLevelControl/Helpers/TR3TypeUtilities.cs
@@ -559,7 +559,8 @@ public static List GetSwitchTypes()
TR3Type.SmallWallSwitch,
TR3Type.PushButtonSwitch,
TR3Type.WallSwitch,
- TR3Type.UnderwaterSwitch
+ TR3Type.UnderwaterSwitch,
+ TR3Type.ValveWheelOrPulley,
};
}
@@ -654,8 +655,12 @@ public static bool CanSharePickupSpace(TR3Type type)
|| IsTrapdoor(type)
|| IsDoorType(type)
|| IsPushblockType(type)
+ || (IsVehicleType(type) && type != TR3Type.MineCart)
|| type == TR3Type.FallingBlock
|| type == TR3Type.RollingBallOrBarrel
+ || type == TR3Type.ZiplineHandle
+ || type == TR3Type.WaterfallMist_H
+ || type == TR3Type.DestroyableBoardedUpWindow
|| type == TR3Type.Lara;
}
diff --git a/TRLevelControl/Model/Base/Enums/TR1Type.cs b/TRLevelControl/Model/Base/Enums/TR1Type.cs
index f62b2c8cc..f94c0a881 100644
--- a/TRLevelControl/Model/Base/Enums/TR1Type.cs
+++ b/TRLevelControl/Model/Base/Enums/TR1Type.cs
@@ -274,69 +274,72 @@ public enum TR1Type
LaraMiscAnim_H_Atlantis = 2005, // Scion grab (includes level end)
LaraMiscAnim_H_Pyramid = 2006, // Adam death
- // Key Item Alias = 10000 + ((level.OriginalSequence - 1) * 1000) + KeyTypeID + Room
+ // Key item aliases
CavesKeyItemBase = 10000,
VilcabambaKeyItemBase = 11000,
- VilcabambaGoldIdol = 11124,
- VilcabambaSilverKey = 11143,
+ Vilcabamba_K1_SilverKey = 11183,
+ Vilcabamba_P1_GoldIdol = 11143,
ValleyKeyItemBase = 12000,
- ValleyCogAbovePool = 12150,
- ValleyCogInWater = 12158,
- ValleyCogAtBridge = 12168,
+ Valley_P1_CogAbovePool = 12177,
+ Valley_P1_CogBridge = 12242,
+ Valley_P1_CogTemple = 12241,
QualopecKeyItemBase = 13000,
FollyKeyItemBase = 14000,
- FollyNeptuneKey = 14162,
- FollyDamoclesKey = 14169,
- FollyThorKey = 14176,
- FollyAtlasKey = 14177,
+ Folly_K1_NeptuneKey = 14315,
+ Folly_K2_AtlasKey = 14299,
+ Folly_K3_DamoclesKey = 14290,
+ Folly_K4_ThorKey = 14280,
ColosseumKeyItemBase = 15000,
- ColosseumSuperBrightKey = 15183,
+ Colosseum_K1_RustyKey = 15217,
MidasKeyItemBase = 16000,
- MidasLeadBarTempleRoom = 16133,
- MidasLeadBarFireRoom = 16149,
- MidasLeadBarSpikeRoom = 16154,
+ Midas_LeadBar_FireRoom = 16178,
+ Midas_LeadBar_SpikeRoom = 16157,
+ Midas_LeadBar_TempleRoof = 16166,
CisternKeyItemBase = 17000,
- CisternRustyKeyNearPierre = 17151,
- CisternSilverKeyBehindDoor = 17170,
- CisternSilverKeyBetweenDoors = 17179,
- CisternGoldKey = 17185,
- CisternRustyKeyMainRoomLedge = 17222,
+ Cistern_K1_GoldKey = 17245,
+ Cistern_K2_SilverBehindDoor = 17208,
+ Cistern_K2_SilverBetweenDoors = 17231,
+ Cistern_K3_RustyKeyMainRoom = 17295,
+ Cistern_K3_RustyKeyNearPierre = 17143,
TihocanKeyItemBase = 18000,
- TihocanGoldKeyBeforeBlockRoom = 18144,
- TihocanRustyKeyDoubleBoulders = 18209,
- TihocanRustyKeyClangClang = 18210,
- TihocanGoldKeyPierre = 18239,
+ Tihocan_K1_GoldKeyFlipMap = 18133,
+ Tihocan_K1_GoldKeyPierre = 18389,
+ Tihocan_K2_RustyKeyBoulders = 18277,
+ Tihocan_K2_RustyKeyClangClang = 18267,
KhamoonKeyItemBase = 19000,
- KhamoonSapphireKeySphinx = 19143,
- KhamoonSapphireKeyEnd = 19162,
+ Khamoon_K1_SapphireKeyEnd = 19193,
+ Khamoon_K1_SapphireKeyStart = 19217,
ObeliskKeyItemBase = 20000,
- ObeliskEyeOfHorus = 20126,
- ObeliskScarab = 20127,
- ObeliskSealOfAnubis = 20128,
- ObeliskAnkh = 20129,
- ObeliskSapphireKey = 20199,
+ Obelisk_K1_SapphireKeyEnd = 20213,
+ Obelisk_K1_SapphireKeyStart = 20308,
+ Obelisk_P1_EyeOfHorus = 20160,
+ Obelisk_P2_Scarab = 20151,
+ Obelisk_P3_SealOfAnubis = 20152,
+ Obelisk_P4_Ankh = 20163,
SanctuaryKeyItemBase = 21000,
- SanctuaryAnkhBehindSphinx = 21126,
- SanctuarySapphireKey = 21148,
- SanctuaryAnkhAfterKey = 21150,
- SanctuaryScarab = 21155,
+ Sanctuary_K1_GoldKey = 21191,
+ Sanctuary_P1_AnkhAfterKey = 21196,
+ Sanctuary_P1_AnkhBehindSphinx = 21100,
+ Sanctuary_P2_Scarab = 21202,
MinesKeyItemBase = 22000,
- MinesFuseNearCowboy = 22127,
- MinesFuseNearShack = 22147,
- MinesFuseNearConveyor = 22155,
- MinesPyramidKey = 22179,
+ Mines_K1_RustyKey = 22137,
+ Mines_P1_BoulderFuse = 22160,
+ Mines_P1_ConveyorFuse = 22183,
+ Mines_P1_CowboyFuse = 22148,
+ Mines_P1_CowboyAltFuse = 22146,
+ Mines_P2_PyramidKey = 22216,
AtlantisKeyItemBase = 23000,
diff --git a/TRLevelControl/Model/TR2/Enums/TR2Type.cs b/TRLevelControl/Model/TR2/Enums/TR2Type.cs
index 187a9eeee..f11ef7412 100644
--- a/TRLevelControl/Model/TR2/Enums/TR2Type.cs
+++ b/TRLevelControl/Model/TR2/Enums/TR2Type.cs
@@ -402,4 +402,78 @@ public enum TR2Type
Puzzle1_M_H_Dagger = 3513,
Puzzle2_M_H_Dagger = 3514,
+
+ // Key item aliases
+ GW_K1_GuardhouseKey = 10291,
+ GW_K2_RustyKey = 10250,
+
+ Venice_K1_BoathouseKey = 11210,
+ Venice_K2_SteelKey = 11353,
+ Venice_K3_IronKey = 11502,
+
+ Bartoli_K1_LibraryKey = 12241,
+ Bartoli_K2_DetonatorKey = 12385,
+
+ Opera_K1_OrnateKeyFans = 13449,
+ Opera_K1_OrnateKeyStart = 13544,
+ Opera_P1_RelayBox = 13395,
+ Opera_P2_CircuitBoard = 13377,
+
+ Rig_K1_RedPassCard = 14238,
+ Rig_K2_YellowPassCard = 14193,
+ Rig_K3_GreenPassCard = 14240,
+
+ DA_K1_RedPassCard = 15250,
+ DA_K4_BluePassCard = 15301,
+ DA_P1_MachineChipChopper = 15299,
+ DA_P1_MachineChipMiddleRoom = 15206,
+
+ Wreck_K1_RestRoomKey = 17407,
+ Wreck_K2_RustyKey = 17343,
+ Wreck_K3_CabinKey = 17324,
+ Wreck_P1_RestroomBreaker = 17298,
+ Wreck_P1_ShardRoomBreaker = 17349,
+ Wreck_P1_StaircaseBreaker = 17304,
+
+ LQ_K1_TheatreKey = 18300,
+
+ Deck_K2_SternKey = 19368,
+ Deck_K3_StorageKey = 19385,
+ Deck_K4_CabinKey = 19262,
+ Deck_P4_TheSeraph = 19400,
+
+ Tibet_K1_DrawbridgeKey = 20379,
+ Tibet_K2_HutKey = 20348,
+
+ Barkhang_K1_StrongroomKey = 21328,
+ Barkhang_K2_TrapdoorKey = 21501,
+ Barkhang_K3_RooftopsKey = 21225,
+ Barkhang_K4_MainHallKey = 21464,
+ Barkhang_P1_BurnerRoomWheel = 21306,
+ Barkhang_P1_LadderTowerWheel = 21415,
+ Barkhang_P1_OutsideWheel = 21431,
+ Barkhang_P1_PoolWheel = 21485,
+ Barkhang_P1_RooftopWheel = 21330,
+ Barkhang_P2_EastGemstone = 21338,
+ Barkhang_P2_WestGemstone = 21332,
+ Barkhang_P4_TheSeraph = 21273,
+
+ CoT_P1_TibetanMaskStart = 22222,
+ CoT_P1_TibetanMaskUnderwater = 22357,
+ CoT_Q1_GongHammer = 22342,
+
+ Chicken_K2_GongHammer = 23315,
+ Chicken_P1_TibetanMask = 23379,
+ Chicken_Q2_Talion = 23503,
+
+ Xian_K2_GoldKey = 24427,
+ Xian_K3_SilverKey = 24582,
+ Xian_K4_MainChamberKey = 24436,
+ Xian_P1_TheDragonSeal = 24387,
+
+ Floater_P1_MysticPlaqueAltEnd = 25443,
+ Floater_P1_MysticPlaqueWest = 25232,
+ Floater_P2_MysticPlaqueEast = 25160,
+
+ Lair_P1_MysticPlaque = 26145,
}
diff --git a/TRLevelControl/Model/TR3/Enums/TR3Type.cs b/TRLevelControl/Model/TR3/Enums/TR3Type.cs
index 845aa7f31..44d119362 100644
--- a/TRLevelControl/Model/TR3/Enums/TR3Type.cs
+++ b/TRLevelControl/Model/TR3/Enums/TR3Type.cs
@@ -490,101 +490,100 @@ public enum TR3Type
LaraVehicleAnimation_H_UPV = 8003,
LaraVehicleAnimation_H_Boat = 8004,
- // Key Item Alias = 10000 + ((level.OriginalSequence - 1) * 1000) + KeyTypeID + Room
+ // Key item aliases
JungleKeyItemBase = 10000,
- MonkeyKey = 10359,
+ Jungle_K4_IndraKey = 10590,
TempleKeyItemBase = 11000,
- GaneshaSpikeCorridorAfterMud = 11371,
- Scimitar2 = 11410,
- Scimitar1 = 11411,
- GaneshaFlipmapPool = 11416,
- GaneshaBeneathRandyRory = 11435,
- GaneshaCurrentPool = 11444,
- GaneshaSpikeCeiling = 11446,
+ Temple_K1_GaneshaCurrentPool = 11723,
+ Temple_K1_GaneshaFlipmapPool = 11641,
+ Temple_K1_GaneshaMudslide = 11539,
+ Temple_K1_GaneshaRandyRory = 11708,
+ Temple_K1_GaneshaSpikeCeiling = 11692,
+ Temple_P1_ScimitarEast = 11636,
+ Temple_P2_ScimitarWest = 11648,
GangesKeyItemBase = 12000,
- SnakePitKey = 12239,
- MonkeyPitKey = 12323,
+ Ganges_K1_GateKeyMonkeyPit = 12425,
+ Ganges_K1_GateKeySnakePit = 12258,
KaliyaKeyItemBase = 13000,
- NevadaKeyItemBase = 14000,
- DetonatorKey = 14294, //There are two on the level - we can ignore the one thats intended to be accessible
- RooftopKeycard = 14378,
-
- HSCKeyItemBase = 15000,
- InitialKeycard = 15234,
- FinalYellowKey = 15239,
- BlueKey = 15279,
- SecretCorridorYellow = 15335,
- SecretCorridorKeycard = 15350,
- OutsideTurretsKeycard = 15355,
- OutsideYellowKey = 15366,
-
- Area51KeyItemBase = 16000,
- Disc2 = 16233,
- Disc1 = 16257,
- YellowKey = 16286,
- UFOKeycard = 16322,
-
CoastalKeyItemBase = 17000,
- SerpentStoneCubby = 17222,
- SmugglersKey = 17231,
- SerpentStoneTopWaterfall = 17326,
- SerpentStoneTreetops = 17329,
+ Coastal_K1_SmugglersKey = 14300,
+ Coastal_P1_StoneAbovePool = 14447,
+ Coastal_P1_StoneTreetops = 14440,
+ Coastal_P1_StoneWaterfall = 14252,
CrashKeyItemBase = 18000,
- TuckermansKey = 18255,
- BishopsKey = 18270,
+ Crash_K1_BishopsKey = 15364,
+ Crash_K2_TuckermansKey = 15278,
MadubuKeyItemBase = 19000,
PunaKeyItemBase = 20000,
ThamesKeyItemBase = 21000,
- CathedralKey = 21225,
- FlueRoomKey = 21396,
+ Thames_K1_FlueRoomKey = 18524,
+ Thames_K2_CathedralKey = 18161,
AldwychKeyItemBase = 22000,
- SolomonKeyDrillShaft = 22235,
- Ticket = 22243,
- Penny = 22247,
- MaintenanceKey = 22262,
- SolomonKey3DoorPuzzle = 22301,
- Star = 22325,
- Mallet = 22334,
+ Aldwych_K1_MaintenanceKey = 19279,
+ Aldwych_K2_SolomonKey3Doors = 19362,
+ Aldwych_K3_SolomonKeyDrill = 19239,
+ Aldwych_P1_OldCoin = 19343,
+ Aldwych_P2_Ticket = 19302,
+ Aldwych_P3_Hammer = 19465,
+ Aldwych_P4_OrnateStar = 19448,
LudsKeyItemBase = 23000,
- EmbalmingFluid = 23283,
- BoilerRoomKey = 23293,
+ Luds_K1_BoilerRoomKey = 20447,
+ Luds_P1_EmbalmingFluid = 20240,
CityKeyItemBase = 24000,
+ NevadaKeyItemBase = 14000,
+ Nevada_K1_GeneratorAccessCard = 22578,
+ Nevada_K2_DetonatorKey = 22359,
+ Nevada_K2_DetonatorKeyUnused = 22419,
+
+ HSCKeyItemBase = 15000,
+ HSC_K1_KeycardTypeA = 23260,
+ HSC_K2_KeycardTypeBSatellite = 23490,
+ HSC_K2_KeycardTypeBTurrets = 23454,
+ HSC_P1_BluePass = 23352,
+ HSC_P2_YellowPassEnd = 23322,
+ HSC_P2_YellowPassHangar = 23537,
+ HSC_P2_YellowPassSatellite = 23463,
+
+ Area51KeyItemBase = 16000,
+ Area51_K1_LaunchCodeCard = 24433,
+ Area51_P2_CodeCDSilo = 24322,
+ Area51_P3_CodeCDWatchTower = 24253,
+ Area51_P4_HangarAccessPass = 24434,
+
AntarcticaKeyItemBase = 25000,
- CrowbarAfterOpeningGenerator = 25292,
- CrowbarAfterOpeningTower = 25298,
- GeneratorKey = 25321,
- CrowbarStandardPickup = 25339,
- HutKey = 25375,
+ Antarc_K1_HutKey = 25526,
+ Antarc_P1_CrowbarGateControl = 25374,
+ Antarc_P1_CrowbarRegular = 25456,
+ Antarc_P1_CrowbarTower = 25371,
+ Antarc_P2_GateControlKey = 25446,
RXKeyItemBase = 26000,
- Battery = 26312,
- Winch = 26333,
- Crowbar = 26365,
+ RX_P1_Crowbar = 26679,
+ RX_P2_LeadAcidBattery = 26444,
+ RX_P3_WinchStarter = 26509,
TinnosKeyItemBase = 27000,
- UliKeyStart = 27251,
- WaterMask = 27299,
- WindMask = 27302,
- EarthMask = 27325,
- FireMask = 27324,
- UliKeyMutants = 27435,
+ Tinnos_K1_UliKeyEnd = 27686,
+ Tinnos_K1_UliKeyStart = 27269,
+ Tinnos_P1_OceanicMaskEarth = 27421,
+ Tinnos_P1_OceanicMaskFire = 27449,
+ Tinnos_P1_OceanicMaskWater = 27395,
+ Tinnos_P1_OceanicMaskWind = 27368,
CavernKeyItemBase = 28000,
HallowsKeyItemBase = 29000,
- VaultKey = 29242,
-
- NullKeyItem = 32700,
+ Hallows_K1_VaultKey = 29220,
}
From 25810db1d1b0b77f80d44576505575da9fb3815e Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 21:11:33 +0000
Subject: [PATCH 11/17] Route all levels
Routing created for every level in TR1-3. This makes use of a trview plugin to allow visualisation of the created zones, which are generated by marking on waypoints low and high rooms along the route for each key item.
Updated invalid item locations too as more came to light during this exercise.
---
.../trview/plugins/key_items/manifest.json | 5 +
Resources/trview/plugins/key_items/plugin.lua | 512 +
.../TR1/Locations/invalid_item_locations.json | 144 +-
.../Resources/TR1/Locations/routes.json | 8103 ++++++++
.../TR2/Locations/invalid_item_locations.json | 382 +-
.../Resources/TR2/Locations/routes.json | 13673 +++++++++++++
.../TR3/Locations/invalid_item_locations.json | 724 +-
.../Resources/TR3/Locations/routes.json | 16984 ++++++++++++++++
8 files changed, 40424 insertions(+), 103 deletions(-)
create mode 100644 Resources/trview/plugins/key_items/manifest.json
create mode 100644 Resources/trview/plugins/key_items/plugin.lua
diff --git a/Resources/trview/plugins/key_items/manifest.json b/Resources/trview/plugins/key_items/manifest.json
new file mode 100644
index 000000000..c439c11cd
--- /dev/null
+++ b/Resources/trview/plugins/key_items/manifest.json
@@ -0,0 +1,5 @@
+{
+ "name": "Key Item Zones",
+ "author": "TRRando",
+ "description": "Show key item zones"
+}
diff --git a/Resources/trview/plugins/key_items/plugin.lua b/Resources/trview/plugins/key_items/plugin.lua
new file mode 100644
index 000000000..9bc1bb54c
--- /dev/null
+++ b/Resources/trview/plugins/key_items/plugin.lua
@@ -0,0 +1,512 @@
+LO_MODE = 0
+HI_MODE = 1
+
+m_Ranges = {}
+m_Ranges[1] = "Small"
+m_Ranges[2] = "Medium"
+m_Ranges[3] = "Large"
+
+m_ReturnPaths = {}
+m_ReturnPaths[false] = "Off"
+m_ReturnPaths[true] = "On"
+
+m_CurrentLevel = nil
+m_FilterEnabled = false
+m_ValidatedOnly = true
+m_SelectedRange = 2
+m_UseReturnPaths = true
+m_SelectedKeyItem = nil
+m_KeyZones = {}
+
+m_KeyNames = {}
+-- TR1
+m_KeyNames[1] = {}
+m_KeyNames[1][11183] = "K1 Silver Key"
+m_KeyNames[1][11143] = "P1 Gold Idol"
+m_KeyNames[1][12177] = "P1 Cog (above pool)"
+m_KeyNames[1][12242] = "P1 Cog (bridge)"
+m_KeyNames[1][12241] = "P1 Cog (temple)"
+m_KeyNames[1][14315] = "K1 Neptune Key"
+m_KeyNames[1][14299] = "K2 Atlas Key"
+m_KeyNames[1][14290] = "K3 Damocles Key"
+m_KeyNames[1][14280] = "K4 Thor Key"
+m_KeyNames[1][15217] = "K1 Rusty Key"
+m_KeyNames[1][16178] = "Lead Bar (fire)"
+m_KeyNames[1][16157] = "Lead Bar (spikes)"
+m_KeyNames[1][16166] = "Lead Bar (temple)"
+m_KeyNames[1][17245] = "K1 Gold Key"
+m_KeyNames[1][17208] = "K2 Silver Key (behind door)"
+m_KeyNames[1][17231] = "K2 Silver Key (between doors)"
+m_KeyNames[1][17295] = "K3 Rusty Key (main room)"
+m_KeyNames[1][17143] = "K3 Rusty Key (near Pierre)"
+m_KeyNames[1][18389] = "K1 Gold Key (Pierre)"
+m_KeyNames[1][18133] = "K1 Gold Key (flip map)"
+m_KeyNames[1][18277] = "K2 Rusty Key (boulders)"
+m_KeyNames[1][18267] = "K2 Rusty Key (clang-clang)"
+m_KeyNames[1][19193] = "K1 Sapphire Key (end)"
+m_KeyNames[1][19217] = "K1 Sapphire Key (start)"
+m_KeyNames[1][20213] = "K1 Sapphire Key (alt ending)"
+m_KeyNames[1][20308] = "K1 Sapphire Key (start)"
+m_KeyNames[1][20160] = "P1 Eye of Horus"
+m_KeyNames[1][20151] = "P2 Scarab"
+m_KeyNames[1][20152] = "P3 Seal of Anubis"
+m_KeyNames[1][20163] = "P4 Ankh"
+m_KeyNames[1][21191] = "K1 Gold Key"
+m_KeyNames[1][21196] = "P1 Ankh (after key)"
+m_KeyNames[1][21100] = "P1 Ankh (behind Sphinx)"
+m_KeyNames[1][21202] = "P2 Scarab"
+m_KeyNames[1][22137] = "K1 Rusty Key"
+m_KeyNames[1][22160] = "P1 Fuse (boulders)"
+m_KeyNames[1][22183] = "P1 Fuse (conveyor)"
+m_KeyNames[1][22148] = "P1 Fuse (Cowboy)"
+m_KeyNames[1][22146] = "P1 Fuse (Cowboy, alt)"
+m_KeyNames[1][22216] = "P2 Pyramid Key"
+
+-- TR2
+m_KeyNames[2] = {}
+m_KeyNames[2][10291] = "K1 Guardhouse Key"
+m_KeyNames[2][10250] = "K2 Rusty Key"
+m_KeyNames[2][11210] = "K1 Boathouse Key"
+m_KeyNames[2][11353] = "K2 Steel Key"
+m_KeyNames[2][11502] = "K3 Iron Key"
+m_KeyNames[2][12241] = "K1 Library Key"
+m_KeyNames[2][12385] = "K2 Detonator Key"
+m_KeyNames[2][13449] = "K1 Ornate Key (fan area)"
+m_KeyNames[2][13544] = "K1 Ornate Key (start)"
+m_KeyNames[2][13395] = "P1 Relay Box"
+m_KeyNames[2][13377] = "P3 Circuit Board"
+m_KeyNames[2][14238] = "K1 Red Pass Card"
+m_KeyNames[2][14193] = "K2 Yellow Pass Card"
+m_KeyNames[2][14240] = "K3 Green Pass Card"
+m_KeyNames[2][15250] = "K1 Red Pass Card"
+m_KeyNames[2][15301] = "K4 Blue Pass Card"
+m_KeyNames[2][15299] = "P1 Machine Chip (helicopter area)"
+m_KeyNames[2][15206] = "P1 Machine Chip (middle room)"
+m_KeyNames[2][17407] = "K1 Rest Room Key"
+m_KeyNames[2][17343] = "K2 Rusty Key"
+m_KeyNames[2][17324] = "K3 Cabin Key"
+m_KeyNames[2][17298] = "P1 Circuit Breaker (rest room area)"
+m_KeyNames[2][17349] = "P1 Circuit Breaker (shard room)"
+m_KeyNames[2][17304] = "P1 Circuit Breaker (staircase)"
+m_KeyNames[2][18300] = "K1 Theatre Key"
+m_KeyNames[2][19368] = "K2 Stern Key"
+m_KeyNames[2][19385] = "K3 Storage Key"
+m_KeyNames[2][19262] = "K4 Cabin Key"
+m_KeyNames[2][19400] = "P4 The Seraph"
+m_KeyNames[2][20379] = "K1 Drawbridge Key"
+m_KeyNames[2][20348] = "K2 Hut Key"
+m_KeyNames[2][21328] = "K1 Strongroom Key"
+m_KeyNames[2][21501] = "K2 Trapdoor Key"
+m_KeyNames[2][21225] = "K3 Rooftops Key"
+m_KeyNames[2][21464] = "K4 Main Hall Key"
+m_KeyNames[2][21306] = "P1 Prayer Wheel (burner room)"
+m_KeyNames[2][21415] = "P1 Prayer Wheel (ladder tower)"
+m_KeyNames[2][21431] = "P1 Prayer Wheel (outside area)"
+m_KeyNames[2][21485] = "P1 Prayer Wheel (pool area)"
+m_KeyNames[2][21330] = "P1 Prayer Wheel (rooftops)"
+m_KeyNames[2][21338] = "P3 Gemstone (east)"
+m_KeyNames[2][21332] = "P3 Gemstone (west)"
+m_KeyNames[2][21273] = "P4 The Seraph"
+m_KeyNames[2][22222] = "P1 Tibetan Mask (start)"
+m_KeyNames[2][22357] = "P1 Tibetan Mask (underwater)"
+m_KeyNames[2][22342] = "Q1 Gong Hammer (easter egg)"
+m_KeyNames[2][23315] = "K2 Gong Hammer"
+m_KeyNames[2][23379] = "P1 Tibetan Mask"
+m_KeyNames[2][23503] = "Q2 Talion"
+m_KeyNames[2][24427] = "K2 Gold Key"
+m_KeyNames[2][24582] = "K3 Silver Key"
+m_KeyNames[2][24436] = "K4 Main Chamber Key"
+m_KeyNames[2][24387] = "P1 The Dragon Seal"
+m_KeyNames[2][25443] = "P1 Mystic Plaque (alt ending)"
+m_KeyNames[2][25232] = "P1 Mystic Plaque (west)"
+m_KeyNames[2][25160] = "P3 Mystic Plaque (east)"
+m_KeyNames[2][26145] = "P1 Mystic Plaque"
+
+-- TR3
+m_KeyNames[3] = {}
+m_KeyNames[3][10590] = "K4 Indra Key"
+m_KeyNames[3][11723] = "K1 Key of Ganesha (current pool)"
+m_KeyNames[3][11641] = "K1 Key of Ganesha (flipmap pool)"
+m_KeyNames[3][11539] = "K1 Key of Ganesha (mudslide)"
+m_KeyNames[3][11708] = "K1 Key of Ganesha (Randy/Rory)"
+m_KeyNames[3][11692] = "K1 Key of Ganesha (spike ceiling)"
+m_KeyNames[3][11636] = "P1 Scimitar (east)"
+m_KeyNames[3][11648] = "P2 Scimitar (west)"
+m_KeyNames[3][12425] = "K1 Gate Key (monkey pit)"
+m_KeyNames[3][12258] = "K1 Gate Key (snake pit)"
+m_KeyNames[3][14300] = "K1 Smuggler's Key"
+m_KeyNames[3][14447] = "P1 Serpent Stone (above pool)"
+m_KeyNames[3][14440] = "P1 Serpent Stone (treetops)"
+m_KeyNames[3][14252] = "P1 Serpent Stone (waterfall)"
+m_KeyNames[3][15364] = "K1 Commander Bishop's Key"
+m_KeyNames[3][15278] = "K2 Lt. Tuckerman's Key"
+m_KeyNames[3][18524] = "K1 Flue Room Key"
+m_KeyNames[3][18161] = "K2 Cathedral Key"
+m_KeyNames[3][19279] = "K1 Maintenance Key"
+m_KeyNames[3][19362] = "K2 Solomon's Key (door puzzle)"
+m_KeyNames[3][19239] = "K3 Solomon's Key (drill shaft)"
+m_KeyNames[3][19343] = "P1 Old Coin"
+m_KeyNames[3][19302] = "P2 Ticket"
+m_KeyNames[3][19465] = "P3 Hammer"
+m_KeyNames[3][19448] = "P4 Ornate Star"
+m_KeyNames[3][20447] = "K1 Boiler Room Key"
+m_KeyNames[3][20240] = "P1 Embalming Fluid"
+m_KeyNames[3][22578] = "K1 Generator Access Card"
+m_KeyNames[3][22359] = "K2 Detonator Key"
+m_KeyNames[3][22419] = "K2 Detonator Key (unused)"
+m_KeyNames[3][23260] = "K1 Keycard Type A"
+m_KeyNames[3][23490] = "K2 Keycard Type B (satellite dish tower)"
+m_KeyNames[3][23454] = "K2 Keycard Type B (turret area)"
+m_KeyNames[3][23352] = "P1 Blue Security Pass"
+m_KeyNames[3][23322] = "P2 Yellow Security Pass (end)"
+m_KeyNames[3][23537] = "P2 Yellow Security Pass (hangar access)"
+m_KeyNames[3][23463] = "P2 Yellow Security Pass (satellite dish tower)"
+m_KeyNames[3][24433] = "K1 Launch Code Card"
+m_KeyNames[3][24322] = "P2 Code CD (silo)"
+m_KeyNames[3][24253] = "P3 Code CD (watchtower)"
+m_KeyNames[3][24434] = "P4 Hangar Access Pass"
+m_KeyNames[3][25526] = "K1 Hut Key"
+m_KeyNames[3][25374] = "P1 Crowbar (gate control)"
+m_KeyNames[3][25456] = "P1 Crowbar (regular)"
+m_KeyNames[3][25371] = "P1 Crowbar (tower)"
+m_KeyNames[3][25446] = "P2 Gate Control Key"
+m_KeyNames[3][26679] = "P1 Crowbar"
+m_KeyNames[3][26444] = "P2 Lead Acid Battery"
+m_KeyNames[3][26509] = "P3 Winch Starter"
+m_KeyNames[3][27686] = "K1 Uli Key (end)"
+m_KeyNames[3][27269] = "K1 Uli Key (start)"
+m_KeyNames[3][27421] = "P1 Oceanic Mask (earth)"
+m_KeyNames[3][27449] = "P1 Oceanic Mask (fire)"
+m_KeyNames[3][27395] = "P1 Oceanic Mask (water)"
+m_KeyNames[3][27368] = "P1 Oceanic Mask (wind)"
+m_KeyNames[3][29220] = "K1 Vault Key"
+
+function select_key_item(id)
+ m_SelectedKeyItem = id
+ if m_FilterEnabled then
+ select_zones()
+ update_filter()
+ end
+end
+
+function select_quick_view(range, return_paths)
+ m_SelectedRange = range
+ m_UseReturnPaths = return_paths
+
+ select_zones()
+ if m_FilterEnabled then
+ update_filter()
+ end
+end
+
+function select_zones()
+ if not m_FilterEnabled or m_SelectedKeyItem == nil then
+ return
+ end
+
+ local matches = 0
+ for _, zone in pairs(m_KeyZones[m_SelectedKeyItem]) do
+ local wp = trview.route.waypoints[zone.low]
+ zone.selected = wp.randomizer_settings.Range == m_Ranges[m_SelectedRange]
+ and wp.randomizer_settings.RequiresReturnPath == m_UseReturnPaths
+ if zone.selected then
+ matches = matches + 1
+ end
+ end
+
+ if matches == 0 then
+ for _, zone in pairs(m_KeyZones[m_SelectedKeyItem]) do
+ zone.selected = true
+ break
+ end
+ end
+end
+
+function select_zone(zone)
+ for _, z in pairs(m_KeyZones[m_SelectedKeyItem]) do
+ z.selected = z == zone
+ if z.selected then
+ local wp = trview.route.waypoints[zone.low]
+ for range_id, range_desc in pairs(m_Ranges) do
+ if range_desc == wp.randomizer_settings.Range then
+ m_SelectedRange = range_id
+ end
+ end
+ m_UseReturnPaths = wp.randomizer_settings.RequiresReturnPath
+ end
+ end
+
+ if m_FilterEnabled then
+ update_filter()
+ end
+end
+
+function show_wp_room(idx, low_idx)
+ local wp = trview.route.waypoints[idx]
+ local low_wp = trview.route.waypoints[low_idx]
+ if (m_ValidatedOnly and not wp.randomizer_settings.Validated)
+ or (wp.randomizer_settings.RoomType == "ReturnPath" and not low_wp.randomizer_settings.RequiresReturnPath) then
+ return
+ end
+
+ local room = trview.level.rooms[wp.room_number + 1]
+ if room ~= nil then
+ room.visible = true
+ end
+end
+
+function update_filter()
+ if trview.level == nil then return end
+
+ for _, r in pairs(trview.level.rooms) do
+ r.visible = not m_FilterEnabled
+ end
+
+ if not m_FilterEnabled or m_SelectedKeyItem == nil then
+ return
+ end
+
+ for _, zone in pairs(m_KeyZones[m_SelectedKeyItem]) do
+ if zone.selected then
+ local high = zone.high
+ if high == -1 then
+ -- Zone extends to EOL
+ high = #trview.route.waypoints
+ else
+ local wp = trview.route.waypoints[high]
+ local exc_room = wp.room_number
+ while wp.room_number == exc_room and high > 0 do
+ high = high - 1
+ wp = trview.route.waypoints[high]
+ end
+ end
+
+ for i = zone.low, high, 1 do
+ show_wp_room(i, zone.low)
+ end
+ end
+ end
+end
+
+function show_unzoned_rooms()
+ if trview.level == nil then return end
+
+ for _, r in pairs(trview.level.rooms) do
+ r.visible = true
+ end
+
+ for _, wp in pairs(trview.route.waypoints) do
+ local room = trview.level.rooms[wp.room_number + 1]
+ if room ~= nil then
+ room.visible = false
+ end
+ end
+end
+
+function update_key_items()
+ if trview.level == nil or trview.level.version > 3 then
+ return
+ end
+
+ m_KeyZones = {}
+
+ for _, wp in pairs(trview.route.waypoints) do
+ for id in string.gmatch(wp.randomizer_settings.KeyItemsLow, '([^,]+)') do
+ local key_id = tonumber(id)
+ m_KeyZones[key_id] = {}
+
+ for _, range in pairs(m_Ranges) do
+ for paths, _ in pairs(m_ReturnPaths) do
+ build_key_zones(key_id, range, paths)
+ end
+ end
+ end
+ end
+end
+
+function ordered_key_items()
+ local keys = {}
+ for k in pairs(m_KeyZones) do
+ keys[#keys+1] = k
+ end
+
+ table.sort(keys, function(a,b)
+ return string.lower(get_key_name(a)) < string.lower(get_key_name(b))
+ end)
+
+ local i = 0
+ return function()
+ i = i + 1
+ if keys[i] then
+ return keys[i], m_KeyZones[keys[i]]
+ end
+ end
+end
+
+function build_key_zones(key_id, range, paths)
+ local zone = {}
+ for idx, wp in pairs(trview.route.waypoints) do
+ if test_waypoint(wp, LO_MODE, key_id, range, paths) then
+ zone = {}
+ zone.low = idx
+ zone.high = -1
+ zone.selected = false
+ table.insert(m_KeyZones[key_id], zone)
+ end
+
+ if test_waypoint(wp, HI_MODE, key_id, range, paths) then
+ zone.high = idx
+ end
+ end
+end
+
+function test_waypoint(wp, mode, key_id, range, paths)
+ local key_ids = nil
+ if mode == LO_MODE then
+ key_ids = wp.randomizer_settings.KeyItemsLow
+ else
+ key_ids = wp.randomizer_settings.KeyItemsHigh
+ end
+
+ if not string.find(key_ids, tostring(key_id)) then
+ return false
+ end
+
+ if wp.randomizer_settings.Range ~= range then
+ return false
+ end
+
+ return (wp.randomizer_settings.RequiresReturnPath and paths)
+ or (not wp.randomizer_settings.RequiresReturnPath and not paths)
+end
+
+function get_quick_label(range_id, return_path_id)
+ return m_Ranges[range_id] .. "/" .. m_ReturnPaths[return_path_id]
+end
+
+function get_key_name(id)
+ if m_KeyNames[trview.level.version][id] ~= nil then
+ return m_KeyNames[trview.level.version][id]
+ end
+ return "Unknown"
+end
+
+function get_high_wp_name(zone)
+ if zone.high < 0 then
+ return "N/A"
+ end
+ return tostring(zone.high - 1)
+end
+
+function refresh()
+ if m_CurrentLevel ~= trview.level.filename then
+ m_FilterEnabled = false
+ m_SelectedKeyItem = nil
+ update_key_items()
+ m_CurrentLevel = trview.level.filename
+ end
+end
+
+function render_ui()
+ if trview.level == nil or trview.level.version > 3 then
+ return
+ end
+
+ refresh()
+
+ if (ImGui.Begin { name = "Key Item Zones", flags = ImGui.WindowFlags.AlwaysAutoResize }) then
+ local filter_changed = false
+ filter_changed, m_FilterEnabled = ImGui.Checkbox({ label = "Show zoning", checked = m_FilterEnabled })
+
+ local valid_changed = false
+ ImGui.SameLine()
+ valid_changed, m_ValidatedOnly = ImGui.Checkbox({ label = "Validated", checked = m_ValidatedOnly })
+
+ ImGui.SameLine()
+ if ImGui.Button({ label = "Unzoned" }) then
+ show_unzoned_rooms()
+ end
+
+ ImGui.SameLine()
+ if ImGui.Button({ label = "Refresh" }) then
+ update_key_items()
+ end
+
+ if (filter_changed or valid_changed) then
+ select_zones()
+ update_filter()
+ end
+
+ if ImGui.BeginCombo({ label = "Quick View", preview_value = get_quick_label(m_SelectedRange, m_UseReturnPaths) }) then
+ for range_id, _ in pairs(m_Ranges) do
+ for rp_id, _ in pairs(m_ReturnPaths) do
+ if (ImGui.Selectable(
+ {
+ label = get_quick_label(range_id, rp_id),
+ selected = range_id == m_SelectedRange and rp_id == m_UseReturnPaths,
+ flags = ImGui.SelectableFlags.SelectOnNav
+ })) then
+ select_quick_view(range_id, rp_id)
+ end
+ end
+ end
+ ImGui.EndCombo()
+ end
+
+ if ImGui.BeginTable({ id = "Key Items", column = 2 }) then
+ ImGui.TableSetupColumn({ label = "Key Item" })
+ ImGui.TableSetupColumn({ label = "Description" })
+ ImGui.TableSetupScrollFreeze({ cols = 1, rows = 1 })
+ ImGui.TableHeadersRow()
+
+ for id, _ in ordered_key_items() do
+ ImGui.TableNextColumn()
+ if (ImGui.Selectable(
+ {
+ label = tostring(id),
+ selected = id == m_SelectedKeyItem,
+ flags = ImGui.SelectableFlags.SpanAllColumns | ImGui.SelectableFlags.SelectOnNav
+ })) then
+ select_key_item(id)
+ end
+ ImGui.TableNextColumn()
+ ImGui.Text({text = get_key_name(id)})
+
+ end
+ ImGui.EndTable()
+ end
+
+ if m_SelectedKeyItem ~= nil and ImGui.BeginTable({ id = "Zones", column = 4 }) then
+ ImGui.TableSetupColumn({ label = "Low WP" })
+ ImGui.TableSetupColumn({ label = "High WP" })
+ ImGui.TableSetupColumn({ label = "Range" })
+ ImGui.TableSetupColumn({ label = "Return Paths" })
+ ImGui.TableSetupScrollFreeze({ cols = 1, rows = 1 })
+ ImGui.TableHeadersRow()
+
+ for _, zone in pairs(m_KeyZones[m_SelectedKeyItem]) do
+ local wp = trview.route.waypoints[zone.low]
+ ImGui.TableNextColumn()
+ if (ImGui.Selectable(
+ {
+ label = tostring(zone.low - 1),
+ selected = zone.selected,
+ flags = ImGui.SelectableFlags.SpanAllColumns | ImGui.SelectableFlags.SelectOnNav
+ })) then
+ select_zone(zone)
+ end
+ ImGui.TableNextColumn()
+ ImGui.Text({ text = get_high_wp_name(zone) })
+ ImGui.TableNextColumn()
+ ImGui.Text({ text = tostring(wp.randomizer_settings.Range) })
+ ImGui.TableNextColumn()
+ ImGui.Text({ text = m_ReturnPaths[wp.randomizer_settings.RequiresReturnPath] })
+ end
+ ImGui.EndTable()
+ end
+ end
+ ImGui.End()
+end
+
+update_key_items()
+print("Rando key item zoning loaded")
diff --git a/TRRandomizerCore/Resources/TR1/Locations/invalid_item_locations.json b/TRRandomizerCore/Resources/TR1/Locations/invalid_item_locations.json
index e2fe5abb0..85fc5d213 100644
--- a/TRRandomizerCore/Resources/TR1/Locations/invalid_item_locations.json
+++ b/TRRandomizerCore/Resources/TR1/Locations/invalid_item_locations.json
@@ -223,6 +223,19 @@
"Z": 10752,
"Room": 61
},
+ {
+ "X": 39424,
+ "Y": -2048,
+ "Z": 75264,
+ "Room": 1,
+ "TargetType": 1
+ },
+ {
+ "X": 43520,
+ "Y": 384,
+ "Z": 68096,
+ "Room": 24
+ },
{
"X": 33280,
"Y": -5120,
@@ -828,20 +841,26 @@
"Y": 19968,
"Z": 42496,
"Room": 19
+ },
+ {
+ "X": 57856,
+ "Y": 19200,
+ "Z": 40448,
+ "Room": 25
}
],
"LEVEL5.PHD": [
{
- "X": 75264,
- "Y": -4480,
- "Z": 51712,
- "Room": 10
+ "X": 59904,
+ "Y": -4608,
+ "Z": 65024,
+ "Room": 42
},
{
"X": 59904,
"Y": -4608,
- "Z": 66048,
- "Room": 42
+ "Z": 64000,
+ "Room": 41
}
],
"LEVEL6.PHD": [
@@ -1032,6 +1051,12 @@
"Y": -5376,
"Z": 59904,
"Room": 24
+ },
+ {
+ "X": 37376,
+ "Y": -5376,
+ "Z": 48640,
+ "Room": 8
}
],
"LEVEL7B.PHD": [
@@ -1052,6 +1077,27 @@
"Y": -2688,
"Z": 58880,
"Room": 78
+ },
+ {
+ "X": 40448,
+ "Y": -3840,
+ "Z": 67072,
+ "Room": 75,
+ "TargetType": 1
+ },
+ {
+ "X": 40448,
+ "Y": -3840,
+ "Z": 68096,
+ "Room": 75,
+ "TargetType": 1
+ },
+ {
+ "X": 40448,
+ "Y": -3840,
+ "Z": 69120,
+ "Room": 75,
+ "TargetType": 1
}
],
"LEVEL8A.PHD": [
@@ -1238,6 +1284,12 @@
"Y": -4352,
"Z": 35328,
"Room": 41
+ },
+ {
+ "X": 57856,
+ "Y": -256,
+ "Z": 28160,
+ "Room": 42
}
],
"LEVEL8B.PHD": [
@@ -1248,6 +1300,48 @@
"Room": 14,
"InvalidatesRoom": true
},
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 59904,
+ "Room": 32,
+ "TargetType": 1
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 58880,
+ "Room": 32,
+ "TargetType": 1
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 32,
+ "TargetType": 1
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 56832,
+ "Room": 32,
+ "TargetType": 1
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 55808,
+ "Room": 32,
+ "TargetType": 1
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 54784,
+ "Room": 32,
+ "TargetType": 1
+ },
{
"X": 44544,
"Y": -4480,
@@ -1552,6 +1646,20 @@
"Z": 28160,
"Room": 33
},
+ {
+ "X": 53760,
+ "Y": -5632,
+ "Z": 25088,
+ "Room": 3,
+ "TargetType": 1
+ },
+ {
+ "X": 53760,
+ "Y": -7168,
+ "Z": 24064,
+ "Room": 3,
+ "TargetType": 1
+ },
{
"X": 56832,
"Y": -9984,
@@ -1642,6 +1750,24 @@
"Z": 98816,
"Room": 60
},
+ {
+ "X": 69120,
+ "Y": 3328,
+ "Z": 96768,
+ "Room": 60
+ },
+ {
+ "X": 69120,
+ "Y": 3328,
+ "Z": 98816,
+ "Room": 60
+ },
+ {
+ "X": 72192,
+ "Y": 3328,
+ "Z": 97792,
+ "Room": 59
+ },
{
"X": 57856,
"Y": -11264,
@@ -1731,6 +1857,12 @@
"Y": -3840,
"Z": 44544,
"Room": 13
+ },
+ {
+ "X": 49664,
+ "Y": -3840,
+ "Z": 44544,
+ "Room": 10
}
],
"LEVEL10B.PHD": [
diff --git a/TRRandomizerCore/Resources/TR1/Locations/routes.json b/TRRandomizerCore/Resources/TR1/Locations/routes.json
index 7a73a41bf..795548ddc 100644
--- a/TRRandomizerCore/Resources/TR1/Locations/routes.json
+++ b/TRRandomizerCore/Resources/TR1/Locations/routes.json
@@ -1,2 +1,8105 @@
{
+ "LEVEL1.PHD": [
+ {
+ "X": 75264,
+ "Y": 3072,
+ "Z": 6656,
+ "Room": 0
+ },
+ {
+ "X": 75264,
+ "Y": 3072,
+ "Z": 28160,
+ "Room": 6
+ },
+ {
+ "X": 81408,
+ "Y": 2432,
+ "Z": 32256,
+ "Room": 4
+ },
+ {
+ "X": 86528,
+ "Y": 3072,
+ "Z": 32256,
+ "Room": 5
+ },
+ {
+ "X": 89600,
+ "Y": 1024,
+ "Z": 38400,
+ "Room": 36
+ },
+ {
+ "X": 78336,
+ "Y": 128,
+ "Z": 37376,
+ "Room": 2
+ },
+ {
+ "X": 74240,
+ "Y": 0,
+ "Z": 46592,
+ "Room": 3
+ },
+ {
+ "X": 69120,
+ "Y": -2560,
+ "Z": 51712,
+ "Room": 28
+ },
+ {
+ "X": 78336,
+ "Y": 0,
+ "Z": 58880,
+ "Room": 1
+ },
+ {
+ "X": 72192,
+ "Y": 128,
+ "Z": 64000,
+ "Room": 7
+ },
+ {
+ "X": 66048,
+ "Y": 1664,
+ "Z": 62976,
+ "Room": 8
+ },
+ {
+ "X": 53760,
+ "Y": 7424,
+ "Z": 57856,
+ "Room": 9
+ },
+ {
+ "X": 43520,
+ "Y": 7168,
+ "Z": 56832,
+ "Room": 10
+ },
+ {
+ "X": 39424,
+ "Y": 4352,
+ "Z": 50688,
+ "Room": 29
+ },
+ {
+ "X": 34304,
+ "Y": 4352,
+ "Z": 48640,
+ "Room": 12
+ },
+ {
+ "X": 30208,
+ "Y": 4352,
+ "Z": 48640,
+ "Room": 13
+ },
+ {
+ "X": 29184,
+ "Y": 4608,
+ "Z": 57856,
+ "Room": 14
+ },
+ {
+ "X": 20992,
+ "Y": 6656,
+ "Z": 58880,
+ "Room": 16
+ },
+ {
+ "X": 19968,
+ "Y": 4352,
+ "Z": 46592,
+ "Room": 15
+ },
+ {
+ "X": 11776,
+ "Y": 3840,
+ "Z": 57856,
+ "Room": 21
+ },
+ {
+ "X": 7680,
+ "Y": 3712,
+ "Z": 64000,
+ "Room": 20
+ },
+ {
+ "X": 7680,
+ "Y": 7040,
+ "Z": 67072,
+ "Room": 19
+ },
+ {
+ "X": 11776,
+ "Y": 6656,
+ "Z": 59904,
+ "Room": 18
+ },
+ {
+ "X": 15872,
+ "Y": 6656,
+ "Z": 58880,
+ "Room": 17
+ },
+ {
+ "X": 8704,
+ "Y": 4096,
+ "Z": 70144,
+ "Room": 22
+ },
+ {
+ "X": 8704,
+ "Y": 3840,
+ "Z": 73216,
+ "Room": 23
+ },
+ {
+ "X": 8704,
+ "Y": 5632,
+ "Z": 80384,
+ "Room": 25
+ },
+ {
+ "X": 8704,
+ "Y": 5888,
+ "Z": 82432,
+ "Room": 26
+ },
+ {
+ "X": 8704,
+ "Y": 7168,
+ "Z": 87552,
+ "Room": 27
+ },
+ {
+ "X": 14848,
+ "Y": 7168,
+ "Z": 95744,
+ "Room": 37
+ },
+ {
+ "X": 27136,
+ "Y": 6400,
+ "Z": 89600,
+ "Room": 31
+ },
+ {
+ "X": 34304,
+ "Y": 4864,
+ "Z": 90624,
+ "Room": 34
+ },
+ {
+ "X": 34304,
+ "Y": 2048,
+ "Z": 76288,
+ "Room": 35
+ },
+ {
+ "X": 36352,
+ "Y": 4096,
+ "Z": 76288,
+ "Room": 32
+ },
+ {
+ "X": 39424,
+ "Y": 4352,
+ "Z": 62976,
+ "Room": 30
+ },
+ {
+ "X": 47616,
+ "Y": 4352,
+ "Z": 62976,
+ "Room": 33
+ },
+ {
+ "X": 43520,
+ "Y": 7168,
+ "Z": 66048,
+ "Room": 24
+ },
+ {
+ "X": 43520,
+ "Y": 7168,
+ "Z": 82432,
+ "Room": 11
+ }
+ ],
+ "LEVEL2.PHD": [
+ {
+ "X": 78592,
+ "Y": -1024,
+ "Z": 13824,
+ "Room": 90,
+ "KeyItemsLow": "11183"
+ },
+ {
+ "X": 78336,
+ "Y": -1024,
+ "Z": 13824,
+ "Room": 90,
+ "KeyItemsLow": "11183",
+ "Range": "Medium"
+ },
+ {
+ "X": 78080,
+ "Y": -1024,
+ "Z": 13824,
+ "Room": 90,
+ "KeyItemsLow": "11183,11143",
+ "Range": "Large"
+ },
+ {
+ "X": 78080,
+ "Y": -1024,
+ "Z": 14080,
+ "Room": 90,
+ "KeyItemsLow": "11183",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 78336,
+ "Y": -1024,
+ "Z": 14080,
+ "Room": 90,
+ "KeyItemsLow": "11183",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 78592,
+ "Y": -1024,
+ "Z": 14080,
+ "Room": 90,
+ "KeyItemsLow": "11183,11143",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 78336,
+ "Y": -1024,
+ "Z": 15872,
+ "Room": 13
+ },
+ {
+ "X": 81408,
+ "Y": -1280,
+ "Z": 27136,
+ "Room": 12
+ },
+ {
+ "X": 81408,
+ "Y": -768,
+ "Z": 37376,
+ "Room": 11
+ },
+ {
+ "X": 73216,
+ "Y": -384,
+ "Z": 44544,
+ "Room": 6
+ },
+ {
+ "X": 56832,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 5
+ },
+ {
+ "X": 56832,
+ "Y": 0,
+ "Z": 26112,
+ "Room": 4
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 25088,
+ "Room": 34
+ },
+ {
+ "X": 57856,
+ "Y": -512,
+ "Z": 15872,
+ "Room": 7
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 17920,
+ "Room": 20
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 23040,
+ "Room": 15
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 27136,
+ "Room": 8
+ },
+ {
+ "X": 74240,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 31
+ },
+ {
+ "X": 75264,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 85
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 91
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 31232,
+ "Room": 93
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 33280,
+ "Room": 92
+ },
+ {
+ "X": 77312,
+ "Y": -1536,
+ "Z": 33280,
+ "Room": 33
+ },
+ {
+ "X": 74240,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 32
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 10
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 9
+ },
+ {
+ "X": 61952,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 18
+ },
+ {
+ "X": 61952,
+ "Y": 0,
+ "Z": 39424,
+ "Room": 16
+ },
+ {
+ "X": 59904,
+ "Y": -1792,
+ "Z": 39424,
+ "Room": 24
+ },
+ {
+ "X": 59904,
+ "Y": -2048,
+ "Z": 38400,
+ "Room": 25
+ },
+ {
+ "X": 59904,
+ "Y": -2048,
+ "Z": 35328,
+ "Room": 23
+ },
+ {
+ "X": 59904,
+ "Y": 1024,
+ "Z": 30208,
+ "Room": 19
+ },
+ {
+ "X": 59904,
+ "Y": -1024,
+ "Z": 30208,
+ "Room": 17
+ },
+ {
+ "X": 59904,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 35
+ },
+ {
+ "X": 60928,
+ "Y": 1024,
+ "Z": 29184,
+ "Room": 0
+ },
+ {
+ "X": 60928,
+ "Y": 1024,
+ "Z": 25088,
+ "Room": 14
+ },
+ {
+ "X": 61952,
+ "Y": -1280,
+ "Z": 20992,
+ "Room": 1
+ },
+ {
+ "X": 65024,
+ "Y": -2048,
+ "Z": 19968,
+ "Room": 2
+ },
+ {
+ "X": 70144,
+ "Y": -1024,
+ "Z": 20992,
+ "Room": 21
+ },
+ {
+ "X": 70144,
+ "Y": -768,
+ "Z": 22016,
+ "Room": 3
+ },
+ {
+ "X": 69120,
+ "Y": 2176,
+ "Z": 31232,
+ "Room": 30,
+ "KeyItemsHigh": "11183"
+ },
+ {
+ "X": 69390,
+ "Y": 2309,
+ "Z": 31239,
+ "Room": 30,
+ "KeyItemsHigh": "11183",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": 8064,
+ "Z": 30208,
+ "Room": 28
+ },
+ {
+ "X": 80384,
+ "Y": 2560,
+ "Z": 23040,
+ "Room": 26
+ },
+ {
+ "X": 78336,
+ "Y": 7936,
+ "Z": 40448,
+ "Room": 27
+ },
+ {
+ "X": 72192,
+ "Y": 5120,
+ "Z": 40448,
+ "Room": 22
+ },
+ {
+ "X": 68096,
+ "Y": 3072,
+ "Z": 40448,
+ "Room": 29
+ },
+ {
+ "X": 67072,
+ "Y": 3072,
+ "Z": 44544,
+ "Room": 88
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 28416,
+ "Room": 40,
+ "KeyItemsHigh": "11183",
+ "KeyItemsLow": "11143",
+ "Range": "Medium"
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 28160,
+ "Room": 40,
+ "KeyItemsHigh": "11183",
+ "KeyItemsLow": "11143",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 27904,
+ "Room": 40,
+ "KeyItemsHigh": "11183",
+ "Range": "Large"
+ },
+ {
+ "X": 54528,
+ "Y": 0,
+ "Z": 27904,
+ "Room": 40,
+ "KeyItemsHigh": "11183",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 28160,
+ "Room": 37
+ },
+ {
+ "X": 47616,
+ "Y": -896,
+ "Z": 32256,
+ "Room": 38
+ },
+ {
+ "X": 46592,
+ "Y": -512,
+ "Z": 24064,
+ "Room": 39
+ },
+ {
+ "X": 40448,
+ "Y": 0,
+ "Z": 28160,
+ "Room": 36
+ },
+ {
+ "X": 30208,
+ "Y": -1024,
+ "Z": 27136,
+ "Room": 46,
+ "KeyItemsLow": "11143"
+ },
+ {
+ "X": 29952,
+ "Y": -1024,
+ "Z": 27136,
+ "Room": 46,
+ "KeyItemsLow": "11143",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": -1536,
+ "Z": 27136,
+ "Room": 49
+ },
+ {
+ "X": 25088,
+ "Y": -1536,
+ "Z": 22016,
+ "Room": 47
+ },
+ {
+ "X": 27136,
+ "Y": -1536,
+ "Z": 22016,
+ "Room": 43
+ },
+ {
+ "X": 29184,
+ "Y": 256,
+ "Z": 22016,
+ "Room": 48
+ },
+ {
+ "X": 28160,
+ "Y": -3584,
+ "Z": 20992,
+ "Room": 50
+ },
+ {
+ "X": 28160,
+ "Y": -4096,
+ "Z": 18944,
+ "Room": 51
+ },
+ {
+ "X": 25088,
+ "Y": -4864,
+ "Z": 18944,
+ "Room": 52
+ },
+ {
+ "X": 27136,
+ "Y": -5632,
+ "Z": 23040,
+ "Room": 53
+ },
+ {
+ "X": 33280,
+ "Y": -6400,
+ "Z": 23040,
+ "Room": 57
+ },
+ {
+ "X": 31232,
+ "Y": -7680,
+ "Z": 18944,
+ "Room": 60
+ },
+ {
+ "X": 29184,
+ "Y": -7936,
+ "Z": 20992,
+ "Room": 58
+ },
+ {
+ "X": 29184,
+ "Y": -7936,
+ "Z": 25088,
+ "Room": 55
+ },
+ {
+ "X": 28160,
+ "Y": -5888,
+ "Z": 29184,
+ "Room": 54
+ },
+ {
+ "X": 30208,
+ "Y": -3200,
+ "Z": 29184,
+ "Room": 42
+ },
+ {
+ "X": 30208,
+ "Y": -1024,
+ "Z": 31232,
+ "Room": 45
+ },
+ {
+ "X": 28160,
+ "Y": -1280,
+ "Z": 32256,
+ "Room": 64
+ },
+ {
+ "X": 28160,
+ "Y": -1536,
+ "Z": 33280,
+ "Room": 63
+ },
+ {
+ "X": 28160,
+ "Y": 256,
+ "Z": 35328,
+ "Room": 62
+ },
+ {
+ "X": 27136,
+ "Y": -3328,
+ "Z": 36352,
+ "Room": 69
+ },
+ {
+ "X": 31232,
+ "Y": -4608,
+ "Z": 37376,
+ "Room": 65
+ },
+ {
+ "X": 31232,
+ "Y": -5632,
+ "Z": 36352,
+ "Room": 70
+ },
+ {
+ "X": 25088,
+ "Y": -5888,
+ "Z": 36352,
+ "Room": 83
+ },
+ {
+ "X": 27136,
+ "Y": -6912,
+ "Z": 39424,
+ "Room": 84
+ },
+ {
+ "X": 30208,
+ "Y": -7936,
+ "Z": 35328,
+ "Room": 67
+ },
+ {
+ "X": 29184,
+ "Y": -7936,
+ "Z": 32256,
+ "Room": 68
+ },
+ {
+ "X": 30208,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 44
+ },
+ {
+ "X": 24064,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 61
+ },
+ {
+ "X": 19968,
+ "Y": 3840,
+ "Z": 29184,
+ "Room": 77
+ },
+ {
+ "X": 15872,
+ "Y": 1024,
+ "Z": 31232,
+ "Room": 86
+ },
+ {
+ "X": 8704,
+ "Y": -1024,
+ "Z": 35328,
+ "Room": 66
+ },
+ {
+ "X": 12800,
+ "Y": -2048,
+ "Z": 37376,
+ "Room": 82
+ },
+ {
+ "X": 14848,
+ "Y": -2816,
+ "Z": 34304,
+ "Room": 81
+ },
+ {
+ "X": 13824,
+ "Y": -1024,
+ "Z": 32256,
+ "Room": 73
+ },
+ {
+ "X": 11776,
+ "Y": -1024,
+ "Z": 25088,
+ "Room": 74
+ },
+ {
+ "X": 9728,
+ "Y": -1536,
+ "Z": 25088,
+ "Room": 80
+ },
+ {
+ "X": 11776,
+ "Y": -2816,
+ "Z": 22016,
+ "Room": 79
+ },
+ {
+ "X": 11776,
+ "Y": -3072,
+ "Z": 16896,
+ "Room": 89
+ },
+ {
+ "X": 13824,
+ "Y": -2816,
+ "Z": 25088,
+ "Room": 76
+ },
+ {
+ "X": 13824,
+ "Y": -2816,
+ "Z": 27136,
+ "Room": 72
+ },
+ {
+ "X": 11776,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 71
+ },
+ {
+ "X": 10752,
+ "Y": -1024,
+ "Z": 29440,
+ "Room": 87,
+ "KeyItemsHigh": "11143"
+ },
+ {
+ "X": 10752,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 87,
+ "KeyItemsHigh": "11143",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 10752,
+ "Y": -1024,
+ "Z": 28928,
+ "Room": 87,
+ "KeyItemsHigh": "11143",
+ "Range": "Medium"
+ },
+ {
+ "X": 10496,
+ "Y": -1024,
+ "Z": 28928,
+ "Room": 87,
+ "KeyItemsHigh": "11143",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 10496,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 87,
+ "KeyItemsHigh": "11143",
+ "Range": "Large"
+ },
+ {
+ "X": 10496,
+ "Y": -1024,
+ "Z": 29440,
+ "Room": 87,
+ "KeyItemsHigh": "11143",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "LEVEL3A.PHD": [
+ {
+ "X": 27136,
+ "Y": -256,
+ "Z": 77312,
+ "Room": 0,
+ "KeyItemsLow": "12177,12241,12242",
+ "Range": "Medium"
+ },
+ {
+ "X": 26880,
+ "Y": -256,
+ "Z": 77312,
+ "Room": 0,
+ "KeyItemsLow": "12177,12241,12242",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26880,
+ "Y": -256,
+ "Z": 77056,
+ "Room": 0,
+ "KeyItemsLow": "12177,12241,12242",
+ "Range": "Large"
+ },
+ {
+ "X": 27136,
+ "Y": -256,
+ "Z": 77056,
+ "Room": 0,
+ "KeyItemsLow": "12177,12241,12242",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": -256,
+ "Z": 76288,
+ "Room": 1
+ },
+ {
+ "X": 33280,
+ "Y": 0,
+ "Z": 72192,
+ "Room": 17
+ },
+ {
+ "X": 33280,
+ "Y": 768,
+ "Z": 70144,
+ "Room": 24
+ },
+ {
+ "X": 39424,
+ "Y": 6912,
+ "Z": 65024,
+ "Room": 23
+ },
+ {
+ "X": 37376,
+ "Y": 4864,
+ "Z": 58880,
+ "Room": 29
+ },
+ {
+ "X": 37376,
+ "Y": 4864,
+ "Z": 51712,
+ "Room": 27
+ },
+ {
+ "X": 31232,
+ "Y": 6016,
+ "Z": 47616,
+ "Room": 16
+ },
+ {
+ "X": 30208,
+ "Y": 6912,
+ "Z": 40448,
+ "Room": 28
+ },
+ {
+ "X": 37376,
+ "Y": 2304,
+ "Z": 43520,
+ "Room": 30,
+ "KeyItemsLow": "12177,12241,12242"
+ },
+ {
+ "X": 37632,
+ "Y": 2304,
+ "Z": 43520,
+ "Room": 30,
+ "KeyItemsLow": "12177,12241,12242",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": 3584,
+ "Z": 38400,
+ "Room": 51
+ },
+ {
+ "X": 41472,
+ "Y": 3584,
+ "Z": 28160,
+ "Room": 56
+ },
+ {
+ "X": 35328,
+ "Y": -2560,
+ "Z": 28160,
+ "Room": 34,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": -2560,
+ "Z": 29184,
+ "Room": 6,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": 3584,
+ "Z": 28160,
+ "Room": 57
+ },
+ {
+ "X": 30208,
+ "Y": 3328,
+ "Z": 22016,
+ "Room": 36
+ },
+ {
+ "X": 27136,
+ "Y": 2560,
+ "Z": 18944,
+ "Room": 37
+ },
+ {
+ "X": 29184,
+ "Y": 1920,
+ "Z": 8704,
+ "Room": 35
+ },
+ {
+ "X": 37376,
+ "Y": 3584,
+ "Z": 8704,
+ "Room": 31
+ },
+ {
+ "X": 35328,
+ "Y": -1920,
+ "Z": 5632,
+ "Room": 32,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": -3200,
+ "Z": 13824,
+ "Room": 52,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": 3584,
+ "Z": 11776,
+ "Room": 58
+ },
+ {
+ "X": 42496,
+ "Y": 3584,
+ "Z": 11776,
+ "Room": 60
+ },
+ {
+ "X": 31232,
+ "Y": 2304,
+ "Z": 13824,
+ "Room": 42
+ },
+ {
+ "X": 29184,
+ "Y": 1280,
+ "Z": 15872,
+ "Room": 41
+ },
+ {
+ "X": 29184,
+ "Y": 3328,
+ "Z": 4608,
+ "Room": 40
+ },
+ {
+ "X": 32256,
+ "Y": 5888,
+ "Z": 3584,
+ "Room": 38
+ },
+ {
+ "X": 42496,
+ "Y": 3584,
+ "Z": 7680,
+ "Room": 59
+ },
+ {
+ "X": 40448,
+ "Y": -512,
+ "Z": 2560,
+ "Room": 31
+ },
+ {
+ "X": 40448,
+ "Y": -512,
+ "Z": 1536,
+ "Room": 89
+ },
+ {
+ "X": 45568,
+ "Y": -3840,
+ "Z": 3584,
+ "Room": 53,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -5120,
+ "Z": 4608,
+ "Room": 39,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 3584,
+ "Z": 6656,
+ "Room": 61
+ },
+ {
+ "X": 61952,
+ "Y": 3584,
+ "Z": 7680,
+ "Room": 62
+ },
+ {
+ "X": 68096,
+ "Y": 1792,
+ "Z": 11776,
+ "Room": 63
+ },
+ {
+ "X": 70144,
+ "Y": 2048,
+ "Z": 11776,
+ "Room": 44
+ },
+ {
+ "X": 76288,
+ "Y": 6400,
+ "Z": 9728,
+ "Room": 47
+ },
+ {
+ "X": 80384,
+ "Y": 7936,
+ "Z": 9728,
+ "Room": 48
+ },
+ {
+ "X": 64000,
+ "Y": -1920,
+ "Z": 5632,
+ "Room": 65
+ },
+ {
+ "X": 66048,
+ "Y": -2560,
+ "Z": 11776,
+ "Room": 66
+ },
+ {
+ "X": 59904,
+ "Y": 3584,
+ "Z": 11776,
+ "Room": 33
+ },
+ {
+ "X": 49664,
+ "Y": -3328,
+ "Z": 17920,
+ "Room": 54,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": -3840,
+ "Z": 20992,
+ "Room": 55,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -3584,
+ "Z": 19968,
+ "Room": 64,
+ "Validated": false
+ },
+ {
+ "X": 60928,
+ "Y": 1024,
+ "Z": 22016,
+ "Room": 43
+ },
+ {
+ "X": 50688,
+ "Y": 2048,
+ "Z": 22016,
+ "Room": 57
+ },
+ {
+ "X": 35328,
+ "Y": -512,
+ "Z": 19968,
+ "Room": 58
+ },
+ {
+ "X": 38400,
+ "Y": -256,
+ "Z": 80384,
+ "Room": 3,
+ "KeyItemsHigh": "12177,12241,12242"
+ },
+ {
+ "X": 38144,
+ "Y": -256,
+ "Z": 80384,
+ "Room": 3,
+ "KeyItemsHigh": "12177,12241,12242",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": -2176,
+ "Z": 85504,
+ "Room": 7
+ },
+ {
+ "X": 28160,
+ "Y": -2304,
+ "Z": 87552,
+ "Room": 8
+ },
+ {
+ "X": 37376,
+ "Y": -384,
+ "Z": 96768,
+ "Room": 9
+ },
+ {
+ "X": 42496,
+ "Y": -768,
+ "Z": 88576,
+ "Room": 11
+ },
+ {
+ "X": 40448,
+ "Y": 1536,
+ "Z": 87552,
+ "Room": 46
+ },
+ {
+ "X": 44544,
+ "Y": 1536,
+ "Z": 87552,
+ "Room": 12
+ },
+ {
+ "X": 47616,
+ "Y": 2816,
+ "Z": 87552,
+ "Room": 13
+ },
+ {
+ "X": 51712,
+ "Y": 3840,
+ "Z": 87552,
+ "Room": 15
+ },
+ {
+ "X": 53760,
+ "Y": 3584,
+ "Z": 80384,
+ "Room": 18
+ },
+ {
+ "X": 52736,
+ "Y": 3584,
+ "Z": 79360,
+ "Room": 19
+ },
+ {
+ "X": 46592,
+ "Y": 3584,
+ "Z": 80384,
+ "Room": 21
+ },
+ {
+ "X": 44544,
+ "Y": 2816,
+ "Z": 82432,
+ "Room": 22
+ },
+ {
+ "X": 43520,
+ "Y": 1280,
+ "Z": 79360,
+ "Room": 20
+ },
+ {
+ "X": 39424,
+ "Y": -3072,
+ "Z": 91648,
+ "Room": 5
+ },
+ {
+ "X": 35328,
+ "Y": 1664,
+ "Z": 90624,
+ "Room": 45
+ },
+ {
+ "X": 42752,
+ "Y": -2304,
+ "Z": 75264,
+ "Room": 14,
+ "KeyItemsHigh": "12177,12241,12242",
+ "Range": "Medium"
+ },
+ {
+ "X": 42752,
+ "Y": -2304,
+ "Z": 75008,
+ "Room": 14,
+ "KeyItemsHigh": "12177,12241,12242",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": -2304,
+ "Z": 75008,
+ "Room": 14,
+ "KeyItemsHigh": "12177,12241,12242",
+ "Range": "Large"
+ },
+ {
+ "X": 42240,
+ "Y": -2304,
+ "Z": 75008,
+ "Room": 14,
+ "KeyItemsHigh": "12177,12241,12242",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": 4864,
+ "Z": 71168,
+ "Room": 49
+ },
+ {
+ "X": 39424,
+ "Y": 5760,
+ "Z": 75264,
+ "Room": 50
+ }
+ ],
+ "LEVEL3B.PHD": [
+ {
+ "X": 46592,
+ "Y": 6272,
+ "Z": 64000,
+ "Room": 19
+ },
+ {
+ "X": 55808,
+ "Y": 6656,
+ "Z": 61952,
+ "Room": 20
+ },
+ {
+ "X": 55808,
+ "Y": 6656,
+ "Z": 56832,
+ "Room": 21
+ },
+ {
+ "X": 55808,
+ "Y": 6656,
+ "Z": 51712,
+ "Room": 24
+ },
+ {
+ "X": 60928,
+ "Y": 6656,
+ "Z": 51712,
+ "Room": 25
+ },
+ {
+ "X": 62976,
+ "Y": 6656,
+ "Z": 51712,
+ "Room": 43
+ },
+ {
+ "X": 68096,
+ "Y": 8704,
+ "Z": 49664,
+ "Room": 27
+ },
+ {
+ "X": 68096,
+ "Y": 8704,
+ "Z": 52736,
+ "Room": 29
+ },
+ {
+ "X": 74240,
+ "Y": 7680,
+ "Z": 52736,
+ "Room": 30
+ },
+ {
+ "X": 72192,
+ "Y": 5376,
+ "Z": 51712,
+ "Room": 26
+ },
+ {
+ "X": 71168,
+ "Y": 2304,
+ "Z": 52736,
+ "Room": 45
+ },
+ {
+ "X": 69120,
+ "Y": 768,
+ "Z": 52736,
+ "Room": 48
+ },
+ {
+ "X": 68096,
+ "Y": 768,
+ "Z": 47616,
+ "Room": 50
+ },
+ {
+ "X": 65024,
+ "Y": 2560,
+ "Z": 47616,
+ "Room": 51
+ },
+ {
+ "X": 64000,
+ "Y": 5888,
+ "Z": 46592,
+ "Room": 49
+ },
+ {
+ "X": 66048,
+ "Y": 6656,
+ "Z": 46592,
+ "Room": 52
+ },
+ {
+ "X": 67072,
+ "Y": 5632,
+ "Z": 44544,
+ "Room": 53
+ },
+ {
+ "X": 74240,
+ "Y": 6656,
+ "Z": 45568,
+ "Room": 28
+ },
+ {
+ "X": 53760,
+ "Y": 6656,
+ "Z": 51712,
+ "Room": 36
+ },
+ {
+ "X": 50688,
+ "Y": 6656,
+ "Z": 48640,
+ "Room": 37
+ },
+ {
+ "X": 55808,
+ "Y": 6656,
+ "Z": 49664,
+ "Room": 31
+ },
+ {
+ "X": 56832,
+ "Y": 6656,
+ "Z": 41472,
+ "Room": 32
+ },
+ {
+ "X": 59904,
+ "Y": 10240,
+ "Z": 39424,
+ "Room": 33
+ },
+ {
+ "X": 59904,
+ "Y": 8192,
+ "Z": 46592,
+ "Room": 34
+ },
+ {
+ "X": 55808,
+ "Y": 4096,
+ "Z": 46592,
+ "Room": 35
+ },
+ {
+ "X": 55808,
+ "Y": 6656,
+ "Z": 66048,
+ "Room": 22
+ },
+ {
+ "X": 56832,
+ "Y": 6656,
+ "Z": 72192,
+ "Room": 39
+ },
+ {
+ "X": 65024,
+ "Y": 4608,
+ "Z": 75264,
+ "Room": 7
+ },
+ {
+ "X": 64000,
+ "Y": 6400,
+ "Z": 78336,
+ "Room": 4
+ },
+ {
+ "X": 73216,
+ "Y": 4608,
+ "Z": 72192,
+ "Room": 38
+ },
+ {
+ "X": 73216,
+ "Y": 3840,
+ "Z": 62976,
+ "Room": 5
+ },
+ {
+ "X": 68096,
+ "Y": 4480,
+ "Z": 61952,
+ "Room": 23
+ },
+ {
+ "X": 43520,
+ "Y": 5632,
+ "Z": 64000,
+ "Room": 18
+ },
+ {
+ "X": 43520,
+ "Y": 8576,
+ "Z": 55808,
+ "Room": 10
+ },
+ {
+ "X": 39424,
+ "Y": 7680,
+ "Z": 56832,
+ "Room": 17
+ },
+ {
+ "X": 31232,
+ "Y": 4096,
+ "Z": 56832,
+ "Room": 6
+ },
+ {
+ "X": 40448,
+ "Y": 4864,
+ "Z": 55808,
+ "Room": 11
+ },
+ {
+ "X": 42496,
+ "Y": 4736,
+ "Z": 46592,
+ "Room": 16
+ },
+ {
+ "X": 42496,
+ "Y": 4864,
+ "Z": 40448,
+ "Room": 14
+ },
+ {
+ "X": 36352,
+ "Y": 5632,
+ "Z": 38400,
+ "Room": 8
+ },
+ {
+ "X": 35328,
+ "Y": 6912,
+ "Z": 29184,
+ "Room": 15
+ },
+ {
+ "X": 38400,
+ "Y": 0,
+ "Z": 59904,
+ "Room": 9
+ },
+ {
+ "X": 38400,
+ "Y": -128,
+ "Z": 64000,
+ "Room": 1
+ },
+ {
+ "X": 37376,
+ "Y": -256,
+ "Z": 65024,
+ "Room": 0
+ },
+ {
+ "X": 41472,
+ "Y": 1152,
+ "Z": 66048,
+ "Room": 2
+ },
+ {
+ "X": 43520,
+ "Y": 1280,
+ "Z": 60928,
+ "Room": 13
+ }
+ ],
+ "LEVEL4.PHD": [
+ {
+ "X": 17920,
+ "Y": 0,
+ "Z": 40704,
+ "Room": 55,
+ "KeyItemsLow": "14315,14290,14280,14299",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 18176,
+ "Y": 0,
+ "Z": 40704,
+ "Room": 55,
+ "KeyItemsLow": "14315,14290,14280,14299",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": 0,
+ "Z": 39424,
+ "Room": 0
+ },
+ {
+ "X": 42496,
+ "Y": -768,
+ "Z": 39424,
+ "Room": 2
+ },
+ {
+ "X": 41472,
+ "Y": -2560,
+ "Z": 36352,
+ "Room": 36
+ },
+ {
+ "X": 41472,
+ "Y": -2816,
+ "Z": 43520,
+ "Room": 36
+ },
+ {
+ "X": 37376,
+ "Y": -3328,
+ "Z": 38400,
+ "Room": 1
+ },
+ {
+ "X": 30208,
+ "Y": -3328,
+ "Z": 34304,
+ "Room": 59
+ },
+ {
+ "X": 30208,
+ "Y": -3328,
+ "Z": 33280,
+ "Room": 58
+ },
+ {
+ "X": 29184,
+ "Y": -5632,
+ "Z": 32256,
+ "Room": 56
+ },
+ {
+ "X": 30208,
+ "Y": -8448,
+ "Z": 32256,
+ "Room": 52
+ },
+ {
+ "X": 24064,
+ "Y": -3072,
+ "Z": 38400,
+ "Room": 6
+ },
+ {
+ "X": 24064,
+ "Y": -1664,
+ "Z": 34304,
+ "Room": 5
+ },
+ {
+ "X": 35328,
+ "Y": 8064,
+ "Z": 34304,
+ "Room": 8
+ },
+ {
+ "X": 39424,
+ "Y": 8448,
+ "Z": 34304,
+ "Room": 11
+ },
+ {
+ "X": 40448,
+ "Y": 8448,
+ "Z": 34304,
+ "Room": 10
+ },
+ {
+ "X": 43520,
+ "Y": 8448,
+ "Z": 34304,
+ "Room": 15
+ },
+ {
+ "X": 41472,
+ "Y": 10752,
+ "Z": 33280,
+ "Room": 17
+ },
+ {
+ "X": 46592,
+ "Y": 10752,
+ "Z": 34304,
+ "Room": 14
+ },
+ {
+ "X": 44544,
+ "Y": 10752,
+ "Z": 34304,
+ "Room": 13
+ },
+ {
+ "X": 41472,
+ "Y": 13056,
+ "Z": 34560,
+ "Room": 12,
+ "KeyItemsLow": "14315,14290,14280,14299"
+ },
+ {
+ "X": 41472,
+ "Y": 13056,
+ "Z": 34304,
+ "Room": 12,
+ "KeyItemsLow": "14315,14290,14280,14299",
+ "Range": "Medium"
+ },
+ {
+ "X": 41472,
+ "Y": 13056,
+ "Z": 34048,
+ "Room": 12,
+ "KeyItemsLow": "14315,14290,14280,14299",
+ "Range": "Large"
+ },
+ {
+ "X": 41216,
+ "Y": 13056,
+ "Z": 34048,
+ "Room": 12,
+ "KeyItemsLow": "14315,14290,14280,14299",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 36352,
+ "Y": 13056,
+ "Z": 34304,
+ "Room": 9
+ },
+ {
+ "X": 33280,
+ "Y": 13056,
+ "Z": 34304,
+ "Room": 40
+ },
+ {
+ "X": 33280,
+ "Y": 12288,
+ "Z": 36352,
+ "Room": 41
+ },
+ {
+ "X": 32256,
+ "Y": 11008,
+ "Z": 41472,
+ "Room": 63,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 30208,
+ "Y": 7424,
+ "Z": 40448,
+ "Room": 64,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 30208,
+ "Y": 3840,
+ "Z": 42496,
+ "Room": 65,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 27136,
+ "Y": 1280,
+ "Z": 45568,
+ "Room": 66,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 25088,
+ "Y": 256,
+ "Z": 47616,
+ "Room": 67,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 35328,
+ "Y": 11008,
+ "Z": 41472,
+ "Room": 18
+ },
+ {
+ "X": 38400,
+ "Y": 13568,
+ "Z": 40448,
+ "Room": 20
+ },
+ {
+ "X": 40448,
+ "Y": 15616,
+ "Z": 41472,
+ "Room": 21
+ },
+ {
+ "X": 38400,
+ "Y": 18176,
+ "Z": 41472,
+ "Room": 23
+ },
+ {
+ "X": 44544,
+ "Y": 18176,
+ "Z": 41472,
+ "Room": 62
+ },
+ {
+ "X": 46592,
+ "Y": 18432,
+ "Z": 41472,
+ "Room": 24
+ },
+ {
+ "X": 54784,
+ "Y": 19456,
+ "Z": 41472,
+ "Room": 25
+ },
+ {
+ "X": 59904,
+ "Y": 17152,
+ "Z": 37376,
+ "Room": 43
+ },
+ {
+ "X": 61952,
+ "Y": 14848,
+ "Z": 37376,
+ "Room": 16
+ },
+ {
+ "X": 62976,
+ "Y": 14848,
+ "Z": 42496,
+ "Room": 44
+ },
+ {
+ "X": 39424,
+ "Y": 20224,
+ "Z": 40448,
+ "Room": 3
+ },
+ {
+ "X": 41472,
+ "Y": 22016,
+ "Z": 36352,
+ "Room": 42
+ },
+ {
+ "X": 34304,
+ "Y": 19968,
+ "Z": 45568,
+ "Room": 61
+ },
+ {
+ "X": 33280,
+ "Y": 19968,
+ "Z": 45568,
+ "Room": 19
+ },
+ {
+ "X": 22016,
+ "Y": 19968,
+ "Z": 45568,
+ "Room": 38
+ },
+ {
+ "X": 18944,
+ "Y": 17152,
+ "Z": 45568,
+ "Room": 39
+ },
+ {
+ "X": 45568,
+ "Y": 16128,
+ "Z": 41472,
+ "Room": 48
+ },
+ {
+ "X": 49664,
+ "Y": 16128,
+ "Z": 46592,
+ "Room": 47
+ },
+ {
+ "X": 39424,
+ "Y": 11520,
+ "Z": 49664,
+ "Room": 4
+ },
+ {
+ "X": 39424,
+ "Y": 11264,
+ "Z": 52736,
+ "Room": 35
+ },
+ {
+ "X": 37376,
+ "Y": 30208,
+ "Z": 50688,
+ "Room": 31
+ },
+ {
+ "X": 37376,
+ "Y": 30208,
+ "Z": 52736,
+ "Room": 32
+ },
+ {
+ "X": 36352,
+ "Y": 28928,
+ "Z": 52736,
+ "Room": 53
+ },
+ {
+ "X": 38400,
+ "Y": 30208,
+ "Z": 55808,
+ "Room": 33
+ },
+ {
+ "X": 43520,
+ "Y": 23552,
+ "Z": 49664,
+ "Room": 60
+ },
+ {
+ "X": 30464,
+ "Y": 23296,
+ "Z": 38656,
+ "Room": 46,
+ "KeyItemsHigh": "14315,14290,14280,14299"
+ },
+ {
+ "X": 30464,
+ "Y": 23296,
+ "Z": 38400,
+ "Room": 46,
+ "KeyItemsHigh": "14315,14290,14280,14299",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30464,
+ "Y": 23296,
+ "Z": 38144,
+ "Room": 46,
+ "KeyItemsHigh": "14315,14290,14280,14299",
+ "Range": "Medium"
+ },
+ {
+ "X": 30208,
+ "Y": 23296,
+ "Z": 38144,
+ "Room": 46,
+ "KeyItemsHigh": "14315,14290,14280,14299",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": 23296,
+ "Z": 38400,
+ "Room": 46,
+ "KeyItemsHigh": "14315,14290,14280,14299",
+ "Range": "Large"
+ },
+ {
+ "X": 30208,
+ "Y": 23296,
+ "Z": 38656,
+ "Room": 46,
+ "KeyItemsHigh": "14315,14290,14280,14299",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "LEVEL5.PHD": [
+ {
+ "X": 79360,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 59,
+ "KeyItemsLow": "15217",
+ "Range": "Medium"
+ },
+ {
+ "X": 79104,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 59,
+ "KeyItemsLow": "15217",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79104,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 59,
+ "KeyItemsLow": "15217",
+ "Range": "Large"
+ },
+ {
+ "X": 79360,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 59,
+ "KeyItemsLow": "15217",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": -128,
+ "Z": 38400,
+ "Room": 4
+ },
+ {
+ "X": 82432,
+ "Y": 3072,
+ "Z": 43520,
+ "Room": 5
+ },
+ {
+ "X": 76288,
+ "Y": 4096,
+ "Z": 45568,
+ "Room": 3
+ },
+ {
+ "X": 73216,
+ "Y": 0,
+ "Z": 43520,
+ "Room": 8
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 47616,
+ "Room": 30
+ },
+ {
+ "X": 65024,
+ "Y": -768,
+ "Z": 51712,
+ "Room": 33
+ },
+ {
+ "X": 65024,
+ "Y": -768,
+ "Z": 43520,
+ "Room": 17
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 6
+ },
+ {
+ "X": 58880,
+ "Y": -2560,
+ "Z": 38400,
+ "Room": 9
+ },
+ {
+ "X": 66048,
+ "Y": -2560,
+ "Z": 40448,
+ "Room": 10
+ },
+ {
+ "X": 61952,
+ "Y": -5120,
+ "Z": 40448,
+ "Room": 11
+ },
+ {
+ "X": 66048,
+ "Y": -5120,
+ "Z": 40448,
+ "Room": 12
+ },
+ {
+ "X": 77312,
+ "Y": -2560,
+ "Z": 49664,
+ "Room": 62
+ },
+ {
+ "X": 70144,
+ "Y": -2816,
+ "Z": 55808,
+ "Room": 2
+ },
+ {
+ "X": 66048,
+ "Y": -512,
+ "Z": 56832,
+ "Room": 87
+ },
+ {
+ "X": 62976,
+ "Y": -3968,
+ "Z": 53760,
+ "Room": 88
+ },
+ {
+ "X": 59904,
+ "Y": -3456,
+ "Z": 53760,
+ "Room": 7
+ },
+ {
+ "X": 60928,
+ "Y": -2048,
+ "Z": 49664,
+ "Room": 32
+ },
+ {
+ "X": 56832,
+ "Y": -2560,
+ "Z": 48896,
+ "Room": 73,
+ "KeyItemsLow": "15217"
+ },
+ {
+ "X": 56832,
+ "Y": -2560,
+ "Z": 48640,
+ "Room": 73,
+ "KeyItemsLow": "15217",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 56832,
+ "Y": -2560,
+ "Z": 47616,
+ "Room": 15
+ },
+ {
+ "X": 53760,
+ "Y": -3328,
+ "Z": 47616,
+ "Room": 79
+ },
+ {
+ "X": 51712,
+ "Y": -768,
+ "Z": 47616,
+ "Room": 64
+ },
+ {
+ "X": 44544,
+ "Y": -768,
+ "Z": 44544,
+ "Room": 63
+ },
+ {
+ "X": 39424,
+ "Y": -768,
+ "Z": 38400,
+ "Room": 20
+ },
+ {
+ "X": 38400,
+ "Y": -640,
+ "Z": 38400,
+ "Room": 69
+ },
+ {
+ "X": 34304,
+ "Y": 1280,
+ "Z": 38400,
+ "Room": 25
+ },
+ {
+ "X": 29184,
+ "Y": 1280,
+ "Z": 36352,
+ "Room": 1
+ },
+ {
+ "X": 31232,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 21
+ },
+ {
+ "X": 33280,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 35
+ },
+ {
+ "X": 36352,
+ "Y": 1152,
+ "Z": 40448,
+ "Room": 26
+ },
+ {
+ "X": 41472,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 85
+ },
+ {
+ "X": 45568,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 0
+ },
+ {
+ "X": 45568,
+ "Y": -768,
+ "Z": 48640,
+ "Room": 65
+ },
+ {
+ "X": 48640,
+ "Y": -768,
+ "Z": 48640,
+ "Room": 66
+ },
+ {
+ "X": 39424,
+ "Y": -768,
+ "Z": 51712,
+ "Room": 16
+ },
+ {
+ "X": 39424,
+ "Y": -768,
+ "Z": 56832,
+ "Room": 67
+ },
+ {
+ "X": 38400,
+ "Y": -384,
+ "Z": 57856,
+ "Room": 68
+ },
+ {
+ "X": 33280,
+ "Y": 512,
+ "Z": 57856,
+ "Room": 60
+ },
+ {
+ "X": 34304,
+ "Y": 1280,
+ "Z": 53760,
+ "Room": 61
+ },
+ {
+ "X": 34304,
+ "Y": 1280,
+ "Z": 52736,
+ "Room": 36
+ },
+ {
+ "X": 30208,
+ "Y": 1280,
+ "Z": 52736,
+ "Room": 22
+ },
+ {
+ "X": 28160,
+ "Y": 1280,
+ "Z": 50688,
+ "Room": 23
+ },
+ {
+ "X": 38400,
+ "Y": 1920,
+ "Z": 55808,
+ "Room": 28
+ },
+ {
+ "X": 42496,
+ "Y": 2816,
+ "Z": 55808,
+ "Room": 27
+ },
+ {
+ "X": 46592,
+ "Y": 2816,
+ "Z": 60928,
+ "Room": 29
+ },
+ {
+ "X": 43520,
+ "Y": -1536,
+ "Z": 59904,
+ "Room": 13
+ },
+ {
+ "X": 43520,
+ "Y": -3456,
+ "Z": 57856,
+ "Room": 19
+ },
+ {
+ "X": 39424,
+ "Y": -5120,
+ "Z": 62976,
+ "Room": 18
+ },
+ {
+ "X": 39424,
+ "Y": -3328,
+ "Z": 53760,
+ "Room": 18
+ },
+ {
+ "X": 39424,
+ "Y": -4608,
+ "Z": 49664,
+ "Room": 82
+ },
+ {
+ "X": 39424,
+ "Y": -4608,
+ "Z": 47616,
+ "Room": 81
+ },
+ {
+ "X": 37376,
+ "Y": -4096,
+ "Z": 47616,
+ "Room": 80
+ },
+ {
+ "X": 36352,
+ "Y": -3840,
+ "Z": 47616,
+ "Room": 24
+ },
+ {
+ "X": 32256,
+ "Y": -3840,
+ "Z": 47616,
+ "Room": 14
+ },
+ {
+ "X": 52736,
+ "Y": -3584,
+ "Z": 60928,
+ "Room": 74
+ },
+ {
+ "X": 50688,
+ "Y": -4608,
+ "Z": 64000,
+ "Room": 70
+ },
+ {
+ "X": 54784,
+ "Y": -4608,
+ "Z": 64000,
+ "Room": 71
+ },
+ {
+ "X": 58880,
+ "Y": -4608,
+ "Z": 64000,
+ "Room": 41
+ },
+ {
+ "X": 59904,
+ "Y": -4608,
+ "Z": 65024,
+ "Room": 42
+ },
+ {
+ "X": 59904,
+ "Y": -6016,
+ "Z": 68096,
+ "Room": 43
+ },
+ {
+ "X": 58880,
+ "Y": -8192,
+ "Z": 74240,
+ "Room": 44
+ },
+ {
+ "X": 54784,
+ "Y": -3840,
+ "Z": 60928,
+ "Room": 72
+ },
+ {
+ "X": 55808,
+ "Y": -4608,
+ "Z": 44544,
+ "Room": 76
+ },
+ {
+ "X": 55808,
+ "Y": -4608,
+ "Z": 33280,
+ "Room": 75
+ },
+ {
+ "X": 56832,
+ "Y": -4608,
+ "Z": 29184,
+ "Room": 45
+ },
+ {
+ "X": 57856,
+ "Y": -4608,
+ "Z": 24064,
+ "Room": 46
+ },
+ {
+ "X": 56832,
+ "Y": -6144,
+ "Z": 20992,
+ "Room": 47
+ },
+ {
+ "X": 56832,
+ "Y": -6912,
+ "Z": 23040,
+ "Room": 48
+ },
+ {
+ "X": 58880,
+ "Y": -7680,
+ "Z": 23040,
+ "Room": 49
+ },
+ {
+ "X": 58880,
+ "Y": -8448,
+ "Z": 20992,
+ "Room": 50
+ },
+ {
+ "X": 58880,
+ "Y": -8448,
+ "Z": 16896,
+ "Room": 51
+ },
+ {
+ "X": 52736,
+ "Y": -4608,
+ "Z": 32256,
+ "Room": 77
+ },
+ {
+ "X": 39424,
+ "Y": -4608,
+ "Z": 32256,
+ "Room": 84
+ },
+ {
+ "X": 36352,
+ "Y": -4608,
+ "Z": 32256,
+ "Room": 37
+ },
+ {
+ "X": 31232,
+ "Y": -6144,
+ "Z": 32256,
+ "Room": 52
+ },
+ {
+ "X": 29184,
+ "Y": -1920,
+ "Z": 31232,
+ "Room": 53
+ },
+ {
+ "X": 29184,
+ "Y": -6144,
+ "Z": 20992,
+ "Room": 56
+ },
+ {
+ "X": 30208,
+ "Y": -6144,
+ "Z": 18944,
+ "Room": 55
+ },
+ {
+ "X": 31232,
+ "Y": -5888,
+ "Z": 17920,
+ "Room": 54
+ },
+ {
+ "X": 35328,
+ "Y": -4608,
+ "Z": 34304,
+ "Room": 83
+ },
+ {
+ "X": 22016,
+ "Y": -2304,
+ "Z": 48640,
+ "Room": 57
+ },
+ {
+ "X": 35072,
+ "Y": -512,
+ "Z": 51456,
+ "Room": 38,
+ "KeyItemsHigh": "15217"
+ },
+ {
+ "X": 35328,
+ "Y": -512,
+ "Z": 51456,
+ "Room": 38,
+ "KeyItemsHigh": "15217",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35584,
+ "Y": -512,
+ "Z": 51456,
+ "Room": 38,
+ "KeyItemsHigh": "15217",
+ "Range": "Medium"
+ },
+ {
+ "X": 35584,
+ "Y": -512,
+ "Z": 51712,
+ "Room": 38,
+ "KeyItemsHigh": "15217",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": -512,
+ "Z": 51712,
+ "Room": 38,
+ "KeyItemsHigh": "15217",
+ "Range": "Large"
+ },
+ {
+ "X": 35072,
+ "Y": -512,
+ "Z": 51712,
+ "Room": 38,
+ "KeyItemsHigh": "15217",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": -512,
+ "Z": 54784,
+ "Room": 39
+ },
+ {
+ "X": 35328,
+ "Y": -2304,
+ "Z": 62976,
+ "Room": 40
+ },
+ {
+ "X": 35328,
+ "Y": -256,
+ "Z": 72192,
+ "Room": 31
+ }
+ ],
+ "LEVEL6.PHD": [
+ {
+ "X": 50688,
+ "Y": -512,
+ "Z": 18944,
+ "Room": 0
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 40448,
+ "Room": 10,
+ "KeyItemsLow": "16166,16178,16157",
+ "Range": "Medium"
+ },
+ {
+ "X": 50432,
+ "Y": 0,
+ "Z": 40448,
+ "Room": 10,
+ "KeyItemsLow": "16166,16178,16157",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50432,
+ "Y": 0,
+ "Z": 40704,
+ "Room": 10,
+ "KeyItemsLow": "16166,16178,16157",
+ "Range": "Large"
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 40704,
+ "Room": 10,
+ "KeyItemsLow": "16166,16178,16157",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53760,
+ "Y": -2304,
+ "Z": 40448,
+ "Room": 11
+ },
+ {
+ "X": 53760,
+ "Y": -2048,
+ "Z": 33280,
+ "Room": 19
+ },
+ {
+ "X": 44544,
+ "Y": -2048,
+ "Z": 32256,
+ "Room": 13
+ },
+ {
+ "X": 44544,
+ "Y": -2048,
+ "Z": 45568,
+ "Room": 43
+ },
+ {
+ "X": 44544,
+ "Y": -2048,
+ "Z": 57856,
+ "Room": 44
+ },
+ {
+ "X": 31232,
+ "Y": -2048,
+ "Z": 57856,
+ "Room": 30
+ },
+ {
+ "X": 39424,
+ "Y": -4352,
+ "Z": 41472,
+ "Room": 9,
+ "KeyItemsLow": "16157,16178"
+ },
+ {
+ "X": 39168,
+ "Y": -4352,
+ "Z": 41472,
+ "Room": 9,
+ "KeyItemsLow": "16157,16178",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29184,
+ "Y": -4352,
+ "Z": 41472,
+ "Room": 29
+ },
+ {
+ "X": 20992,
+ "Y": -4352,
+ "Z": 46592,
+ "Room": 34
+ },
+ {
+ "X": 23040,
+ "Y": -7424,
+ "Z": 49664,
+ "Room": 38
+ },
+ {
+ "X": 19968,
+ "Y": -7168,
+ "Z": 38400,
+ "Room": 37
+ },
+ {
+ "X": 16896,
+ "Y": -7424,
+ "Z": 38400,
+ "Room": 36
+ },
+ {
+ "X": 19968,
+ "Y": -7424,
+ "Z": 41472,
+ "Room": 32
+ },
+ {
+ "X": 16896,
+ "Y": -8448,
+ "Z": 46592,
+ "Room": 35
+ },
+ {
+ "X": 17920,
+ "Y": -4864,
+ "Z": 43520,
+ "Room": 33
+ },
+ {
+ "X": 24064,
+ "Y": -4352,
+ "Z": 51712,
+ "Room": 21
+ },
+ {
+ "X": 24064,
+ "Y": -4352,
+ "Z": 64000,
+ "Room": 23
+ },
+ {
+ "X": 23040,
+ "Y": -256,
+ "Z": 66048,
+ "Room": 22
+ },
+ {
+ "X": 23040,
+ "Y": -256,
+ "Z": 58880,
+ "Room": 24
+ },
+ {
+ "X": 31232,
+ "Y": -4352,
+ "Z": 35328,
+ "Room": 27
+ },
+ {
+ "X": 36352,
+ "Y": -4480,
+ "Z": 30208,
+ "Room": 42
+ },
+ {
+ "X": 40448,
+ "Y": -5376,
+ "Z": 29184,
+ "Room": 41
+ },
+ {
+ "X": 32256,
+ "Y": -6400,
+ "Z": 29184,
+ "Room": 28
+ },
+ {
+ "X": 31232,
+ "Y": -4352,
+ "Z": 47616,
+ "Room": 25
+ },
+ {
+ "X": 40448,
+ "Y": -4352,
+ "Z": 48640,
+ "Room": 62
+ },
+ {
+ "X": 42496,
+ "Y": -3840,
+ "Z": 45568,
+ "Room": 63
+ },
+ {
+ "X": 37376,
+ "Y": -2560,
+ "Z": 46592,
+ "Room": 64
+ },
+ {
+ "X": 42496,
+ "Y": -4864,
+ "Z": 53760,
+ "Room": 66
+ },
+ {
+ "X": 40448,
+ "Y": -6656,
+ "Z": 52736,
+ "Room": 65
+ },
+ {
+ "X": 35387,
+ "Y": -9220,
+ "Z": 53248,
+ "Room": 26
+ },
+ {
+ "X": 30208,
+ "Y": -8448,
+ "Z": 48640,
+ "Room": 54
+ },
+ {
+ "X": 30208,
+ "Y": -11392,
+ "Z": 53760,
+ "Room": 52,
+ "KeyItemsHigh": "16157,16178",
+ "KeyItemsLow": "16166"
+ },
+ {
+ "X": 29952,
+ "Y": -11392,
+ "Z": 53760,
+ "Room": 52,
+ "KeyItemsHigh": "16157,16178",
+ "KeyItemsLow": "16166",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 31232,
+ "Y": -11008,
+ "Z": 56832,
+ "Room": 49
+ },
+ {
+ "X": 30208,
+ "Y": -9728,
+ "Z": 59904,
+ "Room": 46
+ },
+ {
+ "X": 33280,
+ "Y": -11008,
+ "Z": 61952,
+ "Room": 47
+ },
+ {
+ "X": 33280,
+ "Y": -9728,
+ "Z": 62976,
+ "Room": 50
+ },
+ {
+ "X": 51712,
+ "Y": -9600,
+ "Z": 62976,
+ "Room": 58
+ },
+ {
+ "X": 54784,
+ "Y": -11008,
+ "Z": 59904,
+ "Room": 59
+ },
+ {
+ "X": 49664,
+ "Y": -10240,
+ "Z": 56832,
+ "Room": 51,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": -6400,
+ "Z": 55808,
+ "Room": 53
+ },
+ {
+ "X": 30208,
+ "Y": -6400,
+ "Z": 56832,
+ "Room": 31
+ },
+ {
+ "X": 35328,
+ "Y": -6400,
+ "Z": 60928,
+ "Room": 45
+ },
+ {
+ "X": 49664,
+ "Y": -6400,
+ "Z": 66048,
+ "Room": 55
+ },
+ {
+ "X": 52736,
+ "Y": -8192,
+ "Z": 70144,
+ "Room": 57
+ },
+ {
+ "X": 54784,
+ "Y": -15104,
+ "Z": 67072,
+ "Room": 60
+ },
+ {
+ "X": 54784,
+ "Y": -13952,
+ "Z": 56832,
+ "Room": 61
+ },
+ {
+ "X": 54784,
+ "Y": -7168,
+ "Z": 49664,
+ "Room": 56
+ },
+ {
+ "X": 52736,
+ "Y": -4608,
+ "Z": 44544,
+ "Room": 12
+ },
+ {
+ "X": 52736,
+ "Y": -4736,
+ "Z": 33280,
+ "Room": 15
+ },
+ {
+ "X": 60928,
+ "Y": -3712,
+ "Z": 33280,
+ "Room": 16
+ },
+ {
+ "X": 62976,
+ "Y": -4352,
+ "Z": 35328,
+ "Room": 3
+ },
+ {
+ "X": 66048,
+ "Y": -4608,
+ "Z": 33280,
+ "Room": 17
+ },
+ {
+ "X": 71168,
+ "Y": -384,
+ "Z": 32256,
+ "Room": 18
+ },
+ {
+ "X": 80384,
+ "Y": -4864,
+ "Z": 31232,
+ "Room": 8
+ },
+ {
+ "X": 82432,
+ "Y": -7808,
+ "Z": 36352,
+ "Room": 7
+ },
+ {
+ "X": 81408,
+ "Y": -4096,
+ "Z": 41472,
+ "Room": 6
+ },
+ {
+ "X": 85504,
+ "Y": -4096,
+ "Z": 38400,
+ "Room": 78
+ },
+ {
+ "X": 75264,
+ "Y": -3072,
+ "Z": 39424,
+ "Room": 5
+ },
+ {
+ "X": 59904,
+ "Y": -2048,
+ "Z": 40448,
+ "Room": 4,
+ "KeyItemsHigh": "16166"
+ },
+ {
+ "X": 59648,
+ "Y": -2048,
+ "Z": 40448,
+ "Room": 4,
+ "KeyItemsHigh": "16166",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": -2048,
+ "Z": 45568,
+ "Room": 67
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 53760,
+ "Room": 68
+ },
+ {
+ "X": 58880,
+ "Y": 512,
+ "Z": 53760,
+ "Room": 69
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 58880,
+ "Room": 71
+ },
+ {
+ "X": 64000,
+ "Y": 0,
+ "Z": 60928,
+ "Room": 2
+ },
+ {
+ "X": 68096,
+ "Y": -1792,
+ "Z": 51712,
+ "Room": 70
+ },
+ {
+ "X": 70144,
+ "Y": -1792,
+ "Z": 51712,
+ "Room": 73
+ },
+ {
+ "X": 19968,
+ "Y": -4352,
+ "Z": 32256,
+ "Room": 39,
+ "KeyItemsLow": "16157,16178"
+ },
+ {
+ "X": 19968,
+ "Y": -4352,
+ "Z": 32000,
+ "Room": 39,
+ "KeyItemsLow": "16157,16178",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -4352,
+ "Z": 29184,
+ "Room": 48
+ },
+ {
+ "X": 23040,
+ "Y": -7424,
+ "Z": 28160,
+ "Room": 14
+ },
+ {
+ "X": 24064,
+ "Y": -7424,
+ "Z": 30208,
+ "Room": 40
+ },
+ {
+ "X": 23040,
+ "Y": -5888,
+ "Z": 23040,
+ "Room": 20
+ },
+ {
+ "X": 20224,
+ "Y": -4608,
+ "Z": 19968,
+ "Room": 1,
+ "KeyItemsHigh": "16178,16157"
+ },
+ {
+ "X": 20224,
+ "Y": -4608,
+ "Z": 19712,
+ "Room": 1,
+ "KeyItemsHigh": "16178,16157",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 19968,
+ "Y": -4608,
+ "Z": 19712,
+ "Room": 1,
+ "KeyItemsHigh": "16166,16178,16157",
+ "Range": "Medium"
+ },
+ {
+ "X": 19968,
+ "Y": -4608,
+ "Z": 19968,
+ "Room": 1,
+ "KeyItemsHigh": "16166,16178,16157",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 19968,
+ "Y": -4608,
+ "Z": 20224,
+ "Room": 1,
+ "KeyItemsHigh": "16166,16178,16157",
+ "Range": "Large"
+ },
+ {
+ "X": 20224,
+ "Y": -4608,
+ "Z": 20224,
+ "Room": 1,
+ "KeyItemsHigh": "16166,16178,16157",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "LEVEL7A.PHD": [
+ {
+ "X": 46592,
+ "Y": -8448,
+ "Z": 76288,
+ "Room": 137,
+ "KeyItemsLow": "17143,17295,17208,17231,17245",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46848,
+ "Y": -8448,
+ "Z": 76288,
+ "Room": 137,
+ "KeyItemsLow": "17143,17295,17208,17231,17245",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": -5632,
+ "Z": 74240,
+ "Room": 5
+ },
+ {
+ "X": 46592,
+ "Y": -5632,
+ "Z": 72192,
+ "Room": 4
+ },
+ {
+ "X": 48640,
+ "Y": -5632,
+ "Z": 67072,
+ "Room": 135
+ },
+ {
+ "X": 45824,
+ "Y": -3328,
+ "Z": 68352,
+ "Room": 7,
+ "KeyItemsLow": "17143,17295,17208,17231,17245",
+ "Range": "Medium"
+ },
+ {
+ "X": 45568,
+ "Y": -3328,
+ "Z": 68096,
+ "Room": 7,
+ "KeyItemsLow": "17143,17295,17208,17231,17245",
+ "Range": "Large"
+ },
+ {
+ "X": 45568,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 99,
+ "KeyItemsLow": "17295"
+ },
+ {
+ "X": 45824,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 99,
+ "KeyItemsLow": "17295",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": -3328,
+ "Z": 56832,
+ "Room": 101
+ },
+ {
+ "X": 45568,
+ "Y": -3328,
+ "Z": 52736,
+ "Room": 95
+ },
+ {
+ "X": 46592,
+ "Y": -3328,
+ "Z": 48640,
+ "Room": 96
+ },
+ {
+ "X": 43520,
+ "Y": 3328,
+ "Z": 59904,
+ "Room": 0
+ },
+ {
+ "X": 46592,
+ "Y": 1792,
+ "Z": 60928,
+ "Room": 83
+ },
+ {
+ "X": 39424,
+ "Y": -256,
+ "Z": 61952,
+ "Room": 111
+ },
+ {
+ "X": 40448,
+ "Y": -1792,
+ "Z": 59904,
+ "Room": 109
+ },
+ {
+ "X": 38400,
+ "Y": 0,
+ "Z": 62976,
+ "Room": 110
+ },
+ {
+ "X": 41472,
+ "Y": 0,
+ "Z": 66048,
+ "Room": 108
+ },
+ {
+ "X": 46592,
+ "Y": 0,
+ "Z": 66048,
+ "Room": 106
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 61952,
+ "Room": 105
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 103
+ },
+ {
+ "X": 45568,
+ "Y": 0,
+ "Z": 49664,
+ "Room": 104
+ },
+ {
+ "X": 39424,
+ "Y": 0,
+ "Z": 49664,
+ "Room": 2
+ },
+ {
+ "X": 36352,
+ "Y": -3328,
+ "Z": 56832,
+ "Room": 102
+ },
+ {
+ "X": 35328,
+ "Y": -3328,
+ "Z": 51712,
+ "Room": 94
+ },
+ {
+ "X": 34304,
+ "Y": -5632,
+ "Z": 55808,
+ "Room": 92
+ },
+ {
+ "X": 31232,
+ "Y": -5888,
+ "Z": 55808,
+ "Room": 6,
+ "KeyItemsHigh": "17295",
+ "KeyItemsLow": "17143"
+ },
+ {
+ "X": 31232,
+ "Y": -5888,
+ "Z": 55552,
+ "Room": 6,
+ "KeyItemsHigh": "17295",
+ "KeyItemsLow": "17143",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30976,
+ "Y": -5888,
+ "Z": 55552,
+ "Room": 6,
+ "KeyItemsHigh": "17245",
+ "Range": "Medium"
+ },
+ {
+ "X": 30976,
+ "Y": -5888,
+ "Z": 55808,
+ "Room": 6,
+ "KeyItemsHigh": "17245",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": -6656,
+ "Z": 55808,
+ "Room": 9
+ },
+ {
+ "X": 27136,
+ "Y": -8448,
+ "Z": 60928,
+ "Room": 10
+ },
+ {
+ "X": 27136,
+ "Y": -10240,
+ "Z": 61952,
+ "Room": 3
+ },
+ {
+ "X": 28160,
+ "Y": -13312,
+ "Z": 64000,
+ "Room": 86
+ },
+ {
+ "X": 25088,
+ "Y": -3584,
+ "Z": 55808,
+ "Room": 11
+ },
+ {
+ "X": 20992,
+ "Y": -4096,
+ "Z": 58880,
+ "Room": 17
+ },
+ {
+ "X": 23040,
+ "Y": -3584,
+ "Z": 64000,
+ "Room": 18
+ },
+ {
+ "X": 24064,
+ "Y": -6912,
+ "Z": 68096,
+ "Room": 19
+ },
+ {
+ "X": 23040,
+ "Y": -7168,
+ "Z": 68096,
+ "Room": 20
+ },
+ {
+ "X": 28160,
+ "Y": -8192,
+ "Z": 64000,
+ "Room": 22
+ },
+ {
+ "X": 30208,
+ "Y": -5632,
+ "Z": 61952,
+ "Room": 23
+ },
+ {
+ "X": 32256,
+ "Y": -3328,
+ "Z": 57856,
+ "Room": 16
+ },
+ {
+ "X": 33280,
+ "Y": -5632,
+ "Z": 62976,
+ "Room": 90,
+ "KeyItemsHigh": "17143",
+ "KeyItemsLow": "17295",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33536,
+ "Y": -5632,
+ "Z": 62976,
+ "Room": 90,
+ "KeyItemsHigh": "17143",
+ "KeyItemsLow": "17295"
+ },
+ {
+ "X": 33536,
+ "Y": -5632,
+ "Z": 63232,
+ "Room": 90,
+ "KeyItemsLow": "17245",
+ "Range": "Medium"
+ },
+ {
+ "X": 33280,
+ "Y": -5632,
+ "Z": 63232,
+ "Room": 90,
+ "KeyItemsLow": "17245",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34304,
+ "Y": -3584,
+ "Z": 65024,
+ "Room": 100
+ },
+ {
+ "X": 40448,
+ "Y": -5632,
+ "Z": 66048,
+ "Room": 91
+ },
+ {
+ "X": 49664,
+ "Y": -3328,
+ "Z": 59904,
+ "Room": 97
+ },
+ {
+ "X": 53504,
+ "Y": -3328,
+ "Z": 59648,
+ "Room": 21,
+ "KeyItemsHigh": "17295",
+ "KeyItemsLow": "17208,17231"
+ },
+ {
+ "X": 53504,
+ "Y": -3328,
+ "Z": 59904,
+ "Room": 21,
+ "KeyItemsHigh": "17295",
+ "KeyItemsLow": "17208,17231",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53504,
+ "Y": -3328,
+ "Z": 60160,
+ "Room": 21,
+ "KeyItemsHigh": "17143,17295",
+ "Range": "Medium"
+ },
+ {
+ "X": 53760,
+ "Y": -3328,
+ "Z": 60160,
+ "Room": 21,
+ "KeyItemsHigh": "17143,17295",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53760,
+ "Y": -3328,
+ "Z": 59904,
+ "Room": 21,
+ "KeyItemsHigh": "17143,17295",
+ "Range": "Large"
+ },
+ {
+ "X": 53760,
+ "Y": -3328,
+ "Z": 59648,
+ "Room": 21,
+ "KeyItemsHigh": "17143,17295",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51712,
+ "Y": -5120,
+ "Z": 61952,
+ "Room": 24
+ },
+ {
+ "X": 57856,
+ "Y": -6656,
+ "Z": 60928,
+ "Room": 25
+ },
+ {
+ "X": 60928,
+ "Y": -7936,
+ "Z": 60928,
+ "Room": 26
+ },
+ {
+ "X": 62976,
+ "Y": -7936,
+ "Z": 57856,
+ "Room": 27
+ },
+ {
+ "X": 62976,
+ "Y": -6656,
+ "Z": 54784,
+ "Room": 29
+ },
+ {
+ "X": 64000,
+ "Y": -4608,
+ "Z": 55808,
+ "Room": 30
+ },
+ {
+ "X": 61952,
+ "Y": -3840,
+ "Z": 55808,
+ "Room": 31
+ },
+ {
+ "X": 61952,
+ "Y": -1280,
+ "Z": 51712,
+ "Room": 32
+ },
+ {
+ "X": 58880,
+ "Y": -1280,
+ "Z": 56832,
+ "Room": 35
+ },
+ {
+ "X": 58880,
+ "Y": -1280,
+ "Z": 59904,
+ "Room": 34
+ },
+ {
+ "X": 64000,
+ "Y": -1280,
+ "Z": 59904,
+ "Room": 33
+ },
+ {
+ "X": 56832,
+ "Y": -4608,
+ "Z": 48640,
+ "Room": 36
+ },
+ {
+ "X": 55808,
+ "Y": -3584,
+ "Z": 46592,
+ "Room": 37
+ },
+ {
+ "X": 55808,
+ "Y": -2304,
+ "Z": 43520,
+ "Room": 41
+ },
+ {
+ "X": 53760,
+ "Y": -1024,
+ "Z": 41472,
+ "Room": 40
+ },
+ {
+ "X": 48640,
+ "Y": -3840,
+ "Z": 42496,
+ "Room": 39
+ },
+ {
+ "X": 48640,
+ "Y": -5376,
+ "Z": 43520,
+ "Room": 38
+ },
+ {
+ "X": 53760,
+ "Y": -5632,
+ "Z": 37376,
+ "Room": 42
+ },
+ {
+ "X": 50688,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 44,
+ "KeyItemsLow": "17245"
+ },
+ {
+ "X": 50688,
+ "Y": 1280,
+ "Z": 42752,
+ "Room": 44,
+ "KeyItemsLow": "17245",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": 1280,
+ "Z": 43520,
+ "Room": 45
+ },
+ {
+ "X": 45568,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 28
+ },
+ {
+ "X": 44544,
+ "Y": -256,
+ "Z": 41472,
+ "Room": 46
+ },
+ {
+ "X": 44544,
+ "Y": 1280,
+ "Z": 45568,
+ "Room": 50
+ },
+ {
+ "X": 43520,
+ "Y": 1280,
+ "Z": 51712,
+ "Room": 51
+ },
+ {
+ "X": 51712,
+ "Y": -3328,
+ "Z": 55808,
+ "Room": 53
+ },
+ {
+ "X": 52736,
+ "Y": -256,
+ "Z": 55808,
+ "Room": 54
+ },
+ {
+ "X": 53760,
+ "Y": -256,
+ "Z": 55808,
+ "Room": 71
+ },
+ {
+ "X": 54784,
+ "Y": 1024,
+ "Z": 56832,
+ "Room": 55
+ },
+ {
+ "X": 54784,
+ "Y": -256,
+ "Z": 53760,
+ "Room": 56
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 57
+ },
+ {
+ "X": 43520,
+ "Y": -3584,
+ "Z": 43520,
+ "Room": 48
+ },
+ {
+ "X": 43520,
+ "Y": 0,
+ "Z": 46592,
+ "Room": 49
+ },
+ {
+ "X": 40704,
+ "Y": -5376,
+ "Z": 48384,
+ "Room": 84,
+ "KeyItemsLow": "17143,17295",
+ "Range": "Medium"
+ },
+ {
+ "X": 40704,
+ "Y": -5376,
+ "Z": 48640,
+ "Room": 84,
+ "KeyItemsLow": "17143,17295",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40704,
+ "Y": -5376,
+ "Z": 48896,
+ "Room": 84,
+ "KeyItemsLow": "17143,17295",
+ "Range": "Large"
+ },
+ {
+ "X": 40448,
+ "Y": -5376,
+ "Z": 48896,
+ "Room": 84,
+ "KeyItemsLow": "17143,17295",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": -5376,
+ "Z": 49664,
+ "Room": 8
+ },
+ {
+ "X": 42496,
+ "Y": -5632,
+ "Z": 46592,
+ "Room": 81
+ },
+ {
+ "X": 43520,
+ "Y": -7424,
+ "Z": 44544,
+ "Room": 43
+ },
+ {
+ "X": 41472,
+ "Y": -7424,
+ "Z": 44544,
+ "Room": 82
+ },
+ {
+ "X": 40704,
+ "Y": -5632,
+ "Z": 47360,
+ "Room": 13,
+ "KeyItemsHigh": "17208,17231"
+ },
+ {
+ "X": 40704,
+ "Y": -5632,
+ "Z": 47616,
+ "Room": 13,
+ "KeyItemsHigh": "17208,17231",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40704,
+ "Y": -5632,
+ "Z": 47872,
+ "Room": 13,
+ "KeyItemsHigh": "17208,17231,17143,17295",
+ "Range": "Medium"
+ },
+ {
+ "X": 40448,
+ "Y": -5632,
+ "Z": 47872,
+ "Room": 13,
+ "KeyItemsHigh": "17208,17231,17143,17295",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": -5632,
+ "Z": 47616,
+ "Room": 13,
+ "KeyItemsHigh": "17208,17231,17143,17295",
+ "Range": "Large"
+ },
+ {
+ "X": 40448,
+ "Y": -5632,
+ "Z": 47360,
+ "Room": 13,
+ "KeyItemsHigh": "17208,17231,17143,17295",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": -5632,
+ "Z": 43520,
+ "Room": 14
+ },
+ {
+ "X": 40448,
+ "Y": -8448,
+ "Z": 40448,
+ "Room": 15
+ },
+ {
+ "X": 40192,
+ "Y": -5888,
+ "Z": 36608,
+ "Room": 61,
+ "KeyItemsHigh": "17245"
+ },
+ {
+ "X": 40448,
+ "Y": -5888,
+ "Z": 36608,
+ "Room": 61,
+ "KeyItemsHigh": "17245",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40704,
+ "Y": -5888,
+ "Z": 36608,
+ "Room": 61,
+ "KeyItemsHigh": "17245",
+ "Range": "Medium"
+ },
+ {
+ "X": 40704,
+ "Y": -5888,
+ "Z": 36352,
+ "Room": 61,
+ "KeyItemsHigh": "17245",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": -5888,
+ "Z": 36352,
+ "Room": 61,
+ "KeyItemsHigh": "17245",
+ "Range": "Large"
+ },
+ {
+ "X": 40192,
+ "Y": -5888,
+ "Z": 36352,
+ "Room": 61,
+ "KeyItemsHigh": "17245",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": -6400,
+ "Z": 25088,
+ "Room": 60
+ },
+ {
+ "X": 31232,
+ "Y": -6400,
+ "Z": 23040,
+ "Room": 66
+ },
+ {
+ "X": 32256,
+ "Y": -8704,
+ "Z": 22016,
+ "Room": 67
+ },
+ {
+ "X": 35328,
+ "Y": -9216,
+ "Z": 23040,
+ "Room": 65
+ },
+ {
+ "X": 40448,
+ "Y": -9216,
+ "Z": 26112,
+ "Room": 64
+ },
+ {
+ "X": 40448,
+ "Y": -7680,
+ "Z": 23040,
+ "Room": 63
+ }
+ ],
+ "LEVEL7B.PHD": [
+ {
+ "X": 57856,
+ "Y": 1024,
+ "Z": 1536,
+ "Room": 20,
+ "KeyItemsLow": "18133,18277,18267,18389",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": 4096,
+ "Z": 18944,
+ "Room": 22
+ },
+ {
+ "X": 57856,
+ "Y": 4096,
+ "Z": 17920,
+ "Room": 23
+ },
+ {
+ "X": 56832,
+ "Y": -256,
+ "Z": 16896,
+ "Room": 21
+ },
+ {
+ "X": 54784,
+ "Y": -256,
+ "Z": 17920,
+ "Room": 27
+ },
+ {
+ "X": 49664,
+ "Y": -256,
+ "Z": 17920,
+ "Room": 25
+ },
+ {
+ "X": 50688,
+ "Y": -3328,
+ "Z": 15872,
+ "Room": 26
+ },
+ {
+ "X": 47616,
+ "Y": -4864,
+ "Z": 15872,
+ "Room": 17
+ },
+ {
+ "X": 43520,
+ "Y": -6144,
+ "Z": 13824,
+ "Room": 28
+ },
+ {
+ "X": 43520,
+ "Y": -256,
+ "Z": 13824,
+ "Room": 29
+ },
+ {
+ "X": 42496,
+ "Y": -3328,
+ "Z": 13824,
+ "Room": 24
+ },
+ {
+ "X": 41472,
+ "Y": -3328,
+ "Z": 13824,
+ "Room": 84
+ },
+ {
+ "X": 41472,
+ "Y": 1024,
+ "Z": 16896,
+ "Room": 31
+ },
+ {
+ "X": 41472,
+ "Y": 4096,
+ "Z": 18944,
+ "Room": 59
+ },
+ {
+ "X": 41472,
+ "Y": 1024,
+ "Z": 27136,
+ "Room": 16
+ },
+ {
+ "X": 41472,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 0
+ },
+ {
+ "X": 41472,
+ "Y": 1024,
+ "Z": 62976,
+ "Room": 1
+ },
+ {
+ "X": 41472,
+ "Y": 1024,
+ "Z": 74240,
+ "Room": 32
+ },
+ {
+ "X": 41472,
+ "Y": -256,
+ "Z": 80384,
+ "Room": 33,
+ "KeyItemsLow": "18133"
+ },
+ {
+ "X": 41216,
+ "Y": -256,
+ "Z": 80384,
+ "Room": 33,
+ "KeyItemsLow": "18267,18277,18133",
+ "Range": "Medium"
+ },
+ {
+ "X": 41216,
+ "Y": -256,
+ "Z": 80640,
+ "Room": 33,
+ "KeyItemsLow": "18267,18277,18133",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": -256,
+ "Z": 80640,
+ "Room": 33,
+ "KeyItemsLow": "18267,18277,18133",
+ "Range": "Large"
+ },
+ {
+ "X": 41728,
+ "Y": -256,
+ "Z": 80640,
+ "Room": 33,
+ "KeyItemsLow": "18133",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": -2304,
+ "Z": 78336,
+ "Room": 34
+ },
+ {
+ "X": 41472,
+ "Y": -2816,
+ "Z": 77312,
+ "Room": 36
+ },
+ {
+ "X": 39424,
+ "Y": -4096,
+ "Z": 78336,
+ "Room": 37
+ },
+ {
+ "X": 39424,
+ "Y": -5376,
+ "Z": 79360,
+ "Room": 38
+ },
+ {
+ "X": 38400,
+ "Y": -6656,
+ "Z": 81408,
+ "Room": 114,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 37376,
+ "Y": -7680,
+ "Z": 79360,
+ "Room": 115,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 37376,
+ "Y": -7680,
+ "Z": 61952,
+ "Room": 116,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 37376,
+ "Y": -7680,
+ "Z": 43520,
+ "Room": 117,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 37376,
+ "Y": -7680,
+ "Z": 25088,
+ "Room": 118,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 38400,
+ "Y": -7680,
+ "Z": 17920,
+ "Room": 119,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 40448,
+ "Y": -6656,
+ "Z": 76288,
+ "Room": 39
+ },
+ {
+ "X": 39424,
+ "Y": -5888,
+ "Z": 74240,
+ "Room": 40
+ },
+ {
+ "X": 37376,
+ "Y": -5120,
+ "Z": 75264,
+ "Room": 41
+ },
+ {
+ "X": 36352,
+ "Y": -4096,
+ "Z": 78336,
+ "Room": 42
+ },
+ {
+ "X": 34304,
+ "Y": -3584,
+ "Z": 77312,
+ "Room": 43
+ },
+ {
+ "X": 34304,
+ "Y": -2048,
+ "Z": 75264,
+ "Room": 45
+ },
+ {
+ "X": 36352,
+ "Y": -1536,
+ "Z": 75264,
+ "Room": 44
+ },
+ {
+ "X": 39424,
+ "Y": -768,
+ "Z": 75264,
+ "Room": 35
+ },
+ {
+ "X": 43520,
+ "Y": 0,
+ "Z": 70144,
+ "Room": 6,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": -2560,
+ "Z": 69120,
+ "Room": 9,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": -5376,
+ "Z": 78336,
+ "Room": 14
+ },
+ {
+ "X": 43520,
+ "Y": -6656,
+ "Z": 76288,
+ "Room": 46
+ },
+ {
+ "X": 42496,
+ "Y": -6144,
+ "Z": 74240,
+ "Room": 47
+ },
+ {
+ "X": 43520,
+ "Y": -6144,
+ "Z": 70144,
+ "Room": 49
+ },
+ {
+ "X": 42496,
+ "Y": -3328,
+ "Z": 76288,
+ "Room": 47
+ },
+ {
+ "X": 43520,
+ "Y": -3328,
+ "Z": 76288,
+ "Room": 50
+ },
+ {
+ "X": 45568,
+ "Y": 1536,
+ "Z": 79360,
+ "Room": 3
+ },
+ {
+ "X": 46592,
+ "Y": 1536,
+ "Z": 79360,
+ "Room": 68
+ },
+ {
+ "X": 49664,
+ "Y": 768,
+ "Z": 79360,
+ "Room": 69
+ },
+ {
+ "X": 49664,
+ "Y": -3456,
+ "Z": 74240,
+ "Room": 70
+ },
+ {
+ "X": 54784,
+ "Y": -3584,
+ "Z": 71168,
+ "Room": 67
+ },
+ {
+ "X": 53760,
+ "Y": -3328,
+ "Z": 70144,
+ "Room": 72
+ },
+ {
+ "X": 49664,
+ "Y": -3584,
+ "Z": 71168,
+ "Room": 71
+ },
+ {
+ "X": 51712,
+ "Y": -5120,
+ "Z": 71168,
+ "Room": 73
+ },
+ {
+ "X": 51712,
+ "Y": -6400,
+ "Z": 73216,
+ "Room": 66
+ },
+ {
+ "X": 52736,
+ "Y": -7936,
+ "Z": 76288,
+ "Room": 15
+ },
+ {
+ "X": 52736,
+ "Y": -3584,
+ "Z": 69120,
+ "Room": 75,
+ "KeyItemsLow": "18277,18267"
+ },
+ {
+ "X": 52736,
+ "Y": -3584,
+ "Z": 68864,
+ "Room": 75,
+ "KeyItemsLow": "18277,18267",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51712,
+ "Y": -2048,
+ "Z": 68096,
+ "Room": 76
+ },
+ {
+ "X": 38656,
+ "Y": -4096,
+ "Z": 67840,
+ "Room": 77,
+ "KeyItemsHigh": "18133"
+ },
+ {
+ "X": 38400,
+ "Y": -4096,
+ "Z": 67840,
+ "Room": 77,
+ "KeyItemsHigh": "18133",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": -4096,
+ "Z": 68096,
+ "Room": 77,
+ "KeyItemsHigh": "18133",
+ "Range": "Medium"
+ },
+ {
+ "X": 38656,
+ "Y": -4096,
+ "Z": 68096,
+ "Room": 77,
+ "KeyItemsHigh": "18133",
+ "KeyItemsLow": "18389",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38656,
+ "Y": -4096,
+ "Z": 68352,
+ "Room": 77,
+ "KeyItemsHigh": "18133",
+ "Range": "Large"
+ },
+ {
+ "X": 38400,
+ "Y": -4096,
+ "Z": 68352,
+ "Room": 77,
+ "KeyItemsHigh": "18133",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": -4096,
+ "Z": 71168,
+ "Room": 82
+ },
+ {
+ "X": 31232,
+ "Y": -6144,
+ "Z": 61952,
+ "Room": 79
+ },
+ {
+ "X": 33280,
+ "Y": -4096,
+ "Z": 72192,
+ "Room": 81
+ },
+ {
+ "X": 33280,
+ "Y": -3840,
+ "Z": 58880,
+ "Room": 74
+ },
+ {
+ "X": 38400,
+ "Y": -4096,
+ "Z": 59904,
+ "Room": 78
+ },
+ {
+ "X": 23296,
+ "Y": 1280,
+ "Z": 67328,
+ "Room": 89,
+ "KeyItemsHigh": "18277,18267"
+ },
+ {
+ "X": 23040,
+ "Y": 1280,
+ "Z": 67328,
+ "Room": 89,
+ "KeyItemsHigh": "18277,18267",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22784,
+ "Y": 1280,
+ "Z": 67328,
+ "Room": 89,
+ "KeyItemsHigh": "18277,18267",
+ "Range": "Medium"
+ },
+ {
+ "X": 22784,
+ "Y": 1280,
+ "Z": 67072,
+ "Room": 89,
+ "KeyItemsHigh": "18277,18267",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": 1280,
+ "Z": 67072,
+ "Room": 89,
+ "KeyItemsHigh": "18277,18267",
+ "Range": "Large"
+ },
+ {
+ "X": 23296,
+ "Y": 1280,
+ "Z": 67072,
+ "Room": 89,
+ "KeyItemsHigh": "18277,18267",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": 1280,
+ "Z": 66048,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": 3072,
+ "Z": 62976,
+ "Room": 11
+ },
+ {
+ "X": 15872,
+ "Y": 6656,
+ "Z": 67840,
+ "Room": 99,
+ "KeyItemsLow": "18389",
+ "Range": "Medium"
+ },
+ {
+ "X": 15872,
+ "Y": 6656,
+ "Z": 68096,
+ "Room": 99,
+ "KeyItemsLow": "18389",
+ "Range": "Large"
+ },
+ {
+ "X": 12800,
+ "Y": 5120,
+ "Z": 68096,
+ "Room": 80
+ },
+ {
+ "X": 8704,
+ "Y": 3840,
+ "Z": 70144,
+ "Room": 102
+ },
+ {
+ "X": 6656,
+ "Y": 3840,
+ "Z": 73216,
+ "Room": 93
+ },
+ {
+ "X": 6656,
+ "Y": 0,
+ "Z": 78336,
+ "Room": 94
+ },
+ {
+ "X": 11776,
+ "Y": 1792,
+ "Z": 81408,
+ "Room": 96
+ },
+ {
+ "X": 10752,
+ "Y": 6400,
+ "Z": 80384,
+ "Room": 95
+ },
+ {
+ "X": 10752,
+ "Y": 5760,
+ "Z": 82432,
+ "Room": 106
+ },
+ {
+ "X": 16896,
+ "Y": 8192,
+ "Z": 82432,
+ "Room": 107
+ },
+ {
+ "X": 16896,
+ "Y": 6784,
+ "Z": 78336,
+ "Room": 105
+ },
+ {
+ "X": 12800,
+ "Y": 5120,
+ "Z": 74240,
+ "Room": 103
+ },
+ {
+ "X": 23040,
+ "Y": 6656,
+ "Z": 78336,
+ "Room": 92
+ },
+ {
+ "X": 27136,
+ "Y": 9472,
+ "Z": 77312,
+ "Room": 91
+ },
+ {
+ "X": 27904,
+ "Y": 7168,
+ "Z": 78336,
+ "Room": 98,
+ "KeyItemsLow": "18389"
+ },
+ {
+ "X": 28160,
+ "Y": 7168,
+ "Z": 78336,
+ "Room": 98,
+ "KeyItemsLow": "18389",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": 5632,
+ "Z": 77312,
+ "Room": 108
+ },
+ {
+ "X": 22016,
+ "Y": 3840,
+ "Z": 78336,
+ "Room": 90
+ },
+ {
+ "X": 26112,
+ "Y": 3840,
+ "Z": 85504,
+ "Room": 97
+ },
+ {
+ "X": 27136,
+ "Y": 3840,
+ "Z": 71168,
+ "Room": 120,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 29184,
+ "Y": 256,
+ "Z": 70144,
+ "Room": 121,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 30208,
+ "Y": -3328,
+ "Z": 72192,
+ "Room": 122,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 28160,
+ "Y": 3840,
+ "Z": 78336,
+ "Room": 109
+ },
+ {
+ "X": 28160,
+ "Y": 3840,
+ "Z": 82432,
+ "Room": 110
+ },
+ {
+ "X": 32256,
+ "Y": 1280,
+ "Z": 85504,
+ "Room": 111
+ },
+ {
+ "X": 32000,
+ "Y": 3840,
+ "Z": 94720,
+ "Room": 112,
+ "KeyItemsHigh": "18389"
+ },
+ {
+ "X": 32256,
+ "Y": 3840,
+ "Z": 94720,
+ "Room": 112,
+ "KeyItemsHigh": "18389",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 32512,
+ "Y": 3840,
+ "Z": 94720,
+ "Room": 112,
+ "KeyItemsHigh": "18389",
+ "Range": "Medium"
+ },
+ {
+ "X": 32512,
+ "Y": 3840,
+ "Z": 94976,
+ "Room": 112,
+ "KeyItemsHigh": "18389",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 32256,
+ "Y": 3840,
+ "Z": 94976,
+ "Room": 112,
+ "KeyItemsHigh": "18389",
+ "Range": "Large"
+ },
+ {
+ "X": 32000,
+ "Y": 3840,
+ "Z": 94976,
+ "Room": 112,
+ "KeyItemsHigh": "18389",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "LEVEL8A.PHD": [
+ {
+ "X": 27136,
+ "Y": 0,
+ "Z": 6656,
+ "Room": 0,
+ "KeyItemsLow": "19217",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26880,
+ "Y": 0,
+ "Z": 6656,
+ "Room": 0,
+ "KeyItemsLow": "19217,19193",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29184,
+ "Y": -1280,
+ "Z": 6656,
+ "Room": 71,
+ "RequiresReturnPath": true,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 31232,
+ "Y": 1792,
+ "Z": 7680,
+ "Room": 72,
+ "RequiresReturnPath": true,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 35328,
+ "Y": 3840,
+ "Z": 7680,
+ "Room": 73,
+ "RequiresReturnPath": true,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 33280,
+ "Y": 5888,
+ "Z": 6656,
+ "Room": 74,
+ "RequiresReturnPath": true,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 28160,
+ "Y": 1152,
+ "Z": 15872,
+ "Room": 2,
+ "KeyItemsLow": "19217",
+ "Range": "Medium"
+ },
+ {
+ "X": 27900,
+ "Y": 1216,
+ "Z": 15872,
+ "Room": 2,
+ "KeyItemsLow": "19217,19193",
+ "Range": "Large"
+ },
+ {
+ "X": 27136,
+ "Y": 2304,
+ "Z": 16896,
+ "Room": 3
+ },
+ {
+ "X": 24064,
+ "Y": 1280,
+ "Z": 15872,
+ "Room": 17
+ },
+ {
+ "X": 24064,
+ "Y": 3328,
+ "Z": 15872,
+ "Room": 11
+ },
+ {
+ "X": 27136,
+ "Y": -512,
+ "Z": 20992,
+ "Room": 5,
+ "KeyItemsLow": "19217"
+ },
+ {
+ "X": 26880,
+ "Y": -512,
+ "Z": 20992,
+ "Room": 5,
+ "KeyItemsLow": "19217",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": -2560,
+ "Z": 19968,
+ "Room": 6
+ },
+ {
+ "X": 27136,
+ "Y": -1920,
+ "Z": 26112,
+ "Room": 12
+ },
+ {
+ "X": 25088,
+ "Y": -2432,
+ "Z": 26112,
+ "Room": 13
+ },
+ {
+ "X": 34304,
+ "Y": 1536,
+ "Z": 29184,
+ "Room": 4
+ },
+ {
+ "X": 30208,
+ "Y": -4352,
+ "Z": 36352,
+ "Room": 14
+ },
+ {
+ "X": 31232,
+ "Y": -7040,
+ "Z": 36352,
+ "Room": 15,
+ "Validated": false
+ },
+ {
+ "X": 31488,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 47,
+ "KeyItemsHigh": "19217"
+ },
+ {
+ "X": 31232,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 47,
+ "KeyItemsHigh": "19217",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30976,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 47,
+ "KeyItemsHigh": "19217",
+ "Range": "Medium"
+ },
+ {
+ "X": 30976,
+ "Y": 0,
+ "Z": 38656,
+ "Room": 47,
+ "KeyItemsHigh": "19217",
+ "KeyItemsLow": "19193",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 31232,
+ "Y": 0,
+ "Z": 38656,
+ "Room": 47,
+ "KeyItemsHigh": "19217",
+ "Range": "Large"
+ },
+ {
+ "X": 31488,
+ "Y": 0,
+ "Z": 38656,
+ "Room": 47,
+ "KeyItemsHigh": "19217",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 31232,
+ "Y": 0,
+ "Z": 47616,
+ "Room": 48
+ },
+ {
+ "X": 38400,
+ "Y": -1792,
+ "Z": 44544,
+ "Room": 56
+ },
+ {
+ "X": 38400,
+ "Y": -2304,
+ "Z": 29184,
+ "Room": 9
+ },
+ {
+ "X": 40448,
+ "Y": -2304,
+ "Z": 34304,
+ "Room": 28
+ },
+ {
+ "X": 47616,
+ "Y": -2304,
+ "Z": 34304,
+ "Room": 38
+ },
+ {
+ "X": 48640,
+ "Y": -2304,
+ "Z": 34304,
+ "Room": 40
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 33280,
+ "Room": 42
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 37
+ },
+ {
+ "X": 46592,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 32
+ },
+ {
+ "X": 47616,
+ "Y": -1792,
+ "Z": 28160,
+ "Room": 45
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 36352,
+ "Room": 68,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": 1536,
+ "Z": 31232,
+ "Room": 57
+ },
+ {
+ "X": 58880,
+ "Y": 1152,
+ "Z": 28160,
+ "Room": 36
+ },
+ {
+ "X": 46592,
+ "Y": 1792,
+ "Z": 28160,
+ "Room": 10
+ },
+ {
+ "X": 41472,
+ "Y": 0,
+ "Z": 26112,
+ "Room": 19
+ },
+ {
+ "X": 45568,
+ "Y": -1792,
+ "Z": 28160,
+ "Room": 18
+ },
+ {
+ "X": 43520,
+ "Y": -4096,
+ "Z": 24064,
+ "Room": 20
+ },
+ {
+ "X": 43520,
+ "Y": -4096,
+ "Z": 23040,
+ "Room": 22
+ },
+ {
+ "X": 43520,
+ "Y": -6400,
+ "Z": 20992,
+ "Room": 23
+ },
+ {
+ "X": 42496,
+ "Y": -4096,
+ "Z": 33280,
+ "Room": 25
+ },
+ {
+ "X": 43520,
+ "Y": -7680,
+ "Z": 28160,
+ "Room": 26
+ },
+ {
+ "X": 47616,
+ "Y": -7936,
+ "Z": 30208,
+ "Room": 43
+ },
+ {
+ "X": 48640,
+ "Y": -7936,
+ "Z": 31232,
+ "Room": 44
+ },
+ {
+ "X": 57856,
+ "Y": -4096,
+ "Z": 31232,
+ "Room": 41
+ },
+ {
+ "X": 55808,
+ "Y": 1024,
+ "Z": 25088,
+ "Room": 52,
+ "KeyItemsLow": "19193",
+ "Range": "Medium"
+ },
+ {
+ "X": 56832,
+ "Y": 2304,
+ "Z": 24064,
+ "Room": 53
+ },
+ {
+ "X": 54784,
+ "Y": 2304,
+ "Z": 28160,
+ "Room": 16
+ },
+ {
+ "X": 54784,
+ "Y": 3584,
+ "Z": 29184,
+ "Room": 54
+ },
+ {
+ "X": 52736,
+ "Y": 7424,
+ "Z": 36352,
+ "Room": 55
+ },
+ {
+ "X": 50688,
+ "Y": 7424,
+ "Z": 37376,
+ "Room": 59
+ },
+ {
+ "X": 58880,
+ "Y": 7424,
+ "Z": 37376,
+ "Room": 46
+ },
+ {
+ "X": 53760,
+ "Y": 4096,
+ "Z": 40448,
+ "Room": 35
+ },
+ {
+ "X": 51712,
+ "Y": 4096,
+ "Z": 42496,
+ "Room": 65
+ },
+ {
+ "X": 49664,
+ "Y": 4096,
+ "Z": 41472,
+ "Room": 35
+ },
+ {
+ "X": 46592,
+ "Y": 3840,
+ "Z": 41472,
+ "Room": 34,
+ "KeyItemsLow": "19193"
+ },
+ {
+ "X": 46592,
+ "Y": 3840,
+ "Z": 41728,
+ "Room": 34,
+ "KeyItemsLow": "19193",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 2048,
+ "Z": 44544,
+ "Room": 50
+ },
+ {
+ "X": 46592,
+ "Y": -1536,
+ "Z": 37376,
+ "Room": 33
+ },
+ {
+ "X": 40448,
+ "Y": -4352,
+ "Z": 45568,
+ "Room": 51
+ },
+ {
+ "X": 41472,
+ "Y": 0,
+ "Z": 45568,
+ "Room": 49
+ }
+ ],
+ "LEVEL8B.PHD": [
+ {
+ "X": 45568,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 24,
+ "KeyItemsLow": "20308,20160,20151,20152,20163",
+ "Range": "Medium"
+ },
+ {
+ "X": 45312,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 24,
+ "KeyItemsLow": "20308,20160,20151,20152,20163",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45312,
+ "Y": 0,
+ "Z": 37632,
+ "Room": 24,
+ "KeyItemsLow": "20308,20160,20151,20152,20163,20213",
+ "Range": "Large"
+ },
+ {
+ "X": 45568,
+ "Y": 0,
+ "Z": 37632,
+ "Room": 24,
+ "KeyItemsLow": "20308,20160,20151,20152,20163,20213",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": 0,
+ "Z": 28160,
+ "Room": 85,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 44544,
+ "Y": -1280,
+ "Z": 26112,
+ "Room": 86,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 40448,
+ "Room": 29
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 32
+ },
+ {
+ "X": 56832,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 39,
+ "KeyItemsLow": "20308"
+ },
+ {
+ "X": 57088,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 39,
+ "KeyItemsLow": "20308",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 58880,
+ "Y": 256,
+ "Z": 60928,
+ "Room": 71
+ },
+ {
+ "X": 58880,
+ "Y": 1792,
+ "Z": 64000,
+ "Room": 69
+ },
+ {
+ "X": 58880,
+ "Y": 3840,
+ "Z": 67072,
+ "Room": 70
+ },
+ {
+ "X": 57856,
+ "Y": -256,
+ "Z": 70144,
+ "Room": 72
+ },
+ {
+ "X": 61952,
+ "Y": 0,
+ "Z": 60928,
+ "Room": 73
+ },
+ {
+ "X": 64000,
+ "Y": 4352,
+ "Z": 62976,
+ "Room": 74
+ },
+ {
+ "X": 69120,
+ "Y": 0,
+ "Z": 64000,
+ "Room": 75
+ },
+ {
+ "X": 62976,
+ "Y": -2048,
+ "Z": 61952,
+ "Room": 76
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 68
+ },
+ {
+ "X": 61184,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 60,
+ "KeyItemsHigh": "20308",
+ "KeyItemsLow": "20160,20151,20152,20163"
+ },
+ {
+ "X": 60928,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 60,
+ "KeyItemsHigh": "20308",
+ "KeyItemsLow": "20160,20151,20152,20163",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60672,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 60,
+ "KeyItemsHigh": "20308",
+ "Range": "Medium"
+ },
+ {
+ "X": 60672,
+ "Y": -2048,
+ "Z": 51456,
+ "Room": 60,
+ "KeyItemsHigh": "20308",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": -2048,
+ "Z": 51456,
+ "Room": 60,
+ "KeyItemsHigh": "20308",
+ "Range": "Large"
+ },
+ {
+ "X": 61184,
+ "Y": -2048,
+ "Z": 51456,
+ "Room": 60,
+ "KeyItemsHigh": "20308",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 65024,
+ "Y": -3328,
+ "Z": 52736,
+ "Room": 57
+ },
+ {
+ "X": 53760,
+ "Y": -3072,
+ "Z": 56832,
+ "Room": 16
+ },
+ {
+ "X": 52736,
+ "Y": 2560,
+ "Z": 57856,
+ "Room": 56
+ },
+ {
+ "X": 50688,
+ "Y": 256,
+ "Z": 57856,
+ "Room": 36
+ },
+ {
+ "X": 52736,
+ "Y": 640,
+ "Z": 61952,
+ "Room": 54
+ },
+ {
+ "X": 47616,
+ "Y": 2816,
+ "Z": 62976,
+ "Room": 53
+ },
+ {
+ "X": 46592,
+ "Y": 1024,
+ "Z": 69120,
+ "Room": 52
+ },
+ {
+ "X": 45568,
+ "Y": 2560,
+ "Z": 66048,
+ "Room": 51
+ },
+ {
+ "X": 44544,
+ "Y": 3072,
+ "Z": 68096,
+ "Room": 55
+ },
+ {
+ "X": 51712,
+ "Y": -1280,
+ "Z": 67072,
+ "Room": 50
+ },
+ {
+ "X": 52736,
+ "Y": -3072,
+ "Z": 68096,
+ "Room": 34
+ },
+ {
+ "X": 51712,
+ "Y": -5888,
+ "Z": 65024,
+ "Room": 47
+ },
+ {
+ "X": 45568,
+ "Y": -8448,
+ "Z": 64000,
+ "Room": 46
+ },
+ {
+ "X": 46592,
+ "Y": -8448,
+ "Z": 61952,
+ "Room": 49
+ },
+ {
+ "X": 49664,
+ "Y": -8448,
+ "Z": 60928,
+ "Room": 42
+ },
+ {
+ "X": 44544,
+ "Y": -8704,
+ "Z": 64000,
+ "Room": 43
+ },
+ {
+ "X": 43520,
+ "Y": -8704,
+ "Z": 60928,
+ "Room": 37
+ },
+ {
+ "X": 43520,
+ "Y": -4352,
+ "Z": 57856,
+ "Room": 31
+ },
+ {
+ "X": 43520,
+ "Y": -2048,
+ "Z": 54784,
+ "Room": 35
+ },
+ {
+ "X": 35328,
+ "Y": 256,
+ "Z": 52736,
+ "Room": 48
+ },
+ {
+ "X": 44544,
+ "Y": -3072,
+ "Z": 58880,
+ "Room": 33
+ },
+ {
+ "X": 36352,
+ "Y": -5376,
+ "Z": 59904,
+ "Room": 38
+ },
+ {
+ "X": 38400,
+ "Y": -10496,
+ "Z": 52736,
+ "Room": 41
+ },
+ {
+ "X": 38400,
+ "Y": -11008,
+ "Z": 57856,
+ "Room": 44
+ },
+ {
+ "X": 49664,
+ "Y": -3072,
+ "Z": 51712,
+ "Room": 78
+ },
+ {
+ "X": 49664,
+ "Y": -3072,
+ "Z": 50688,
+ "Room": 45
+ },
+ {
+ "X": 53760,
+ "Y": -5888,
+ "Z": 46592,
+ "Room": 79
+ },
+ {
+ "X": 54784,
+ "Y": -5888,
+ "Z": 46592,
+ "Room": 80
+ },
+ {
+ "X": 49664,
+ "Y": -3072,
+ "Z": 43520,
+ "Room": 81
+ },
+ {
+ "X": 45568,
+ "Y": -512,
+ "Z": 45568,
+ "Room": 30
+ },
+ {
+ "X": 44544,
+ "Y": -768,
+ "Z": 45568,
+ "Room": 82
+ },
+ {
+ "X": 49664,
+ "Y": 2560,
+ "Z": 48640,
+ "Room": 83
+ },
+ {
+ "X": 51712,
+ "Y": -1536,
+ "Z": 43520,
+ "Room": 27,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": -768,
+ "Z": 51712,
+ "Room": 77
+ },
+ {
+ "X": 49408,
+ "Y": 7680,
+ "Z": 56832,
+ "Room": 63,
+ "KeyItemsHigh": "20160,20151,20152,20163"
+ },
+ {
+ "X": 49664,
+ "Y": 7680,
+ "Z": 56832,
+ "Room": 63,
+ "KeyItemsHigh": "20160,20151,20152,20163",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49920,
+ "Y": 7680,
+ "Z": 56832,
+ "Room": 63,
+ "KeyItemsHigh": "20160,20151,20152,20163",
+ "KeyItemsLow": "20213",
+ "Range": "Medium"
+ },
+ {
+ "X": 49920,
+ "Y": 7680,
+ "Z": 56576,
+ "Room": 63,
+ "KeyItemsHigh": "20160,20151,20152,20163",
+ "KeyItemsLow": "20213",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 7680,
+ "Z": 56576,
+ "Room": 63,
+ "KeyItemsHigh": "20160,20151,20152,20163",
+ "Range": "Large"
+ },
+ {
+ "X": 49408,
+ "Y": 7680,
+ "Z": 56576,
+ "Room": 63,
+ "KeyItemsHigh": "20160,20151,20152,20163",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 7680,
+ "Z": 40448,
+ "Room": 58
+ },
+ {
+ "X": 35328,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 62
+ },
+ {
+ "X": 36352,
+ "Y": -1024,
+ "Z": 46592,
+ "Room": 59
+ },
+ {
+ "X": 34304,
+ "Y": -3072,
+ "Z": 37376,
+ "Room": 61
+ },
+ {
+ "X": 34304,
+ "Y": -3200,
+ "Z": 31232,
+ "Room": 67
+ },
+ {
+ "X": 30464,
+ "Y": -2944,
+ "Z": 26112,
+ "Room": 12,
+ "KeyItemsLow": "20213"
+ },
+ {
+ "X": 30208,
+ "Y": -2944,
+ "Z": 26112,
+ "Room": 12,
+ "KeyItemsLow": "20213",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": -2176,
+ "Z": 25088,
+ "Room": 11
+ },
+ {
+ "X": 34304,
+ "Y": -4224,
+ "Z": 26112,
+ "Room": 13
+ },
+ {
+ "X": 42496,
+ "Y": -2304,
+ "Z": 17920,
+ "Room": 8
+ },
+ {
+ "X": 42496,
+ "Y": -2688,
+ "Z": 27136,
+ "Room": 26,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -1536,
+ "Z": 34304,
+ "Room": 23,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": -4352,
+ "Z": 37376,
+ "Room": 25,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": 0,
+ "Z": 33280,
+ "Room": 22,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": 1536,
+ "Z": 17920,
+ "Room": 3
+ },
+ {
+ "X": 29184,
+ "Y": -2944,
+ "Z": 13824,
+ "Room": 5
+ },
+ {
+ "X": 30208,
+ "Y": -1280,
+ "Z": 12800,
+ "Room": 4
+ },
+ {
+ "X": 26112,
+ "Y": -256,
+ "Z": 20736,
+ "Room": 9,
+ "KeyItemsHigh": "20213"
+ },
+ {
+ "X": 26112,
+ "Y": -256,
+ "Z": 20992,
+ "Room": 9,
+ "KeyItemsHigh": "20213",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26112,
+ "Y": -256,
+ "Z": 21248,
+ "Room": 9,
+ "KeyItemsHigh": "20213",
+ "Range": "Medium"
+ },
+ {
+ "X": 25856,
+ "Y": -256,
+ "Z": 21248,
+ "Room": 9,
+ "KeyItemsHigh": "20213",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25856,
+ "Y": -256,
+ "Z": 20992,
+ "Room": 9,
+ "KeyItemsHigh": "20213",
+ "Range": "Large"
+ },
+ {
+ "X": 25856,
+ "Y": -256,
+ "Z": 20736,
+ "Room": 9,
+ "KeyItemsHigh": "20213",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "LEVEL8C.PHD": [
+ {
+ "X": 9728,
+ "Y": -512,
+ "Z": 49664,
+ "Room": 60
+ },
+ {
+ "X": 15872,
+ "Y": 512,
+ "Z": 49664,
+ "Room": 56,
+ "KeyItemsLow": "21191,21100,21196",
+ "Range": "Large"
+ },
+ {
+ "X": 15872,
+ "Y": 512,
+ "Z": 49408,
+ "Room": 56,
+ "KeyItemsLow": "21191,21100,21196",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20992,
+ "Y": -512,
+ "Z": 49664,
+ "Room": 41
+ },
+ {
+ "X": 38400,
+ "Y": -4352,
+ "Z": 48640,
+ "Room": 2
+ },
+ {
+ "X": 40448,
+ "Y": -6912,
+ "Z": 48896,
+ "Room": 1,
+ "KeyItemsLow": "21100,21196"
+ },
+ {
+ "X": 40448,
+ "Y": -6912,
+ "Z": 48640,
+ "Room": 1,
+ "KeyItemsLow": "21100,21196",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": -6912,
+ "Z": 48384,
+ "Room": 1,
+ "KeyItemsLow": "21100,21196,21191",
+ "Range": "Medium"
+ },
+ {
+ "X": 40704,
+ "Y": -6912,
+ "Z": 48384,
+ "Room": 1,
+ "KeyItemsLow": "21100,21196,21191",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": -9216,
+ "Z": 46592,
+ "Room": 3
+ },
+ {
+ "X": 45568,
+ "Y": -8832,
+ "Z": 58880,
+ "Room": 11
+ },
+ {
+ "X": 41472,
+ "Y": -6528,
+ "Z": 59904,
+ "Room": 10
+ },
+ {
+ "X": 36352,
+ "Y": -8448,
+ "Z": 57856,
+ "Room": 11
+ },
+ {
+ "X": 35328,
+ "Y": -8448,
+ "Z": 56832,
+ "Room": 12
+ },
+ {
+ "X": 33280,
+ "Y": -11520,
+ "Z": 54784,
+ "Room": 58
+ },
+ {
+ "X": 31232,
+ "Y": -13568,
+ "Z": 54784,
+ "Room": 59
+ },
+ {
+ "X": 28160,
+ "Y": -13568,
+ "Z": 55808,
+ "Room": 16
+ },
+ {
+ "X": 44544,
+ "Y": -3200,
+ "Z": 44544,
+ "Room": 0
+ },
+ {
+ "X": 54784,
+ "Y": -768,
+ "Z": 44544,
+ "Room": 6
+ },
+ {
+ "X": 48640,
+ "Y": -1152,
+ "Z": 57856,
+ "Room": 7
+ },
+ {
+ "X": 55808,
+ "Y": -5632,
+ "Z": 48640,
+ "Room": 8
+ },
+ {
+ "X": 57856,
+ "Y": -9216,
+ "Z": 48640,
+ "Room": 9
+ },
+ {
+ "X": 44544,
+ "Y": -1280,
+ "Z": 38400,
+ "Room": 13
+ },
+ {
+ "X": 48640,
+ "Y": -6656,
+ "Z": 36352,
+ "Room": 14
+ },
+ {
+ "X": 49664,
+ "Y": -8448,
+ "Z": 36352,
+ "Room": 15
+ },
+ {
+ "X": 37376,
+ "Y": -1280,
+ "Z": 39424,
+ "Room": 33,
+ "KeyItemsLow": "21191"
+ },
+ {
+ "X": 37376,
+ "Y": -1280,
+ "Z": 39168,
+ "Room": 33,
+ "KeyItemsLow": "21191",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": -1280,
+ "Z": 36352,
+ "Room": 35
+ },
+ {
+ "X": 36352,
+ "Y": 1536,
+ "Z": 33280,
+ "Room": 34
+ },
+ {
+ "X": 36352,
+ "Y": 4352,
+ "Z": 32256,
+ "Room": 36
+ },
+ {
+ "X": 34304,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 37
+ },
+ {
+ "X": 34304,
+ "Y": -2560,
+ "Z": 37376,
+ "Room": 38
+ },
+ {
+ "X": 29184,
+ "Y": 3712,
+ "Z": 38400,
+ "Room": 19
+ },
+ {
+ "X": 28160,
+ "Y": -1792,
+ "Z": 39424,
+ "Room": 39
+ },
+ {
+ "X": 28416,
+ "Y": -2048,
+ "Z": 35328,
+ "Room": 40,
+ "KeyItemsHigh": "21191"
+ },
+ {
+ "X": 28160,
+ "Y": -2048,
+ "Z": 35328,
+ "Room": 40,
+ "KeyItemsHigh": "21191",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 27904,
+ "Y": -2048,
+ "Z": 35328,
+ "Room": 40,
+ "KeyItemsHigh": "21191",
+ "Range": "Medium"
+ },
+ {
+ "X": 27904,
+ "Y": -2048,
+ "Z": 35072,
+ "Room": 40,
+ "KeyItemsHigh": "21191",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": -2048,
+ "Z": 35072,
+ "Room": 40,
+ "KeyItemsHigh": "21191",
+ "Range": "Large"
+ },
+ {
+ "X": 28416,
+ "Y": -2048,
+ "Z": 35072,
+ "Room": 40,
+ "KeyItemsHigh": "21191",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": 23552,
+ "Z": 47360,
+ "Room": 4,
+ "KeyItemsHigh": "21100,21196",
+ "KeyItemsLow": "21202"
+ },
+ {
+ "X": 37376,
+ "Y": 23552,
+ "Z": 47616,
+ "Room": 4,
+ "KeyItemsHigh": "21100,21196",
+ "KeyItemsLow": "21202",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": 23552,
+ "Z": 47872,
+ "Room": 4,
+ "KeyItemsHigh": "21100,21196",
+ "KeyItemsLow": "21202",
+ "Range": "Medium"
+ },
+ {
+ "X": 37120,
+ "Y": 23552,
+ "Z": 47872,
+ "Room": 4,
+ "KeyItemsHigh": "21100,21196",
+ "KeyItemsLow": "21202",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37120,
+ "Y": 23552,
+ "Z": 47616,
+ "Room": 4,
+ "KeyItemsHigh": "21100,21196",
+ "KeyItemsLow": "21202",
+ "Range": "Large"
+ },
+ {
+ "X": 37120,
+ "Y": 23552,
+ "Z": 47360,
+ "Room": 4,
+ "KeyItemsHigh": "21100,21196",
+ "KeyItemsLow": "21202",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": 23552,
+ "Z": 52736,
+ "Room": 45
+ },
+ {
+ "X": 23040,
+ "Y": 9984,
+ "Z": 52736,
+ "Room": 49
+ },
+ {
+ "X": 22016,
+ "Y": 7680,
+ "Z": 51712,
+ "Room": 52
+ },
+ {
+ "X": 28160,
+ "Y": 5632,
+ "Z": 44544,
+ "Room": 21
+ },
+ {
+ "X": 29184,
+ "Y": 8448,
+ "Z": 44544,
+ "Room": 22
+ },
+ {
+ "X": 33280,
+ "Y": 17920,
+ "Z": 52736,
+ "Room": 5
+ },
+ {
+ "X": 30208,
+ "Y": 23552,
+ "Z": 44544,
+ "Room": 24
+ },
+ {
+ "X": 27136,
+ "Y": 20992,
+ "Z": 44544,
+ "Room": 20
+ },
+ {
+ "X": 24064,
+ "Y": 19456,
+ "Z": 45568,
+ "Room": 26
+ },
+ {
+ "X": 24064,
+ "Y": 17920,
+ "Z": 49664,
+ "Room": 27
+ },
+ {
+ "X": 28160,
+ "Y": 16128,
+ "Z": 48640,
+ "Room": 28
+ },
+ {
+ "X": 27136,
+ "Y": 14080,
+ "Z": 44544,
+ "Room": 29
+ },
+ {
+ "X": 24064,
+ "Y": 12800,
+ "Z": 43520,
+ "Room": 64,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 23040,
+ "Y": 12800,
+ "Z": 44544,
+ "Room": 64,
+ "RoomType": "Challenge"
+ },
+ {
+ "X": 24064,
+ "Y": 12544,
+ "Z": 45568,
+ "Room": 30
+ },
+ {
+ "X": 24064,
+ "Y": 11008,
+ "Z": 49664,
+ "Room": 31
+ },
+ {
+ "X": 28160,
+ "Y": 9216,
+ "Z": 48640,
+ "Room": 23
+ },
+ {
+ "X": 27136,
+ "Y": 7168,
+ "Z": 44544,
+ "Room": 25
+ },
+ {
+ "X": 24064,
+ "Y": 5632,
+ "Z": 45568,
+ "Room": 32
+ },
+ {
+ "X": 24064,
+ "Y": 4096,
+ "Z": 49664,
+ "Room": 42
+ },
+ {
+ "X": 28160,
+ "Y": 2304,
+ "Z": 48640,
+ "Room": 43
+ },
+ {
+ "X": 27136,
+ "Y": 512,
+ "Z": 44544,
+ "Room": 44
+ },
+ {
+ "X": 26112,
+ "Y": 4608,
+ "Z": 52480,
+ "Room": 57,
+ "KeyItemsHigh": "21202"
+ },
+ {
+ "X": 25856,
+ "Y": 4608,
+ "Z": 52480,
+ "Room": 57,
+ "KeyItemsHigh": "21202",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25856,
+ "Y": 4608,
+ "Z": 52736,
+ "Room": 57,
+ "KeyItemsHigh": "21202",
+ "Range": "Medium"
+ },
+ {
+ "X": 26112,
+ "Y": 4608,
+ "Z": 52736,
+ "Room": 57,
+ "KeyItemsHigh": "21202",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26112,
+ "Y": 4608,
+ "Z": 52992,
+ "Room": 57,
+ "KeyItemsHigh": "21202",
+ "Range": "Large"
+ },
+ {
+ "X": 25856,
+ "Y": 4608,
+ "Z": 52992,
+ "Room": 57,
+ "KeyItemsHigh": "21202",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": 3072,
+ "Z": 53760,
+ "Room": 61
+ },
+ {
+ "X": 28160,
+ "Y": 4608,
+ "Z": 59904,
+ "Room": 62
+ },
+ {
+ "X": 38400,
+ "Y": 3072,
+ "Z": 59904,
+ "Room": 63
+ }
+ ],
+ "LEVEL10A.PHD": [
+ {
+ "X": 49664,
+ "Y": -4480,
+ "Z": 1536,
+ "Room": 86
+ },
+ {
+ "X": 49306,
+ "Y": -2265,
+ "Z": 9728,
+ "Room": 0,
+ "KeyItemsLow": "22148,22160,22183,22146"
+ },
+ {
+ "X": 49664,
+ "Y": -2176,
+ "Z": 9728,
+ "Room": 0,
+ "KeyItemsLow": "22148,22160,22183,22146",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49993,
+ "Y": -2093,
+ "Z": 9728,
+ "Room": 0,
+ "KeyItemsLow": "22148,22160,22183,22137,22146",
+ "Range": "Medium"
+ },
+ {
+ "X": 49993,
+ "Y": -2095,
+ "Z": 9984,
+ "Room": 0,
+ "KeyItemsLow": "22148,22160,22183,22137,22146",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -2176,
+ "Z": 9984,
+ "Room": 0,
+ "KeyItemsLow": "22148,22160,22183,22137,22146",
+ "Range": "Large"
+ },
+ {
+ "X": 49306,
+ "Y": -2265,
+ "Z": 9984,
+ "Room": 0,
+ "KeyItemsLow": "22148,22160,22183,22216,22137,22146",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -1664,
+ "Z": 22016,
+ "Room": 4
+ },
+ {
+ "X": 54784,
+ "Y": -2688,
+ "Z": 27136,
+ "Room": 8
+ },
+ {
+ "X": 55808,
+ "Y": -5376,
+ "Z": 27136,
+ "Room": 5
+ },
+ {
+ "X": 56832,
+ "Y": -5376,
+ "Z": 31232,
+ "Room": 12
+ },
+ {
+ "X": 48640,
+ "Y": -5376,
+ "Z": 30208,
+ "Room": 3,
+ "KeyItemsLow": "22137"
+ },
+ {
+ "X": 48640,
+ "Y": -5376,
+ "Z": 30464,
+ "Room": 3,
+ "KeyItemsLow": "22137",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": -5376,
+ "Z": 33280,
+ "Room": 9
+ },
+ {
+ "X": 45568,
+ "Y": -4352,
+ "Z": 40448,
+ "Room": 10
+ },
+ {
+ "X": 46592,
+ "Y": -3840,
+ "Z": 47616,
+ "Room": 15
+ },
+ {
+ "X": 46592,
+ "Y": -3840,
+ "Z": 49664,
+ "Room": 40
+ },
+ {
+ "X": 53760,
+ "Y": -9216,
+ "Z": 30208,
+ "Room": 7,
+ "KeyItemsHigh": "22137"
+ },
+ {
+ "X": 54016,
+ "Y": -9216,
+ "Z": 30208,
+ "Room": 7,
+ "KeyItemsHigh": "22137",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": -9216,
+ "Z": 27136,
+ "Room": 6
+ },
+ {
+ "X": 57856,
+ "Y": -9216,
+ "Z": 27136,
+ "Room": 28
+ },
+ {
+ "X": 62976,
+ "Y": -7680,
+ "Z": 26112,
+ "Room": 18
+ },
+ {
+ "X": 66048,
+ "Y": -7168,
+ "Z": 26112,
+ "Room": 87,
+ "KeyItemsHigh": "22137",
+ "Range": "Medium"
+ },
+ {
+ "X": 66048,
+ "Y": -7168,
+ "Z": 25856,
+ "Room": 87,
+ "KeyItemsHigh": "22137",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": -8448,
+ "Z": 25088,
+ "Room": 30
+ },
+ {
+ "X": 72192,
+ "Y": -7168,
+ "Z": 28160,
+ "Room": 92
+ },
+ {
+ "X": 69120,
+ "Y": -7168,
+ "Z": 28160,
+ "Room": 94
+ },
+ {
+ "X": 67072,
+ "Y": -7168,
+ "Z": 28160,
+ "Room": 91
+ },
+ {
+ "X": 68096,
+ "Y": -7168,
+ "Z": 31232,
+ "Room": 93
+ },
+ {
+ "X": 74240,
+ "Y": -7168,
+ "Z": 27136,
+ "Room": 31
+ },
+ {
+ "X": 83456,
+ "Y": -6656,
+ "Z": 29184,
+ "Room": 19
+ },
+ {
+ "X": 86528,
+ "Y": -6656,
+ "Z": 29184,
+ "Room": 33
+ },
+ {
+ "X": 99840,
+ "Y": -6656,
+ "Z": 26112,
+ "Room": 37
+ },
+ {
+ "X": 98816,
+ "Y": -8448,
+ "Z": 33280,
+ "Room": 38
+ },
+ {
+ "X": 92672,
+ "Y": -7168,
+ "Z": 32256,
+ "Room": 34
+ },
+ {
+ "X": 86528,
+ "Y": -8576,
+ "Z": 25088,
+ "Room": 36
+ },
+ {
+ "X": 84480,
+ "Y": -10112,
+ "Z": 26112,
+ "Room": 35
+ },
+ {
+ "X": 81408,
+ "Y": -5632,
+ "Z": 23040,
+ "Room": 41
+ },
+ {
+ "X": 77312,
+ "Y": -7168,
+ "Z": 19968,
+ "Room": 43
+ },
+ {
+ "X": 75264,
+ "Y": -10880,
+ "Z": 20992,
+ "Room": 44
+ },
+ {
+ "X": 75264,
+ "Y": -11008,
+ "Z": 25088,
+ "Room": 42
+ },
+ {
+ "X": 43520,
+ "Y": -5632,
+ "Z": 22016,
+ "Room": 11,
+ "KeyItemsLow": "22137"
+ },
+ {
+ "X": 43520,
+ "Y": -5632,
+ "Z": 22272,
+ "Room": 11,
+ "KeyItemsLow": "22137",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 43264,
+ "Y": -5632,
+ "Z": 22272,
+ "Room": 11,
+ "KeyItemsLow": "22137",
+ "Range": "Medium"
+ },
+ {
+ "X": 43264,
+ "Y": -5632,
+ "Z": 22016,
+ "Room": 11,
+ "KeyItemsLow": "22137",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55808,
+ "Y": -3840,
+ "Z": 44544,
+ "Room": 13
+ },
+ {
+ "X": 57856,
+ "Y": -6144,
+ "Z": 44544,
+ "Room": 14
+ },
+ {
+ "X": 77312,
+ "Y": -6912,
+ "Z": 34304,
+ "Room": 85,
+ "KeyItemsHigh": "22137"
+ },
+ {
+ "X": 77568,
+ "Y": -6912,
+ "Z": 34304,
+ "Room": 85,
+ "KeyItemsHigh": "22137",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 77568,
+ "Y": -6912,
+ "Z": 34560,
+ "Room": 85,
+ "KeyItemsHigh": "22137",
+ "Range": "Medium"
+ },
+ {
+ "X": 77312,
+ "Y": -6912,
+ "Z": 34560,
+ "Room": 85,
+ "KeyItemsHigh": "22137",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 77312,
+ "Y": -6784,
+ "Z": 41472,
+ "Room": 45
+ },
+ {
+ "X": 76288,
+ "Y": -6656,
+ "Z": 50688,
+ "Room": 89
+ },
+ {
+ "X": 65024,
+ "Y": -9472,
+ "Z": 29440,
+ "Room": 32,
+ "KeyItemsHigh": "22148,22160,22183,22146"
+ },
+ {
+ "X": 65024,
+ "Y": -9472,
+ "Z": 29184,
+ "Room": 32,
+ "KeyItemsHigh": "22148,22160,22183,22146",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 65024,
+ "Y": -9472,
+ "Z": 28928,
+ "Room": 32,
+ "KeyItemsHigh": "22148,22160,22183,22146",
+ "Range": "Medium"
+ },
+ {
+ "X": 64768,
+ "Y": -9472,
+ "Z": 28928,
+ "Room": 32,
+ "KeyItemsHigh": "22148,22160,22183,22146",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64768,
+ "Y": -9472,
+ "Z": 29184,
+ "Room": 32,
+ "KeyItemsHigh": "22148,22160,22183,22146",
+ "Range": "Large"
+ },
+ {
+ "X": 64768,
+ "Y": -9472,
+ "Z": 29440,
+ "Room": 32,
+ "KeyItemsHigh": "22148,22160,22183,22146",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": -12032,
+ "Z": 30208,
+ "Room": 101
+ },
+ {
+ "X": 62976,
+ "Y": -12032,
+ "Z": 34304,
+ "Room": 103
+ },
+ {
+ "X": 59904,
+ "Y": -10752,
+ "Z": 29184,
+ "Room": 39
+ },
+ {
+ "X": 59904,
+ "Y": -9728,
+ "Z": 24064,
+ "Room": 20
+ },
+ {
+ "X": 60928,
+ "Y": -3840,
+ "Z": 44544,
+ "Room": 21,
+ "KeyItemsLow": "22137"
+ },
+ {
+ "X": 61184,
+ "Y": -3840,
+ "Z": 44544,
+ "Room": 21,
+ "KeyItemsLow": "22137",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61184,
+ "Y": -3840,
+ "Z": 44800,
+ "Room": 21,
+ "KeyItemsLow": "22137",
+ "Range": "Medium"
+ },
+ {
+ "X": 60928,
+ "Y": -3840,
+ "Z": 44800,
+ "Room": 21,
+ "KeyItemsLow": "22137",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62208,
+ "Y": -3072,
+ "Z": 51712,
+ "Room": 17,
+ "KeyItemsHigh": "22137"
+ },
+ {
+ "X": 62208,
+ "Y": -3072,
+ "Z": 51968,
+ "Room": 17,
+ "KeyItemsHigh": "22137",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61952,
+ "Y": -3072,
+ "Z": 51968,
+ "Room": 17,
+ "KeyItemsHigh": "22137",
+ "Range": "Medium"
+ },
+ {
+ "X": 61952,
+ "Y": -3072,
+ "Z": 51712,
+ "Room": 17,
+ "KeyItemsHigh": "22137",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61696,
+ "Y": -3072,
+ "Z": 51712,
+ "Room": 17,
+ "KeyItemsHigh": "22137",
+ "Range": "Large"
+ },
+ {
+ "X": 61696,
+ "Y": -3072,
+ "Z": 51968,
+ "Room": 17,
+ "KeyItemsHigh": "22137",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53760,
+ "Y": -2944,
+ "Z": 51712,
+ "Room": 22
+ },
+ {
+ "X": 67072,
+ "Y": 1408,
+ "Z": 57856,
+ "Room": 24
+ },
+ {
+ "X": 64000,
+ "Y": 384,
+ "Z": 56832,
+ "Room": 23,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 2944,
+ "Z": 62976,
+ "Room": 26
+ },
+ {
+ "X": 56832,
+ "Y": 2688,
+ "Z": 66048,
+ "Room": 52
+ },
+ {
+ "X": 70144,
+ "Y": 3456,
+ "Z": 65024,
+ "Room": 53
+ },
+ {
+ "X": 70144,
+ "Y": 3584,
+ "Z": 58880,
+ "Room": 25
+ },
+ {
+ "X": 76288,
+ "Y": 4224,
+ "Z": 58880,
+ "Room": 46
+ },
+ {
+ "X": 79360,
+ "Y": 4352,
+ "Z": 56832,
+ "Room": 47
+ },
+ {
+ "X": 80384,
+ "Y": 2560,
+ "Z": 52736,
+ "Room": 107
+ },
+ {
+ "X": 87552,
+ "Y": 2560,
+ "Z": 53760,
+ "Room": 106
+ },
+ {
+ "X": 87552,
+ "Y": 4352,
+ "Z": 54784,
+ "Room": 99
+ },
+ {
+ "X": 78336,
+ "Y": 2304,
+ "Z": 54784,
+ "Room": 100
+ },
+ {
+ "X": 91648,
+ "Y": 5632,
+ "Z": 59904,
+ "Room": 48
+ },
+ {
+ "X": 83456,
+ "Y": 3584,
+ "Z": 67072,
+ "Room": 51,
+ "KeyItemsLow": "22216",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 82432,
+ "Y": 3456,
+ "Z": 66048,
+ "Room": 55
+ },
+ {
+ "X": 75264,
+ "Y": -1024,
+ "Z": 65024,
+ "Room": 56
+ },
+ {
+ "X": 69120,
+ "Y": -1024,
+ "Z": 64000,
+ "Room": 54
+ },
+ {
+ "X": 53760,
+ "Y": -3072,
+ "Z": 61952,
+ "Room": 27
+ },
+ {
+ "X": 90624,
+ "Y": 5632,
+ "Z": 65024,
+ "Room": 49,
+ "KeyItemsLow": "22216",
+ "Range": "Medium"
+ },
+ {
+ "X": 90624,
+ "Y": 5632,
+ "Z": 65280,
+ "Room": 49,
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 90368,
+ "Y": 5632,
+ "Z": 65280,
+ "Room": 49,
+ "KeyItemsLow": "22216",
+ "Range": "Large"
+ },
+ {
+ "X": 87552,
+ "Y": 5632,
+ "Z": 69120,
+ "Room": 50
+ },
+ {
+ "X": 72192,
+ "Y": 5632,
+ "Z": 69120,
+ "Room": 57
+ },
+ {
+ "X": 72192,
+ "Y": 5632,
+ "Z": 75264,
+ "Room": 58
+ },
+ {
+ "X": 64000,
+ "Y": 8960,
+ "Z": 80384,
+ "Room": 102
+ },
+ {
+ "X": 58880,
+ "Y": 8960,
+ "Z": 79360,
+ "Room": 104
+ },
+ {
+ "X": 59904,
+ "Y": 6400,
+ "Z": 81408,
+ "Room": 105
+ },
+ {
+ "X": 71168,
+ "Y": 3328,
+ "Z": 92672,
+ "Room": 59
+ },
+ {
+ "X": 70144,
+ "Y": 3328,
+ "Z": 97792,
+ "Room": 60
+ },
+ {
+ "X": 56832,
+ "Y": 1024,
+ "Z": 95744,
+ "Room": 61
+ },
+ {
+ "X": 56832,
+ "Y": -2048,
+ "Z": 91648,
+ "Room": 62
+ },
+ {
+ "X": 55808,
+ "Y": -5632,
+ "Z": 92672,
+ "Room": 63
+ },
+ {
+ "X": 56832,
+ "Y": -9984,
+ "Z": 89600,
+ "Room": 64,
+ "KeyItemsLow": "22216"
+ },
+ {
+ "X": 57088,
+ "Y": -9984,
+ "Z": 89600,
+ "Room": 64,
+ "KeyItemsLow": "22216",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": -11264,
+ "Z": 95744,
+ "Room": 65
+ },
+ {
+ "X": 55808,
+ "Y": -11264,
+ "Z": 98816,
+ "Room": 81
+ },
+ {
+ "X": 54784,
+ "Y": -10752,
+ "Z": 100864,
+ "Room": 74
+ },
+ {
+ "X": 50688,
+ "Y": -9984,
+ "Z": 96768,
+ "Room": 67
+ },
+ {
+ "X": 54784,
+ "Y": -9984,
+ "Z": 93696,
+ "Room": 66
+ },
+ {
+ "X": 53760,
+ "Y": -9984,
+ "Z": 93696,
+ "Room": 68
+ },
+ {
+ "X": 48640,
+ "Y": -11264,
+ "Z": 91648,
+ "Room": 69
+ },
+ {
+ "X": 47616,
+ "Y": -9984,
+ "Z": 92672,
+ "Room": 80
+ },
+ {
+ "X": 47616,
+ "Y": -11008,
+ "Z": 85504,
+ "Room": 75
+ },
+ {
+ "X": 37376,
+ "Y": -8960,
+ "Z": 95744,
+ "Room": 73
+ },
+ {
+ "X": 37376,
+ "Y": -8960,
+ "Z": 90624,
+ "Room": 70
+ },
+ {
+ "X": 37376,
+ "Y": -9088,
+ "Z": 91648,
+ "Room": 72
+ },
+ {
+ "X": 36352,
+ "Y": -11008,
+ "Z": 91648,
+ "Room": 78
+ },
+ {
+ "X": 34304,
+ "Y": -11520,
+ "Z": 96768,
+ "Room": 77,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": -11264,
+ "Z": 89600,
+ "Room": 76
+ },
+ {
+ "X": 31232,
+ "Y": -14336,
+ "Z": 88576,
+ "Room": 79
+ },
+ {
+ "X": 34304,
+ "Y": -11136,
+ "Z": 84480,
+ "Room": 71
+ },
+ {
+ "X": 33280,
+ "Y": -8704,
+ "Z": 92672,
+ "Room": 82,
+ "KeyItemsHigh": "22216"
+ },
+ {
+ "X": 33536,
+ "Y": -8704,
+ "Z": 92672,
+ "Room": 82,
+ "KeyItemsHigh": "22216",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33536,
+ "Y": -8704,
+ "Z": 92928,
+ "Room": 82,
+ "KeyItemsHigh": "22216",
+ "Range": "Medium"
+ },
+ {
+ "X": 33280,
+ "Y": -8704,
+ "Z": 92928,
+ "Room": 82,
+ "KeyItemsHigh": "22216",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33024,
+ "Y": -8704,
+ "Z": 92928,
+ "Room": 82,
+ "KeyItemsHigh": "22216",
+ "Range": "Large"
+ },
+ {
+ "X": 33024,
+ "Y": -8704,
+ "Z": 92672,
+ "Room": 82,
+ "KeyItemsHigh": "22216",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "LEVEL10B.PHD": [
+ {
+ "X": 57856,
+ "Y": 10240,
+ "Z": 10752,
+ "Room": 12
+ },
+ {
+ "X": 57856,
+ "Y": 10240,
+ "Z": 18944,
+ "Room": 9
+ },
+ {
+ "X": 54784,
+ "Y": 10240,
+ "Z": 36352,
+ "Room": 22
+ },
+ {
+ "X": 55808,
+ "Y": 7680,
+ "Z": 33280,
+ "Room": 7
+ },
+ {
+ "X": 65024,
+ "Y": 7680,
+ "Z": 33280,
+ "Room": 11
+ },
+ {
+ "X": 59904,
+ "Y": 10240,
+ "Z": 38400,
+ "Room": 6
+ },
+ {
+ "X": 59904,
+ "Y": 10240,
+ "Z": 41472,
+ "Room": 2
+ },
+ {
+ "X": 59904,
+ "Y": 11520,
+ "Z": 41472,
+ "Room": 5
+ },
+ {
+ "X": 59904,
+ "Y": 11520,
+ "Z": 40448,
+ "Room": 98
+ },
+ {
+ "X": 60928,
+ "Y": 11520,
+ "Z": 37376,
+ "Room": 99
+ },
+ {
+ "X": 64000,
+ "Y": 9984,
+ "Z": 38400,
+ "Room": 68
+ },
+ {
+ "X": 64000,
+ "Y": 10240,
+ "Z": 43520,
+ "Room": 8
+ },
+ {
+ "X": 67072,
+ "Y": 10240,
+ "Z": 43520,
+ "Room": 13
+ },
+ {
+ "X": 70144,
+ "Y": 11776,
+ "Z": 45568,
+ "Room": 15
+ },
+ {
+ "X": 73216,
+ "Y": 10752,
+ "Z": 43520,
+ "Room": 16
+ },
+ {
+ "X": 68096,
+ "Y": 10240,
+ "Z": 52736,
+ "Room": 17
+ },
+ {
+ "X": 61952,
+ "Y": 11264,
+ "Z": 58880,
+ "Room": 20
+ },
+ {
+ "X": 60928,
+ "Y": 14464,
+ "Z": 59904,
+ "Room": 21
+ },
+ {
+ "X": 53760,
+ "Y": 5376,
+ "Z": 50688,
+ "Room": 97
+ },
+ {
+ "X": 52736,
+ "Y": 11008,
+ "Z": 57856,
+ "Room": 18
+ },
+ {
+ "X": 61952,
+ "Y": 8320,
+ "Z": 62976,
+ "Room": 26
+ },
+ {
+ "X": 43520,
+ "Y": 10496,
+ "Z": 58880,
+ "Room": 27
+ },
+ {
+ "X": 42496,
+ "Y": 4864,
+ "Z": 48640,
+ "Room": 31
+ },
+ {
+ "X": 43520,
+ "Y": 7424,
+ "Z": 48640,
+ "Room": 29
+ },
+ {
+ "X": 52736,
+ "Y": 4992,
+ "Z": 48640,
+ "Room": 30
+ },
+ {
+ "X": 54784,
+ "Y": 5120,
+ "Z": 48640,
+ "Room": 1
+ },
+ {
+ "X": 52736,
+ "Y": 4864,
+ "Z": 44544,
+ "Room": 28
+ },
+ {
+ "X": 51712,
+ "Y": 6144,
+ "Z": 44544,
+ "Room": 77
+ },
+ {
+ "X": 49664,
+ "Y": 6144,
+ "Z": 44544,
+ "Room": 76
+ },
+ {
+ "X": 47616,
+ "Y": 3328,
+ "Z": 42496,
+ "Room": 78
+ },
+ {
+ "X": 46592,
+ "Y": 2816,
+ "Z": 39424,
+ "Room": 81
+ },
+ {
+ "X": 46592,
+ "Y": 4608,
+ "Z": 38400,
+ "Room": 79
+ },
+ {
+ "X": 46592,
+ "Y": 3328,
+ "Z": 32256,
+ "Room": 32
+ },
+ {
+ "X": 48640,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 33
+ },
+ {
+ "X": 53760,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 34
+ },
+ {
+ "X": 57856,
+ "Y": -640,
+ "Z": 31232,
+ "Room": 60
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 72
+ },
+ {
+ "X": 49664,
+ "Y": 256,
+ "Z": 39424,
+ "Room": 39
+ },
+ {
+ "X": 58880,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 25
+ },
+ {
+ "X": 60928,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 35
+ },
+ {
+ "X": 60928,
+ "Y": 0,
+ "Z": 41472,
+ "Room": 0
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 37
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 46592,
+ "Room": 38
+ },
+ {
+ "X": 65024,
+ "Y": 1024,
+ "Z": 54784,
+ "Room": 61
+ },
+ {
+ "X": 61952,
+ "Y": 1024,
+ "Z": 56832,
+ "Room": 40
+ },
+ {
+ "X": 49664,
+ "Y": 1024,
+ "Z": 66048,
+ "Room": 69
+ },
+ {
+ "X": 50688,
+ "Y": -512,
+ "Z": 53760,
+ "Room": 86
+ },
+ {
+ "X": 56832,
+ "Y": -5120,
+ "Z": 51712,
+ "Room": 41
+ },
+ {
+ "X": 56832,
+ "Y": -5120,
+ "Z": 49664,
+ "Room": 3
+ },
+ {
+ "X": 53760,
+ "Y": -5120,
+ "Z": 47616,
+ "Room": 42
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 45568,
+ "Room": 87
+ },
+ {
+ "X": 51712,
+ "Y": -5120,
+ "Z": 40448,
+ "Room": 88
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 39424,
+ "Room": 89
+ },
+ {
+ "X": 39424,
+ "Y": -6656,
+ "Z": 42496,
+ "Room": 90
+ },
+ {
+ "X": 38400,
+ "Y": -6656,
+ "Z": 41472,
+ "Room": 92
+ },
+ {
+ "X": 38400,
+ "Y": -6656,
+ "Z": 36352,
+ "Room": 91
+ },
+ {
+ "X": 51712,
+ "Y": -8960,
+ "Z": 34304,
+ "Room": 100
+ },
+ {
+ "X": 52736,
+ "Y": -8576,
+ "Z": 36352,
+ "Room": 70
+ },
+ {
+ "X": 59904,
+ "Y": -8448,
+ "Z": 36352,
+ "Room": 71
+ },
+ {
+ "X": 62976,
+ "Y": -8448,
+ "Z": 35328,
+ "Room": 94,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": -10240,
+ "Z": 37376,
+ "Room": 44
+ },
+ {
+ "X": 59904,
+ "Y": -10240,
+ "Z": 41472,
+ "Room": 4
+ },
+ {
+ "X": 62976,
+ "Y": -10240,
+ "Z": 43520,
+ "Room": 45
+ },
+ {
+ "X": 65024,
+ "Y": -10240,
+ "Z": 44544,
+ "Room": 46
+ },
+ {
+ "X": 65024,
+ "Y": -10240,
+ "Z": 54784,
+ "Room": 93
+ },
+ {
+ "X": 59904,
+ "Y": -11392,
+ "Z": 54784,
+ "Room": 47
+ },
+ {
+ "X": 52736,
+ "Y": -9344,
+ "Z": 55808,
+ "Room": 80
+ },
+ {
+ "X": 56832,
+ "Y": -10240,
+ "Z": 55808,
+ "Room": 84
+ },
+ {
+ "X": 55808,
+ "Y": -10112,
+ "Z": 53760,
+ "Room": 82
+ },
+ {
+ "X": 48640,
+ "Y": -13056,
+ "Z": 54784,
+ "Room": 62
+ },
+ {
+ "X": 47616,
+ "Y": -13312,
+ "Z": 55808,
+ "Room": 74
+ },
+ {
+ "X": 47616,
+ "Y": -14592,
+ "Z": 58880,
+ "Room": 73
+ },
+ {
+ "X": 45568,
+ "Y": -17536,
+ "Z": 62976,
+ "Room": 75,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": -14208,
+ "Z": 62976,
+ "Room": 59
+ },
+ {
+ "X": 41472,
+ "Y": -13056,
+ "Z": 62976,
+ "Room": 10
+ },
+ {
+ "X": 31232,
+ "Y": -13312,
+ "Z": 59904,
+ "Room": 57
+ },
+ {
+ "X": 40448,
+ "Y": -15104,
+ "Z": 55808,
+ "Room": 55
+ },
+ {
+ "X": 40448,
+ "Y": -18432,
+ "Z": 49664,
+ "Room": 53
+ },
+ {
+ "X": 43520,
+ "Y": -18688,
+ "Z": 45568,
+ "Room": 54
+ },
+ {
+ "X": 48640,
+ "Y": -18688,
+ "Z": 39424,
+ "Room": 51
+ },
+ {
+ "X": 48640,
+ "Y": -18688,
+ "Z": 51712,
+ "Room": 52
+ },
+ {
+ "X": 48640,
+ "Y": -18688,
+ "Z": 45568,
+ "Room": 50
+ },
+ {
+ "X": 54784,
+ "Y": -18688,
+ "Z": 44544,
+ "Room": 49
+ },
+ {
+ "X": 57856,
+ "Y": -15616,
+ "Z": 45568,
+ "Room": 36
+ },
+ {
+ "X": 65024,
+ "Y": -15616,
+ "Z": 45568,
+ "Room": 48,
+ "Validated": false
+ },
+ {
+ "X": 56832,
+ "Y": -15616,
+ "Z": 40448,
+ "Room": 56
+ }
+ ],
+ "LEVEL10C.PHD": [
+ {
+ "X": 58880,
+ "Y": -15616,
+ "Z": 11776,
+ "Room": 36
+ },
+ {
+ "X": 60928,
+ "Y": -10240,
+ "Z": 7680,
+ "Room": 4,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 10752,
+ "Room": 0,
+ "Validated": false
+ },
+ {
+ "X": 60928,
+ "Y": 10240,
+ "Z": 7680,
+ "Room": 2,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": -15616,
+ "Z": 11776,
+ "Room": 48
+ },
+ {
+ "X": 69120,
+ "Y": -15616,
+ "Z": 12800,
+ "Room": 6
+ },
+ {
+ "X": 69120,
+ "Y": -12544,
+ "Z": 19968,
+ "Room": 7
+ },
+ {
+ "X": 69120,
+ "Y": -12544,
+ "Z": 20992,
+ "Room": 8
+ },
+ {
+ "X": 71168,
+ "Y": -11008,
+ "Z": 26112,
+ "Room": 11
+ },
+ {
+ "X": 72192,
+ "Y": -11264,
+ "Z": 25088,
+ "Room": 12
+ },
+ {
+ "X": 72192,
+ "Y": -12672,
+ "Z": 20992,
+ "Room": 10
+ },
+ {
+ "X": 69120,
+ "Y": -14592,
+ "Z": 23040,
+ "Room": 9
+ },
+ {
+ "X": 69120,
+ "Y": -14592,
+ "Z": 27136,
+ "Room": 13
+ },
+ {
+ "X": 68096,
+ "Y": -14592,
+ "Z": 29184,
+ "Room": 14
+ },
+ {
+ "X": 66048,
+ "Y": -14592,
+ "Z": 30208,
+ "Room": 16
+ },
+ {
+ "X": 61952,
+ "Y": -12544,
+ "Z": 29184,
+ "Room": 15
+ },
+ {
+ "X": 62976,
+ "Y": -13568,
+ "Z": 27136,
+ "Room": 17
+ },
+ {
+ "X": 62976,
+ "Y": -13568,
+ "Z": 24064,
+ "Room": 18
+ },
+ {
+ "X": 62976,
+ "Y": -13568,
+ "Z": 18944,
+ "Room": 63
+ },
+ {
+ "X": 53760,
+ "Y": -13824,
+ "Z": 18944,
+ "Room": 38
+ },
+ {
+ "X": 64000,
+ "Y": -18688,
+ "Z": 16896,
+ "Room": 61
+ },
+ {
+ "X": 53760,
+ "Y": -23040,
+ "Z": 15872,
+ "Room": 60
+ },
+ {
+ "X": 52736,
+ "Y": -23040,
+ "Z": 8704,
+ "Room": 47
+ },
+ {
+ "X": 52736,
+ "Y": -18688,
+ "Z": 8704,
+ "Room": 50
+ },
+ {
+ "X": 55808,
+ "Y": -18688,
+ "Z": 10752,
+ "Room": 49
+ },
+ {
+ "X": 44544,
+ "Y": -18688,
+ "Z": 11776,
+ "Room": 54
+ },
+ {
+ "X": 42496,
+ "Y": -18688,
+ "Z": 11776,
+ "Room": 53
+ },
+ {
+ "X": 49664,
+ "Y": -18688,
+ "Z": 5632,
+ "Room": 51
+ },
+ {
+ "X": 54784,
+ "Y": -16384,
+ "Z": 5632,
+ "Room": 56
+ },
+ {
+ "X": 50688,
+ "Y": -18688,
+ "Z": 17920,
+ "Room": 52
+ },
+ {
+ "X": 46592,
+ "Y": -13056,
+ "Z": 16896,
+ "Room": 20
+ },
+ {
+ "X": 47616,
+ "Y": -12544,
+ "Z": 23040,
+ "Room": 21
+ },
+ {
+ "X": 47616,
+ "Y": -10880,
+ "Z": 34304,
+ "Room": 22
+ },
+ {
+ "X": 37376,
+ "Y": -11008,
+ "Z": 35328,
+ "Room": 23
+ },
+ {
+ "X": 34304,
+ "Y": -9088,
+ "Z": 35328,
+ "Room": 24
+ },
+ {
+ "X": 28160,
+ "Y": -5120,
+ "Z": 41472,
+ "Room": 25
+ },
+ {
+ "X": 32256,
+ "Y": -3584,
+ "Z": 45568,
+ "Room": 26
+ },
+ {
+ "X": 34304,
+ "Y": -512,
+ "Z": 40448,
+ "Room": 19
+ },
+ {
+ "X": 43520,
+ "Y": -512,
+ "Z": 39424,
+ "Room": 57
+ },
+ {
+ "X": 45568,
+ "Y": -768,
+ "Z": 51712,
+ "Room": 27
+ },
+ {
+ "X": 46592,
+ "Y": 3072,
+ "Z": 50688,
+ "Room": 28
+ },
+ {
+ "X": 59904,
+ "Y": -768,
+ "Z": 51712,
+ "Room": 29
+ },
+ {
+ "X": 68096,
+ "Y": 0,
+ "Z": 51712,
+ "Room": 64
+ },
+ {
+ "X": 65024,
+ "Y": 3968,
+ "Z": 53760,
+ "Room": 30,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": 12544,
+ "Z": 50688,
+ "Room": 32
+ },
+ {
+ "X": 66048,
+ "Y": 8704,
+ "Z": 51712,
+ "Room": 31
+ },
+ {
+ "X": 65024,
+ "Y": 12032,
+ "Z": 55808,
+ "Room": 37
+ },
+ {
+ "X": 65024,
+ "Y": 9600,
+ "Z": 61952,
+ "Room": 33
+ },
+ {
+ "X": 65024,
+ "Y": 9728,
+ "Z": 64000,
+ "Room": 34
+ },
+ {
+ "X": 68096,
+ "Y": 9728,
+ "Z": 73216,
+ "Room": 43
+ },
+ {
+ "X": 48640,
+ "Y": 8832,
+ "Z": 68096,
+ "Room": 41
+ },
+ {
+ "X": 44544,
+ "Y": 9728,
+ "Z": 68096,
+ "Room": 42
+ },
+ {
+ "X": 45568,
+ "Y": 8064,
+ "Z": 74240,
+ "Room": 39
+ },
+ {
+ "X": 51712,
+ "Y": 5888,
+ "Z": 80384,
+ "Room": 35
+ },
+ {
+ "X": 51712,
+ "Y": 5888,
+ "Z": 82432,
+ "Room": 40
+ },
+ {
+ "X": 56832,
+ "Y": 2048,
+ "Z": 81408,
+ "Room": 45
+ },
+ {
+ "X": 56832,
+ "Y": 3584,
+ "Z": 76288,
+ "Room": 35
+ },
+ {
+ "X": 61952,
+ "Y": 2048,
+ "Z": 68096,
+ "Room": 44
+ },
+ {
+ "X": 61952,
+ "Y": 2048,
+ "Z": 62976,
+ "Room": 58
+ },
+ {
+ "X": 53760,
+ "Y": -1792,
+ "Z": 61952,
+ "Room": 55
+ },
+ {
+ "X": 53760,
+ "Y": 768,
+ "Z": 72192,
+ "Room": 46
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 73216,
+ "Room": 59
+ }
+ ]
}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json b/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json
index ef5a74921..535e11335 100644
--- a/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json
+++ b/TRRandomizerCore/Resources/TR2/Locations/invalid_item_locations.json
@@ -40,6 +40,12 @@
"Room": 52,
"Validated": false
},
+ {
+ "X": 18944,
+ "Y": 3456,
+ "Z": 56832,
+ "Room": 53
+ },
{
"X": 83456,
"Y": 18304,
@@ -1195,6 +1201,12 @@
"Room": 50,
"InvalidatesRoom": true
},
+ {
+ "X": 33280,
+ "Y": -2560,
+ "Z": 94720,
+ "Room": 92
+ },
{
"X": 18944,
"Y": -8704,
@@ -1346,7 +1358,8 @@
"X": 41472,
"Y": -5120,
"Z": 55808,
- "Room": 31
+ "Room": 31,
+ "TargetType": 1
}
],
"PLATFORM.TR2": [
@@ -1430,6 +1443,34 @@
"Z": 64000,
"Room": 36,
"InvalidatesRoom": true
+ },
+ {
+ "X": 40448,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 15,
+ "TargetType": 1
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 82432,
+ "Room": 14,
+ "TargetType": 1
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 16,
+ "TargetType": 1
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 72192,
+ "Room": 13,
+ "TargetType": 1
}
],
"UNWATER.TR2": [
@@ -1680,11 +1721,18 @@
"Z": 86528,
"Room": 60
},
+ {
+ "X": 68096,
+ "Y": 4352,
+ "Z": 86528,
+ "Room": 60
+ },
{
"X": 66048,
"Y": 4864,
"Z": 70144,
- "Room": 49
+ "Room": 49,
+ "TargetType": 1
},
{
"X": 58880,
@@ -1712,6 +1760,18 @@
"Z": 36352,
"Room": 40
},
+ {
+ "X": 47616,
+ "Y": 3840,
+ "Z": 34304,
+ "Room": 36
+ },
+ {
+ "X": 46592,
+ "Y": 3840,
+ "Z": 34304,
+ "Room": 36
+ },
{
"X": 68096,
"Y": 10752,
@@ -2002,6 +2062,20 @@
"Z": 28160,
"Room": 51,
"InvalidatesRoom": true
+ },
+ {
+ "X": 48640,
+ "Y": -2560,
+ "Z": 42496,
+ "Room": 36,
+ "TargetType": 1
+ },
+ {
+ "X": 49664,
+ "Y": -2560,
+ "Z": 42496,
+ "Room": 36,
+ "TargetType": 1
}
],
"DECK.TR2": [
@@ -2230,6 +2304,54 @@
"Z": 67072,
"Room": 10
},
+ {
+ "X": 58880,
+ "Y": 4864,
+ "Z": 69120,
+ "Room": 10
+ },
+ {
+ "X": 59904,
+ "Y": 4608,
+ "Z": 67072,
+ "Room": 10
+ },
+ {
+ "X": 60928,
+ "Y": 3584,
+ "Z": 66048,
+ "Room": 10
+ },
+ {
+ "X": 60928,
+ "Y": 4608,
+ "Z": 65024,
+ "Room": 10
+ },
+ {
+ "X": 61952,
+ "Y": 4864,
+ "Z": 65024,
+ "Room": 11
+ },
+ {
+ "X": 61952,
+ "Y": 5376,
+ "Z": 64000,
+ "Room": 11
+ },
+ {
+ "X": 61952,
+ "Y": 4096,
+ "Z": 66048,
+ "Room": 11
+ },
+ {
+ "X": 61952,
+ "Y": 3584,
+ "Z": 67072,
+ "Room": 11
+ },
{
"X": 52736,
"Y": 3072,
@@ -2535,6 +2657,26 @@
"Room": 10,
"InvalidatesRoom": true
},
+ {
+ "X": 12800,
+ "Y": -1536,
+ "Z": 51712,
+ "Room": 63,
+ "TargetType": 1
+ },
+ {
+ "X": 11776,
+ "Y": -1536,
+ "Z": 52736,
+ "Room": 63,
+ "TargetType": 1
+ },
+ {
+ "X": 76288,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 0
+ },
{
"X": 71168,
"Y": -896,
@@ -2542,6 +2684,20 @@
"Room": 10,
"Validated": false
},
+ {
+ "X": 68096,
+ "Y": -384,
+ "Z": 29184,
+ "Room": 4,
+ "TargetType": 1
+ },
+ {
+ "X": 67072,
+ "Y": -896,
+ "Z": 29184,
+ "Room": 4,
+ "TargetType": 1
+ },
{
"X": 71168,
"Y": -1024,
@@ -3002,7 +3158,7 @@
"Room": 63
},
{
- "X": 15872,
+ "X": 16896,
"Y": 1024,
"Z": 57856,
"Room": 70
@@ -3629,6 +3785,54 @@
"Y": -4608,
"Z": 65024,
"Room": 55
+ },
+ {
+ "X": 69120,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 12
+ },
+ {
+ "X": 70144,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 12
+ },
+ {
+ "X": 71168,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 12
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 12
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 12
+ },
+ {
+ "X": 71168,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 12
+ },
+ {
+ "X": 70144,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 12
+ },
+ {
+ "X": 69120,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 12
}
],
"CATACOMB.TR2": [
@@ -3638,6 +3842,31 @@
"Z": 34304,
"Room": 0
},
+ {
+ "X": 34304,
+ "Y": 10496,
+ "Z": 40448,
+ "Room": 17
+ },
+ {
+ "X": 35328,
+ "Y": 10496,
+ "Z": 40448,
+ "Room": 17
+ },
+ {
+ "X": 44544,
+ "Y": 4864,
+ "Z": 66048,
+ "Room": 42
+ },
+ {
+ "X": 53760,
+ "Y": 11520,
+ "Z": 39424,
+ "Room": 121,
+ "InvalidatesRoom": true
+ },
{
"X": 27136,
"Y": 1024,
@@ -4169,11 +4398,64 @@
"Room": 31
},
{
- "X": 37376,
- "Y": 4224,
+ "X": 49664,
+ "Y": 6656,
"Z": 20992,
- "Room": 73,
- "InvalidatesRoom": true
+ "Room": 73
+ },
+ {
+ "X": 49664,
+ "Y": 6784,
+ "Z": 19968,
+ "Room": 73
+ },
+ {
+ "X": 49664,
+ "Y": 6784,
+ "Z": 18944,
+ "Room": 73
+ },
+ {
+ "X": 48640,
+ "Y": 6656,
+ "Z": 20992,
+ "Room": 73
+ },
+ {
+ "X": 48640,
+ "Y": 6784,
+ "Z": 19968,
+ "Room": 73
+ },
+ {
+ "X": 48640,
+ "Y": 6784,
+ "Z": 18944,
+ "Room": 73
+ },
+ {
+ "X": 48640,
+ "Y": 6656,
+ "Z": 17920,
+ "Room": 73
+ },
+ {
+ "X": 48640,
+ "Y": 6528,
+ "Z": 16896,
+ "Room": 73
+ },
+ {
+ "X": 47616,
+ "Y": 6272,
+ "Z": 16896,
+ "Room": 73
+ },
+ {
+ "X": 47616,
+ "Y": 6400,
+ "Z": 17920,
+ "Room": 73
},
{
"X": 53760,
@@ -4228,6 +4510,12 @@
"Y": 6656,
"Z": 29184,
"Room": 10
+ },
+ {
+ "X": 49664,
+ "Y": 6912,
+ "Z": 35328,
+ "Room": 10
}
],
"EMPRTOMB.TR2": [
@@ -4238,6 +4526,33 @@
"Room": 190,
"InvalidatesRoom": true
},
+ {
+ "X": 28160,
+ "Y": -2560,
+ "Z": 69120,
+ "Room": 90
+ },
+ {
+ "X": 53760,
+ "Y": 15360,
+ "Z": 36352,
+ "Room": 40,
+ "InvalidatesRoom": true
+ },
+ {
+ "X": 52736,
+ "Y": 15232,
+ "Z": 36352,
+ "Room": 40,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 14976,
+ "Z": 36352,
+ "Room": 40,
+ "Validated": false
+ },
{
"X": 51712,
"Y": 12544,
@@ -4301,6 +4616,47 @@
"Z": 70144,
"Room": 92
},
+ {
+ "X": 19968,
+ "Y": -7680,
+ "Z": 70144,
+ "Room": 92,
+ "TargetType": 1
+ },
+ {
+ "X": 19968,
+ "Y": -7680,
+ "Z": 71168,
+ "Room": 92,
+ "TargetType": 1
+ },
+ {
+ "X": 19968,
+ "Y": -6656,
+ "Z": 69120,
+ "Room": 92,
+ "TargetType": 1
+ },
+ {
+ "X": 19968,
+ "Y": -5632,
+ "Z": 68096,
+ "Room": 92,
+ "TargetType": 1
+ },
+ {
+ "X": 18944,
+ "Y": -5632,
+ "Z": 68096,
+ "Room": 92,
+ "TargetType": 1
+ },
+ {
+ "X": 18944,
+ "Y": -2560,
+ "Z": 67072,
+ "Room": 90
+ },
{
"X": 20992,
"Y": -7680,
@@ -4811,6 +5167,12 @@
"Z": 60928,
"Room": 91
},
+ {
+ "X": 20992,
+ "Y": -2560,
+ "Z": 61952,
+ "Room": 90
+ },
{
"X": 23040,
"Y": -1024,
@@ -5121,6 +5483,12 @@
"Room": 37,
"InvalidatesRoom": true
},
+ {
+ "X": 32256,
+ "Y": 2560,
+ "Z": 65024,
+ "Room": 72
+ },
{
"X": 38400,
"Y": -4864,
diff --git a/TRRandomizerCore/Resources/TR2/Locations/routes.json b/TRRandomizerCore/Resources/TR2/Locations/routes.json
index 7a73a41bf..c2da992a3 100644
--- a/TRRandomizerCore/Resources/TR2/Locations/routes.json
+++ b/TRRandomizerCore/Resources/TR2/Locations/routes.json
@@ -1,2 +1,13675 @@
{
+ "WALL.TR2": [
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 25088,
+ "Room": 78,
+ "Validated": false
+ },
+ {
+ "X": 62720,
+ "Y": 2688,
+ "Z": 23040,
+ "Room": 35,
+ "KeyItemsLow": "10250,10291",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": 2688,
+ "Z": 23040,
+ "Room": 35,
+ "KeyItemsLow": "10250,10291",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": 5632,
+ "Z": 30208,
+ "Room": 36
+ },
+ {
+ "X": 69120,
+ "Y": 6400,
+ "Z": 37376,
+ "Room": 37
+ },
+ {
+ "X": 58880,
+ "Y": 1536,
+ "Z": 32256,
+ "Room": 38
+ },
+ {
+ "X": 56832,
+ "Y": -1408,
+ "Z": 35328,
+ "Room": 70
+ },
+ {
+ "X": 57856,
+ "Y": -4096,
+ "Z": 29184,
+ "Room": 69,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": -4736,
+ "Z": 28160,
+ "Room": 67,
+ "Validated": false
+ },
+ {
+ "X": 64000,
+ "Y": -3200,
+ "Z": 37376,
+ "Room": 68,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": -5632,
+ "Z": 34304,
+ "Room": 73,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -3072,
+ "Z": 32256,
+ "Room": 31,
+ "KeyItemsLow": "10250,10291",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54016,
+ "Y": 1536,
+ "Z": 36352,
+ "Room": 33,
+ "KeyItemsLow": "10250,10291"
+ },
+ {
+ "X": 53760,
+ "Y": 1536,
+ "Z": 36352,
+ "Room": 33,
+ "KeyItemsLow": "10250,10291",
+ "Range": "Medium"
+ },
+ {
+ "X": 53504,
+ "Y": 1536,
+ "Z": 36352,
+ "Room": 33,
+ "KeyItemsLow": "10250,10291",
+ "Range": "Large"
+ },
+ {
+ "X": 50688,
+ "Y": -1024,
+ "Z": 31232,
+ "Room": 3
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 0
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 2
+ },
+ {
+ "X": 39424,
+ "Y": 128,
+ "Z": 33280,
+ "Room": 77
+ },
+ {
+ "X": 40448,
+ "Y": 7808,
+ "Z": 38400,
+ "Room": 9
+ },
+ {
+ "X": 43520,
+ "Y": 6784,
+ "Z": 39424,
+ "Room": 34
+ },
+ {
+ "X": 40448,
+ "Y": 3712,
+ "Z": 41472,
+ "Room": 7
+ },
+ {
+ "X": 48640,
+ "Y": 2560,
+ "Z": 41472,
+ "Room": 24
+ },
+ {
+ "X": 30208,
+ "Y": 2944,
+ "Z": 40448,
+ "Room": 23
+ },
+ {
+ "X": 28160,
+ "Y": -256,
+ "Z": 38400,
+ "Room": 21,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -3456,
+ "Z": 46592,
+ "Room": 18,
+ "Validated": false
+ },
+ {
+ "X": 31232,
+ "Y": -2176,
+ "Z": 47616,
+ "Room": 1,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": -5504,
+ "Z": 48640,
+ "Room": 16,
+ "Validated": false
+ },
+ {
+ "X": 36352,
+ "Y": -6528,
+ "Z": 49664,
+ "Room": 17,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -2176,
+ "Z": 47616,
+ "Room": 22,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -3712,
+ "Z": 45568,
+ "Room": 20,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": -6144,
+ "Z": 37376,
+ "Room": 19,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": -6144,
+ "Z": 37376,
+ "Room": 8,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": -6144,
+ "Z": 34304,
+ "Room": 6,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": -6144,
+ "Z": 30208,
+ "Room": 5,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -6144,
+ "Z": 30208,
+ "Room": 29,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": -6784,
+ "Z": 31232,
+ "Room": 14,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": -5632,
+ "Z": 28160,
+ "Room": 27,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": -2688,
+ "Z": 29184,
+ "Room": 25,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": -4224,
+ "Z": 27136,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -7040,
+ "Z": 25088,
+ "Room": 29,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": -6784,
+ "Z": 25088,
+ "Room": 5,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": -5632,
+ "Z": 27136,
+ "Room": 28,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -6400,
+ "Z": 27136,
+ "Room": 30,
+ "Validated": false
+ },
+ {
+ "X": 24900,
+ "Y": -5120,
+ "Z": 28167,
+ "Room": 28,
+ "Validated": false
+ },
+ {
+ "X": 29184,
+ "Y": -2304,
+ "Z": 30208,
+ "Room": 26,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": -6144,
+ "Z": 30208,
+ "Room": 30,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": -7168,
+ "Z": 31232,
+ "Room": 11,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": -6144,
+ "Z": 37376,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": 0,
+ "Z": 34048,
+ "Room": 4,
+ "KeyItemsHigh": "10291"
+ },
+ {
+ "X": 30208,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 4,
+ "KeyItemsHigh": "10291",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 4,
+ "KeyItemsHigh": "10291",
+ "Range": "Medium"
+ },
+ {
+ "X": 29952,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 4,
+ "KeyItemsHigh": "10291",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29952,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 4,
+ "KeyItemsHigh": "10291",
+ "Range": "Large"
+ },
+ {
+ "X": 29952,
+ "Y": 0,
+ "Z": 34048,
+ "Room": 4,
+ "KeyItemsHigh": "10291",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": -2560,
+ "Z": 32256,
+ "Room": 32
+ },
+ {
+ "X": 24064,
+ "Y": -256,
+ "Z": 36096,
+ "Room": 41,
+ "KeyItemsHigh": "10250"
+ },
+ {
+ "X": 24064,
+ "Y": -256,
+ "Z": 36352,
+ "Room": 41,
+ "KeyItemsHigh": "10250",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 24064,
+ "Y": -256,
+ "Z": 36608,
+ "Room": 41,
+ "KeyItemsHigh": "10250",
+ "Range": "Medium"
+ },
+ {
+ "X": 23808,
+ "Y": -256,
+ "Z": 36608,
+ "Room": 41,
+ "KeyItemsHigh": "10250",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23808,
+ "Y": -256,
+ "Z": 36352,
+ "Room": 41,
+ "KeyItemsHigh": "10250",
+ "Range": "Large"
+ },
+ {
+ "X": 23808,
+ "Y": -256,
+ "Z": 36096,
+ "Room": 41,
+ "KeyItemsHigh": "10250",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 18944,
+ "Y": -256,
+ "Z": 36352,
+ "Room": 42
+ },
+ {
+ "X": 11776,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 44
+ },
+ {
+ "X": 11776,
+ "Y": 4096,
+ "Z": 44544,
+ "Room": 46
+ },
+ {
+ "X": 9728,
+ "Y": 2304,
+ "Z": 45568,
+ "Room": 45,
+ "Validated": false
+ },
+ {
+ "X": 11776,
+ "Y": 3328,
+ "Z": 51712,
+ "Room": 47
+ },
+ {
+ "X": 11776,
+ "Y": 3328,
+ "Z": 56832,
+ "Room": 52
+ },
+ {
+ "X": 16896,
+ "Y": 3328,
+ "Z": 57856,
+ "Room": 53
+ },
+ {
+ "X": 20992,
+ "Y": 3968,
+ "Z": 57856,
+ "Room": 49
+ },
+ {
+ "X": 25088,
+ "Y": 8192,
+ "Z": 59904,
+ "Room": 50
+ },
+ {
+ "X": 28160,
+ "Y": 6912,
+ "Z": 59904,
+ "Room": 51
+ },
+ {
+ "X": 33280,
+ "Y": 6912,
+ "Z": 59904,
+ "Room": 48
+ },
+ {
+ "X": 40448,
+ "Y": 7168,
+ "Z": 60928,
+ "Room": 54
+ },
+ {
+ "X": 44544,
+ "Y": 7168,
+ "Z": 60928,
+ "Room": 55
+ },
+ {
+ "X": 55808,
+ "Y": 11264,
+ "Z": 60928,
+ "Room": 56
+ },
+ {
+ "X": 55808,
+ "Y": 13312,
+ "Z": 64000,
+ "Room": 57
+ },
+ {
+ "X": 55808,
+ "Y": 13312,
+ "Z": 68096,
+ "Room": 59
+ },
+ {
+ "X": 59904,
+ "Y": 16000,
+ "Z": 73216,
+ "Room": 58
+ },
+ {
+ "X": 57856,
+ "Y": 15104,
+ "Z": 76288,
+ "Room": 66
+ },
+ {
+ "X": 57856,
+ "Y": 15488,
+ "Z": 72192,
+ "Room": 75
+ },
+ {
+ "X": 57856,
+ "Y": 24576,
+ "Z": 67072,
+ "Room": 83
+ },
+ {
+ "X": 62976,
+ "Y": 24832,
+ "Z": 69120,
+ "Room": 63
+ },
+ {
+ "X": 69120,
+ "Y": 25856,
+ "Z": 74240,
+ "Room": 62
+ },
+ {
+ "X": 79360,
+ "Y": 26880,
+ "Z": 74240,
+ "Room": 79
+ },
+ {
+ "X": 58880,
+ "Y": 11648,
+ "Z": 67072,
+ "Room": 76
+ },
+ {
+ "X": 61952,
+ "Y": 18048,
+ "Z": 70144,
+ "Room": 61,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": 17664,
+ "Z": 79360,
+ "Room": 61
+ },
+ {
+ "X": 69120,
+ "Y": 17280,
+ "Z": 69120,
+ "Room": 74
+ },
+ {
+ "X": 80384,
+ "Y": 19712,
+ "Z": 74240,
+ "Room": 39
+ },
+ {
+ "X": 88576,
+ "Y": 20608,
+ "Z": 73216,
+ "Room": 64
+ },
+ {
+ "X": 88576,
+ "Y": 20480,
+ "Z": 69120,
+ "Room": 65
+ }
+ ],
+ "BOAT.TR2": [
+ {
+ "X": 58624,
+ "Y": 0,
+ "Z": 23040,
+ "Room": 0,
+ "KeyItemsLow": "11210"
+ },
+ {
+ "X": 58880,
+ "Y": 0,
+ "Z": 23040,
+ "Room": 0,
+ "KeyItemsLow": "11210",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59136,
+ "Y": 0,
+ "Z": 23040,
+ "Room": 0,
+ "KeyItemsLow": "11210",
+ "Range": "Medium"
+ },
+ {
+ "X": 59136,
+ "Y": 0,
+ "Z": 23296,
+ "Room": 0,
+ "KeyItemsLow": "11210",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 58880,
+ "Y": 0,
+ "Z": 23296,
+ "Room": 0,
+ "KeyItemsLow": "11210,11502,11353",
+ "Range": "Large"
+ },
+ {
+ "X": 58624,
+ "Y": 0,
+ "Z": 23296,
+ "Room": 0,
+ "KeyItemsLow": "11210,11502,11353",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": -6656,
+ "Z": 29184,
+ "Room": 4,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": 0,
+ "Z": 35328,
+ "Room": 6
+ },
+ {
+ "X": 55808,
+ "Y": -6656,
+ "Z": 38400,
+ "Room": 8,
+ "Validated": false
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 16
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 17
+ },
+ {
+ "X": 50688,
+ "Y": -6400,
+ "Z": 34304,
+ "Room": 37,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -6400,
+ "Z": 38400,
+ "Room": 9,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -6400,
+ "Z": 41472,
+ "Room": 35,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": 1536,
+ "Z": 37376,
+ "Room": 11
+ },
+ {
+ "X": 47616,
+ "Y": 1536,
+ "Z": 38400,
+ "Room": 14
+ },
+ {
+ "X": 47616,
+ "Y": 1408,
+ "Z": 43520,
+ "Room": 15
+ },
+ {
+ "X": 44544,
+ "Y": 1280,
+ "Z": 39424,
+ "Room": 30
+ },
+ {
+ "X": 42496,
+ "Y": 0,
+ "Z": 40448,
+ "Room": 29
+ },
+ {
+ "X": 49664,
+ "Y": 0,
+ "Z": 40448,
+ "Room": 20
+ },
+ {
+ "X": 50688,
+ "Y": -6656,
+ "Z": 43520,
+ "Room": 31,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -3328,
+ "Z": 47616,
+ "Room": 32,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 19
+ },
+ {
+ "X": 51712,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 18
+ },
+ {
+ "X": 51712,
+ "Y": -1792,
+ "Z": 39424,
+ "Room": 27
+ },
+ {
+ "X": 51712,
+ "Y": -3328,
+ "Z": 39424,
+ "Room": 24
+ },
+ {
+ "X": 53760,
+ "Y": -4096,
+ "Z": 39424,
+ "Room": 28
+ },
+ {
+ "X": 58880,
+ "Y": -3328,
+ "Z": 39424,
+ "Room": 7
+ },
+ {
+ "X": 60928,
+ "Y": -3072,
+ "Z": 37376,
+ "Room": 7
+ },
+ {
+ "X": 54784,
+ "Y": -3328,
+ "Z": 43520,
+ "Room": 36
+ },
+ {
+ "X": 49664,
+ "Y": -3456,
+ "Z": 44544,
+ "Room": 33
+ },
+ {
+ "X": 46592,
+ "Y": -3840,
+ "Z": 42496,
+ "Room": 26
+ },
+ {
+ "X": 45568,
+ "Y": -6656,
+ "Z": 40448,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": -3840,
+ "Z": 36352,
+ "Room": 25
+ },
+ {
+ "X": 45568,
+ "Y": -6144,
+ "Z": 33280,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": -4096,
+ "Z": 32256,
+ "Room": 34
+ },
+ {
+ "X": 47360,
+ "Y": 1408,
+ "Z": 32256,
+ "Room": 10,
+ "KeyItemsHigh": "11210"
+ },
+ {
+ "X": 47616,
+ "Y": 1408,
+ "Z": 32256,
+ "Room": 10,
+ "KeyItemsHigh": "11210",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47872,
+ "Y": 1408,
+ "Z": 32256,
+ "Room": 10,
+ "KeyItemsHigh": "11210",
+ "Range": "Medium"
+ },
+ {
+ "X": 47872,
+ "Y": 1408,
+ "Z": 32000,
+ "Room": 10,
+ "KeyItemsHigh": "11210",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 1408,
+ "Z": 32000,
+ "Room": 10,
+ "KeyItemsHigh": "11210",
+ "Range": "Large"
+ },
+ {
+ "X": 47360,
+ "Y": 1408,
+ "Z": 32000,
+ "Room": 10,
+ "KeyItemsHigh": "11210",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 896,
+ "Z": 27136,
+ "Room": 41
+ },
+ {
+ "X": 47616,
+ "Y": 896,
+ "Z": 22016,
+ "Room": 143
+ },
+ {
+ "X": 47616,
+ "Y": 1280,
+ "Z": 16896,
+ "Room": 42
+ },
+ {
+ "X": 40448,
+ "Y": 5376,
+ "Z": 15872,
+ "Room": 44
+ },
+ {
+ "X": 37376,
+ "Y": 5376,
+ "Z": 15872,
+ "Room": 126
+ },
+ {
+ "X": 39424,
+ "Y": 2688,
+ "Z": 18944,
+ "Room": 53
+ },
+ {
+ "X": 39424,
+ "Y": 3840,
+ "Z": 26112,
+ "Room": 54
+ },
+ {
+ "X": 42496,
+ "Y": 2048,
+ "Z": 25088,
+ "Room": 45
+ },
+ {
+ "X": 43520,
+ "Y": 0,
+ "Z": 29184,
+ "Room": 58
+ },
+ {
+ "X": 42496,
+ "Y": 2048,
+ "Z": 31232,
+ "Room": 47
+ },
+ {
+ "X": 40448,
+ "Y": 3712,
+ "Z": 32256,
+ "Room": 55
+ },
+ {
+ "X": 37376,
+ "Y": 3968,
+ "Z": 32256,
+ "Room": 57
+ },
+ {
+ "X": 37376,
+ "Y": 3712,
+ "Z": 28160,
+ "Room": 56
+ },
+ {
+ "X": 32256,
+ "Y": 2048,
+ "Z": 31232,
+ "Room": 59
+ },
+ {
+ "X": 29184,
+ "Y": 2048,
+ "Z": 32256,
+ "Room": 60
+ },
+ {
+ "X": 32256,
+ "Y": 0,
+ "Z": 35328,
+ "Room": 61
+ },
+ {
+ "X": 33280,
+ "Y": 3200,
+ "Z": 36352,
+ "Room": 62
+ },
+ {
+ "X": 34304,
+ "Y": 896,
+ "Z": 39424,
+ "Room": 66
+ },
+ {
+ "X": 33536,
+ "Y": 1792,
+ "Z": 44544,
+ "Room": 97,
+ "KeyItemsLow": "11502,11353",
+ "Range": "Medium"
+ },
+ {
+ "X": 33280,
+ "Y": 1792,
+ "Z": 44544,
+ "Room": 97,
+ "KeyItemsLow": "11502,11353",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33024,
+ "Y": 1792,
+ "Z": 44544,
+ "Room": 97,
+ "KeyItemsLow": "11502,11353"
+ },
+ {
+ "X": 33024,
+ "Y": 1927,
+ "Z": 44815,
+ "Room": 97,
+ "KeyItemsLow": "11502,11353",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": 1792,
+ "Z": 44544,
+ "Room": 106
+ },
+ {
+ "X": 26112,
+ "Y": 0,
+ "Z": 48640,
+ "Room": 74
+ },
+ {
+ "X": 24064,
+ "Y": -2304,
+ "Z": 49664,
+ "Room": 84
+ },
+ {
+ "X": 23040,
+ "Y": -4608,
+ "Z": 48640,
+ "Room": 120,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": -1792,
+ "Z": 52736,
+ "Room": 96
+ },
+ {
+ "X": 27136,
+ "Y": -1792,
+ "Z": 52736,
+ "Room": 78
+ },
+ {
+ "X": 30208,
+ "Y": -1792,
+ "Z": 52736,
+ "Room": 77
+ },
+ {
+ "X": 29184,
+ "Y": -5120,
+ "Z": 51712,
+ "Room": 121,
+ "Validated": false
+ },
+ {
+ "X": 33536,
+ "Y": -2304,
+ "Z": 56832,
+ "Room": 82,
+ "KeyItemsHigh": "11353"
+ },
+ {
+ "X": 33280,
+ "Y": -2304,
+ "Z": 56832,
+ "Room": 82,
+ "KeyItemsHigh": "11353",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33024,
+ "Y": -2304,
+ "Z": 56832,
+ "Room": 82,
+ "KeyItemsHigh": "11353",
+ "Range": "Medium"
+ },
+ {
+ "X": 33024,
+ "Y": -2304,
+ "Z": 57088,
+ "Room": 82,
+ "KeyItemsHigh": "11353",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": -2304,
+ "Z": 57088,
+ "Room": 82,
+ "KeyItemsHigh": "11353",
+ "Range": "Large"
+ },
+ {
+ "X": 33536,
+ "Y": -2304,
+ "Z": 57088,
+ "Room": 82,
+ "KeyItemsHigh": "11353",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": -768,
+ "Z": 57856,
+ "Room": 110
+ },
+ {
+ "X": 41266,
+ "Y": 1630,
+ "Z": 43692,
+ "Room": 105,
+ "KeyItemsLow": "11353",
+ "Range": "Medium"
+ },
+ {
+ "X": 41463,
+ "Y": 1584,
+ "Z": 43705,
+ "Room": 105,
+ "KeyItemsLow": "11353",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": 1536,
+ "Z": 43520,
+ "Room": 105,
+ "KeyItemsLow": "11353",
+ "Range": "Large"
+ },
+ {
+ "X": 41223,
+ "Y": 1600,
+ "Z": 43529,
+ "Room": 105,
+ "KeyItemsLow": "11353",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41193,
+ "Y": 1557,
+ "Z": 43329,
+ "Room": 105,
+ "KeyItemsLow": "11353"
+ },
+ {
+ "X": 41518,
+ "Y": 1487,
+ "Z": 43372,
+ "Room": 105,
+ "KeyItemsLow": "11353",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": 0,
+ "Z": 46592,
+ "Room": 69
+ },
+ {
+ "X": 39424,
+ "Y": -5120,
+ "Z": 46592,
+ "Room": 118,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": -3840,
+ "Z": 42496,
+ "Room": 119,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": -2432,
+ "Z": 43520,
+ "Room": 85,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -2048,
+ "Z": 52736,
+ "Room": 92,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": -5120,
+ "Z": 57856,
+ "Room": 117,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": 1920,
+ "Z": 54784,
+ "Room": 104
+ },
+ {
+ "X": 43264,
+ "Y": 1920,
+ "Z": 61952,
+ "Room": 135,
+ "KeyItemsHigh": "11502,11353"
+ },
+ {
+ "X": 43520,
+ "Y": 1920,
+ "Z": 61952,
+ "Room": 135,
+ "KeyItemsHigh": "11502,11353",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -1792,
+ "Z": 61952,
+ "Room": 139,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": -1792,
+ "Z": 64000,
+ "Room": 132,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": -4864,
+ "Z": 64000,
+ "Room": 131,
+ "Validated": false
+ },
+ {
+ "X": 54784,
+ "Y": 1408,
+ "Z": 60928,
+ "Room": 101
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 62976,
+ "Room": 72
+ },
+ {
+ "X": 58880,
+ "Y": 512,
+ "Z": 66048,
+ "Room": 147
+ },
+ {
+ "X": 60928,
+ "Y": -1792,
+ "Z": 62976,
+ "Room": 91
+ },
+ {
+ "X": 64000,
+ "Y": -1792,
+ "Z": 62976,
+ "Room": 90
+ },
+ {
+ "X": 65024,
+ "Y": -1664,
+ "Z": 60928,
+ "Room": 80
+ },
+ {
+ "X": 53760,
+ "Y": 1024,
+ "Z": 59904,
+ "Room": 137
+ },
+ {
+ "X": 53760,
+ "Y": 1536,
+ "Z": 52736,
+ "Room": 99
+ },
+ {
+ "X": 56832,
+ "Y": -5120,
+ "Z": 54784,
+ "Room": 116,
+ "Validated": false
+ },
+ {
+ "X": 56832,
+ "Y": -4608,
+ "Z": 49664,
+ "Room": 116,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": -4608,
+ "Z": 50688,
+ "Room": 113,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": -4864,
+ "Z": 50688,
+ "Room": 140,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 51712,
+ "Room": 79
+ },
+ {
+ "X": 64000,
+ "Y": -256,
+ "Z": 50688,
+ "Room": 148
+ },
+ {
+ "X": 64000,
+ "Y": 768,
+ "Z": 48640,
+ "Room": 149
+ },
+ {
+ "X": 62976,
+ "Y": -2048,
+ "Z": 48640,
+ "Room": 150
+ },
+ {
+ "X": 58880,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 88
+ },
+ {
+ "X": 26112,
+ "Y": 1920,
+ "Z": 56832,
+ "Room": 107,
+ "KeyItemsLow": "11502,11353"
+ },
+ {
+ "X": 26177,
+ "Y": 1947,
+ "Z": 57071,
+ "Room": 107,
+ "KeyItemsLow": "11502,11353",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26112,
+ "Y": 1792,
+ "Z": 59904,
+ "Room": 108
+ },
+ {
+ "X": 26112,
+ "Y": 1152,
+ "Z": 66048,
+ "Room": 109
+ },
+ {
+ "X": 24064,
+ "Y": -768,
+ "Z": 62976,
+ "Room": 81
+ },
+ {
+ "X": 20992,
+ "Y": -1024,
+ "Z": 64256,
+ "Room": 151,
+ "KeyItemsHigh": "11502,11353"
+ },
+ {
+ "X": 20736,
+ "Y": -1024,
+ "Z": 64256,
+ "Room": 151,
+ "KeyItemsHigh": "11502,11353",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20736,
+ "Y": -1024,
+ "Z": 64000,
+ "Room": 151,
+ "KeyItemsHigh": "11502,11353",
+ "Range": "Medium"
+ },
+ {
+ "X": 20992,
+ "Y": -1024,
+ "Z": 64000,
+ "Room": 151,
+ "KeyItemsHigh": "11502,11353",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20992,
+ "Y": -1024,
+ "Z": 63744,
+ "Room": 151,
+ "KeyItemsHigh": "11502,11353",
+ "Range": "Large"
+ },
+ {
+ "X": 20736,
+ "Y": -1024,
+ "Z": 63744,
+ "Room": 151,
+ "KeyItemsHigh": "11502,11353",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 1664,
+ "Z": 49408,
+ "Room": 98,
+ "KeyItemsLow": "11353,11502",
+ "Range": "Large"
+ },
+ {
+ "X": 44544,
+ "Y": 1664,
+ "Z": 49664,
+ "Room": 98,
+ "KeyItemsLow": "11353,11502",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 1664,
+ "Z": 49920,
+ "Room": 98,
+ "KeyItemsLow": "11353,11502",
+ "Range": "Medium"
+ },
+ {
+ "X": 44800,
+ "Y": 1664,
+ "Z": 49920,
+ "Room": 98,
+ "KeyItemsLow": "11353,11502",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -4736,
+ "Z": 51712,
+ "Room": 114,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": 256,
+ "Z": 47616,
+ "Room": 152,
+ "Validated": false
+ },
+ {
+ "X": 68096,
+ "Y": 1280,
+ "Z": 53760,
+ "Room": 136
+ },
+ {
+ "X": 79360,
+ "Y": 1536,
+ "Z": 53760,
+ "Room": 103
+ },
+ {
+ "X": 76288,
+ "Y": -3840,
+ "Z": 53760,
+ "Room": 115,
+ "Validated": false
+ },
+ {
+ "X": 75264,
+ "Y": -3840,
+ "Z": 53760,
+ "Room": 141,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": -1792,
+ "Z": 62976,
+ "Room": 89,
+ "Validated": false
+ },
+ {
+ "X": 74240,
+ "Y": -4608,
+ "Z": 64000,
+ "Room": 111,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": -3840,
+ "Z": 62976,
+ "Room": 112,
+ "Validated": false
+ },
+ {
+ "X": 80384,
+ "Y": 896,
+ "Z": 58880,
+ "Room": 130
+ },
+ {
+ "X": 86528,
+ "Y": 0,
+ "Z": 60928,
+ "Room": 129
+ },
+ {
+ "X": 76288,
+ "Y": 1920,
+ "Z": 61952,
+ "Room": 100
+ },
+ {
+ "X": 38400,
+ "Y": 1152,
+ "Z": 59904,
+ "Room": 102
+ },
+ {
+ "X": 31232,
+ "Y": -4864,
+ "Z": 58880,
+ "Room": 125,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": -5120,
+ "Z": 58880,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -2048,
+ "Z": 62976,
+ "Room": 94,
+ "Validated": false
+ },
+ {
+ "X": 24064,
+ "Y": -4864,
+ "Z": 68096,
+ "Room": 124,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": 1152,
+ "Z": 79104,
+ "Room": 146,
+ "KeyItemsHigh": "11353,11502",
+ "Range": "Large"
+ },
+ {
+ "X": 26112,
+ "Y": 1152,
+ "Z": 79360,
+ "Room": 146,
+ "KeyItemsHigh": "11353,11502",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26112,
+ "Y": 1152,
+ "Z": 79616,
+ "Room": 146,
+ "KeyItemsHigh": "11353,11502",
+ "Range": "Medium"
+ },
+ {
+ "X": 25847,
+ "Y": 1218,
+ "Z": 79616,
+ "Room": 146,
+ "KeyItemsHigh": "11353,11502",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ }
+ ],
+ "VENICE.TR2": [
+ {
+ "X": 73216,
+ "Y": 6144,
+ "Z": 20992,
+ "Room": 150,
+ "KeyItemsLow": "12241,12385",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": 6656,
+ "Z": 33280,
+ "Room": 154
+ },
+ {
+ "X": 70144,
+ "Y": 6656,
+ "Z": 46592,
+ "Room": 111
+ },
+ {
+ "X": 66048,
+ "Y": 6528,
+ "Z": 46592,
+ "Room": 164
+ },
+ {
+ "X": 71168,
+ "Y": 4608,
+ "Z": 44544,
+ "Room": 106
+ },
+ {
+ "X": 70144,
+ "Y": 2816,
+ "Z": 32256,
+ "Room": 101
+ },
+ {
+ "X": 69120,
+ "Y": 384,
+ "Z": 32256,
+ "Room": 104,
+ "Validated": false
+ },
+ {
+ "X": 68096,
+ "Y": 2048,
+ "Z": 30208,
+ "Room": 99
+ },
+ {
+ "X": 68096,
+ "Y": 768,
+ "Z": 25088,
+ "Room": 75
+ },
+ {
+ "X": 67072,
+ "Y": 512,
+ "Z": 24064,
+ "Room": 68
+ },
+ {
+ "X": 66012,
+ "Y": 240,
+ "Z": 25600,
+ "Room": 91,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": 512,
+ "Z": 22016,
+ "Room": 67
+ },
+ {
+ "X": 70144,
+ "Y": 4352,
+ "Z": 40448,
+ "Room": 105
+ },
+ {
+ "X": 69120,
+ "Y": 4352,
+ "Z": 40448,
+ "Room": 49
+ },
+ {
+ "X": 65024,
+ "Y": 4096,
+ "Z": 43520,
+ "Room": 118
+ },
+ {
+ "X": 62976,
+ "Y": 4096,
+ "Z": 40448,
+ "Room": 18
+ },
+ {
+ "X": 62976,
+ "Y": 4096,
+ "Z": 38400,
+ "Room": 119
+ },
+ {
+ "X": 64000,
+ "Y": 4096,
+ "Z": 34304,
+ "Room": 155
+ },
+ {
+ "X": 64000,
+ "Y": 3840,
+ "Z": 33280,
+ "Room": 108
+ },
+ {
+ "X": 60928,
+ "Y": 4096,
+ "Z": 34304,
+ "Room": 16
+ },
+ {
+ "X": 54784,
+ "Y": 4096,
+ "Z": 34304,
+ "Room": 110
+ },
+ {
+ "X": 61952,
+ "Y": 2048,
+ "Z": 40448,
+ "Room": 151
+ },
+ {
+ "X": 67072,
+ "Y": 2048,
+ "Z": 39424,
+ "Room": 117
+ },
+ {
+ "X": 67072,
+ "Y": 2048,
+ "Z": 43520,
+ "Room": 116
+ },
+ {
+ "X": 70144,
+ "Y": 896,
+ "Z": 43520,
+ "Room": 156
+ },
+ {
+ "X": 71168,
+ "Y": 512,
+ "Z": 43520,
+ "Room": 107
+ },
+ {
+ "X": 70144,
+ "Y": 128,
+ "Z": 47616,
+ "Room": 159
+ },
+ {
+ "X": 66048,
+ "Y": 512,
+ "Z": 45568,
+ "Room": 162
+ },
+ {
+ "X": 58880,
+ "Y": 3584,
+ "Z": 47616,
+ "Room": 163
+ },
+ {
+ "X": 57856,
+ "Y": 3072,
+ "Z": 44544,
+ "Room": 32,
+ "KeyItemsLow": "12241",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": 2304,
+ "Z": 41472,
+ "Room": 152
+ },
+ {
+ "X": 59904,
+ "Y": 1280,
+ "Z": 38400,
+ "Room": 153
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 13
+ },
+ {
+ "X": 64000,
+ "Y": 0,
+ "Z": 35328,
+ "Room": 14
+ },
+ {
+ "X": 64000,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 1
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 157
+ },
+ {
+ "X": 64000,
+ "Y": -512,
+ "Z": 26112,
+ "Room": 10
+ },
+ {
+ "X": 64000,
+ "Y": -512,
+ "Z": 25088,
+ "Room": 93,
+ "KeyItemsLow": "12385",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": -3584,
+ "Z": 26112,
+ "Room": 123,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": -1152,
+ "Z": 26112,
+ "Room": 103,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": -1152,
+ "Z": 25088,
+ "Room": 98,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": -1152,
+ "Z": 20992,
+ "Room": 125,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": -1152,
+ "Z": 16896,
+ "Room": 128,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": -512,
+ "Z": 25088,
+ "Room": 96
+ },
+ {
+ "X": 57856,
+ "Y": -512,
+ "Z": 26112,
+ "Room": 12
+ },
+ {
+ "X": 57856,
+ "Y": 0,
+ "Z": 27136,
+ "Room": 0
+ },
+ {
+ "X": 60928,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 2
+ },
+ {
+ "X": 53760,
+ "Y": -256,
+ "Z": 30208,
+ "Room": 4
+ },
+ {
+ "X": 49664,
+ "Y": -1024,
+ "Z": 29184,
+ "Room": 5
+ },
+ {
+ "X": 42752,
+ "Y": 1280,
+ "Z": 29184,
+ "Room": 140,
+ "KeyItemsLow": "12241",
+ "Range": "Medium"
+ },
+ {
+ "X": 42496,
+ "Y": 1280,
+ "Z": 29184,
+ "Room": 140,
+ "KeyItemsLow": "12385,12241",
+ "Range": "Large"
+ },
+ {
+ "X": 41472,
+ "Y": 1280,
+ "Z": 29184,
+ "Room": 158
+ },
+ {
+ "X": 41472,
+ "Y": 1280,
+ "Z": 30208,
+ "Room": 6
+ },
+ {
+ "X": 41472,
+ "Y": 2816,
+ "Z": 31232,
+ "Room": 141
+ },
+ {
+ "X": 41472,
+ "Y": 2816,
+ "Z": 32256,
+ "Room": 50
+ },
+ {
+ "X": 42496,
+ "Y": 1280,
+ "Z": 38400,
+ "Room": 8,
+ "KeyItemsLow": "12241"
+ },
+ {
+ "X": 42496,
+ "Y": 1280,
+ "Z": 38656,
+ "Room": 8,
+ "KeyItemsLow": "12241",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": 2560,
+ "Z": 39424,
+ "Room": 22
+ },
+ {
+ "X": 55808,
+ "Y": 2048,
+ "Z": 38400,
+ "Room": 15
+ },
+ {
+ "X": 55808,
+ "Y": 2048,
+ "Z": 33280,
+ "Room": 121,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 45568,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 7
+ },
+ {
+ "X": 48640,
+ "Y": -1280,
+ "Z": 37376,
+ "Room": 20
+ },
+ {
+ "X": 51712,
+ "Y": -2560,
+ "Z": 37376,
+ "Room": 21
+ },
+ {
+ "X": 53760,
+ "Y": -3840,
+ "Z": 37376,
+ "Room": 29
+ },
+ {
+ "X": 48640,
+ "Y": -5632,
+ "Z": 35328,
+ "Room": 30
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 38400,
+ "Room": 30
+ },
+ {
+ "X": 51712,
+ "Y": 256,
+ "Z": 41472,
+ "Room": 23
+ },
+ {
+ "X": 52736,
+ "Y": -1280,
+ "Z": 41472,
+ "Room": 31
+ },
+ {
+ "X": 52736,
+ "Y": -3840,
+ "Z": 41472,
+ "Room": 47
+ },
+ {
+ "X": 45568,
+ "Y": -1280,
+ "Z": 40448,
+ "Room": 20
+ },
+ {
+ "X": 45568,
+ "Y": 1792,
+ "Z": 41472,
+ "Room": 36
+ },
+ {
+ "X": 44544,
+ "Y": -1280,
+ "Z": 41472,
+ "Room": 24
+ },
+ {
+ "X": 44544,
+ "Y": -1024,
+ "Z": 42496,
+ "Room": 25
+ },
+ {
+ "X": 42496,
+ "Y": -4096,
+ "Z": 43520,
+ "Room": 115,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": 5888,
+ "Z": 41472,
+ "Room": 40,
+ "KeyItemsLow": "12385",
+ "Range": "Medium"
+ },
+ {
+ "X": 48640,
+ "Y": 5888,
+ "Z": 40448,
+ "Room": 37
+ },
+ {
+ "X": 52736,
+ "Y": 6912,
+ "Z": 37376,
+ "Room": 39
+ },
+ {
+ "X": 51712,
+ "Y": 6656,
+ "Z": 43520,
+ "Room": 28
+ },
+ {
+ "X": 54784,
+ "Y": 7680,
+ "Z": 34304,
+ "Room": 51,
+ "KeyItemsHigh": "12241"
+ },
+ {
+ "X": 54528,
+ "Y": 7680,
+ "Z": 34304,
+ "Room": 51,
+ "KeyItemsHigh": "12241",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41984,
+ "Y": 5509,
+ "Z": 36390,
+ "Room": 17
+ },
+ {
+ "X": 47616,
+ "Y": 4608,
+ "Z": 35328,
+ "Room": 38,
+ "KeyItemsLow": "12241"
+ },
+ {
+ "X": 47872,
+ "Y": 4608,
+ "Z": 35328,
+ "Room": 38,
+ "KeyItemsLow": "12241",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48896,
+ "Y": 4608,
+ "Z": 32256,
+ "Room": 42,
+ "KeyItemsHigh": "12241"
+ },
+ {
+ "X": 48640,
+ "Y": 4608,
+ "Z": 32256,
+ "Room": 42,
+ "KeyItemsHigh": "12241",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48384,
+ "Y": 4608,
+ "Z": 32256,
+ "Room": 42,
+ "KeyItemsHigh": "12241",
+ "Range": "Medium"
+ },
+ {
+ "X": 48384,
+ "Y": 4608,
+ "Z": 32000,
+ "Room": 42,
+ "KeyItemsHigh": "12241",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": 4608,
+ "Z": 32000,
+ "Room": 42,
+ "KeyItemsHigh": "12241",
+ "Range": "Large"
+ },
+ {
+ "X": 48896,
+ "Y": 4608,
+ "Z": 32000,
+ "Room": 42,
+ "KeyItemsHigh": "12241",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 4608,
+ "Z": 27136,
+ "Room": 41
+ },
+ {
+ "X": 48640,
+ "Y": 4608,
+ "Z": 23040,
+ "Room": 59
+ },
+ {
+ "X": 47616,
+ "Y": 2560,
+ "Z": 20992,
+ "Room": 79
+ },
+ {
+ "X": 45568,
+ "Y": 2560,
+ "Z": 20992,
+ "Room": 120
+ },
+ {
+ "X": 50688,
+ "Y": 2560,
+ "Z": 22016,
+ "Room": 80
+ },
+ {
+ "X": 52736,
+ "Y": 4608,
+ "Z": 26112,
+ "Room": 58
+ },
+ {
+ "X": 52736,
+ "Y": 2304,
+ "Z": 25088,
+ "Room": 82
+ },
+ {
+ "X": 53760,
+ "Y": 1792,
+ "Z": 24064,
+ "Room": 84
+ },
+ {
+ "X": 54784,
+ "Y": -512,
+ "Z": 25088,
+ "Room": 83
+ },
+ {
+ "X": 53760,
+ "Y": -512,
+ "Z": 24064,
+ "Room": 81
+ },
+ {
+ "X": 53760,
+ "Y": -128,
+ "Z": 23040,
+ "Room": 64
+ },
+ {
+ "X": 53760,
+ "Y": 2304,
+ "Z": 19968,
+ "Room": 63
+ },
+ {
+ "X": 56832,
+ "Y": 2560,
+ "Z": 19968,
+ "Room": 77
+ },
+ {
+ "X": 60672,
+ "Y": 2176,
+ "Z": 20992,
+ "Room": 78,
+ "KeyItemsLow": "12385"
+ },
+ {
+ "X": 60928,
+ "Y": 2176,
+ "Z": 20992,
+ "Room": 78,
+ "KeyItemsLow": "12385",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 67072,
+ "Y": 2304,
+ "Z": 22016,
+ "Room": 66
+ },
+ {
+ "X": 69120,
+ "Y": 5120,
+ "Z": 22016,
+ "Room": 139
+ },
+ {
+ "X": 66048,
+ "Y": 4352,
+ "Z": 22016,
+ "Room": 85
+ },
+ {
+ "X": 59904,
+ "Y": 4608,
+ "Z": 22016,
+ "Room": 87
+ },
+ {
+ "X": 61952,
+ "Y": 4352,
+ "Z": 19968,
+ "Room": 86
+ },
+ {
+ "X": 58880,
+ "Y": 6144,
+ "Z": 19968,
+ "Room": 126
+ },
+ {
+ "X": 58880,
+ "Y": 6144,
+ "Z": 15872,
+ "Room": 127
+ },
+ {
+ "X": 56832,
+ "Y": 4608,
+ "Z": 22016,
+ "Room": 65
+ },
+ {
+ "X": 53760,
+ "Y": 4608,
+ "Z": 22016,
+ "Room": 62
+ },
+ {
+ "X": 52736,
+ "Y": 4352,
+ "Z": 24064,
+ "Room": 60
+ },
+ {
+ "X": 43520,
+ "Y": 4608,
+ "Z": 27136,
+ "Room": 43
+ },
+ {
+ "X": 42496,
+ "Y": 4352,
+ "Z": 24064,
+ "Room": 61
+ },
+ {
+ "X": 42496,
+ "Y": 4608,
+ "Z": 23040,
+ "Room": 70
+ },
+ {
+ "X": 45568,
+ "Y": -3328,
+ "Z": 23040,
+ "Room": 76,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -2304,
+ "Z": 16896,
+ "Room": 136,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": -2304,
+ "Z": 16896,
+ "Room": 137,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": 4608,
+ "Z": 22016,
+ "Room": 72
+ },
+ {
+ "X": 38400,
+ "Y": 5888,
+ "Z": 22016,
+ "Room": 134,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": 4608,
+ "Z": 26368,
+ "Room": 73,
+ "KeyItemsHigh": "12385"
+ },
+ {
+ "X": 34048,
+ "Y": 4608,
+ "Z": 26368,
+ "Room": 73,
+ "KeyItemsHigh": "12385",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34048,
+ "Y": 4608,
+ "Z": 26112,
+ "Room": 73,
+ "KeyItemsHigh": "12385",
+ "Range": "Medium"
+ },
+ {
+ "X": 34048,
+ "Y": 4608,
+ "Z": 25856,
+ "Room": 73,
+ "KeyItemsHigh": "12385",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34304,
+ "Y": 4608,
+ "Z": 25856,
+ "Room": 73,
+ "KeyItemsHigh": "12385",
+ "Range": "Large"
+ },
+ {
+ "X": 34304,
+ "Y": 4608,
+ "Z": 26112,
+ "Room": 73,
+ "KeyItemsHigh": "12385",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": 2560,
+ "Z": 19968,
+ "Room": 130
+ },
+ {
+ "X": 37376,
+ "Y": 4608,
+ "Z": 34304,
+ "Room": 133
+ },
+ {
+ "X": 37376,
+ "Y": 2304,
+ "Z": 33280,
+ "Room": 130
+ },
+ {
+ "X": 38400,
+ "Y": 256,
+ "Z": 34304,
+ "Room": 131
+ },
+ {
+ "X": 34304,
+ "Y": -2048,
+ "Z": 34304,
+ "Room": 135
+ },
+ {
+ "X": 40448,
+ "Y": -1024,
+ "Z": 36352,
+ "Room": 138
+ }
+ ],
+ "OPERA.TR2": [
+ {
+ "X": 79360,
+ "Y": -640,
+ "Z": 26112,
+ "Room": 140,
+ "Validated": false
+ },
+ {
+ "X": 79616,
+ "Y": 2816,
+ "Z": 31232,
+ "Room": 35,
+ "KeyItemsLow": "13544"
+ },
+ {
+ "X": 79360,
+ "Y": 2816,
+ "Z": 31232,
+ "Room": 35,
+ "KeyItemsLow": "13544",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79104,
+ "Y": 2816,
+ "Z": 31232,
+ "Room": 35,
+ "KeyItemsLow": "13544",
+ "Range": "Medium"
+ },
+ {
+ "X": 79104,
+ "Y": 2816,
+ "Z": 31488,
+ "Room": 35,
+ "KeyItemsLow": "13544",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": 2816,
+ "Z": 31488,
+ "Room": 35,
+ "KeyItemsLow": "13544",
+ "Range": "Large"
+ },
+ {
+ "X": 79616,
+ "Y": 2816,
+ "Z": 31488,
+ "Room": 35,
+ "KeyItemsLow": "13544,13395,13377,13449",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 78336,
+ "Y": 9728,
+ "Z": 33280,
+ "Room": 23
+ },
+ {
+ "X": 78336,
+ "Y": 7936,
+ "Z": 31232,
+ "Room": 25
+ },
+ {
+ "X": 81408,
+ "Y": 7936,
+ "Z": 36352,
+ "Room": 27
+ },
+ {
+ "X": 73216,
+ "Y": 5632,
+ "Z": 36352,
+ "Room": 29
+ },
+ {
+ "X": 72192,
+ "Y": 4352,
+ "Z": 35328,
+ "Room": 31
+ },
+ {
+ "X": 73216,
+ "Y": 2816,
+ "Z": 35328,
+ "Room": 33
+ },
+ {
+ "X": 79360,
+ "Y": 6144,
+ "Z": 36352,
+ "Room": 162
+ },
+ {
+ "X": 74240,
+ "Y": 5376,
+ "Z": 37376,
+ "Room": 127
+ },
+ {
+ "X": 71168,
+ "Y": 4608,
+ "Z": 37376,
+ "Room": 163
+ },
+ {
+ "X": 70144,
+ "Y": -2560,
+ "Z": 34304,
+ "Room": 166,
+ "Validated": false
+ },
+ {
+ "X": 71168,
+ "Y": 128,
+ "Z": 36352,
+ "Room": 39,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": -1920,
+ "Z": 37376,
+ "Room": 36,
+ "Validated": false
+ },
+ {
+ "X": 73216,
+ "Y": -128,
+ "Z": 31232,
+ "Room": 42,
+ "Validated": false
+ },
+ {
+ "X": 70144,
+ "Y": -896,
+ "Z": 30208,
+ "Room": 167,
+ "Validated": false
+ },
+ {
+ "X": 79360,
+ "Y": -768,
+ "Z": 30208,
+ "Room": 42,
+ "Validated": false
+ },
+ {
+ "X": 85504,
+ "Y": -256,
+ "Z": 30208,
+ "Room": 43,
+ "Validated": false
+ },
+ {
+ "X": 84480,
+ "Y": 4608,
+ "Z": 32256,
+ "Room": 32
+ },
+ {
+ "X": 84480,
+ "Y": 5888,
+ "Z": 33280,
+ "Room": 30
+ },
+ {
+ "X": 86528,
+ "Y": 6144,
+ "Z": 35328,
+ "Room": 10
+ },
+ {
+ "X": 85504,
+ "Y": 3072,
+ "Z": 36352,
+ "Room": 3
+ },
+ {
+ "X": 86528,
+ "Y": 3456,
+ "Z": 36352,
+ "Room": 9
+ },
+ {
+ "X": 87296,
+ "Y": 2560,
+ "Z": 37376,
+ "Room": 6,
+ "KeyItemsHigh": "13544"
+ },
+ {
+ "X": 87552,
+ "Y": 2560,
+ "Z": 37376,
+ "Room": 6,
+ "KeyItemsHigh": "13544",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 87808,
+ "Y": 2560,
+ "Z": 37376,
+ "Room": 6,
+ "KeyItemsHigh": "13544",
+ "Range": "Medium"
+ },
+ {
+ "X": 87808,
+ "Y": 2560,
+ "Z": 37632,
+ "Room": 6,
+ "KeyItemsHigh": "13544",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 87552,
+ "Y": 2560,
+ "Z": 37632,
+ "Room": 6,
+ "KeyItemsHigh": "13544",
+ "Range": "Large"
+ },
+ {
+ "X": 87296,
+ "Y": 2560,
+ "Z": 37632,
+ "Room": 6,
+ "KeyItemsHigh": "13544",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 84480,
+ "Y": 128,
+ "Z": 36352,
+ "Room": 41,
+ "Validated": false
+ },
+ {
+ "X": 82432,
+ "Y": 2688,
+ "Z": 36352,
+ "Room": 21,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": 2688,
+ "Z": 36352,
+ "Room": 20,
+ "Validated": false
+ },
+ {
+ "X": 84480,
+ "Y": -1280,
+ "Z": 39424,
+ "Room": 11
+ },
+ {
+ "X": 87552,
+ "Y": -1152,
+ "Z": 37376,
+ "Room": 142,
+ "Validated": false
+ },
+ {
+ "X": 77256,
+ "Y": -342,
+ "Z": 37888,
+ "Room": 184
+ },
+ {
+ "X": 70144,
+ "Y": -2944,
+ "Z": 39424,
+ "Room": 164,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": -2560,
+ "Z": 44544,
+ "Room": 19,
+ "KeyItemsLow": "13395,13377,13449",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": -2560,
+ "Z": 48640,
+ "Room": 190
+ },
+ {
+ "X": 76288,
+ "Y": -1920,
+ "Z": 49664,
+ "Room": 13
+ },
+ {
+ "X": 86528,
+ "Y": -768,
+ "Z": 52736,
+ "Room": 15
+ },
+ {
+ "X": 86528,
+ "Y": -768,
+ "Z": 58880,
+ "Room": 171
+ },
+ {
+ "X": 86528,
+ "Y": -2816,
+ "Z": 59904,
+ "Room": 2
+ },
+ {
+ "X": 87552,
+ "Y": -1792,
+ "Z": 60928,
+ "Room": 169
+ },
+ {
+ "X": 82432,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 171
+ },
+ {
+ "X": 79360,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 170
+ },
+ {
+ "X": 73216,
+ "Y": -2560,
+ "Z": 60928,
+ "Room": 2
+ },
+ {
+ "X": 76288,
+ "Y": -2432,
+ "Z": 57856,
+ "Room": 14
+ },
+ {
+ "X": 77312,
+ "Y": -2944,
+ "Z": 56832,
+ "Room": 12
+ },
+ {
+ "X": 85504,
+ "Y": 256,
+ "Z": 54784,
+ "Room": 0
+ },
+ {
+ "X": 84480,
+ "Y": 2688,
+ "Z": 51712,
+ "Room": 172
+ },
+ {
+ "X": 85504,
+ "Y": 1408,
+ "Z": 49664,
+ "Room": 108
+ },
+ {
+ "X": 83456,
+ "Y": 256,
+ "Z": 52736,
+ "Room": 61
+ },
+ {
+ "X": 82432,
+ "Y": 2304,
+ "Z": 52480,
+ "Room": 5,
+ "KeyItemsLow": "13377,13395"
+ },
+ {
+ "X": 82432,
+ "Y": 2304,
+ "Z": 52736,
+ "Room": 5,
+ "KeyItemsLow": "13377,13395,13449",
+ "Range": "Medium"
+ },
+ {
+ "X": 82432,
+ "Y": 2304,
+ "Z": 52992,
+ "Room": 5,
+ "KeyItemsLow": "13377,13395,13449",
+ "Range": "Large"
+ },
+ {
+ "X": 82176,
+ "Y": 2304,
+ "Z": 52480,
+ "Room": 5,
+ "KeyItemsLow": "13377,13395",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80384,
+ "Y": 2048,
+ "Z": 59904,
+ "Room": 51
+ },
+ {
+ "X": 80384,
+ "Y": 2048,
+ "Z": 61952,
+ "Room": 16
+ },
+ {
+ "X": 81408,
+ "Y": 2048,
+ "Z": 62976,
+ "Room": 90
+ },
+ {
+ "X": 77312,
+ "Y": 3584,
+ "Z": 60928,
+ "Room": 67
+ },
+ {
+ "X": 78336,
+ "Y": 5120,
+ "Z": 60928,
+ "Room": 68
+ },
+ {
+ "X": 80384,
+ "Y": 6656,
+ "Z": 59904,
+ "Room": 69
+ },
+ {
+ "X": 80384,
+ "Y": 6656,
+ "Z": 62976,
+ "Room": 161
+ },
+ {
+ "X": 81408,
+ "Y": 6656,
+ "Z": 58880,
+ "Room": 55
+ },
+ {
+ "X": 82432,
+ "Y": 6656,
+ "Z": 58880,
+ "Room": 78
+ },
+ {
+ "X": 81408,
+ "Y": 6656,
+ "Z": 49664,
+ "Room": 72
+ },
+ {
+ "X": 75264,
+ "Y": 6400,
+ "Z": 48640,
+ "Room": 34
+ },
+ {
+ "X": 77312,
+ "Y": 7680,
+ "Z": 54784,
+ "Room": 66
+ },
+ {
+ "X": 73216,
+ "Y": 6656,
+ "Z": 54784,
+ "Room": 55
+ },
+ {
+ "X": 72192,
+ "Y": 6656,
+ "Z": 54784,
+ "Room": 65
+ },
+ {
+ "X": 72192,
+ "Y": 6656,
+ "Z": 48640,
+ "Room": 174
+ },
+ {
+ "X": 72192,
+ "Y": 6656,
+ "Z": 47616,
+ "Room": 144
+ },
+ {
+ "X": 72192,
+ "Y": 6656,
+ "Z": 59904,
+ "Room": 178
+ },
+ {
+ "X": 72192,
+ "Y": 7168,
+ "Z": 61952,
+ "Room": 86,
+ "KeyItemsHigh": "13377"
+ },
+ {
+ "X": 71936,
+ "Y": 7168,
+ "Z": 61952,
+ "Room": 86,
+ "KeyItemsHigh": "13377",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": 5120,
+ "Z": 61952,
+ "Room": 87
+ },
+ {
+ "X": 66048,
+ "Y": 4480,
+ "Z": 64000,
+ "Room": 92
+ },
+ {
+ "X": 66048,
+ "Y": 3840,
+ "Z": 62976,
+ "Room": 91
+ },
+ {
+ "X": 67072,
+ "Y": 3840,
+ "Z": 70144,
+ "Room": 88
+ },
+ {
+ "X": 66048,
+ "Y": 2048,
+ "Z": 71168,
+ "Room": 95
+ },
+ {
+ "X": 70144,
+ "Y": 2048,
+ "Z": 71168,
+ "Room": 89
+ },
+ {
+ "X": 71168,
+ "Y": 2048,
+ "Z": 60928,
+ "Room": 52
+ },
+ {
+ "X": 71168,
+ "Y": 8448,
+ "Z": 53760,
+ "Room": 177,
+ "KeyItemsHigh": "13395",
+ "KeyItemsLow": "13377"
+ },
+ {
+ "X": 70912,
+ "Y": 8448,
+ "Z": 53760,
+ "Room": 177,
+ "KeyItemsHigh": "13395",
+ "KeyItemsLow": "13377",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 70144,
+ "Y": 8192,
+ "Z": 57856,
+ "Room": 179
+ },
+ {
+ "X": 69120,
+ "Y": 8192,
+ "Z": 57856,
+ "Room": 176
+ },
+ {
+ "X": 69120,
+ "Y": 8960,
+ "Z": 51712,
+ "Room": 46
+ },
+ {
+ "X": 60928,
+ "Y": 9728,
+ "Z": 49664,
+ "Room": 188
+ },
+ {
+ "X": 72192,
+ "Y": 8960,
+ "Z": 59904,
+ "Room": 76
+ },
+ {
+ "X": 75264,
+ "Y": 7424,
+ "Z": 60928,
+ "Room": 93
+ },
+ {
+ "X": 82432,
+ "Y": 1792,
+ "Z": 49664,
+ "Room": 37,
+ "KeyItemsLow": "13449"
+ },
+ {
+ "X": 82688,
+ "Y": 1792,
+ "Z": 49664,
+ "Room": 37,
+ "KeyItemsLow": "13449",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 84480,
+ "Y": 1792,
+ "Z": 48640,
+ "Room": 49,
+ "KeyItemsHigh": "13377"
+ },
+ {
+ "X": 84480,
+ "Y": 1792,
+ "Z": 48384,
+ "Room": 49,
+ "KeyItemsHigh": "13377",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 84480,
+ "Y": 1792,
+ "Z": 47616,
+ "Room": 50
+ },
+ {
+ "X": 86528,
+ "Y": 256,
+ "Z": 45568,
+ "Room": 193,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 83456,
+ "Y": 2304,
+ "Z": 44544,
+ "Room": 47
+ },
+ {
+ "X": 80384,
+ "Y": 2304,
+ "Z": 43520,
+ "Room": 183
+ },
+ {
+ "X": 76288,
+ "Y": 2304,
+ "Z": 44544,
+ "Room": 57
+ },
+ {
+ "X": 78336,
+ "Y": 1024,
+ "Z": 45824,
+ "Room": 189,
+ "KeyItemsHigh": "13395",
+ "Range": "Medium"
+ },
+ {
+ "X": 78592,
+ "Y": 1024,
+ "Z": 45824,
+ "Room": 189,
+ "KeyItemsHigh": "13395",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 78592,
+ "Y": 1024,
+ "Z": 45568,
+ "Room": 189,
+ "KeyItemsHigh": "13395",
+ "Range": "Large"
+ },
+ {
+ "X": 78592,
+ "Y": 1024,
+ "Z": 45312,
+ "Room": 189,
+ "KeyItemsHigh": "13395",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": 1280,
+ "Z": 45568,
+ "Room": 38
+ },
+ {
+ "X": 81408,
+ "Y": 1792,
+ "Z": 47616,
+ "Room": 141
+ },
+ {
+ "X": 77312,
+ "Y": 7936,
+ "Z": 44544,
+ "Room": 60
+ },
+ {
+ "X": 77312,
+ "Y": 7936,
+ "Z": 42496,
+ "Room": 44
+ },
+ {
+ "X": 77312,
+ "Y": 10880,
+ "Z": 46592,
+ "Room": 48
+ },
+ {
+ "X": 78336,
+ "Y": 10496,
+ "Z": 47616,
+ "Room": 153
+ },
+ {
+ "X": 76288,
+ "Y": 9472,
+ "Z": 49664,
+ "Room": 82
+ },
+ {
+ "X": 74240,
+ "Y": 8960,
+ "Z": 48640,
+ "Room": 83
+ },
+ {
+ "X": 79360,
+ "Y": 10496,
+ "Z": 48640,
+ "Room": 154
+ },
+ {
+ "X": 82432,
+ "Y": 10496,
+ "Z": 46592,
+ "Room": 156
+ },
+ {
+ "X": 80384,
+ "Y": 11008,
+ "Z": 46592,
+ "Room": 155,
+ "KeyItemsLow": "13395",
+ "Range": "Medium"
+ },
+ {
+ "X": 80128,
+ "Y": 11008,
+ "Z": 46592,
+ "Room": 155,
+ "KeyItemsLow": "13395",
+ "Range": "Large"
+ },
+ {
+ "X": 80128,
+ "Y": 11008,
+ "Z": 46336,
+ "Room": 155,
+ "KeyItemsLow": "13395",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80384,
+ "Y": 11008,
+ "Z": 46336,
+ "Room": 155,
+ "KeyItemsLow": "13395",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80384,
+ "Y": 8064,
+ "Z": 44544,
+ "Room": 96
+ },
+ {
+ "X": 79360,
+ "Y": 6656,
+ "Z": 46592,
+ "Room": 143
+ },
+ {
+ "X": 80384,
+ "Y": 5376,
+ "Z": 44544,
+ "Room": 59
+ },
+ {
+ "X": 80384,
+ "Y": 5376,
+ "Z": 43520,
+ "Room": 185
+ },
+ {
+ "X": 80384,
+ "Y": 5376,
+ "Z": 42496,
+ "Room": 159
+ },
+ {
+ "X": 78336,
+ "Y": 5376,
+ "Z": 43520,
+ "Room": 1
+ },
+ {
+ "X": 76288,
+ "Y": 5376,
+ "Z": 44544,
+ "Room": 139
+ },
+ {
+ "X": 71168,
+ "Y": 4608,
+ "Z": 43520,
+ "Room": 158
+ },
+ {
+ "X": 69120,
+ "Y": 4608,
+ "Z": 40448,
+ "Room": 102
+ },
+ {
+ "X": 66048,
+ "Y": 7680,
+ "Z": 40448,
+ "Room": 105
+ },
+ {
+ "X": 69120,
+ "Y": 6656,
+ "Z": 40448,
+ "Room": 151
+ },
+ {
+ "X": 62976,
+ "Y": 8064,
+ "Z": 40448,
+ "Room": 79
+ },
+ {
+ "X": 56832,
+ "Y": 10496,
+ "Z": 40448,
+ "Room": 107
+ },
+ {
+ "X": 57856,
+ "Y": 10752,
+ "Z": 38400,
+ "Room": 106
+ },
+ {
+ "X": 58880,
+ "Y": 9728,
+ "Z": 39424,
+ "Room": 8
+ },
+ {
+ "X": 58880,
+ "Y": 9728,
+ "Z": 36352,
+ "Room": 111
+ },
+ {
+ "X": 62976,
+ "Y": 9856,
+ "Z": 36352,
+ "Room": 109
+ },
+ {
+ "X": 64000,
+ "Y": 8832,
+ "Z": 36352,
+ "Room": 132
+ },
+ {
+ "X": 65024,
+ "Y": 7680,
+ "Z": 36352,
+ "Room": 103
+ },
+ {
+ "X": 62976,
+ "Y": 6400,
+ "Z": 36352,
+ "Room": 187
+ },
+ {
+ "X": 66048,
+ "Y": 7680,
+ "Z": 36352,
+ "Room": 120
+ },
+ {
+ "X": 80384,
+ "Y": 4096,
+ "Z": 46592,
+ "Room": 63,
+ "KeyItemsHigh": "13395",
+ "Range": "Medium"
+ },
+ {
+ "X": 80640,
+ "Y": 4096,
+ "Z": 46592,
+ "Room": 63,
+ "KeyItemsHigh": "13395",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80384,
+ "Y": 3584,
+ "Z": 47616,
+ "Room": 100
+ },
+ {
+ "X": 79360,
+ "Y": 3584,
+ "Z": 48640,
+ "Room": 70
+ },
+ {
+ "X": 81408,
+ "Y": 3584,
+ "Z": 51712,
+ "Room": 53
+ },
+ {
+ "X": 82432,
+ "Y": 3584,
+ "Z": 53760,
+ "Room": 77
+ },
+ {
+ "X": 84224,
+ "Y": 3840,
+ "Z": 57600,
+ "Room": 135,
+ "KeyItemsHigh": "13449"
+ },
+ {
+ "X": 84224,
+ "Y": 3840,
+ "Z": 57856,
+ "Room": 135,
+ "KeyItemsHigh": "13449",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 84224,
+ "Y": 3840,
+ "Z": 58112,
+ "Room": 135,
+ "KeyItemsHigh": "13449",
+ "Range": "Medium"
+ },
+ {
+ "X": 84480,
+ "Y": 3840,
+ "Z": 58112,
+ "Room": 135,
+ "KeyItemsHigh": "13449",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 84480,
+ "Y": 3840,
+ "Z": 57856,
+ "Room": 135,
+ "KeyItemsHigh": "13449,13395",
+ "Range": "Large"
+ },
+ {
+ "X": 84480,
+ "Y": 3840,
+ "Z": 57600,
+ "Room": 135,
+ "KeyItemsHigh": "13449,13395",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 83456,
+ "Y": 5120,
+ "Z": 55808,
+ "Room": 75
+ },
+ {
+ "X": 80384,
+ "Y": 5120,
+ "Z": 50688,
+ "Room": 54
+ },
+ {
+ "X": 80384,
+ "Y": 5120,
+ "Z": 49664,
+ "Room": 71
+ },
+ {
+ "X": 70144,
+ "Y": 6656,
+ "Z": 56576,
+ "Room": 116,
+ "KeyItemsHigh": "13377",
+ "Range": "Medium"
+ },
+ {
+ "X": 69888,
+ "Y": 6656,
+ "Z": 56576,
+ "Room": 116,
+ "KeyItemsHigh": "13377",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 69888,
+ "Y": 6656,
+ "Z": 56832,
+ "Room": 116,
+ "KeyItemsHigh": "13377",
+ "Range": "Large"
+ },
+ {
+ "X": 69888,
+ "Y": 6656,
+ "Z": 57088,
+ "Room": 116,
+ "KeyItemsHigh": "13377",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 69120,
+ "Y": 6656,
+ "Z": 56832,
+ "Room": 117
+ },
+ {
+ "X": 66048,
+ "Y": 5376,
+ "Z": 54784,
+ "Room": 118
+ },
+ {
+ "X": 67072,
+ "Y": 3840,
+ "Z": 53760,
+ "Room": 119
+ },
+ {
+ "X": 70144,
+ "Y": 3584,
+ "Z": 52736,
+ "Room": 114
+ },
+ {
+ "X": 71168,
+ "Y": 3584,
+ "Z": 53760,
+ "Room": 58
+ },
+ {
+ "X": 73216,
+ "Y": 3584,
+ "Z": 50688,
+ "Room": 53
+ },
+ {
+ "X": 74240,
+ "Y": 4864,
+ "Z": 48640,
+ "Room": 152
+ },
+ {
+ "X": 73216,
+ "Y": 3840,
+ "Z": 47616,
+ "Room": 74
+ },
+ {
+ "X": 74240,
+ "Y": 6400,
+ "Z": 47616,
+ "Room": 81
+ },
+ {
+ "X": 71168,
+ "Y": 3840,
+ "Z": 47616,
+ "Room": 113
+ },
+ {
+ "X": 70144,
+ "Y": 3840,
+ "Z": 47616,
+ "Room": 123
+ },
+ {
+ "X": 67072,
+ "Y": 5888,
+ "Z": 48640,
+ "Room": 122
+ },
+ {
+ "X": 55808,
+ "Y": 6400,
+ "Z": 49664,
+ "Room": 121
+ },
+ {
+ "X": 50688,
+ "Y": 7168,
+ "Z": 49664,
+ "Room": 104
+ }
+ ],
+ "RIG.TR2": [
+ {
+ "X": 46592,
+ "Y": -1536,
+ "Z": 90624,
+ "Room": 4,
+ "KeyItemsLow": "14193",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": -1536,
+ "Z": 90880,
+ "Room": 4,
+ "KeyItemsLow": "14193,14238,14240",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46848,
+ "Y": -1536,
+ "Z": 90880,
+ "Room": 4,
+ "KeyItemsLow": "14193,14240,14238",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50688,
+ "Y": -1536,
+ "Z": 94720,
+ "Room": 5
+ },
+ {
+ "X": 45568,
+ "Y": -1536,
+ "Z": 96000,
+ "Room": 10,
+ "KeyItemsLow": "14193"
+ },
+ {
+ "X": 45568,
+ "Y": -1536,
+ "Z": 95744,
+ "Room": 10,
+ "KeyItemsLow": "14193,14238,14240",
+ "Range": "Medium"
+ },
+ {
+ "X": 45568,
+ "Y": -1536,
+ "Z": 95488,
+ "Room": 10,
+ "KeyItemsLow": "14193,14238,14240",
+ "Range": "Large"
+ },
+ {
+ "X": 42496,
+ "Y": 2048,
+ "Z": 93696,
+ "Room": 6,
+ "KeyItemsHigh": "14193"
+ },
+ {
+ "X": 42240,
+ "Y": 2048,
+ "Z": 93696,
+ "Room": 6,
+ "KeyItemsHigh": "14193",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": 2048,
+ "Z": 93696,
+ "Room": 88
+ },
+ {
+ "X": 34304,
+ "Y": 2048,
+ "Z": 93696,
+ "Room": 87
+ },
+ {
+ "X": 34304,
+ "Y": 2048,
+ "Z": 89600,
+ "Room": 89
+ },
+ {
+ "X": 34304,
+ "Y": 2048,
+ "Z": 79360,
+ "Room": 86
+ },
+ {
+ "X": 31232,
+ "Y": 2048,
+ "Z": 79360,
+ "Room": 85
+ },
+ {
+ "X": 24064,
+ "Y": -2048,
+ "Z": 92672,
+ "Room": 2
+ },
+ {
+ "X": 24064,
+ "Y": 2048,
+ "Z": 96768,
+ "Room": 78
+ },
+ {
+ "X": 20992,
+ "Y": 2048,
+ "Z": 95744,
+ "Room": 79
+ },
+ {
+ "X": 22016,
+ "Y": 2048,
+ "Z": 89600,
+ "Room": 14
+ },
+ {
+ "X": 22016,
+ "Y": 3072,
+ "Z": 96768,
+ "Room": 58
+ },
+ {
+ "X": 22016,
+ "Y": 2048,
+ "Z": 93696,
+ "Room": 77
+ },
+ {
+ "X": 24064,
+ "Y": -3072,
+ "Z": 76288,
+ "Room": 13,
+ "KeyItemsLow": "14193"
+ },
+ {
+ "X": 24320,
+ "Y": -3072,
+ "Z": 76288,
+ "Room": 13,
+ "KeyItemsLow": "14193",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": -3072,
+ "Z": 78336,
+ "Room": 90
+ },
+ {
+ "X": 32256,
+ "Y": -3072,
+ "Z": 78336,
+ "Room": 91
+ },
+ {
+ "X": 38400,
+ "Y": -3072,
+ "Z": 78336,
+ "Room": 0
+ },
+ {
+ "X": 40448,
+ "Y": -2048,
+ "Z": 78336,
+ "Room": 96
+ },
+ {
+ "X": 42496,
+ "Y": -2560,
+ "Z": 78336,
+ "Room": 7
+ },
+ {
+ "X": 33280,
+ "Y": -1280,
+ "Z": 84480,
+ "Room": 97
+ },
+ {
+ "X": 37376,
+ "Y": -2816,
+ "Z": 84480,
+ "Room": 0
+ },
+ {
+ "X": 34304,
+ "Y": -3200,
+ "Z": 84480,
+ "Room": 93
+ },
+ {
+ "X": 31232,
+ "Y": -2944,
+ "Z": 84480,
+ "Room": 90
+ },
+ {
+ "X": 33280,
+ "Y": -2944,
+ "Z": 91648,
+ "Room": 92
+ },
+ {
+ "X": 33280,
+ "Y": -1280,
+ "Z": 88576,
+ "Room": 1
+ },
+ {
+ "X": 44544,
+ "Y": -1536,
+ "Z": 89600,
+ "Room": 11
+ },
+ {
+ "X": 42496,
+ "Y": -1792,
+ "Z": 75264,
+ "Room": 12
+ },
+ {
+ "X": 38400,
+ "Y": -2816,
+ "Z": 75264,
+ "Room": 3
+ },
+ {
+ "X": 37632,
+ "Y": -2816,
+ "Z": 73216,
+ "Room": 15,
+ "KeyItemsHigh": "14193",
+ "KeyItemsLow": "14238"
+ },
+ {
+ "X": 37376,
+ "Y": -2816,
+ "Z": 73216,
+ "Room": 15,
+ "KeyItemsHigh": "14193",
+ "KeyItemsLow": "14238",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37120,
+ "Y": -2816,
+ "Z": 73216,
+ "Room": 15,
+ "KeyItemsHigh": "14193",
+ "Range": "Medium"
+ },
+ {
+ "X": 37120,
+ "Y": -2816,
+ "Z": 72960,
+ "Room": 15,
+ "KeyItemsHigh": "14193",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": -2816,
+ "Z": 72960,
+ "Room": 15,
+ "KeyItemsHigh": "14193",
+ "Range": "Large"
+ },
+ {
+ "X": 37632,
+ "Y": -2816,
+ "Z": 72960,
+ "Room": 15,
+ "KeyItemsHigh": "14193",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": -2816,
+ "Z": 69120,
+ "Room": 16
+ },
+ {
+ "X": 30208,
+ "Y": -4096,
+ "Z": 68096,
+ "Room": 17
+ },
+ {
+ "X": 34304,
+ "Y": -4096,
+ "Z": 66048,
+ "Room": 42
+ },
+ {
+ "X": 34304,
+ "Y": -4096,
+ "Z": 60928,
+ "Room": 43
+ },
+ {
+ "X": 31232,
+ "Y": -4096,
+ "Z": 60928,
+ "Room": 19
+ },
+ {
+ "X": 29184,
+ "Y": -4096,
+ "Z": 62976,
+ "Room": 20
+ },
+ {
+ "X": 28160,
+ "Y": -3968,
+ "Z": 65024,
+ "Room": 21
+ },
+ {
+ "X": 29184,
+ "Y": -5376,
+ "Z": 73216,
+ "Room": 22
+ },
+ {
+ "X": 27136,
+ "Y": -6912,
+ "Z": 73216,
+ "Room": 23
+ },
+ {
+ "X": 25088,
+ "Y": -6656,
+ "Z": 73216,
+ "Room": 24
+ },
+ {
+ "X": 25088,
+ "Y": 1024,
+ "Z": 67072,
+ "Room": 60
+ },
+ {
+ "X": 22016,
+ "Y": -3584,
+ "Z": 66048,
+ "Room": 27
+ },
+ {
+ "X": 19968,
+ "Y": -3584,
+ "Z": 67072,
+ "Room": 26
+ },
+ {
+ "X": 18944,
+ "Y": -8704,
+ "Z": 72192,
+ "Room": 50
+ },
+ {
+ "X": 38400,
+ "Y": -2816,
+ "Z": 69120,
+ "Room": 28
+ },
+ {
+ "X": 43520,
+ "Y": -4096,
+ "Z": 67072,
+ "Room": 29
+ },
+ {
+ "X": 41472,
+ "Y": -4096,
+ "Z": 67072,
+ "Room": 30
+ },
+ {
+ "X": 39424,
+ "Y": -4224,
+ "Z": 60928,
+ "Room": 31
+ },
+ {
+ "X": 42496,
+ "Y": -4992,
+ "Z": 55552,
+ "Room": 33,
+ "KeyItemsHigh": "14238",
+ "KeyItemsLow": "14240"
+ },
+ {
+ "X": 42496,
+ "Y": -4992,
+ "Z": 55808,
+ "Room": 33,
+ "KeyItemsHigh": "14238",
+ "KeyItemsLow": "14240",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": -4992,
+ "Z": 56064,
+ "Room": 33,
+ "KeyItemsHigh": "14238",
+ "Range": "Medium"
+ },
+ {
+ "X": 42680,
+ "Y": -4945,
+ "Z": 56074,
+ "Room": 33,
+ "KeyItemsHigh": "14238",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42667,
+ "Y": -4949,
+ "Z": 55808,
+ "Room": 33,
+ "KeyItemsHigh": "14238",
+ "Range": "Large"
+ },
+ {
+ "X": 42654,
+ "Y": -4952,
+ "Z": 55541,
+ "Room": 33,
+ "KeyItemsHigh": "14238",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 43520,
+ "Y": -4736,
+ "Z": 55808,
+ "Room": 32
+ },
+ {
+ "X": 48640,
+ "Y": -5120,
+ "Z": 57856,
+ "Room": 33
+ },
+ {
+ "X": 49664,
+ "Y": -7168,
+ "Z": 56832,
+ "Room": 38
+ },
+ {
+ "X": 52736,
+ "Y": -6912,
+ "Z": 55808,
+ "Room": 39
+ },
+ {
+ "X": 52736,
+ "Y": -5888,
+ "Z": 48640,
+ "Room": 37
+ },
+ {
+ "X": 47616,
+ "Y": -5120,
+ "Z": 53760,
+ "Room": 34
+ },
+ {
+ "X": 45568,
+ "Y": -1792,
+ "Z": 50688,
+ "Room": 36
+ },
+ {
+ "X": 43520,
+ "Y": -5888,
+ "Z": 48640,
+ "Room": 34
+ },
+ {
+ "X": 51712,
+ "Y": -3712,
+ "Z": 45568,
+ "Room": 53
+ },
+ {
+ "X": 42496,
+ "Y": 2560,
+ "Z": 45568,
+ "Room": 49
+ },
+ {
+ "X": 42496,
+ "Y": 2560,
+ "Z": 41472,
+ "Room": 98
+ },
+ {
+ "X": 38400,
+ "Y": 2560,
+ "Z": 41472,
+ "Room": 99
+ },
+ {
+ "X": 29184,
+ "Y": 2560,
+ "Z": 42496,
+ "Room": 48
+ },
+ {
+ "X": 28160,
+ "Y": 9984,
+ "Z": 40448,
+ "Room": 104
+ },
+ {
+ "X": 27136,
+ "Y": 6400,
+ "Z": 38400,
+ "Room": 108
+ },
+ {
+ "X": 30208,
+ "Y": 6400,
+ "Z": 38400,
+ "Room": 107
+ },
+ {
+ "X": 31232,
+ "Y": 9984,
+ "Z": 38400,
+ "Room": 103
+ },
+ {
+ "X": 39424,
+ "Y": 9984,
+ "Z": 34304,
+ "Room": 41
+ },
+ {
+ "X": 41472,
+ "Y": 6400,
+ "Z": 35328,
+ "Room": 63
+ },
+ {
+ "X": 38400,
+ "Y": 6400,
+ "Z": 38400,
+ "Room": 107
+ },
+ {
+ "X": 39424,
+ "Y": 9984,
+ "Z": 42496,
+ "Room": 64
+ },
+ {
+ "X": 39424,
+ "Y": 9984,
+ "Z": 51712,
+ "Room": 106
+ },
+ {
+ "X": 41472,
+ "Y": 6400,
+ "Z": 54784,
+ "Room": 110
+ },
+ {
+ "X": 38400,
+ "Y": 6400,
+ "Z": 54784,
+ "Room": 109
+ },
+ {
+ "X": 36352,
+ "Y": 9984,
+ "Z": 54784,
+ "Room": 105
+ },
+ {
+ "X": 29184,
+ "Y": 9984,
+ "Z": 58880,
+ "Room": 61
+ },
+ {
+ "X": 27136,
+ "Y": 6400,
+ "Z": 57856,
+ "Room": 44
+ },
+ {
+ "X": 30208,
+ "Y": 6400,
+ "Z": 54784,
+ "Room": 109
+ },
+ {
+ "X": 29184,
+ "Y": 9984,
+ "Z": 48640,
+ "Room": 62
+ },
+ {
+ "X": 26112,
+ "Y": 2560,
+ "Z": 37376,
+ "Room": 100
+ },
+ {
+ "X": 29184,
+ "Y": 2560,
+ "Z": 51712,
+ "Room": 40
+ },
+ {
+ "X": 30208,
+ "Y": 2560,
+ "Z": 51712,
+ "Room": 101
+ },
+ {
+ "X": 39424,
+ "Y": 2560,
+ "Z": 53760,
+ "Room": 102
+ },
+ {
+ "X": 43520,
+ "Y": 2048,
+ "Z": 53760,
+ "Room": 18
+ },
+ {
+ "X": 35328,
+ "Y": 768,
+ "Z": 59904,
+ "Room": 54
+ },
+ {
+ "X": 42496,
+ "Y": -2304,
+ "Z": 60928,
+ "Room": 55
+ },
+ {
+ "X": 52736,
+ "Y": -8960,
+ "Z": 59904,
+ "Room": 56
+ },
+ {
+ "X": 45568,
+ "Y": -1792,
+ "Z": 41472,
+ "Room": 35
+ },
+ {
+ "X": 45312,
+ "Y": -3840,
+ "Z": 39424,
+ "Room": 68,
+ "KeyItemsHigh": "14240"
+ },
+ {
+ "X": 45568,
+ "Y": -3840,
+ "Z": 39424,
+ "Room": 68,
+ "KeyItemsHigh": "14240",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45824,
+ "Y": -3840,
+ "Z": 39424,
+ "Room": 68,
+ "KeyItemsHigh": "14240",
+ "Range": "Medium"
+ },
+ {
+ "X": 45824,
+ "Y": -3840,
+ "Z": 39168,
+ "Room": 68,
+ "KeyItemsHigh": "14240",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": -3840,
+ "Z": 39168,
+ "Room": 68,
+ "KeyItemsHigh": "14240",
+ "Range": "Large"
+ },
+ {
+ "X": 45312,
+ "Y": -3840,
+ "Z": 39168,
+ "Room": 68,
+ "KeyItemsHigh": "14240",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -1024,
+ "Z": 33280,
+ "Room": 69
+ },
+ {
+ "X": 38400,
+ "Y": 1280,
+ "Z": 33280,
+ "Room": 75
+ },
+ {
+ "X": 38400,
+ "Y": -256,
+ "Z": 27136,
+ "Room": 70
+ }
+ ],
+ "PLATFORM.TR2": [
+ {
+ "X": 49664,
+ "Y": 1280,
+ "Z": 58880,
+ "Room": 0
+ },
+ {
+ "X": 49664,
+ "Y": -256,
+ "Z": 57856,
+ "Room": 37
+ },
+ {
+ "X": 43520,
+ "Y": -2304,
+ "Z": 54784,
+ "Room": 39
+ },
+ {
+ "X": 45568,
+ "Y": 4096,
+ "Z": 53760,
+ "Room": 41
+ },
+ {
+ "X": 45568,
+ "Y": 4096,
+ "Z": 51712,
+ "Room": 51
+ },
+ {
+ "X": 44544,
+ "Y": 768,
+ "Z": 60672,
+ "Room": 44,
+ "KeyItemsLow": "15301",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 768,
+ "Z": 60928,
+ "Room": 44,
+ "KeyItemsLow": "15301",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 768,
+ "Z": 61184,
+ "Room": 44,
+ "KeyItemsLow": "15301,15299,15250,15206",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 40448,
+ "Y": 1024,
+ "Z": 60928,
+ "Room": 42
+ },
+ {
+ "X": 37376,
+ "Y": 4480,
+ "Z": 59904,
+ "Room": 43
+ },
+ {
+ "X": 36352,
+ "Y": 5120,
+ "Z": 51712,
+ "Room": 45
+ },
+ {
+ "X": 37376,
+ "Y": 2560,
+ "Z": 48640,
+ "Room": 46
+ },
+ {
+ "X": 40448,
+ "Y": 1024,
+ "Z": 51712,
+ "Room": 47
+ },
+ {
+ "X": 32256,
+ "Y": 1024,
+ "Z": 60928,
+ "Room": 48
+ },
+ {
+ "X": 23040,
+ "Y": 4096,
+ "Z": 71936,
+ "Room": 56,
+ "KeyItemsLow": "15301"
+ },
+ {
+ "X": 23040,
+ "Y": 4096,
+ "Z": 72192,
+ "Room": 56,
+ "KeyItemsLow": "15301",
+ "Range": "Medium"
+ },
+ {
+ "X": 23040,
+ "Y": 4096,
+ "Z": 72448,
+ "Room": 56,
+ "KeyItemsLow": "15301",
+ "Range": "Large"
+ },
+ {
+ "X": 19968,
+ "Y": 4352,
+ "Z": 73216,
+ "Room": 57
+ },
+ {
+ "X": 18944,
+ "Y": 4352,
+ "Z": 70144,
+ "Room": 96,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 19968,
+ "Y": -768,
+ "Z": 60928,
+ "Room": 97,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 20992,
+ "Y": -11008,
+ "Z": 77312,
+ "Room": 50,
+ "KeyItemsLow": "15299,15250,15206",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": -11776,
+ "Z": 77312,
+ "Room": 55
+ },
+ {
+ "X": 27136,
+ "Y": -7040,
+ "Z": 74240,
+ "Room": 53
+ },
+ {
+ "X": 27136,
+ "Y": -5376,
+ "Z": 74240,
+ "Room": 54
+ },
+ {
+ "X": 23040,
+ "Y": -1408,
+ "Z": 74240,
+ "Room": 52
+ },
+ {
+ "X": 19968,
+ "Y": -1280,
+ "Z": 77312,
+ "Room": 62
+ },
+ {
+ "X": 13824,
+ "Y": -2816,
+ "Z": 75264,
+ "Room": 63
+ },
+ {
+ "X": 33280,
+ "Y": -5120,
+ "Z": 77568,
+ "Room": 49,
+ "KeyItemsHigh": "15301"
+ },
+ {
+ "X": 33280,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 49,
+ "KeyItemsHigh": "15301",
+ "KeyItemsLow": "15299,15206",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": -5120,
+ "Z": 77056,
+ "Room": 49,
+ "KeyItemsHigh": "15301",
+ "Range": "Medium"
+ },
+ {
+ "X": 33536,
+ "Y": -5120,
+ "Z": 77056,
+ "Room": 49,
+ "KeyItemsHigh": "15301",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33536,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 49,
+ "KeyItemsHigh": "15301",
+ "Range": "Large"
+ },
+ {
+ "X": 33536,
+ "Y": -5120,
+ "Z": 77568,
+ "Room": 49,
+ "KeyItemsHigh": "15301",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": -5120,
+ "Z": 77056,
+ "Room": 15,
+ "KeyItemsLow": "15206,15299"
+ },
+ {
+ "X": 38400,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 15,
+ "KeyItemsLow": "15206,15250,15299",
+ "Range": "Medium"
+ },
+ {
+ "X": 38400,
+ "Y": -5120,
+ "Z": 77568,
+ "Room": 15,
+ "KeyItemsLow": "15206,15250,15299",
+ "Range": "Large"
+ },
+ {
+ "X": 41472,
+ "Y": -5120,
+ "Z": 83456,
+ "Room": 14
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 85504,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 83456,
+ "Room": 16
+ },
+ {
+ "X": 53760,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 29
+ },
+ {
+ "X": 60928,
+ "Y": -512,
+ "Z": 73216,
+ "Room": 32
+ },
+ {
+ "X": 66048,
+ "Y": -512,
+ "Z": 75264,
+ "Room": 83
+ },
+ {
+ "X": 69120,
+ "Y": -512,
+ "Z": 77312,
+ "Room": 84
+ },
+ {
+ "X": 69120,
+ "Y": -512,
+ "Z": 79360,
+ "Room": 85
+ },
+ {
+ "X": 70115,
+ "Y": -512,
+ "Z": 80308,
+ "Room": 86
+ },
+ {
+ "X": 74240,
+ "Y": -512,
+ "Z": 79360,
+ "Room": 89
+ },
+ {
+ "X": 74240,
+ "Y": -512,
+ "Z": 74240,
+ "Room": 88
+ },
+ {
+ "X": 69120,
+ "Y": -512,
+ "Z": 74240,
+ "Room": 87
+ },
+ {
+ "X": 49664,
+ "Y": -5120,
+ "Z": 70144,
+ "Room": 13
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 69120,
+ "Room": 25
+ },
+ {
+ "X": 41472,
+ "Y": -6656,
+ "Z": 66048,
+ "Room": 24
+ },
+ {
+ "X": 42496,
+ "Y": -7936,
+ "Z": 61952,
+ "Room": 75
+ },
+ {
+ "X": 45568,
+ "Y": -8704,
+ "Z": 61952,
+ "Room": 26
+ },
+ {
+ "X": 45568,
+ "Y": -9216,
+ "Z": 68096,
+ "Room": 22
+ },
+ {
+ "X": 45568,
+ "Y": -9216,
+ "Z": 72192,
+ "Room": 21
+ },
+ {
+ "X": 45568,
+ "Y": -9216,
+ "Z": 86528,
+ "Room": 23
+ },
+ {
+ "X": 42496,
+ "Y": -9216,
+ "Z": 86528,
+ "Room": 80
+ },
+ {
+ "X": 62720,
+ "Y": -3584,
+ "Z": 78336,
+ "Room": 30,
+ "KeyItemsHigh": "15299",
+ "KeyItemsLow": "15250"
+ },
+ {
+ "X": 62976,
+ "Y": -3584,
+ "Z": 78336,
+ "Room": 30,
+ "KeyItemsHigh": "15299",
+ "KeyItemsLow": "15250",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 63232,
+ "Y": -3584,
+ "Z": 78336,
+ "Room": 30,
+ "KeyItemsHigh": "15299",
+ "Range": "Medium"
+ },
+ {
+ "X": 63232,
+ "Y": -3584,
+ "Z": 78592,
+ "Room": 30,
+ "KeyItemsHigh": "15299",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": -3584,
+ "Z": 78592,
+ "Room": 30,
+ "KeyItemsHigh": "15299",
+ "Range": "Large"
+ },
+ {
+ "X": 62720,
+ "Y": -3584,
+ "Z": 78592,
+ "Room": 30,
+ "KeyItemsHigh": "15299",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": -3584,
+ "Z": 79360,
+ "Room": 64
+ },
+ {
+ "X": 62976,
+ "Y": -2816,
+ "Z": 83456,
+ "Room": 65
+ },
+ {
+ "X": 61952,
+ "Y": -2816,
+ "Z": 91648,
+ "Room": 2
+ },
+ {
+ "X": 59904,
+ "Y": 2560,
+ "Z": 87552,
+ "Room": 66
+ },
+ {
+ "X": 58880,
+ "Y": 3584,
+ "Z": 87552,
+ "Room": 11
+ },
+ {
+ "X": 54784,
+ "Y": 2304,
+ "Z": 86528,
+ "Room": 68
+ },
+ {
+ "X": 45568,
+ "Y": 2176,
+ "Z": 84480,
+ "Room": 69
+ },
+ {
+ "X": 47616,
+ "Y": 17920,
+ "Z": 78336,
+ "Room": 70
+ },
+ {
+ "X": 49152,
+ "Y": 981,
+ "Z": 77295,
+ "Room": 20,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": -4608,
+ "Z": 75264,
+ "Room": 34
+ },
+ {
+ "X": 67072,
+ "Y": -4608,
+ "Z": 75264,
+ "Room": 31
+ },
+ {
+ "X": 58880,
+ "Y": -3328,
+ "Z": 67072,
+ "Room": 92
+ },
+ {
+ "X": 45568,
+ "Y": -7424,
+ "Z": 79360,
+ "Room": 72
+ },
+ {
+ "X": 45568,
+ "Y": -7424,
+ "Z": 80384,
+ "Room": 73
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 80384,
+ "Room": 12
+ },
+ {
+ "X": 45824,
+ "Y": -3584,
+ "Z": 77568,
+ "Room": 18,
+ "KeyItemsHigh": "15250,15206"
+ },
+ {
+ "X": 45824,
+ "Y": -3584,
+ "Z": 77312,
+ "Room": 18,
+ "KeyItemsHigh": "15250,15206",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45824,
+ "Y": -3584,
+ "Z": 77056,
+ "Room": 18,
+ "KeyItemsHigh": "15250,15206",
+ "Range": "Medium"
+ },
+ {
+ "X": 45568,
+ "Y": -3584,
+ "Z": 77056,
+ "Room": 18,
+ "KeyItemsHigh": "15250,15206",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": -3584,
+ "Z": 77312,
+ "Room": 18,
+ "KeyItemsHigh": "15250,15206",
+ "Range": "Large"
+ },
+ {
+ "X": 45568,
+ "Y": -3584,
+ "Z": 77568,
+ "Room": 18,
+ "KeyItemsHigh": "15250,15206",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": -1024,
+ "Z": 84480,
+ "Room": 19
+ },
+ {
+ "X": 48640,
+ "Y": -768,
+ "Z": 82432,
+ "Room": 17
+ },
+ {
+ "X": 45568,
+ "Y": -1024,
+ "Z": 71168,
+ "Room": 74
+ },
+ {
+ "X": 45568,
+ "Y": 1024,
+ "Z": 60928,
+ "Room": 7
+ },
+ {
+ "X": 46592,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 3
+ },
+ {
+ "X": 51712,
+ "Y": 2816,
+ "Z": 61952,
+ "Room": 4
+ },
+ {
+ "X": 51712,
+ "Y": 2816,
+ "Z": 67072,
+ "Room": 8
+ },
+ {
+ "X": 53760,
+ "Y": 4096,
+ "Z": 67072,
+ "Room": 9
+ },
+ {
+ "X": 53760,
+ "Y": 3072,
+ "Z": 61952,
+ "Room": 5
+ },
+ {
+ "X": 55808,
+ "Y": 3072,
+ "Z": 61952,
+ "Room": 76
+ },
+ {
+ "X": 54784,
+ "Y": 2816,
+ "Z": 55808,
+ "Room": 79
+ },
+ {
+ "X": 55808,
+ "Y": 5376,
+ "Z": 55808,
+ "Room": 77
+ },
+ {
+ "X": 54784,
+ "Y": 5632,
+ "Z": 59904,
+ "Room": 78
+ }
+ ],
+ "UNWATER.TR2": [
+ {
+ "X": 28160,
+ "Y": -1024,
+ "Z": 41472,
+ "Room": 0
+ },
+ {
+ "X": 38400,
+ "Y": -512,
+ "Z": 51712,
+ "Room": 2
+ },
+ {
+ "X": 37376,
+ "Y": -512,
+ "Z": 51712,
+ "Room": 3
+ },
+ {
+ "X": 18944,
+ "Y": -1024,
+ "Z": 50688,
+ "Room": 6
+ },
+ {
+ "X": 18944,
+ "Y": -1536,
+ "Z": 32256,
+ "Room": 7
+ },
+ {
+ "X": 19068,
+ "Y": -15616,
+ "Z": 32440,
+ "Room": 59
+ },
+ {
+ "X": 38400,
+ "Y": -1024,
+ "Z": 32256,
+ "Room": 5
+ },
+ {
+ "X": 37364,
+ "Y": -15616,
+ "Z": 50671,
+ "Room": 54
+ },
+ {
+ "X": 45620,
+ "Y": -13387,
+ "Z": 57882,
+ "Room": 51
+ },
+ {
+ "X": 56832,
+ "Y": -1536,
+ "Z": 68096,
+ "Room": 9
+ },
+ {
+ "X": 61952,
+ "Y": -1792,
+ "Z": 65024,
+ "Room": 12
+ },
+ {
+ "X": 58880,
+ "Y": -4992,
+ "Z": 60928,
+ "Room": 11
+ },
+ {
+ "X": 62976,
+ "Y": -5632,
+ "Z": 53760,
+ "Room": 14
+ },
+ {
+ "X": 67072,
+ "Y": -1536,
+ "Z": 59904,
+ "Room": 15
+ },
+ {
+ "X": 66048,
+ "Y": -1536,
+ "Z": 62976,
+ "Room": 16
+ },
+ {
+ "X": 65024,
+ "Y": -2816,
+ "Z": 64000,
+ "Room": 13
+ },
+ {
+ "X": 66048,
+ "Y": -6144,
+ "Z": 67072,
+ "Room": 17
+ },
+ {
+ "X": 68096,
+ "Y": -1792,
+ "Z": 68096,
+ "Room": 18
+ },
+ {
+ "X": 70144,
+ "Y": -4352,
+ "Z": 67072,
+ "Room": 19
+ },
+ {
+ "X": 65024,
+ "Y": -7040,
+ "Z": 71168,
+ "Room": 20
+ },
+ {
+ "X": 66048,
+ "Y": -3584,
+ "Z": 75264,
+ "Room": 21
+ },
+ {
+ "X": 67072,
+ "Y": -1280,
+ "Z": 71168,
+ "Room": 62
+ },
+ {
+ "X": 70144,
+ "Y": -3584,
+ "Z": 71168,
+ "Room": 22
+ },
+ {
+ "X": 83456,
+ "Y": -3584,
+ "Z": 72192,
+ "Room": 60
+ },
+ {
+ "X": 83456,
+ "Y": -4480,
+ "Z": 77312,
+ "Room": 61
+ },
+ {
+ "X": 84480,
+ "Y": -2816,
+ "Z": 79360,
+ "Room": 63
+ },
+ {
+ "X": 85504,
+ "Y": -2944,
+ "Z": 78336,
+ "Room": 64
+ },
+ {
+ "X": 85504,
+ "Y": -3584,
+ "Z": 74240,
+ "Room": 33
+ },
+ {
+ "X": 79360,
+ "Y": -3840,
+ "Z": 70144,
+ "Room": 26
+ },
+ {
+ "X": 78336,
+ "Y": -5632,
+ "Z": 68096,
+ "Room": 67
+ },
+ {
+ "X": 78336,
+ "Y": -3840,
+ "Z": 62976,
+ "Room": 25
+ },
+ {
+ "X": 72192,
+ "Y": -3840,
+ "Z": 64000,
+ "Room": 47
+ },
+ {
+ "X": 74240,
+ "Y": -4352,
+ "Z": 70144,
+ "Room": 46
+ },
+ {
+ "X": 75264,
+ "Y": -3840,
+ "Z": 59904,
+ "Room": 28
+ },
+ {
+ "X": 83456,
+ "Y": -3840,
+ "Z": 64000,
+ "Room": 23
+ },
+ {
+ "X": 81408,
+ "Y": -4352,
+ "Z": 75264,
+ "Room": 24
+ },
+ {
+ "X": 75264,
+ "Y": -2560,
+ "Z": 51712,
+ "Room": 29
+ },
+ {
+ "X": 74240,
+ "Y": -3840,
+ "Z": 49664,
+ "Room": 30
+ },
+ {
+ "X": 74240,
+ "Y": -7168,
+ "Z": 49664,
+ "Room": 31
+ },
+ {
+ "X": 75264,
+ "Y": -10496,
+ "Z": 48640,
+ "Room": 32
+ },
+ {
+ "X": 75264,
+ "Y": -3840,
+ "Z": 47616,
+ "Room": 68
+ },
+ {
+ "X": 74240,
+ "Y": -13824,
+ "Z": 46592,
+ "Room": 34
+ },
+ {
+ "X": 75264,
+ "Y": -13824,
+ "Z": 41472,
+ "Room": 35
+ },
+ {
+ "X": 79360,
+ "Y": -8960,
+ "Z": 43520,
+ "Room": 36
+ },
+ {
+ "X": 84480,
+ "Y": -6528,
+ "Z": 44544,
+ "Room": 40
+ },
+ {
+ "X": 82432,
+ "Y": -6656,
+ "Z": 53760,
+ "Room": 41
+ },
+ {
+ "X": 83456,
+ "Y": -8448,
+ "Z": 47616,
+ "Room": 37
+ },
+ {
+ "X": 79360,
+ "Y": -13824,
+ "Z": 48640,
+ "Room": 38
+ },
+ {
+ "X": 82432,
+ "Y": -12032,
+ "Z": 37376,
+ "Room": 39
+ },
+ {
+ "X": 86528,
+ "Y": -12032,
+ "Z": 36352,
+ "Room": 27
+ },
+ {
+ "X": 80384,
+ "Y": -7168,
+ "Z": 38400,
+ "Room": 42
+ },
+ {
+ "X": 81408,
+ "Y": -7168,
+ "Z": 37376,
+ "Room": 76
+ },
+ {
+ "X": 82432,
+ "Y": -7168,
+ "Z": 35328,
+ "Room": 75
+ },
+ {
+ "X": 81408,
+ "Y": 0,
+ "Z": 32256,
+ "Room": 44
+ },
+ {
+ "X": 82432,
+ "Y": -1792,
+ "Z": 34304,
+ "Room": 74
+ },
+ {
+ "X": 81408,
+ "Y": -1792,
+ "Z": 37376,
+ "Room": 66
+ },
+ {
+ "X": 81408,
+ "Y": -3328,
+ "Z": 43520,
+ "Room": 49
+ },
+ {
+ "X": 81408,
+ "Y": -3584,
+ "Z": 45568,
+ "Room": 50
+ }
+ ],
+ "KEEL.TR2": [
+ {
+ "X": 66048,
+ "Y": -4352,
+ "Z": 29184,
+ "Room": 113,
+ "KeyItemsLow": "17324,17298,17304,17343,17349,17407",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 66304,
+ "Y": -4352,
+ "Z": 29184,
+ "Room": 113,
+ "KeyItemsLow": "17407,17304,17298,17349",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 66304,
+ "Y": -4352,
+ "Z": 29440,
+ "Room": 113,
+ "KeyItemsLow": "17407,17343,17304,17298,17349",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 19
+ },
+ {
+ "X": 64000,
+ "Y": -1792,
+ "Z": 33280,
+ "Room": 112
+ },
+ {
+ "X": 62976,
+ "Y": -1792,
+ "Z": 37376,
+ "Room": 42
+ },
+ {
+ "X": 64000,
+ "Y": -3072,
+ "Z": 41472,
+ "Room": 43
+ },
+ {
+ "X": 62720,
+ "Y": 4352,
+ "Z": 43520,
+ "Room": 45,
+ "KeyItemsLow": "17298,17304,17349,17407"
+ },
+ {
+ "X": 62976,
+ "Y": 4352,
+ "Z": 43520,
+ "Room": 45,
+ "KeyItemsLow": "17407,17343,17304,17298,17349",
+ "Range": "Medium"
+ },
+ {
+ "X": 63232,
+ "Y": 4352,
+ "Z": 43520,
+ "Room": 45,
+ "KeyItemsLow": "17407,17343,17304,17298,17349",
+ "Range": "Large"
+ },
+ {
+ "X": 64000,
+ "Y": 4608,
+ "Z": 51712,
+ "Room": 47
+ },
+ {
+ "X": 61952,
+ "Y": 2560,
+ "Z": 52736,
+ "Room": 12
+ },
+ {
+ "X": 67072,
+ "Y": 2560,
+ "Z": 52736,
+ "Room": 15
+ },
+ {
+ "X": 67072,
+ "Y": 2560,
+ "Z": 40448,
+ "Room": 14
+ },
+ {
+ "X": 67072,
+ "Y": 4352,
+ "Z": 39424,
+ "Room": 10
+ },
+ {
+ "X": 64000,
+ "Y": 4352,
+ "Z": 58880,
+ "Room": 5
+ },
+ {
+ "X": 68096,
+ "Y": 4224,
+ "Z": 56832,
+ "Room": 53
+ },
+ {
+ "X": 70144,
+ "Y": 5120,
+ "Z": 58880,
+ "Room": 54
+ },
+ {
+ "X": 69120,
+ "Y": 5120,
+ "Z": 60928,
+ "Room": 55
+ },
+ {
+ "X": 75264,
+ "Y": 3072,
+ "Z": 74240,
+ "Room": 56
+ },
+ {
+ "X": 79360,
+ "Y": 6400,
+ "Z": 59904,
+ "Room": 93
+ },
+ {
+ "X": 66048,
+ "Y": 4352,
+ "Z": 58880,
+ "Room": 48
+ },
+ {
+ "X": 66048,
+ "Y": 4736,
+ "Z": 61952,
+ "Room": 49
+ },
+ {
+ "X": 58880,
+ "Y": 4608,
+ "Z": 68096,
+ "Room": 91
+ },
+ {
+ "X": 75008,
+ "Y": 2304,
+ "Z": 76288,
+ "Room": 57,
+ "KeyItemsHigh": "17407",
+ "KeyItemsLow": "17343"
+ },
+ {
+ "X": 75264,
+ "Y": 2304,
+ "Z": 76288,
+ "Room": 57,
+ "KeyItemsHigh": "17407",
+ "KeyItemsLow": "17343",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 75520,
+ "Y": 2304,
+ "Z": 76288,
+ "Room": 57,
+ "KeyItemsHigh": "17407",
+ "Range": "Medium"
+ },
+ {
+ "X": 75520,
+ "Y": 2304,
+ "Z": 76544,
+ "Room": 57,
+ "KeyItemsHigh": "17407",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 75264,
+ "Y": 2304,
+ "Z": 76544,
+ "Room": 57,
+ "KeyItemsHigh": "17407",
+ "Range": "Large"
+ },
+ {
+ "X": 75008,
+ "Y": 2304,
+ "Z": 76544,
+ "Room": 57,
+ "KeyItemsHigh": "17407",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": 2304,
+ "Z": 82432,
+ "Room": 58
+ },
+ {
+ "X": 71168,
+ "Y": 3328,
+ "Z": 80384,
+ "Room": 61
+ },
+ {
+ "X": 66048,
+ "Y": 5376,
+ "Z": 83456,
+ "Room": 60
+ },
+ {
+ "X": 66048,
+ "Y": 2304,
+ "Z": 87552,
+ "Room": 65
+ },
+ {
+ "X": 59904,
+ "Y": 3328,
+ "Z": 88576,
+ "Room": 64
+ },
+ {
+ "X": 59904,
+ "Y": 3328,
+ "Z": 83456,
+ "Room": 63
+ },
+ {
+ "X": 59904,
+ "Y": 3072,
+ "Z": 78336,
+ "Room": 67
+ },
+ {
+ "X": 66048,
+ "Y": 3328,
+ "Z": 78336,
+ "Room": 66
+ },
+ {
+ "X": 70912,
+ "Y": 2304,
+ "Z": 83456,
+ "Room": 59,
+ "KeyItemsHigh": "17343"
+ },
+ {
+ "X": 71168,
+ "Y": 2304,
+ "Z": 83456,
+ "Room": 59,
+ "KeyItemsHigh": "17343",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71424,
+ "Y": 2304,
+ "Z": 83456,
+ "Room": 59,
+ "KeyItemsHigh": "17343",
+ "Range": "Medium"
+ },
+ {
+ "X": 71424,
+ "Y": 2304,
+ "Z": 83712,
+ "Room": 59,
+ "KeyItemsHigh": "17343",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": 2304,
+ "Z": 83712,
+ "Room": 59,
+ "KeyItemsHigh": "17343",
+ "Range": "Large"
+ },
+ {
+ "X": 70912,
+ "Y": 2304,
+ "Z": 83712,
+ "Room": 59,
+ "KeyItemsHigh": "17343",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68096,
+ "Y": 4352,
+ "Z": 87552,
+ "Room": 62
+ },
+ {
+ "X": 67072,
+ "Y": 5376,
+ "Z": 91648,
+ "Room": 68
+ },
+ {
+ "X": 60928,
+ "Y": 7680,
+ "Z": 92672,
+ "Room": 70
+ },
+ {
+ "X": 58880,
+ "Y": 5248,
+ "Z": 93696,
+ "Room": 69
+ },
+ {
+ "X": 58880,
+ "Y": 2432,
+ "Z": 97792,
+ "Room": 13
+ },
+ {
+ "X": 54784,
+ "Y": 4352,
+ "Z": 89600,
+ "Room": 71
+ },
+ {
+ "X": 54784,
+ "Y": 8960,
+ "Z": 87552,
+ "Room": 73
+ },
+ {
+ "X": 52736,
+ "Y": 2816,
+ "Z": 87552,
+ "Room": 97
+ },
+ {
+ "X": 51712,
+ "Y": 2816,
+ "Z": 88576,
+ "Room": 96
+ },
+ {
+ "X": 49664,
+ "Y": 1792,
+ "Z": 91648,
+ "Room": 95
+ },
+ {
+ "X": 54784,
+ "Y": 2816,
+ "Z": 84480,
+ "Room": 74
+ },
+ {
+ "X": 52736,
+ "Y": 2816,
+ "Z": 81408,
+ "Room": 75
+ },
+ {
+ "X": 48640,
+ "Y": 3584,
+ "Z": 82432,
+ "Room": 80
+ },
+ {
+ "X": 39424,
+ "Y": 5632,
+ "Z": 82432,
+ "Room": 76
+ },
+ {
+ "X": 56832,
+ "Y": 8960,
+ "Z": 85504,
+ "Room": 77
+ },
+ {
+ "X": 56832,
+ "Y": 3328,
+ "Z": 75264,
+ "Room": 78
+ },
+ {
+ "X": 56832,
+ "Y": 4608,
+ "Z": 70144,
+ "Room": 52
+ },
+ {
+ "X": 57856,
+ "Y": 3200,
+ "Z": 73216,
+ "Room": 86
+ },
+ {
+ "X": 62976,
+ "Y": 3072,
+ "Z": 72192,
+ "Room": 90
+ },
+ {
+ "X": 64000,
+ "Y": 3072,
+ "Z": 73216,
+ "Room": 18
+ },
+ {
+ "X": 60928,
+ "Y": 6912,
+ "Z": 42752,
+ "Room": 79,
+ "KeyItemsLow": "17407",
+ "Range": "Medium"
+ },
+ {
+ "X": 60928,
+ "Y": 6912,
+ "Z": 42496,
+ "Room": 79,
+ "KeyItemsLow": "17407",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": 6912,
+ "Z": 42240,
+ "Room": 79,
+ "KeyItemsLow": "17407,17343",
+ "Range": "Large"
+ },
+ {
+ "X": 60672,
+ "Y": 6912,
+ "Z": 42240,
+ "Room": 79,
+ "KeyItemsLow": "17407,17343",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 56832,
+ "Y": 5888,
+ "Z": 39424,
+ "Room": 8
+ },
+ {
+ "X": 58880,
+ "Y": 1920,
+ "Z": 39424,
+ "Room": 9
+ },
+ {
+ "X": 58880,
+ "Y": -4096,
+ "Z": 38400,
+ "Room": 3,
+ "KeyItemsHigh": "17407",
+ "KeyItemsLow": "17324",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59136,
+ "Y": -4096,
+ "Z": 38400,
+ "Room": 3,
+ "KeyItemsHigh": "17407",
+ "Range": "Medium"
+ },
+ {
+ "X": 59136,
+ "Y": -4096,
+ "Z": 38144,
+ "Room": 3,
+ "KeyItemsHigh": "17343",
+ "Range": "Large"
+ },
+ {
+ "X": 58880,
+ "Y": -4096,
+ "Z": 35328,
+ "Room": 21
+ },
+ {
+ "X": 59904,
+ "Y": -4096,
+ "Z": 28160,
+ "Room": 23
+ },
+ {
+ "X": 59904,
+ "Y": -4096,
+ "Z": 22016,
+ "Room": 25
+ },
+ {
+ "X": 56064,
+ "Y": -6656,
+ "Z": 36352,
+ "Room": 26,
+ "KeyItemsHigh": "17298,17304,17349"
+ },
+ {
+ "X": 55808,
+ "Y": -6656,
+ "Z": 36352,
+ "Room": 26,
+ "KeyItemsHigh": "17298,17304,17349",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55552,
+ "Y": -6656,
+ "Z": 36352,
+ "Room": 26,
+ "KeyItemsHigh": "17298,17304,17349",
+ "Range": "Medium"
+ },
+ {
+ "X": 55552,
+ "Y": -6656,
+ "Z": 36096,
+ "Room": 26,
+ "KeyItemsHigh": "17298,17304,17349",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55808,
+ "Y": -6656,
+ "Z": 36096,
+ "Room": 26,
+ "KeyItemsHigh": "17298,17304,17349,17407",
+ "Range": "Large"
+ },
+ {
+ "X": 56064,
+ "Y": -6656,
+ "Z": 36096,
+ "Room": 26,
+ "KeyItemsHigh": "17298,17304,17349,17407,17343",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55808,
+ "Y": -7424,
+ "Z": 32256,
+ "Room": 20
+ },
+ {
+ "X": 55808,
+ "Y": -7424,
+ "Z": 26112,
+ "Room": 22
+ },
+ {
+ "X": 55808,
+ "Y": -7424,
+ "Z": 19968,
+ "Room": 24
+ },
+ {
+ "X": 55808,
+ "Y": -7424,
+ "Z": 15872,
+ "Room": 27
+ },
+ {
+ "X": 56832,
+ "Y": 3840,
+ "Z": 13824,
+ "Room": 30,
+ "KeyItemsLow": "17324",
+ "Range": "Medium"
+ },
+ {
+ "X": 56832,
+ "Y": 3840,
+ "Z": 14080,
+ "Room": 30,
+ "KeyItemsLow": "17324",
+ "Range": "Large"
+ },
+ {
+ "X": 55808,
+ "Y": 1536,
+ "Z": 19968,
+ "Room": 31
+ },
+ {
+ "X": 55808,
+ "Y": 2816,
+ "Z": 27136,
+ "Room": 32
+ },
+ {
+ "X": 55808,
+ "Y": 2944,
+ "Z": 28160,
+ "Room": 94
+ },
+ {
+ "X": 54784,
+ "Y": 3456,
+ "Z": 30208,
+ "Room": 85
+ },
+ {
+ "X": 51712,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 33,
+ "KeyItemsLow": "17324"
+ },
+ {
+ "X": 51456,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 33,
+ "KeyItemsLow": "17324",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 2816,
+ "Z": 33280,
+ "Room": 36
+ },
+ {
+ "X": 45568,
+ "Y": 2816,
+ "Z": 35328,
+ "Room": 35
+ },
+ {
+ "X": 40448,
+ "Y": 3072,
+ "Z": 35328,
+ "Room": 39
+ },
+ {
+ "X": 55808,
+ "Y": 2816,
+ "Z": 35328,
+ "Room": 40
+ },
+ {
+ "X": 40448,
+ "Y": 3456,
+ "Z": 32256,
+ "Room": 37
+ },
+ {
+ "X": 39424,
+ "Y": 3200,
+ "Z": 25088,
+ "Room": 38
+ },
+ {
+ "X": 39424,
+ "Y": 7680,
+ "Z": 20992,
+ "Room": 104
+ },
+ {
+ "X": 39424,
+ "Y": 10112,
+ "Z": 30208,
+ "Room": 105
+ },
+ {
+ "X": 40448,
+ "Y": 6272,
+ "Z": 38400,
+ "Room": 106
+ },
+ {
+ "X": 41472,
+ "Y": 0,
+ "Z": 48640,
+ "Room": 11
+ },
+ {
+ "X": 44544,
+ "Y": 5376,
+ "Z": 40448,
+ "Room": 41
+ },
+ {
+ "X": 49664,
+ "Y": 2816,
+ "Z": 29440,
+ "Room": 34,
+ "KeyItemsHigh": "17324"
+ },
+ {
+ "X": 49664,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 34,
+ "KeyItemsHigh": "17324",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 2816,
+ "Z": 28928,
+ "Room": 34,
+ "KeyItemsHigh": "17324",
+ "Range": "Medium"
+ },
+ {
+ "X": 49408,
+ "Y": 2816,
+ "Z": 28928,
+ "Room": 34,
+ "KeyItemsHigh": "17324",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49408,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 34,
+ "KeyItemsHigh": "17324",
+ "Range": "Large"
+ },
+ {
+ "X": 49408,
+ "Y": 2816,
+ "Z": 29440,
+ "Room": 34,
+ "KeyItemsHigh": "17324",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 1792,
+ "Z": 28160,
+ "Room": 81
+ },
+ {
+ "X": 47616,
+ "Y": 2560,
+ "Z": 23040,
+ "Room": 82
+ },
+ {
+ "X": 47616,
+ "Y": 4608,
+ "Z": 13824,
+ "Room": 83
+ },
+ {
+ "X": 47616,
+ "Y": 4608,
+ "Z": 11776,
+ "Room": 84
+ },
+ {
+ "X": 45568,
+ "Y": 11392,
+ "Z": 18944,
+ "Room": 99
+ },
+ {
+ "X": 45568,
+ "Y": 11392,
+ "Z": 19968,
+ "Room": 103
+ },
+ {
+ "X": 42496,
+ "Y": 10496,
+ "Z": 19968,
+ "Room": 100
+ },
+ {
+ "X": 43520,
+ "Y": 10368,
+ "Z": 15872,
+ "Room": 102
+ },
+ {
+ "X": 52736,
+ "Y": 11136,
+ "Z": 10752,
+ "Room": 101
+ },
+ {
+ "X": 56832,
+ "Y": 12032,
+ "Z": 16896,
+ "Room": 6
+ },
+ {
+ "X": 59904,
+ "Y": 12800,
+ "Z": 16896,
+ "Room": 7
+ },
+ {
+ "X": 69120,
+ "Y": 8448,
+ "Z": 16896,
+ "Room": 89
+ },
+ {
+ "X": 75264,
+ "Y": 12416,
+ "Z": 16896,
+ "Room": 88
+ }
+ ],
+ "LIVING.TR2": [
+ {
+ "X": 92672,
+ "Y": 5632,
+ "Z": 79360,
+ "Room": 4
+ },
+ {
+ "X": 87552,
+ "Y": 5376,
+ "Z": 80384,
+ "Room": 3
+ },
+ {
+ "X": 80384,
+ "Y": -256,
+ "Z": 79360,
+ "Room": 2,
+ "KeyItemsLow": "18300",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 88576,
+ "Room": 0
+ },
+ {
+ "X": 68096,
+ "Y": 0,
+ "Z": 79360,
+ "Room": 50
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 79360,
+ "Room": 5
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 77312,
+ "Room": 60
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 76288,
+ "Room": 24
+ },
+ {
+ "X": 67072,
+ "Y": 1792,
+ "Z": 75264,
+ "Room": 7
+ },
+ {
+ "X": 64000,
+ "Y": 1792,
+ "Z": 73216,
+ "Room": 6
+ },
+ {
+ "X": 58880,
+ "Y": -256,
+ "Z": 76288,
+ "Room": 10
+ },
+ {
+ "X": 58880,
+ "Y": -2048,
+ "Z": 79360,
+ "Room": 54
+ },
+ {
+ "X": 62976,
+ "Y": -2048,
+ "Z": 79360,
+ "Room": 58
+ },
+ {
+ "X": 66048,
+ "Y": -2048,
+ "Z": 79360,
+ "Room": 8
+ },
+ {
+ "X": 73216,
+ "Y": -4352,
+ "Z": 90624,
+ "Room": 1
+ },
+ {
+ "X": 73216,
+ "Y": -4352,
+ "Z": 91648,
+ "Room": 12
+ },
+ {
+ "X": 67072,
+ "Y": -4352,
+ "Z": 90624,
+ "Room": 13
+ },
+ {
+ "X": 67072,
+ "Y": -3840,
+ "Z": 85504,
+ "Room": 11
+ },
+ {
+ "X": 60928,
+ "Y": 640,
+ "Z": 64000,
+ "Room": 14
+ },
+ {
+ "X": 62976,
+ "Y": 4864,
+ "Z": 60928,
+ "Room": 15,
+ "KeyItemsLow": "18300",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": 384,
+ "Z": 61952,
+ "Room": 68
+ },
+ {
+ "X": 64000,
+ "Y": 4352,
+ "Z": 52736,
+ "Room": 17
+ },
+ {
+ "X": 64000,
+ "Y": 512,
+ "Z": 57856,
+ "Room": 16,
+ "KeyItemsLow": "18300",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68096,
+ "Y": -256,
+ "Z": 59904,
+ "Room": 80,
+ "KeyItemsHigh": "18300",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": -1792,
+ "Z": 51712,
+ "Room": 18
+ },
+ {
+ "X": 60928,
+ "Y": -2048,
+ "Z": 58880,
+ "Room": 19
+ },
+ {
+ "X": 58880,
+ "Y": -2176,
+ "Z": 59904,
+ "Room": 31
+ },
+ {
+ "X": 58880,
+ "Y": -1024,
+ "Z": 65024,
+ "Room": 30
+ },
+ {
+ "X": 55808,
+ "Y": -768,
+ "Z": 67072,
+ "Room": 29
+ },
+ {
+ "X": 54784,
+ "Y": -2304,
+ "Z": 73216,
+ "Room": 61
+ },
+ {
+ "X": 54784,
+ "Y": 1024,
+ "Z": 73216,
+ "Room": 62
+ },
+ {
+ "X": 53760,
+ "Y": -896,
+ "Z": 71168,
+ "Room": 27
+ },
+ {
+ "X": 49664,
+ "Y": 1792,
+ "Z": 68352,
+ "Room": 26,
+ "KeyItemsLow": "18300",
+ "Range": "Medium"
+ },
+ {
+ "X": 49664,
+ "Y": 1792,
+ "Z": 68096,
+ "Room": 26,
+ "KeyItemsLow": "18300",
+ "Range": "Large"
+ },
+ {
+ "X": 49664,
+ "Y": 2304,
+ "Z": 67072,
+ "Room": 28
+ },
+ {
+ "X": 47616,
+ "Y": 4224,
+ "Z": 67072,
+ "Room": 72
+ },
+ {
+ "X": 45568,
+ "Y": 3584,
+ "Z": 68096,
+ "Room": 77
+ },
+ {
+ "X": 46592,
+ "Y": 4608,
+ "Z": 72192,
+ "Room": 32
+ },
+ {
+ "X": 48640,
+ "Y": 1536,
+ "Z": 62976,
+ "Room": 69
+ },
+ {
+ "X": 49664,
+ "Y": 0,
+ "Z": 56832,
+ "Room": 70
+ },
+ {
+ "X": 58880,
+ "Y": -2560,
+ "Z": 52736,
+ "Room": 33,
+ "KeyItemsLow": "18300",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": -2048,
+ "Z": 49664,
+ "Room": 20
+ },
+ {
+ "X": 57856,
+ "Y": -3072,
+ "Z": 49664,
+ "Room": 21,
+ "KeyItemsLow": "18300"
+ },
+ {
+ "X": 53760,
+ "Y": -3072,
+ "Z": 49664,
+ "Room": 22
+ },
+ {
+ "X": 58880,
+ "Y": -2048,
+ "Z": 40448,
+ "Room": 34
+ },
+ {
+ "X": 66048,
+ "Y": 128,
+ "Z": 39424,
+ "Room": 35
+ },
+ {
+ "X": 53760,
+ "Y": -2048,
+ "Z": 45568,
+ "Room": 23
+ },
+ {
+ "X": 50688,
+ "Y": -2816,
+ "Z": 44544,
+ "Room": 36
+ },
+ {
+ "X": 45568,
+ "Y": -2560,
+ "Z": 43520,
+ "Room": 39
+ },
+ {
+ "X": 41472,
+ "Y": -3072,
+ "Z": 42496,
+ "Room": 40
+ },
+ {
+ "X": 49408,
+ "Y": -2560,
+ "Z": 42496,
+ "Room": 36,
+ "KeyItemsHigh": "18300"
+ },
+ {
+ "X": 49664,
+ "Y": -2560,
+ "Z": 42496,
+ "Room": 36,
+ "KeyItemsHigh": "18300",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49920,
+ "Y": -2560,
+ "Z": 42496,
+ "Room": 36,
+ "KeyItemsHigh": "18300",
+ "Range": "Medium"
+ },
+ {
+ "X": 49920,
+ "Y": -2560,
+ "Z": 42240,
+ "Room": 36,
+ "KeyItemsHigh": "18300",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -2560,
+ "Z": 42240,
+ "Room": 36,
+ "KeyItemsHigh": "18300",
+ "Range": "Large"
+ },
+ {
+ "X": 49408,
+ "Y": -2560,
+ "Z": 42240,
+ "Room": 36,
+ "KeyItemsHigh": "18300",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -2560,
+ "Z": 41472,
+ "Room": 37
+ },
+ {
+ "X": 41472,
+ "Y": -3840,
+ "Z": 37376,
+ "Room": 38
+ },
+ {
+ "X": 52736,
+ "Y": -2048,
+ "Z": 29184,
+ "Room": 81
+ },
+ {
+ "X": 47616,
+ "Y": -4608,
+ "Z": 28160,
+ "Room": 66
+ },
+ {
+ "X": 68096,
+ "Y": -1920,
+ "Z": 35328,
+ "Room": 42
+ },
+ {
+ "X": 73216,
+ "Y": 0,
+ "Z": 39424,
+ "Room": 79,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": -2048,
+ "Z": 33280,
+ "Room": 43,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": -4352,
+ "Z": 31232,
+ "Room": 45,
+ "Validated": false
+ },
+ {
+ "X": 60928,
+ "Y": -6656,
+ "Z": 28160,
+ "Room": 52,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": -6656,
+ "Z": 28160,
+ "Room": 51,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": -4352,
+ "Z": 28160,
+ "Room": 46,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": -2048,
+ "Z": 29184,
+ "Room": 44,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": -1536,
+ "Z": 14848,
+ "Room": 71,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 15872,
+ "Room": 57,
+ "Validated": false
+ }
+ ],
+ "DECK.TR2": [
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 52992,
+ "Room": 40
+ },
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 52736,
+ "Room": 40,
+ "KeyItemsLow": "19368",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 52480,
+ "Room": 40,
+ "KeyItemsLow": "19262,19385",
+ "Range": "Medium"
+ },
+ {
+ "X": 48896,
+ "Y": -2048,
+ "Z": 52480,
+ "Room": 40,
+ "KeyItemsLow": "19368,19262,19385",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48896,
+ "Y": -2048,
+ "Z": 52736,
+ "Room": 40,
+ "KeyItemsLow": "19262,19385",
+ "Range": "Large"
+ },
+ {
+ "X": 48896,
+ "Y": -2048,
+ "Z": 52992,
+ "Room": 40,
+ "KeyItemsLow": "19368,19262,19385",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -2048,
+ "Z": 49664,
+ "Room": 19
+ },
+ {
+ "X": 49664,
+ "Y": -2048,
+ "Z": 44544,
+ "Room": 20
+ },
+ {
+ "X": 50688,
+ "Y": -4736,
+ "Z": 40448,
+ "Room": 39
+ },
+ {
+ "X": 36352,
+ "Y": -2048,
+ "Z": 44544,
+ "Room": 30
+ },
+ {
+ "X": 36352,
+ "Y": -2048,
+ "Z": 45568,
+ "Room": 21
+ },
+ {
+ "X": 51712,
+ "Y": 10240,
+ "Z": 58880,
+ "Room": 80,
+ "KeyItemsLow": "19368"
+ },
+ {
+ "X": 51712,
+ "Y": 10240,
+ "Z": 59136,
+ "Room": 80,
+ "KeyItemsLow": "19368",
+ "Range": "Medium"
+ },
+ {
+ "X": 51968,
+ "Y": 10240,
+ "Z": 59136,
+ "Room": 80,
+ "KeyItemsLow": "19368",
+ "Range": "Large"
+ },
+ {
+ "X": 52736,
+ "Y": 4736,
+ "Z": 61952,
+ "Room": 79
+ },
+ {
+ "X": 51712,
+ "Y": 9984,
+ "Z": 53760,
+ "Room": 104
+ },
+ {
+ "X": 48640,
+ "Y": 9344,
+ "Z": 46592,
+ "Room": 103
+ },
+ {
+ "X": 48640,
+ "Y": 1792,
+ "Z": 37376,
+ "Room": 76
+ },
+ {
+ "X": 47616,
+ "Y": 3072,
+ "Z": 36352,
+ "Room": 70
+ },
+ {
+ "X": 51712,
+ "Y": 5632,
+ "Z": 29184,
+ "Room": 8
+ },
+ {
+ "X": 54784,
+ "Y": 5888,
+ "Z": 28160,
+ "Room": 0
+ },
+ {
+ "X": 51712,
+ "Y": 6400,
+ "Z": 26112,
+ "Room": 83
+ },
+ {
+ "X": 39424,
+ "Y": 3072,
+ "Z": 35328,
+ "Room": 86
+ },
+ {
+ "X": 35328,
+ "Y": 1792,
+ "Z": 37376,
+ "Room": 77
+ },
+ {
+ "X": 30208,
+ "Y": 2560,
+ "Z": 32256,
+ "Room": 84
+ },
+ {
+ "X": 33280,
+ "Y": 1792,
+ "Z": 31488,
+ "Room": 85,
+ "KeyItemsHigh": "19368"
+ },
+ {
+ "X": 33280,
+ "Y": 1792,
+ "Z": 31232,
+ "Room": 85,
+ "KeyItemsHigh": "19368",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": 1792,
+ "Z": 30976,
+ "Room": 85,
+ "KeyItemsHigh": "19368",
+ "Range": "Medium"
+ },
+ {
+ "X": 33536,
+ "Y": 1792,
+ "Z": 30976,
+ "Room": 85,
+ "KeyItemsHigh": "19368",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33536,
+ "Y": 1792,
+ "Z": 31232,
+ "Room": 85,
+ "KeyItemsHigh": "19368",
+ "Range": "Large"
+ },
+ {
+ "X": 33536,
+ "Y": 1792,
+ "Z": 31488,
+ "Room": 85,
+ "KeyItemsHigh": "19368",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": 6912,
+ "Z": 31232,
+ "Room": 87
+ },
+ {
+ "X": 38400,
+ "Y": 4608,
+ "Z": 38400,
+ "Room": 107
+ },
+ {
+ "X": 38400,
+ "Y": 4608,
+ "Z": 44544,
+ "Room": 108
+ },
+ {
+ "X": 46592,
+ "Y": 7424,
+ "Z": 27136,
+ "Room": 88
+ },
+ {
+ "X": 50688,
+ "Y": 7168,
+ "Z": 27136,
+ "Room": 106
+ },
+ {
+ "X": 56832,
+ "Y": 8320,
+ "Z": 27136,
+ "Room": 3
+ },
+ {
+ "X": 59904,
+ "Y": 7424,
+ "Z": 26112,
+ "Room": 4
+ },
+ {
+ "X": 59904,
+ "Y": 6144,
+ "Z": 26112,
+ "Room": 81,
+ "KeyItemsHigh": "19262,19385",
+ "Range": "Medium"
+ },
+ {
+ "X": 60160,
+ "Y": 6144,
+ "Z": 26112,
+ "Room": 81,
+ "KeyItemsHigh": "19262,19385",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": 5888,
+ "Z": 33280,
+ "Room": 22
+ },
+ {
+ "X": 58880,
+ "Y": 6016,
+ "Z": 35328,
+ "Room": 18
+ },
+ {
+ "X": 61952,
+ "Y": 5632,
+ "Z": 36352,
+ "Room": 15
+ },
+ {
+ "X": 59904,
+ "Y": 6912,
+ "Z": 37376,
+ "Room": 28
+ },
+ {
+ "X": 61952,
+ "Y": 7168,
+ "Z": 38400,
+ "Room": 27
+ },
+ {
+ "X": 60928,
+ "Y": 9600,
+ "Z": 41472,
+ "Room": 29
+ },
+ {
+ "X": 61952,
+ "Y": 10752,
+ "Z": 51712,
+ "Room": 24
+ },
+ {
+ "X": 67072,
+ "Y": 5888,
+ "Z": 55808,
+ "Room": 14
+ },
+ {
+ "X": 67072,
+ "Y": 5504,
+ "Z": 64000,
+ "Room": 11
+ },
+ {
+ "X": 60928,
+ "Y": 3584,
+ "Z": 66048,
+ "Room": 10
+ },
+ {
+ "X": 60928,
+ "Y": 10752,
+ "Z": 51712,
+ "Room": 25
+ },
+ {
+ "X": 53760,
+ "Y": 7936,
+ "Z": 55808,
+ "Room": 26
+ },
+ {
+ "X": 53760,
+ "Y": 5888,
+ "Z": 54784,
+ "Room": 12
+ },
+ {
+ "X": 53760,
+ "Y": 5888,
+ "Z": 50688,
+ "Room": 17
+ },
+ {
+ "X": 55808,
+ "Y": 5504,
+ "Z": 46592,
+ "Room": 16
+ },
+ {
+ "X": 54784,
+ "Y": 5504,
+ "Z": 61952,
+ "Room": 13
+ },
+ {
+ "X": 53760,
+ "Y": 4608,
+ "Z": 64000,
+ "Room": 9
+ },
+ {
+ "X": 53760,
+ "Y": 10112,
+ "Z": 68096,
+ "Room": 23
+ },
+ {
+ "X": 50688,
+ "Y": 5888,
+ "Z": 67072,
+ "Room": 89
+ },
+ {
+ "X": 51712,
+ "Y": 4736,
+ "Z": 72192,
+ "Room": 90
+ },
+ {
+ "X": 58880,
+ "Y": 1792,
+ "Z": 70144,
+ "Room": 92
+ },
+ {
+ "X": 58880,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 94
+ },
+ {
+ "X": 60928,
+ "Y": -256,
+ "Z": 49664,
+ "Room": 56
+ },
+ {
+ "X": 60928,
+ "Y": 1152,
+ "Z": 66048,
+ "Room": 53
+ },
+ {
+ "X": 62976,
+ "Y": -4864,
+ "Z": 71168,
+ "Room": 72
+ },
+ {
+ "X": 59904,
+ "Y": -9472,
+ "Z": 76288,
+ "Room": 91,
+ "KeyItemsLow": "19385"
+ },
+ {
+ "X": 59904,
+ "Y": -9472,
+ "Z": 76544,
+ "Room": 91,
+ "KeyItemsLow": "19385",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50688,
+ "Y": -11008,
+ "Z": 76544,
+ "Room": 68,
+ "KeyItemsLow": "19262,19385",
+ "Range": "Medium"
+ },
+ {
+ "X": 50688,
+ "Y": -11008,
+ "Z": 76288,
+ "Room": 68,
+ "KeyItemsLow": "19262,19385",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 43520,
+ "Y": -10240,
+ "Z": 77312,
+ "Room": 111
+ },
+ {
+ "X": 39424,
+ "Y": -10240,
+ "Z": 77312,
+ "Room": 66
+ },
+ {
+ "X": 35328,
+ "Y": -10240,
+ "Z": 77312,
+ "Room": 63
+ },
+ {
+ "X": 36352,
+ "Y": -10240,
+ "Z": 68096,
+ "Room": 115
+ },
+ {
+ "X": 40448,
+ "Y": -10240,
+ "Z": 68096,
+ "Room": 114
+ },
+ {
+ "X": 49664,
+ "Y": -9216,
+ "Z": 60928,
+ "Room": 52
+ },
+ {
+ "X": 38400,
+ "Y": -10240,
+ "Z": 57856,
+ "Room": 51
+ },
+ {
+ "X": 29184,
+ "Y": -7424,
+ "Z": 56832,
+ "Room": 48
+ },
+ {
+ "X": 41472,
+ "Y": -6656,
+ "Z": 59904,
+ "Room": 47
+ },
+ {
+ "X": 39424,
+ "Y": -5120,
+ "Z": 56832,
+ "Room": 59
+ },
+ {
+ "X": 36352,
+ "Y": -5120,
+ "Z": 57856,
+ "Room": 93
+ },
+ {
+ "X": 39424,
+ "Y": -6656,
+ "Z": 50688,
+ "Room": 64
+ },
+ {
+ "X": 40448,
+ "Y": -6656,
+ "Z": 50688,
+ "Room": 55
+ },
+ {
+ "X": 48384,
+ "Y": -4352,
+ "Z": 55808,
+ "Room": 45,
+ "KeyItemsLow": "19262"
+ },
+ {
+ "X": 48640,
+ "Y": -4352,
+ "Z": 55808,
+ "Room": 45,
+ "KeyItemsLow": "19262",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -4352,
+ "Z": 49664,
+ "Room": 41
+ },
+ {
+ "X": 33280,
+ "Y": -4352,
+ "Z": 52736,
+ "Room": 46
+ },
+ {
+ "X": 32256,
+ "Y": -4352,
+ "Z": 49664,
+ "Room": 43
+ },
+ {
+ "X": 35328,
+ "Y": -4096,
+ "Z": 41472,
+ "Room": 42
+ },
+ {
+ "X": 28160,
+ "Y": -4096,
+ "Z": 38400,
+ "Room": 82
+ },
+ {
+ "X": 33280,
+ "Y": -3584,
+ "Z": 33280,
+ "Room": 31
+ },
+ {
+ "X": 40448,
+ "Y": -2304,
+ "Z": 30208,
+ "Room": 33
+ },
+ {
+ "X": 40448,
+ "Y": -2048,
+ "Z": 27136,
+ "Room": 34
+ },
+ {
+ "X": 39424,
+ "Y": -2048,
+ "Z": 27136,
+ "Room": 32
+ },
+ {
+ "X": 33280,
+ "Y": -1024,
+ "Z": 27136,
+ "Room": 60
+ },
+ {
+ "X": 28160,
+ "Y": -256,
+ "Z": 27136,
+ "Room": 95
+ },
+ {
+ "X": 26112,
+ "Y": -2816,
+ "Z": 36352,
+ "Room": 98
+ },
+ {
+ "X": 25088,
+ "Y": -5376,
+ "Z": 46592,
+ "Room": 99
+ },
+ {
+ "X": 24064,
+ "Y": -9344,
+ "Z": 54784,
+ "Room": 97
+ },
+ {
+ "X": 24064,
+ "Y": -11520,
+ "Z": 62976,
+ "Room": 96
+ },
+ {
+ "X": 36352,
+ "Y": -12544,
+ "Z": 60928,
+ "Room": 62
+ },
+ {
+ "X": 42496,
+ "Y": -12544,
+ "Z": 60928,
+ "Room": 58
+ },
+ {
+ "X": 43520,
+ "Y": -10752,
+ "Z": 71168,
+ "Room": 65
+ },
+ {
+ "X": 38400,
+ "Y": -10240,
+ "Z": 71168,
+ "Room": 109
+ },
+ {
+ "X": 42496,
+ "Y": -10240,
+ "Z": 65024,
+ "Room": 110
+ },
+ {
+ "X": 39424,
+ "Y": -10240,
+ "Z": 66304,
+ "Room": 67,
+ "KeyItemsHigh": "19262"
+ },
+ {
+ "X": 39424,
+ "Y": -10240,
+ "Z": 66048,
+ "Room": 67,
+ "KeyItemsHigh": "19262",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": -10240,
+ "Z": 65792,
+ "Room": 67,
+ "KeyItemsHigh": "19262",
+ "Range": "Medium"
+ },
+ {
+ "X": 39168,
+ "Y": -10240,
+ "Z": 65792,
+ "Room": 67,
+ "KeyItemsHigh": "19262",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39168,
+ "Y": -10240,
+ "Z": 66048,
+ "Room": 67,
+ "KeyItemsHigh": "19262",
+ "Range": "Large"
+ },
+ {
+ "X": 39168,
+ "Y": -10240,
+ "Z": 66304,
+ "Room": 67,
+ "KeyItemsHigh": "19262",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 36352,
+ "Y": -10240,
+ "Z": 79360,
+ "Room": 113
+ },
+ {
+ "X": 40448,
+ "Y": -11264,
+ "Z": 79360,
+ "Room": 112
+ },
+ {
+ "X": 35328,
+ "Y": -14336,
+ "Z": 79360,
+ "Room": 61
+ },
+ {
+ "X": 44544,
+ "Y": -14336,
+ "Z": 79360,
+ "Room": 57
+ },
+ {
+ "X": 43520,
+ "Y": -14336,
+ "Z": 80384,
+ "Room": 100
+ },
+ {
+ "X": 38400,
+ "Y": -14976,
+ "Z": 81408,
+ "Room": 101
+ },
+ {
+ "X": 38400,
+ "Y": -18432,
+ "Z": 76288,
+ "Room": 102
+ },
+ {
+ "X": 34048,
+ "Y": 1536,
+ "Z": 16896,
+ "Room": 105,
+ "KeyItemsHigh": "19385,19400",
+ "KeyItemsLow": "19400"
+ },
+ {
+ "X": 34304,
+ "Y": 1536,
+ "Z": 16896,
+ "Room": 105,
+ "KeyItemsHigh": "19385,19400",
+ "KeyItemsLow": "19400",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34560,
+ "Y": 1536,
+ "Z": 16896,
+ "Room": 105,
+ "KeyItemsHigh": "19400,19385",
+ "KeyItemsLow": "19400",
+ "Range": "Medium"
+ },
+ {
+ "X": 34560,
+ "Y": 1536,
+ "Z": 16640,
+ "Room": 105,
+ "KeyItemsHigh": "19400,19385",
+ "KeyItemsLow": "19400",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34304,
+ "Y": 1536,
+ "Z": 16640,
+ "Room": 105,
+ "KeyItemsHigh": "19400,19385",
+ "KeyItemsLow": "19400",
+ "Range": "Large"
+ },
+ {
+ "X": 34048,
+ "Y": 1536,
+ "Z": 16640,
+ "Room": 105,
+ "KeyItemsHigh": "19400,19385",
+ "KeyItemsLow": "19400",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "SKIDOO.TR2": [
+ {
+ "X": 95744,
+ "Y": -256,
+ "Z": 17920,
+ "Room": 76,
+ "KeyItemsLow": "20379,20348",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 95744,
+ "Y": -256,
+ "Z": 11776,
+ "Room": 77
+ },
+ {
+ "X": 90624,
+ "Y": -1792,
+ "Z": 10752,
+ "Room": 78
+ },
+ {
+ "X": 82432,
+ "Y": 1536,
+ "Z": 10752,
+ "Room": 79
+ },
+ {
+ "X": 81408,
+ "Y": 1536,
+ "Z": 7680,
+ "Room": 80
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 10752,
+ "Room": 78
+ },
+ {
+ "X": 72192,
+ "Y": -3456,
+ "Z": 10752,
+ "Room": 81
+ },
+ {
+ "X": 72192,
+ "Y": -2048,
+ "Z": 19968,
+ "Room": 83,
+ "KeyItemsLow": "20379,20348",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 70144,
+ "Y": 9984,
+ "Z": 20992,
+ "Room": 69
+ },
+ {
+ "X": 72192,
+ "Y": -1536,
+ "Z": 23040,
+ "Room": 17
+ },
+ {
+ "X": 71168,
+ "Y": -1024,
+ "Z": 27136,
+ "Room": 10
+ },
+ {
+ "X": 70144,
+ "Y": 2816,
+ "Z": 29184,
+ "Room": 0,
+ "KeyItemsLow": "20379,20348",
+ "Range": "Medium"
+ },
+ {
+ "X": 70144,
+ "Y": 2874,
+ "Z": 29425,
+ "Room": 0,
+ "KeyItemsLow": "20379,20348",
+ "Range": "Large"
+ },
+ {
+ "X": 72192,
+ "Y": 5248,
+ "Z": 29184,
+ "Room": 1
+ },
+ {
+ "X": 72192,
+ "Y": 5248,
+ "Z": 28160,
+ "Room": 19
+ },
+ {
+ "X": 75264,
+ "Y": 8704,
+ "Z": 26112,
+ "Room": 84
+ },
+ {
+ "X": 79360,
+ "Y": 6656,
+ "Z": 29184,
+ "Room": 20
+ },
+ {
+ "X": 82432,
+ "Y": 4096,
+ "Z": 33280,
+ "Room": 24
+ },
+ {
+ "X": 80384,
+ "Y": 2176,
+ "Z": 35328,
+ "Room": 18
+ },
+ {
+ "X": 82432,
+ "Y": 256,
+ "Z": 34304,
+ "Room": 149,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 80384,
+ "Y": 256,
+ "Z": 23040,
+ "Room": 150,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 75264,
+ "Y": -6400,
+ "Z": 22016,
+ "Room": 151,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 75264,
+ "Y": -6400,
+ "Z": 19968,
+ "Room": 152,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 79360,
+ "Y": 3840,
+ "Z": 36352,
+ "Room": 34
+ },
+ {
+ "X": 73216,
+ "Y": 6656,
+ "Z": 39424,
+ "Room": 36
+ },
+ {
+ "X": 70144,
+ "Y": 7296,
+ "Z": 39424,
+ "Room": 39
+ },
+ {
+ "X": 66048,
+ "Y": 7552,
+ "Z": 39424,
+ "Room": 38
+ },
+ {
+ "X": 61952,
+ "Y": 6528,
+ "Z": 39424,
+ "Room": 35
+ },
+ {
+ "X": 59904,
+ "Y": 6272,
+ "Z": 37376,
+ "Room": 37
+ },
+ {
+ "X": 59904,
+ "Y": 6144,
+ "Z": 34304,
+ "Room": 28
+ },
+ {
+ "X": 60928,
+ "Y": 10624,
+ "Z": 32256,
+ "Room": 29
+ },
+ {
+ "X": 64000,
+ "Y": 11648,
+ "Z": 31232,
+ "Room": 13
+ },
+ {
+ "X": 79360,
+ "Y": 10496,
+ "Z": 31232,
+ "Room": 21
+ },
+ {
+ "X": 76288,
+ "Y": -256,
+ "Z": 35328,
+ "Room": 4
+ },
+ {
+ "X": 69120,
+ "Y": 256,
+ "Z": 36352,
+ "Room": 12,
+ "KeyItemsLow": "20348,20379"
+ },
+ {
+ "X": 69120,
+ "Y": 256,
+ "Z": 36608,
+ "Room": 12,
+ "KeyItemsLow": "20348,20379",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 78336,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 11
+ },
+ {
+ "X": 79360,
+ "Y": 1152,
+ "Z": 43520,
+ "Room": 26
+ },
+ {
+ "X": 78336,
+ "Y": 0,
+ "Z": 46592,
+ "Room": 3
+ },
+ {
+ "X": 75264,
+ "Y": 1024,
+ "Z": 43520,
+ "Room": 15
+ },
+ {
+ "X": 73216,
+ "Y": -640,
+ "Z": 44544,
+ "Room": 7
+ },
+ {
+ "X": 70144,
+ "Y": -1536,
+ "Z": 46592,
+ "Room": 6
+ },
+ {
+ "X": 68096,
+ "Y": 256,
+ "Z": 45568,
+ "Room": 16
+ },
+ {
+ "X": 68096,
+ "Y": -128,
+ "Z": 46592,
+ "Room": 5
+ },
+ {
+ "X": 70144,
+ "Y": 1024,
+ "Z": 42496,
+ "Room": 130
+ },
+ {
+ "X": 62976,
+ "Y": -1536,
+ "Z": 45568,
+ "Room": 33,
+ "Validated": false
+ },
+ {
+ "X": 81408,
+ "Y": -4736,
+ "Z": 30208,
+ "Room": 23,
+ "Validated": false
+ },
+ {
+ "X": 81408,
+ "Y": -4352,
+ "Z": 28160,
+ "Room": 25,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": 1536,
+ "Z": 43520,
+ "Room": 40
+ },
+ {
+ "X": 44544,
+ "Y": 1536,
+ "Z": 44544,
+ "Room": 51
+ },
+ {
+ "X": 40448,
+ "Y": 1408,
+ "Z": 50688,
+ "Room": 53
+ },
+ {
+ "X": 41472,
+ "Y": 2688,
+ "Z": 61952,
+ "Room": 54
+ },
+ {
+ "X": 51712,
+ "Y": 0,
+ "Z": 62976,
+ "Room": 136
+ },
+ {
+ "X": 55808,
+ "Y": 128,
+ "Z": 59904,
+ "Room": 62
+ },
+ {
+ "X": 57856,
+ "Y": -384,
+ "Z": 51712,
+ "Room": 46
+ },
+ {
+ "X": 61952,
+ "Y": 128,
+ "Z": 54784,
+ "Room": 137
+ },
+ {
+ "X": 64000,
+ "Y": 1792,
+ "Z": 61952,
+ "Room": 138
+ },
+ {
+ "X": 61952,
+ "Y": -1152,
+ "Z": 55808,
+ "Room": 137
+ },
+ {
+ "X": 70144,
+ "Y": -2048,
+ "Z": 60928,
+ "Room": 49
+ },
+ {
+ "X": 72192,
+ "Y": -2048,
+ "Z": 60928,
+ "Room": 48
+ },
+ {
+ "X": 72192,
+ "Y": -2048,
+ "Z": 56832,
+ "Room": 47
+ },
+ {
+ "X": 84480,
+ "Y": 4608,
+ "Z": 55808,
+ "Room": 50,
+ "Validated": false
+ },
+ {
+ "X": 88576,
+ "Y": -2048,
+ "Z": 55808,
+ "Room": 55
+ },
+ {
+ "X": 89600,
+ "Y": -1024,
+ "Z": 72192,
+ "Room": 41
+ },
+ {
+ "X": 89600,
+ "Y": 5888,
+ "Z": 75264,
+ "Room": 42,
+ "Validated": false
+ },
+ {
+ "X": 88576,
+ "Y": 5120,
+ "Z": 80384,
+ "Room": 43,
+ "Validated": false
+ },
+ {
+ "X": 89600,
+ "Y": 5120,
+ "Z": 82432,
+ "Room": 44,
+ "Validated": false
+ },
+ {
+ "X": 92672,
+ "Y": -2560,
+ "Z": 92672,
+ "Room": 52
+ },
+ {
+ "X": 95744,
+ "Y": -5504,
+ "Z": 93696,
+ "Room": 86
+ },
+ {
+ "X": 86528,
+ "Y": -2304,
+ "Z": 90624,
+ "Room": 56
+ },
+ {
+ "X": 83456,
+ "Y": -2048,
+ "Z": 95744,
+ "Room": 57
+ },
+ {
+ "X": 65024,
+ "Y": 128,
+ "Z": 95744,
+ "Room": 58
+ },
+ {
+ "X": 59904,
+ "Y": 8192,
+ "Z": 93696,
+ "Room": 60,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": -896,
+ "Z": 95744,
+ "Room": 66
+ },
+ {
+ "X": 38400,
+ "Y": -1536,
+ "Z": 93696,
+ "Room": 65
+ },
+ {
+ "X": 32256,
+ "Y": -768,
+ "Z": 92672,
+ "Room": 14
+ },
+ {
+ "X": 30208,
+ "Y": -1024,
+ "Z": 87552,
+ "Room": 116,
+ "Validated": false
+ },
+ {
+ "X": 13824,
+ "Y": -640,
+ "Z": 91648,
+ "Room": 71
+ },
+ {
+ "X": 8704,
+ "Y": -768,
+ "Z": 91648,
+ "Room": 72
+ },
+ {
+ "X": 9728,
+ "Y": -512,
+ "Z": 78336,
+ "Room": 74
+ },
+ {
+ "X": 15872,
+ "Y": -1280,
+ "Z": 78336,
+ "Room": 73
+ },
+ {
+ "X": 17920,
+ "Y": -1536,
+ "Z": 82432,
+ "Room": 133
+ },
+ {
+ "X": 16896,
+ "Y": -1664,
+ "Z": 83456,
+ "Room": 134
+ },
+ {
+ "X": 10752,
+ "Y": -1920,
+ "Z": 85504,
+ "Room": 135
+ },
+ {
+ "X": 6656,
+ "Y": 5888,
+ "Z": 86528,
+ "Room": 75
+ },
+ {
+ "X": 4608,
+ "Y": 2816,
+ "Z": 87552,
+ "Room": 87
+ },
+ {
+ "X": 1536,
+ "Y": 4864,
+ "Z": 89600,
+ "Room": 90
+ },
+ {
+ "X": 1536,
+ "Y": 4864,
+ "Z": 92672,
+ "Room": 88
+ },
+ {
+ "X": 4608,
+ "Y": 4864,
+ "Z": 93696,
+ "Room": 91
+ },
+ {
+ "X": 8704,
+ "Y": 4096,
+ "Z": 91648,
+ "Room": 93
+ },
+ {
+ "X": 10752,
+ "Y": 3328,
+ "Z": 91648,
+ "Room": 94
+ },
+ {
+ "X": 12800,
+ "Y": 1792,
+ "Z": 89600,
+ "Room": 92
+ },
+ {
+ "X": 16896,
+ "Y": 4224,
+ "Z": 89600,
+ "Room": 61
+ },
+ {
+ "X": 16896,
+ "Y": 4224,
+ "Z": 90624,
+ "Room": 132
+ },
+ {
+ "X": 29184,
+ "Y": 7936,
+ "Z": 95744,
+ "Room": 148
+ },
+ {
+ "X": 17920,
+ "Y": 0,
+ "Z": 66048,
+ "Room": 63
+ },
+ {
+ "X": 23040,
+ "Y": -2048,
+ "Z": 65280,
+ "Room": 64,
+ "KeyItemsHigh": "20379",
+ "Validated": false
+ },
+ {
+ "X": 23296,
+ "Y": -2048,
+ "Z": 65280,
+ "Room": 64,
+ "KeyItemsHigh": "20379",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 23296,
+ "Y": -2048,
+ "Z": 65024,
+ "Room": 64,
+ "KeyItemsHigh": "20379",
+ "Range": "Medium",
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": -2048,
+ "Z": 65024,
+ "Room": 64,
+ "KeyItemsHigh": "20379",
+ "Range": "Medium",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 23296,
+ "Y": -2048,
+ "Z": 64768,
+ "Room": 64,
+ "KeyItemsHigh": "20379",
+ "Range": "Large",
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": -2048,
+ "Z": 64768,
+ "Room": 64,
+ "KeyItemsHigh": "20379",
+ "Range": "Large",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 9728,
+ "Y": -2048,
+ "Z": 64000,
+ "Room": 67,
+ "Validated": false
+ },
+ {
+ "X": 8704,
+ "Y": -2048,
+ "Z": 49664,
+ "Room": 68,
+ "Validated": false
+ },
+ {
+ "X": 18944,
+ "Y": 6144,
+ "Z": 46592,
+ "Room": 89,
+ "Validated": false
+ },
+ {
+ "X": 15872,
+ "Y": 1024,
+ "Z": 57856,
+ "Room": 70
+ },
+ {
+ "X": 71936,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 131,
+ "KeyItemsHigh": "20348"
+ },
+ {
+ "X": 72192,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 131,
+ "KeyItemsHigh": "20348",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72448,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 131,
+ "KeyItemsHigh": "20348",
+ "Range": "Medium"
+ },
+ {
+ "X": 71936,
+ "Y": 1024,
+ "Z": 44800,
+ "Room": 131,
+ "KeyItemsHigh": "20348",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72192,
+ "Y": 1024,
+ "Z": 44800,
+ "Room": 131,
+ "KeyItemsHigh": "20348",
+ "Range": "Large"
+ },
+ {
+ "X": 72448,
+ "Y": 1024,
+ "Z": 44800,
+ "Room": 131,
+ "KeyItemsHigh": "20348",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 82432,
+ "Y": 1280,
+ "Z": 43520,
+ "Room": 95
+ },
+ {
+ "X": 89600,
+ "Y": 1408,
+ "Z": 43520,
+ "Room": 98
+ },
+ {
+ "X": 92672,
+ "Y": 2816,
+ "Z": 34304,
+ "Room": 99
+ },
+ {
+ "X": 86528,
+ "Y": 2560,
+ "Z": 20992,
+ "Room": 100
+ },
+ {
+ "X": 79360,
+ "Y": 10496,
+ "Z": 18944,
+ "Room": 101
+ },
+ {
+ "X": 76288,
+ "Y": 10496,
+ "Z": 19968,
+ "Room": 144
+ },
+ {
+ "X": 74240,
+ "Y": 2560,
+ "Z": 19968,
+ "Room": 102
+ },
+ {
+ "X": 55808,
+ "Y": -2560,
+ "Z": 18944,
+ "Room": 103
+ },
+ {
+ "X": 50688,
+ "Y": -2816,
+ "Z": 3584,
+ "Room": 108
+ },
+ {
+ "X": 37376,
+ "Y": -2816,
+ "Z": 2560,
+ "Room": 107,
+ "Validated": false
+ },
+ {
+ "X": 31232,
+ "Y": -4736,
+ "Z": 6656,
+ "Room": 120,
+ "Validated": false
+ },
+ {
+ "X": 33280,
+ "Y": -4608,
+ "Z": 13824,
+ "Room": 105,
+ "Validated": false
+ },
+ {
+ "X": 37376,
+ "Y": 1024,
+ "Z": 8704,
+ "Room": 104
+ },
+ {
+ "X": 36352,
+ "Y": -1280,
+ "Z": 23040,
+ "Room": 109
+ },
+ {
+ "X": 29184,
+ "Y": 2944,
+ "Z": 11776,
+ "Room": 114
+ },
+ {
+ "X": 27136,
+ "Y": 1920,
+ "Z": 7680,
+ "Room": 106
+ },
+ {
+ "X": 28160,
+ "Y": 2688,
+ "Z": 16896,
+ "Room": 115
+ },
+ {
+ "X": 26112,
+ "Y": 3072,
+ "Z": 12800,
+ "Room": 112
+ },
+ {
+ "X": 16896,
+ "Y": 1920,
+ "Z": 22016,
+ "Room": 121
+ },
+ {
+ "X": 14848,
+ "Y": 2560,
+ "Z": 22016,
+ "Room": 125
+ },
+ {
+ "X": 24064,
+ "Y": 8576,
+ "Z": 23040,
+ "Room": 123
+ },
+ {
+ "X": 15872,
+ "Y": 8192,
+ "Z": 25088,
+ "Room": 126
+ },
+ {
+ "X": 26112,
+ "Y": 8960,
+ "Z": 26112,
+ "Room": 127
+ },
+ {
+ "X": 22016,
+ "Y": 14080,
+ "Z": 26112,
+ "Room": 128
+ },
+ {
+ "X": 22016,
+ "Y": 18432,
+ "Z": 29184,
+ "Room": 129
+ },
+ {
+ "X": 15872,
+ "Y": 13952,
+ "Z": 32256,
+ "Room": 124
+ },
+ {
+ "X": 11776,
+ "Y": 15616,
+ "Z": 32256,
+ "Room": 146
+ }
+ ],
+ "MONASTRY.TR2": [
+ {
+ "X": 97792,
+ "Y": 1024,
+ "Z": 17920,
+ "Room": 81
+ },
+ {
+ "X": 97792,
+ "Y": 3328,
+ "Z": 16640,
+ "Room": 128,
+ "KeyItemsLow": "21306,21330,21415,21431,21485,21332,21338",
+ "Range": "Medium"
+ },
+ {
+ "X": 97536,
+ "Y": 3328,
+ "Z": 16640,
+ "Room": 128,
+ "KeyItemsLow": "21306,21330,21415,21431,21485,21332,21338",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 97536,
+ "Y": 3328,
+ "Z": 16896,
+ "Room": 128,
+ "KeyItemsLow": "21306,21330,21415,21431,21485,21332,21338,21464,21501,21328,21225,21273",
+ "Range": "Large"
+ },
+ {
+ "X": 97536,
+ "Y": 3328,
+ "Z": 17152,
+ "Room": 128,
+ "KeyItemsLow": "21306,21330,21415,21431,21485,21332,21338,21464,21501,21328,21225,21273",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 93696,
+ "Y": 4096,
+ "Z": 17920,
+ "Room": 24
+ },
+ {
+ "X": 92672,
+ "Y": 5120,
+ "Z": 24064,
+ "Room": 26
+ },
+ {
+ "X": 82432,
+ "Y": 4096,
+ "Z": 25088,
+ "Room": 92
+ },
+ {
+ "X": 83456,
+ "Y": 4096,
+ "Z": 23040,
+ "Room": 25
+ },
+ {
+ "X": 85504,
+ "Y": 4992,
+ "Z": 10752,
+ "Room": 27
+ },
+ {
+ "X": 81408,
+ "Y": -256,
+ "Z": 10752,
+ "Room": 16
+ },
+ {
+ "X": 91648,
+ "Y": 0,
+ "Z": 22016,
+ "Room": 28
+ },
+ {
+ "X": 90624,
+ "Y": -512,
+ "Z": 23040,
+ "Room": 23
+ },
+ {
+ "X": 81408,
+ "Y": 0,
+ "Z": 16896,
+ "Room": 15,
+ "KeyItemsLow": "21306,21330,21415,21431,21485,21332,21338,21225"
+ },
+ {
+ "X": 81408,
+ "Y": 0,
+ "Z": 16640,
+ "Room": 15,
+ "KeyItemsLow": "21306,21330,21415,21431,21485,21332,21338,21225",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 81152,
+ "Y": 0,
+ "Z": 16640,
+ "Room": 15,
+ "KeyItemsLow": "21464",
+ "Range": "Medium"
+ },
+ {
+ "X": 81152,
+ "Y": 0,
+ "Z": 16896,
+ "Room": 15,
+ "KeyItemsLow": "21464",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 75264,
+ "Y": 0,
+ "Z": 18944,
+ "Room": 9
+ },
+ {
+ "X": 76288,
+ "Y": 0,
+ "Z": 28160,
+ "Room": 10
+ },
+ {
+ "X": 83456,
+ "Y": -256,
+ "Z": 30208,
+ "Room": 17
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 47
+ },
+ {
+ "X": 71168,
+ "Y": 0,
+ "Z": 26112,
+ "Room": 59
+ },
+ {
+ "X": 71168,
+ "Y": 0,
+ "Z": 28160,
+ "Room": 12
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 22016,
+ "Room": 7
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 20992,
+ "Room": 8,
+ "KeyItemsLow": "21464"
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 20736,
+ "Room": 8,
+ "KeyItemsLow": "21464",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68096,
+ "Y": 0,
+ "Z": 18944,
+ "Room": 20
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 18944,
+ "Room": 93
+ },
+ {
+ "X": 64000,
+ "Y": -5632,
+ "Z": 18944,
+ "Room": 107,
+ "KeyItemsHigh": "21225"
+ },
+ {
+ "X": 64000,
+ "Y": -5632,
+ "Z": 19200,
+ "Room": 107,
+ "KeyItemsHigh": "21225",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51712,
+ "Y": -4608,
+ "Z": 34304,
+ "Room": 32
+ },
+ {
+ "X": 49664,
+ "Y": -4736,
+ "Z": 34304,
+ "Room": 49
+ },
+ {
+ "X": 39424,
+ "Y": -5120,
+ "Z": 34304,
+ "Room": 50
+ },
+ {
+ "X": 38400,
+ "Y": -6912,
+ "Z": 30208,
+ "Room": 116
+ },
+ {
+ "X": 28416,
+ "Y": -6912,
+ "Z": 24064,
+ "Room": 115,
+ "KeyItemsHigh": "21464"
+ },
+ {
+ "X": 28160,
+ "Y": -6912,
+ "Z": 24064,
+ "Room": 115,
+ "KeyItemsHigh": "21464",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 24064,
+ "Y": -8192,
+ "Z": 24064,
+ "Room": 78
+ },
+ {
+ "X": 23040,
+ "Y": 4352,
+ "Z": 24064,
+ "Room": 122
+ },
+ {
+ "X": 23040,
+ "Y": 3584,
+ "Z": 38400,
+ "Room": 124
+ },
+ {
+ "X": 24064,
+ "Y": 3584,
+ "Z": 47616,
+ "Room": 129
+ },
+ {
+ "X": 26112,
+ "Y": 3584,
+ "Z": 45568,
+ "Room": 130
+ },
+ {
+ "X": 25088,
+ "Y": 0,
+ "Z": 41472,
+ "Room": 53
+ },
+ {
+ "X": 29184,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 54
+ },
+ {
+ "X": 35328,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 132
+ },
+ {
+ "X": 36352,
+ "Y": -4608,
+ "Z": 37632,
+ "Room": 52,
+ "KeyItemsLow": "21464"
+ },
+ {
+ "X": 36608,
+ "Y": -4608,
+ "Z": 37632,
+ "Room": 52,
+ "KeyItemsLow": "21464",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 24320,
+ "Room": 46,
+ "KeyItemsHigh": "21464"
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 46,
+ "KeyItemsHigh": "21464",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 24320,
+ "Room": 104,
+ "KeyItemsLow": "21328,21273"
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 104,
+ "KeyItemsLow": "21328,21273",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 23808,
+ "Room": 104,
+ "KeyItemsHigh": "21464",
+ "KeyItemsLow": "21328,21501,21225,21273",
+ "Range": "Medium"
+ },
+ {
+ "X": 62720,
+ "Y": 0,
+ "Z": 23808,
+ "Room": 104,
+ "KeyItemsHigh": "21464",
+ "KeyItemsLow": "21328,21501,21225,21273",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62720,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 104,
+ "KeyItemsHigh": "21464",
+ "Range": "Large"
+ },
+ {
+ "X": 62720,
+ "Y": 0,
+ "Z": 24320,
+ "Room": 104,
+ "KeyItemsHigh": "21464",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 30
+ },
+ {
+ "X": 60928,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 65
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 67
+ },
+ {
+ "X": 64000,
+ "Y": 0,
+ "Z": 46592,
+ "Room": 66
+ },
+ {
+ "X": 65024,
+ "Y": 0,
+ "Z": 54784,
+ "Room": 69
+ },
+ {
+ "X": 59904,
+ "Y": 0,
+ "Z": 14848,
+ "Room": 4
+ },
+ {
+ "X": 51712,
+ "Y": 256,
+ "Z": 29184,
+ "Room": 99
+ },
+ {
+ "X": 46592,
+ "Y": -2560,
+ "Z": 24064,
+ "Room": 100
+ },
+ {
+ "X": 46592,
+ "Y": 2048,
+ "Z": 30208,
+ "Room": 155
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 18,
+ "KeyItemsHigh": "21328,21273"
+ },
+ {
+ "X": 48896,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 18,
+ "KeyItemsHigh": "21328,21273",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51712,
+ "Y": 0,
+ "Z": 38400,
+ "Room": 61
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 60
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 50688,
+ "Room": 31
+ },
+ {
+ "X": 52736,
+ "Y": 3840,
+ "Z": 52736,
+ "Room": 83
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 55808,
+ "Room": 75
+ },
+ {
+ "X": 57856,
+ "Y": -256,
+ "Z": 56832,
+ "Room": 89
+ },
+ {
+ "X": 57856,
+ "Y": 1536,
+ "Z": 66048,
+ "Room": 137
+ },
+ {
+ "X": 65024,
+ "Y": -1792,
+ "Z": 69120,
+ "Room": 139
+ },
+ {
+ "X": 66048,
+ "Y": -4864,
+ "Z": 70144,
+ "Room": 140
+ },
+ {
+ "X": 65024,
+ "Y": -7936,
+ "Z": 69120,
+ "Room": 141
+ },
+ {
+ "X": 66048,
+ "Y": -11008,
+ "Z": 69120,
+ "Room": 142
+ },
+ {
+ "X": 64000,
+ "Y": 1792,
+ "Z": 62976,
+ "Room": 143
+ },
+ {
+ "X": 64000,
+ "Y": 2560,
+ "Z": 52736,
+ "Room": 144
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 53760,
+ "Room": 71
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 42496,
+ "Room": 37,
+ "KeyItemsLow": "21501"
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 42752,
+ "Room": 37,
+ "KeyItemsLow": "21501",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 50688,
+ "Room": 135
+ },
+ {
+ "X": 45568,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 38
+ },
+ {
+ "X": 40448,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 39
+ },
+ {
+ "X": 37376,
+ "Y": 1024,
+ "Z": 52736,
+ "Room": 133
+ },
+ {
+ "X": 34304,
+ "Y": 0,
+ "Z": 49664,
+ "Room": 160
+ },
+ {
+ "X": 32256,
+ "Y": 1024,
+ "Z": 52736,
+ "Room": 134
+ },
+ {
+ "X": 29184,
+ "Y": 0,
+ "Z": 49664,
+ "Room": 159
+ },
+ {
+ "X": 28160,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 153
+ },
+ {
+ "X": 26112,
+ "Y": -128,
+ "Z": 48640,
+ "Room": 42
+ },
+ {
+ "X": 27136,
+ "Y": -640,
+ "Z": 46592,
+ "Room": 161
+ },
+ {
+ "X": 36352,
+ "Y": 3072,
+ "Z": 46592,
+ "Room": 56
+ },
+ {
+ "X": 38400,
+ "Y": -256,
+ "Z": 47616,
+ "Room": 149
+ },
+ {
+ "X": 44544,
+ "Y": 0,
+ "Z": 48640,
+ "Room": 22
+ },
+ {
+ "X": 79360,
+ "Y": 0,
+ "Z": 33536,
+ "Room": 14,
+ "KeyItemsHigh": "21501"
+ },
+ {
+ "X": 79360,
+ "Y": 0,
+ "Z": 33280,
+ "Room": 14,
+ "KeyItemsHigh": "21501",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": 0,
+ "Z": 33024,
+ "Room": 14,
+ "KeyItemsHigh": "21225,21328,21501",
+ "Range": "Medium"
+ },
+ {
+ "X": 79104,
+ "Y": 0,
+ "Z": 33024,
+ "Room": 14,
+ "KeyItemsHigh": "21225,21328,21501",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79104,
+ "Y": 0,
+ "Z": 33280,
+ "Room": 14,
+ "KeyItemsHigh": "21225,21328,21501",
+ "Range": "Large"
+ },
+ {
+ "X": 79104,
+ "Y": 0,
+ "Z": 33536,
+ "Room": 14,
+ "KeyItemsHigh": "21225,21328,21501",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": 1280,
+ "Z": 15872,
+ "Room": 2
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 9728,
+ "Room": 86
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 8704,
+ "Room": 94
+ },
+ {
+ "X": 46592,
+ "Y": -384,
+ "Z": 11776,
+ "Room": 96
+ },
+ {
+ "X": 34304,
+ "Y": -3584,
+ "Z": 11776,
+ "Room": 110
+ },
+ {
+ "X": 27136,
+ "Y": -3584,
+ "Z": 14848,
+ "Room": 87
+ },
+ {
+ "X": 27136,
+ "Y": -512,
+ "Z": 22016,
+ "Room": 82
+ },
+ {
+ "X": 19968,
+ "Y": -4864,
+ "Z": 22016,
+ "Room": 112
+ },
+ {
+ "X": 19968,
+ "Y": -8704,
+ "Z": 22016,
+ "Room": 98
+ },
+ {
+ "X": 20992,
+ "Y": -8064,
+ "Z": 22016,
+ "Room": 97
+ },
+ {
+ "X": 23040,
+ "Y": -7936,
+ "Z": 12800,
+ "Room": 111
+ },
+ {
+ "X": 23040,
+ "Y": -7552,
+ "Z": 9728,
+ "Room": 40
+ },
+ {
+ "X": 22513,
+ "Y": 709,
+ "Z": 8367,
+ "Room": 113,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": -7936,
+ "Z": 4608,
+ "Room": 114
+ },
+ {
+ "X": 14848,
+ "Y": -10112,
+ "Z": 3584,
+ "Room": 146
+ },
+ {
+ "X": 14848,
+ "Y": -11136,
+ "Z": 8704,
+ "Room": 148
+ },
+ {
+ "X": 14848,
+ "Y": -12800,
+ "Z": 10752,
+ "Room": 145
+ },
+ {
+ "X": 8704,
+ "Y": -9984,
+ "Z": 11776,
+ "Room": 147
+ },
+ {
+ "X": 59904,
+ "Y": 0,
+ "Z": 8704,
+ "Room": 5
+ },
+ {
+ "X": 59904,
+ "Y": -4608,
+ "Z": 9728,
+ "Room": 84,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": 0,
+ "Z": 11776,
+ "Room": 72
+ },
+ {
+ "X": 69120,
+ "Y": -512,
+ "Z": 34304,
+ "Room": 88
+ },
+ {
+ "X": 69120,
+ "Y": -3072,
+ "Z": 44544,
+ "Room": 91
+ },
+ {
+ "X": 73216,
+ "Y": -3072,
+ "Z": 44544,
+ "Room": 63
+ },
+ {
+ "X": 72192,
+ "Y": -5376,
+ "Z": 42496,
+ "Room": 64,
+ "Validated": false
+ },
+ {
+ "X": 73216,
+ "Y": -5376,
+ "Z": 42496,
+ "Room": 21,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": -5760,
+ "Z": 49664,
+ "Room": 77,
+ "Validated": false
+ },
+ {
+ "X": 71168,
+ "Y": -3072,
+ "Z": 47616,
+ "Room": 41
+ },
+ {
+ "X": 70144,
+ "Y": -2816,
+ "Z": 59904,
+ "Room": 62
+ },
+ {
+ "X": 65024,
+ "Y": -4608,
+ "Z": 62976,
+ "Room": 76
+ },
+ {
+ "X": 64000,
+ "Y": -4608,
+ "Z": 64000,
+ "Room": 138
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 70
+ },
+ {
+ "X": 71168,
+ "Y": -3328,
+ "Z": 60928,
+ "Room": 85
+ },
+ {
+ "X": 75264,
+ "Y": -4608,
+ "Z": 62720,
+ "Room": 55,
+ "KeyItemsHigh": "21338,21332"
+ },
+ {
+ "X": 75264,
+ "Y": -4608,
+ "Z": 62976,
+ "Room": 55,
+ "KeyItemsHigh": "21338,21332",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 75264,
+ "Y": -4608,
+ "Z": 63232,
+ "Room": 55,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Medium"
+ },
+ {
+ "X": 75008,
+ "Y": -4608,
+ "Z": 63232,
+ "Room": 55,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 75008,
+ "Y": -4608,
+ "Z": 62976,
+ "Room": 55,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Large"
+ },
+ {
+ "X": 75008,
+ "Y": -4608,
+ "Z": 62720,
+ "Room": 55,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54016,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 3,
+ "KeyItemsLow": "21338,21332"
+ },
+ {
+ "X": 53760,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 3,
+ "KeyItemsLow": "21338,21332",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53504,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 3,
+ "KeyItemsLow": "21338,21332",
+ "Range": "Medium"
+ },
+ {
+ "X": 53504,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 3,
+ "KeyItemsLow": "21338,21332",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53760,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 3,
+ "KeyItemsLow": "21338,21332",
+ "Range": "Large"
+ },
+ {
+ "X": 54016,
+ "Y": 0,
+ "Z": 34560,
+ "Room": 3,
+ "KeyItemsLow": "21338,21332",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51712,
+ "Y": -4352,
+ "Z": 35328,
+ "Room": 109
+ },
+ {
+ "X": 47616,
+ "Y": -4352,
+ "Z": 34304,
+ "Room": 0
+ },
+ {
+ "X": 47616,
+ "Y": -4608,
+ "Z": 28160,
+ "Room": 101
+ },
+ {
+ "X": 46592,
+ "Y": -5760,
+ "Z": 28160,
+ "Room": 102
+ },
+ {
+ "X": 46592,
+ "Y": -6912,
+ "Z": 24064,
+ "Room": 103
+ },
+ {
+ "X": 46592,
+ "Y": -7424,
+ "Z": 16896,
+ "Room": 157
+ },
+ {
+ "X": 48640,
+ "Y": 2048,
+ "Z": 24064,
+ "Room": 155
+ },
+ {
+ "X": 48640,
+ "Y": 4352,
+ "Z": 23296,
+ "Room": 156,
+ "KeyItemsHigh": "21338,21332"
+ },
+ {
+ "X": 48640,
+ "Y": 4352,
+ "Z": 23040,
+ "Room": 156,
+ "KeyItemsHigh": "21338,21332",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": 4352,
+ "Z": 22784,
+ "Room": 156,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Medium"
+ },
+ {
+ "X": 48384,
+ "Y": 4352,
+ "Z": 22784,
+ "Room": 156,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48384,
+ "Y": 4352,
+ "Z": 23040,
+ "Room": 156,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Large"
+ },
+ {
+ "X": 48384,
+ "Y": 4352,
+ "Z": 23296,
+ "Room": 156,
+ "KeyItemsHigh": "21338,21332",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 4352,
+ "Z": 24064,
+ "Room": 152
+ },
+ {
+ "X": 44544,
+ "Y": -256,
+ "Z": 34304,
+ "Room": 57
+ },
+ {
+ "X": 38400,
+ "Y": -896,
+ "Z": 34304,
+ "Room": 150
+ },
+ {
+ "X": 38400,
+ "Y": 2048,
+ "Z": 48640,
+ "Room": 151
+ },
+ {
+ "X": 44544,
+ "Y": 1024,
+ "Z": 20224,
+ "Room": 73,
+ "KeyItemsLow": "21273"
+ },
+ {
+ "X": 44544,
+ "Y": 1024,
+ "Z": 19968,
+ "Room": 73,
+ "KeyItemsLow": "21273",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 1024,
+ "Z": 19712,
+ "Room": 73,
+ "Range": "Medium"
+ },
+ {
+ "X": 44288,
+ "Y": 1024,
+ "Z": 19712,
+ "Room": 73,
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": 768,
+ "Z": 19968,
+ "Room": 1
+ },
+ {
+ "X": 35328,
+ "Y": 768,
+ "Z": 20224,
+ "Room": 43,
+ "KeyItemsHigh": "21306,21330,21415,21431,21485"
+ },
+ {
+ "X": 35328,
+ "Y": 768,
+ "Z": 19968,
+ "Room": 43,
+ "KeyItemsHigh": "21306,21330,21415,21431,21485",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": 768,
+ "Z": 19712,
+ "Room": 43,
+ "KeyItemsHigh": "21306,21330,21415,21431,21485",
+ "Range": "Medium"
+ },
+ {
+ "X": 35072,
+ "Y": 768,
+ "Z": 19712,
+ "Room": 43,
+ "KeyItemsHigh": "21306,21330,21415,21431,21485",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35072,
+ "Y": 768,
+ "Z": 19968,
+ "Room": 43,
+ "KeyItemsHigh": "21306,21330,21415,21431,21485",
+ "Range": "Large"
+ },
+ {
+ "X": 35072,
+ "Y": 768,
+ "Z": 20224,
+ "Room": 43,
+ "KeyItemsHigh": "21306,21330,21415,21431,21485",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": 768,
+ "Z": 22272,
+ "Room": 44,
+ "KeyItemsHigh": "21273"
+ },
+ {
+ "X": 28160,
+ "Y": 768,
+ "Z": 22016,
+ "Room": 44,
+ "KeyItemsHigh": "21273",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": 768,
+ "Z": 21760,
+ "Room": 44,
+ "KeyItemsHigh": "21273",
+ "Range": "Medium"
+ },
+ {
+ "X": 27904,
+ "Y": 768,
+ "Z": 21760,
+ "Room": 44,
+ "KeyItemsHigh": "21273",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 27904,
+ "Y": 768,
+ "Z": 22016,
+ "Room": 44,
+ "KeyItemsHigh": "21273",
+ "Range": "Large"
+ },
+ {
+ "X": 27904,
+ "Y": 768,
+ "Z": 22272,
+ "Room": 44,
+ "KeyItemsHigh": "21273",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "CATACOMB.TR2": [
+ {
+ "X": 3584,
+ "Y": -5632,
+ "Z": 36608,
+ "Room": 0,
+ "KeyItemsLow": "22222,22342",
+ "Range": "Medium"
+ },
+ {
+ "X": 3584,
+ "Y": -5632,
+ "Z": 36352,
+ "Room": 0,
+ "KeyItemsLow": "22222,22357,22342",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 3584,
+ "Y": -5632,
+ "Z": 36096,
+ "Room": 0,
+ "KeyItemsLow": "22222,22342",
+ "Range": "Large"
+ },
+ {
+ "X": 3840,
+ "Y": -5632,
+ "Z": 36096,
+ "Room": 0,
+ "KeyItemsLow": "22222,22357,22342",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 3840,
+ "Y": -5632,
+ "Z": 36352,
+ "Room": 0,
+ "KeyItemsLow": "22342"
+ },
+ {
+ "X": 3840,
+ "Y": -5632,
+ "Z": 36608,
+ "Room": 0,
+ "KeyItemsLow": "22342",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 10752,
+ "Y": -3840,
+ "Z": 36352,
+ "Room": 5
+ },
+ {
+ "X": 13824,
+ "Y": 2176,
+ "Z": 38400,
+ "Room": 74
+ },
+ {
+ "X": 13824,
+ "Y": 1280,
+ "Z": 36352,
+ "Room": 6
+ },
+ {
+ "X": 15872,
+ "Y": -2048,
+ "Z": 38400,
+ "Room": 7
+ },
+ {
+ "X": 18944,
+ "Y": -256,
+ "Z": 44544,
+ "Room": 1,
+ "KeyItemsLow": "22222"
+ },
+ {
+ "X": 19200,
+ "Y": -256,
+ "Z": 44544,
+ "Room": 1,
+ "KeyItemsLow": "22222",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20992,
+ "Y": 1536,
+ "Z": 37376,
+ "Room": 3
+ },
+ {
+ "X": 23040,
+ "Y": 3584,
+ "Z": 43520,
+ "Room": 98
+ },
+ {
+ "X": 34304,
+ "Y": 3200,
+ "Z": 41472,
+ "Room": 4
+ },
+ {
+ "X": 33280,
+ "Y": 256,
+ "Z": 44544,
+ "Room": 2
+ },
+ {
+ "X": 33280,
+ "Y": 5376,
+ "Z": 35328,
+ "Room": 118
+ },
+ {
+ "X": 37376,
+ "Y": 7168,
+ "Z": 35328,
+ "Room": 16
+ },
+ {
+ "X": 29184,
+ "Y": 7424,
+ "Z": 39424,
+ "Room": 43
+ },
+ {
+ "X": 29184,
+ "Y": 10752,
+ "Z": 41728,
+ "Room": 125,
+ "KeyItemsHigh": "22222"
+ },
+ {
+ "X": 29184,
+ "Y": 10752,
+ "Z": 41472,
+ "Room": 125,
+ "KeyItemsHigh": "22222",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29184,
+ "Y": 10752,
+ "Z": 41216,
+ "Room": 125,
+ "KeyItemsHigh": "22222",
+ "KeyItemsLow": "22357",
+ "Range": "Medium"
+ },
+ {
+ "X": 29440,
+ "Y": 10752,
+ "Z": 41216,
+ "Room": 125,
+ "KeyItemsHigh": "22222",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29440,
+ "Y": 10752,
+ "Z": 41472,
+ "Room": 125,
+ "KeyItemsHigh": "22222",
+ "KeyItemsLow": "22357",
+ "Range": "Large"
+ },
+ {
+ "X": 29440,
+ "Y": 10752,
+ "Z": 41728,
+ "Room": 125,
+ "KeyItemsHigh": "22222",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": 10496,
+ "Z": 40448,
+ "Room": 124
+ },
+ {
+ "X": 34304,
+ "Y": 10496,
+ "Z": 41472,
+ "Room": 17
+ },
+ {
+ "X": 34304,
+ "Y": 9984,
+ "Z": 46592,
+ "Room": 20
+ },
+ {
+ "X": 34304,
+ "Y": 8064,
+ "Z": 51712,
+ "Room": 18
+ },
+ {
+ "X": 42496,
+ "Y": 7936,
+ "Z": 50688,
+ "Room": 104
+ },
+ {
+ "X": 43520,
+ "Y": 5632,
+ "Z": 50688,
+ "Room": 128,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": 5632,
+ "Z": 52736,
+ "Room": 106,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": 5888,
+ "Z": 47616,
+ "Room": 59,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": 3584,
+ "Z": 49664,
+ "Room": 40,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": 3840,
+ "Z": 46592,
+ "Room": 61,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": 3584,
+ "Z": 55808,
+ "Room": 64,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": 8064,
+ "Z": 52736,
+ "Room": 62
+ },
+ {
+ "X": 40448,
+ "Y": 8192,
+ "Z": 60928,
+ "Room": 8
+ },
+ {
+ "X": 43520,
+ "Y": 1536,
+ "Z": 60928,
+ "Room": 66,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": 5632,
+ "Z": 60928,
+ "Room": 46
+ },
+ {
+ "X": 31232,
+ "Y": 5888,
+ "Z": 53760,
+ "Room": 63
+ },
+ {
+ "X": 28160,
+ "Y": 8192,
+ "Z": 51712,
+ "Room": 107,
+ "KeyItemsLow": "22357"
+ },
+ {
+ "X": 28160,
+ "Y": 8192,
+ "Z": 51456,
+ "Room": 107,
+ "KeyItemsLow": "22357",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": 8192,
+ "Z": 50688,
+ "Room": 108
+ },
+ {
+ "X": 23040,
+ "Y": 8192,
+ "Z": 48640,
+ "Room": 60
+ },
+ {
+ "X": 20992,
+ "Y": 8192,
+ "Z": 51712,
+ "Room": 29
+ },
+ {
+ "X": 19968,
+ "Y": 10496,
+ "Z": 54784,
+ "Room": 67
+ },
+ {
+ "X": 44288,
+ "Y": 9216,
+ "Z": 58880,
+ "Room": 79,
+ "KeyItemsHigh": "22357"
+ },
+ {
+ "X": 44544,
+ "Y": 9216,
+ "Z": 58880,
+ "Room": 79,
+ "KeyItemsHigh": "22357",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44800,
+ "Y": 9216,
+ "Z": 58880,
+ "Room": 79,
+ "KeyItemsHigh": "22357",
+ "Range": "Medium"
+ },
+ {
+ "X": 44800,
+ "Y": 9216,
+ "Z": 58624,
+ "Room": 79,
+ "KeyItemsHigh": "22357",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 9216,
+ "Z": 58624,
+ "Room": 79,
+ "KeyItemsHigh": "22357",
+ "Range": "Large"
+ },
+ {
+ "X": 44288,
+ "Y": 9216,
+ "Z": 58624,
+ "Room": 79,
+ "KeyItemsHigh": "22357",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 9216,
+ "Z": 59904,
+ "Room": 11
+ },
+ {
+ "X": 52736,
+ "Y": 9728,
+ "Z": 57856,
+ "Room": 30
+ },
+ {
+ "X": 48640,
+ "Y": 10752,
+ "Z": 57856,
+ "Room": 34
+ },
+ {
+ "X": 44544,
+ "Y": 11520,
+ "Z": 47616,
+ "Room": 10
+ },
+ {
+ "X": 44544,
+ "Y": 11520,
+ "Z": 59904,
+ "Room": 14
+ },
+ {
+ "X": 60928,
+ "Y": 9216,
+ "Z": 52736,
+ "Room": 83
+ },
+ {
+ "X": 62976,
+ "Y": 9216,
+ "Z": 52736,
+ "Room": 77
+ },
+ {
+ "X": 29184,
+ "Y": 5376,
+ "Z": 54784,
+ "Room": 65
+ },
+ {
+ "X": 23040,
+ "Y": 3840,
+ "Z": 53760,
+ "Room": 58
+ },
+ {
+ "X": 23040,
+ "Y": 3840,
+ "Z": 50688,
+ "Room": 35
+ },
+ {
+ "X": 17920,
+ "Y": 2432,
+ "Z": 54784,
+ "Room": 58
+ },
+ {
+ "X": 17920,
+ "Y": 2048,
+ "Z": 53760,
+ "Room": 84
+ },
+ {
+ "X": 16896,
+ "Y": -256,
+ "Z": 52736,
+ "Room": 87,
+ "Validated": false
+ },
+ {
+ "X": 17920,
+ "Y": 3328,
+ "Z": 58880,
+ "Room": 54
+ },
+ {
+ "X": 17920,
+ "Y": -256,
+ "Z": 58880,
+ "Room": 88
+ },
+ {
+ "X": 17920,
+ "Y": -1024,
+ "Z": 61952,
+ "Room": 89
+ },
+ {
+ "X": 19968,
+ "Y": 5248,
+ "Z": 65024,
+ "Room": 22
+ },
+ {
+ "X": 19968,
+ "Y": 8448,
+ "Z": 62976,
+ "Room": 28
+ },
+ {
+ "X": 16896,
+ "Y": 3584,
+ "Z": 64000,
+ "Room": 92
+ },
+ {
+ "X": 19968,
+ "Y": 3712,
+ "Z": 61952,
+ "Room": 57
+ },
+ {
+ "X": 14848,
+ "Y": 3584,
+ "Z": 69120,
+ "Room": 91
+ },
+ {
+ "X": 6656,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 25
+ },
+ {
+ "X": 6656,
+ "Y": -1024,
+ "Z": 59904,
+ "Room": 94
+ },
+ {
+ "X": 6656,
+ "Y": 5376,
+ "Z": 59904,
+ "Room": 21
+ },
+ {
+ "X": 10752,
+ "Y": 5888,
+ "Z": 58880,
+ "Room": 82
+ },
+ {
+ "X": 11776,
+ "Y": 2816,
+ "Z": 53760,
+ "Room": 24
+ },
+ {
+ "X": 11776,
+ "Y": 256,
+ "Z": 53760,
+ "Room": 97
+ },
+ {
+ "X": 11776,
+ "Y": 3584,
+ "Z": 49664,
+ "Room": 23
+ },
+ {
+ "X": 18944,
+ "Y": 5120,
+ "Z": 46592,
+ "Room": 36
+ },
+ {
+ "X": 32256,
+ "Y": 5888,
+ "Z": 60928,
+ "Room": 39
+ },
+ {
+ "X": 35328,
+ "Y": 5888,
+ "Z": 61952,
+ "Room": 38
+ },
+ {
+ "X": 36352,
+ "Y": 3328,
+ "Z": 62976,
+ "Room": 81
+ },
+ {
+ "X": 34304,
+ "Y": 8192,
+ "Z": 62976,
+ "Room": 71
+ },
+ {
+ "X": 34304,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 70
+ },
+ {
+ "X": 38400,
+ "Y": 4864,
+ "Z": 66048,
+ "Room": 33
+ },
+ {
+ "X": 39424,
+ "Y": 4864,
+ "Z": 66048,
+ "Room": 42
+ },
+ {
+ "X": 46592,
+ "Y": 3840,
+ "Z": 68096,
+ "Room": 126
+ },
+ {
+ "X": 45568,
+ "Y": 1792,
+ "Z": 69120,
+ "Room": 49
+ },
+ {
+ "X": 43520,
+ "Y": 1792,
+ "Z": 65024,
+ "Room": 48
+ },
+ {
+ "X": 49664,
+ "Y": 3840,
+ "Z": 66048,
+ "Room": 127
+ },
+ {
+ "X": 50688,
+ "Y": 7936,
+ "Z": 66048,
+ "Room": 52
+ },
+ {
+ "X": 50688,
+ "Y": 7936,
+ "Z": 67072,
+ "Room": 73
+ }
+ ],
+ "ICECAVE.TR2": [
+ {
+ "X": 77312,
+ "Y": 256,
+ "Z": 57856,
+ "Room": 97,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": 7936,
+ "Z": 66048,
+ "Room": 42,
+ "KeyItemsLow": "23379",
+ "Range": "Medium"
+ },
+ {
+ "X": 61696,
+ "Y": 7936,
+ "Z": 66048,
+ "Room": 42,
+ "KeyItemsLow": "23379",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61696,
+ "Y": 7936,
+ "Z": 65792,
+ "Room": 42,
+ "KeyItemsLow": "23379",
+ "Range": "Large"
+ },
+ {
+ "X": 61952,
+ "Y": 7936,
+ "Z": 65792,
+ "Room": 42,
+ "KeyItemsLow": "23379,23315,23503",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": 3840,
+ "Z": 65024,
+ "Room": 147
+ },
+ {
+ "X": 60928,
+ "Y": 7936,
+ "Z": 72192,
+ "Room": 93
+ },
+ {
+ "X": 62976,
+ "Y": 7936,
+ "Z": 72192,
+ "Room": 40
+ },
+ {
+ "X": 66048,
+ "Y": 7936,
+ "Z": 72192,
+ "Room": 45
+ },
+ {
+ "X": 66048,
+ "Y": 7936,
+ "Z": 74240,
+ "Room": 44
+ },
+ {
+ "X": 69120,
+ "Y": 7936,
+ "Z": 74240,
+ "Room": 51
+ },
+ {
+ "X": 73216,
+ "Y": 7936,
+ "Z": 73216,
+ "Room": 87
+ },
+ {
+ "X": 68096,
+ "Y": 7936,
+ "Z": 68096,
+ "Room": 48
+ },
+ {
+ "X": 72192,
+ "Y": 2816,
+ "Z": 70144,
+ "Room": 53
+ },
+ {
+ "X": 68096,
+ "Y": 2816,
+ "Z": 72192,
+ "Room": 54
+ },
+ {
+ "X": 70144,
+ "Y": 5632,
+ "Z": 75264,
+ "Room": 52
+ },
+ {
+ "X": 68096,
+ "Y": 5632,
+ "Z": 68096,
+ "Room": 92
+ },
+ {
+ "X": 64000,
+ "Y": 5888,
+ "Z": 70144,
+ "Room": 46
+ },
+ {
+ "X": 68096,
+ "Y": 5632,
+ "Z": 77312,
+ "Room": 62
+ },
+ {
+ "X": 68096,
+ "Y": 5632,
+ "Z": 80384,
+ "Room": 106
+ },
+ {
+ "X": 68096,
+ "Y": 10496,
+ "Z": 83456,
+ "Room": 107
+ },
+ {
+ "X": 74240,
+ "Y": 5632,
+ "Z": 77312,
+ "Room": 84
+ },
+ {
+ "X": 74240,
+ "Y": 4864,
+ "Z": 74240,
+ "Room": 86
+ },
+ {
+ "X": 73216,
+ "Y": 7936,
+ "Z": 69120,
+ "Room": 55
+ },
+ {
+ "X": 75264,
+ "Y": 3328,
+ "Z": 67072,
+ "Room": 150
+ },
+ {
+ "X": 77312,
+ "Y": 7936,
+ "Z": 69120,
+ "Room": 89
+ },
+ {
+ "X": 77312,
+ "Y": 4864,
+ "Z": 69120,
+ "Room": 94
+ },
+ {
+ "X": 80384,
+ "Y": 3328,
+ "Z": 69120,
+ "Room": 95
+ },
+ {
+ "X": 81408,
+ "Y": 2304,
+ "Z": 70144,
+ "Room": 32
+ },
+ {
+ "X": 81408,
+ "Y": 0,
+ "Z": 69120,
+ "Room": 96
+ },
+ {
+ "X": 80384,
+ "Y": -1024,
+ "Z": 69120,
+ "Room": 5,
+ "KeyItemsLow": "23379"
+ },
+ {
+ "X": 80384,
+ "Y": -1024,
+ "Z": 68864,
+ "Room": 5,
+ "KeyItemsLow": "23379",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": -1024,
+ "Z": 66048,
+ "Room": 4
+ },
+ {
+ "X": 72192,
+ "Y": 0,
+ "Z": 65024,
+ "Room": 98
+ },
+ {
+ "X": 62976,
+ "Y": 1024,
+ "Z": 64000,
+ "Room": 101
+ },
+ {
+ "X": 62976,
+ "Y": 1536,
+ "Z": 61952,
+ "Room": 100
+ },
+ {
+ "X": 73216,
+ "Y": -1024,
+ "Z": 68096,
+ "Room": 4
+ },
+ {
+ "X": 62976,
+ "Y": -256,
+ "Z": 68352,
+ "Room": 99,
+ "KeyItemsHigh": "23379"
+ },
+ {
+ "X": 62976,
+ "Y": -256,
+ "Z": 68096,
+ "Room": 99,
+ "KeyItemsHigh": "23379",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": -256,
+ "Z": 67840,
+ "Room": 99,
+ "KeyItemsHigh": "23379",
+ "Range": "Medium"
+ },
+ {
+ "X": 62720,
+ "Y": -256,
+ "Z": 67840,
+ "Room": 99,
+ "KeyItemsHigh": "23379",
+ "KeyItemsLow": "23315",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62720,
+ "Y": -256,
+ "Z": 68096,
+ "Room": 99,
+ "KeyItemsHigh": "23379",
+ "Range": "Large"
+ },
+ {
+ "X": 62720,
+ "Y": -256,
+ "Z": 68352,
+ "Room": 99,
+ "KeyItemsHigh": "23379",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 58880,
+ "Y": 1536,
+ "Z": 67072,
+ "Room": 135
+ },
+ {
+ "X": 57856,
+ "Y": 3072,
+ "Z": 64000,
+ "Room": 41
+ },
+ {
+ "X": 54784,
+ "Y": 3328,
+ "Z": 61952,
+ "Room": 90
+ },
+ {
+ "X": 54784,
+ "Y": 6656,
+ "Z": 57856,
+ "Room": 34,
+ "KeyItemsLow": "23315",
+ "Range": "Large"
+ },
+ {
+ "X": 53760,
+ "Y": 5632,
+ "Z": 56832,
+ "Room": 131
+ },
+ {
+ "X": 52736,
+ "Y": 5632,
+ "Z": 56832,
+ "Room": 65
+ },
+ {
+ "X": 53760,
+ "Y": 5632,
+ "Z": 53760,
+ "Room": 148
+ },
+ {
+ "X": 52736,
+ "Y": 5632,
+ "Z": 53760,
+ "Room": 59,
+ "KeyItemsLow": "23315",
+ "Range": "Medium"
+ },
+ {
+ "X": 50688,
+ "Y": 8064,
+ "Z": 56832,
+ "Room": 64
+ },
+ {
+ "X": 52736,
+ "Y": 7936,
+ "Z": 53760,
+ "Room": 130
+ },
+ {
+ "X": 48640,
+ "Y": 8192,
+ "Z": 54784,
+ "Room": 15
+ },
+ {
+ "X": 45568,
+ "Y": 9216,
+ "Z": 51712,
+ "Room": 16
+ },
+ {
+ "X": 50688,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 6
+ },
+ {
+ "X": 55808,
+ "Y": 5632,
+ "Z": 64000,
+ "Room": 36
+ },
+ {
+ "X": 53760,
+ "Y": 1536,
+ "Z": 64000,
+ "Room": 68,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": 1792,
+ "Z": 68096,
+ "Room": 38,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": 4864,
+ "Z": 70144,
+ "Room": 33,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 768,
+ "Z": 68096,
+ "Room": 39,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": 5888,
+ "Z": 64000,
+ "Room": 30
+ },
+ {
+ "X": 41472,
+ "Y": 5888,
+ "Z": 56832,
+ "Room": 65
+ },
+ {
+ "X": 40448,
+ "Y": 5888,
+ "Z": 56832,
+ "Room": 67
+ },
+ {
+ "X": 38400,
+ "Y": 8192,
+ "Z": 54784,
+ "Room": 132
+ },
+ {
+ "X": 38400,
+ "Y": 8192,
+ "Z": 53760,
+ "Room": 133
+ },
+ {
+ "X": 33280,
+ "Y": 8192,
+ "Z": 51712,
+ "Room": 60
+ },
+ {
+ "X": 32256,
+ "Y": 8192,
+ "Z": 54784,
+ "Room": 22
+ },
+ {
+ "X": 30208,
+ "Y": 10496,
+ "Z": 57856,
+ "Room": 71
+ },
+ {
+ "X": 27136,
+ "Y": -256,
+ "Z": 55808,
+ "Room": 116,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -1024,
+ "Z": 66048,
+ "Room": 118,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": 3840,
+ "Z": 69120,
+ "Room": 119,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": 3584,
+ "Z": 49664,
+ "Room": 17,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": 3584,
+ "Z": 52736,
+ "Room": 31
+ },
+ {
+ "X": 51712,
+ "Y": 3584,
+ "Z": 55808,
+ "Room": 66,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": 3840,
+ "Z": 49664,
+ "Room": 63
+ },
+ {
+ "X": 31232,
+ "Y": 9984,
+ "Z": 49664,
+ "Room": 29,
+ "KeyItemsLow": "23315"
+ },
+ {
+ "X": 31232,
+ "Y": 9984,
+ "Z": 49408,
+ "Room": 29,
+ "KeyItemsLow": "23315",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30976,
+ "Y": 9984,
+ "Z": 49408,
+ "Room": 29,
+ "KeyItemsLow": "23503",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 32256,
+ "Y": 9600,
+ "Z": 41472,
+ "Room": 24
+ },
+ {
+ "X": 33280,
+ "Y": 8320,
+ "Z": 37376,
+ "Room": 25
+ },
+ {
+ "X": 34304,
+ "Y": 7040,
+ "Z": 31232,
+ "Room": 8
+ },
+ {
+ "X": 36352,
+ "Y": 6400,
+ "Z": 30208,
+ "Room": 61
+ },
+ {
+ "X": 30208,
+ "Y": 7552,
+ "Z": 31232,
+ "Room": 56
+ },
+ {
+ "X": 33280,
+ "Y": 6400,
+ "Z": 25088,
+ "Room": 11
+ },
+ {
+ "X": 35328,
+ "Y": 4864,
+ "Z": 25088,
+ "Room": 69
+ },
+ {
+ "X": 36352,
+ "Y": 4096,
+ "Z": 24832,
+ "Room": 74,
+ "KeyItemsHigh": "23315"
+ },
+ {
+ "X": 36352,
+ "Y": 4096,
+ "Z": 25088,
+ "Room": 74,
+ "KeyItemsHigh": "23315",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 36352,
+ "Y": 4096,
+ "Z": 25344,
+ "Room": 74,
+ "KeyItemsHigh": "23315",
+ "Range": "Medium"
+ },
+ {
+ "X": 36608,
+ "Y": 4096,
+ "Z": 25344,
+ "Room": 74,
+ "KeyItemsHigh": "23315",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 36608,
+ "Y": 4096,
+ "Z": 25088,
+ "Room": 74,
+ "KeyItemsHigh": "23315",
+ "Range": "Large"
+ },
+ {
+ "X": 36608,
+ "Y": 4096,
+ "Z": 24832,
+ "Room": 74,
+ "KeyItemsHigh": "23315",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": 4224,
+ "Z": 20992,
+ "Room": 73
+ },
+ {
+ "X": 50688,
+ "Y": 5888,
+ "Z": 16896,
+ "Room": 75
+ },
+ {
+ "X": 54784,
+ "Y": 23296,
+ "Z": 22016,
+ "Room": 88,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 6528,
+ "Z": 23040,
+ "Room": 85
+ },
+ {
+ "X": 56832,
+ "Y": 5888,
+ "Z": 24064,
+ "Room": 77
+ },
+ {
+ "X": 57856,
+ "Y": 14848,
+ "Z": 26112,
+ "Room": 102,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": 1280,
+ "Z": 27136,
+ "Room": 80
+ },
+ {
+ "X": 59904,
+ "Y": 3456,
+ "Z": 29184,
+ "Room": 9,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": 6656,
+ "Z": 29952,
+ "Room": 10,
+ "KeyItemsLow": "23503"
+ },
+ {
+ "X": 58880,
+ "Y": 6656,
+ "Z": 30208,
+ "Room": 10,
+ "KeyItemsLow": "23503",
+ "Range": "Medium"
+ },
+ {
+ "X": 58880,
+ "Y": 6656,
+ "Z": 30464,
+ "Room": 10,
+ "KeyItemsLow": "23503",
+ "Range": "Large"
+ },
+ {
+ "X": 59136,
+ "Y": 6656,
+ "Z": 30464,
+ "Room": 10,
+ "KeyItemsLow": "23503",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61952,
+ "Y": 9472,
+ "Z": 30208,
+ "Room": 103
+ },
+ {
+ "X": 52736,
+ "Y": 9472,
+ "Z": 25088,
+ "Room": 151,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 51712,
+ "Y": 3584,
+ "Z": 25088,
+ "Room": 152,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 47616,
+ "Y": 3584,
+ "Z": 27136,
+ "Room": 153,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 62976,
+ "Y": 11008,
+ "Z": 36096,
+ "Room": 128,
+ "KeyItemsHigh": "23503"
+ },
+ {
+ "X": 62976,
+ "Y": 11008,
+ "Z": 36352,
+ "Room": 128,
+ "KeyItemsHigh": "23503",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61952,
+ "Y": 11520,
+ "Z": 36352,
+ "Room": 126
+ },
+ {
+ "X": 61952,
+ "Y": 11520,
+ "Z": 37376,
+ "Room": 138
+ },
+ {
+ "X": 49664,
+ "Y": 15616,
+ "Z": 46592,
+ "Room": 141
+ },
+ {
+ "X": 50688,
+ "Y": 18688,
+ "Z": 48640,
+ "Room": 142
+ },
+ {
+ "X": 48640,
+ "Y": 11520,
+ "Z": 29184,
+ "Room": 7
+ },
+ {
+ "X": 57856,
+ "Y": 9984,
+ "Z": 30208,
+ "Room": 127,
+ "KeyItemsLow": "23503"
+ },
+ {
+ "X": 58112,
+ "Y": 9984,
+ "Z": 30208,
+ "Room": 127,
+ "KeyItemsLow": "23503",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": 11520,
+ "Z": 42752,
+ "Room": 144,
+ "KeyItemsHigh": "23503"
+ },
+ {
+ "X": 64000,
+ "Y": 11520,
+ "Z": 42496,
+ "Room": 144,
+ "KeyItemsHigh": "23503",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": 11520,
+ "Z": 42240,
+ "Room": 144,
+ "KeyItemsHigh": "23503",
+ "Range": "Medium"
+ },
+ {
+ "X": 64256,
+ "Y": 11520,
+ "Z": 42240,
+ "Room": 144,
+ "KeyItemsHigh": "23503",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64256,
+ "Y": 11520,
+ "Z": 42496,
+ "Room": 144,
+ "KeyItemsHigh": "23503",
+ "Range": "Large"
+ },
+ {
+ "X": 64256,
+ "Y": 11520,
+ "Z": 42752,
+ "Room": 144,
+ "KeyItemsHigh": "23503",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 65024,
+ "Y": 11520,
+ "Z": 42496,
+ "Room": 143
+ }
+ ],
+ "EMPRTOMB.TR2": [
+ {
+ "X": 7680,
+ "Y": -22784,
+ "Z": 81408,
+ "Room": 190,
+ "KeyItemsLow": "24427,24387,24582,24436",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 7680,
+ "Y": -23040,
+ "Z": 79360,
+ "Room": 79
+ },
+ {
+ "X": 7680,
+ "Y": -23040,
+ "Z": 73216,
+ "Room": 18
+ },
+ {
+ "X": 7680,
+ "Y": -23040,
+ "Z": 64000,
+ "Room": 17
+ },
+ {
+ "X": 12800,
+ "Y": -21888,
+ "Z": 64000,
+ "Room": 45
+ },
+ {
+ "X": 10752,
+ "Y": -18560,
+ "Z": 62976,
+ "Room": 15
+ },
+ {
+ "X": 8704,
+ "Y": -14720,
+ "Z": 59904,
+ "Room": 4
+ },
+ {
+ "X": 7680,
+ "Y": -10752,
+ "Z": 58880,
+ "Room": 186
+ },
+ {
+ "X": 7680,
+ "Y": -6528,
+ "Z": 53760,
+ "Room": 187
+ },
+ {
+ "X": 7680,
+ "Y": -3584,
+ "Z": 52736,
+ "Room": 5
+ },
+ {
+ "X": 7680,
+ "Y": 1536,
+ "Z": 57856,
+ "Room": 7
+ },
+ {
+ "X": 9728,
+ "Y": 3584,
+ "Z": 57856,
+ "Room": 182
+ },
+ {
+ "X": 11776,
+ "Y": 5632,
+ "Z": 57856,
+ "Room": 181
+ },
+ {
+ "X": 13824,
+ "Y": 8832,
+ "Z": 57856,
+ "Room": 146
+ },
+ {
+ "X": 14848,
+ "Y": 9600,
+ "Z": 57856,
+ "Room": 189
+ },
+ {
+ "X": 17920,
+ "Y": 12544,
+ "Z": 57856,
+ "Room": 188
+ },
+ {
+ "X": 17920,
+ "Y": 13312,
+ "Z": 55808,
+ "Room": 162
+ },
+ {
+ "X": 24064,
+ "Y": 16640,
+ "Z": 56832,
+ "Room": 9,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": 12288,
+ "Z": 60928,
+ "Room": 88,
+ "Validated": false
+ },
+ {
+ "X": 24064,
+ "Y": 22912,
+ "Z": 47616,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 20736,
+ "Y": 28672,
+ "Z": 44544,
+ "Room": 13,
+ "KeyItemsLow": "24427,24387,24582",
+ "Range": "Medium"
+ },
+ {
+ "X": 20992,
+ "Y": 28672,
+ "Z": 44544,
+ "Room": 13,
+ "KeyItemsLow": "24427,24387,24582,24436",
+ "Range": "Large"
+ },
+ {
+ "X": 21248,
+ "Y": 28672,
+ "Z": 44544,
+ "Room": 13,
+ "KeyItemsLow": "24387,24582,24427",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20736,
+ "Y": 28672,
+ "Z": 44288,
+ "Room": 13,
+ "KeyItemsLow": "24582,24427"
+ },
+ {
+ "X": 20992,
+ "Y": 28672,
+ "Z": 44288,
+ "Room": 13,
+ "KeyItemsLow": "24582,24427",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22016,
+ "Y": 24832,
+ "Z": 40448,
+ "Room": 100
+ },
+ {
+ "X": 28160,
+ "Y": 28288,
+ "Z": 43520,
+ "Room": 39
+ },
+ {
+ "X": 35328,
+ "Y": 23424,
+ "Z": 43520,
+ "Room": 14
+ },
+ {
+ "X": 44544,
+ "Y": 18176,
+ "Z": 43520,
+ "Room": 38,
+ "Validated": false
+ },
+ {
+ "X": 19968,
+ "Y": 23296,
+ "Z": 41472,
+ "Room": 89
+ },
+ {
+ "X": 19968,
+ "Y": 18176,
+ "Z": 39424,
+ "Room": 21
+ },
+ {
+ "X": 19968,
+ "Y": 18688,
+ "Z": 37376,
+ "Room": 16
+ },
+ {
+ "X": 19968,
+ "Y": 20992,
+ "Z": 37376,
+ "Room": 22
+ },
+ {
+ "X": 18944,
+ "Y": 23936,
+ "Z": 37376,
+ "Room": 23
+ },
+ {
+ "X": 15872,
+ "Y": 18944,
+ "Z": 32256,
+ "Room": 25
+ },
+ {
+ "X": 10752,
+ "Y": 19712,
+ "Z": 33280,
+ "Room": 30
+ },
+ {
+ "X": 11776,
+ "Y": 16512,
+ "Z": 36352,
+ "Room": 26
+ },
+ {
+ "X": 10752,
+ "Y": 16640,
+ "Z": 37376,
+ "Room": 50
+ },
+ {
+ "X": 10752,
+ "Y": 20608,
+ "Z": 43520,
+ "Room": 27
+ },
+ {
+ "X": 15872,
+ "Y": 18432,
+ "Z": 47616,
+ "Room": 3
+ },
+ {
+ "X": 47616,
+ "Y": 21760,
+ "Z": 44544,
+ "Room": 163,
+ "KeyItemsHigh": "24582",
+ "KeyItemsLow": "24387"
+ },
+ {
+ "X": 47616,
+ "Y": 21760,
+ "Z": 44288,
+ "Room": 163,
+ "KeyItemsHigh": "24582",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 15872,
+ "Y": 18432,
+ "Z": 48640,
+ "Room": 193,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 15872,
+ "Y": 18432,
+ "Z": 65024,
+ "Room": 194,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 15872,
+ "Y": 6144,
+ "Z": 81408,
+ "Room": 196,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 15872,
+ "Y": -8192,
+ "Z": 80384,
+ "Room": 198,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 16896,
+ "Y": -22528,
+ "Z": 80384,
+ "Room": 200,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 14848,
+ "Y": -25088,
+ "Z": 81408,
+ "Room": 201,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 47616,
+ "Y": 21760,
+ "Z": 43520,
+ "Room": 164,
+ "KeyItemsLow": "24387",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 21760,
+ "Z": 43520,
+ "Room": 42
+ },
+ {
+ "X": 48640,
+ "Y": 21760,
+ "Z": 46592,
+ "Room": 165
+ },
+ {
+ "X": 51712,
+ "Y": 21760,
+ "Z": 45568,
+ "Room": 41
+ },
+ {
+ "X": 52736,
+ "Y": 21760,
+ "Z": 49664,
+ "Room": 43,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": 21760,
+ "Z": 39424,
+ "Room": 44,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": 21760,
+ "Z": 43520,
+ "Room": 67
+ },
+ {
+ "X": 66048,
+ "Y": 18176,
+ "Z": 42496,
+ "Room": 70
+ },
+ {
+ "X": 73216,
+ "Y": 20096,
+ "Z": 42496,
+ "Room": 72,
+ "Validated": false
+ },
+ {
+ "X": 76288,
+ "Y": 23552,
+ "Z": 42496,
+ "Room": 65,
+ "Validated": false
+ },
+ {
+ "X": 75264,
+ "Y": 23296,
+ "Z": 45568,
+ "Room": 167,
+ "Validated": false
+ },
+ {
+ "X": 74240,
+ "Y": 23296,
+ "Z": 42496,
+ "Room": 73,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": 23296,
+ "Z": 46592,
+ "Room": 77,
+ "Validated": false
+ },
+ {
+ "X": 71168,
+ "Y": 16896,
+ "Z": 50688,
+ "Room": 147,
+ "Validated": false
+ },
+ {
+ "X": 70144,
+ "Y": 14464,
+ "Z": 50688,
+ "Room": 78,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": 15872,
+ "Z": 50688,
+ "Room": 80,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": 19200,
+ "Z": 51712,
+ "Room": 115,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": 19456,
+ "Z": 47616,
+ "Room": 66
+ },
+ {
+ "X": 49664,
+ "Y": 19200,
+ "Z": 44544,
+ "Room": 168,
+ "KeyItemsHigh": "24427"
+ },
+ {
+ "X": 49408,
+ "Y": 19200,
+ "Z": 44544,
+ "Room": 168,
+ "KeyItemsHigh": "24427",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 18688,
+ "Z": 42496,
+ "Room": 116
+ },
+ {
+ "X": 48128,
+ "Y": 18558,
+ "Z": 31201,
+ "Room": 117
+ },
+ {
+ "X": 48640,
+ "Y": 18944,
+ "Z": 26112,
+ "Room": 37
+ },
+ {
+ "X": 48640,
+ "Y": 18944,
+ "Z": 23040,
+ "Room": 60
+ },
+ {
+ "X": 48640,
+ "Y": 17664,
+ "Z": 15872,
+ "Room": 62,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 14848,
+ "Z": 10752,
+ "Room": 121,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 14336,
+ "Z": 9728,
+ "Room": 35,
+ "Validated": false
+ },
+ {
+ "X": 48588,
+ "Y": 19732,
+ "Z": 22528,
+ "Room": 118
+ },
+ {
+ "X": 45568,
+ "Y": 17920,
+ "Z": 26112,
+ "Room": 56
+ },
+ {
+ "X": 50688,
+ "Y": 14848,
+ "Z": 24064,
+ "Room": 122
+ },
+ {
+ "X": 45568,
+ "Y": 12544,
+ "Z": 33280,
+ "Room": 122
+ },
+ {
+ "X": 45568,
+ "Y": 12544,
+ "Z": 36352,
+ "Room": 36
+ },
+ {
+ "X": 51712,
+ "Y": 14976,
+ "Z": 36352,
+ "Room": 40
+ },
+ {
+ "X": 58880,
+ "Y": 19456,
+ "Z": 40448,
+ "Room": 178
+ },
+ {
+ "X": 48640,
+ "Y": 16640,
+ "Z": 39424,
+ "Room": 143
+ },
+ {
+ "X": 48640,
+ "Y": 16640,
+ "Z": 36352,
+ "Room": 180
+ },
+ {
+ "X": 48640,
+ "Y": 15872,
+ "Z": 34304,
+ "Room": 142
+ },
+ {
+ "X": 61952,
+ "Y": 20224,
+ "Z": 40448,
+ "Room": 0
+ },
+ {
+ "X": 64768,
+ "Y": 23296,
+ "Z": 46592,
+ "Room": 68,
+ "KeyItemsHigh": "24387",
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": 23296,
+ "Z": 46592,
+ "Room": 68,
+ "KeyItemsHigh": "24387",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 65280,
+ "Y": 23296,
+ "Z": 46592,
+ "Room": 68,
+ "KeyItemsHigh": "24387",
+ "Range": "Medium",
+ "Validated": false
+ },
+ {
+ "X": 65280,
+ "Y": 23296,
+ "Z": 46848,
+ "Room": 68,
+ "KeyItemsHigh": "24387",
+ "Range": "Medium",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": 23296,
+ "Z": 46848,
+ "Room": 68,
+ "KeyItemsHigh": "24387",
+ "Range": "Large",
+ "Validated": false
+ },
+ {
+ "X": 64768,
+ "Y": 23296,
+ "Z": 46848,
+ "Room": 68,
+ "KeyItemsHigh": "24387",
+ "Range": "Large",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": 23552,
+ "Z": 48640,
+ "Room": 76,
+ "Validated": false
+ },
+ {
+ "X": 73216,
+ "Y": 32256,
+ "Z": 57856,
+ "Room": 81,
+ "Validated": false
+ },
+ {
+ "X": 76288,
+ "Y": 32256,
+ "Z": 53760,
+ "Room": 108,
+ "Validated": false
+ },
+ {
+ "X": 75264,
+ "Y": 31744,
+ "Z": 51712,
+ "Room": 107,
+ "Validated": false
+ },
+ {
+ "X": 75264,
+ "Y": 29696,
+ "Z": 50688,
+ "Room": 101,
+ "Validated": false
+ },
+ {
+ "X": 77312,
+ "Y": 32000,
+ "Z": 48640,
+ "Room": 102,
+ "Validated": false
+ },
+ {
+ "X": 85504,
+ "Y": 29952,
+ "Z": 47616,
+ "Room": 103,
+ "Validated": false
+ },
+ {
+ "X": 95744,
+ "Y": 29952,
+ "Z": 45568,
+ "Room": 111,
+ "Validated": false
+ },
+ {
+ "X": 93696,
+ "Y": 31104,
+ "Z": 43520,
+ "Room": 133,
+ "Validated": false
+ },
+ {
+ "X": 71168,
+ "Y": 30976,
+ "Z": 47616,
+ "Room": 110,
+ "Validated": false
+ },
+ {
+ "X": 76288,
+ "Y": 27136,
+ "Z": 52736,
+ "Room": 112,
+ "Validated": false
+ },
+ {
+ "X": 77312,
+ "Y": 26368,
+ "Z": 52736,
+ "Room": 132,
+ "Validated": false
+ },
+ {
+ "X": 77312,
+ "Y": 25344,
+ "Z": 44544,
+ "Room": 125,
+ "Validated": false
+ },
+ {
+ "X": 77312,
+ "Y": 26752,
+ "Z": 42496,
+ "Room": 61,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": 24832,
+ "Z": 42496,
+ "Room": 192,
+ "Validated": false
+ },
+ {
+ "X": 73216,
+ "Y": 25344,
+ "Z": 42496,
+ "Room": 83,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": 29696,
+ "Z": 35328,
+ "Room": 57,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": 29696,
+ "Z": 35328,
+ "Room": 29
+ },
+ {
+ "X": 21760,
+ "Y": 24576,
+ "Z": 39424,
+ "Room": 86,
+ "KeyItemsLow": "24582"
+ },
+ {
+ "X": 22016,
+ "Y": 24576,
+ "Z": 39424,
+ "Room": 86,
+ "KeyItemsLow": "24582",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22272,
+ "Y": 24576,
+ "Z": 39424,
+ "Room": 86,
+ "KeyItemsHigh": "24427",
+ "Range": "Medium"
+ },
+ {
+ "X": 22272,
+ "Y": 24576,
+ "Z": 39168,
+ "Room": 86,
+ "KeyItemsHigh": "24427",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22016,
+ "Y": 24576,
+ "Z": 39168,
+ "Room": 86,
+ "KeyItemsHigh": "24427",
+ "Range": "Large"
+ },
+ {
+ "X": 21760,
+ "Y": 24576,
+ "Z": 39168,
+ "Room": 86,
+ "KeyItemsHigh": "24427",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 18944,
+ "Y": 28544,
+ "Z": 30208,
+ "Room": 2
+ },
+ {
+ "X": 16896,
+ "Y": 26880,
+ "Z": 33280,
+ "Room": 1
+ },
+ {
+ "X": 17920,
+ "Y": 26752,
+ "Z": 25088,
+ "Room": 96
+ },
+ {
+ "X": 19968,
+ "Y": 23040,
+ "Z": 26112,
+ "Room": 6
+ },
+ {
+ "X": 13824,
+ "Y": 17152,
+ "Z": 26112,
+ "Room": 151
+ },
+ {
+ "X": 12800,
+ "Y": 17024,
+ "Z": 26112,
+ "Room": 150
+ },
+ {
+ "X": 8704,
+ "Y": 17024,
+ "Z": 26112,
+ "Room": 149
+ },
+ {
+ "X": 5632,
+ "Y": 17280,
+ "Z": 20992,
+ "Room": 152
+ },
+ {
+ "X": 8704,
+ "Y": 18688,
+ "Z": 13824,
+ "Room": 156
+ },
+ {
+ "X": 9728,
+ "Y": 19712,
+ "Z": 9728,
+ "Room": 153
+ },
+ {
+ "X": 10752,
+ "Y": 19456,
+ "Z": 6656,
+ "Room": 158
+ },
+ {
+ "X": 13824,
+ "Y": 21632,
+ "Z": 8704,
+ "Room": 155
+ },
+ {
+ "X": 22016,
+ "Y": 17664,
+ "Z": 8704,
+ "Room": 148
+ },
+ {
+ "X": 16896,
+ "Y": 17536,
+ "Z": 13824,
+ "Room": 154
+ },
+ {
+ "X": 17920,
+ "Y": 14080,
+ "Z": 26112,
+ "Room": 151
+ },
+ {
+ "X": 35072,
+ "Y": 22528,
+ "Z": 38400,
+ "Room": 105,
+ "KeyItemsHigh": "24582"
+ },
+ {
+ "X": 35328,
+ "Y": 22528,
+ "Z": 38400,
+ "Room": 105,
+ "KeyItemsHigh": "24582",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35584,
+ "Y": 22528,
+ "Z": 38400,
+ "Room": 105,
+ "KeyItemsHigh": "24582",
+ "KeyItemsLow": "24436",
+ "Range": "Medium"
+ },
+ {
+ "X": 35584,
+ "Y": 22528,
+ "Z": 38144,
+ "Room": 105,
+ "KeyItemsHigh": "24582",
+ "KeyItemsLow": "24436",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": 22528,
+ "Z": 38144,
+ "Room": 105,
+ "KeyItemsHigh": "24582",
+ "Range": "Large"
+ },
+ {
+ "X": 35072,
+ "Y": 22528,
+ "Z": 38144,
+ "Room": 105,
+ "KeyItemsHigh": "24582",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34304,
+ "Y": 22528,
+ "Z": 37376,
+ "Room": 94
+ },
+ {
+ "X": 40448,
+ "Y": 18688,
+ "Z": 36352,
+ "Room": 93
+ },
+ {
+ "X": 39424,
+ "Y": 18176,
+ "Z": 51712,
+ "Room": 104
+ },
+ {
+ "X": 34304,
+ "Y": 14592,
+ "Z": 54784,
+ "Room": 145
+ },
+ {
+ "X": 28160,
+ "Y": 12288,
+ "Z": 52736,
+ "Room": 98
+ },
+ {
+ "X": 18944,
+ "Y": 12288,
+ "Z": 51712,
+ "Room": 8
+ },
+ {
+ "X": 33280,
+ "Y": 17920,
+ "Z": 52736,
+ "Room": 87,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": 17920,
+ "Z": 52736,
+ "Room": 49,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": 17920,
+ "Z": 51712,
+ "Room": 59,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": 14848,
+ "Z": 57856,
+ "Room": 106
+ },
+ {
+ "X": 35328,
+ "Y": 768,
+ "Z": 67072,
+ "Room": 144
+ },
+ {
+ "X": 34304,
+ "Y": -512,
+ "Z": 66048,
+ "Room": 34
+ },
+ {
+ "X": 29184,
+ "Y": -1792,
+ "Z": 66048,
+ "Room": 90,
+ "KeyItemsLow": "24436"
+ },
+ {
+ "X": 28928,
+ "Y": -1792,
+ "Z": 66048,
+ "Room": 90,
+ "KeyItemsLow": "24436",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 27136,
+ "Y": -1024,
+ "Z": 70144,
+ "Room": 91,
+ "Validated": false
+ },
+ {
+ "X": 18944,
+ "Y": -5632,
+ "Z": 68096,
+ "Room": 92
+ },
+ {
+ "X": 24064,
+ "Y": -10752,
+ "Z": 69120,
+ "Room": 46
+ },
+ {
+ "X": 26112,
+ "Y": -11264,
+ "Z": 66048,
+ "Room": 135
+ },
+ {
+ "X": 29184,
+ "Y": -10880,
+ "Z": 69120,
+ "Room": 136
+ },
+ {
+ "X": 23040,
+ "Y": -11264,
+ "Z": 66304,
+ "Room": 129,
+ "KeyItemsHigh": "24436"
+ },
+ {
+ "X": 23040,
+ "Y": -11264,
+ "Z": 66048,
+ "Room": 129,
+ "KeyItemsHigh": "24436",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -11264,
+ "Z": 65792,
+ "Room": 129,
+ "KeyItemsHigh": "24436",
+ "Range": "Medium"
+ },
+ {
+ "X": 22784,
+ "Y": -11264,
+ "Z": 65792,
+ "Room": 129,
+ "KeyItemsHigh": "24436",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22784,
+ "Y": -11264,
+ "Z": 66048,
+ "Room": 129,
+ "KeyItemsHigh": "24436",
+ "Range": "Large"
+ },
+ {
+ "X": 22784,
+ "Y": -11264,
+ "Z": 66304,
+ "Room": 129,
+ "KeyItemsHigh": "24436",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 19968,
+ "Y": -10880,
+ "Z": 61952,
+ "Room": 97
+ },
+ {
+ "X": 19968,
+ "Y": -15104,
+ "Z": 62976,
+ "Room": 32
+ },
+ {
+ "X": 16896,
+ "Y": -24448,
+ "Z": 61952,
+ "Room": 33
+ }
+ ],
+ "FLOATING.TR2": [
+ {
+ "X": 82432,
+ "Y": -9216,
+ "Z": 55552,
+ "Room": 8,
+ "KeyItemsLow": "25232,25160"
+ },
+ {
+ "X": 82432,
+ "Y": -9216,
+ "Z": 55808,
+ "Room": 8,
+ "KeyItemsLow": "25232,25160",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 82432,
+ "Y": -9216,
+ "Z": 56064,
+ "Room": 8,
+ "KeyItemsLow": "25232,25160",
+ "Range": "Medium"
+ },
+ {
+ "X": 82688,
+ "Y": -9216,
+ "Z": 56064,
+ "Room": 8,
+ "KeyItemsLow": "25232,25160",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 82688,
+ "Y": -9216,
+ "Z": 55808,
+ "Room": 8,
+ "KeyItemsLow": "25232,25160",
+ "Range": "Large"
+ },
+ {
+ "X": 82688,
+ "Y": -9216,
+ "Z": 55552,
+ "Room": 8,
+ "KeyItemsLow": "25232,25160",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 83456,
+ "Y": -9216,
+ "Z": 55808,
+ "Room": 152
+ },
+ {
+ "X": 83456,
+ "Y": -8832,
+ "Z": 54784,
+ "Room": 153
+ },
+ {
+ "X": 82432,
+ "Y": -8576,
+ "Z": 54784,
+ "Room": 99
+ },
+ {
+ "X": 71168,
+ "Y": -6912,
+ "Z": 52736,
+ "Room": 94
+ },
+ {
+ "X": 68096,
+ "Y": -7424,
+ "Z": 53760,
+ "Room": 98
+ },
+ {
+ "X": 73216,
+ "Y": -2816,
+ "Z": 50688,
+ "Room": 1
+ },
+ {
+ "X": 71168,
+ "Y": -3456,
+ "Z": 64000,
+ "Room": 105
+ },
+ {
+ "X": 71168,
+ "Y": -3584,
+ "Z": 65024,
+ "Room": 72
+ },
+ {
+ "X": 70144,
+ "Y": -3584,
+ "Z": 65024,
+ "Room": 104
+ },
+ {
+ "X": 72192,
+ "Y": -5632,
+ "Z": 66048,
+ "Room": 2
+ },
+ {
+ "X": 73216,
+ "Y": -4352,
+ "Z": 69120,
+ "Room": 103
+ },
+ {
+ "X": 75264,
+ "Y": -5504,
+ "Z": 70144,
+ "Room": 102
+ },
+ {
+ "X": 74240,
+ "Y": -6784,
+ "Z": 69120,
+ "Room": 3
+ },
+ {
+ "X": 76288,
+ "Y": -1408,
+ "Z": 68096,
+ "Room": 17
+ },
+ {
+ "X": 74240,
+ "Y": -768,
+ "Z": 68096,
+ "Room": 18
+ },
+ {
+ "X": 69120,
+ "Y": -768,
+ "Z": 67072,
+ "Room": 16
+ },
+ {
+ "X": 64000,
+ "Y": -1280,
+ "Z": 67072,
+ "Room": 4
+ },
+ {
+ "X": 61952,
+ "Y": -2560,
+ "Z": 65024,
+ "Room": 7
+ },
+ {
+ "X": 61952,
+ "Y": -2816,
+ "Z": 60928,
+ "Room": 5
+ },
+ {
+ "X": 57856,
+ "Y": -6656,
+ "Z": 56832,
+ "Room": 6
+ },
+ {
+ "X": 65024,
+ "Y": -9344,
+ "Z": 56832,
+ "Room": 8
+ },
+ {
+ "X": 64000,
+ "Y": -9216,
+ "Z": 49664,
+ "Room": 127,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": -6656,
+ "Z": 49664,
+ "Room": 136,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -7040,
+ "Z": 56832,
+ "Room": 21
+ },
+ {
+ "X": 48640,
+ "Y": -7168,
+ "Z": 56576,
+ "Room": 24,
+ "KeyItemsHigh": "25232,25160"
+ },
+ {
+ "X": 48640,
+ "Y": -7168,
+ "Z": 56832,
+ "Room": 24,
+ "KeyItemsHigh": "25232,25160",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": -7168,
+ "Z": 57088,
+ "Room": 24,
+ "KeyItemsHigh": "25232,25160",
+ "Range": "Medium"
+ },
+ {
+ "X": 48384,
+ "Y": -7168,
+ "Z": 57088,
+ "Room": 24,
+ "KeyItemsHigh": "25232,25160",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48384,
+ "Y": -7168,
+ "Z": 56832,
+ "Room": 24,
+ "KeyItemsHigh": "25232,25160",
+ "Range": "Large"
+ },
+ {
+ "X": 48384,
+ "Y": -7168,
+ "Z": 56576,
+ "Room": 24,
+ "KeyItemsHigh": "25232,25160",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": -7168,
+ "Z": 59904,
+ "Room": 45
+ },
+ {
+ "X": 40448,
+ "Y": -8064,
+ "Z": 64000,
+ "Room": 25
+ },
+ {
+ "X": 40448,
+ "Y": -7680,
+ "Z": 57856,
+ "Room": 25
+ },
+ {
+ "X": 44544,
+ "Y": -9216,
+ "Z": 50688,
+ "Room": 44
+ },
+ {
+ "X": 44544,
+ "Y": -9216,
+ "Z": 49664,
+ "Room": 61
+ },
+ {
+ "X": 44544,
+ "Y": -7424,
+ "Z": 46592,
+ "Room": 60
+ },
+ {
+ "X": 45568,
+ "Y": -5632,
+ "Z": 40448,
+ "Room": 66,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": -4736,
+ "Z": 44544,
+ "Room": 51
+ },
+ {
+ "X": 40448,
+ "Y": -3072,
+ "Z": 56832,
+ "Room": 101
+ },
+ {
+ "X": 44544,
+ "Y": -2560,
+ "Z": 57856,
+ "Room": 0
+ },
+ {
+ "X": 45568,
+ "Y": -2560,
+ "Z": 57856,
+ "Room": 29
+ },
+ {
+ "X": 46592,
+ "Y": -1408,
+ "Z": 54784,
+ "Room": 28
+ },
+ {
+ "X": 49664,
+ "Y": -4608,
+ "Z": 54784,
+ "Room": 83
+ },
+ {
+ "X": 48640,
+ "Y": -7040,
+ "Z": 54784,
+ "Room": 74
+ },
+ {
+ "X": 48640,
+ "Y": -4352,
+ "Z": 49664,
+ "Room": 23
+ },
+ {
+ "X": 43520,
+ "Y": -3072,
+ "Z": 47616,
+ "Room": 63
+ },
+ {
+ "X": 47616,
+ "Y": -7680,
+ "Z": 48640,
+ "Room": 37
+ },
+ {
+ "X": 46592,
+ "Y": -8448,
+ "Z": 42496,
+ "Room": 65
+ },
+ {
+ "X": 47616,
+ "Y": -9728,
+ "Z": 49664,
+ "Room": 39
+ },
+ {
+ "X": 47616,
+ "Y": -10240,
+ "Z": 50688,
+ "Room": 43
+ },
+ {
+ "X": 39424,
+ "Y": -2048,
+ "Z": 64000,
+ "Room": 73
+ },
+ {
+ "X": 37376,
+ "Y": -2816,
+ "Z": 67072,
+ "Room": 75
+ },
+ {
+ "X": 29184,
+ "Y": -128,
+ "Z": 68096,
+ "Room": 112,
+ "Validated": false
+ },
+ {
+ "X": 37376,
+ "Y": 0,
+ "Z": 69120,
+ "Room": 77
+ },
+ {
+ "X": 42496,
+ "Y": -1024,
+ "Z": 70144,
+ "Room": 46
+ },
+ {
+ "X": 40448,
+ "Y": 3840,
+ "Z": 68096,
+ "Room": 79
+ },
+ {
+ "X": 39424,
+ "Y": 2560,
+ "Z": 66048,
+ "Room": 91
+ },
+ {
+ "X": 28160,
+ "Y": 4352,
+ "Z": 68096,
+ "Room": 119
+ },
+ {
+ "X": 27136,
+ "Y": 4224,
+ "Z": 68096,
+ "Room": 118
+ },
+ {
+ "X": 30208,
+ "Y": 4224,
+ "Z": 74240,
+ "Room": 121
+ },
+ {
+ "X": 29184,
+ "Y": 2816,
+ "Z": 74240,
+ "Room": 122
+ },
+ {
+ "X": 37376,
+ "Y": 1792,
+ "Z": 74240,
+ "Room": 122
+ },
+ {
+ "X": 39424,
+ "Y": 0,
+ "Z": 73216,
+ "Room": 52
+ },
+ {
+ "X": 39424,
+ "Y": 768,
+ "Z": 77312,
+ "Room": 80
+ },
+ {
+ "X": 39424,
+ "Y": -1280,
+ "Z": 73216,
+ "Room": 126
+ },
+ {
+ "X": 38400,
+ "Y": -1280,
+ "Z": 76288,
+ "Room": 133
+ },
+ {
+ "X": 37376,
+ "Y": -1280,
+ "Z": 74240,
+ "Room": 86
+ },
+ {
+ "X": 33280,
+ "Y": 2560,
+ "Z": 78336,
+ "Room": 123
+ },
+ {
+ "X": 33280,
+ "Y": 2560,
+ "Z": 77312,
+ "Room": 78
+ },
+ {
+ "X": 32256,
+ "Y": 4352,
+ "Z": 80384,
+ "Room": 149
+ },
+ {
+ "X": 35328,
+ "Y": 4608,
+ "Z": 83456,
+ "Room": 145
+ },
+ {
+ "X": 34304,
+ "Y": 4608,
+ "Z": 85504,
+ "Room": 147
+ },
+ {
+ "X": 27136,
+ "Y": 4608,
+ "Z": 84480,
+ "Room": 146
+ },
+ {
+ "X": 30208,
+ "Y": 4608,
+ "Z": 76288,
+ "Room": 148
+ },
+ {
+ "X": 32256,
+ "Y": 4096,
+ "Z": 91648,
+ "Room": 26
+ },
+ {
+ "X": 31232,
+ "Y": 3328,
+ "Z": 96768,
+ "Room": 106
+ },
+ {
+ "X": 27136,
+ "Y": 2304,
+ "Z": 95744,
+ "Room": 129
+ },
+ {
+ "X": 27136,
+ "Y": 1536,
+ "Z": 92672,
+ "Room": 128
+ },
+ {
+ "X": 31232,
+ "Y": 512,
+ "Z": 91648,
+ "Room": 107
+ },
+ {
+ "X": 32256,
+ "Y": -1280,
+ "Z": 83456,
+ "Room": 86
+ },
+ {
+ "X": 26112,
+ "Y": -1280,
+ "Z": 78336,
+ "Room": 76
+ },
+ {
+ "X": 22272,
+ "Y": -9728,
+ "Z": 77312,
+ "Room": 81,
+ "KeyItemsLow": "25443"
+ },
+ {
+ "X": 22016,
+ "Y": -9728,
+ "Z": 77312,
+ "Room": 81,
+ "KeyItemsLow": "25443",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 21760,
+ "Y": -9728,
+ "Z": 77312,
+ "Room": 81,
+ "KeyItemsLow": "25443",
+ "Range": "Medium"
+ },
+ {
+ "X": 21760,
+ "Y": -9728,
+ "Z": 77056,
+ "Room": 81,
+ "KeyItemsLow": "25443",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22016,
+ "Y": -9728,
+ "Z": 77056,
+ "Room": 81,
+ "KeyItemsLow": "25443",
+ "Range": "Large"
+ },
+ {
+ "X": 22272,
+ "Y": -9728,
+ "Z": 77056,
+ "Room": 81,
+ "KeyItemsLow": "25443",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22016,
+ "Y": -9728,
+ "Z": 76288,
+ "Room": 90
+ },
+ {
+ "X": 18944,
+ "Y": -8960,
+ "Z": 72192,
+ "Room": 134
+ },
+ {
+ "X": 26112,
+ "Y": -8320,
+ "Z": 72192,
+ "Room": 144
+ },
+ {
+ "X": 24064,
+ "Y": -7808,
+ "Z": 67072,
+ "Room": 40
+ },
+ {
+ "X": 20992,
+ "Y": -5376,
+ "Z": 68096,
+ "Room": 124
+ },
+ {
+ "X": 25088,
+ "Y": -5376,
+ "Z": 66048,
+ "Room": 160
+ },
+ {
+ "X": 25088,
+ "Y": -5376,
+ "Z": 62976,
+ "Room": 159
+ },
+ {
+ "X": 35328,
+ "Y": -9984,
+ "Z": 62976,
+ "Room": 41
+ },
+ {
+ "X": 38400,
+ "Y": -10752,
+ "Z": 64000,
+ "Room": 42,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": -12672,
+ "Z": 62976,
+ "Room": 53,
+ "Validated": false
+ },
+ {
+ "X": 22272,
+ "Y": -7424,
+ "Z": 61952,
+ "Room": 161,
+ "KeyItemsHigh": "25443"
+ },
+ {
+ "X": 22016,
+ "Y": -7424,
+ "Z": 61952,
+ "Room": 161,
+ "KeyItemsHigh": "25443",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 21760,
+ "Y": -7424,
+ "Z": 61952,
+ "Room": 161,
+ "KeyItemsHigh": "25443",
+ "Range": "Medium"
+ },
+ {
+ "X": 21760,
+ "Y": -7424,
+ "Z": 62208,
+ "Room": 161,
+ "KeyItemsHigh": "25443",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22016,
+ "Y": -7424,
+ "Z": 62208,
+ "Room": 161,
+ "KeyItemsHigh": "25443",
+ "Range": "Large"
+ },
+ {
+ "X": 22272,
+ "Y": -7424,
+ "Z": 62208,
+ "Room": 161,
+ "KeyItemsHigh": "25443",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "XIAN.TR2": [
+ {
+ "X": 73472,
+ "Y": -9472,
+ "Z": 78336,
+ "Room": 17,
+ "KeyItemsLow": "26145"
+ },
+ {
+ "X": 73216,
+ "Y": -9472,
+ "Z": 78336,
+ "Room": 17,
+ "KeyItemsLow": "26145",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72960,
+ "Y": -9472,
+ "Z": 78336,
+ "Room": 17,
+ "KeyItemsLow": "26145",
+ "Range": "Medium"
+ },
+ {
+ "X": 72960,
+ "Y": -9472,
+ "Z": 78080,
+ "Room": 17,
+ "KeyItemsLow": "26145",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": -9472,
+ "Z": 78080,
+ "Room": 17,
+ "KeyItemsLow": "26145",
+ "Range": "Large"
+ },
+ {
+ "X": 73472,
+ "Y": -9472,
+ "Z": 78080,
+ "Room": 17,
+ "KeyItemsLow": "26145",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 73216,
+ "Y": -9472,
+ "Z": 77312,
+ "Room": 0
+ },
+ {
+ "X": 73216,
+ "Y": -9472,
+ "Z": 75264,
+ "Room": 3
+ },
+ {
+ "X": 67072,
+ "Y": -8960,
+ "Z": 70144,
+ "Room": 1
+ },
+ {
+ "X": 52480,
+ "Y": -9216,
+ "Z": 66048,
+ "Room": 2,
+ "KeyItemsHigh": "26145"
+ },
+ {
+ "X": 52736,
+ "Y": -9216,
+ "Z": 66048,
+ "Room": 2,
+ "KeyItemsHigh": "26145",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52992,
+ "Y": -9216,
+ "Z": 66048,
+ "Room": 2,
+ "KeyItemsHigh": "26145",
+ "Range": "Medium"
+ },
+ {
+ "X": 52992,
+ "Y": -9216,
+ "Z": 65792,
+ "Room": 2,
+ "KeyItemsHigh": "26145",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52736,
+ "Y": -9216,
+ "Z": 65792,
+ "Room": 2,
+ "KeyItemsHigh": "26145",
+ "Range": "Large"
+ },
+ {
+ "X": 52480,
+ "Y": -9216,
+ "Z": 65792,
+ "Room": 2,
+ "KeyItemsHigh": "26145",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52736,
+ "Y": -7168,
+ "Z": 57856,
+ "Room": 16
+ },
+ {
+ "X": 48640,
+ "Y": -7168,
+ "Z": 57856,
+ "Room": 20
+ },
+ {
+ "X": 41472,
+ "Y": -7168,
+ "Z": 57856,
+ "Room": 19
+ },
+ {
+ "X": 48640,
+ "Y": -7168,
+ "Z": 47616,
+ "Room": 18
+ },
+ {
+ "X": 46592,
+ "Y": -4864,
+ "Z": 42496,
+ "Room": 15
+ },
+ {
+ "X": 46592,
+ "Y": -4864,
+ "Z": 39424,
+ "Room": 13
+ },
+ {
+ "X": 52736,
+ "Y": -4864,
+ "Z": 37376,
+ "Room": 5
+ },
+ {
+ "X": 54784,
+ "Y": -4864,
+ "Z": 42496,
+ "Room": 14
+ },
+ {
+ "X": 51712,
+ "Y": -7168,
+ "Z": 29184,
+ "Room": 22
+ },
+ {
+ "X": 50688,
+ "Y": -7040,
+ "Z": 19968,
+ "Room": 21
+ }
+ ],
+ "HOUSE.TR2": [
+ {
+ "X": 34304,
+ "Y": 256,
+ "Z": 64000,
+ "Room": 52
+ },
+ {
+ "X": 31232,
+ "Y": 256,
+ "Z": 65024,
+ "Room": 57,
+ "InvalidatesRoom": true
+ },
+ {
+ "X": 27136,
+ "Y": 0,
+ "Z": 61952,
+ "Room": 27
+ },
+ {
+ "X": 29184,
+ "Y": 0,
+ "Z": 65024,
+ "Room": 58
+ },
+ {
+ "X": 26112,
+ "Y": 512,
+ "Z": 65024,
+ "Room": 11
+ },
+ {
+ "X": 38400,
+ "Y": 0,
+ "Z": 65024,
+ "Room": 9
+ },
+ {
+ "X": 41472,
+ "Y": 0,
+ "Z": 78336,
+ "Room": 8
+ },
+ {
+ "X": 36352,
+ "Y": -512,
+ "Z": 81408,
+ "Room": 7
+ },
+ {
+ "X": 34304,
+ "Y": -512,
+ "Z": 75264,
+ "Room": 53
+ },
+ {
+ "X": 32256,
+ "Y": -2560,
+ "Z": 67072,
+ "Room": 54
+ },
+ {
+ "X": 27136,
+ "Y": -2560,
+ "Z": 64000,
+ "Room": 32
+ },
+ {
+ "X": 36352,
+ "Y": 256,
+ "Z": 71168,
+ "Room": 10
+ },
+ {
+ "X": 39424,
+ "Y": 1536,
+ "Z": 74240,
+ "Room": 60
+ },
+ {
+ "X": 36352,
+ "Y": 2560,
+ "Z": 72192,
+ "Room": 61
+ },
+ {
+ "X": 34304,
+ "Y": 2560,
+ "Z": 72192,
+ "Room": 63
+ },
+ {
+ "X": 31232,
+ "Y": 2560,
+ "Z": 76288,
+ "Room": 65
+ },
+ {
+ "X": 29184,
+ "Y": 2560,
+ "Z": 80384,
+ "Room": 66
+ },
+ {
+ "X": 29184,
+ "Y": 2816,
+ "Z": 83456,
+ "Room": 12
+ },
+ {
+ "X": 29184,
+ "Y": 2560,
+ "Z": 92672,
+ "Room": 59
+ },
+ {
+ "X": 28160,
+ "Y": 6144,
+ "Z": 89600,
+ "Room": 13
+ },
+ {
+ "X": 28160,
+ "Y": 2560,
+ "Z": 75264,
+ "Room": 64
+ },
+ {
+ "X": 25088,
+ "Y": 2048,
+ "Z": 77312,
+ "Room": 69
+ },
+ {
+ "X": 25088,
+ "Y": 2048,
+ "Z": 73216,
+ "Room": 68
+ },
+ {
+ "X": 25088,
+ "Y": 2048,
+ "Z": 70144,
+ "Room": 67
+ },
+ {
+ "X": 29184,
+ "Y": 2560,
+ "Z": 65024,
+ "Room": 56
+ },
+ {
+ "X": 31232,
+ "Y": 2560,
+ "Z": 64000,
+ "Room": 72
+ },
+ {
+ "X": 37376,
+ "Y": 2560,
+ "Z": 61952,
+ "Room": 71
+ },
+ {
+ "X": 38400,
+ "Y": 2560,
+ "Z": 62976,
+ "Room": 70
+ },
+ {
+ "X": 37376,
+ "Y": 2048,
+ "Z": 60928,
+ "Room": 55
+ },
+ {
+ "X": 35328,
+ "Y": 2304,
+ "Z": 60928,
+ "Room": 51
+ },
+ {
+ "X": 36352,
+ "Y": 2560,
+ "Z": 66048,
+ "Room": 62
+ },
+ {
+ "X": 47616,
+ "Y": 2560,
+ "Z": 70144,
+ "Room": 48
+ },
+ {
+ "X": 48640,
+ "Y": 2560,
+ "Z": 62976,
+ "Room": 50
+ },
+ {
+ "X": 47616,
+ "Y": 2560,
+ "Z": 61952,
+ "Room": 49
+ },
+ {
+ "X": 50688,
+ "Y": -256,
+ "Z": 62976,
+ "Room": 19
+ },
+ {
+ "X": 47616,
+ "Y": -4352,
+ "Z": 69120,
+ "Room": 38
+ },
+ {
+ "X": 37376,
+ "Y": -5376,
+ "Z": 62976,
+ "Room": 37
+ },
+ {
+ "X": 47616,
+ "Y": 2560,
+ "Z": 60928,
+ "Room": 1
+ },
+ {
+ "X": 46592,
+ "Y": 2560,
+ "Z": 60928,
+ "Room": 2
+ },
+ {
+ "X": 39424,
+ "Y": 2816,
+ "Z": 56832,
+ "Room": 18
+ },
+ {
+ "X": 32256,
+ "Y": 0,
+ "Z": 56832,
+ "Room": 28
+ },
+ {
+ "X": 60928,
+ "Y": -1024,
+ "Z": 60928,
+ "Room": 30
+ },
+ {
+ "X": 46592,
+ "Y": -1024,
+ "Z": 53760,
+ "Room": 29
+ },
+ {
+ "X": 39424,
+ "Y": -1024,
+ "Z": 53760,
+ "Room": 28
+ },
+ {
+ "X": 30208,
+ "Y": 3840,
+ "Z": 56832,
+ "Room": 40
+ },
+ {
+ "X": 28160,
+ "Y": 3584,
+ "Z": 56832,
+ "Room": 44
+ },
+ {
+ "X": 24064,
+ "Y": 3584,
+ "Z": 56832,
+ "Room": 39
+ },
+ {
+ "X": 23040,
+ "Y": 2560,
+ "Z": 58880,
+ "Room": 3
+ },
+ {
+ "X": 22016,
+ "Y": -1024,
+ "Z": 53760,
+ "Room": 27
+ },
+ {
+ "X": 16896,
+ "Y": -1024,
+ "Z": 64000,
+ "Room": 26
+ },
+ {
+ "X": 23040,
+ "Y": 2560,
+ "Z": 64000,
+ "Room": 43
+ },
+ {
+ "X": 23040,
+ "Y": 2560,
+ "Z": 73216,
+ "Room": 5
+ },
+ {
+ "X": 22016,
+ "Y": 3072,
+ "Z": 76288,
+ "Room": 16
+ },
+ {
+ "X": 23040,
+ "Y": 2560,
+ "Z": 82432,
+ "Room": 42
+ },
+ {
+ "X": 23040,
+ "Y": 2560,
+ "Z": 90624,
+ "Room": 15
+ },
+ {
+ "X": 16896,
+ "Y": -1024,
+ "Z": 89600,
+ "Room": 25
+ },
+ {
+ "X": 20992,
+ "Y": -1024,
+ "Z": 97792,
+ "Room": 24
+ },
+ {
+ "X": 25088,
+ "Y": 2560,
+ "Z": 96768,
+ "Room": 41
+ },
+ {
+ "X": 34304,
+ "Y": 2560,
+ "Z": 96768,
+ "Room": 84
+ },
+ {
+ "X": 34304,
+ "Y": -1024,
+ "Z": 97792,
+ "Room": 23
+ },
+ {
+ "X": 33280,
+ "Y": 0,
+ "Z": 84480,
+ "Room": 34
+ },
+ {
+ "X": 29184,
+ "Y": -6144,
+ "Z": 83456,
+ "Room": 31
+ },
+ {
+ "X": 38400,
+ "Y": -4352,
+ "Z": 85504,
+ "Room": 36
+ },
+ {
+ "X": 38400,
+ "Y": 0,
+ "Z": 87552,
+ "Room": 35
+ },
+ {
+ "X": 39424,
+ "Y": -1024,
+ "Z": 97792,
+ "Room": 22
+ },
+ {
+ "X": 53760,
+ "Y": -1024,
+ "Z": 97792,
+ "Room": 21
+ },
+ {
+ "X": 60928,
+ "Y": -1024,
+ "Z": 85504,
+ "Room": 20
+ },
+ {
+ "X": 38400,
+ "Y": 2560,
+ "Z": 86528,
+ "Room": 83
+ },
+ {
+ "X": 39424,
+ "Y": 2560,
+ "Z": 86528,
+ "Room": 14
+ },
+ {
+ "X": 49664,
+ "Y": 2560,
+ "Z": 86528,
+ "Room": 17
+ },
+ {
+ "X": 53760,
+ "Y": 2560,
+ "Z": 86528,
+ "Room": 74
+ },
+ {
+ "X": 53760,
+ "Y": 2304,
+ "Z": 85504,
+ "Room": 6
+ },
+ {
+ "X": 55808,
+ "Y": 2560,
+ "Z": 87552,
+ "Room": 75
+ },
+ {
+ "X": 55808,
+ "Y": 2560,
+ "Z": 91648,
+ "Room": 76
+ },
+ {
+ "X": 52736,
+ "Y": 2560,
+ "Z": 96768,
+ "Room": 78
+ },
+ {
+ "X": 48640,
+ "Y": 2560,
+ "Z": 96768,
+ "Room": 80
+ },
+ {
+ "X": 38400,
+ "Y": 2560,
+ "Z": 96768,
+ "Room": 4
+ },
+ {
+ "X": 38400,
+ "Y": 3712,
+ "Z": 94720,
+ "Room": 0
+ },
+ {
+ "X": 44544,
+ "Y": 2560,
+ "Z": 91648,
+ "Room": 73
+ },
+ {
+ "X": 41472,
+ "Y": 2560,
+ "Z": 88576,
+ "Room": 81
+ },
+ {
+ "X": 46592,
+ "Y": 2560,
+ "Z": 88576,
+ "Room": 82
+ },
+ {
+ "X": 48640,
+ "Y": 2560,
+ "Z": 88576,
+ "Room": 79
+ },
+ {
+ "X": 51712,
+ "Y": 2560,
+ "Z": 88576,
+ "Room": 77
+ },
+ {
+ "X": 54784,
+ "Y": 2816,
+ "Z": 81408,
+ "Room": 33
+ },
+ {
+ "X": 61952,
+ "Y": 2560,
+ "Z": 70144,
+ "Room": 85
+ }
+ ]
}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR3/Locations/invalid_item_locations.json b/TRRandomizerCore/Resources/TR3/Locations/invalid_item_locations.json
index 1e79dadfd..414931ef8 100644
--- a/TRRandomizerCore/Resources/TR3/Locations/invalid_item_locations.json
+++ b/TRRandomizerCore/Resources/TR3/Locations/invalid_item_locations.json
@@ -7,6 +7,36 @@
"Room": 3,
"InvalidatesRoom": true
},
+ {
+ "X": 26112,
+ "Y": 26368,
+ "Z": 60928,
+ "Room": 149
+ },
+ {
+ "X": 26112,
+ "Y": 26368,
+ "Z": 59904,
+ "Room": 149
+ },
+ {
+ "X": 25088,
+ "Y": 17664,
+ "Z": 52736,
+ "Room": 17
+ },
+ {
+ "X": 48640,
+ "Y": 27904,
+ "Z": 65024,
+ "Room": 164
+ },
+ {
+ "X": 95744,
+ "Y": 20224,
+ "Z": 60928,
+ "Room": 77
+ },
{
"X": 59904,
"Y": 23936,
@@ -480,6 +510,157 @@
"Room": 1,
"InvalidatesRoom": true
},
+ {
+ "X": 64000,
+ "Y": 8960,
+ "Z": 62976,
+ "Room": 88,
+ "TargetType": 1
+ },
+ {
+ "X": 65024,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 88
+ },
+ {
+ "X": 64000,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 88
+ },
+ {
+ "X": 62976,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 88
+ },
+ {
+ "X": 61952,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 88
+ },
+ {
+ "X": 60928,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 87
+ },
+ {
+ "X": 59904,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 87
+ },
+ {
+ "X": 62976,
+ "Y": 8192,
+ "Z": 66048,
+ "Room": 88
+ },
+ {
+ "X": 64000,
+ "Y": 8192,
+ "Z": 66048,
+ "Room": 88
+ },
+ {
+ "X": 65024,
+ "Y": 8192,
+ "Z": 66048,
+ "Room": 88
+ },
+ {
+ "X": 66048,
+ "Y": 7936,
+ "Z": 66048,
+ "Room": 88
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 18944,
+ "Room": 173
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 19968,
+ "Room": 173
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 20992,
+ "Room": 173
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 22016,
+ "Room": 173
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 23040,
+ "Room": 173
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 24064,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 25088,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 26112,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 27136,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 28160,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 29184,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 30208,
+ "Room": 172
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 31232,
+ "Room": 172
+ },
+ {
+ "X": 56832,
+ "Y": 1280,
+ "Z": 82432,
+ "Room": 162
+ },
{
"X": 60928,
"Y": 8448,
@@ -522,6 +703,12 @@
"Z": 19968,
"Room": 176
},
+ {
+ "X": 52736,
+ "Y": 8960,
+ "Z": 19968,
+ "Room": 173
+ },
{
"X": 69120,
"Y": -5504,
@@ -689,11 +876,16 @@
"InvalidatesRoom": true
},
{
- "X": 17920,
- "Y": 7168,
- "Z": 66048,
- "Room": 220,
- "InvalidatesRoom": true
+ "X": 18944,
+ "Y": 6912,
+ "Z": 61952,
+ "Room": 220
+ },
+ {
+ "X": 15872,
+ "Y": 6912,
+ "Z": 61952,
+ "Room": 220
},
{
"X": 43520,
@@ -956,11 +1148,10 @@
"Room": 20
},
{
- "X": 35328,
+ "X": 37376,
"Y": -6912,
"Z": 56832,
- "Room": 6,
- "InvalidatesRoom": true
+ "Room": 6
},
{
"X": 18944,
@@ -980,6 +1171,12 @@
"Z": 51712,
"Room": 23,
"InvalidatesRoom": true
+ },
+ {
+ "X": 19968,
+ "Y": -8448,
+ "Z": 56832,
+ "Room": 7
}
],
"SHORE.TR2": [
@@ -1138,6 +1335,26 @@
"Room": 3,
"InvalidatesRoom": true
},
+ {
+ "X": 14848,
+ "Y": -128,
+ "Z": 25088,
+ "Room": 3,
+ "Validated": false
+ },
+ {
+ "X": 14848,
+ "Y": -1280,
+ "Z": 26112,
+ "Room": 3,
+ "Validated": false
+ },
+ {
+ "X": 17920,
+ "Y": -7680,
+ "Z": 84480,
+ "Room": 15
+ },
{
"X": 23040,
"Y": -640,
@@ -1158,6 +1375,12 @@
"Z": 77312,
"Room": 14
},
+ {
+ "X": 15872,
+ "Y": -1024,
+ "Z": 81408,
+ "Room": 14
+ },
{
"X": 17210,
"Y": -7019,
@@ -1522,6 +1745,30 @@
"Room": 3,
"InvalidatesRoom": true
},
+ {
+ "X": 30208,
+ "Y": -512,
+ "Z": 57856,
+ "Room": 46
+ },
+ {
+ "X": 64914,
+ "Y": -8362,
+ "Z": 27367,
+ "Room": 62
+ },
+ {
+ "X": 61952,
+ "Y": -6528,
+ "Z": 41472,
+ "Room": 5
+ },
+ {
+ "X": 58880,
+ "Y": -6784,
+ "Z": 41472,
+ "Room": 5
+ },
{
"X": 62976,
"Y": -4096,
@@ -2685,6 +2932,13 @@
"Room": 0,
"InvalidatesRoom": true
},
+ {
+ "X": 43520,
+ "Y": -14848,
+ "Z": 55808,
+ "Room": 153,
+ "TargetType": 1
+ },
{
"X": 38400,
"Y": -21504,
@@ -2792,6 +3046,27 @@
"Room": 22,
"InvalidatesRoom": true
},
+ {
+ "X": 39424,
+ "Y": -21504,
+ "Z": 59904,
+ "Room": 22,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": -21504,
+ "Z": 58880,
+ "Room": 22,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": -21504,
+ "Z": 59904,
+ "Room": 22,
+ "Validated": false
+ },
{
"X": 38400,
"Y": -23040,
@@ -2806,6 +3081,62 @@
"Room": 122,
"InvalidatesRoom": true
},
+ {
+ "X": 37376,
+ "Y": -20736,
+ "Z": 59904,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 37376,
+ "Y": -20736,
+ "Z": 58880,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": -20736,
+ "Z": 58880,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": -19968,
+ "Z": 58880,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": -19968,
+ "Z": 58880,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -19968,
+ "Z": 58880,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -19968,
+ "Z": 57856,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -20736,
+ "Z": 55808,
+ "Room": 122,
+ "Validated": false
+ },
{
"X": 57856,
"Y": -20224,
@@ -3164,6 +3495,20 @@
"Z": 20992,
"Room": 1
},
+ {
+ "X": 56832,
+ "Y": 12800,
+ "Z": 68096,
+ "Room": 5,
+ "TargetType": 1
+ },
+ {
+ "X": 55808,
+ "Y": 12800,
+ "Z": 68096,
+ "Room": 5,
+ "TargetType": 1
+ },
{
"X": 71168,
"Y": -2432,
@@ -4440,13 +4785,6 @@
"Z": 39424,
"Room": 41
},
- {
- "X": 18944,
- "Y": -1792,
- "Z": 58880,
- "Room": 44,
- "InvalidatesRoom": true
- },
{
"X": 17920,
"Y": -5632,
@@ -4710,6 +5048,13 @@
"Z": 25088,
"Room": 44
},
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 38400,
+ "Room": 54,
+ "TargetType": 1
+ },
{
"X": 67072,
"Y": -4864,
@@ -4722,6 +5067,12 @@
"Z": 16896,
"Room": 44
},
+ {
+ "X": 71168,
+ "Y": -3840,
+ "Z": 18944,
+ "Room": 44
+ },
{
"X": 59904,
"Y": 512,
@@ -4735,23 +5086,77 @@
"Room": 99
},
{
- "X": 16896,
- "Y": -768,
- "Z": 40448,
- "Room": 8,
- "InvalidatesRoom": true
+ "X": 16896,
+ "Y": -768,
+ "Z": 40448,
+ "Room": 8,
+ "InvalidatesRoom": true
+ },
+ {
+ "X": 3584,
+ "Y": 1280,
+ "Z": 83456,
+ "Room": 80,
+ "InvalidatesRoom": true
+ },
+ {
+ "X": 64000,
+ "Y": -9472,
+ "Z": 38400,
+ "Room": 134
+ },
+ {
+ "X": 62976,
+ "Y": -9472,
+ "Z": 38400,
+ "Room": 134
+ },
+ {
+ "X": 62976,
+ "Y": -9472,
+ "Z": 39424,
+ "Room": 134
+ },
+ {
+ "X": 61952,
+ "Y": -9472,
+ "Z": 39424,
+ "Room": 134
+ },
+ {
+ "X": 60928,
+ "Y": -9472,
+ "Z": 39424,
+ "Room": 134
+ },
+ {
+ "X": 59904,
+ "Y": -9472,
+ "Z": 39424,
+ "Room": 134
+ },
+ {
+ "X": 59904,
+ "Y": -9472,
+ "Z": 38400,
+ "Room": 134
+ },
+ {
+ "X": 60928,
+ "Y": -9472,
+ "Z": 38400,
+ "Room": 134
},
{
- "X": 3584,
- "Y": 1280,
- "Z": 83456,
- "Room": 80,
- "InvalidatesRoom": true
+ "X": 59904,
+ "Y": -9472,
+ "Z": 37376,
+ "Room": 134
},
{
- "X": 64000,
+ "X": 60928,
"Y": -9472,
- "Z": 38400,
+ "Z": 37376,
"Room": 134
},
{
@@ -5064,6 +5469,12 @@
"Room": 6,
"InvalidatesRoom": true
},
+ {
+ "X": 37376,
+ "Y": 6144,
+ "Z": 60928,
+ "Room": 132
+ },
{
"X": 49664,
"Y": -1024,
@@ -5177,6 +5588,37 @@
"Z": 47616,
"Room": 28
},
+ {
+ "X": 27136,
+ "Y": -2304,
+ "Z": 48640,
+ "Room": 135
+ },
+ {
+ "X": 42496,
+ "Y": -2048,
+ "Z": 29184,
+ "Room": 105
+ },
+ {
+ "X": 45568,
+ "Y": -2048,
+ "Z": 29184,
+ "Room": 105
+ },
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 29184,
+ "Room": 105
+ },
+ {
+ "X": 28160,
+ "Y": 3584,
+ "Z": 74240,
+ "Room": 89,
+ "TargetType": 1
+ },
{
"X": 27136,
"Y": -1920,
@@ -5313,6 +5755,20 @@
"Room": 129,
"InvalidatesRoom": true
},
+ {
+ "X": 16896,
+ "Y": -4736,
+ "Z": 45568,
+ "Room": 129,
+ "Validated": false
+ },
+ {
+ "X": 17920,
+ "Y": -4736,
+ "Z": 45568,
+ "Room": 129,
+ "Validated": false
+ },
{
"X": 22016,
"Y": 4864,
@@ -5341,6 +5797,13 @@
"Room": 150,
"InvalidatesRoom": true
},
+ {
+ "X": 18944,
+ "Y": -7936,
+ "Z": 47616,
+ "Room": 150,
+ "Validated": false
+ },
{
"X": 24064,
"Y": -4864,
@@ -5669,6 +6132,41 @@
"Room": 13,
"InvalidatesRoom": true
},
+ {
+ "X": 29184,
+ "Y": -7680,
+ "Z": 3584,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": -7040,
+ "Z": 4608,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": -6656,
+ "Z": 4608,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": -6272,
+ "Z": 5632,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": -6144,
+ "Z": 6656,
+ "Room": 13,
+ "Validated": false
+ },
{
"X": 41409,
"Y": -3546,
@@ -6298,6 +6796,12 @@
"Z": 56832,
"Room": 11
},
+ {
+ "X": 29184,
+ "Y": 4608,
+ "Z": 58880,
+ "Room": 11
+ },
{
"X": 45568,
"Y": 7424,
@@ -6347,13 +6851,6 @@
"Room": 23,
"InvalidatesRoom": true
},
- {
- "X": 39449,
- "Y": 11142,
- "Z": 49618,
- "Room": 83,
- "InvalidatesRoom": true
- },
{
"X": 21995,
"Y": -6707,
@@ -6389,12 +6886,6 @@
"Room": 44,
"InvalidatesRoom": true
},
- {
- "X": 54784,
- "Y": 7680,
- "Z": 73216,
- "Room": 45
- },
{
"X": 46592,
"Y": 5632,
@@ -6429,6 +6920,12 @@
"Z": 45519,
"Room": 78
},
+ {
+ "X": 41472,
+ "Y": 2304,
+ "Z": 45568,
+ "Room": 2
+ },
{
"X": 32256,
"Y": 8192,
@@ -6436,20 +6933,6 @@
"Room": 82,
"InvalidatesRoom": true
},
- {
- "X": 42496,
- "Y": 11520,
- "Z": 49664,
- "Room": 84,
- "InvalidatesRoom": true
- },
- {
- "X": 61952,
- "Y": 7936,
- "Z": 67072,
- "Room": 86,
- "InvalidatesRoom": true
- },
{
"X": 65024,
"Y": 7936,
@@ -6544,13 +7027,6 @@
"Room": 109,
"InvalidatesRoom": true
},
- {
- "X": 43520,
- "Y": 11008,
- "Z": 44544,
- "Room": 110,
- "InvalidatesRoom": true
- },
{
"X": 51712,
"Y": 7296,
@@ -6802,11 +7278,40 @@
],
"CITY.TR2": [
{
- "X": 7661,
- "Y": -8999,
- "Z": 48206,
- "Room": 42,
- "InvalidatesRoom": true
+ "X": 7680,
+ "Y": -8192,
+ "Z": 46592,
+ "Room": 100
+ },
+ {
+ "X": 9728,
+ "Y": -8704,
+ "Z": 47616,
+ "Room": 42
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 44
+ },
+ {
+ "X": 75264,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 44
+ },
+ {
+ "X": 70144,
+ "Y": -1792,
+ "Z": 47616,
+ "Room": 44
+ },
+ {
+ "X": 71168,
+ "Y": -1792,
+ "Z": 46592,
+ "Room": 44
},
{
"X": 23040,
@@ -7301,12 +7806,6 @@
"Z": 42496,
"Room": 21
},
- {
- "X": 60111,
- "Y": -11008,
- "Z": 61750,
- "Room": 12
- },
{
"X": 43668,
"Y": -1202,
@@ -7461,24 +7960,6 @@
"Y": 768,
"Z": 67884,
"Room": 5
- },
- {
- "X": 58819,
- "Y": -12032,
- "Z": 65900,
- "Room": 12
- },
- {
- "X": 59830,
- "Y": -12251,
- "Z": 66146,
- "Room": 12
- },
- {
- "X": 58121,
- "Y": -11008,
- "Z": 65779,
- "Room": 12
}
],
"STPAUL.TR2": [
@@ -7631,6 +8112,69 @@
"Y": -5120,
"Z": 58050,
"Room": 55
+ },
+ {
+ "X": 45568,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 46592,
+ "Y": 5632,
+ "Z": 53760,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 46592,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 46592,
+ "Y": 5632,
+ "Z": 55808,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 47616,
+ "Y": 5632,
+ "Z": 55808,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 47616,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 48640,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 48640,
+ "Y": 5632,
+ "Z": 53760,
+ "Room": 58,
+ "TargetType": 1
+ },
+ {
+ "X": 49664,
+ "Y": 5632,
+ "Z": 53760,
+ "Room": 58,
+ "TargetType": 1
}
]
}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR3/Locations/routes.json b/TRRandomizerCore/Resources/TR3/Locations/routes.json
index 7a73a41bf..97c82f7da 100644
--- a/TRRandomizerCore/Resources/TR3/Locations/routes.json
+++ b/TRRandomizerCore/Resources/TR3/Locations/routes.json
@@ -1,2 +1,16986 @@
{
+ "JUNGLE.TR2": [
+ {
+ "X": 28160,
+ "Y": -256,
+ "Z": 28160,
+ "Room": 4,
+ "KeyItemsLow": "10590",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20992,
+ "Y": -1280,
+ "Z": 33280,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": 2816,
+ "Z": 32256,
+ "Room": 21
+ },
+ {
+ "X": 28160,
+ "Y": 6528,
+ "Z": 37376,
+ "Room": 2
+ },
+ {
+ "X": 28160,
+ "Y": 5888,
+ "Z": 39424,
+ "Room": 21
+ },
+ {
+ "X": 28160,
+ "Y": 5888,
+ "Z": 40448,
+ "Room": 20
+ },
+ {
+ "X": 28160,
+ "Y": 8832,
+ "Z": 40448,
+ "Room": 22
+ },
+ {
+ "X": 28160,
+ "Y": 9600,
+ "Z": 41472,
+ "Room": 23
+ },
+ {
+ "X": 29184,
+ "Y": 13440,
+ "Z": 46592,
+ "Room": 17
+ },
+ {
+ "X": 32256,
+ "Y": 12800,
+ "Z": 52736,
+ "Room": 18,
+ "Validated": false
+ },
+ {
+ "X": 25088,
+ "Y": 17024,
+ "Z": 58880,
+ "Room": 29
+ },
+ {
+ "X": 29184,
+ "Y": 19584,
+ "Z": 54784,
+ "Room": 16
+ },
+ {
+ "X": 29184,
+ "Y": 22656,
+ "Z": 58880,
+ "Room": 26,
+ "KeyItemsLow": "10590",
+ "Range": "Large"
+ },
+ {
+ "X": 25088,
+ "Y": 24064,
+ "Z": 59904,
+ "Room": 135
+ },
+ {
+ "X": 25088,
+ "Y": 26624,
+ "Z": 56832,
+ "Room": 165,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 25088,
+ "Y": 26624,
+ "Z": 54784,
+ "Room": 166,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 26112,
+ "Y": 14336,
+ "Z": 39424,
+ "Room": 168,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 22016,
+ "Y": 26112,
+ "Z": 59904,
+ "Room": 134
+ },
+ {
+ "X": 19968,
+ "Y": 26496,
+ "Z": 61952,
+ "Room": 130
+ },
+ {
+ "X": 17920,
+ "Y": 24064,
+ "Z": 56832,
+ "Room": 141
+ },
+ {
+ "X": 17920,
+ "Y": 21248,
+ "Z": 53760,
+ "Room": 142,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": 23808,
+ "Z": 67072,
+ "Room": 3,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": 23808,
+ "Z": 68096,
+ "Room": 36,
+ "Validated": false
+ },
+ {
+ "X": 24064,
+ "Y": 23808,
+ "Z": 67072,
+ "Room": 131
+ },
+ {
+ "X": 25088,
+ "Y": 22272,
+ "Z": 67072,
+ "Room": 137,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": 22272,
+ "Z": 60928,
+ "Room": 136,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": 22016,
+ "Z": 70144,
+ "Room": 25
+ },
+ {
+ "X": 26112,
+ "Y": 27136,
+ "Z": 64000,
+ "Room": 129
+ },
+ {
+ "X": 27136,
+ "Y": 27136,
+ "Z": 64000,
+ "Room": 147
+ },
+ {
+ "X": 31232,
+ "Y": 26496,
+ "Z": 77312,
+ "Room": 31
+ },
+ {
+ "X": 32256,
+ "Y": 26880,
+ "Z": 79360,
+ "Room": 32
+ },
+ {
+ "X": 34304,
+ "Y": 27136,
+ "Z": 79360,
+ "Room": 1
+ },
+ {
+ "X": 36352,
+ "Y": 27136,
+ "Z": 77312,
+ "Room": 83
+ },
+ {
+ "X": 38400,
+ "Y": 29824,
+ "Z": 73216,
+ "Room": 79
+ },
+ {
+ "X": 38400,
+ "Y": 29696,
+ "Z": 68096,
+ "Room": 158
+ },
+ {
+ "X": 38400,
+ "Y": 30720,
+ "Z": 58880,
+ "Room": 37
+ },
+ {
+ "X": 38400,
+ "Y": 30592,
+ "Z": 49664,
+ "Room": 157
+ },
+ {
+ "X": 36352,
+ "Y": 29440,
+ "Z": 48640,
+ "Room": 100
+ },
+ {
+ "X": 34304,
+ "Y": 29184,
+ "Z": 55808,
+ "Room": 155
+ },
+ {
+ "X": 33280,
+ "Y": 27136,
+ "Z": 60928,
+ "Room": 146
+ },
+ {
+ "X": 29184,
+ "Y": 25344,
+ "Z": 61952,
+ "Room": 27
+ },
+ {
+ "X": 29184,
+ "Y": 26368,
+ "Z": 59904,
+ "Room": 149
+ },
+ {
+ "X": 27136,
+ "Y": 25600,
+ "Z": 61952,
+ "Room": 148
+ },
+ {
+ "X": 40448,
+ "Y": 25856,
+ "Z": 59904,
+ "Room": 30
+ },
+ {
+ "X": 42496,
+ "Y": 23424,
+ "Z": 57856,
+ "Room": 34,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": 25600,
+ "Z": 59904,
+ "Room": 40
+ },
+ {
+ "X": 46592,
+ "Y": 27520,
+ "Z": 59904,
+ "Room": 5
+ },
+ {
+ "X": 43520,
+ "Y": 25856,
+ "Z": 54784,
+ "Room": 6
+ },
+ {
+ "X": 54784,
+ "Y": 27520,
+ "Z": 58880,
+ "Room": 42
+ },
+ {
+ "X": 54784,
+ "Y": 27392,
+ "Z": 62976,
+ "Room": 43
+ },
+ {
+ "X": 52736,
+ "Y": 27904,
+ "Z": 65024,
+ "Room": 41
+ },
+ {
+ "X": 49664,
+ "Y": 27904,
+ "Z": 65024,
+ "Room": 164
+ },
+ {
+ "X": 59904,
+ "Y": 25728,
+ "Z": 65024,
+ "Room": 44
+ },
+ {
+ "X": 60928,
+ "Y": 25344,
+ "Z": 66048,
+ "Room": 45
+ },
+ {
+ "X": 62976,
+ "Y": 25600,
+ "Z": 65024,
+ "Room": 47
+ },
+ {
+ "X": 65024,
+ "Y": 24832,
+ "Z": 62976,
+ "Room": 28
+ },
+ {
+ "X": 74240,
+ "Y": 24064,
+ "Z": 60928,
+ "Room": 39
+ },
+ {
+ "X": 75264,
+ "Y": 25344,
+ "Z": 65024,
+ "Room": 46
+ },
+ {
+ "X": 77312,
+ "Y": 24832,
+ "Z": 58880,
+ "Room": 48
+ },
+ {
+ "X": 81408,
+ "Y": 25856,
+ "Z": 53760,
+ "Room": 54
+ },
+ {
+ "X": 83456,
+ "Y": 22528,
+ "Z": 58880,
+ "Room": 65,
+ "Validated": false
+ },
+ {
+ "X": 86528,
+ "Y": 25088,
+ "Z": 48640,
+ "Room": 51
+ },
+ {
+ "X": 91648,
+ "Y": 24832,
+ "Z": 46592,
+ "Room": 52
+ },
+ {
+ "X": 91648,
+ "Y": 24832,
+ "Z": 41472,
+ "Room": 53
+ },
+ {
+ "X": 84480,
+ "Y": 24064,
+ "Z": 37376,
+ "Room": 61
+ },
+ {
+ "X": 89600,
+ "Y": 23296,
+ "Z": 43520,
+ "Room": 59
+ },
+ {
+ "X": 90624,
+ "Y": 23680,
+ "Z": 43520,
+ "Room": 60
+ },
+ {
+ "X": 86528,
+ "Y": 24448,
+ "Z": 43520,
+ "Room": 49
+ },
+ {
+ "X": 89600,
+ "Y": 22656,
+ "Z": 47616,
+ "Room": 58
+ },
+ {
+ "X": 87552,
+ "Y": 22400,
+ "Z": 46592,
+ "Room": 67
+ },
+ {
+ "X": 89600,
+ "Y": 22528,
+ "Z": 48640,
+ "Room": 66
+ },
+ {
+ "X": 89600,
+ "Y": 22528,
+ "Z": 51712,
+ "Room": 68
+ },
+ {
+ "X": 87552,
+ "Y": 24064,
+ "Z": 54784,
+ "Room": 72
+ },
+ {
+ "X": 87552,
+ "Y": 24064,
+ "Z": 56832,
+ "Room": 76
+ },
+ {
+ "X": 91648,
+ "Y": 23552,
+ "Z": 59904,
+ "Room": 74
+ },
+ {
+ "X": 89600,
+ "Y": 25984,
+ "Z": 55808,
+ "Room": 70
+ },
+ {
+ "X": 90624,
+ "Y": 26368,
+ "Z": 59904,
+ "Room": 71
+ },
+ {
+ "X": 87552,
+ "Y": 27392,
+ "Z": 54784,
+ "Room": 88
+ },
+ {
+ "X": 82432,
+ "Y": 27392,
+ "Z": 54784,
+ "Room": 87
+ },
+ {
+ "X": 88576,
+ "Y": 23552,
+ "Z": 59904,
+ "Room": 73
+ },
+ {
+ "X": 87552,
+ "Y": 23552,
+ "Z": 60928,
+ "Room": 10
+ },
+ {
+ "X": 87552,
+ "Y": 23552,
+ "Z": 61952,
+ "Room": 90
+ },
+ {
+ "X": 88576,
+ "Y": 23808,
+ "Z": 65024,
+ "Room": 161
+ },
+ {
+ "X": 89600,
+ "Y": 23808,
+ "Z": 65024,
+ "Room": 162
+ },
+ {
+ "X": 92672,
+ "Y": 22528,
+ "Z": 60928,
+ "Room": 14
+ },
+ {
+ "X": 93696,
+ "Y": 19712,
+ "Z": 62976,
+ "Room": 75
+ },
+ {
+ "X": 94720,
+ "Y": 20224,
+ "Z": 61952,
+ "Room": 78
+ },
+ {
+ "X": 95744,
+ "Y": 20224,
+ "Z": 61952,
+ "Room": 77
+ },
+ {
+ "X": 94720,
+ "Y": 17152,
+ "Z": 70144,
+ "Room": 143
+ },
+ {
+ "X": 90624,
+ "Y": 28416,
+ "Z": 68096,
+ "Room": 62,
+ "KeyItemsLow": "10590",
+ "Range": "Medium"
+ },
+ {
+ "X": 90368,
+ "Y": 28416,
+ "Z": 68096,
+ "Room": 62,
+ "KeyItemsLow": "10590",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 82432,
+ "Y": 27776,
+ "Z": 70144,
+ "Room": 80
+ },
+ {
+ "X": 82432,
+ "Y": 26112,
+ "Z": 66048,
+ "Room": 144
+ },
+ {
+ "X": 82432,
+ "Y": 25728,
+ "Z": 65024,
+ "Room": 50
+ },
+ {
+ "X": 82432,
+ "Y": 27008,
+ "Z": 61952,
+ "Room": 99
+ },
+ {
+ "X": 74240,
+ "Y": 27392,
+ "Z": 71168,
+ "Room": 63
+ },
+ {
+ "X": 71168,
+ "Y": 27136,
+ "Z": 75264,
+ "Room": 151
+ },
+ {
+ "X": 76288,
+ "Y": 24064,
+ "Z": 76288,
+ "Room": 152,
+ "Validated": false
+ },
+ {
+ "X": 71168,
+ "Y": 27648,
+ "Z": 78336,
+ "Room": 154
+ },
+ {
+ "X": 66048,
+ "Y": 28160,
+ "Z": 78336,
+ "Room": 81
+ },
+ {
+ "X": 52736,
+ "Y": 30208,
+ "Z": 78336,
+ "Room": 0
+ },
+ {
+ "X": 58880,
+ "Y": 25984,
+ "Z": 77312,
+ "Room": 84
+ },
+ {
+ "X": 59904,
+ "Y": 23936,
+ "Z": 76288,
+ "Room": 86
+ },
+ {
+ "X": 53760,
+ "Y": 22272,
+ "Z": 76288,
+ "Room": 145,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": 24064,
+ "Z": 80384,
+ "Room": 7
+ },
+ {
+ "X": 51712,
+ "Y": 24064,
+ "Z": 79360,
+ "Room": 85
+ },
+ {
+ "X": 48640,
+ "Y": 23808,
+ "Z": 70144,
+ "Room": 163
+ },
+ {
+ "X": 45568,
+ "Y": 27136,
+ "Z": 80384,
+ "Room": 89
+ },
+ {
+ "X": 44544,
+ "Y": 27136,
+ "Z": 82432,
+ "Room": 91
+ },
+ {
+ "X": 42496,
+ "Y": 27136,
+ "Z": 82432,
+ "Room": 95
+ },
+ {
+ "X": 41472,
+ "Y": 25856,
+ "Z": 80384,
+ "Room": 98
+ },
+ {
+ "X": 38400,
+ "Y": 28160,
+ "Z": 82432,
+ "Room": 113
+ },
+ {
+ "X": 36352,
+ "Y": 27904,
+ "Z": 86528,
+ "Room": 160
+ },
+ {
+ "X": 41472,
+ "Y": 27648,
+ "Z": 93696,
+ "Room": 128
+ },
+ {
+ "X": 43520,
+ "Y": 28160,
+ "Z": 94720,
+ "Room": 114
+ },
+ {
+ "X": 43520,
+ "Y": 28160,
+ "Z": 89600,
+ "Room": 105
+ },
+ {
+ "X": 45568,
+ "Y": 27904,
+ "Z": 89600,
+ "Room": 106
+ },
+ {
+ "X": 47616,
+ "Y": 29696,
+ "Z": 91648,
+ "Room": 102
+ },
+ {
+ "X": 56832,
+ "Y": 27904,
+ "Z": 90624,
+ "Room": 103
+ },
+ {
+ "X": 52736,
+ "Y": 30208,
+ "Z": 85504,
+ "Room": 107
+ },
+ {
+ "X": 50688,
+ "Y": 27904,
+ "Z": 82432,
+ "Room": 109
+ },
+ {
+ "X": 47616,
+ "Y": 27520,
+ "Z": 82432,
+ "Room": 110,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": 27904,
+ "Z": 96768,
+ "Room": 117
+ },
+ {
+ "X": 42496,
+ "Y": 27904,
+ "Z": 84480,
+ "Room": 153,
+ "KeyItemsLow": "10590"
+ },
+ {
+ "X": 42496,
+ "Y": 27904,
+ "Z": 84224,
+ "Room": 153,
+ "KeyItemsLow": "10590",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 43520,
+ "Y": 27648,
+ "Z": 84480,
+ "Room": 93
+ },
+ {
+ "X": 46592,
+ "Y": 27648,
+ "Z": 83456,
+ "Room": 133
+ },
+ {
+ "X": 45568,
+ "Y": 25344,
+ "Z": 84480,
+ "Room": 94
+ },
+ {
+ "X": 43520,
+ "Y": 25728,
+ "Z": 84480,
+ "Room": 92
+ },
+ {
+ "X": 43520,
+ "Y": 25728,
+ "Z": 86528,
+ "Room": 96
+ },
+ {
+ "X": 43520,
+ "Y": 24064,
+ "Z": 86528,
+ "Room": 97
+ },
+ {
+ "X": 41472,
+ "Y": 22272,
+ "Z": 80384,
+ "Room": 150,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": 22272,
+ "Z": 77312,
+ "Room": 156,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": 24064,
+ "Z": 86528,
+ "Room": 101
+ },
+ {
+ "X": 43520,
+ "Y": 22272,
+ "Z": 92672,
+ "Room": 159,
+ "Validated": false
+ },
+ {
+ "X": 36352,
+ "Y": 30464,
+ "Z": 88576,
+ "Room": 115
+ },
+ {
+ "X": 30208,
+ "Y": 31232,
+ "Z": 88576,
+ "Room": 116
+ },
+ {
+ "X": 28160,
+ "Y": 30848,
+ "Z": 78336,
+ "Room": 118
+ },
+ {
+ "X": 24064,
+ "Y": 30208,
+ "Z": 78336,
+ "Room": 119
+ },
+ {
+ "X": 24064,
+ "Y": 26880,
+ "Z": 72192,
+ "Room": 108
+ },
+ {
+ "X": 26112,
+ "Y": 26496,
+ "Z": 72192,
+ "Room": 104
+ },
+ {
+ "X": 25088,
+ "Y": 26368,
+ "Z": 76288,
+ "Room": 124
+ },
+ {
+ "X": 23040,
+ "Y": 26368,
+ "Z": 76288,
+ "Room": 122
+ },
+ {
+ "X": 25088,
+ "Y": 26368,
+ "Z": 69120,
+ "Room": 125
+ },
+ {
+ "X": 25088,
+ "Y": 23808,
+ "Z": 71168,
+ "Room": 132
+ },
+ {
+ "X": 20992,
+ "Y": 21376,
+ "Z": 70144,
+ "Room": 123,
+ "Validated": false
+ },
+ {
+ "X": 20992,
+ "Y": 23808,
+ "Z": 76288,
+ "Room": 38
+ },
+ {
+ "X": 18944,
+ "Y": 23808,
+ "Z": 76288,
+ "Room": 126
+ },
+ {
+ "X": 11776,
+ "Y": 22272,
+ "Z": 77312,
+ "Room": 120,
+ "Validated": false
+ },
+ {
+ "X": 16896,
+ "Y": 25600,
+ "Z": 76288,
+ "Room": 127
+ },
+ {
+ "X": 10752,
+ "Y": 26240,
+ "Z": 73216,
+ "Room": 24
+ },
+ {
+ "X": 10752,
+ "Y": 26880,
+ "Z": 77312,
+ "Room": 82
+ }
+ ],
+ "TEMPLE.TR2": [
+ {
+ "X": 94720,
+ "Y": -512,
+ "Z": 26112,
+ "Room": 18,
+ "KeyItemsLow": "11539,11641,11636,11648,11708,11723,11692",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 92672,
+ "Y": -640,
+ "Z": 35328,
+ "Room": 16
+ },
+ {
+ "X": 85504,
+ "Y": 1280,
+ "Z": 35328,
+ "Room": 21
+ },
+ {
+ "X": 83456,
+ "Y": 2304,
+ "Z": 33280,
+ "Room": 22
+ },
+ {
+ "X": 86528,
+ "Y": 2048,
+ "Z": 30208,
+ "Room": 23
+ },
+ {
+ "X": 83456,
+ "Y": 2304,
+ "Z": 39424,
+ "Room": 51
+ },
+ {
+ "X": 84480,
+ "Y": 2432,
+ "Z": 42496,
+ "Room": 50
+ },
+ {
+ "X": 85504,
+ "Y": 2304,
+ "Z": 42496,
+ "Room": 56
+ },
+ {
+ "X": 88576,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 57
+ },
+ {
+ "X": 92672,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 54
+ },
+ {
+ "X": 92672,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 55
+ },
+ {
+ "X": 94720,
+ "Y": 1280,
+ "Z": 43520,
+ "Room": 59
+ },
+ {
+ "X": 96768,
+ "Y": 1152,
+ "Z": 44544,
+ "Room": 61
+ },
+ {
+ "X": 97792,
+ "Y": 1152,
+ "Z": 46592,
+ "Room": 60
+ },
+ {
+ "X": 96768,
+ "Y": 1280,
+ "Z": 50688,
+ "Room": 62
+ },
+ {
+ "X": 94720,
+ "Y": 512,
+ "Z": 52736,
+ "Room": 63
+ },
+ {
+ "X": 93696,
+ "Y": -384,
+ "Z": 52736,
+ "Room": 10
+ },
+ {
+ "X": 89600,
+ "Y": 1408,
+ "Z": 54784,
+ "Room": 9,
+ "Validated": false
+ },
+ {
+ "X": 85504,
+ "Y": 2688,
+ "Z": 56832,
+ "Room": 8,
+ "Validated": false
+ },
+ {
+ "X": 81408,
+ "Y": -256,
+ "Z": 58880,
+ "Room": 46
+ },
+ {
+ "X": 81408,
+ "Y": -256,
+ "Z": 46592,
+ "Room": 47
+ },
+ {
+ "X": 79360,
+ "Y": 2304,
+ "Z": 52736,
+ "Room": 80
+ },
+ {
+ "X": 79360,
+ "Y": -256,
+ "Z": 45568,
+ "Room": 44,
+ "KeyItemsLow": "11539,11641",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 76288,
+ "Y": -256,
+ "Z": 46592,
+ "Room": 35
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 48640,
+ "Room": 48
+ },
+ {
+ "X": 77312,
+ "Y": -640,
+ "Z": 58880,
+ "Room": 0
+ },
+ {
+ "X": 76288,
+ "Y": -1920,
+ "Z": 59904,
+ "Room": 35
+ },
+ {
+ "X": 80384,
+ "Y": -3072,
+ "Z": 59904,
+ "Room": 39
+ },
+ {
+ "X": 80384,
+ "Y": -3072,
+ "Z": 57856,
+ "Room": 49
+ },
+ {
+ "X": 76288,
+ "Y": -3584,
+ "Z": 60928,
+ "Room": 36
+ },
+ {
+ "X": 77312,
+ "Y": -5760,
+ "Z": 60928,
+ "Room": 40,
+ "Validated": false
+ },
+ {
+ "X": 68096,
+ "Y": -5632,
+ "Z": 59904,
+ "Room": 2,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": -5760,
+ "Z": 58880,
+ "Room": 34,
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": -9728,
+ "Z": 57856,
+ "Room": 33,
+ "Validated": false
+ },
+ {
+ "X": 77312,
+ "Y": -3584,
+ "Z": 45568,
+ "Room": 38,
+ "Range": "Medium"
+ },
+ {
+ "X": 78336,
+ "Y": -5760,
+ "Z": 45568,
+ "Room": 6
+ },
+ {
+ "X": 77312,
+ "Y": -3328,
+ "Z": 44544,
+ "Room": 43,
+ "KeyItemsHigh": "11539,11641",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80384,
+ "Y": -3328,
+ "Z": 44544,
+ "Room": 7
+ },
+ {
+ "X": 82432,
+ "Y": -3328,
+ "Z": 43520,
+ "Room": 52
+ },
+ {
+ "X": 82432,
+ "Y": -3328,
+ "Z": 40448,
+ "Room": 53
+ },
+ {
+ "X": 82432,
+ "Y": -3584,
+ "Z": 37376,
+ "Room": 12
+ },
+ {
+ "X": 84480,
+ "Y": -3200,
+ "Z": 33280,
+ "Room": 25
+ },
+ {
+ "X": 86528,
+ "Y": -3328,
+ "Z": 33280,
+ "Room": 19
+ },
+ {
+ "X": 89600,
+ "Y": -3328,
+ "Z": 37376,
+ "Room": 17
+ },
+ {
+ "X": 83456,
+ "Y": -3072,
+ "Z": 24064,
+ "Room": 67
+ },
+ {
+ "X": 83456,
+ "Y": -3840,
+ "Z": 23040,
+ "Room": 69
+ },
+ {
+ "X": 78336,
+ "Y": -3328,
+ "Z": 24064,
+ "Room": 68
+ },
+ {
+ "X": 77312,
+ "Y": -3072,
+ "Z": 24064,
+ "Room": 70
+ },
+ {
+ "X": 75264,
+ "Y": -1024,
+ "Z": 25088,
+ "Room": 24
+ },
+ {
+ "X": 78336,
+ "Y": 1408,
+ "Z": 27136,
+ "Room": 31
+ },
+ {
+ "X": 79360,
+ "Y": -128,
+ "Z": 24064,
+ "Room": 66
+ },
+ {
+ "X": 82432,
+ "Y": -128,
+ "Z": 23040,
+ "Room": 65
+ },
+ {
+ "X": 75264,
+ "Y": -3072,
+ "Z": 27136,
+ "Room": 27
+ },
+ {
+ "X": 81408,
+ "Y": -6912,
+ "Z": 34304,
+ "Room": 28,
+ "Validated": false
+ },
+ {
+ "X": 82432,
+ "Y": -6016,
+ "Z": 29184,
+ "Room": 26,
+ "Validated": false
+ },
+ {
+ "X": 73216,
+ "Y": -3072,
+ "Z": 29184,
+ "Room": 29,
+ "KeyItemsLow": "11636,11648",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72192,
+ "Y": -2944,
+ "Z": 31232,
+ "Room": 30
+ },
+ {
+ "X": 72192,
+ "Y": -768,
+ "Z": 35328,
+ "Room": 71
+ },
+ {
+ "X": 69120,
+ "Y": -768,
+ "Z": 37376,
+ "Room": 75
+ },
+ {
+ "X": 67072,
+ "Y": -768,
+ "Z": 38400,
+ "Room": 72
+ },
+ {
+ "X": 65024,
+ "Y": -512,
+ "Z": 38400,
+ "Room": 73
+ },
+ {
+ "X": 65024,
+ "Y": -256,
+ "Z": 39424,
+ "Room": 74
+ },
+ {
+ "X": 65024,
+ "Y": 3456,
+ "Z": 44544,
+ "Room": 76
+ },
+ {
+ "X": 65024,
+ "Y": 7168,
+ "Z": 48640,
+ "Room": 77,
+ "KeyItemsLow": "11539"
+ },
+ {
+ "X": 64768,
+ "Y": 7168,
+ "Z": 48640,
+ "Room": 77,
+ "KeyItemsLow": "11539",
+ "Range": "Medium"
+ },
+ {
+ "X": 64768,
+ "Y": 7168,
+ "Z": 48896,
+ "Room": 77,
+ "KeyItemsLow": "11539,11641",
+ "Range": "Large"
+ },
+ {
+ "X": 64256,
+ "Y": 7168,
+ "Z": 48640,
+ "Room": 77,
+ "KeyItemsLow": "11539,11641",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64256,
+ "Y": 7168,
+ "Z": 48384,
+ "Room": 77,
+ "KeyItemsLow": "11539,11641,11708,11723,11692",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": 7168,
+ "Z": 48384,
+ "Room": 77,
+ "KeyItemsLow": "11636,11648",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": 7168,
+ "Z": 52736,
+ "Room": 79
+ },
+ {
+ "X": 67072,
+ "Y": -256,
+ "Z": 48640,
+ "Room": 224,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 61952,
+ "Y": 7168,
+ "Z": 53760,
+ "Room": 81
+ },
+ {
+ "X": 65024,
+ "Y": 5120,
+ "Z": 57856,
+ "Room": 83
+ },
+ {
+ "X": 59904,
+ "Y": 5120,
+ "Z": 54784,
+ "Room": 84
+ },
+ {
+ "X": 59904,
+ "Y": 7168,
+ "Z": 55808,
+ "Room": 82
+ },
+ {
+ "X": 58112,
+ "Y": 6912,
+ "Z": 52992,
+ "Room": 202,
+ "KeyItemsHigh": "11539",
+ "KeyItemsLow": "11641"
+ },
+ {
+ "X": 58112,
+ "Y": 6912,
+ "Z": 52736,
+ "Room": 202,
+ "KeyItemsLow": "11641",
+ "Range": "Medium"
+ },
+ {
+ "X": 58112,
+ "Y": 6912,
+ "Z": 52480,
+ "Room": 202,
+ "KeyItemsHigh": "11648",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": 5632,
+ "Z": 51712,
+ "Room": 89
+ },
+ {
+ "X": 52736,
+ "Y": 6912,
+ "Z": 50688,
+ "Room": 190
+ },
+ {
+ "X": 51712,
+ "Y": 6912,
+ "Z": 48640,
+ "Room": 188
+ },
+ {
+ "X": 47616,
+ "Y": 6912,
+ "Z": 48640,
+ "Room": 189
+ },
+ {
+ "X": 48640,
+ "Y": 7936,
+ "Z": 45568,
+ "Room": 191
+ },
+ {
+ "X": 49664,
+ "Y": 6912,
+ "Z": 43520,
+ "Room": 187
+ },
+ {
+ "X": 49664,
+ "Y": 6912,
+ "Z": 40448,
+ "Room": 169
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 36352,
+ "Room": 171
+ },
+ {
+ "X": 49664,
+ "Y": 6656,
+ "Z": 32256,
+ "Room": 170
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 31232,
+ "Room": 172,
+ "KeyItemsHigh": "11539",
+ "Range": "Medium"
+ },
+ {
+ "X": 49664,
+ "Y": 8960,
+ "Z": 23040,
+ "Room": 173
+ },
+ {
+ "X": 52736,
+ "Y": 6656,
+ "Z": 20992,
+ "Room": 174
+ },
+ {
+ "X": 52736,
+ "Y": 4608,
+ "Z": 19968,
+ "Room": 175
+ },
+ {
+ "X": 50688,
+ "Y": 1280,
+ "Z": 23040,
+ "Room": 177
+ },
+ {
+ "X": 45568,
+ "Y": 1664,
+ "Z": 19968,
+ "Room": 176
+ },
+ {
+ "X": 39424,
+ "Y": 3456,
+ "Z": 18944,
+ "Room": 178
+ },
+ {
+ "X": 41472,
+ "Y": 3840,
+ "Z": 19968,
+ "Room": 181
+ },
+ {
+ "X": 44544,
+ "Y": 3840,
+ "Z": 18944,
+ "Room": 182
+ },
+ {
+ "X": 45568,
+ "Y": 3840,
+ "Z": 15872,
+ "Room": 183
+ },
+ {
+ "X": 49664,
+ "Y": 3840,
+ "Z": 15872,
+ "Room": 184
+ },
+ {
+ "X": 37376,
+ "Y": 1024,
+ "Z": 20992,
+ "Room": 180
+ },
+ {
+ "X": 33280,
+ "Y": 1024,
+ "Z": 22016,
+ "Room": 185
+ },
+ {
+ "X": 33280,
+ "Y": 1024,
+ "Z": 26112,
+ "Room": 200
+ },
+ {
+ "X": 41472,
+ "Y": 2560,
+ "Z": 27136,
+ "Room": 201
+ },
+ {
+ "X": 49664,
+ "Y": 6656,
+ "Z": 27136,
+ "Room": 203
+ },
+ {
+ "X": 46592,
+ "Y": 8448,
+ "Z": 46592,
+ "Room": 192
+ },
+ {
+ "X": 57600,
+ "Y": 8448,
+ "Z": 61952,
+ "Room": 85,
+ "KeyItemsHigh": "11641"
+ },
+ {
+ "X": 57856,
+ "Y": 8448,
+ "Z": 61952,
+ "Room": 85,
+ "KeyItemsHigh": "11641",
+ "Range": "Medium"
+ },
+ {
+ "X": 58112,
+ "Y": 8448,
+ "Z": 61952,
+ "Room": 85,
+ "KeyItemsLow": "11648",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59904,
+ "Y": 8192,
+ "Z": 62976,
+ "Room": 87
+ },
+ {
+ "X": 61952,
+ "Y": 8192,
+ "Z": 64000,
+ "Room": 88
+ },
+ {
+ "X": 57856,
+ "Y": 6912,
+ "Z": 63744,
+ "Room": 90
+ },
+ {
+ "X": 57600,
+ "Y": 6912,
+ "Z": 63744,
+ "Room": 90,
+ "KeyItemsHigh": "11539,11641",
+ "Range": "Large"
+ },
+ {
+ "X": 57600,
+ "Y": 6912,
+ "Z": 64000,
+ "Room": 90,
+ "KeyItemsHigh": "11636",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": 6784,
+ "Z": 73216,
+ "Room": 97
+ },
+ {
+ "X": 45568,
+ "Y": 4608,
+ "Z": 75264,
+ "Room": 98
+ },
+ {
+ "X": 50688,
+ "Y": 4864,
+ "Z": 73216,
+ "Room": 99
+ },
+ {
+ "X": 54784,
+ "Y": 4864,
+ "Z": 73216,
+ "Room": 100
+ },
+ {
+ "X": 57856,
+ "Y": 4864,
+ "Z": 74240,
+ "Room": 101
+ },
+ {
+ "X": 57856,
+ "Y": 4864,
+ "Z": 76288,
+ "Room": 105
+ },
+ {
+ "X": 57856,
+ "Y": 4864,
+ "Z": 78336,
+ "Room": 106
+ },
+ {
+ "X": 57856,
+ "Y": 4864,
+ "Z": 79360,
+ "Room": 107
+ },
+ {
+ "X": 57856,
+ "Y": 4864,
+ "Z": 81408,
+ "Room": 103
+ },
+ {
+ "X": 57856,
+ "Y": 4608,
+ "Z": 85504,
+ "Room": 104
+ },
+ {
+ "X": 57856,
+ "Y": 3840,
+ "Z": 88576,
+ "Room": 109
+ },
+ {
+ "X": 58880,
+ "Y": 3584,
+ "Z": 91648,
+ "Room": 118
+ },
+ {
+ "X": 60928,
+ "Y": 3584,
+ "Z": 91648,
+ "Room": 110
+ },
+ {
+ "X": 59904,
+ "Y": 3584,
+ "Z": 92672,
+ "Room": 121
+ },
+ {
+ "X": 59904,
+ "Y": 3584,
+ "Z": 95744,
+ "Room": 112
+ },
+ {
+ "X": 58880,
+ "Y": 3584,
+ "Z": 94720,
+ "Room": 119
+ },
+ {
+ "X": 55808,
+ "Y": 3840,
+ "Z": 95744,
+ "Room": 111
+ },
+ {
+ "X": 56832,
+ "Y": 3584,
+ "Z": 93696,
+ "Room": 120
+ },
+ {
+ "X": 59904,
+ "Y": 1280,
+ "Z": 92672,
+ "Room": 126
+ },
+ {
+ "X": 59904,
+ "Y": 1280,
+ "Z": 91648,
+ "Room": 122
+ },
+ {
+ "X": 56832,
+ "Y": 1280,
+ "Z": 92672,
+ "Room": 125
+ },
+ {
+ "X": 56832,
+ "Y": 1280,
+ "Z": 94720,
+ "Room": 123
+ },
+ {
+ "X": 55808,
+ "Y": -1536,
+ "Z": 92672,
+ "Room": 14
+ },
+ {
+ "X": 59904,
+ "Y": 1536,
+ "Z": 94720,
+ "Room": 123
+ },
+ {
+ "X": 58880,
+ "Y": 7168,
+ "Z": 92672,
+ "Room": 124,
+ "Validated": false
+ },
+ {
+ "X": 56832,
+ "Y": 7168,
+ "Z": 92672,
+ "Room": 128,
+ "Validated": false
+ },
+ {
+ "X": 54784,
+ "Y": 6912,
+ "Z": 93696,
+ "Room": 127,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": 7168,
+ "Z": 93696,
+ "Room": 137,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": 7168,
+ "Z": 94720,
+ "Room": 138,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": 5120,
+ "Z": 94720,
+ "Room": 136,
+ "KeyItemsLow": "11539"
+ },
+ {
+ "X": 52736,
+ "Y": 5120,
+ "Z": 94464,
+ "Room": 136,
+ "KeyItemsLow": "11539",
+ "Range": "Medium"
+ },
+ {
+ "X": 52480,
+ "Y": 5120,
+ "Z": 94464,
+ "Room": 136,
+ "KeyItemsLow": "11539",
+ "Range": "Large"
+ },
+ {
+ "X": 52480,
+ "Y": 5120,
+ "Z": 94976,
+ "Room": 136,
+ "KeyItemsLow": "11641",
+ "Range": "Medium"
+ },
+ {
+ "X": 52992,
+ "Y": 5120,
+ "Z": 94976,
+ "Room": 136,
+ "KeyItemsLow": "11641",
+ "Range": "Large"
+ },
+ {
+ "X": 51712,
+ "Y": 5120,
+ "Z": 93696,
+ "Room": 135
+ },
+ {
+ "X": 50688,
+ "Y": 5376,
+ "Z": 93696,
+ "Room": 132
+ },
+ {
+ "X": 50688,
+ "Y": 5376,
+ "Z": 94720,
+ "Room": 131
+ },
+ {
+ "X": 46592,
+ "Y": 7168,
+ "Z": 96768,
+ "Room": 130,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 7168,
+ "Z": 92672,
+ "Room": 129,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": 7168,
+ "Z": 96768,
+ "Room": 142,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": 7168,
+ "Z": 93696,
+ "Room": 143,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": 4608,
+ "Z": 95744,
+ "Room": 133
+ },
+ {
+ "X": 46592,
+ "Y": 4608,
+ "Z": 92672,
+ "Room": 134
+ },
+ {
+ "X": 38400,
+ "Y": 5120,
+ "Z": 92672,
+ "Room": 141
+ },
+ {
+ "X": 38400,
+ "Y": 5120,
+ "Z": 95744,
+ "Room": 140
+ },
+ {
+ "X": 35328,
+ "Y": 4864,
+ "Z": 91648,
+ "Room": 144
+ },
+ {
+ "X": 35328,
+ "Y": 4864,
+ "Z": 93696,
+ "Room": 145
+ },
+ {
+ "X": 34304,
+ "Y": 4864,
+ "Z": 95744,
+ "Room": 146
+ },
+ {
+ "X": 35328,
+ "Y": 4864,
+ "Z": 89600,
+ "Room": 147
+ },
+ {
+ "X": 55808,
+ "Y": 2176,
+ "Z": 92672,
+ "Room": 150,
+ "KeyItemsHigh": "11539"
+ },
+ {
+ "X": 55808,
+ "Y": 2165,
+ "Z": 92928,
+ "Room": 150,
+ "KeyItemsHigh": "11539",
+ "Range": "Medium"
+ },
+ {
+ "X": 55552,
+ "Y": 2240,
+ "Z": 92928,
+ "Room": 150,
+ "KeyItemsHigh": "11539",
+ "Range": "Large"
+ },
+ {
+ "X": 55552,
+ "Y": 2241,
+ "Z": 92416,
+ "Room": 150,
+ "KeyItemsHigh": "11641",
+ "Range": "Medium"
+ },
+ {
+ "X": 55808,
+ "Y": 2175,
+ "Z": 92416,
+ "Room": 150,
+ "KeyItemsHigh": "11641",
+ "Range": "Large"
+ },
+ {
+ "X": 55808,
+ "Y": 1920,
+ "Z": 94720,
+ "Room": 151,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 2048,
+ "Z": 91648,
+ "Room": 5
+ },
+ {
+ "X": 54784,
+ "Y": 2048,
+ "Z": 90624,
+ "Room": 152
+ },
+ {
+ "X": 54784,
+ "Y": 1792,
+ "Z": 87552,
+ "Room": 161
+ },
+ {
+ "X": 55808,
+ "Y": 4608,
+ "Z": 85504,
+ "Room": 225,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 54784,
+ "Y": 1280,
+ "Z": 82432,
+ "Room": 162
+ },
+ {
+ "X": 49664,
+ "Y": 256,
+ "Z": 82432,
+ "Room": 163
+ },
+ {
+ "X": 48640,
+ "Y": 256,
+ "Z": 80384,
+ "Room": 164
+ },
+ {
+ "X": 48640,
+ "Y": 256,
+ "Z": 74240,
+ "Room": 166
+ },
+ {
+ "X": 48640,
+ "Y": 256,
+ "Z": 71168,
+ "Room": 168
+ },
+ {
+ "X": 49664,
+ "Y": 256,
+ "Z": 70144,
+ "Room": 167
+ },
+ {
+ "X": 50688,
+ "Y": 256,
+ "Z": 75264,
+ "Room": 165
+ },
+ {
+ "X": 48640,
+ "Y": -512,
+ "Z": 62976,
+ "Room": 197
+ },
+ {
+ "X": 46592,
+ "Y": -512,
+ "Z": 62976,
+ "Room": 226,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 46592,
+ "Y": 8960,
+ "Z": 64000,
+ "Room": 227,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 47616,
+ "Y": 8960,
+ "Z": 64000,
+ "Room": 228,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 52736,
+ "Y": -512,
+ "Z": 58880,
+ "Room": 198
+ },
+ {
+ "X": 54784,
+ "Y": 6912,
+ "Z": 61184,
+ "Room": 193,
+ "KeyItemsHigh": "11539,11641",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55040,
+ "Y": 6912,
+ "Z": 61184,
+ "Room": 193,
+ "KeyItemsHigh": "11539,11641",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55040,
+ "Y": 6912,
+ "Z": 60928,
+ "Room": 193,
+ "KeyItemsHigh": "11539,11641",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52736,
+ "Y": 3584,
+ "Z": 58880,
+ "Room": 194,
+ "KeyItemsLow": "11636,11708,11723,11692",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51712,
+ "Y": 3584,
+ "Z": 58880,
+ "Room": 195
+ },
+ {
+ "X": 48640,
+ "Y": 1280,
+ "Z": 59904,
+ "Room": 196
+ },
+ {
+ "X": 47616,
+ "Y": 1280,
+ "Z": 59904,
+ "Room": 229,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 45568,
+ "Y": 3584,
+ "Z": 58624,
+ "Room": 216,
+ "KeyItemsLow": "11648,11636"
+ },
+ {
+ "X": 45568,
+ "Y": 3584,
+ "Z": 58880,
+ "Room": 216,
+ "KeyItemsLow": "11648,11636",
+ "Range": "Medium"
+ },
+ {
+ "X": 45568,
+ "Y": 3584,
+ "Z": 59136,
+ "Room": 216,
+ "KeyItemsLow": "11648,11636",
+ "Range": "Large"
+ },
+ {
+ "X": 45568,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 218
+ },
+ {
+ "X": 42496,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 204
+ },
+ {
+ "X": 43520,
+ "Y": 3584,
+ "Z": 54784,
+ "Room": 217
+ },
+ {
+ "X": 42496,
+ "Y": 4608,
+ "Z": 57856,
+ "Room": 219
+ },
+ {
+ "X": 37376,
+ "Y": 3584,
+ "Z": 58880,
+ "Room": 206
+ },
+ {
+ "X": 33280,
+ "Y": 1536,
+ "Z": 59904,
+ "Room": 207
+ },
+ {
+ "X": 41472,
+ "Y": 1536,
+ "Z": 58880,
+ "Room": 205
+ },
+ {
+ "X": 43520,
+ "Y": 1536,
+ "Z": 59904,
+ "Room": 223
+ },
+ {
+ "X": 32256,
+ "Y": 4352,
+ "Z": 58624,
+ "Room": 208,
+ "KeyItemsHigh": "11648,11636"
+ },
+ {
+ "X": 32256,
+ "Y": 4352,
+ "Z": 58880,
+ "Room": 208,
+ "KeyItemsHigh": "11648,11636",
+ "Range": "Medium"
+ },
+ {
+ "X": 32256,
+ "Y": 4352,
+ "Z": 59136,
+ "Room": 208,
+ "KeyItemsHigh": "11648,11636",
+ "Range": "Large"
+ },
+ {
+ "X": 32000,
+ "Y": 4352,
+ "Z": 58624,
+ "Room": 208,
+ "KeyItemsHigh": "11636,11648",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 32000,
+ "Y": 4352,
+ "Z": 58880,
+ "Room": 208,
+ "KeyItemsHigh": "11636,11648",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 32000,
+ "Y": 4352,
+ "Z": 59136,
+ "Room": 208,
+ "KeyItemsHigh": "11636,11648",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": 4352,
+ "Z": 61952,
+ "Room": 209
+ },
+ {
+ "X": 30208,
+ "Y": 4352,
+ "Z": 54784,
+ "Room": 210
+ },
+ {
+ "X": 27136,
+ "Y": 5376,
+ "Z": 54528,
+ "Room": 213,
+ "KeyItemsLow": "11708,11723,11692"
+ },
+ {
+ "X": 27136,
+ "Y": 5376,
+ "Z": 54784,
+ "Room": 213,
+ "KeyItemsLow": "11708,11723,11692",
+ "Range": "Medium"
+ },
+ {
+ "X": 27136,
+ "Y": 5376,
+ "Z": 55040,
+ "Room": 213,
+ "KeyItemsLow": "11708,11723,11692",
+ "Range": "Large"
+ },
+ {
+ "X": 22016,
+ "Y": 4352,
+ "Z": 52736,
+ "Room": 211
+ },
+ {
+ "X": 15872,
+ "Y": 4352,
+ "Z": 50688,
+ "Room": 215
+ },
+ {
+ "X": 14848,
+ "Y": 5632,
+ "Z": 49664,
+ "Room": 222
+ },
+ {
+ "X": 14848,
+ "Y": 5632,
+ "Z": 51712,
+ "Room": 221
+ },
+ {
+ "X": 10752,
+ "Y": 4096,
+ "Z": 65024,
+ "Room": 212
+ },
+ {
+ "X": 16896,
+ "Y": 6912,
+ "Z": 69120,
+ "Room": 220
+ },
+ {
+ "X": 11008,
+ "Y": 2304,
+ "Z": 69888,
+ "Room": 214,
+ "KeyItemsHigh": "11708,11723,11692"
+ },
+ {
+ "X": 10752,
+ "Y": 2304,
+ "Z": 69888,
+ "Room": 214,
+ "KeyItemsHigh": "11708,11723,11692",
+ "Range": "Medium"
+ },
+ {
+ "X": 10496,
+ "Y": 2304,
+ "Z": 69888,
+ "Room": 214,
+ "KeyItemsHigh": "11708,11723,11692",
+ "Range": "Large"
+ },
+ {
+ "X": 10496,
+ "Y": 2304,
+ "Z": 70144,
+ "Room": 214,
+ "KeyItemsHigh": "11708,11723,11692",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 10752,
+ "Y": 2304,
+ "Z": 70144,
+ "Room": 214,
+ "KeyItemsHigh": "11708,11723,11692",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 11008,
+ "Y": 2304,
+ "Z": 70144,
+ "Room": 214,
+ "KeyItemsHigh": "11708,11723,11692",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "QUADCHAS.TR2": [
+ {
+ "X": 84480,
+ "Y": -256,
+ "Z": 58880,
+ "Room": 1,
+ "KeyItemsLow": "12258,12425",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 84480,
+ "Y": 2176,
+ "Z": 55808,
+ "Room": 5,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": -2048,
+ "Z": 54784,
+ "Room": 2
+ },
+ {
+ "X": 79360,
+ "Y": -4864,
+ "Z": 52736,
+ "Room": 14,
+ "Validated": false
+ },
+ {
+ "X": 86528,
+ "Y": -4352,
+ "Z": 60928,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 89600,
+ "Y": -4736,
+ "Z": 54784,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 83456,
+ "Y": -256,
+ "Z": 49664,
+ "Room": 10
+ },
+ {
+ "X": 80384,
+ "Y": 768,
+ "Z": 47616,
+ "Room": 31
+ },
+ {
+ "X": 78336,
+ "Y": 768,
+ "Z": 40448,
+ "Room": 34
+ },
+ {
+ "X": 81408,
+ "Y": 768,
+ "Z": 37376,
+ "Room": 35
+ },
+ {
+ "X": 84480,
+ "Y": 768,
+ "Z": 36352,
+ "Room": 66
+ },
+ {
+ "X": 86528,
+ "Y": 768,
+ "Z": 38400,
+ "Room": 18
+ },
+ {
+ "X": 84480,
+ "Y": 768,
+ "Z": 34304,
+ "Room": 175
+ },
+ {
+ "X": 83456,
+ "Y": -1280,
+ "Z": 34304,
+ "Room": 176
+ },
+ {
+ "X": 84480,
+ "Y": -256,
+ "Z": 60928,
+ "Room": 7
+ },
+ {
+ "X": 89600,
+ "Y": -2048,
+ "Z": 61952,
+ "Room": 124
+ },
+ {
+ "X": 90624,
+ "Y": 768,
+ "Z": 48640,
+ "Room": 10
+ },
+ {
+ "X": 91648,
+ "Y": 1152,
+ "Z": 47616,
+ "Room": 70
+ },
+ {
+ "X": 94720,
+ "Y": 1280,
+ "Z": 45568,
+ "Room": 71
+ },
+ {
+ "X": 94720,
+ "Y": 1280,
+ "Z": 42496,
+ "Room": 39
+ },
+ {
+ "X": 94720,
+ "Y": 1280,
+ "Z": 40448,
+ "Room": 21
+ },
+ {
+ "X": 94720,
+ "Y": 6656,
+ "Z": 38400,
+ "Room": 28,
+ "Validated": false
+ },
+ {
+ "X": 92672,
+ "Y": 640,
+ "Z": 34304,
+ "Room": 22
+ },
+ {
+ "X": 89600,
+ "Y": 6912,
+ "Z": 31232,
+ "Room": 26
+ },
+ {
+ "X": 91648,
+ "Y": 512,
+ "Z": 29184,
+ "Room": 40,
+ "KeyItemsLow": "12258,12425",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 93696,
+ "Y": 384,
+ "Z": 27136,
+ "Room": 41
+ },
+ {
+ "X": 93696,
+ "Y": 128,
+ "Z": 24064,
+ "Room": 42
+ },
+ {
+ "X": 90624,
+ "Y": -2688,
+ "Z": 20992,
+ "Room": 45
+ },
+ {
+ "X": 94720,
+ "Y": -2688,
+ "Z": 20992,
+ "Room": 44
+ },
+ {
+ "X": 97792,
+ "Y": -4096,
+ "Z": 16896,
+ "Room": 46
+ },
+ {
+ "X": 93696,
+ "Y": -5376,
+ "Z": 13824,
+ "Room": 47
+ },
+ {
+ "X": 86528,
+ "Y": -5376,
+ "Z": 13824,
+ "Room": 48
+ },
+ {
+ "X": 84480,
+ "Y": -2560,
+ "Z": 12800,
+ "Room": 49
+ },
+ {
+ "X": 88576,
+ "Y": -2560,
+ "Z": 13824,
+ "Room": 43
+ },
+ {
+ "X": 80384,
+ "Y": -1536,
+ "Z": 13824,
+ "Room": 50
+ },
+ {
+ "X": 78336,
+ "Y": -128,
+ "Z": 14848,
+ "Room": 51
+ },
+ {
+ "X": 77312,
+ "Y": 640,
+ "Z": 18944,
+ "Room": 25
+ },
+ {
+ "X": 77312,
+ "Y": 896,
+ "Z": 24064,
+ "Room": 57,
+ "KeyItemsLow": "12258,12425",
+ "Range": "Medium"
+ },
+ {
+ "X": 77056,
+ "Y": 896,
+ "Z": 24064,
+ "Room": 57,
+ "KeyItemsLow": "12258,12425",
+ "Range": "Large"
+ },
+ {
+ "X": 74240,
+ "Y": 512,
+ "Z": 26112,
+ "Room": 58
+ },
+ {
+ "X": 68096,
+ "Y": 512,
+ "Z": 23040,
+ "Room": 27
+ },
+ {
+ "X": 78336,
+ "Y": 1792,
+ "Z": 27136,
+ "Room": 16
+ },
+ {
+ "X": 78336,
+ "Y": 3072,
+ "Z": 30208,
+ "Room": 75
+ },
+ {
+ "X": 76288,
+ "Y": 2304,
+ "Z": 34304,
+ "Room": 76
+ },
+ {
+ "X": 72192,
+ "Y": 512,
+ "Z": 35328,
+ "Room": 59
+ },
+ {
+ "X": 75264,
+ "Y": -640,
+ "Z": 33280,
+ "Room": 72
+ },
+ {
+ "X": 77312,
+ "Y": 0,
+ "Z": 32256,
+ "Room": 15
+ },
+ {
+ "X": 68096,
+ "Y": 512,
+ "Z": 30208,
+ "Room": 60
+ },
+ {
+ "X": 69120,
+ "Y": 768,
+ "Z": 37376,
+ "Room": 63,
+ "KeyItemsLow": "12258,12425"
+ },
+ {
+ "X": 69120,
+ "Y": 768,
+ "Z": 37632,
+ "Room": 63,
+ "KeyItemsLow": "12258,12425",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 67072,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 77
+ },
+ {
+ "X": 76288,
+ "Y": 1280,
+ "Z": 36352,
+ "Room": 81
+ },
+ {
+ "X": 74240,
+ "Y": 2048,
+ "Z": 37376,
+ "Room": 82
+ },
+ {
+ "X": 72192,
+ "Y": 1280,
+ "Z": 39424,
+ "Room": 78
+ },
+ {
+ "X": 72192,
+ "Y": 1536,
+ "Z": 41472,
+ "Room": 79
+ },
+ {
+ "X": 70144,
+ "Y": 1536,
+ "Z": 44544,
+ "Room": 80
+ },
+ {
+ "X": 64000,
+ "Y": 1536,
+ "Z": 44544,
+ "Room": 83
+ },
+ {
+ "X": 60928,
+ "Y": -512,
+ "Z": 45568,
+ "Room": 84
+ },
+ {
+ "X": 60928,
+ "Y": -768,
+ "Z": 39424,
+ "Room": 85
+ },
+ {
+ "X": 62976,
+ "Y": -2304,
+ "Z": 34304,
+ "Room": 86
+ },
+ {
+ "X": 64000,
+ "Y": -2560,
+ "Z": 42496,
+ "Room": 87
+ },
+ {
+ "X": 57856,
+ "Y": -2816,
+ "Z": 44544,
+ "Room": 91
+ },
+ {
+ "X": 54784,
+ "Y": -2816,
+ "Z": 37376,
+ "Room": 90,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": -2816,
+ "Z": 40448,
+ "Room": 95
+ },
+ {
+ "X": 48640,
+ "Y": -2560,
+ "Z": 43520,
+ "Room": 98
+ },
+ {
+ "X": 46592,
+ "Y": -512,
+ "Z": 42496,
+ "Room": 100
+ },
+ {
+ "X": 47616,
+ "Y": -512,
+ "Z": 39424,
+ "Room": 101
+ },
+ {
+ "X": 49664,
+ "Y": -512,
+ "Z": 37376,
+ "Room": 102
+ },
+ {
+ "X": 46592,
+ "Y": -2560,
+ "Z": 39424,
+ "Room": 55
+ },
+ {
+ "X": 49664,
+ "Y": -2304,
+ "Z": 37376,
+ "Room": 99
+ },
+ {
+ "X": 51712,
+ "Y": -256,
+ "Z": 41472,
+ "Room": 94,
+ "KeyItemsHigh": "12258,12425"
+ },
+ {
+ "X": 51712,
+ "Y": -256,
+ "Z": 41728,
+ "Room": 94,
+ "KeyItemsHigh": "12258,12425",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": -256,
+ "Z": 42496,
+ "Room": 89
+ },
+ {
+ "X": 55808,
+ "Y": -768,
+ "Z": 39424,
+ "Room": 88
+ },
+ {
+ "X": 48640,
+ "Y": -256,
+ "Z": 46592,
+ "Room": 96
+ },
+ {
+ "X": 42496,
+ "Y": 0,
+ "Z": 48640,
+ "Room": 148
+ },
+ {
+ "X": 44544,
+ "Y": 0,
+ "Z": 50688,
+ "Room": 149
+ },
+ {
+ "X": 50688,
+ "Y": 768,
+ "Z": 55808,
+ "Room": 30,
+ "KeyItemsHigh": "12258,12425",
+ "Range": "Medium",
+ "Validated": false
+ },
+ {
+ "X": 50944,
+ "Y": 768,
+ "Z": 55808,
+ "Room": 30,
+ "KeyItemsHigh": "12258,12425",
+ "Range": "Large",
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 768,
+ "Z": 65024,
+ "Room": 23,
+ "Validated": false
+ },
+ {
+ "X": 79360,
+ "Y": -1792,
+ "Z": 11776,
+ "Room": 52
+ },
+ {
+ "X": 74240,
+ "Y": -2432,
+ "Z": 7680,
+ "Room": 103
+ },
+ {
+ "X": 68096,
+ "Y": 2560,
+ "Z": 8704,
+ "Room": 106,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": 2560,
+ "Z": 8704,
+ "Room": 105,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": -3712,
+ "Z": 8704,
+ "Room": 104
+ },
+ {
+ "X": 61952,
+ "Y": 2304,
+ "Z": 6656,
+ "Room": 107,
+ "Validated": false
+ },
+ {
+ "X": 60928,
+ "Y": -5248,
+ "Z": 9728,
+ "Room": 110
+ },
+ {
+ "X": 60928,
+ "Y": -6400,
+ "Z": 17920,
+ "Room": 112
+ },
+ {
+ "X": 58880,
+ "Y": -4608,
+ "Z": 23040,
+ "Room": 113
+ },
+ {
+ "X": 56832,
+ "Y": -5120,
+ "Z": 26112,
+ "Room": 125
+ },
+ {
+ "X": 51712,
+ "Y": -2816,
+ "Z": 22016,
+ "Room": 114
+ },
+ {
+ "X": 45568,
+ "Y": -3072,
+ "Z": 22016,
+ "Room": 120,
+ "KeyItemsHigh": "12258,12425",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": -2944,
+ "Z": 26112,
+ "Room": 121
+ },
+ {
+ "X": 38400,
+ "Y": -2688,
+ "Z": 29184,
+ "Room": 127
+ },
+ {
+ "X": 31232,
+ "Y": -2560,
+ "Z": 32256,
+ "Room": 129
+ },
+ {
+ "X": 34304,
+ "Y": -2560,
+ "Z": 35328,
+ "Room": 130
+ },
+ {
+ "X": 31232,
+ "Y": -2560,
+ "Z": 38400,
+ "Room": 126
+ },
+ {
+ "X": 30208,
+ "Y": -5120,
+ "Z": 31232,
+ "Room": 128
+ },
+ {
+ "X": 30208,
+ "Y": -5120,
+ "Z": 32256,
+ "Room": 132
+ },
+ {
+ "X": 36352,
+ "Y": -5632,
+ "Z": 33280,
+ "Room": 138
+ },
+ {
+ "X": 43520,
+ "Y": -2560,
+ "Z": 33280,
+ "Room": 137
+ },
+ {
+ "X": 34304,
+ "Y": -5120,
+ "Z": 36352,
+ "Room": 133
+ },
+ {
+ "X": 30208,
+ "Y": -5376,
+ "Z": 38400,
+ "Room": 131
+ },
+ {
+ "X": 39424,
+ "Y": -5376,
+ "Z": 41472,
+ "Room": 139
+ },
+ {
+ "X": 40448,
+ "Y": -3200,
+ "Z": 45568,
+ "Room": 141
+ },
+ {
+ "X": 34304,
+ "Y": -5632,
+ "Z": 46592,
+ "Room": 154
+ },
+ {
+ "X": 33280,
+ "Y": -5376,
+ "Z": 48640,
+ "Room": 155
+ },
+ {
+ "X": 33280,
+ "Y": -3584,
+ "Z": 50688,
+ "Room": 170
+ },
+ {
+ "X": 30208,
+ "Y": -5376,
+ "Z": 54784,
+ "Room": 171
+ },
+ {
+ "X": 31232,
+ "Y": -5120,
+ "Z": 58880,
+ "Room": 173
+ },
+ {
+ "X": 38400,
+ "Y": -5248,
+ "Z": 60928,
+ "Room": 174
+ },
+ {
+ "X": 34304,
+ "Y": 384,
+ "Z": 60928,
+ "Room": 172
+ },
+ {
+ "X": 38400,
+ "Y": 512,
+ "Z": 61952,
+ "Room": 169
+ },
+ {
+ "X": 42496,
+ "Y": 384,
+ "Z": 60928,
+ "Room": 159
+ },
+ {
+ "X": 42496,
+ "Y": 768,
+ "Z": 64000,
+ "Room": 156
+ },
+ {
+ "X": 41472,
+ "Y": 896,
+ "Z": 70144,
+ "Room": 160
+ },
+ {
+ "X": 40448,
+ "Y": -3200,
+ "Z": 74240,
+ "Room": 161,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": 4736,
+ "Z": 79360,
+ "Room": 162
+ },
+ {
+ "X": 47616,
+ "Y": 4608,
+ "Z": 75264,
+ "Room": 122
+ },
+ {
+ "X": 43520,
+ "Y": 10240,
+ "Z": 77312,
+ "Room": 166
+ },
+ {
+ "X": 44544,
+ "Y": 8320,
+ "Z": 72192,
+ "Room": 163
+ },
+ {
+ "X": 44544,
+ "Y": 8192,
+ "Z": 70144,
+ "Room": 165
+ },
+ {
+ "X": 43520,
+ "Y": 5888,
+ "Z": 69120,
+ "Room": 164
+ },
+ {
+ "X": 43520,
+ "Y": 5888,
+ "Z": 68096,
+ "Room": 167,
+ "KeyItemsHigh": "12258,12425",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "TONYBOSS.TR2": [
+ {
+ "X": 3584,
+ "Y": -15360,
+ "Z": 47616,
+ "Room": 20
+ },
+ {
+ "X": 2560,
+ "Y": -17408,
+ "Z": 47616,
+ "Room": 20,
+ "Validated": false
+ },
+ {
+ "X": 4608,
+ "Y": -15360,
+ "Z": 47616,
+ "Room": 3
+ },
+ {
+ "X": 9728,
+ "Y": -15360,
+ "Z": 44544,
+ "Room": 14
+ },
+ {
+ "X": 18944,
+ "Y": -12288,
+ "Z": 44544,
+ "Room": 15
+ },
+ {
+ "X": 18944,
+ "Y": -14848,
+ "Z": 52736,
+ "Room": 17
+ },
+ {
+ "X": 26112,
+ "Y": -14848,
+ "Z": 60928,
+ "Room": 16
+ },
+ {
+ "X": 20992,
+ "Y": -14848,
+ "Z": 60928,
+ "Room": 16
+ },
+ {
+ "X": 15872,
+ "Y": -14848,
+ "Z": 59904,
+ "Room": 17
+ },
+ {
+ "X": 26112,
+ "Y": -12800,
+ "Z": 65024,
+ "Room": 18
+ },
+ {
+ "X": 22016,
+ "Y": -12544,
+ "Z": 65024,
+ "Room": 19
+ },
+ {
+ "X": 18944,
+ "Y": -12032,
+ "Z": 67072,
+ "Room": 10
+ },
+ {
+ "X": 10752,
+ "Y": -15360,
+ "Z": 58880,
+ "Room": 9
+ },
+ {
+ "X": 16896,
+ "Y": -12032,
+ "Z": 56832,
+ "Room": 13
+ },
+ {
+ "X": 19968,
+ "Y": -11008,
+ "Z": 62976,
+ "Room": 11
+ },
+ {
+ "X": 23040,
+ "Y": -11008,
+ "Z": 61952,
+ "Room": 12
+ },
+ {
+ "X": 23040,
+ "Y": -11008,
+ "Z": 57856,
+ "Room": 5
+ },
+ {
+ "X": 24064,
+ "Y": -6912,
+ "Z": 56832,
+ "Room": 4
+ },
+ {
+ "X": 22016,
+ "Y": -7296,
+ "Z": 56832,
+ "Room": 7,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": -6912,
+ "Z": 56832,
+ "Room": 6
+ },
+ {
+ "X": 37376,
+ "Y": -6912,
+ "Z": 55808,
+ "Room": 8
+ },
+ {
+ "X": 40448,
+ "Y": -4864,
+ "Z": 52736,
+ "Room": 24
+ },
+ {
+ "X": 47616,
+ "Y": -256,
+ "Z": 52736,
+ "Room": 22
+ },
+ {
+ "X": 48640,
+ "Y": 5120,
+ "Z": 54784,
+ "Room": 23,
+ "Validated": false
+ }
+ ],
+ "SHORE.TR2": [
+ {
+ "X": 19200,
+ "Y": 2304,
+ "Z": 13824,
+ "Room": 7,
+ "KeyItemsLow": "14300"
+ },
+ {
+ "X": 18944,
+ "Y": 2304,
+ "Z": 13824,
+ "Room": 7,
+ "KeyItemsLow": "14300",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 18688,
+ "Y": 2304,
+ "Z": 13824,
+ "Room": 7,
+ "KeyItemsLow": "14300",
+ "Range": "Medium"
+ },
+ {
+ "X": 18688,
+ "Y": 2304,
+ "Z": 14080,
+ "Room": 7,
+ "KeyItemsLow": "14300,14252,14447,14440",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 18944,
+ "Y": 2304,
+ "Z": 14080,
+ "Room": 7,
+ "KeyItemsLow": "14300",
+ "Range": "Large"
+ },
+ {
+ "X": 19200,
+ "Y": 2304,
+ "Z": 14080,
+ "Room": 7,
+ "KeyItemsLow": "14300,14252,14447,14440",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16896,
+ "Y": 3072,
+ "Z": 19968,
+ "Room": 6
+ },
+ {
+ "X": 14848,
+ "Y": -128,
+ "Z": 25088,
+ "Room": 3
+ },
+ {
+ "X": 23040,
+ "Y": -640,
+ "Z": 18944,
+ "Room": 4,
+ "Validated": false
+ },
+ {
+ "X": 20992,
+ "Y": 0,
+ "Z": 9728,
+ "Room": 24,
+ "Validated": false
+ },
+ {
+ "X": 19968,
+ "Y": 2560,
+ "Z": 9728,
+ "Room": 25,
+ "Validated": false
+ },
+ {
+ "X": 24064,
+ "Y": 640,
+ "Z": 33280,
+ "Room": 172
+ },
+ {
+ "X": 24064,
+ "Y": 0,
+ "Z": 35328,
+ "Room": 173
+ },
+ {
+ "X": 30208,
+ "Y": 896,
+ "Z": 33280,
+ "Room": 1
+ },
+ {
+ "X": 31232,
+ "Y": -256,
+ "Z": 35328,
+ "Room": 0
+ },
+ {
+ "X": 19968,
+ "Y": -256,
+ "Z": 44544,
+ "Room": 174
+ },
+ {
+ "X": 15872,
+ "Y": -384,
+ "Z": 45568,
+ "Room": 2,
+ "KeyItemsLow": "14252,14447,14440",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 14848,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 5
+ },
+ {
+ "X": 6656,
+ "Y": -2816,
+ "Z": 50688,
+ "Room": 8
+ },
+ {
+ "X": 13824,
+ "Y": 384,
+ "Z": 49408,
+ "Room": 20,
+ "KeyItemsHigh": "14300"
+ },
+ {
+ "X": 13824,
+ "Y": 384,
+ "Z": 49664,
+ "Room": 20,
+ "KeyItemsHigh": "14300",
+ "Range": "Medium"
+ },
+ {
+ "X": 13824,
+ "Y": 384,
+ "Z": 49920,
+ "Room": 20,
+ "KeyItemsHigh": "14300",
+ "Range": "Large"
+ },
+ {
+ "X": 16640,
+ "Y": 2304,
+ "Z": 50688,
+ "Room": 67,
+ "KeyItemsLow": "14252,14447,14440"
+ },
+ {
+ "X": 16896,
+ "Y": 2304,
+ "Z": 50688,
+ "Room": 67,
+ "KeyItemsLow": "14252,14447,14440",
+ "Range": "Medium"
+ },
+ {
+ "X": 17152,
+ "Y": 2304,
+ "Z": 50688,
+ "Room": 67,
+ "KeyItemsLow": "14252,14447,14440",
+ "Range": "Large"
+ },
+ {
+ "X": 16896,
+ "Y": 2560,
+ "Z": 51712,
+ "Room": 11
+ },
+ {
+ "X": 16896,
+ "Y": 3200,
+ "Z": 53760,
+ "Room": 45
+ },
+ {
+ "X": 16896,
+ "Y": 3584,
+ "Z": 55808,
+ "Room": 44
+ },
+ {
+ "X": 14848,
+ "Y": 2816,
+ "Z": 58880,
+ "Room": 23
+ },
+ {
+ "X": 15872,
+ "Y": 256,
+ "Z": 61952,
+ "Room": 22,
+ "KeyItemsHigh": "14300",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16896,
+ "Y": -1280,
+ "Z": 67072,
+ "Room": 14
+ },
+ {
+ "X": 15872,
+ "Y": -768,
+ "Z": 86528,
+ "Room": 118
+ },
+ {
+ "X": 15872,
+ "Y": -5888,
+ "Z": 88576,
+ "Room": 122
+ },
+ {
+ "X": 17920,
+ "Y": -6784,
+ "Z": 92672,
+ "Room": 123
+ },
+ {
+ "X": 25088,
+ "Y": -6400,
+ "Z": 88576,
+ "Room": 124
+ },
+ {
+ "X": 25088,
+ "Y": -7424,
+ "Z": 84480,
+ "Room": 178
+ },
+ {
+ "X": 18944,
+ "Y": -1024,
+ "Z": 87552,
+ "Room": 119
+ },
+ {
+ "X": 25088,
+ "Y": -768,
+ "Z": 89600,
+ "Room": 120
+ },
+ {
+ "X": 25088,
+ "Y": 896,
+ "Z": 92672,
+ "Room": 135,
+ "KeyItemsHigh": "14300",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 25088,
+ "Y": 2432,
+ "Z": 93696,
+ "Room": 53
+ },
+ {
+ "X": 32256,
+ "Y": 3072,
+ "Z": 93696,
+ "Room": 130
+ },
+ {
+ "X": 33280,
+ "Y": 2816,
+ "Z": 92672,
+ "Room": 17
+ },
+ {
+ "X": 35328,
+ "Y": 9728,
+ "Z": 94720,
+ "Room": 126,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": 10240,
+ "Z": 96768,
+ "Room": 16,
+ "Validated": false
+ },
+ {
+ "X": 31232,
+ "Y": 10240,
+ "Z": 96768,
+ "Room": 21,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": 9856,
+ "Z": 96768,
+ "Room": 71,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": 2560,
+ "Z": 92672,
+ "Room": 164
+ },
+ {
+ "X": 37376,
+ "Y": -768,
+ "Z": 92672,
+ "Room": 121
+ },
+ {
+ "X": 36352,
+ "Y": -2304,
+ "Z": 94720,
+ "Room": 127
+ },
+ {
+ "X": 42240,
+ "Y": -2816,
+ "Z": 90880,
+ "Room": 134,
+ "KeyItemsHigh": "14252,14447,14440"
+ },
+ {
+ "X": 42240,
+ "Y": -2816,
+ "Z": 90624,
+ "Room": 134,
+ "KeyItemsHigh": "14252,14447,14440",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42240,
+ "Y": -2816,
+ "Z": 90368,
+ "Room": 134,
+ "KeyItemsHigh": "14252,14447,14440",
+ "Range": "Medium"
+ },
+ {
+ "X": 42496,
+ "Y": -2816,
+ "Z": 90368,
+ "Room": 134,
+ "KeyItemsHigh": "14252,14447,14440",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": -2816,
+ "Z": 90624,
+ "Room": 134,
+ "KeyItemsHigh": "14252,14447,14440",
+ "Range": "Large"
+ },
+ {
+ "X": 42496,
+ "Y": -2816,
+ "Z": 90880,
+ "Room": 134,
+ "KeyItemsHigh": "14252,14447,14440",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": -2560,
+ "Z": 92672,
+ "Room": 133
+ },
+ {
+ "X": 42496,
+ "Y": -2176,
+ "Z": 94720,
+ "Room": 117
+ },
+ {
+ "X": 44544,
+ "Y": -1408,
+ "Z": 93696,
+ "Room": 115
+ },
+ {
+ "X": 51712,
+ "Y": -2048,
+ "Z": 88576,
+ "Room": 58
+ },
+ {
+ "X": 52736,
+ "Y": -2048,
+ "Z": 87552,
+ "Room": 116
+ },
+ {
+ "X": 55808,
+ "Y": -2048,
+ "Z": 90624,
+ "Room": 89
+ },
+ {
+ "X": 32256,
+ "Y": 256,
+ "Z": 90624,
+ "Room": 35
+ },
+ {
+ "X": 31232,
+ "Y": 256,
+ "Z": 90624,
+ "Room": 52
+ },
+ {
+ "X": 8704,
+ "Y": 768,
+ "Z": 56832,
+ "Room": 12,
+ "KeyItemsHigh": "14300",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 3584,
+ "Y": 1792,
+ "Z": 57856,
+ "Room": 13
+ },
+ {
+ "X": 3584,
+ "Y": -256,
+ "Z": 65024,
+ "Room": 138
+ },
+ {
+ "X": 4608,
+ "Y": 4352,
+ "Z": 67072,
+ "Room": 63
+ },
+ {
+ "X": 4608,
+ "Y": -5376,
+ "Z": 65024,
+ "Room": 62
+ },
+ {
+ "X": 8704,
+ "Y": -4480,
+ "Z": 73216,
+ "Room": 139
+ },
+ {
+ "X": 3584,
+ "Y": -5248,
+ "Z": 82432,
+ "Room": 62
+ },
+ {
+ "X": 9728,
+ "Y": -6144,
+ "Z": 81408,
+ "Room": 60
+ },
+ {
+ "X": 10752,
+ "Y": -6144,
+ "Z": 80384,
+ "Room": 66
+ },
+ {
+ "X": 12800,
+ "Y": -6016,
+ "Z": 79360,
+ "Room": 39
+ },
+ {
+ "X": 13824,
+ "Y": -7168,
+ "Z": 76288,
+ "Room": 15
+ },
+ {
+ "X": 19968,
+ "Y": -6016,
+ "Z": 79360,
+ "Room": 64
+ },
+ {
+ "X": 20992,
+ "Y": -6400,
+ "Z": 79360,
+ "Room": 65
+ },
+ {
+ "X": 22016,
+ "Y": -6912,
+ "Z": 81408,
+ "Room": 77
+ },
+ {
+ "X": 25088,
+ "Y": -7040,
+ "Z": 81408,
+ "Room": 38
+ },
+ {
+ "X": 29184,
+ "Y": -6912,
+ "Z": 81408,
+ "Room": 41
+ },
+ {
+ "X": 30208,
+ "Y": -6912,
+ "Z": 81408,
+ "Room": 42
+ },
+ {
+ "X": 32256,
+ "Y": -4608,
+ "Z": 81408,
+ "Room": 132
+ },
+ {
+ "X": 32256,
+ "Y": -4736,
+ "Z": 82432,
+ "Room": 131
+ },
+ {
+ "X": 33280,
+ "Y": -6144,
+ "Z": 81408,
+ "Room": 128
+ },
+ {
+ "X": 34304,
+ "Y": -6912,
+ "Z": 81408,
+ "Room": 43
+ },
+ {
+ "X": 35328,
+ "Y": -6912,
+ "Z": 81408,
+ "Room": 40
+ },
+ {
+ "X": 37376,
+ "Y": -5632,
+ "Z": 79360,
+ "Room": 68
+ },
+ {
+ "X": 39424,
+ "Y": -3200,
+ "Z": 79360,
+ "Room": 59
+ },
+ {
+ "X": 44544,
+ "Y": 0,
+ "Z": 79360,
+ "Room": 94
+ },
+ {
+ "X": 45568,
+ "Y": 0,
+ "Z": 81408,
+ "Room": 96
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 83456,
+ "Room": 111
+ },
+ {
+ "X": 46592,
+ "Y": 0,
+ "Z": 84480,
+ "Room": 54
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 83456,
+ "Room": 82
+ },
+ {
+ "X": 53760,
+ "Y": 0,
+ "Z": 83456,
+ "Room": 112
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 84480,
+ "Room": 57
+ },
+ {
+ "X": 56832,
+ "Y": 0,
+ "Z": 84480,
+ "Room": 56
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 82432,
+ "Room": 36
+ },
+ {
+ "X": 53760,
+ "Y": 0,
+ "Z": 82432,
+ "Room": 92
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 82432,
+ "Room": 81
+ },
+ {
+ "X": 61952,
+ "Y": 0,
+ "Z": 82432,
+ "Room": 88
+ },
+ {
+ "X": 68096,
+ "Y": -896,
+ "Z": 82432,
+ "Room": 162
+ },
+ {
+ "X": 68096,
+ "Y": -2048,
+ "Z": 77312,
+ "Room": 19
+ },
+ {
+ "X": 76288,
+ "Y": -1792,
+ "Z": 75264,
+ "Room": 188
+ },
+ {
+ "X": 74240,
+ "Y": -5120,
+ "Z": 68096,
+ "Room": 168,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 80384,
+ "Room": 90
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 80384,
+ "Room": 91
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 80384,
+ "Room": 95
+ },
+ {
+ "X": 48640,
+ "Y": -256,
+ "Z": 76288,
+ "Room": 93
+ },
+ {
+ "X": 48640,
+ "Y": -384,
+ "Z": 75264,
+ "Room": 97
+ },
+ {
+ "X": 46592,
+ "Y": -2944,
+ "Z": 76288,
+ "Room": 110,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": -256,
+ "Z": 75264,
+ "Room": 80
+ },
+ {
+ "X": 46592,
+ "Y": -512,
+ "Z": 72192,
+ "Room": 49,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": -512,
+ "Z": 72192,
+ "Room": 78
+ },
+ {
+ "X": 42496,
+ "Y": -512,
+ "Z": 68096,
+ "Room": 74
+ },
+ {
+ "X": 38400,
+ "Y": -2176,
+ "Z": 68096,
+ "Room": 75
+ },
+ {
+ "X": 36352,
+ "Y": -512,
+ "Z": 68096,
+ "Room": 144
+ },
+ {
+ "X": 31232,
+ "Y": -512,
+ "Z": 71168,
+ "Room": 146
+ },
+ {
+ "X": 31232,
+ "Y": -512,
+ "Z": 73216,
+ "Room": 155
+ },
+ {
+ "X": 27136,
+ "Y": -512,
+ "Z": 73216,
+ "Room": 156
+ },
+ {
+ "X": 26112,
+ "Y": -768,
+ "Z": 73216,
+ "Room": 145
+ },
+ {
+ "X": 26112,
+ "Y": -768,
+ "Z": 74240,
+ "Room": 70
+ },
+ {
+ "X": 23040,
+ "Y": -2304,
+ "Z": 69120,
+ "Room": 34
+ },
+ {
+ "X": 20992,
+ "Y": -3840,
+ "Z": 66048,
+ "Room": 33,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": -512,
+ "Z": 65024,
+ "Room": 147
+ },
+ {
+ "X": 28160,
+ "Y": -512,
+ "Z": 67072,
+ "Room": 157
+ },
+ {
+ "X": 31232,
+ "Y": -512,
+ "Z": 67072,
+ "Room": 141
+ },
+ {
+ "X": 31232,
+ "Y": -512,
+ "Z": 62976,
+ "Room": 148
+ },
+ {
+ "X": 26112,
+ "Y": -512,
+ "Z": 61952,
+ "Room": 149
+ },
+ {
+ "X": 25088,
+ "Y": -2048,
+ "Z": 60928,
+ "Room": 152
+ },
+ {
+ "X": 26112,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 160
+ },
+ {
+ "X": 24064,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 150
+ },
+ {
+ "X": 24064,
+ "Y": -2048,
+ "Z": 55808,
+ "Room": 154
+ },
+ {
+ "X": 29184,
+ "Y": -2048,
+ "Z": 55808,
+ "Room": 151
+ },
+ {
+ "X": 30208,
+ "Y": -2048,
+ "Z": 56832,
+ "Room": 158
+ },
+ {
+ "X": 31232,
+ "Y": -2048,
+ "Z": 57856,
+ "Room": 159
+ },
+ {
+ "X": 36352,
+ "Y": -2048,
+ "Z": 56832,
+ "Room": 153
+ },
+ {
+ "X": 36352,
+ "Y": -2048,
+ "Z": 60928,
+ "Room": 142
+ },
+ {
+ "X": 34304,
+ "Y": -3584,
+ "Z": 64000,
+ "Room": 28
+ },
+ {
+ "X": 34304,
+ "Y": -4096,
+ "Z": 62976,
+ "Room": 143
+ },
+ {
+ "X": 37376,
+ "Y": -4608,
+ "Z": 61952,
+ "Room": 73
+ },
+ {
+ "X": 38400,
+ "Y": -4352,
+ "Z": 61952,
+ "Room": 72
+ },
+ {
+ "X": 38400,
+ "Y": -4352,
+ "Z": 59904,
+ "Room": 86
+ },
+ {
+ "X": 38400,
+ "Y": -4352,
+ "Z": 57856,
+ "Room": 137
+ },
+ {
+ "X": 37376,
+ "Y": -4608,
+ "Z": 56832,
+ "Room": 85
+ },
+ {
+ "X": 25088,
+ "Y": -4608,
+ "Z": 54784,
+ "Room": 30
+ },
+ {
+ "X": 23040,
+ "Y": -4608,
+ "Z": 55808,
+ "Room": 32
+ },
+ {
+ "X": 28160,
+ "Y": -4352,
+ "Z": 64000,
+ "Room": 76
+ },
+ {
+ "X": 29184,
+ "Y": -3328,
+ "Z": 67072,
+ "Room": 140
+ },
+ {
+ "X": 32256,
+ "Y": -3584,
+ "Z": 72192,
+ "Room": 76
+ },
+ {
+ "X": 38400,
+ "Y": -4352,
+ "Z": 64000,
+ "Room": 136
+ },
+ {
+ "X": 39424,
+ "Y": -4224,
+ "Z": 66048,
+ "Room": 187
+ },
+ {
+ "X": 42496,
+ "Y": -3840,
+ "Z": 66048,
+ "Room": 186
+ },
+ {
+ "X": 44544,
+ "Y": -3840,
+ "Z": 66048,
+ "Room": 184
+ },
+ {
+ "X": 48640,
+ "Y": -3840,
+ "Z": 66048,
+ "Room": 182
+ },
+ {
+ "X": 49664,
+ "Y": -3712,
+ "Z": 67072,
+ "Room": 183
+ },
+ {
+ "X": 48640,
+ "Y": -2432,
+ "Z": 68096,
+ "Room": 50
+ },
+ {
+ "X": 42496,
+ "Y": -4096,
+ "Z": 67072,
+ "Room": 185,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -384,
+ "Z": 68096,
+ "Room": 79
+ },
+ {
+ "X": 49664,
+ "Y": -128,
+ "Z": 68096,
+ "Room": 99
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 68096,
+ "Room": 100
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 73216,
+ "Room": 98
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 76288,
+ "Room": 48
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 75264,
+ "Room": 47
+ },
+ {
+ "X": 55808,
+ "Y": 0,
+ "Z": 72192,
+ "Room": 46
+ },
+ {
+ "X": 57856,
+ "Y": 256,
+ "Z": 73216,
+ "Room": 194
+ },
+ {
+ "X": 58880,
+ "Y": 512,
+ "Z": 72192,
+ "Room": 193
+ },
+ {
+ "X": 59904,
+ "Y": -1024,
+ "Z": 74240,
+ "Room": 47
+ },
+ {
+ "X": 60928,
+ "Y": 3840,
+ "Z": 70144,
+ "Room": 27
+ },
+ {
+ "X": 64000,
+ "Y": 3840,
+ "Z": 71168,
+ "Room": 31
+ },
+ {
+ "X": 64000,
+ "Y": -1792,
+ "Z": 78336,
+ "Room": 195
+ },
+ {
+ "X": 64000,
+ "Y": -4352,
+ "Z": 79360,
+ "Room": 192
+ },
+ {
+ "X": 70144,
+ "Y": -4736,
+ "Z": 79360,
+ "Room": 191
+ },
+ {
+ "X": 73216,
+ "Y": -5120,
+ "Z": 78336,
+ "Room": 181
+ },
+ {
+ "X": 70144,
+ "Y": -5120,
+ "Z": 77312,
+ "Room": 165,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": -5120,
+ "Z": 75264,
+ "Room": 167,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": -6400,
+ "Z": 74240,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 75264,
+ "Y": -5760,
+ "Z": 77312,
+ "Room": 169,
+ "Validated": false
+ },
+ {
+ "X": 76288,
+ "Y": -6400,
+ "Z": 78336,
+ "Room": 197,
+ "Validated": false
+ },
+ {
+ "X": 95744,
+ "Y": -2048,
+ "Z": 76288,
+ "Room": 18,
+ "Validated": false
+ },
+ {
+ "X": 93696,
+ "Y": -7168,
+ "Z": 79360,
+ "Room": 190,
+ "Validated": false
+ },
+ {
+ "X": 73216,
+ "Y": -5376,
+ "Z": 75264,
+ "Room": 166
+ }
+ ],
+ "CRASH.TR2": [
+ {
+ "X": 11776,
+ "Y": -5376,
+ "Z": 74240,
+ "Room": 90
+ },
+ {
+ "X": 12800,
+ "Y": -5376,
+ "Z": 73216,
+ "Room": 86
+ },
+ {
+ "X": 11776,
+ "Y": -5376,
+ "Z": 76288,
+ "Room": 91
+ },
+ {
+ "X": 12800,
+ "Y": -5120,
+ "Z": 79360,
+ "Room": 92,
+ "Validated": false
+ },
+ {
+ "X": 11776,
+ "Y": -6400,
+ "Z": 78336,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 8704,
+ "Y": -5120,
+ "Z": 76288,
+ "Room": 87,
+ "Validated": false
+ },
+ {
+ "X": 10752,
+ "Y": -7936,
+ "Z": 73216,
+ "Room": 90,
+ "Validated": false
+ },
+ {
+ "X": 13824,
+ "Y": -2048,
+ "Z": 76288,
+ "Room": 19,
+ "KeyItemsLow": "15278,15364",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 8704,
+ "Y": -1920,
+ "Z": 79360,
+ "Room": 83,
+ "Validated": false
+ },
+ {
+ "X": 6656,
+ "Y": -4608,
+ "Z": 80384,
+ "Room": 96,
+ "Validated": false
+ },
+ {
+ "X": 6656,
+ "Y": -512,
+ "Z": 83456,
+ "Room": 82,
+ "Validated": false
+ },
+ {
+ "X": 13824,
+ "Y": -5120,
+ "Z": 69120,
+ "Room": 88,
+ "Validated": false
+ },
+ {
+ "X": 15872,
+ "Y": -2688,
+ "Z": 77312,
+ "Room": 93
+ },
+ {
+ "X": 16896,
+ "Y": -5504,
+ "Z": 81408,
+ "Room": 97,
+ "Validated": false
+ },
+ {
+ "X": 25088,
+ "Y": -6400,
+ "Z": 83456,
+ "Room": 95,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": -1792,
+ "Z": 77312,
+ "Room": 18,
+ "KeyItemsLow": "15364,15278",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": -1408,
+ "Z": 79360,
+ "Room": 44
+ },
+ {
+ "X": 44288,
+ "Y": 1792,
+ "Z": 79360,
+ "Room": 51,
+ "KeyItemsLow": "15278,15364",
+ "Range": "Large"
+ },
+ {
+ "X": 44544,
+ "Y": 1792,
+ "Z": 79360,
+ "Room": 51,
+ "KeyItemsLow": "15278,15364",
+ "Range": "Medium"
+ },
+ {
+ "X": 45568,
+ "Y": 1664,
+ "Z": 72192,
+ "Room": 50
+ },
+ {
+ "X": 45568,
+ "Y": 2048,
+ "Z": 70144,
+ "Room": 52
+ },
+ {
+ "X": 47616,
+ "Y": -1408,
+ "Z": 70144,
+ "Room": 49,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 768,
+ "Z": 64000,
+ "Room": 54
+ },
+ {
+ "X": 47616,
+ "Y": -2048,
+ "Z": 61952,
+ "Room": 17
+ },
+ {
+ "X": 47616,
+ "Y": -512,
+ "Z": 58880,
+ "Room": 77
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 56832,
+ "Room": 76
+ },
+ {
+ "X": 60928,
+ "Y": -2688,
+ "Z": 54784,
+ "Room": 2
+ },
+ {
+ "X": 55808,
+ "Y": -5376,
+ "Z": 55808,
+ "Room": 5
+ },
+ {
+ "X": 48640,
+ "Y": -2304,
+ "Z": 56832,
+ "Room": 6
+ },
+ {
+ "X": 49664,
+ "Y": -2304,
+ "Z": 57856,
+ "Room": 33
+ },
+ {
+ "X": 52736,
+ "Y": -2304,
+ "Z": 58880,
+ "Room": 23
+ },
+ {
+ "X": 53760,
+ "Y": -3328,
+ "Z": 62976,
+ "Room": 24
+ },
+ {
+ "X": 58880,
+ "Y": 2048,
+ "Z": 66048,
+ "Room": 26
+ },
+ {
+ "X": 60928,
+ "Y": -2048,
+ "Z": 66048,
+ "Room": 25
+ },
+ {
+ "X": 60928,
+ "Y": -4096,
+ "Z": 61952,
+ "Room": 22
+ },
+ {
+ "X": 59904,
+ "Y": -4096,
+ "Z": 58880,
+ "Room": 5
+ },
+ {
+ "X": 64000,
+ "Y": -3072,
+ "Z": 51712,
+ "Room": 3
+ },
+ {
+ "X": 49664,
+ "Y": -2048,
+ "Z": 47616,
+ "Room": 2
+ },
+ {
+ "X": 48640,
+ "Y": -1920,
+ "Z": 48640,
+ "Room": 77
+ },
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 50688,
+ "Room": 6
+ },
+ {
+ "X": 44544,
+ "Y": 1536,
+ "Z": 45568,
+ "Room": 68,
+ "KeyItemsLow": "15364"
+ },
+ {
+ "X": 44288,
+ "Y": 1536,
+ "Z": 45568,
+ "Room": 68,
+ "KeyItemsLow": "15364",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 1536,
+ "Z": 45312,
+ "Room": 68,
+ "KeyItemsHigh": "15278",
+ "Range": "Medium"
+ },
+ {
+ "X": 44288,
+ "Y": 1536,
+ "Z": 45312,
+ "Room": 68,
+ "KeyItemsHigh": "15278",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": 1408,
+ "Z": 45568,
+ "Room": 69
+ },
+ {
+ "X": 41472,
+ "Y": -512,
+ "Z": 46592,
+ "Room": 48
+ },
+ {
+ "X": 38400,
+ "Y": -1536,
+ "Z": 53760,
+ "Room": 53
+ },
+ {
+ "X": 32256,
+ "Y": -2048,
+ "Z": 46592,
+ "Room": 53,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": 2048,
+ "Z": 51712,
+ "Room": 45
+ },
+ {
+ "X": 22016,
+ "Y": 1792,
+ "Z": 57856,
+ "Room": 47
+ },
+ {
+ "X": 25088,
+ "Y": 2432,
+ "Z": 60928,
+ "Room": 56
+ },
+ {
+ "X": 29184,
+ "Y": 2048,
+ "Z": 64000,
+ "Room": 47
+ },
+ {
+ "X": 30208,
+ "Y": 2048,
+ "Z": 64000,
+ "Room": 46
+ },
+ {
+ "X": 26112,
+ "Y": 2048,
+ "Z": 44544,
+ "Room": 79
+ },
+ {
+ "X": 19968,
+ "Y": 1792,
+ "Z": 70144,
+ "Room": 35
+ },
+ {
+ "X": 27136,
+ "Y": 2048,
+ "Z": 44544,
+ "Room": 80
+ },
+ {
+ "X": 50688,
+ "Y": -512,
+ "Z": 45568,
+ "Room": 78,
+ "KeyItemsHigh": "15364"
+ },
+ {
+ "X": 50944,
+ "Y": -512,
+ "Z": 45568,
+ "Room": 78,
+ "KeyItemsHigh": "15364",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50688,
+ "Y": -512,
+ "Z": 45312,
+ "Room": 78,
+ "KeyItemsLow": "15278",
+ "Range": "Medium"
+ },
+ {
+ "X": 50944,
+ "Y": -512,
+ "Z": 45312,
+ "Room": 78,
+ "KeyItemsLow": "15278",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59904,
+ "Y": 1024,
+ "Z": 40448,
+ "Room": 43
+ },
+ {
+ "X": 54784,
+ "Y": 1024,
+ "Z": 38400,
+ "Room": 29
+ },
+ {
+ "X": 62976,
+ "Y": -1792,
+ "Z": 45568,
+ "Room": 1
+ },
+ {
+ "X": 72192,
+ "Y": -256,
+ "Z": 40448,
+ "Room": 28,
+ "KeyItemsLow": "15278"
+ },
+ {
+ "X": 72192,
+ "Y": -256,
+ "Z": 40192,
+ "Room": 28,
+ "KeyItemsLow": "15278",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72448,
+ "Y": -256,
+ "Z": 40448,
+ "Room": 28,
+ "KeyItemsHigh": "15364",
+ "Range": "Medium"
+ },
+ {
+ "X": 72448,
+ "Y": -256,
+ "Z": 40192,
+ "Room": 28,
+ "KeyItemsHigh": "15364",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72192,
+ "Y": -256,
+ "Z": 39424,
+ "Room": 32
+ },
+ {
+ "X": 71168,
+ "Y": -256,
+ "Z": 36352,
+ "Room": 20
+ },
+ {
+ "X": 69120,
+ "Y": -256,
+ "Z": 35328,
+ "Room": 67
+ },
+ {
+ "X": 68096,
+ "Y": -256,
+ "Z": 33280,
+ "Room": 57
+ },
+ {
+ "X": 67072,
+ "Y": -2048,
+ "Z": 34304,
+ "Room": 58
+ },
+ {
+ "X": 65024,
+ "Y": -4352,
+ "Z": 33280,
+ "Room": 59
+ },
+ {
+ "X": 71168,
+ "Y": -6272,
+ "Z": 32256,
+ "Room": 60
+ },
+ {
+ "X": 70144,
+ "Y": -8576,
+ "Z": 25088,
+ "Room": 62
+ },
+ {
+ "X": 72192,
+ "Y": -6144,
+ "Z": 24064,
+ "Room": 60,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": 2560,
+ "Z": 26112,
+ "Room": 61
+ },
+ {
+ "X": 68096,
+ "Y": 0,
+ "Z": 20992,
+ "Room": 70
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 20992,
+ "Room": 71
+ },
+ {
+ "X": 64000,
+ "Y": 0,
+ "Z": 18944,
+ "Room": 72
+ },
+ {
+ "X": 62976,
+ "Y": -2048,
+ "Z": 17920,
+ "Room": 30
+ },
+ {
+ "X": 80384,
+ "Y": -4096,
+ "Z": 45568,
+ "Room": 11,
+ "KeyItemsLow": "15364"
+ },
+ {
+ "X": 80640,
+ "Y": -4096,
+ "Z": 45568,
+ "Room": 11,
+ "KeyItemsLow": "15364",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80640,
+ "Y": -4096,
+ "Z": 45312,
+ "Room": 11,
+ "KeyItemsLow": "15364",
+ "Range": "Medium"
+ },
+ {
+ "X": 80384,
+ "Y": -4096,
+ "Z": 45312,
+ "Room": 11,
+ "KeyItemsLow": "15364",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": -4864,
+ "Z": 39424,
+ "Room": 14,
+ "Validated": false
+ },
+ {
+ "X": 74240,
+ "Y": -2816,
+ "Z": 38400,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 76288,
+ "Y": -1664,
+ "Z": 38400,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 54784,
+ "Y": -2432,
+ "Z": 49664,
+ "Room": 4
+ },
+ {
+ "X": 53760,
+ "Y": -2560,
+ "Z": 49664,
+ "Room": 16
+ },
+ {
+ "X": 60928,
+ "Y": -256,
+ "Z": 49664,
+ "Room": 9
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 49664,
+ "Room": 38
+ },
+ {
+ "X": 80384,
+ "Y": -2048,
+ "Z": 55040,
+ "Room": 3,
+ "KeyItemsHigh": "15278,15364"
+ },
+ {
+ "X": 80384,
+ "Y": -2048,
+ "Z": 54784,
+ "Room": 3,
+ "KeyItemsHigh": "15278,15364",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80384,
+ "Y": -2048,
+ "Z": 54528,
+ "Room": 3,
+ "KeyItemsHigh": "15278,15364",
+ "Range": "Medium"
+ },
+ {
+ "X": 80640,
+ "Y": -2048,
+ "Z": 54528,
+ "Room": 3,
+ "KeyItemsHigh": "15278,15364",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 80640,
+ "Y": -2048,
+ "Z": 54784,
+ "Room": 3,
+ "KeyItemsHigh": "15278,15364",
+ "Range": "Large"
+ },
+ {
+ "X": 80640,
+ "Y": -2048,
+ "Z": 55040,
+ "Room": 3,
+ "KeyItemsHigh": "15278,15364",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 81408,
+ "Y": -2048,
+ "Z": 55808,
+ "Room": 42
+ },
+ {
+ "X": 78336,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 41
+ }
+ ],
+ "RAPIDS.TR2": [
+ {
+ "X": 73216,
+ "Y": -25984,
+ "Z": 55808,
+ "Room": 50
+ },
+ {
+ "X": 76288,
+ "Y": -27392,
+ "Z": 45568,
+ "Room": 53
+ },
+ {
+ "X": 71168,
+ "Y": -25088,
+ "Z": 48640,
+ "Room": 48
+ },
+ {
+ "X": 69120,
+ "Y": -21632,
+ "Z": 47616,
+ "Room": 44
+ },
+ {
+ "X": 65024,
+ "Y": -25856,
+ "Z": 57856,
+ "Room": 54,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": -25856,
+ "Z": 62976,
+ "Room": 52,
+ "Validated": false
+ },
+ {
+ "X": 68096,
+ "Y": -23168,
+ "Z": 62976,
+ "Room": 55,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": -28160,
+ "Z": 51712,
+ "Room": 99
+ },
+ {
+ "X": 77312,
+ "Y": -22784,
+ "Z": 51712,
+ "Room": 78
+ },
+ {
+ "X": 76288,
+ "Y": -22784,
+ "Z": 51712,
+ "Room": 78
+ },
+ {
+ "X": 66048,
+ "Y": -22528,
+ "Z": 43520,
+ "Room": 45
+ },
+ {
+ "X": 62976,
+ "Y": -20736,
+ "Z": 42496,
+ "Room": 49
+ },
+ {
+ "X": 68096,
+ "Y": -23296,
+ "Z": 37376,
+ "Room": 47
+ },
+ {
+ "X": 68096,
+ "Y": -23040,
+ "Z": 35328,
+ "Room": 33
+ },
+ {
+ "X": 65024,
+ "Y": -21248,
+ "Z": 33280,
+ "Room": 58
+ },
+ {
+ "X": 65024,
+ "Y": -17408,
+ "Z": 28160,
+ "Room": 57
+ },
+ {
+ "X": 66048,
+ "Y": -17408,
+ "Z": 27136,
+ "Room": 37
+ },
+ {
+ "X": 67072,
+ "Y": -17408,
+ "Z": 26112,
+ "Room": 35
+ },
+ {
+ "X": 66048,
+ "Y": -18688,
+ "Z": 22016,
+ "Room": 36
+ },
+ {
+ "X": 71168,
+ "Y": -21760,
+ "Z": 22016,
+ "Room": 32
+ },
+ {
+ "X": 59904,
+ "Y": -19072,
+ "Z": 28160,
+ "Room": 39
+ },
+ {
+ "X": 55808,
+ "Y": -18688,
+ "Z": 28160,
+ "Room": 46
+ },
+ {
+ "X": 53760,
+ "Y": -18560,
+ "Z": 24064,
+ "Room": 20
+ },
+ {
+ "X": 53760,
+ "Y": -17664,
+ "Z": 19968,
+ "Room": 7
+ },
+ {
+ "X": 71168,
+ "Y": -23040,
+ "Z": 33280,
+ "Room": 14
+ },
+ {
+ "X": 72192,
+ "Y": -20992,
+ "Z": 33280,
+ "Room": 18
+ },
+ {
+ "X": 73216,
+ "Y": -20992,
+ "Z": 35328,
+ "Room": 11
+ },
+ {
+ "X": 77312,
+ "Y": -20736,
+ "Z": 38400,
+ "Room": 77
+ },
+ {
+ "X": 82432,
+ "Y": -16640,
+ "Z": 39424,
+ "Room": 17
+ },
+ {
+ "X": 88576,
+ "Y": -22016,
+ "Z": 38400,
+ "Room": 76
+ },
+ {
+ "X": 87552,
+ "Y": -19712,
+ "Z": 31232,
+ "Room": 13
+ },
+ {
+ "X": 84480,
+ "Y": -14848,
+ "Z": 25088,
+ "Room": 23,
+ "Validated": false
+ },
+ {
+ "X": 84480,
+ "Y": -21760,
+ "Z": 24064,
+ "Room": 16
+ },
+ {
+ "X": 83456,
+ "Y": -21760,
+ "Z": 24064,
+ "Room": 18
+ },
+ {
+ "X": 80384,
+ "Y": -24192,
+ "Z": 20992,
+ "Room": 14
+ },
+ {
+ "X": 79360,
+ "Y": -21248,
+ "Z": 18944,
+ "Room": 6
+ },
+ {
+ "X": 79360,
+ "Y": -23040,
+ "Z": 18944,
+ "Room": 15,
+ "Validated": false
+ },
+ {
+ "X": 80384,
+ "Y": -21120,
+ "Z": 15872,
+ "Room": 26
+ },
+ {
+ "X": 78336,
+ "Y": -20992,
+ "Z": 12800,
+ "Room": 25
+ },
+ {
+ "X": 81408,
+ "Y": -24448,
+ "Z": 19968,
+ "Room": 24
+ },
+ {
+ "X": 83456,
+ "Y": -24320,
+ "Z": 18944,
+ "Room": 27
+ },
+ {
+ "X": 87552,
+ "Y": -25088,
+ "Z": 18944,
+ "Room": 143
+ },
+ {
+ "X": 89600,
+ "Y": -25088,
+ "Z": 20992,
+ "Room": 28
+ },
+ {
+ "X": 90624,
+ "Y": -19584,
+ "Z": 23040,
+ "Room": 30
+ },
+ {
+ "X": 91648,
+ "Y": -20480,
+ "Z": 19968,
+ "Room": 144
+ },
+ {
+ "X": 47616,
+ "Y": 3072,
+ "Z": 84480,
+ "Room": 101
+ },
+ {
+ "X": 51712,
+ "Y": 7424,
+ "Z": 83456,
+ "Room": 103
+ },
+ {
+ "X": 51712,
+ "Y": 3840,
+ "Z": 80384,
+ "Room": 102
+ },
+ {
+ "X": 47616,
+ "Y": 4608,
+ "Z": 62976,
+ "Room": 64
+ },
+ {
+ "X": 43520,
+ "Y": 4864,
+ "Z": 59904,
+ "Room": 125
+ },
+ {
+ "X": 43520,
+ "Y": 2048,
+ "Z": 57856,
+ "Room": 79
+ },
+ {
+ "X": 43520,
+ "Y": 4352,
+ "Z": 55808,
+ "Room": 81
+ },
+ {
+ "X": 39424,
+ "Y": 2048,
+ "Z": 57856,
+ "Room": 79
+ },
+ {
+ "X": 40448,
+ "Y": 1536,
+ "Z": 42496,
+ "Room": 71
+ },
+ {
+ "X": 38400,
+ "Y": -4480,
+ "Z": 35328,
+ "Room": 66
+ },
+ {
+ "X": 39424,
+ "Y": -4608,
+ "Z": 32256,
+ "Room": 126
+ },
+ {
+ "X": 39424,
+ "Y": 512,
+ "Z": 31232,
+ "Room": 128
+ },
+ {
+ "X": 50688,
+ "Y": -1792,
+ "Z": 31232,
+ "Room": 129
+ },
+ {
+ "X": 55808,
+ "Y": -1792,
+ "Z": 33280,
+ "Room": 130
+ },
+ {
+ "X": 55808,
+ "Y": -5120,
+ "Z": 41472,
+ "Room": 72
+ },
+ {
+ "X": 50688,
+ "Y": -5248,
+ "Z": 44544,
+ "Room": 73,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -5120,
+ "Z": 50688,
+ "Room": 131
+ },
+ {
+ "X": 59904,
+ "Y": -5120,
+ "Z": 50688,
+ "Room": 132
+ },
+ {
+ "X": 56832,
+ "Y": -4224,
+ "Z": 54784,
+ "Room": 90
+ },
+ {
+ "X": 59904,
+ "Y": -4352,
+ "Z": 56832,
+ "Room": 59,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 1792,
+ "Z": 73216,
+ "Room": 104
+ },
+ {
+ "X": 51712,
+ "Y": -1664,
+ "Z": 74240,
+ "Room": 118
+ },
+ {
+ "X": 51712,
+ "Y": -1792,
+ "Z": 76288,
+ "Room": 134
+ },
+ {
+ "X": 52736,
+ "Y": -768,
+ "Z": 79360,
+ "Room": 136
+ },
+ {
+ "X": 53760,
+ "Y": 14336,
+ "Z": 74240,
+ "Room": 137
+ },
+ {
+ "X": 53760,
+ "Y": 14336,
+ "Z": 73216,
+ "Room": 97
+ },
+ {
+ "X": 53760,
+ "Y": 14336,
+ "Z": 70144,
+ "Room": 138
+ },
+ {
+ "X": 52736,
+ "Y": 14336,
+ "Z": 73216,
+ "Room": 140
+ },
+ {
+ "X": 49664,
+ "Y": 14336,
+ "Z": 72192,
+ "Room": 139
+ },
+ {
+ "X": 43520,
+ "Y": 13056,
+ "Z": 72192,
+ "Room": 95
+ },
+ {
+ "X": 56832,
+ "Y": 13056,
+ "Z": 72192,
+ "Room": 96
+ }
+ ],
+ "TRIBOSS.TR2": [
+ {
+ "X": 46592,
+ "Y": -9344,
+ "Z": 60928,
+ "Room": 0
+ },
+ {
+ "X": 44544,
+ "Y": -9472,
+ "Z": 58880,
+ "Room": 5
+ },
+ {
+ "X": 35328,
+ "Y": -13824,
+ "Z": 58880,
+ "Room": 7
+ },
+ {
+ "X": 30208,
+ "Y": -15616,
+ "Z": 58880,
+ "Room": 10
+ },
+ {
+ "X": 37376,
+ "Y": -17408,
+ "Z": 56832,
+ "Room": 16
+ },
+ {
+ "X": 39424,
+ "Y": -16640,
+ "Z": 52736,
+ "Room": 15
+ },
+ {
+ "X": 45568,
+ "Y": -16640,
+ "Z": 52736,
+ "Room": 17
+ },
+ {
+ "X": 49664,
+ "Y": -14592,
+ "Z": 51712,
+ "Room": 20
+ },
+ {
+ "X": 50688,
+ "Y": -14592,
+ "Z": 51712,
+ "Room": 21
+ },
+ {
+ "X": 50688,
+ "Y": -11008,
+ "Z": 50688,
+ "Room": 25
+ },
+ {
+ "X": 50688,
+ "Y": -10240,
+ "Z": 48640,
+ "Room": 22
+ },
+ {
+ "X": 46592,
+ "Y": -9984,
+ "Z": 47616,
+ "Room": 23
+ },
+ {
+ "X": 30208,
+ "Y": -18176,
+ "Z": 59904,
+ "Room": 11
+ },
+ {
+ "X": 30208,
+ "Y": -18176,
+ "Z": 61952,
+ "Room": 13
+ },
+ {
+ "X": 48640,
+ "Y": -8704,
+ "Z": 57856,
+ "Room": 1
+ },
+ {
+ "X": 51712,
+ "Y": -8832,
+ "Z": 57856,
+ "Room": 28
+ },
+ {
+ "X": 56832,
+ "Y": -5376,
+ "Z": 57856,
+ "Room": 29
+ }
+ ],
+ "ROOFS.TR2": [
+ {
+ "X": 41216,
+ "Y": -21504,
+ "Z": 41472,
+ "Room": 52,
+ "KeyItemsLow": "18161"
+ },
+ {
+ "X": 41472,
+ "Y": -21504,
+ "Z": 41472,
+ "Room": 52,
+ "KeyItemsLow": "18161",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41728,
+ "Y": -21504,
+ "Z": 41472,
+ "Room": 52,
+ "KeyItemsLow": "18161,18524",
+ "Range": "Medium"
+ },
+ {
+ "X": 41728,
+ "Y": -21504,
+ "Z": 41216,
+ "Room": 52,
+ "KeyItemsLow": "18161,18524",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": -21504,
+ "Z": 41216,
+ "Room": 52,
+ "KeyItemsLow": "18161,18524",
+ "Range": "Large"
+ },
+ {
+ "X": 41216,
+ "Y": -21504,
+ "Z": 41216,
+ "Room": 52,
+ "KeyItemsLow": "18161,18524",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": -21504,
+ "Z": 41472,
+ "Room": 25
+ },
+ {
+ "X": 36352,
+ "Y": -25856,
+ "Z": 38400,
+ "Room": 128,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": -19200,
+ "Z": 39424,
+ "Room": 127
+ },
+ {
+ "X": 44544,
+ "Y": -21760,
+ "Z": 38400,
+ "Room": 45
+ },
+ {
+ "X": 45568,
+ "Y": -19712,
+ "Z": 37376,
+ "Room": 130
+ },
+ {
+ "X": 45568,
+ "Y": -17152,
+ "Z": 32256,
+ "Room": 135
+ },
+ {
+ "X": 45568,
+ "Y": -14848,
+ "Z": 30208,
+ "Room": 136
+ },
+ {
+ "X": 46592,
+ "Y": -13312,
+ "Z": 30208,
+ "Room": 148,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -11648,
+ "Z": 26112,
+ "Room": 34
+ },
+ {
+ "X": 47616,
+ "Y": -11776,
+ "Z": 24064,
+ "Room": 36
+ },
+ {
+ "X": 45568,
+ "Y": -11520,
+ "Z": 24064,
+ "Room": 35
+ },
+ {
+ "X": 48640,
+ "Y": -18944,
+ "Z": 31232,
+ "Room": 129
+ },
+ {
+ "X": 41472,
+ "Y": -18688,
+ "Z": 41472,
+ "Room": 131
+ },
+ {
+ "X": 39424,
+ "Y": -14848,
+ "Z": 45568,
+ "Room": 95,
+ "KeyItemsLow": "18524"
+ },
+ {
+ "X": 39424,
+ "Y": -14848,
+ "Z": 45824,
+ "Room": 95,
+ "KeyItemsLow": "18524",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": -14848,
+ "Z": 46592,
+ "Room": 99
+ },
+ {
+ "X": 39424,
+ "Y": -14848,
+ "Z": 47616,
+ "Room": 158
+ },
+ {
+ "X": 42496,
+ "Y": -14848,
+ "Z": 53760,
+ "Room": 175
+ },
+ {
+ "X": 43520,
+ "Y": -14848,
+ "Z": 47616,
+ "Room": 172
+ },
+ {
+ "X": 41472,
+ "Y": -12032,
+ "Z": 51712,
+ "Room": 173
+ },
+ {
+ "X": 41472,
+ "Y": -8704,
+ "Z": 51712,
+ "Room": 174
+ },
+ {
+ "X": 39424,
+ "Y": -12288,
+ "Z": 45568,
+ "Room": 96
+ },
+ {
+ "X": 37376,
+ "Y": -13824,
+ "Z": 46592,
+ "Room": 156
+ },
+ {
+ "X": 36352,
+ "Y": -13952,
+ "Z": 47616,
+ "Room": 49
+ },
+ {
+ "X": 35328,
+ "Y": -13952,
+ "Z": 47616,
+ "Room": 157
+ },
+ {
+ "X": 35328,
+ "Y": -13824,
+ "Z": 46592,
+ "Room": 155
+ },
+ {
+ "X": 35328,
+ "Y": -14848,
+ "Z": 55808,
+ "Room": 153
+ },
+ {
+ "X": 36352,
+ "Y": -16128,
+ "Z": 55808,
+ "Room": 152
+ },
+ {
+ "X": 34304,
+ "Y": -7936,
+ "Z": 45568,
+ "Room": 166
+ },
+ {
+ "X": 34304,
+ "Y": -9216,
+ "Z": 41472,
+ "Room": 98
+ },
+ {
+ "X": 37376,
+ "Y": -20224,
+ "Z": 41472,
+ "Room": 62
+ },
+ {
+ "X": 39424,
+ "Y": -17792,
+ "Z": 45568,
+ "Room": 86
+ },
+ {
+ "X": 42496,
+ "Y": -20736,
+ "Z": 55808,
+ "Room": 122
+ },
+ {
+ "X": 43520,
+ "Y": -21888,
+ "Z": 54784,
+ "Room": 126,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": -20736,
+ "Z": 57856,
+ "Room": 144,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": -20736,
+ "Z": 57856,
+ "Room": 125,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -21504,
+ "Z": 55808,
+ "Room": 116,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": -17920,
+ "Z": 57856,
+ "Room": 102,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": -17920,
+ "Z": 61952,
+ "Room": 179,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": -14848,
+ "Z": 61952,
+ "Room": 183,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": -14848,
+ "Z": 61952,
+ "Room": 147,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": -14848,
+ "Z": 70144,
+ "Room": 53,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": -12032,
+ "Z": 77312,
+ "Room": 56,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -12032,
+ "Z": 71168,
+ "Room": 63,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -19584,
+ "Z": 74240,
+ "Room": 188,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": -16256,
+ "Z": 67072,
+ "Room": 119,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": -15872,
+ "Z": 68096,
+ "Room": 120,
+ "Validated": false
+ },
+ {
+ "X": 68096,
+ "Y": -18944,
+ "Z": 68096,
+ "Room": 118,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": -15616,
+ "Z": 58880,
+ "Room": 103,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": -21504,
+ "Z": 59904,
+ "Room": 22
+ },
+ {
+ "X": 38144,
+ "Y": -17664,
+ "Z": 53760,
+ "Room": 50,
+ "KeyItemsHigh": "18524"
+ },
+ {
+ "X": 38400,
+ "Y": -17664,
+ "Z": 53760,
+ "Room": 50,
+ "KeyItemsHigh": "18524",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38656,
+ "Y": -17664,
+ "Z": 53760,
+ "Room": 50,
+ "KeyItemsHigh": "18524",
+ "Range": "Medium"
+ },
+ {
+ "X": 38656,
+ "Y": -17664,
+ "Z": 53504,
+ "Room": 50,
+ "KeyItemsHigh": "18524",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": -17664,
+ "Z": 53504,
+ "Room": 50,
+ "KeyItemsHigh": "18524",
+ "Range": "Large"
+ },
+ {
+ "X": 38144,
+ "Y": -17664,
+ "Z": 53504,
+ "Room": 50,
+ "KeyItemsHigh": "18524",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": -17664,
+ "Z": 52736,
+ "Room": 48
+ },
+ {
+ "X": 42496,
+ "Y": -21760,
+ "Z": 49664,
+ "Room": 65
+ },
+ {
+ "X": 43520,
+ "Y": -18304,
+ "Z": 49664,
+ "Room": 159
+ },
+ {
+ "X": 43520,
+ "Y": -14848,
+ "Z": 57856,
+ "Room": 181
+ },
+ {
+ "X": 42496,
+ "Y": -13184,
+ "Z": 61952,
+ "Room": 182
+ },
+ {
+ "X": 32256,
+ "Y": -8448,
+ "Z": 61952,
+ "Room": 70
+ },
+ {
+ "X": 31232,
+ "Y": -7936,
+ "Z": 58880,
+ "Room": 71
+ },
+ {
+ "X": 30208,
+ "Y": -7936,
+ "Z": 41472,
+ "Room": 11
+ },
+ {
+ "X": 29184,
+ "Y": -7936,
+ "Z": 41472,
+ "Room": 9
+ },
+ {
+ "X": 28160,
+ "Y": -8192,
+ "Z": 44544,
+ "Room": 10
+ },
+ {
+ "X": 27136,
+ "Y": -8192,
+ "Z": 47616,
+ "Room": 7
+ },
+ {
+ "X": 26112,
+ "Y": -512,
+ "Z": 45568,
+ "Room": 3
+ },
+ {
+ "X": 30208,
+ "Y": -7936,
+ "Z": 50688,
+ "Room": 38
+ },
+ {
+ "X": 29184,
+ "Y": -7936,
+ "Z": 53760,
+ "Room": 39
+ },
+ {
+ "X": 28160,
+ "Y": -8192,
+ "Z": 53760,
+ "Room": 40
+ },
+ {
+ "X": 27136,
+ "Y": -6656,
+ "Z": 53760,
+ "Room": 37
+ },
+ {
+ "X": 27136,
+ "Y": -8192,
+ "Z": 56832,
+ "Room": 69
+ },
+ {
+ "X": 24064,
+ "Y": -3328,
+ "Z": 53760,
+ "Room": 59
+ },
+ {
+ "X": 27136,
+ "Y": 0,
+ "Z": 54784,
+ "Room": 76
+ },
+ {
+ "X": 17920,
+ "Y": 0,
+ "Z": 54784,
+ "Room": 77
+ },
+ {
+ "X": 16896,
+ "Y": -1024,
+ "Z": 54784,
+ "Room": 93
+ },
+ {
+ "X": 16896,
+ "Y": -3456,
+ "Z": 54784,
+ "Room": 78
+ },
+ {
+ "X": 16896,
+ "Y": -3840,
+ "Z": 56832,
+ "Room": 189
+ },
+ {
+ "X": 19968,
+ "Y": -4352,
+ "Z": 61952,
+ "Room": 83
+ },
+ {
+ "X": 30208,
+ "Y": -2816,
+ "Z": 61952,
+ "Room": 67
+ },
+ {
+ "X": 28160,
+ "Y": -2560,
+ "Z": 61952,
+ "Room": 66
+ },
+ {
+ "X": 27136,
+ "Y": -2048,
+ "Z": 66048,
+ "Room": 32
+ },
+ {
+ "X": 28160,
+ "Y": -2560,
+ "Z": 69120,
+ "Room": 187
+ },
+ {
+ "X": 25088,
+ "Y": -2048,
+ "Z": 70144,
+ "Room": 185
+ },
+ {
+ "X": 24064,
+ "Y": -2048,
+ "Z": 70144,
+ "Room": 186
+ },
+ {
+ "X": 23040,
+ "Y": -1792,
+ "Z": 72192,
+ "Room": 68
+ },
+ {
+ "X": 23040,
+ "Y": -2048,
+ "Z": 68096,
+ "Room": 33
+ },
+ {
+ "X": 23040,
+ "Y": -2048,
+ "Z": 65024,
+ "Room": 73
+ },
+ {
+ "X": 25088,
+ "Y": -2048,
+ "Z": 64000,
+ "Room": 72
+ },
+ {
+ "X": 25088,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 184
+ },
+ {
+ "X": 25088,
+ "Y": -2048,
+ "Z": 57856,
+ "Room": 82
+ },
+ {
+ "X": 25088,
+ "Y": -8192,
+ "Z": 39424,
+ "Room": 44
+ },
+ {
+ "X": 25088,
+ "Y": -8192,
+ "Z": 38400,
+ "Room": 42
+ },
+ {
+ "X": 22016,
+ "Y": -8448,
+ "Z": 37376,
+ "Room": 43
+ },
+ {
+ "X": 22016,
+ "Y": -8448,
+ "Z": 36352,
+ "Room": 8
+ },
+ {
+ "X": 24064,
+ "Y": -256,
+ "Z": 35328,
+ "Room": 4
+ },
+ {
+ "X": 28160,
+ "Y": -8448,
+ "Z": 36352,
+ "Room": 64
+ },
+ {
+ "X": 29184,
+ "Y": -8448,
+ "Z": 36352,
+ "Room": 61
+ },
+ {
+ "X": 18944,
+ "Y": -11264,
+ "Z": 30208,
+ "Room": 123
+ },
+ {
+ "X": 18944,
+ "Y": -11264,
+ "Z": 37376,
+ "Room": 75
+ },
+ {
+ "X": 18944,
+ "Y": -11264,
+ "Z": 41472,
+ "Room": 80
+ },
+ {
+ "X": 24064,
+ "Y": 1152,
+ "Z": 29184,
+ "Room": 88
+ },
+ {
+ "X": 23040,
+ "Y": 1536,
+ "Z": 24064,
+ "Room": 87
+ },
+ {
+ "X": 41472,
+ "Y": -4096,
+ "Z": 25088,
+ "Room": 90
+ },
+ {
+ "X": 48640,
+ "Y": -5632,
+ "Z": 24064,
+ "Room": 84
+ },
+ {
+ "X": 46592,
+ "Y": -6400,
+ "Z": 23040,
+ "Room": 13
+ },
+ {
+ "X": 50688,
+ "Y": -8704,
+ "Z": 23040,
+ "Room": 150
+ },
+ {
+ "X": 45568,
+ "Y": -8704,
+ "Z": 24064,
+ "Room": 12
+ },
+ {
+ "X": 49664,
+ "Y": -8704,
+ "Z": 31232,
+ "Room": 160
+ },
+ {
+ "X": 48640,
+ "Y": -8704,
+ "Z": 32256,
+ "Room": 51
+ },
+ {
+ "X": 50688,
+ "Y": -12544,
+ "Z": 35328,
+ "Room": 148
+ },
+ {
+ "X": 51712,
+ "Y": -14848,
+ "Z": 36352,
+ "Room": 108
+ },
+ {
+ "X": 55808,
+ "Y": -17152,
+ "Z": 39424,
+ "Room": 107
+ },
+ {
+ "X": 57856,
+ "Y": -18176,
+ "Z": 40448,
+ "Room": 106
+ },
+ {
+ "X": 57856,
+ "Y": -20224,
+ "Z": 37376,
+ "Room": 124,
+ "Validated": false
+ },
+ {
+ "X": 64000,
+ "Y": -20736,
+ "Z": 35328,
+ "Room": 112,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": -21504,
+ "Z": 27136,
+ "Room": 113
+ },
+ {
+ "X": 50688,
+ "Y": -21504,
+ "Z": 27136,
+ "Room": 132,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": -19200,
+ "Z": 42496,
+ "Room": 2
+ },
+ {
+ "X": 57856,
+ "Y": -25728,
+ "Z": 43520,
+ "Room": 1,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -21760,
+ "Z": 46592,
+ "Room": 0
+ },
+ {
+ "X": 51712,
+ "Y": -15616,
+ "Z": 55808,
+ "Room": 180
+ },
+ {
+ "X": 50688,
+ "Y": -13312,
+ "Z": 56832,
+ "Room": 140
+ },
+ {
+ "X": 57600,
+ "Y": -17920,
+ "Z": 55808,
+ "Room": 178,
+ "KeyItemsHigh": "18161"
+ },
+ {
+ "X": 57856,
+ "Y": -17920,
+ "Z": 55808,
+ "Room": 178,
+ "KeyItemsHigh": "18161",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 58112,
+ "Y": -17920,
+ "Z": 55808,
+ "Room": 178,
+ "KeyItemsHigh": "18161",
+ "Range": "Medium"
+ },
+ {
+ "X": 58112,
+ "Y": -17920,
+ "Z": 56064,
+ "Room": 178,
+ "KeyItemsHigh": "18161",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": -17920,
+ "Z": 56064,
+ "Room": 178,
+ "KeyItemsHigh": "18161",
+ "Range": "Large"
+ },
+ {
+ "X": 57600,
+ "Y": -17920,
+ "Z": 56064,
+ "Room": 178,
+ "KeyItemsHigh": "18161",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "SEWER.TR2": [
+ {
+ "X": 71168,
+ "Y": -10624,
+ "Z": 98816,
+ "Room": 157
+ },
+ {
+ "X": 72192,
+ "Y": -8064,
+ "Z": 98816,
+ "Room": 0,
+ "Validated": false
+ },
+ {
+ "X": 70144,
+ "Y": -7168,
+ "Z": 98816,
+ "Room": 49
+ },
+ {
+ "X": 71168,
+ "Y": 1024,
+ "Z": 97792,
+ "Room": 21
+ },
+ {
+ "X": 71168,
+ "Y": -2304,
+ "Z": 97024,
+ "Room": 23,
+ "KeyItemsLow": "19343"
+ },
+ {
+ "X": 71168,
+ "Y": -2304,
+ "Z": 96768,
+ "Room": 23,
+ "KeyItemsLow": "19343",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": -2304,
+ "Z": 96512,
+ "Room": 23,
+ "KeyItemsLow": "19343",
+ "Range": "Medium"
+ },
+ {
+ "X": 71424,
+ "Y": -2304,
+ "Z": 96512,
+ "Room": 23,
+ "KeyItemsLow": "19343",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71424,
+ "Y": -2304,
+ "Z": 96768,
+ "Room": 23,
+ "KeyItemsLow": "19343,19465,19448",
+ "Range": "Large"
+ },
+ {
+ "X": 71424,
+ "Y": -2304,
+ "Z": 97024,
+ "Room": 23,
+ "KeyItemsLow": "19343,19465,19448",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": -2304,
+ "Z": 94720,
+ "Room": 34
+ },
+ {
+ "X": 71168,
+ "Y": -3328,
+ "Z": 90624,
+ "Room": 29
+ },
+ {
+ "X": 66048,
+ "Y": -4864,
+ "Z": 93696,
+ "Room": 146
+ },
+ {
+ "X": 69120,
+ "Y": -6912,
+ "Z": 91648,
+ "Room": 37
+ },
+ {
+ "X": 69120,
+ "Y": -8704,
+ "Z": 90624,
+ "Room": 110
+ },
+ {
+ "X": 65024,
+ "Y": -5888,
+ "Z": 85248,
+ "Room": 37,
+ "KeyItemsHigh": "19302",
+ "KeyItemsLow": "19302"
+ },
+ {
+ "X": 65024,
+ "Y": -5888,
+ "Z": 85504,
+ "Room": 37,
+ "KeyItemsHigh": "19302",
+ "KeyItemsLow": "19302",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 65024,
+ "Y": -5888,
+ "Z": 85760,
+ "Room": 37,
+ "KeyItemsHigh": "19302",
+ "KeyItemsLow": "19302",
+ "Range": "Medium"
+ },
+ {
+ "X": 64768,
+ "Y": -5888,
+ "Z": 85760,
+ "Room": 37,
+ "KeyItemsHigh": "19302",
+ "KeyItemsLow": "19302",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64768,
+ "Y": -5888,
+ "Z": 85504,
+ "Room": 37,
+ "KeyItemsHigh": "19302",
+ "KeyItemsLow": "19302",
+ "Range": "Large"
+ },
+ {
+ "X": 64768,
+ "Y": -5888,
+ "Z": 85248,
+ "Room": 37,
+ "KeyItemsHigh": "19302",
+ "KeyItemsLow": "19302",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 69120,
+ "Y": -11264,
+ "Z": 85504,
+ "Room": 120
+ },
+ {
+ "X": 71168,
+ "Y": -5888,
+ "Z": 83456,
+ "Room": 38
+ },
+ {
+ "X": 71168,
+ "Y": -5888,
+ "Z": 85504,
+ "Room": 151
+ },
+ {
+ "X": 70144,
+ "Y": -5888,
+ "Z": 86528,
+ "Room": 152
+ },
+ {
+ "X": 61952,
+ "Y": -5632,
+ "Z": 76288,
+ "Room": 39
+ },
+ {
+ "X": 58112,
+ "Y": 768,
+ "Z": 60928,
+ "Room": 41,
+ "KeyItemsHigh": "19343",
+ "KeyItemsLow": "19279"
+ },
+ {
+ "X": 57856,
+ "Y": 768,
+ "Z": 60928,
+ "Room": 41,
+ "KeyItemsHigh": "19343",
+ "KeyItemsLow": "19279",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57600,
+ "Y": 768,
+ "Z": 60928,
+ "Room": 41,
+ "KeyItemsLow": "19362,19239,19279",
+ "Range": "Medium"
+ },
+ {
+ "X": 57600,
+ "Y": 768,
+ "Z": 61184,
+ "Room": 41,
+ "KeyItemsLow": "19362,19239,19279",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": 768,
+ "Z": 61184,
+ "Room": 41,
+ "KeyItemsLow": "19239,19362,19279",
+ "Range": "Large"
+ },
+ {
+ "X": 58112,
+ "Y": 768,
+ "Z": 61184,
+ "Room": 41,
+ "KeyItemsLow": "19239,19362,19279",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 60928,
+ "Y": 768,
+ "Z": 57856,
+ "Room": 42
+ },
+ {
+ "X": 65024,
+ "Y": 1408,
+ "Z": 55808,
+ "Room": 148
+ },
+ {
+ "X": 76288,
+ "Y": 3840,
+ "Z": 55808,
+ "Room": 98,
+ "Validated": false
+ },
+ {
+ "X": 87552,
+ "Y": 6528,
+ "Z": 55808,
+ "Room": 141,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 1408,
+ "Z": 55808,
+ "Room": 51
+ },
+ {
+ "X": 34304,
+ "Y": 3840,
+ "Z": 55808,
+ "Room": 90,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": 6656,
+ "Z": 55808,
+ "Room": 142,
+ "Validated": false
+ },
+ {
+ "X": 10752,
+ "Y": 9344,
+ "Z": 55808,
+ "Room": 144,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 768,
+ "Z": 57856,
+ "Room": 20,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": 768,
+ "Z": 58880,
+ "Room": 68,
+ "Validated": false
+ },
+ {
+ "X": 60928,
+ "Y": 3456,
+ "Z": 62976,
+ "Room": 44
+ },
+ {
+ "X": 72192,
+ "Y": 4736,
+ "Z": 62976,
+ "Room": 16,
+ "Validated": false
+ },
+ {
+ "X": 82432,
+ "Y": 4864,
+ "Z": 62976,
+ "Room": 121,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": 4608,
+ "Z": 62976,
+ "Room": 54,
+ "Validated": false
+ },
+ {
+ "X": 33280,
+ "Y": 6272,
+ "Z": 62976,
+ "Room": 125,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": 6400,
+ "Z": 61952,
+ "Room": 138,
+ "Validated": false
+ },
+ {
+ "X": 10752,
+ "Y": 6272,
+ "Z": 61952,
+ "Room": 139,
+ "Validated": false
+ },
+ {
+ "X": 51456,
+ "Y": 5376,
+ "Z": 66048,
+ "Room": 70,
+ "KeyItemsHigh": "19362",
+ "Range": "Medium"
+ },
+ {
+ "X": 51712,
+ "Y": 5376,
+ "Z": 66048,
+ "Room": 70,
+ "KeyItemsHigh": "19362",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 51968,
+ "Y": 5376,
+ "Z": 66048,
+ "Room": 70,
+ "KeyItemsLow": "19239"
+ },
+ {
+ "X": 51968,
+ "Y": 5376,
+ "Z": 66304,
+ "Room": 70,
+ "KeyItemsLow": "19239",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52736,
+ "Y": 2560,
+ "Z": 68096,
+ "Room": 8
+ },
+ {
+ "X": 48640,
+ "Y": 1280,
+ "Z": 71168,
+ "Room": 103
+ },
+ {
+ "X": 50688,
+ "Y": -256,
+ "Z": 70144,
+ "Room": 112
+ },
+ {
+ "X": 48640,
+ "Y": -768,
+ "Z": 67072,
+ "Room": 111
+ },
+ {
+ "X": 50688,
+ "Y": -1536,
+ "Z": 65024,
+ "Room": 107
+ },
+ {
+ "X": 53760,
+ "Y": -512,
+ "Z": 69120,
+ "Room": 58
+ },
+ {
+ "X": 55808,
+ "Y": 2176,
+ "Z": 68096,
+ "Room": 102,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": 15872,
+ "Z": 69120,
+ "Room": 5
+ },
+ {
+ "X": 57856,
+ "Y": 15360,
+ "Z": 70144,
+ "Room": 65
+ },
+ {
+ "X": 56832,
+ "Y": 14080,
+ "Z": 66048,
+ "Room": 7
+ },
+ {
+ "X": 55808,
+ "Y": 14080,
+ "Z": 66048,
+ "Room": 6
+ },
+ {
+ "X": 56832,
+ "Y": 11264,
+ "Z": 66048,
+ "Room": 2
+ },
+ {
+ "X": 57856,
+ "Y": 9728,
+ "Z": 66048,
+ "Room": 64
+ },
+ {
+ "X": 57856,
+ "Y": 12032,
+ "Z": 65024,
+ "Room": 114
+ },
+ {
+ "X": 55808,
+ "Y": 5888,
+ "Z": 65024,
+ "Room": 50
+ },
+ {
+ "X": 53760,
+ "Y": 3584,
+ "Z": 66048,
+ "Room": 102
+ },
+ {
+ "X": 55808,
+ "Y": 512,
+ "Z": 67072,
+ "Room": 58
+ },
+ {
+ "X": 56832,
+ "Y": 512,
+ "Z": 64000,
+ "Room": 115
+ },
+ {
+ "X": 54784,
+ "Y": -2048,
+ "Z": 64000,
+ "Room": 69
+ },
+ {
+ "X": 57856,
+ "Y": -1536,
+ "Z": 70144,
+ "Room": 9
+ },
+ {
+ "X": 58880,
+ "Y": -1536,
+ "Z": 70144,
+ "Room": 154
+ },
+ {
+ "X": 58880,
+ "Y": -3072,
+ "Z": 68096,
+ "Room": 153
+ },
+ {
+ "X": 58880,
+ "Y": -4864,
+ "Z": 64000,
+ "Room": 155
+ },
+ {
+ "X": 48896,
+ "Y": -3328,
+ "Z": 66048,
+ "Room": 55,
+ "KeyItemsHigh": "19279,19239",
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -3328,
+ "Z": 66048,
+ "Room": 55,
+ "KeyItemsHigh": "19239,19279",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 48384,
+ "Y": -3328,
+ "Z": 66048,
+ "Room": 55,
+ "KeyItemsHigh": "19239",
+ "Range": "Medium",
+ "Validated": false
+ },
+ {
+ "X": 48384,
+ "Y": -3328,
+ "Z": 66304,
+ "Room": 55,
+ "KeyItemsHigh": "19239",
+ "Range": "Medium",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": -2048,
+ "Z": 71168,
+ "Room": 118,
+ "KeyItemsLow": "19362"
+ },
+ {
+ "X": 45312,
+ "Y": -2048,
+ "Z": 71168,
+ "Room": 118,
+ "KeyItemsLow": "19362",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45312,
+ "Y": -2048,
+ "Z": 71424,
+ "Room": 118,
+ "KeyItemsLow": "19362",
+ "Range": "Medium"
+ },
+ {
+ "X": 45568,
+ "Y": -2048,
+ "Z": 71424,
+ "Room": 118,
+ "KeyItemsLow": "19362",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 43520,
+ "Y": -2048,
+ "Z": 72192,
+ "Room": 119
+ },
+ {
+ "X": 41472,
+ "Y": -2048,
+ "Z": 71168,
+ "Room": 118
+ },
+ {
+ "X": 38400,
+ "Y": -3328,
+ "Z": 75264,
+ "Room": 74
+ },
+ {
+ "X": 38400,
+ "Y": -3328,
+ "Z": 78336,
+ "Room": 66
+ },
+ {
+ "X": 46592,
+ "Y": -4096,
+ "Z": 78336,
+ "Room": 67
+ },
+ {
+ "X": 46592,
+ "Y": -4096,
+ "Z": 79360,
+ "Room": 60
+ },
+ {
+ "X": 48640,
+ "Y": -3328,
+ "Z": 80384,
+ "Room": 87
+ },
+ {
+ "X": 53760,
+ "Y": -4096,
+ "Z": 83456,
+ "Room": 71
+ },
+ {
+ "X": 53760,
+ "Y": -3968,
+ "Z": 86528,
+ "Room": 130
+ },
+ {
+ "X": 53760,
+ "Y": -3072,
+ "Z": 87552,
+ "Room": 128
+ },
+ {
+ "X": 55808,
+ "Y": -3584,
+ "Z": 87552,
+ "Room": 129
+ },
+ {
+ "X": 54784,
+ "Y": -2048,
+ "Z": 91648,
+ "Room": 131
+ },
+ {
+ "X": 40448,
+ "Y": -2560,
+ "Z": 90624,
+ "Room": 133
+ },
+ {
+ "X": 50688,
+ "Y": -4096,
+ "Z": 83456,
+ "Room": 79
+ },
+ {
+ "X": 51712,
+ "Y": -4352,
+ "Z": 85504,
+ "Room": 32
+ },
+ {
+ "X": 48640,
+ "Y": -6912,
+ "Z": 86528,
+ "Room": 91
+ },
+ {
+ "X": 44544,
+ "Y": -7296,
+ "Z": 86528,
+ "Room": 92
+ },
+ {
+ "X": 41472,
+ "Y": -6912,
+ "Z": 85504,
+ "Room": 85
+ },
+ {
+ "X": 47616,
+ "Y": -4096,
+ "Z": 83456,
+ "Room": 89
+ },
+ {
+ "X": 45568,
+ "Y": -5376,
+ "Z": 89600,
+ "Room": 76
+ },
+ {
+ "X": 46592,
+ "Y": -2432,
+ "Z": 87552,
+ "Room": 77
+ },
+ {
+ "X": 43520,
+ "Y": -4096,
+ "Z": 88576,
+ "Room": 134
+ },
+ {
+ "X": 47616,
+ "Y": -2560,
+ "Z": 89600,
+ "Room": 80
+ },
+ {
+ "X": 54784,
+ "Y": -5248,
+ "Z": 89600,
+ "Room": 82
+ },
+ {
+ "X": 68352,
+ "Y": -1280,
+ "Z": 66304,
+ "Room": 40,
+ "KeyItemsHigh": "19362"
+ },
+ {
+ "X": 68096,
+ "Y": -1280,
+ "Z": 66304,
+ "Room": 40,
+ "KeyItemsHigh": "19362",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 67840,
+ "Y": -1280,
+ "Z": 66304,
+ "Room": 40,
+ "KeyItemsHigh": "19362,19279,19343",
+ "KeyItemsLow": "19465,19448",
+ "Range": "Medium"
+ },
+ {
+ "X": 67840,
+ "Y": -1280,
+ "Z": 66048,
+ "Room": 40,
+ "KeyItemsHigh": "19362,19279,19343",
+ "KeyItemsLow": "19465,19448",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68096,
+ "Y": -1280,
+ "Z": 66048,
+ "Room": 40,
+ "KeyItemsHigh": "19362,19239",
+ "Range": "Large"
+ },
+ {
+ "X": 68352,
+ "Y": -1280,
+ "Z": 66048,
+ "Room": 40,
+ "KeyItemsHigh": "19362,19239",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68096,
+ "Y": -1280,
+ "Z": 62976,
+ "Room": 57
+ },
+ {
+ "X": 67072,
+ "Y": -1792,
+ "Z": 50688,
+ "Room": 162
+ },
+ {
+ "X": 67072,
+ "Y": 0,
+ "Z": 49664,
+ "Room": 159
+ },
+ {
+ "X": 70144,
+ "Y": -1024,
+ "Z": 51712,
+ "Room": 84
+ },
+ {
+ "X": 71168,
+ "Y": -1024,
+ "Z": 58880,
+ "Room": 84
+ },
+ {
+ "X": 72192,
+ "Y": -640,
+ "Z": 62976,
+ "Room": 33,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": -640,
+ "Z": 74240,
+ "Room": 97,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": -512,
+ "Z": 77312,
+ "Room": 96,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": 896,
+ "Z": 83456,
+ "Room": 100,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": -640,
+ "Z": 46592,
+ "Room": 11
+ },
+ {
+ "X": 72192,
+ "Y": 1152,
+ "Z": 35328,
+ "Room": 12
+ },
+ {
+ "X": 71168,
+ "Y": 1280,
+ "Z": 29184,
+ "Room": 31
+ },
+ {
+ "X": 71168,
+ "Y": 1024,
+ "Z": 33280,
+ "Room": 25
+ },
+ {
+ "X": 72192,
+ "Y": 1152,
+ "Z": 24064,
+ "Room": 19,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": 3200,
+ "Z": 12800,
+ "Room": 26,
+ "Validated": false
+ },
+ {
+ "X": 72192,
+ "Y": 3200,
+ "Z": 4608,
+ "Room": 13,
+ "Validated": false
+ },
+ {
+ "X": 71168,
+ "Y": 2432,
+ "Z": 27136,
+ "Room": 22
+ },
+ {
+ "X": 69120,
+ "Y": 1024,
+ "Z": 27136,
+ "Room": 17
+ },
+ {
+ "X": 68096,
+ "Y": 1024,
+ "Z": 27136,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": 1024,
+ "Z": 29184,
+ "Room": 143,
+ "KeyItemsLow": "19465,19448"
+ },
+ {
+ "X": 57600,
+ "Y": 1024,
+ "Z": 29184,
+ "Room": 143,
+ "KeyItemsLow": "19465,19448",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": 1024,
+ "Z": 22016,
+ "Room": 1
+ },
+ {
+ "X": 44544,
+ "Y": 1280,
+ "Z": 17920,
+ "Room": 117
+ },
+ {
+ "X": 41472,
+ "Y": 768,
+ "Z": 20992,
+ "Room": 127
+ },
+ {
+ "X": 53760,
+ "Y": 1024,
+ "Z": 27136,
+ "Room": 27
+ },
+ {
+ "X": 54784,
+ "Y": 2304,
+ "Z": 28160,
+ "Room": 30
+ },
+ {
+ "X": 58880,
+ "Y": 2304,
+ "Z": 28160,
+ "Room": 28
+ },
+ {
+ "X": 58880,
+ "Y": 2304,
+ "Z": 45568,
+ "Room": 72
+ },
+ {
+ "X": 58880,
+ "Y": -768,
+ "Z": 45568,
+ "Room": 83,
+ "Validated": false
+ },
+ {
+ "X": 56832,
+ "Y": -4096,
+ "Z": 42496,
+ "Room": 86,
+ "KeyItemsHigh": "19279,19343",
+ "Range": "Large"
+ },
+ {
+ "X": 56832,
+ "Y": -4096,
+ "Z": 42240,
+ "Room": 86,
+ "KeyItemsHigh": "19279,19343",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": -4224,
+ "Z": 40448,
+ "Room": 126
+ },
+ {
+ "X": 48896,
+ "Y": -4608,
+ "Z": 38400,
+ "Room": 62,
+ "KeyItemsHigh": "19448"
+ },
+ {
+ "X": 48896,
+ "Y": -4608,
+ "Z": 38656,
+ "Room": 62,
+ "KeyItemsHigh": "19448",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": -4608,
+ "Z": 38656,
+ "Room": 62,
+ "KeyItemsHigh": "19448",
+ "Range": "Medium"
+ },
+ {
+ "X": 48384,
+ "Y": -4608,
+ "Z": 38656,
+ "Room": 62,
+ "KeyItemsHigh": "19448",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48384,
+ "Y": -4608,
+ "Z": 38400,
+ "Room": 62,
+ "KeyItemsHigh": "19448",
+ "Range": "Large"
+ },
+ {
+ "X": 48640,
+ "Y": -4608,
+ "Z": 38400,
+ "Room": 62,
+ "KeyItemsHigh": "19448",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": -6400,
+ "Z": 42496,
+ "Room": 122
+ },
+ {
+ "X": 60928,
+ "Y": -5376,
+ "Z": 42496,
+ "Room": 123
+ },
+ {
+ "X": 52480,
+ "Y": -2048,
+ "Z": 51456,
+ "Room": 63,
+ "KeyItemsHigh": "19465"
+ },
+ {
+ "X": 52736,
+ "Y": -2048,
+ "Z": 51456,
+ "Room": 63,
+ "KeyItemsHigh": "19465",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52992,
+ "Y": -2048,
+ "Z": 51456,
+ "Room": 63,
+ "KeyItemsHigh": "19465",
+ "Range": "Medium"
+ },
+ {
+ "X": 52992,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 63,
+ "KeyItemsHigh": "19465",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52736,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 63,
+ "KeyItemsHigh": "19465",
+ "Range": "Large"
+ },
+ {
+ "X": 52480,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 63,
+ "KeyItemsHigh": "19465",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -2048,
+ "Z": 51712,
+ "Room": 15
+ },
+ {
+ "X": 48640,
+ "Y": -3840,
+ "Z": 51712,
+ "Room": 160
+ },
+ {
+ "X": 49664,
+ "Y": -768,
+ "Z": 52480,
+ "Room": 149,
+ "KeyItemsLow": "19465,19448",
+ "Range": "Medium"
+ },
+ {
+ "X": 49664,
+ "Y": -768,
+ "Z": 52736,
+ "Room": 149,
+ "KeyItemsLow": "19465,19448",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -768,
+ "Z": 52992,
+ "Room": 149,
+ "KeyItemsLow": "19465,19448",
+ "Range": "Large"
+ },
+ {
+ "X": 49408,
+ "Y": -768,
+ "Z": 52992,
+ "Room": 149,
+ "KeyItemsLow": "19465,19448",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": -768,
+ "Z": 52736,
+ "Room": 52
+ },
+ {
+ "X": 41472,
+ "Y": -256,
+ "Z": 50688,
+ "Room": 18
+ },
+ {
+ "X": 46592,
+ "Y": 768,
+ "Z": 50688,
+ "Room": 43
+ },
+ {
+ "X": 54784,
+ "Y": 768,
+ "Z": 51712,
+ "Room": 53
+ },
+ {
+ "X": 64000,
+ "Y": 1280,
+ "Z": 48640,
+ "Room": 75
+ },
+ {
+ "X": 65024,
+ "Y": 1152,
+ "Z": 48640,
+ "Room": 36
+ },
+ {
+ "X": 67072,
+ "Y": 512,
+ "Z": 48640,
+ "Room": 48
+ },
+ {
+ "X": 69120,
+ "Y": 1792,
+ "Z": 47616,
+ "Room": 161
+ },
+ {
+ "X": 46592,
+ "Y": 1024,
+ "Z": 52736,
+ "Room": 94
+ },
+ {
+ "X": 47360,
+ "Y": 2560,
+ "Z": 48640,
+ "Room": 109,
+ "KeyItemsHigh": "19465,19448",
+ "Range": "Medium"
+ },
+ {
+ "X": 47616,
+ "Y": 2560,
+ "Z": 48640,
+ "Room": 109,
+ "KeyItemsHigh": "19465,19448",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47872,
+ "Y": 2560,
+ "Z": 48640,
+ "Room": 109,
+ "KeyItemsHigh": "19465,19448",
+ "Range": "Large"
+ },
+ {
+ "X": 47872,
+ "Y": 2560,
+ "Z": 48384,
+ "Room": 109,
+ "KeyItemsHigh": "19465,19448",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": 3072,
+ "Z": 46592,
+ "Room": 137
+ },
+ {
+ "X": 44544,
+ "Y": 3072,
+ "Z": 47616,
+ "Room": 136
+ },
+ {
+ "X": 44544,
+ "Y": 768,
+ "Z": 48640,
+ "Room": 135
+ },
+ {
+ "X": 46592,
+ "Y": 768,
+ "Z": 48640,
+ "Room": 105
+ },
+ {
+ "X": 46592,
+ "Y": 2560,
+ "Z": 41472,
+ "Room": 104
+ },
+ {
+ "X": 49664,
+ "Y": -768,
+ "Z": 54784,
+ "Room": 45
+ },
+ {
+ "X": 49664,
+ "Y": -768,
+ "Z": 58880,
+ "Room": 101
+ },
+ {
+ "X": 52736,
+ "Y": -3328,
+ "Z": 70144,
+ "Room": 158
+ },
+ {
+ "X": 50688,
+ "Y": 4352,
+ "Z": 36352,
+ "Room": 104
+ }
+ ],
+ "TOWER.TR2": [
+ {
+ "X": 81408,
+ "Y": -17920,
+ "Z": 39424,
+ "Room": 36,
+ "KeyItemsLow": "20447,20240",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 81408,
+ "Y": -17920,
+ "Z": 39168,
+ "Room": 36,
+ "KeyItemsLow": "20447,20240",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 81408,
+ "Y": -17920,
+ "Z": 34304,
+ "Room": 57
+ },
+ {
+ "X": 77312,
+ "Y": -17152,
+ "Z": 32256,
+ "Room": 49
+ },
+ {
+ "X": 74240,
+ "Y": -16128,
+ "Z": 32256,
+ "Room": 50
+ },
+ {
+ "X": 72192,
+ "Y": -15616,
+ "Z": 31232,
+ "Room": 141
+ },
+ {
+ "X": 69120,
+ "Y": -16128,
+ "Z": 32256,
+ "Room": 48
+ },
+ {
+ "X": 68096,
+ "Y": -15872,
+ "Z": 30208,
+ "Room": 46
+ },
+ {
+ "X": 67072,
+ "Y": -15872,
+ "Z": 29184,
+ "Room": 43,
+ "Validated": false
+ },
+ {
+ "X": 66048,
+ "Y": -15488,
+ "Z": 27136,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": -12288,
+ "Z": 27136,
+ "Room": 8,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": -13696,
+ "Z": 28160,
+ "Room": 5,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": -12032,
+ "Z": 32256,
+ "Room": 3
+ },
+ {
+ "X": 58880,
+ "Y": -11008,
+ "Z": 34304,
+ "Room": 2
+ },
+ {
+ "X": 57856,
+ "Y": -8704,
+ "Z": 34304,
+ "Room": 72
+ },
+ {
+ "X": 61952,
+ "Y": -15872,
+ "Z": 32256,
+ "Room": 4,
+ "KeyItemsLow": "20240",
+ "Range": "Large"
+ },
+ {
+ "X": 62208,
+ "Y": -15872,
+ "Z": 32256,
+ "Room": 4,
+ "KeyItemsLow": "20240",
+ "Range": "Medium"
+ },
+ {
+ "X": 62976,
+ "Y": -15616,
+ "Z": 32256,
+ "Room": 33
+ },
+ {
+ "X": 62976,
+ "Y": -15616,
+ "Z": 31232,
+ "Room": 38
+ },
+ {
+ "X": 67072,
+ "Y": -15104,
+ "Z": 31232,
+ "Room": 45
+ },
+ {
+ "X": 62976,
+ "Y": -20736,
+ "Z": 31232,
+ "Room": 17
+ },
+ {
+ "X": 62976,
+ "Y": -22016,
+ "Z": 31232,
+ "Room": 0
+ },
+ {
+ "X": 59904,
+ "Y": -26880,
+ "Z": 32256,
+ "Room": 63
+ },
+ {
+ "X": 58880,
+ "Y": -26880,
+ "Z": 32256,
+ "Room": 65,
+ "KeyItemsHigh": "20447",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": -26880,
+ "Z": 33280,
+ "Room": 105
+ },
+ {
+ "X": 54784,
+ "Y": -28672,
+ "Z": 33280,
+ "Room": 120
+ },
+ {
+ "X": 54784,
+ "Y": -26368,
+ "Z": 34304,
+ "Room": 124
+ },
+ {
+ "X": 53760,
+ "Y": -26368,
+ "Z": 34304,
+ "Room": 123
+ },
+ {
+ "X": 52736,
+ "Y": -26368,
+ "Z": 34304,
+ "Room": 121
+ },
+ {
+ "X": 51712,
+ "Y": -26368,
+ "Z": 34304,
+ "Room": 107
+ },
+ {
+ "X": 50688,
+ "Y": -26368,
+ "Z": 35328,
+ "Room": 115
+ },
+ {
+ "X": 50688,
+ "Y": -26368,
+ "Z": 36352,
+ "Room": 112
+ },
+ {
+ "X": 49664,
+ "Y": -25600,
+ "Z": 37376,
+ "Room": 111,
+ "KeyItemsLow": "20240"
+ },
+ {
+ "X": 49983,
+ "Y": -25600,
+ "Z": 37374,
+ "Room": 111,
+ "KeyItemsLow": "20240",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50688,
+ "Y": -26368,
+ "Z": 42496,
+ "Room": 108
+ },
+ {
+ "X": 51712,
+ "Y": -27904,
+ "Z": 42496,
+ "Room": 113
+ },
+ {
+ "X": 51712,
+ "Y": -29440,
+ "Z": 43520,
+ "Room": 126
+ },
+ {
+ "X": 51712,
+ "Y": -29440,
+ "Z": 44544,
+ "Room": 127
+ },
+ {
+ "X": 49664,
+ "Y": -29440,
+ "Z": 44544,
+ "Room": 128
+ },
+ {
+ "X": 50688,
+ "Y": -32256,
+ "Z": 44544,
+ "Room": 27
+ },
+ {
+ "X": 51712,
+ "Y": -29440,
+ "Z": 37376,
+ "Room": 129
+ },
+ {
+ "X": 51712,
+ "Y": -30464,
+ "Z": 36352,
+ "Room": 131
+ },
+ {
+ "X": 50688,
+ "Y": -29568,
+ "Z": 34304,
+ "Room": 133
+ },
+ {
+ "X": 50688,
+ "Y": -31488,
+ "Z": 42496,
+ "Room": 130
+ },
+ {
+ "X": 47616,
+ "Y": -30976,
+ "Z": 37376,
+ "Room": 132
+ },
+ {
+ "X": 46592,
+ "Y": -30976,
+ "Z": 37376,
+ "Room": 136
+ },
+ {
+ "X": 45568,
+ "Y": -31104,
+ "Z": 38400,
+ "Room": 78
+ },
+ {
+ "X": 44544,
+ "Y": -24064,
+ "Z": 37376,
+ "Room": 87,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": 512,
+ "Z": 38400,
+ "Room": 188,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": -31488,
+ "Z": 38400,
+ "Room": 83
+ },
+ {
+ "X": 40448,
+ "Y": -31488,
+ "Z": 36352,
+ "Room": 109
+ },
+ {
+ "X": 40448,
+ "Y": -30464,
+ "Z": 35328,
+ "Room": 147
+ },
+ {
+ "X": 41472,
+ "Y": -30464,
+ "Z": 32256,
+ "Room": 169
+ },
+ {
+ "X": 42496,
+ "Y": -30464,
+ "Z": 31232,
+ "Room": 171
+ },
+ {
+ "X": 42496,
+ "Y": -30464,
+ "Z": 27136,
+ "Room": 172
+ },
+ {
+ "X": 44544,
+ "Y": -30464,
+ "Z": 27136,
+ "Room": 164
+ },
+ {
+ "X": 44544,
+ "Y": -30464,
+ "Z": 29184,
+ "Room": 152
+ },
+ {
+ "X": 44544,
+ "Y": -30464,
+ "Z": 30208,
+ "Room": 150
+ },
+ {
+ "X": 44544,
+ "Y": -30464,
+ "Z": 31232,
+ "Room": 52
+ },
+ {
+ "X": 43520,
+ "Y": -30464,
+ "Z": 34304,
+ "Room": 149
+ },
+ {
+ "X": 47616,
+ "Y": -28928,
+ "Z": 27136,
+ "Room": 173
+ },
+ {
+ "X": 51712,
+ "Y": -27008,
+ "Z": 26112,
+ "Room": 56,
+ "KeyItemsHigh": "20240"
+ },
+ {
+ "X": 51456,
+ "Y": -27008,
+ "Z": 26112,
+ "Room": 56,
+ "KeyItemsHigh": "20240",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49664,
+ "Y": -23552,
+ "Z": 28160,
+ "Room": 15,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": -22016,
+ "Z": 32256,
+ "Room": 68,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": -19200,
+ "Z": 30208,
+ "Room": 70,
+ "Validated": false
+ },
+ {
+ "X": 48640,
+ "Y": -20608,
+ "Z": 28160,
+ "Room": 18
+ },
+ {
+ "X": 59904,
+ "Y": -22016,
+ "Z": 28160,
+ "Room": 75,
+ "Validated": false
+ },
+ {
+ "X": 59904,
+ "Y": -19200,
+ "Z": 29184,
+ "Room": 76,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": -13824,
+ "Z": 32256,
+ "Room": 73
+ },
+ {
+ "X": 46592,
+ "Y": -15744,
+ "Z": 22016,
+ "Room": 35
+ },
+ {
+ "X": 58880,
+ "Y": -13824,
+ "Z": 18944,
+ "Room": 77
+ },
+ {
+ "X": 60928,
+ "Y": -13824,
+ "Z": 24064,
+ "Room": 20
+ },
+ {
+ "X": 73216,
+ "Y": -15360,
+ "Z": 23040,
+ "Room": 174
+ },
+ {
+ "X": 73216,
+ "Y": -17152,
+ "Z": 24064,
+ "Room": 175
+ },
+ {
+ "X": 71168,
+ "Y": -18432,
+ "Z": 25088,
+ "Room": 54
+ },
+ {
+ "X": 72192,
+ "Y": -18944,
+ "Z": 22016,
+ "Room": 71
+ },
+ {
+ "X": 72192,
+ "Y": -20224,
+ "Z": 23040,
+ "Room": 209
+ },
+ {
+ "X": 73216,
+ "Y": -18432,
+ "Z": 26112,
+ "Room": 176
+ },
+ {
+ "X": 73216,
+ "Y": -17152,
+ "Z": 27136,
+ "Room": 148
+ },
+ {
+ "X": 81664,
+ "Y": -17920,
+ "Z": 43520,
+ "Room": 177,
+ "KeyItemsHigh": "20240",
+ "Range": "Medium"
+ },
+ {
+ "X": 81664,
+ "Y": -17920,
+ "Z": 43776,
+ "Room": 177,
+ "KeyItemsHigh": "20240",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 81408,
+ "Y": -17920,
+ "Z": 43776,
+ "Room": 177,
+ "KeyItemsHigh": "20240",
+ "Range": "Large"
+ },
+ {
+ "X": 81152,
+ "Y": -17920,
+ "Z": 43776,
+ "Room": 177,
+ "KeyItemsHigh": "20240",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 81408,
+ "Y": 768,
+ "Z": 45568,
+ "Room": 98
+ },
+ {
+ "X": 73216,
+ "Y": 1024,
+ "Z": 44544,
+ "Room": 42
+ },
+ {
+ "X": 72192,
+ "Y": 640,
+ "Z": 45568,
+ "Room": 11
+ },
+ {
+ "X": 70144,
+ "Y": 0,
+ "Z": 40448,
+ "Room": 182
+ },
+ {
+ "X": 66048,
+ "Y": 768,
+ "Z": 40448,
+ "Room": 183
+ },
+ {
+ "X": 70144,
+ "Y": 1536,
+ "Z": 55808,
+ "Room": 97
+ },
+ {
+ "X": 66048,
+ "Y": 2304,
+ "Z": 55808,
+ "Room": 137
+ },
+ {
+ "X": 56832,
+ "Y": 3840,
+ "Z": 43520,
+ "Room": 192
+ },
+ {
+ "X": 57856,
+ "Y": -768,
+ "Z": 37376,
+ "Room": 32
+ },
+ {
+ "X": 58880,
+ "Y": -2816,
+ "Z": 37376,
+ "Room": 195
+ },
+ {
+ "X": 60928,
+ "Y": -1536,
+ "Z": 33280,
+ "Room": 196,
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59904,
+ "Y": -1536,
+ "Z": 28160,
+ "Room": 197
+ },
+ {
+ "X": 61952,
+ "Y": -3072,
+ "Z": 28160,
+ "Room": 100
+ },
+ {
+ "X": 58880,
+ "Y": -1536,
+ "Z": 32256,
+ "Room": 198
+ },
+ {
+ "X": 53760,
+ "Y": -2176,
+ "Z": 32256,
+ "Room": 40,
+ "KeyItemsLow": "20447"
+ },
+ {
+ "X": 53504,
+ "Y": -2118,
+ "Z": 32256,
+ "Room": 40,
+ "KeyItemsLow": "20447",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53762,
+ "Y": -2176,
+ "Z": 32509,
+ "Room": 40,
+ "KeyItemsLow": "20447",
+ "Range": "Medium"
+ },
+ {
+ "X": 53491,
+ "Y": -2108,
+ "Z": 32488,
+ "Room": 40,
+ "KeyItemsLow": "20447",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 53301,
+ "Y": -2061,
+ "Z": 32203,
+ "Room": 40,
+ "KeyItemsLow": "20447",
+ "Range": "Large"
+ },
+ {
+ "X": 53316,
+ "Y": -2065,
+ "Z": 32426,
+ "Room": 40,
+ "KeyItemsLow": "20240",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50688,
+ "Y": -1664,
+ "Z": 33280,
+ "Room": 134
+ },
+ {
+ "X": 51712,
+ "Y": -1408,
+ "Z": 38400,
+ "Room": 47
+ },
+ {
+ "X": 49664,
+ "Y": -4352,
+ "Z": 35328,
+ "Room": 69
+ },
+ {
+ "X": 50688,
+ "Y": -2816,
+ "Z": 30208,
+ "Room": 189
+ },
+ {
+ "X": 44544,
+ "Y": -6912,
+ "Z": 22016,
+ "Room": 24
+ },
+ {
+ "X": 57856,
+ "Y": -4096,
+ "Z": 22016,
+ "Room": 29
+ },
+ {
+ "X": 57856,
+ "Y": -1536,
+ "Z": 20992,
+ "Room": 25
+ },
+ {
+ "X": 56832,
+ "Y": 128,
+ "Z": 22016,
+ "Room": 203
+ },
+ {
+ "X": 56832,
+ "Y": -1536,
+ "Z": 26112,
+ "Room": 102
+ },
+ {
+ "X": 58880,
+ "Y": -1536,
+ "Z": 26112,
+ "Room": 135
+ },
+ {
+ "X": 58880,
+ "Y": -1536,
+ "Z": 24064,
+ "Room": 103,
+ "KeyItemsHigh": "20447",
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -1536,
+ "Z": 23808,
+ "Room": 103,
+ "KeyItemsHigh": "20447",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 58624,
+ "Y": -1536,
+ "Z": 23808,
+ "Room": 103,
+ "KeyItemsHigh": "20240",
+ "Range": "Large",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": 640,
+ "Z": 22016,
+ "Room": 204
+ },
+ {
+ "X": 51712,
+ "Y": 640,
+ "Z": 22016,
+ "Room": 84
+ },
+ {
+ "X": 49664,
+ "Y": 640,
+ "Z": 22016,
+ "Room": 34
+ },
+ {
+ "X": 32256,
+ "Y": 1280,
+ "Z": 20992,
+ "Room": 39,
+ "KeyItemsHigh": "20447",
+ "Range": "Medium"
+ },
+ {
+ "X": 32256,
+ "Y": 1280,
+ "Z": 20736,
+ "Room": 39,
+ "KeyItemsHigh": "20447",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 31232,
+ "Y": 1280,
+ "Z": 17920,
+ "Room": 86
+ },
+ {
+ "X": 28160,
+ "Y": 1280,
+ "Z": 29184,
+ "Room": 1
+ },
+ {
+ "X": 31232,
+ "Y": -2048,
+ "Z": 28160,
+ "Room": 92
+ },
+ {
+ "X": 31232,
+ "Y": -1792,
+ "Z": 29184,
+ "Room": 190
+ },
+ {
+ "X": 28160,
+ "Y": -2560,
+ "Z": 29184,
+ "Room": 200
+ },
+ {
+ "X": 24064,
+ "Y": -2304,
+ "Z": 22016,
+ "Room": 180
+ },
+ {
+ "X": 35328,
+ "Y": 1280,
+ "Z": 25088,
+ "Room": 61
+ },
+ {
+ "X": 39424,
+ "Y": 896,
+ "Z": 25088,
+ "Room": 64
+ },
+ {
+ "X": 35328,
+ "Y": -2688,
+ "Z": 20992,
+ "Room": 93
+ },
+ {
+ "X": 38400,
+ "Y": -2304,
+ "Z": 23040,
+ "Room": 101
+ },
+ {
+ "X": 38400,
+ "Y": -2304,
+ "Z": 29184,
+ "Room": 139
+ },
+ {
+ "X": 39424,
+ "Y": 2816,
+ "Z": 30208,
+ "Room": 90
+ },
+ {
+ "X": 37376,
+ "Y": 2816,
+ "Z": 30208,
+ "Room": 140
+ },
+ {
+ "X": 28160,
+ "Y": -1920,
+ "Z": 17920,
+ "Room": 144
+ },
+ {
+ "X": 30208,
+ "Y": -1920,
+ "Z": 15872,
+ "Room": 146
+ },
+ {
+ "X": 39424,
+ "Y": -2304,
+ "Z": 16896,
+ "Room": 145
+ },
+ {
+ "X": 26112,
+ "Y": -1792,
+ "Z": 33280,
+ "Room": 181
+ },
+ {
+ "X": 25088,
+ "Y": -2560,
+ "Z": 25088,
+ "Room": 179
+ },
+ {
+ "X": 26112,
+ "Y": 1280,
+ "Z": 33280,
+ "Room": 6
+ },
+ {
+ "X": 29184,
+ "Y": -26624,
+ "Z": 36352,
+ "Room": 156,
+ "KeyItemsLow": "20447",
+ "Range": "Medium"
+ },
+ {
+ "X": 29440,
+ "Y": -26624,
+ "Z": 36352,
+ "Room": 156,
+ "KeyItemsLow": "20447",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29184,
+ "Y": -25600,
+ "Z": 37376,
+ "Room": 153
+ },
+ {
+ "X": 30208,
+ "Y": -21760,
+ "Z": 38400,
+ "Room": 160
+ },
+ {
+ "X": 29184,
+ "Y": -26624,
+ "Z": 46592,
+ "Room": 161
+ },
+ {
+ "X": 29184,
+ "Y": -26624,
+ "Z": 47616,
+ "Room": 162
+ },
+ {
+ "X": 31232,
+ "Y": -26496,
+ "Z": 46592,
+ "Room": 163
+ },
+ {
+ "X": 31232,
+ "Y": -26368,
+ "Z": 45568,
+ "Room": 157
+ },
+ {
+ "X": 31232,
+ "Y": -27904,
+ "Z": 35328,
+ "Room": 166
+ },
+ {
+ "X": 26112,
+ "Y": -26624,
+ "Z": 33280,
+ "Room": 159
+ },
+ {
+ "X": 26112,
+ "Y": -27904,
+ "Z": 35328,
+ "Room": 165
+ },
+ {
+ "X": 26112,
+ "Y": -27904,
+ "Z": 36352,
+ "Room": 168
+ },
+ {
+ "X": 26112,
+ "Y": -28032,
+ "Z": 46592,
+ "Room": 110
+ },
+ {
+ "X": 26112,
+ "Y": -28160,
+ "Z": 47616,
+ "Room": 119
+ },
+ {
+ "X": 28160,
+ "Y": -27648,
+ "Z": 48640,
+ "Room": 122
+ },
+ {
+ "X": 28160,
+ "Y": -17152,
+ "Z": 50688,
+ "Room": 104,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -28416,
+ "Z": 31232,
+ "Room": 167
+ },
+ {
+ "X": 27904,
+ "Y": -26880,
+ "Z": 28160,
+ "Room": 191,
+ "KeyItemsHigh": "20447",
+ "Range": "Medium"
+ },
+ {
+ "X": 27904,
+ "Y": -26880,
+ "Z": 27904,
+ "Room": 191,
+ "KeyItemsHigh": "20447",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": -26880,
+ "Z": 27904,
+ "Room": 191,
+ "KeyItemsHigh": "20447",
+ "Range": "Large"
+ },
+ {
+ "X": 28416,
+ "Y": -26880,
+ "Z": 27904,
+ "Room": 191,
+ "KeyItemsHigh": "20447",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 35328,
+ "Y": -2560,
+ "Z": 26112,
+ "Room": 184
+ },
+ {
+ "X": 33280,
+ "Y": -768,
+ "Z": 34304,
+ "Room": 16
+ },
+ {
+ "X": 32256,
+ "Y": -26624,
+ "Z": 32256,
+ "Room": 158
+ },
+ {
+ "X": 33280,
+ "Y": -26624,
+ "Z": 36352,
+ "Room": 155
+ },
+ {
+ "X": 33280,
+ "Y": -26368,
+ "Z": 47616,
+ "Room": 208
+ },
+ {
+ "X": 33280,
+ "Y": -26368,
+ "Z": 52736,
+ "Room": 55
+ },
+ {
+ "X": 33280,
+ "Y": -26368,
+ "Z": 53760,
+ "Room": 53
+ },
+ {
+ "X": 32256,
+ "Y": -28160,
+ "Z": 47616,
+ "Room": 67
+ },
+ {
+ "X": 26112,
+ "Y": -26880,
+ "Z": 47616,
+ "Room": 143
+ },
+ {
+ "X": 25088,
+ "Y": -29696,
+ "Z": 48640,
+ "Room": 51
+ },
+ {
+ "X": 25088,
+ "Y": -30464,
+ "Z": 50688,
+ "Room": 41
+ },
+ {
+ "X": 26112,
+ "Y": -30464,
+ "Z": 50688,
+ "Room": 9
+ },
+ {
+ "X": 30208,
+ "Y": -29440,
+ "Z": 50688,
+ "Room": 106
+ },
+ {
+ "X": 31232,
+ "Y": -29440,
+ "Z": 50688,
+ "Room": 19
+ },
+ {
+ "X": 31232,
+ "Y": -30464,
+ "Z": 53760,
+ "Room": 21
+ },
+ {
+ "X": 28160,
+ "Y": -30208,
+ "Z": 48640,
+ "Room": 22
+ },
+ {
+ "X": 29184,
+ "Y": -30336,
+ "Z": 48640,
+ "Room": 207
+ }
+ ],
+ "OFFICE.TR2": [
+ {
+ "X": 51712,
+ "Y": 0,
+ "Z": 50688,
+ "Room": 4
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 47616,
+ "Room": 1
+ },
+ {
+ "X": 52736,
+ "Y": 0,
+ "Z": 45568,
+ "Room": 19
+ },
+ {
+ "X": 47616,
+ "Y": 0,
+ "Z": 53760,
+ "Room": 7
+ },
+ {
+ "X": 44544,
+ "Y": 0,
+ "Z": 53760,
+ "Room": 8
+ },
+ {
+ "X": 40448,
+ "Y": -4352,
+ "Z": 53760,
+ "Room": 10
+ },
+ {
+ "X": 42496,
+ "Y": -6400,
+ "Z": 53760,
+ "Room": 11
+ },
+ {
+ "X": 42496,
+ "Y": -7936,
+ "Z": 52736,
+ "Room": 12
+ },
+ {
+ "X": 38400,
+ "Y": -10496,
+ "Z": 59904,
+ "Room": 13
+ },
+ {
+ "X": 38400,
+ "Y": -11776,
+ "Z": 59904,
+ "Room": 14
+ },
+ {
+ "X": 31232,
+ "Y": -13312,
+ "Z": 53760,
+ "Room": 15
+ },
+ {
+ "X": 33280,
+ "Y": -13312,
+ "Z": 58880,
+ "Room": 15,
+ "Validated": false
+ },
+ {
+ "X": 33280,
+ "Y": -15360,
+ "Z": 57856,
+ "Room": 16,
+ "Validated": false
+ },
+ {
+ "X": 29184,
+ "Y": -17152,
+ "Z": 58880,
+ "Room": 17,
+ "Validated": false
+ }
+ ],
+ "NEVADA.TR2": [
+ {
+ "X": 23040,
+ "Y": -2176,
+ "Z": 4608,
+ "Room": 0,
+ "KeyItemsLow": "22359,22578",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": 0,
+ "Z": 8704,
+ "Room": 1
+ },
+ {
+ "X": 26112,
+ "Y": 0,
+ "Z": 19968,
+ "Room": 4
+ },
+ {
+ "X": 30208,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 6
+ },
+ {
+ "X": 22016,
+ "Y": 768,
+ "Z": 27136,
+ "Room": 11
+ },
+ {
+ "X": 23040,
+ "Y": -256,
+ "Z": 32256,
+ "Room": 5
+ },
+ {
+ "X": 25088,
+ "Y": -768,
+ "Z": 36352,
+ "Room": 9
+ },
+ {
+ "X": 28160,
+ "Y": -1280,
+ "Z": 36352,
+ "Room": 16
+ },
+ {
+ "X": 28160,
+ "Y": -2560,
+ "Z": 31232,
+ "Room": 15
+ },
+ {
+ "X": 31232,
+ "Y": -256,
+ "Z": 32256,
+ "Room": 18
+ },
+ {
+ "X": 29184,
+ "Y": -512,
+ "Z": 33280,
+ "Room": 17
+ },
+ {
+ "X": 35328,
+ "Y": -5120,
+ "Z": 30208,
+ "Room": 10
+ },
+ {
+ "X": 35328,
+ "Y": -5120,
+ "Z": 26112,
+ "Room": 7
+ },
+ {
+ "X": 35328,
+ "Y": -5120,
+ "Z": 18944,
+ "Room": 8
+ },
+ {
+ "X": 29184,
+ "Y": -5120,
+ "Z": 22016,
+ "Room": 3
+ },
+ {
+ "X": 13824,
+ "Y": -7040,
+ "Z": 26112,
+ "Room": 21,
+ "Validated": false
+ },
+ {
+ "X": 14848,
+ "Y": -2048,
+ "Z": 18944,
+ "Room": 19
+ },
+ {
+ "X": 11776,
+ "Y": -5120,
+ "Z": 15872,
+ "Room": 20,
+ "Validated": false
+ },
+ {
+ "X": 15872,
+ "Y": -5120,
+ "Z": 10752,
+ "Room": 2,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": 2944,
+ "Z": 18944,
+ "Room": 24,
+ "KeyItemsLow": "22359,22578",
+ "Range": "Large"
+ },
+ {
+ "X": 38400,
+ "Y": 3584,
+ "Z": 19968,
+ "Room": 25
+ },
+ {
+ "X": 37376,
+ "Y": 256,
+ "Z": 30208,
+ "Room": 26,
+ "KeyItemsLow": "22359",
+ "Range": "Medium"
+ },
+ {
+ "X": 37376,
+ "Y": 256,
+ "Z": 30464,
+ "Room": 26,
+ "KeyItemsLow": "22359",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 36352,
+ "Y": 0,
+ "Z": 32256,
+ "Room": 181,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 38400,
+ "Y": 0,
+ "Z": 33280,
+ "Room": 27
+ },
+ {
+ "X": 39424,
+ "Y": -256,
+ "Z": 38400,
+ "Room": 28
+ },
+ {
+ "X": 44544,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 34
+ },
+ {
+ "X": 46592,
+ "Y": -3456,
+ "Z": 49664,
+ "Room": 35
+ },
+ {
+ "X": 42496,
+ "Y": 1280,
+ "Z": 50688,
+ "Room": 33
+ },
+ {
+ "X": 45568,
+ "Y": 7424,
+ "Z": 50688,
+ "Room": 32
+ },
+ {
+ "X": 45568,
+ "Y": 7680,
+ "Z": 43520,
+ "Room": 31
+ },
+ {
+ "X": 28160,
+ "Y": 9472,
+ "Z": 39424,
+ "Room": 40
+ },
+ {
+ "X": 33280,
+ "Y": 4864,
+ "Z": 38400,
+ "Room": 29
+ },
+ {
+ "X": 41472,
+ "Y": -3840,
+ "Z": 43520,
+ "Room": 30,
+ "KeyItemsLow": "22578",
+ "Range": "Medium"
+ },
+ {
+ "X": 41472,
+ "Y": -3840,
+ "Z": 43264,
+ "Room": 30,
+ "KeyItemsLow": "22578",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34304,
+ "Y": -3328,
+ "Z": 44544,
+ "Room": 36
+ },
+ {
+ "X": 35328,
+ "Y": -3072,
+ "Z": 48640,
+ "Room": 170
+ },
+ {
+ "X": 35328,
+ "Y": -3200,
+ "Z": 50688,
+ "Room": 123,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": -512,
+ "Z": 57856,
+ "Room": 174,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -3200,
+ "Z": 41472,
+ "Room": 37,
+ "KeyItemsLow": "22359"
+ },
+ {
+ "X": 28160,
+ "Y": -3200,
+ "Z": 41216,
+ "Room": 37,
+ "KeyItemsLow": "22359",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -3072,
+ "Z": 42496,
+ "Room": 41
+ },
+ {
+ "X": 19968,
+ "Y": -3072,
+ "Z": 47616,
+ "Room": 48
+ },
+ {
+ "X": 13824,
+ "Y": -5376,
+ "Z": 47616,
+ "Room": 46
+ },
+ {
+ "X": 17920,
+ "Y": -3200,
+ "Z": 57856,
+ "Room": 47
+ },
+ {
+ "X": 19968,
+ "Y": -1792,
+ "Z": 57856,
+ "Room": 44
+ },
+ {
+ "X": 17920,
+ "Y": -3200,
+ "Z": 58880,
+ "Room": 134
+ },
+ {
+ "X": 17920,
+ "Y": -3200,
+ "Z": 59904,
+ "Room": 130
+ },
+ {
+ "X": 22016,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 43
+ },
+ {
+ "X": 27136,
+ "Y": -3328,
+ "Z": 58880,
+ "Room": 133
+ },
+ {
+ "X": 25088,
+ "Y": -5632,
+ "Z": 60928,
+ "Room": 165
+ },
+ {
+ "X": 24064,
+ "Y": -9216,
+ "Z": 60928,
+ "Room": 51
+ },
+ {
+ "X": 23040,
+ "Y": -9728,
+ "Z": 59904,
+ "Room": 49
+ },
+ {
+ "X": 22016,
+ "Y": -8704,
+ "Z": 60928,
+ "Room": 61
+ },
+ {
+ "X": 18944,
+ "Y": -9216,
+ "Z": 60928,
+ "Room": 62
+ },
+ {
+ "X": 16896,
+ "Y": -9472,
+ "Z": 55808,
+ "Room": 52,
+ "Validated": false
+ },
+ {
+ "X": 17920,
+ "Y": -5632,
+ "Z": 60928,
+ "Room": 45,
+ "Validated": false
+ },
+ {
+ "X": 22016,
+ "Y": -8704,
+ "Z": 67072,
+ "Room": 58
+ },
+ {
+ "X": 23040,
+ "Y": -9728,
+ "Z": 66048,
+ "Room": 56
+ },
+ {
+ "X": 22016,
+ "Y": -8704,
+ "Z": 73216,
+ "Room": 107
+ },
+ {
+ "X": 23040,
+ "Y": -9728,
+ "Z": 73216,
+ "Room": 67
+ },
+ {
+ "X": 27136,
+ "Y": -8448,
+ "Z": 74240,
+ "Room": 110
+ },
+ {
+ "X": 27136,
+ "Y": -9728,
+ "Z": 73216,
+ "Room": 65
+ },
+ {
+ "X": 32256,
+ "Y": -5376,
+ "Z": 71168,
+ "Room": 108
+ },
+ {
+ "X": 35328,
+ "Y": -5632,
+ "Z": 71168,
+ "Room": 177
+ },
+ {
+ "X": 31232,
+ "Y": -8448,
+ "Z": 67072,
+ "Room": 63,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": -5376,
+ "Z": 73216,
+ "Room": 109
+ },
+ {
+ "X": 32256,
+ "Y": -5376,
+ "Z": 77312,
+ "Room": 111
+ },
+ {
+ "X": 29184,
+ "Y": -14592,
+ "Z": 72192,
+ "Room": 66,
+ "Validated": false
+ },
+ {
+ "X": 36352,
+ "Y": -1280,
+ "Z": 81408,
+ "Room": 141
+ },
+ {
+ "X": 37376,
+ "Y": -1280,
+ "Z": 86528,
+ "Room": 166
+ },
+ {
+ "X": 39424,
+ "Y": -12800,
+ "Z": 86528,
+ "Room": 120
+ },
+ {
+ "X": 36352,
+ "Y": -12800,
+ "Z": 86528,
+ "Room": 119
+ },
+ {
+ "X": 32256,
+ "Y": -9600,
+ "Z": 56832,
+ "Room": 64
+ },
+ {
+ "X": 31232,
+ "Y": -6528,
+ "Z": 58880,
+ "Room": 57
+ },
+ {
+ "X": 30208,
+ "Y": -6656,
+ "Z": 56832,
+ "Room": 179
+ },
+ {
+ "X": 11776,
+ "Y": -3328,
+ "Z": 58880,
+ "Room": 68
+ },
+ {
+ "X": 10752,
+ "Y": -3584,
+ "Z": 60928,
+ "Room": 81
+ },
+ {
+ "X": 7680,
+ "Y": -3712,
+ "Z": 58880,
+ "Room": 82
+ },
+ {
+ "X": 5632,
+ "Y": -3328,
+ "Z": 59904,
+ "Room": 74
+ },
+ {
+ "X": 3584,
+ "Y": 2304,
+ "Z": 59904,
+ "Room": 80,
+ "Validated": false
+ },
+ {
+ "X": 4608,
+ "Y": 4864,
+ "Z": 60672,
+ "Room": 83,
+ "KeyItemsHigh": "22419",
+ "KeyItemsLow": "22419",
+ "Validated": false
+ },
+ {
+ "X": 4608,
+ "Y": 4864,
+ "Z": 60928,
+ "Room": 83,
+ "KeyItemsHigh": "22419",
+ "KeyItemsLow": "22419",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 4608,
+ "Y": 4864,
+ "Z": 61184,
+ "Room": 83,
+ "KeyItemsHigh": "22419",
+ "KeyItemsLow": "22419",
+ "Range": "Medium",
+ "Validated": false
+ },
+ {
+ "X": 4352,
+ "Y": 4864,
+ "Z": 61184,
+ "Room": 83,
+ "KeyItemsHigh": "22419",
+ "KeyItemsLow": "22419",
+ "Range": "Medium",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 4352,
+ "Y": 4864,
+ "Z": 60928,
+ "Room": 83,
+ "KeyItemsHigh": "22419",
+ "KeyItemsLow": "22419",
+ "Range": "Large",
+ "Validated": false
+ },
+ {
+ "X": 4352,
+ "Y": 4864,
+ "Z": 60672,
+ "Room": 83,
+ "KeyItemsHigh": "22419",
+ "KeyItemsLow": "22419",
+ "Range": "Large",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 4608,
+ "Y": -3584,
+ "Z": 61952,
+ "Room": 78
+ },
+ {
+ "X": 1536,
+ "Y": -3328,
+ "Z": 60928,
+ "Room": 73
+ },
+ {
+ "X": 2560,
+ "Y": -3584,
+ "Z": 57856,
+ "Room": 77
+ },
+ {
+ "X": 3584,
+ "Y": -5632,
+ "Z": 61952,
+ "Room": 76,
+ "Validated": false
+ },
+ {
+ "X": 3584,
+ "Y": -5632,
+ "Z": 57856,
+ "Room": 75,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": -1792,
+ "Z": 49920,
+ "Room": 171,
+ "KeyItemsHigh": "22359"
+ },
+ {
+ "X": 38400,
+ "Y": -1792,
+ "Z": 49664,
+ "Room": 171,
+ "KeyItemsHigh": "22359",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": -1792,
+ "Z": 49408,
+ "Room": 171,
+ "KeyItemsHigh": "22359",
+ "Range": "Medium"
+ },
+ {
+ "X": 38593,
+ "Y": -1695,
+ "Z": 49408,
+ "Room": 171,
+ "KeyItemsHigh": "22359",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38593,
+ "Y": -1701,
+ "Z": 49661,
+ "Room": 171,
+ "KeyItemsHigh": "22359",
+ "Range": "Large"
+ },
+ {
+ "X": 38593,
+ "Y": -1693,
+ "Z": 49915,
+ "Room": 171,
+ "KeyItemsHigh": "22359",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": -3328,
+ "Z": 52736,
+ "Room": 172
+ },
+ {
+ "X": 42496,
+ "Y": -5120,
+ "Z": 53760,
+ "Room": 118,
+ "KeyItemsLow": "22578"
+ },
+ {
+ "X": 42752,
+ "Y": -5120,
+ "Z": 53760,
+ "Room": 118,
+ "KeyItemsLow": "22578",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 46592,
+ "Y": -4352,
+ "Z": 54784,
+ "Room": 116
+ },
+ {
+ "X": 56832,
+ "Y": -2944,
+ "Z": 61952,
+ "Room": 112
+ },
+ {
+ "X": 55808,
+ "Y": -2816,
+ "Z": 71168,
+ "Room": 152
+ },
+ {
+ "X": 55808,
+ "Y": -3584,
+ "Z": 75264,
+ "Room": 92
+ },
+ {
+ "X": 57856,
+ "Y": -4096,
+ "Z": 78336,
+ "Room": 95
+ },
+ {
+ "X": 55808,
+ "Y": -5888,
+ "Z": 80384,
+ "Room": 97
+ },
+ {
+ "X": 55808,
+ "Y": -7680,
+ "Z": 81408,
+ "Room": 96
+ },
+ {
+ "X": 55808,
+ "Y": -6656,
+ "Z": 83456,
+ "Room": 94
+ },
+ {
+ "X": 56832,
+ "Y": -5248,
+ "Z": 84480,
+ "Room": 93
+ },
+ {
+ "X": 54784,
+ "Y": -5120,
+ "Z": 85504,
+ "Room": 168
+ },
+ {
+ "X": 57856,
+ "Y": -3072,
+ "Z": 65024,
+ "Room": 117
+ },
+ {
+ "X": 62976,
+ "Y": -2304,
+ "Z": 64000,
+ "Room": 153
+ },
+ {
+ "X": 65024,
+ "Y": -128,
+ "Z": 67072,
+ "Room": 148
+ },
+ {
+ "X": 67072,
+ "Y": -128,
+ "Z": 72192,
+ "Room": 144
+ },
+ {
+ "X": 56832,
+ "Y": -3328,
+ "Z": 80384,
+ "Room": 98
+ },
+ {
+ "X": 55808,
+ "Y": -2816,
+ "Z": 83456,
+ "Room": 99
+ },
+ {
+ "X": 53760,
+ "Y": -2816,
+ "Z": 83456,
+ "Room": 155
+ },
+ {
+ "X": 47616,
+ "Y": -6656,
+ "Z": 84480,
+ "Room": 159
+ },
+ {
+ "X": 48640,
+ "Y": -4608,
+ "Z": 86528,
+ "Room": 169
+ },
+ {
+ "X": 52736,
+ "Y": -6144,
+ "Z": 85504,
+ "Room": 160,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -5504,
+ "Z": 86528,
+ "Room": 158,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": -3840,
+ "Z": 80384,
+ "Room": 151
+ },
+ {
+ "X": 44544,
+ "Y": -2816,
+ "Z": 79360,
+ "Room": 150
+ },
+ {
+ "X": 46592,
+ "Y": -2816,
+ "Z": 73216,
+ "Room": 149
+ },
+ {
+ "X": 50688,
+ "Y": -2816,
+ "Z": 70144,
+ "Room": 115
+ },
+ {
+ "X": 48640,
+ "Y": -3072,
+ "Z": 68096,
+ "Room": 113
+ },
+ {
+ "X": 51712,
+ "Y": -6656,
+ "Z": 76288,
+ "Room": 154
+ },
+ {
+ "X": 47616,
+ "Y": -3328,
+ "Z": 78336,
+ "Room": 156
+ },
+ {
+ "X": 51712,
+ "Y": -3072,
+ "Z": 78336,
+ "Room": 162
+ },
+ {
+ "X": 48640,
+ "Y": -3072,
+ "Z": 74240,
+ "Room": 163
+ },
+ {
+ "X": 50688,
+ "Y": -2816,
+ "Z": 64000,
+ "Room": 114
+ },
+ {
+ "X": 58624,
+ "Y": -2816,
+ "Z": 77312,
+ "Room": 143,
+ "KeyItemsHigh": "22578",
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -2816,
+ "Z": 77312,
+ "Room": 143,
+ "KeyItemsHigh": "22578",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 59136,
+ "Y": -2816,
+ "Z": 77312,
+ "Room": 143,
+ "KeyItemsHigh": "22578",
+ "Range": "Medium",
+ "Validated": false
+ },
+ {
+ "X": 59136,
+ "Y": -2816,
+ "Z": 77568,
+ "Room": 143,
+ "KeyItemsHigh": "22578",
+ "Range": "Medium",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -2816,
+ "Z": 77568,
+ "Room": 143,
+ "KeyItemsHigh": "22578",
+ "Range": "Large",
+ "Validated": false
+ },
+ {
+ "X": 58624,
+ "Y": -2816,
+ "Z": 77568,
+ "Room": 143,
+ "KeyItemsHigh": "22578",
+ "Range": "Large",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 82432,
+ "Room": 145,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": 2560,
+ "Z": 87552,
+ "Room": 146,
+ "Validated": false
+ }
+ ],
+ "COMPOUND.TR2": [
+ {
+ "X": 17152,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 2,
+ "KeyItemsLow": "23260"
+ },
+ {
+ "X": 16896,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 2,
+ "KeyItemsLow": "23260",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16640,
+ "Y": 0,
+ "Z": 24064,
+ "Room": 2,
+ "KeyItemsLow": "23260",
+ "Range": "Medium"
+ },
+ {
+ "X": 16640,
+ "Y": 0,
+ "Z": 24320,
+ "Room": 2,
+ "KeyItemsLow": "23260",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16896,
+ "Y": 0,
+ "Z": 24320,
+ "Room": 2,
+ "KeyItemsLow": "23260,23454,23537",
+ "Range": "Large"
+ },
+ {
+ "X": 17152,
+ "Y": 0,
+ "Z": 24320,
+ "Room": 2,
+ "KeyItemsLow": "23260,23454,23537",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16896,
+ "Y": 0,
+ "Z": 27136,
+ "Room": 117
+ },
+ {
+ "X": 13824,
+ "Y": 0,
+ "Z": 26112,
+ "Room": 1
+ },
+ {
+ "X": 10752,
+ "Y": 0,
+ "Z": 26112,
+ "Room": 0
+ },
+ {
+ "X": 7680,
+ "Y": 0,
+ "Z": 26112,
+ "Room": 113
+ },
+ {
+ "X": 5632,
+ "Y": 512,
+ "Z": 29184,
+ "Room": 7
+ },
+ {
+ "X": 16896,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 6
+ },
+ {
+ "X": 13824,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 5
+ },
+ {
+ "X": 10752,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 4
+ },
+ {
+ "X": 7680,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 3
+ },
+ {
+ "X": 5632,
+ "Y": -512,
+ "Z": 37376,
+ "Room": 57
+ },
+ {
+ "X": 3584,
+ "Y": -512,
+ "Z": 36352,
+ "Room": 56
+ },
+ {
+ "X": 1536,
+ "Y": -512,
+ "Z": 35328,
+ "Room": 54
+ },
+ {
+ "X": 3584,
+ "Y": -1792,
+ "Z": 37376,
+ "Room": 9
+ },
+ {
+ "X": 23040,
+ "Y": -1792,
+ "Z": 37376,
+ "Room": 63
+ },
+ {
+ "X": 20992,
+ "Y": 3328,
+ "Z": 37376,
+ "Room": 64,
+ "Validated": false
+ },
+ {
+ "X": 19968,
+ "Y": 256,
+ "Z": 37376,
+ "Room": 53
+ },
+ {
+ "X": 20992,
+ "Y": 256,
+ "Z": 30208,
+ "Room": 58
+ },
+ {
+ "X": 22016,
+ "Y": 2048,
+ "Z": 23040,
+ "Room": 51
+ },
+ {
+ "X": 23040,
+ "Y": 2048,
+ "Z": 25088,
+ "Room": 50
+ },
+ {
+ "X": 20992,
+ "Y": 2048,
+ "Z": 28160,
+ "Room": 49
+ },
+ {
+ "X": 19968,
+ "Y": 2048,
+ "Z": 22016,
+ "Room": 32
+ },
+ {
+ "X": 19968,
+ "Y": 2048,
+ "Z": 26112,
+ "Room": 52
+ },
+ {
+ "X": 19968,
+ "Y": 2048,
+ "Z": 30208,
+ "Room": 10
+ },
+ {
+ "X": 24064,
+ "Y": 2048,
+ "Z": 32000,
+ "Room": 11,
+ "KeyItemsHigh": "23260"
+ },
+ {
+ "X": 24064,
+ "Y": 2048,
+ "Z": 32256,
+ "Room": 11,
+ "KeyItemsHigh": "23260",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 24064,
+ "Y": 2048,
+ "Z": 32512,
+ "Room": 11,
+ "KeyItemsHigh": "23260",
+ "KeyItemsLow": "23454,23537",
+ "Range": "Medium"
+ },
+ {
+ "X": 24320,
+ "Y": 2048,
+ "Z": 32512,
+ "Room": 11,
+ "KeyItemsHigh": "23260",
+ "KeyItemsLow": "23454,23537",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 24320,
+ "Y": 2048,
+ "Z": 32256,
+ "Room": 11,
+ "KeyItemsHigh": "23260",
+ "Range": "Large"
+ },
+ {
+ "X": 24320,
+ "Y": 2048,
+ "Z": 32000,
+ "Room": 11,
+ "KeyItemsHigh": "23260",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 31232,
+ "Y": 2048,
+ "Z": 33280,
+ "Room": 16
+ },
+ {
+ "X": 31232,
+ "Y": 2048,
+ "Z": 37376,
+ "Room": 20
+ },
+ {
+ "X": 26112,
+ "Y": 2048,
+ "Z": 40448,
+ "Room": 21
+ },
+ {
+ "X": 25088,
+ "Y": 0,
+ "Z": 44544,
+ "Room": 27
+ },
+ {
+ "X": 32256,
+ "Y": -768,
+ "Z": 42496,
+ "Room": 24
+ },
+ {
+ "X": 35328,
+ "Y": -768,
+ "Z": 41472,
+ "Room": 23
+ },
+ {
+ "X": 35328,
+ "Y": -768,
+ "Z": 39424,
+ "Room": 26
+ },
+ {
+ "X": 29184,
+ "Y": 768,
+ "Z": 36352,
+ "Room": 15
+ },
+ {
+ "X": 28160,
+ "Y": 2304,
+ "Z": 19968,
+ "Room": 13
+ },
+ {
+ "X": 27136,
+ "Y": 2560,
+ "Z": 18944,
+ "Room": 12
+ },
+ {
+ "X": 27136,
+ "Y": 2304,
+ "Z": 22016,
+ "Room": 14
+ },
+ {
+ "X": 27136,
+ "Y": 2176,
+ "Z": 24064,
+ "Room": 17
+ },
+ {
+ "X": 28160,
+ "Y": 2048,
+ "Z": 27136,
+ "Room": 18
+ },
+ {
+ "X": 35328,
+ "Y": 1536,
+ "Z": 42496,
+ "Room": 22
+ },
+ {
+ "X": 43520,
+ "Y": 2048,
+ "Z": 37376,
+ "Room": 84
+ },
+ {
+ "X": 45568,
+ "Y": 2048,
+ "Z": 36352,
+ "Room": 86
+ },
+ {
+ "X": 46592,
+ "Y": 2048,
+ "Z": 34304,
+ "Room": 85
+ },
+ {
+ "X": 48640,
+ "Y": 2048,
+ "Z": 34304,
+ "Room": 102
+ },
+ {
+ "X": 39424,
+ "Y": 2048,
+ "Z": 36352,
+ "Room": 19
+ },
+ {
+ "X": 38400,
+ "Y": 256,
+ "Z": 44544,
+ "Room": 25
+ },
+ {
+ "X": 39424,
+ "Y": 3840,
+ "Z": 47616,
+ "Room": 88
+ },
+ {
+ "X": 40448,
+ "Y": 2560,
+ "Z": 47616,
+ "Room": 90
+ },
+ {
+ "X": 42496,
+ "Y": 2560,
+ "Z": 48640,
+ "Room": 91
+ },
+ {
+ "X": 41472,
+ "Y": -768,
+ "Z": 50688,
+ "Room": 93
+ },
+ {
+ "X": 43520,
+ "Y": -2304,
+ "Z": 50688,
+ "Room": 87,
+ "KeyItemsLow": "23454,23537"
+ },
+ {
+ "X": 43776,
+ "Y": -2304,
+ "Z": 50688,
+ "Room": 87,
+ "KeyItemsLow": "23454,23537",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -2304,
+ "Z": 50688,
+ "Room": 120
+ },
+ {
+ "X": 52736,
+ "Y": -2304,
+ "Z": 50688,
+ "Room": 132
+ },
+ {
+ "X": 55808,
+ "Y": -6400,
+ "Z": 47616,
+ "Room": 133
+ },
+ {
+ "X": 64000,
+ "Y": -9472,
+ "Z": 49664,
+ "Room": 101
+ },
+ {
+ "X": 64000,
+ "Y": -9472,
+ "Z": 46592,
+ "Room": 130
+ },
+ {
+ "X": 73216,
+ "Y": -9216,
+ "Z": 39424,
+ "Room": 131
+ },
+ {
+ "X": 73216,
+ "Y": -11008,
+ "Z": 41472,
+ "Room": 136,
+ "Validated": false
+ },
+ {
+ "X": 76288,
+ "Y": -12032,
+ "Z": 40448,
+ "Room": 146,
+ "Validated": false
+ },
+ {
+ "X": 74240,
+ "Y": -7936,
+ "Z": 37376,
+ "Room": 145
+ },
+ {
+ "X": 74240,
+ "Y": -4352,
+ "Z": 35328,
+ "Room": 104
+ },
+ {
+ "X": 73216,
+ "Y": -3584,
+ "Z": 30208,
+ "Room": 105
+ },
+ {
+ "X": 74240,
+ "Y": -3584,
+ "Z": 30208,
+ "Room": 108
+ },
+ {
+ "X": 67072,
+ "Y": -9472,
+ "Z": 39680,
+ "Room": 134,
+ "KeyItemsHigh": "23454",
+ "Validated": false
+ },
+ {
+ "X": 67072,
+ "Y": -9472,
+ "Z": 39424,
+ "Room": 134,
+ "KeyItemsHigh": "23454",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 67072,
+ "Y": -9472,
+ "Z": 39168,
+ "Room": 134,
+ "KeyItemsHigh": "23454",
+ "Range": "Medium"
+ },
+ {
+ "X": 66816,
+ "Y": -9472,
+ "Z": 39168,
+ "Room": 134,
+ "KeyItemsHigh": "23454",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 66816,
+ "Y": -9472,
+ "Z": 39424,
+ "Room": 134,
+ "KeyItemsHigh": "23454",
+ "Range": "Large"
+ },
+ {
+ "X": 66816,
+ "Y": -9472,
+ "Z": 39680,
+ "Room": 134,
+ "KeyItemsHigh": "23454",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 58880,
+ "Y": -9216,
+ "Z": 38400,
+ "Room": 138,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -11008,
+ "Z": 41472,
+ "Room": 137,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": -12288,
+ "Z": 42496,
+ "Room": 158,
+ "Validated": false
+ },
+ {
+ "X": 56832,
+ "Y": -4864,
+ "Z": 33280,
+ "Room": 159
+ },
+ {
+ "X": 57856,
+ "Y": -4608,
+ "Z": 30208,
+ "Room": 160
+ },
+ {
+ "X": 51712,
+ "Y": -7680,
+ "Z": 30208,
+ "Room": 100,
+ "Validated": false
+ },
+ {
+ "X": 58880,
+ "Y": -3584,
+ "Z": 30208,
+ "Room": 112
+ },
+ {
+ "X": 70144,
+ "Y": -3584,
+ "Z": 31232,
+ "Room": 106
+ },
+ {
+ "X": 50944,
+ "Y": -5120,
+ "Z": 16128,
+ "Room": 111,
+ "KeyItemsHigh": "23537"
+ },
+ {
+ "X": 50944,
+ "Y": -5120,
+ "Z": 15872,
+ "Room": 111,
+ "KeyItemsHigh": "23537",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50944,
+ "Y": -5120,
+ "Z": 15616,
+ "Room": 111,
+ "KeyItemsHigh": "23537",
+ "Range": "Medium"
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 15616,
+ "Room": 111,
+ "KeyItemsHigh": "23537",
+ "KeyItemsLow": "23490,23463",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 15872,
+ "Room": 111,
+ "KeyItemsHigh": "23537",
+ "Range": "Large"
+ },
+ {
+ "X": 50688,
+ "Y": -5120,
+ "Z": 16128,
+ "Room": 111,
+ "KeyItemsHigh": "23537",
+ "KeyItemsLow": "23322,23352,23463,23490",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 45568,
+ "Y": -5120,
+ "Z": 14848,
+ "Room": 116
+ },
+ {
+ "X": 49664,
+ "Y": -4224,
+ "Z": 13824,
+ "Room": 182
+ },
+ {
+ "X": 50688,
+ "Y": -3840,
+ "Z": 11776,
+ "Room": 181
+ },
+ {
+ "X": 52736,
+ "Y": -3584,
+ "Z": 12800,
+ "Room": 179
+ },
+ {
+ "X": 56832,
+ "Y": -2560,
+ "Z": 12800,
+ "Room": 180
+ },
+ {
+ "X": 56832,
+ "Y": -2560,
+ "Z": 13824,
+ "Room": 135,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": -2304,
+ "Z": 18944,
+ "Room": 140,
+ "KeyItemsLow": "23490,23463",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 57856,
+ "Y": -1792,
+ "Z": 19968,
+ "Room": 115
+ },
+ {
+ "X": 57856,
+ "Y": -1280,
+ "Z": 27136,
+ "Room": 139
+ },
+ {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 27136,
+ "Room": 47
+ },
+ {
+ "X": 71168,
+ "Y": -2304,
+ "Z": 27136,
+ "Room": 45
+ },
+ {
+ "X": 71168,
+ "Y": -256,
+ "Z": 24064,
+ "Room": 43
+ },
+ {
+ "X": 70144,
+ "Y": -1280,
+ "Z": 16896,
+ "Room": 55
+ },
+ {
+ "X": 69120,
+ "Y": -1280,
+ "Z": 14848,
+ "Room": 141
+ },
+ {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 14848,
+ "Room": 38
+ },
+ {
+ "X": 65024,
+ "Y": -2816,
+ "Z": 22016,
+ "Room": 163
+ },
+ {
+ "X": 65024,
+ "Y": -1024,
+ "Z": 22016,
+ "Room": 46
+ },
+ {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 24064,
+ "Room": 48
+ },
+ {
+ "X": 71168,
+ "Y": -3840,
+ "Z": 23040,
+ "Room": 44
+ },
+ {
+ "X": 71168,
+ "Y": 13568,
+ "Z": 20992,
+ "Room": 161,
+ "Validated": false
+ },
+ {
+ "X": 71424,
+ "Y": 10240,
+ "Z": 22016,
+ "Room": 118,
+ "KeyItemsLow": "23490,23463"
+ },
+ {
+ "X": 71168,
+ "Y": 10240,
+ "Z": 22016,
+ "Room": 118,
+ "KeyItemsLow": "23490,23463",
+ "Range": "Medium"
+ },
+ {
+ "X": 70912,
+ "Y": 10240,
+ "Z": 22016,
+ "Room": 118,
+ "KeyItemsLow": "23322,23352,23490,23463",
+ "Range": "Large"
+ },
+ {
+ "X": 66048,
+ "Y": 8704,
+ "Z": 19968,
+ "Room": 142
+ },
+ {
+ "X": 64000,
+ "Y": 8704,
+ "Z": 20992,
+ "Room": 143
+ },
+ {
+ "X": 64000,
+ "Y": 8704,
+ "Z": 31232,
+ "Room": 144
+ },
+ {
+ "X": 72192,
+ "Y": 8960,
+ "Z": 30208,
+ "Room": 147
+ },
+ {
+ "X": 77312,
+ "Y": 14592,
+ "Z": 17920,
+ "Room": 183
+ },
+ {
+ "X": 82432,
+ "Y": 12800,
+ "Z": 18944,
+ "Room": 170
+ },
+ {
+ "X": 81408,
+ "Y": 8960,
+ "Z": 27136,
+ "Room": 171
+ },
+ {
+ "X": 77312,
+ "Y": 8960,
+ "Z": 27136,
+ "Room": 162
+ },
+ {
+ "X": 75264,
+ "Y": 8960,
+ "Z": 29184,
+ "Room": 128
+ },
+ {
+ "X": 72192,
+ "Y": 8960,
+ "Z": 29184,
+ "Room": 123
+ },
+ {
+ "X": 71168,
+ "Y": 5888,
+ "Z": 28160,
+ "Room": 121
+ },
+ {
+ "X": 71168,
+ "Y": 4608,
+ "Z": 24064,
+ "Room": 41
+ },
+ {
+ "X": 71168,
+ "Y": 1792,
+ "Z": 15872,
+ "Room": 127
+ },
+ {
+ "X": 71168,
+ "Y": -256,
+ "Z": 7680,
+ "Room": 125
+ },
+ {
+ "X": 67072,
+ "Y": -256,
+ "Z": 7680,
+ "Room": 129
+ },
+ {
+ "X": 65024,
+ "Y": -256,
+ "Z": 7680,
+ "Room": 186,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 65024,
+ "Y": -3328,
+ "Z": 13824,
+ "Room": 187,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 71168,
+ "Y": 8960,
+ "Z": 25088,
+ "Room": 124
+ },
+ {
+ "X": 71168,
+ "Y": 6656,
+ "Z": 24064,
+ "Room": 122
+ },
+ {
+ "X": 70912,
+ "Y": 16640,
+ "Z": 22016,
+ "Room": 148,
+ "KeyItemsHigh": "23463,23490"
+ },
+ {
+ "X": 71168,
+ "Y": 16640,
+ "Z": 22016,
+ "Room": 148,
+ "KeyItemsHigh": "23463,23490",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71424,
+ "Y": 16640,
+ "Z": 22016,
+ "Room": 148,
+ "KeyItemsHigh": "23463",
+ "Range": "Medium"
+ },
+ {
+ "X": 71424,
+ "Y": 16640,
+ "Z": 22272,
+ "Room": 148,
+ "KeyItemsHigh": "23463",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": 16640,
+ "Z": 22272,
+ "Room": 148,
+ "KeyItemsHigh": "23463",
+ "Range": "Large"
+ },
+ {
+ "X": 70912,
+ "Y": 16640,
+ "Z": 22272,
+ "Room": 148,
+ "KeyItemsHigh": "23463",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": 16640,
+ "Z": 23040,
+ "Room": 150,
+ "KeyItemsLow": "23322,23352",
+ "Range": "Medium"
+ },
+ {
+ "X": 71168,
+ "Y": 16640,
+ "Z": 23296,
+ "Room": 150,
+ "KeyItemsLow": "23322,23352",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": 15104,
+ "Z": 35328,
+ "Room": 151
+ },
+ {
+ "X": 79360,
+ "Y": 12544,
+ "Z": 35328,
+ "Room": 175
+ },
+ {
+ "X": 79360,
+ "Y": 11648,
+ "Z": 40448,
+ "Room": 152
+ },
+ {
+ "X": 79360,
+ "Y": 9472,
+ "Z": 47616,
+ "Room": 83
+ },
+ {
+ "X": 79360,
+ "Y": 6144,
+ "Z": 48640,
+ "Room": 154
+ },
+ {
+ "X": 82432,
+ "Y": 7168,
+ "Z": 48640,
+ "Room": 156
+ },
+ {
+ "X": 82432,
+ "Y": 7168,
+ "Z": 49664,
+ "Room": 153
+ },
+ {
+ "X": 81408,
+ "Y": 1408,
+ "Z": 59904,
+ "Room": 67
+ },
+ {
+ "X": 79360,
+ "Y": 1024,
+ "Z": 60160,
+ "Room": 66,
+ "KeyItemsLow": "23322,23352"
+ },
+ {
+ "X": 79360,
+ "Y": 1024,
+ "Z": 59904,
+ "Room": 66,
+ "KeyItemsLow": "23322,23352",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 79360,
+ "Y": 0,
+ "Z": 58880,
+ "Room": 61
+ },
+ {
+ "X": 79360,
+ "Y": -1024,
+ "Z": 57856,
+ "Room": 59
+ },
+ {
+ "X": 80384,
+ "Y": 1024,
+ "Z": 53760,
+ "Room": 166
+ },
+ {
+ "X": 79360,
+ "Y": 1024,
+ "Z": 50688,
+ "Room": 167
+ },
+ {
+ "X": 78336,
+ "Y": 512,
+ "Z": 49664,
+ "Room": 168
+ },
+ {
+ "X": 76288,
+ "Y": -256,
+ "Z": 7680,
+ "Room": 126,
+ "Validated": false
+ },
+ {
+ "X": 82432,
+ "Y": -256,
+ "Z": 7680,
+ "Room": 177,
+ "Validated": false
+ },
+ {
+ "X": 61952,
+ "Y": -9728,
+ "Z": 41472,
+ "Room": 149,
+ "Validated": false
+ },
+ {
+ "X": 77312,
+ "Y": 1152,
+ "Z": 59904,
+ "Room": 65
+ },
+ {
+ "X": 75264,
+ "Y": 1280,
+ "Z": 60928,
+ "Room": 36
+ },
+ {
+ "X": 75264,
+ "Y": 896,
+ "Z": 64000,
+ "Room": 37
+ },
+ {
+ "X": 75264,
+ "Y": -1536,
+ "Z": 74240,
+ "Room": 39
+ },
+ {
+ "X": 78336,
+ "Y": -1664,
+ "Z": 76288,
+ "Room": 40
+ },
+ {
+ "X": 91648,
+ "Y": -4864,
+ "Z": 76288,
+ "Room": 74
+ },
+ {
+ "X": 90624,
+ "Y": -4864,
+ "Z": 81408,
+ "Room": 169,
+ "Validated": false
+ },
+ {
+ "X": 88576,
+ "Y": -6656,
+ "Z": 78336,
+ "Room": 76
+ },
+ {
+ "X": 89600,
+ "Y": -6656,
+ "Z": 76288,
+ "Room": 75
+ },
+ {
+ "X": 91648,
+ "Y": -6656,
+ "Z": 71936,
+ "Room": 71,
+ "KeyItemsHigh": "23352"
+ },
+ {
+ "X": 91648,
+ "Y": -6656,
+ "Z": 72192,
+ "Room": 71,
+ "KeyItemsHigh": "23352",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 91648,
+ "Y": -6656,
+ "Z": 72448,
+ "Room": 71,
+ "KeyItemsHigh": "23352",
+ "Range": "Medium"
+ },
+ {
+ "X": 91904,
+ "Y": -6656,
+ "Z": 72448,
+ "Room": 71,
+ "KeyItemsHigh": "23352",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 91904,
+ "Y": -6656,
+ "Z": 72192,
+ "Room": 71,
+ "KeyItemsHigh": "23352",
+ "Range": "Large"
+ },
+ {
+ "X": 91904,
+ "Y": -6656,
+ "Z": 71936,
+ "Room": 71,
+ "KeyItemsHigh": "23352",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72192,
+ "Y": -2048,
+ "Z": 60928,
+ "Room": 34
+ },
+ {
+ "X": 70144,
+ "Y": -3840,
+ "Z": 57856,
+ "Room": 33
+ },
+ {
+ "X": 71936,
+ "Y": 2048,
+ "Z": 52736,
+ "Room": 70,
+ "KeyItemsHigh": "23322"
+ },
+ {
+ "X": 72192,
+ "Y": 2048,
+ "Z": 52736,
+ "Room": 70,
+ "KeyItemsHigh": "23322",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72448,
+ "Y": 2048,
+ "Z": 52736,
+ "Room": 70,
+ "KeyItemsHigh": "23322,23490",
+ "Range": "Medium"
+ },
+ {
+ "X": 72448,
+ "Y": 2048,
+ "Z": 52480,
+ "Room": 70,
+ "KeyItemsHigh": "23322,23490",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 72192,
+ "Y": 2048,
+ "Z": 52480,
+ "Room": 70,
+ "KeyItemsHigh": "23322",
+ "Range": "Large"
+ },
+ {
+ "X": 71936,
+ "Y": 2048,
+ "Z": 52480,
+ "Room": 70,
+ "KeyItemsHigh": "23322",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 70144,
+ "Y": 2048,
+ "Z": 49664,
+ "Room": 157
+ },
+ {
+ "X": 68096,
+ "Y": 512,
+ "Z": 52736,
+ "Room": 99
+ },
+ {
+ "X": 59904,
+ "Y": 0,
+ "Z": 57856,
+ "Room": 97
+ },
+ {
+ "X": 64000,
+ "Y": 512,
+ "Z": 60928,
+ "Room": 98
+ },
+ {
+ "X": 61952,
+ "Y": 0,
+ "Z": 64000,
+ "Room": 95
+ },
+ {
+ "X": 56832,
+ "Y": 0,
+ "Z": 67072,
+ "Room": 96
+ },
+ {
+ "X": 50688,
+ "Y": 0,
+ "Z": 71168,
+ "Room": 81
+ },
+ {
+ "X": 57856,
+ "Y": -256,
+ "Z": 62976,
+ "Room": 94,
+ "KeyItemsHigh": "23490",
+ "Range": "Large"
+ },
+ {
+ "X": 57856,
+ "Y": -256,
+ "Z": 62720,
+ "Room": 94,
+ "KeyItemsHigh": "23490",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "AREA51.TR2": [
+ {
+ "X": 64000,
+ "Y": 3072,
+ "Z": 52736,
+ "Room": 31,
+ "KeyItemsLow": "24253,24322,24434,24433",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 64000,
+ "Y": 3072,
+ "Z": 55808,
+ "Room": 11
+ },
+ {
+ "X": 62976,
+ "Y": 3072,
+ "Z": 61952,
+ "Room": 12
+ },
+ {
+ "X": 54784,
+ "Y": 3072,
+ "Z": 60928,
+ "Room": 14,
+ "Validated": false
+ },
+ {
+ "X": 57856,
+ "Y": 3072,
+ "Z": 60928,
+ "Room": 54
+ },
+ {
+ "X": 57856,
+ "Y": 2048,
+ "Z": 55808,
+ "Room": 46,
+ "Validated": false
+ },
+ {
+ "X": 60928,
+ "Y": 1536,
+ "Z": 55808,
+ "Room": 128
+ },
+ {
+ "X": 54784,
+ "Y": 0,
+ "Z": 55808,
+ "Room": 40
+ },
+ {
+ "X": 50688,
+ "Y": -1024,
+ "Z": 55808,
+ "Room": 34
+ },
+ {
+ "X": 49664,
+ "Y": -1024,
+ "Z": 53760,
+ "Room": 35
+ },
+ {
+ "X": 49664,
+ "Y": -1024,
+ "Z": 51712,
+ "Room": 13
+ },
+ {
+ "X": 50688,
+ "Y": -1024,
+ "Z": 58880,
+ "Room": 9
+ },
+ {
+ "X": 52736,
+ "Y": -1024,
+ "Z": 61952,
+ "Room": 131
+ },
+ {
+ "X": 52736,
+ "Y": -2304,
+ "Z": 67072,
+ "Room": 10
+ },
+ {
+ "X": 52736,
+ "Y": -2560,
+ "Z": 72192,
+ "Room": 1
+ },
+ {
+ "X": 43520,
+ "Y": -3328,
+ "Z": 74240,
+ "Room": 122,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": -3328,
+ "Z": 75264,
+ "Room": 124,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": -3328,
+ "Z": 70144,
+ "Room": 4
+ },
+ {
+ "X": 40448,
+ "Y": 256,
+ "Z": 69120,
+ "Room": 0,
+ "KeyItemsLow": "24434,24322,24253",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 384,
+ "Z": 64000,
+ "Room": 41
+ },
+ {
+ "X": 39424,
+ "Y": 2048,
+ "Z": 61952,
+ "Room": 44
+ },
+ {
+ "X": 40448,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 62
+ },
+ {
+ "X": 43520,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 140,
+ "Validated": false
+ },
+ {
+ "X": 37376,
+ "Y": 3584,
+ "Z": 61952,
+ "Room": 63
+ },
+ {
+ "X": 34304,
+ "Y": 5632,
+ "Z": 60672,
+ "Room": 64,
+ "KeyItemsLow": "24434,24322",
+ "Range": "Medium"
+ },
+ {
+ "X": 34304,
+ "Y": 5632,
+ "Z": 60928,
+ "Room": 64,
+ "KeyItemsLow": "24434,24433,24322,24253",
+ "Range": "Large"
+ },
+ {
+ "X": 34304,
+ "Y": 5632,
+ "Z": 67072,
+ "Room": 66
+ },
+ {
+ "X": 28160,
+ "Y": 5632,
+ "Z": 68096,
+ "Room": 68
+ },
+ {
+ "X": 34304,
+ "Y": 5632,
+ "Z": 51712,
+ "Room": 65
+ },
+ {
+ "X": 36352,
+ "Y": 5632,
+ "Z": 47616,
+ "Room": 136
+ },
+ {
+ "X": 41472,
+ "Y": 6528,
+ "Z": 46592,
+ "Room": 70,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": 5632,
+ "Z": 41472,
+ "Room": 69,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": 7424,
+ "Z": 51712,
+ "Room": 60
+ },
+ {
+ "X": 25088,
+ "Y": 7424,
+ "Z": 51712,
+ "Room": 71,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": 7424,
+ "Z": 54784,
+ "Room": 72,
+ "KeyItemsLow": "24322,24434"
+ },
+ {
+ "X": 34048,
+ "Y": 7424,
+ "Z": 54784,
+ "Room": 72,
+ "KeyItemsLow": "24434,24322",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 31232,
+ "Y": 7424,
+ "Z": 54784,
+ "Room": 145
+ },
+ {
+ "X": 37376,
+ "Y": 7424,
+ "Z": 55808,
+ "Room": 144
+ },
+ {
+ "X": 37376,
+ "Y": 7296,
+ "Z": 56832,
+ "Room": 132
+ },
+ {
+ "X": 31232,
+ "Y": 6656,
+ "Z": 58880,
+ "Room": 73,
+ "KeyItemsLow": "24253",
+ "Range": "Medium"
+ },
+ {
+ "X": 25088,
+ "Y": 4096,
+ "Z": 56832,
+ "Room": 74
+ },
+ {
+ "X": 23040,
+ "Y": 2816,
+ "Z": 53760,
+ "Room": 61
+ },
+ {
+ "X": 23040,
+ "Y": 1536,
+ "Z": 62976,
+ "Room": 51
+ },
+ {
+ "X": 24064,
+ "Y": 3712,
+ "Z": 62976,
+ "Room": 49
+ },
+ {
+ "X": 23040,
+ "Y": 2816,
+ "Z": 50688,
+ "Room": 79
+ },
+ {
+ "X": 20992,
+ "Y": 2816,
+ "Z": 50688,
+ "Room": 76
+ },
+ {
+ "X": 18944,
+ "Y": 5120,
+ "Z": 51712,
+ "Room": 75
+ },
+ {
+ "X": 10752,
+ "Y": 5760,
+ "Z": 51712,
+ "Room": 77
+ },
+ {
+ "X": 15872,
+ "Y": 3584,
+ "Z": 55808,
+ "Room": 76
+ },
+ {
+ "X": 12800,
+ "Y": 2816,
+ "Z": 54784,
+ "Room": 55
+ },
+ {
+ "X": 12800,
+ "Y": 6912,
+ "Z": 49664,
+ "Room": 110
+ },
+ {
+ "X": 13824,
+ "Y": 6912,
+ "Z": 49664,
+ "Room": 80
+ },
+ {
+ "X": 18688,
+ "Y": 1536,
+ "Z": 52736,
+ "Room": 78,
+ "KeyItemsHigh": "24322"
+ },
+ {
+ "X": 18944,
+ "Y": 1536,
+ "Z": 52736,
+ "Room": 78,
+ "KeyItemsHigh": "24322",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 19200,
+ "Y": 1536,
+ "Z": 52736,
+ "Room": 78,
+ "KeyItemsHigh": "24322",
+ "Range": "Medium"
+ },
+ {
+ "X": 19200,
+ "Y": 1536,
+ "Z": 52992,
+ "Room": 78,
+ "KeyItemsHigh": "24322",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 18944,
+ "Y": 1536,
+ "Z": 52992,
+ "Room": 78,
+ "KeyItemsHigh": "24322",
+ "Range": "Large"
+ },
+ {
+ "X": 18688,
+ "Y": 1536,
+ "Z": 52992,
+ "Room": 78,
+ "KeyItemsHigh": "24322",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 24064,
+ "Y": 3584,
+ "Z": 67072,
+ "Room": 56
+ },
+ {
+ "X": 24064,
+ "Y": 2816,
+ "Z": 75264,
+ "Room": 89
+ },
+ {
+ "X": 27904,
+ "Y": 3840,
+ "Z": 73216,
+ "Room": 87,
+ "KeyItemsHigh": "24434"
+ },
+ {
+ "X": 28160,
+ "Y": 3840,
+ "Z": 73216,
+ "Room": 87,
+ "KeyItemsHigh": "24434",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28416,
+ "Y": 3840,
+ "Z": 73216,
+ "Room": 87,
+ "KeyItemsHigh": "24434",
+ "KeyItemsLow": "24433",
+ "Range": "Medium"
+ },
+ {
+ "X": 28416,
+ "Y": 3840,
+ "Z": 72960,
+ "Room": 87,
+ "KeyItemsHigh": "24434",
+ "KeyItemsLow": "24433",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": 3840,
+ "Z": 72960,
+ "Room": 87,
+ "KeyItemsHigh": "24434",
+ "Range": "Large"
+ },
+ {
+ "X": 27904,
+ "Y": 3840,
+ "Z": 72960,
+ "Room": 87,
+ "KeyItemsHigh": "24434",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": 4608,
+ "Z": 73216,
+ "Room": 81
+ },
+ {
+ "X": 33280,
+ "Y": 4608,
+ "Z": 74240,
+ "Room": 84
+ },
+ {
+ "X": 32256,
+ "Y": 768,
+ "Z": 81408,
+ "Room": 88
+ },
+ {
+ "X": 36352,
+ "Y": 2816,
+ "Z": 70144,
+ "Room": 141
+ },
+ {
+ "X": 34304,
+ "Y": 1536,
+ "Z": 67072,
+ "Room": 93
+ },
+ {
+ "X": 34304,
+ "Y": 1536,
+ "Z": 50688,
+ "Room": 94
+ },
+ {
+ "X": 35328,
+ "Y": 3328,
+ "Z": 46592,
+ "Room": 90
+ },
+ {
+ "X": 33280,
+ "Y": 4608,
+ "Z": 47616,
+ "Room": 91
+ },
+ {
+ "X": 32256,
+ "Y": 3840,
+ "Z": 46336,
+ "Room": 92,
+ "KeyItemsLow": "24253"
+ },
+ {
+ "X": 32256,
+ "Y": 3840,
+ "Z": 46592,
+ "Room": 92,
+ "KeyItemsLow": "24253",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 30208,
+ "Y": 3712,
+ "Z": 45568,
+ "Room": 115
+ },
+ {
+ "X": 30208,
+ "Y": 2304,
+ "Z": 39424,
+ "Room": 117
+ },
+ {
+ "X": 34304,
+ "Y": 1408,
+ "Z": 38400,
+ "Room": 116
+ },
+ {
+ "X": 34304,
+ "Y": -512,
+ "Z": 30208,
+ "Room": 108
+ },
+ {
+ "X": 39424,
+ "Y": -2048,
+ "Z": 30208,
+ "Room": 105
+ },
+ {
+ "X": 49664,
+ "Y": -2048,
+ "Z": 30208,
+ "Room": 104
+ },
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 42496,
+ "Room": 103,
+ "KeyItemsHigh": "24253",
+ "KeyItemsLow": "24433"
+ },
+ {
+ "X": 48384,
+ "Y": -2048,
+ "Z": 42496,
+ "Room": 103,
+ "KeyItemsHigh": "24253",
+ "KeyItemsLow": "24433",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 39424,
+ "Y": -2304,
+ "Z": 44544,
+ "Room": 96
+ },
+ {
+ "X": 35328,
+ "Y": -2304,
+ "Z": 47616,
+ "Room": 123
+ },
+ {
+ "X": 44544,
+ "Y": -2304,
+ "Z": 47616,
+ "Room": 120
+ },
+ {
+ "X": 43520,
+ "Y": -4352,
+ "Z": 48640,
+ "Room": 97
+ },
+ {
+ "X": 39424,
+ "Y": -2304,
+ "Z": 55808,
+ "Room": 3
+ },
+ {
+ "X": 37376,
+ "Y": -3840,
+ "Z": 54784,
+ "Room": 146
+ },
+ {
+ "X": 48640,
+ "Y": -2048,
+ "Z": 36352,
+ "Room": 99
+ },
+ {
+ "X": 41472,
+ "Y": -8192,
+ "Z": 39424,
+ "Room": 102
+ },
+ {
+ "X": 45568,
+ "Y": -6144,
+ "Z": 35328,
+ "Room": 101
+ },
+ {
+ "X": 43520,
+ "Y": -4352,
+ "Z": 36352,
+ "Room": 98
+ },
+ {
+ "X": 24064,
+ "Y": 5888,
+ "Z": 72192,
+ "Room": 59
+ },
+ {
+ "X": 23040,
+ "Y": 6400,
+ "Z": 65024,
+ "Room": 52
+ },
+ {
+ "X": 20992,
+ "Y": 5888,
+ "Z": 64000,
+ "Room": 109
+ },
+ {
+ "X": 16128,
+ "Y": 5632,
+ "Z": 65024,
+ "Room": 57,
+ "KeyItemsHigh": "24433"
+ },
+ {
+ "X": 15872,
+ "Y": 5632,
+ "Z": 65024,
+ "Room": 57,
+ "KeyItemsHigh": "24433",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 15616,
+ "Y": 5632,
+ "Z": 65024,
+ "Room": 57,
+ "KeyItemsHigh": "24433",
+ "Range": "Medium"
+ },
+ {
+ "X": 15616,
+ "Y": 5632,
+ "Z": 64768,
+ "Room": 57,
+ "KeyItemsHigh": "24433",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 15872,
+ "Y": 5632,
+ "Z": 64768,
+ "Room": 57,
+ "KeyItemsHigh": "24433",
+ "Range": "Large"
+ },
+ {
+ "X": 16128,
+ "Y": 5632,
+ "Z": 64768,
+ "Room": 57,
+ "KeyItemsHigh": "24433",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -512,
+ "Z": 66048,
+ "Room": 53
+ },
+ {
+ "X": 23040,
+ "Y": -2816,
+ "Z": 66048,
+ "Room": 50
+ },
+ {
+ "X": 23040,
+ "Y": -2560,
+ "Z": 68096,
+ "Room": 126,
+ "KeyItemsLow": "24253"
+ },
+ {
+ "X": 23296,
+ "Y": -2560,
+ "Z": 68096,
+ "Room": 126,
+ "KeyItemsLow": "24253",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 26112,
+ "Y": -2304,
+ "Z": 68096,
+ "Room": 125,
+ "Validated": false
+ },
+ {
+ "X": 26112,
+ "Y": -2304,
+ "Z": 59904,
+ "Room": 45
+ },
+ {
+ "X": 25088,
+ "Y": -2176,
+ "Z": 59904,
+ "Room": 47
+ },
+ {
+ "X": 19968,
+ "Y": -1280,
+ "Z": 58880,
+ "Room": 48
+ },
+ {
+ "X": 19968,
+ "Y": -3072,
+ "Z": 55808,
+ "Room": 130
+ },
+ {
+ "X": 19968,
+ "Y": -4864,
+ "Z": 51712,
+ "Room": 127
+ },
+ {
+ "X": 18944,
+ "Y": -7936,
+ "Z": 47616,
+ "Room": 150
+ },
+ {
+ "X": 16896,
+ "Y": -4736,
+ "Z": 45568,
+ "Room": 129
+ },
+ {
+ "X": 16896,
+ "Y": -4608,
+ "Z": 49664,
+ "Room": 25
+ },
+ {
+ "X": 13824,
+ "Y": -3840,
+ "Z": 49664,
+ "Room": 26
+ },
+ {
+ "X": 20992,
+ "Y": -2816,
+ "Z": 48640,
+ "Room": 135
+ },
+ {
+ "X": 27136,
+ "Y": -2176,
+ "Z": 47616,
+ "Room": 28,
+ "Validated": false
+ },
+ {
+ "X": 28160,
+ "Y": -1280,
+ "Z": 43520,
+ "Room": 30
+ },
+ {
+ "X": 31232,
+ "Y": 2816,
+ "Z": 43520,
+ "Room": 24
+ },
+ {
+ "X": 38400,
+ "Y": -2048,
+ "Z": 35328,
+ "Room": 114
+ },
+ {
+ "X": 37376,
+ "Y": -1536,
+ "Z": 32256,
+ "Room": 113
+ },
+ {
+ "X": 34560,
+ "Y": -1476,
+ "Z": 28416,
+ "Room": 112,
+ "KeyItemsHigh": "24253"
+ },
+ {
+ "X": 34560,
+ "Y": -1476,
+ "Z": 28160,
+ "Room": 112,
+ "KeyItemsHigh": "24253",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34560,
+ "Y": -1476,
+ "Z": 27904,
+ "Room": 112,
+ "KeyItemsHigh": "24253",
+ "Range": "Medium"
+ },
+ {
+ "X": 34304,
+ "Y": -1408,
+ "Z": 27904,
+ "Room": 112,
+ "KeyItemsHigh": "24253",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 34304,
+ "Y": -1408,
+ "Z": 28160,
+ "Room": 112,
+ "KeyItemsHigh": "24253",
+ "Range": "Large"
+ },
+ {
+ "X": 34304,
+ "Y": -1408,
+ "Z": 28416,
+ "Room": 112,
+ "KeyItemsHigh": "24253",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 33280,
+ "Y": -1152,
+ "Z": 28160,
+ "Room": 111
+ },
+ {
+ "X": 37376,
+ "Y": -1920,
+ "Z": 37376,
+ "Room": 32
+ },
+ {
+ "X": 37376,
+ "Y": -1280,
+ "Z": 40448,
+ "Room": 33
+ },
+ {
+ "X": 29184,
+ "Y": -1280,
+ "Z": 42496,
+ "Room": 36
+ },
+ {
+ "X": 46592,
+ "Y": -6656,
+ "Z": 41472,
+ "Room": 42
+ },
+ {
+ "X": 38400,
+ "Y": -5888,
+ "Z": 42496,
+ "Room": 43
+ },
+ {
+ "X": 36352,
+ "Y": -768,
+ "Z": 43520,
+ "Room": 138
+ },
+ {
+ "X": 43520,
+ "Y": -3584,
+ "Z": 34304,
+ "Room": 16
+ },
+ {
+ "X": 44544,
+ "Y": -3584,
+ "Z": 36352,
+ "Room": 17
+ },
+ {
+ "X": 45568,
+ "Y": -4864,
+ "Z": 36352,
+ "Room": 121
+ },
+ {
+ "X": 48640,
+ "Y": -4992,
+ "Z": 36352,
+ "Room": 19
+ },
+ {
+ "X": 50688,
+ "Y": -6912,
+ "Z": 36352,
+ "Room": 18
+ }
+ ],
+ "ANTARC.TR2": [
+ {
+ "X": 32256,
+ "Y": -3712,
+ "Z": 4352,
+ "Room": 12,
+ "KeyItemsLow": "25526,25446,25456",
+ "Range": "Large"
+ },
+ {
+ "X": 32256,
+ "Y": -3712,
+ "Z": 4608,
+ "Room": 12,
+ "KeyItemsLow": "25526,25446,25456",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 29184,
+ "Y": 128,
+ "Z": 3584,
+ "Room": 11
+ },
+ {
+ "X": 34304,
+ "Y": -3968,
+ "Z": 10752,
+ "Room": 28
+ },
+ {
+ "X": 36352,
+ "Y": -3968,
+ "Z": 12800,
+ "Room": 64
+ },
+ {
+ "X": 35328,
+ "Y": -3840,
+ "Z": 15872,
+ "Room": 2
+ },
+ {
+ "X": 39424,
+ "Y": -4864,
+ "Z": 15872,
+ "Room": 65
+ },
+ {
+ "X": 41472,
+ "Y": -5120,
+ "Z": 18944,
+ "Room": 20
+ },
+ {
+ "X": 40448,
+ "Y": -6400,
+ "Z": 19968,
+ "Room": 19
+ },
+ {
+ "X": 41472,
+ "Y": -3584,
+ "Z": 26112,
+ "Room": 24
+ },
+ {
+ "X": 40448,
+ "Y": -768,
+ "Z": 25088,
+ "Room": 25
+ },
+ {
+ "X": 34304,
+ "Y": 128,
+ "Z": 20992,
+ "Room": 34
+ },
+ {
+ "X": 31232,
+ "Y": 640,
+ "Z": 12800,
+ "Room": 33
+ },
+ {
+ "X": 28160,
+ "Y": 896,
+ "Z": 17920,
+ "Room": 35
+ },
+ {
+ "X": 23040,
+ "Y": -384,
+ "Z": 34304,
+ "Room": 38
+ },
+ {
+ "X": 26112,
+ "Y": 2048,
+ "Z": 45568,
+ "Room": 37
+ },
+ {
+ "X": 25088,
+ "Y": -256,
+ "Z": 47616,
+ "Room": 82
+ },
+ {
+ "X": 29184,
+ "Y": 1536,
+ "Z": 43520,
+ "Room": 36
+ },
+ {
+ "X": 33280,
+ "Y": -3584,
+ "Z": 30208,
+ "Room": 32
+ },
+ {
+ "X": 39424,
+ "Y": -5248,
+ "Z": 28160,
+ "Room": 200
+ },
+ {
+ "X": 38400,
+ "Y": -6784,
+ "Z": 29184,
+ "Room": 22
+ },
+ {
+ "X": 42496,
+ "Y": -7296,
+ "Z": 28160,
+ "Room": 8
+ },
+ {
+ "X": 44544,
+ "Y": -6272,
+ "Z": 22016,
+ "Room": 16
+ },
+ {
+ "X": 44544,
+ "Y": -7296,
+ "Z": 17920,
+ "Room": 57
+ },
+ {
+ "X": 30208,
+ "Y": -3456,
+ "Z": 45568,
+ "Room": 5
+ },
+ {
+ "X": 34304,
+ "Y": -5120,
+ "Z": 45568,
+ "Room": 6
+ },
+ {
+ "X": 35328,
+ "Y": -6528,
+ "Z": 45568,
+ "Room": 42
+ },
+ {
+ "X": 35328,
+ "Y": -6784,
+ "Z": 43520,
+ "Room": 43
+ },
+ {
+ "X": 27136,
+ "Y": -6400,
+ "Z": 43520,
+ "Room": 7
+ },
+ {
+ "X": 26112,
+ "Y": -4864,
+ "Z": 37376,
+ "Room": 114
+ },
+ {
+ "X": 24064,
+ "Y": -3584,
+ "Z": 39424,
+ "Room": 48
+ },
+ {
+ "X": 25088,
+ "Y": -2304,
+ "Z": 42496,
+ "Room": 154
+ },
+ {
+ "X": 24064,
+ "Y": -2304,
+ "Z": 42496,
+ "Room": 125
+ },
+ {
+ "X": 24064,
+ "Y": -2304,
+ "Z": 33280,
+ "Room": 144
+ },
+ {
+ "X": 24064,
+ "Y": -4608,
+ "Z": 25088,
+ "Room": 160
+ },
+ {
+ "X": 24064,
+ "Y": -4608,
+ "Z": 24064,
+ "Room": 131
+ },
+ {
+ "X": 25088,
+ "Y": -4864,
+ "Z": 23040,
+ "Room": 62
+ },
+ {
+ "X": 26112,
+ "Y": -4864,
+ "Z": 25088,
+ "Room": 63
+ },
+ {
+ "X": 25088,
+ "Y": -4352,
+ "Z": 27136,
+ "Room": 143
+ },
+ {
+ "X": 26112,
+ "Y": -3584,
+ "Z": 30208,
+ "Room": 61
+ },
+ {
+ "X": 25088,
+ "Y": -4352,
+ "Z": 16896,
+ "Room": 159
+ },
+ {
+ "X": 27136,
+ "Y": -3072,
+ "Z": 15872,
+ "Room": 53
+ },
+ {
+ "X": 26112,
+ "Y": -3200,
+ "Z": 14848,
+ "Room": 121
+ },
+ {
+ "X": 26112,
+ "Y": -3456,
+ "Z": 13824,
+ "Room": 52
+ },
+ {
+ "X": 26112,
+ "Y": -5120,
+ "Z": 12800,
+ "Room": 138
+ },
+ {
+ "X": 26112,
+ "Y": -6144,
+ "Z": 24064,
+ "Room": 124
+ },
+ {
+ "X": 25088,
+ "Y": -6144,
+ "Z": 20992,
+ "Room": 123
+ },
+ {
+ "X": 25088,
+ "Y": -6144,
+ "Z": 19968,
+ "Room": 129
+ },
+ {
+ "X": 27136,
+ "Y": -6144,
+ "Z": 18944,
+ "Room": 58
+ },
+ {
+ "X": 26112,
+ "Y": -6144,
+ "Z": 15872,
+ "Room": 3
+ },
+ {
+ "X": 29184,
+ "Y": -6144,
+ "Z": 16896,
+ "Room": 56
+ },
+ {
+ "X": 23040,
+ "Y": -6144,
+ "Z": 16896,
+ "Room": 56
+ },
+ {
+ "X": 20992,
+ "Y": -6016,
+ "Z": 29184,
+ "Room": 163
+ },
+ {
+ "X": 20992,
+ "Y": -4096,
+ "Z": 30208,
+ "Room": 126
+ },
+ {
+ "X": 25088,
+ "Y": -6912,
+ "Z": 12800,
+ "Room": 39
+ },
+ {
+ "X": 27136,
+ "Y": -6272,
+ "Z": 5632,
+ "Room": 13
+ },
+ {
+ "X": 30208,
+ "Y": -8960,
+ "Z": 2560,
+ "Room": 153
+ },
+ {
+ "X": 46592,
+ "Y": -512,
+ "Z": 24064,
+ "Room": 21
+ },
+ {
+ "X": 50688,
+ "Y": -3584,
+ "Z": 27136,
+ "Room": 162
+ },
+ {
+ "X": 50688,
+ "Y": -3584,
+ "Z": 28160,
+ "Room": 180
+ },
+ {
+ "X": 51712,
+ "Y": -6528,
+ "Z": 28160,
+ "Room": 182
+ },
+ {
+ "X": 54784,
+ "Y": -6656,
+ "Z": 28160,
+ "Room": 193
+ },
+ {
+ "X": 53760,
+ "Y": -6656,
+ "Z": 26112,
+ "Room": 190
+ },
+ {
+ "X": 50688,
+ "Y": -6400,
+ "Z": 25088,
+ "Room": 164
+ },
+ {
+ "X": 55808,
+ "Y": -6656,
+ "Z": 27136,
+ "Room": 181
+ },
+ {
+ "X": 57856,
+ "Y": -6784,
+ "Z": 26112,
+ "Room": 197
+ },
+ {
+ "X": 57856,
+ "Y": -1280,
+ "Z": 25088,
+ "Room": 46
+ },
+ {
+ "X": 64768,
+ "Y": -1280,
+ "Z": 27648,
+ "Room": 99,
+ "KeyItemsLow": "25456"
+ },
+ {
+ "X": 64768,
+ "Y": -1280,
+ "Z": 27904,
+ "Room": 99,
+ "KeyItemsLow": "25456",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 28160,
+ "Room": 99,
+ "KeyItemsLow": "25526,25446,25456",
+ "Range": "Medium"
+ },
+ {
+ "X": 65024,
+ "Y": -1280,
+ "Z": 27904,
+ "Room": 99,
+ "KeyItemsLow": "25526,25446,25456",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 66048,
+ "Y": -256,
+ "Z": 30208,
+ "Room": 102
+ },
+ {
+ "X": 67072,
+ "Y": -640,
+ "Z": 32256,
+ "Room": 101
+ },
+ {
+ "X": 67072,
+ "Y": -3584,
+ "Z": 32256,
+ "Room": 89
+ },
+ {
+ "X": 66048,
+ "Y": -3584,
+ "Z": 31232,
+ "Room": 72
+ },
+ {
+ "X": 66048,
+ "Y": -3584,
+ "Z": 28160,
+ "Room": 87
+ },
+ {
+ "X": 67072,
+ "Y": -4864,
+ "Z": 31232,
+ "Room": 86
+ },
+ {
+ "X": 67072,
+ "Y": -6656,
+ "Z": 38400,
+ "Room": 104,
+ "Validated": false
+ },
+ {
+ "X": 69120,
+ "Y": -3328,
+ "Z": 42496,
+ "Room": 166
+ },
+ {
+ "X": 61952,
+ "Y": -3200,
+ "Z": 41472,
+ "Room": 158
+ },
+ {
+ "X": 58880,
+ "Y": -3328,
+ "Z": 43520,
+ "Room": 106
+ },
+ {
+ "X": 54784,
+ "Y": -2816,
+ "Z": 46592,
+ "Room": 91
+ },
+ {
+ "X": 52736,
+ "Y": -3072,
+ "Z": 47616,
+ "Room": 105
+ },
+ {
+ "X": 54784,
+ "Y": -8448,
+ "Z": 47616,
+ "Room": 94,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -2816,
+ "Z": 49664,
+ "Room": 107
+ },
+ {
+ "X": 57856,
+ "Y": -2816,
+ "Z": 48640,
+ "Room": 108
+ },
+ {
+ "X": 60928,
+ "Y": -2816,
+ "Z": 46592,
+ "Room": 112
+ },
+ {
+ "X": 61952,
+ "Y": -3456,
+ "Z": 49664,
+ "Room": 17
+ },
+ {
+ "X": 61952,
+ "Y": -2816,
+ "Z": 53760,
+ "Room": 170
+ },
+ {
+ "X": 57856,
+ "Y": -2816,
+ "Z": 54784,
+ "Room": 119
+ },
+ {
+ "X": 55808,
+ "Y": -2688,
+ "Z": 60928,
+ "Room": 117
+ },
+ {
+ "X": 48640,
+ "Y": -2816,
+ "Z": 60928,
+ "Room": 92
+ },
+ {
+ "X": 45568,
+ "Y": -2688,
+ "Z": 64000,
+ "Room": 187
+ },
+ {
+ "X": 46592,
+ "Y": -2816,
+ "Z": 71168,
+ "Room": 133
+ },
+ {
+ "X": 46592,
+ "Y": -4352,
+ "Z": 74240,
+ "Room": 192,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": -3072,
+ "Z": 67072,
+ "Room": 147
+ },
+ {
+ "X": 41472,
+ "Y": -3072,
+ "Z": 67072,
+ "Room": 195
+ },
+ {
+ "X": 37376,
+ "Y": -3840,
+ "Z": 67072,
+ "Room": 196
+ },
+ {
+ "X": 37376,
+ "Y": -4352,
+ "Z": 65024,
+ "Room": 198
+ },
+ {
+ "X": 39424,
+ "Y": -4608,
+ "Z": 65024,
+ "Room": 27
+ },
+ {
+ "X": 42496,
+ "Y": -4608,
+ "Z": 66048,
+ "Room": 191
+ },
+ {
+ "X": 38400,
+ "Y": -4608,
+ "Z": 66048,
+ "Room": 161
+ },
+ {
+ "X": 41472,
+ "Y": -4608,
+ "Z": 71168,
+ "Room": 134
+ },
+ {
+ "X": 55808,
+ "Y": -6144,
+ "Z": 46592,
+ "Room": 93
+ },
+ {
+ "X": 55040,
+ "Y": -6144,
+ "Z": 48640,
+ "Room": 116,
+ "KeyItemsHigh": "25456",
+ "KeyItemsLow": "25371,25374"
+ },
+ {
+ "X": 54784,
+ "Y": -6144,
+ "Z": 48640,
+ "Room": 116,
+ "KeyItemsHigh": "25456",
+ "KeyItemsLow": "25371,25374",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54528,
+ "Y": -6144,
+ "Z": 48640,
+ "Room": 116,
+ "KeyItemsHigh": "25456",
+ "KeyItemsLow": "25371,25374",
+ "Range": "Medium"
+ },
+ {
+ "X": 54528,
+ "Y": -6144,
+ "Z": 48896,
+ "Room": 116,
+ "KeyItemsHigh": "25456",
+ "KeyItemsLow": "25371,25374",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 54784,
+ "Y": -6144,
+ "Z": 48896,
+ "Room": 116,
+ "KeyItemsHigh": "25456",
+ "KeyItemsLow": "25371,25374",
+ "Range": "Large"
+ },
+ {
+ "X": 55040,
+ "Y": -6144,
+ "Z": 48896,
+ "Room": 116,
+ "KeyItemsHigh": "25456",
+ "KeyItemsLow": "25371,25374",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55808,
+ "Y": -6400,
+ "Z": 51712,
+ "Room": 98
+ },
+ {
+ "X": 56832,
+ "Y": -6272,
+ "Z": 51712,
+ "Room": 97
+ },
+ {
+ "X": 60928,
+ "Y": -6400,
+ "Z": 45568,
+ "Room": 95
+ },
+ {
+ "X": 54784,
+ "Y": -3072,
+ "Z": 52736,
+ "Room": 109
+ },
+ {
+ "X": 54784,
+ "Y": -3072,
+ "Z": 54784,
+ "Room": 118
+ },
+ {
+ "X": 54784,
+ "Y": -1280,
+ "Z": 64000,
+ "Room": 177
+ },
+ {
+ "X": 52736,
+ "Y": 1664,
+ "Z": 64000,
+ "Room": 59
+ },
+ {
+ "X": 49664,
+ "Y": -512,
+ "Z": 64000,
+ "Room": 177
+ },
+ {
+ "X": 50688,
+ "Y": -2304,
+ "Z": 65024,
+ "Room": 176
+ },
+ {
+ "X": 50688,
+ "Y": -2816,
+ "Z": 66048,
+ "Room": 175
+ },
+ {
+ "X": 50688,
+ "Y": -2304,
+ "Z": 67072,
+ "Room": 60
+ },
+ {
+ "X": 50688,
+ "Y": -4864,
+ "Z": 77312,
+ "Room": 18
+ },
+ {
+ "X": 48640,
+ "Y": -4864,
+ "Z": 75264,
+ "Room": 172,
+ "Validated": false
+ },
+ {
+ "X": 53760,
+ "Y": -4352,
+ "Z": 75264,
+ "Room": 174
+ },
+ {
+ "X": 54784,
+ "Y": -4352,
+ "Z": 75264,
+ "Room": 128
+ },
+ {
+ "X": 56832,
+ "Y": -4608,
+ "Z": 76288,
+ "Room": 31
+ },
+ {
+ "X": 58880,
+ "Y": -6400,
+ "Z": 76288,
+ "Room": 55
+ },
+ {
+ "X": 60928,
+ "Y": -4608,
+ "Z": 75264,
+ "Room": 29
+ },
+ {
+ "X": 58880,
+ "Y": -4864,
+ "Z": 73216,
+ "Room": 127
+ },
+ {
+ "X": 64000,
+ "Y": -6144,
+ "Z": 71168,
+ "Room": 54,
+ "Validated": false
+ },
+ {
+ "X": 64000,
+ "Y": -4736,
+ "Z": 70144,
+ "Room": 15
+ },
+ {
+ "X": 55808,
+ "Y": -2816,
+ "Z": 70144,
+ "Room": 122
+ },
+ {
+ "X": 56832,
+ "Y": -4352,
+ "Z": 82432,
+ "Room": 66
+ },
+ {
+ "X": 61952,
+ "Y": -3328,
+ "Z": 83456,
+ "Room": 120
+ },
+ {
+ "X": 67072,
+ "Y": -2688,
+ "Z": 83456,
+ "Room": 155
+ },
+ {
+ "X": 67072,
+ "Y": -2816,
+ "Z": 81408,
+ "Room": 47
+ },
+ {
+ "X": 70144,
+ "Y": -2688,
+ "Z": 79360,
+ "Room": 78,
+ "KeyItemsLow": "25446"
+ },
+ {
+ "X": 70144,
+ "Y": -2688,
+ "Z": 79104,
+ "Room": 78,
+ "KeyItemsLow": "25446",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 71168,
+ "Y": -2816,
+ "Z": 76288,
+ "Room": 77
+ },
+ {
+ "X": 74240,
+ "Y": -3072,
+ "Z": 74240,
+ "Room": 178
+ },
+ {
+ "X": 76288,
+ "Y": -3072,
+ "Z": 74240,
+ "Room": 171
+ },
+ {
+ "X": 76288,
+ "Y": -3072,
+ "Z": 78336,
+ "Room": 115
+ },
+ {
+ "X": 69120,
+ "Y": -2816,
+ "Z": 72192,
+ "Room": 69
+ },
+ {
+ "X": 74240,
+ "Y": -2816,
+ "Z": 69120,
+ "Room": 132
+ },
+ {
+ "X": 73216,
+ "Y": -2816,
+ "Z": 62976,
+ "Room": 67
+ },
+ {
+ "X": 69120,
+ "Y": 256,
+ "Z": 61952,
+ "Room": 141
+ },
+ {
+ "X": 67072,
+ "Y": -2560,
+ "Z": 60928,
+ "Room": 68
+ },
+ {
+ "X": 67840,
+ "Y": -3840,
+ "Z": 29184,
+ "Room": 88,
+ "KeyItemsHigh": "25371,25374"
+ },
+ {
+ "X": 68096,
+ "Y": -3840,
+ "Z": 29184,
+ "Room": 88,
+ "KeyItemsHigh": "25371,25374",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68352,
+ "Y": -3840,
+ "Z": 29184,
+ "Room": 88,
+ "KeyItemsHigh": "25371,25374",
+ "Range": "Medium"
+ },
+ {
+ "X": 68352,
+ "Y": -3840,
+ "Z": 28928,
+ "Room": 88,
+ "KeyItemsHigh": "25371,25374",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 68096,
+ "Y": -3840,
+ "Z": 28928,
+ "Room": 88,
+ "KeyItemsHigh": "25371,25374",
+ "Range": "Large"
+ },
+ {
+ "X": 67840,
+ "Y": -3840,
+ "Z": 28928,
+ "Room": 88,
+ "KeyItemsHigh": "25371,25374",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62976,
+ "Y": -4864,
+ "Z": 34048,
+ "Room": 90,
+ "KeyItemsHigh": "25446",
+ "KeyItemsLow": "25526",
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": -4864,
+ "Z": 34304,
+ "Room": 90,
+ "KeyItemsHigh": "25446",
+ "KeyItemsLow": "25526",
+ "RequiresReturnPath": true,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": -4864,
+ "Z": 34560,
+ "Room": 90,
+ "KeyItemsHigh": "25446",
+ "Range": "Medium"
+ },
+ {
+ "X": 62720,
+ "Y": -4864,
+ "Z": 34560,
+ "Room": 90,
+ "KeyItemsHigh": "25446",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 62720,
+ "Y": -4864,
+ "Z": 34304,
+ "Room": 90,
+ "KeyItemsHigh": "25446",
+ "Range": "Large"
+ },
+ {
+ "X": 62720,
+ "Y": -4864,
+ "Z": 34048,
+ "Room": 90,
+ "KeyItemsHigh": "25446",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 61952,
+ "Y": -640,
+ "Z": 36352,
+ "Room": 103
+ },
+ {
+ "X": 57856,
+ "Y": -1920,
+ "Z": 38400,
+ "Room": 74
+ },
+ {
+ "X": 53760,
+ "Y": -1280,
+ "Z": 37376,
+ "Room": 186
+ },
+ {
+ "X": 52736,
+ "Y": -512,
+ "Z": 37376,
+ "Room": 186
+ },
+ {
+ "X": 50688,
+ "Y": -512,
+ "Z": 37376,
+ "Room": 188
+ },
+ {
+ "X": 48640,
+ "Y": -3584,
+ "Z": 36352,
+ "Room": 179
+ },
+ {
+ "X": 47616,
+ "Y": -3712,
+ "Z": 35328,
+ "Room": 203
+ },
+ {
+ "X": 51712,
+ "Y": -3712,
+ "Z": 38400,
+ "Room": 148,
+ "Validated": false
+ },
+ {
+ "X": 55808,
+ "Y": -4096,
+ "Z": 37376,
+ "Room": 165,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -512,
+ "Z": 39424,
+ "Room": 151
+ },
+ {
+ "X": 52736,
+ "Y": -512,
+ "Z": 40448,
+ "Room": 151
+ },
+ {
+ "X": 40448,
+ "Y": -5120,
+ "Z": 20992,
+ "Room": 201
+ },
+ {
+ "X": 50688,
+ "Y": -1024,
+ "Z": 39424,
+ "Room": 156
+ },
+ {
+ "X": 50688,
+ "Y": -1280,
+ "Z": 41472,
+ "Room": 157
+ },
+ {
+ "X": 47616,
+ "Y": -1536,
+ "Z": 41472,
+ "Room": 75
+ },
+ {
+ "X": 46592,
+ "Y": -3584,
+ "Z": 40448,
+ "Room": 70
+ },
+ {
+ "X": 47616,
+ "Y": -1664,
+ "Z": 50688,
+ "Room": 76
+ },
+ {
+ "X": 46592,
+ "Y": -1920,
+ "Z": 53760,
+ "Room": 202
+ },
+ {
+ "X": 47616,
+ "Y": -3584,
+ "Z": 54784,
+ "Room": 73
+ },
+ {
+ "X": 48640,
+ "Y": -3840,
+ "Z": 50688,
+ "Room": 71
+ },
+ {
+ "X": 47616,
+ "Y": -5376,
+ "Z": 55808,
+ "Room": 73
+ },
+ {
+ "X": 45568,
+ "Y": -7168,
+ "Z": 55808,
+ "Room": 49
+ },
+ {
+ "X": 43520,
+ "Y": -7168,
+ "Z": 52736,
+ "Room": 44
+ },
+ {
+ "X": 39424,
+ "Y": -7168,
+ "Z": 53760,
+ "Room": 83
+ },
+ {
+ "X": 38400,
+ "Y": -8704,
+ "Z": 53760,
+ "Room": 41,
+ "Validated": false
+ },
+ {
+ "X": 39424,
+ "Y": -9216,
+ "Z": 56832,
+ "Room": 81,
+ "Validated": false
+ },
+ {
+ "X": 37376,
+ "Y": -7168,
+ "Z": 56832,
+ "Room": 84
+ },
+ {
+ "X": 37376,
+ "Y": -7168,
+ "Z": 60928,
+ "Room": 80
+ },
+ {
+ "X": 44288,
+ "Y": -7168,
+ "Z": 59904,
+ "Room": 85,
+ "KeyItemsHigh": "25526"
+ },
+ {
+ "X": 44544,
+ "Y": -7168,
+ "Z": 59904,
+ "Room": 85,
+ "KeyItemsHigh": "25526",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44800,
+ "Y": -7168,
+ "Z": 59904,
+ "Room": 85,
+ "KeyItemsHigh": "25526",
+ "Range": "Medium"
+ },
+ {
+ "X": 44800,
+ "Y": -7168,
+ "Z": 60160,
+ "Room": 85,
+ "KeyItemsHigh": "25526",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -7168,
+ "Z": 60160,
+ "Room": 85,
+ "KeyItemsHigh": "25526",
+ "Range": "Large"
+ },
+ {
+ "X": 44288,
+ "Y": -7168,
+ "Z": 60160,
+ "Room": 85,
+ "KeyItemsHigh": "25526",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ }
+ ],
+ "MINES.TR2": [
+ {
+ "X": 59904,
+ "Y": 1024,
+ "Z": 25088,
+ "Room": 40,
+ "KeyItemsLow": "26679,26444,26509",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59904,
+ "Y": 1024,
+ "Z": 25088,
+ "Room": 40,
+ "KeyItemsLow": "26444,26509,26679",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 59904,
+ "Y": -512,
+ "Z": 23040,
+ "Room": 54
+ },
+ {
+ "X": 59904,
+ "Y": -512,
+ "Z": 22016,
+ "Room": 55
+ },
+ {
+ "X": 59904,
+ "Y": -512,
+ "Z": 20992,
+ "Room": 52
+ },
+ {
+ "X": 62976,
+ "Y": -512,
+ "Z": 20992,
+ "Room": 49
+ },
+ {
+ "X": 62976,
+ "Y": -512,
+ "Z": 27136,
+ "Room": 50
+ },
+ {
+ "X": 59904,
+ "Y": -512,
+ "Z": 27136,
+ "Room": 53
+ },
+ {
+ "X": 58880,
+ "Y": -512,
+ "Z": 27136,
+ "Room": 48
+ },
+ {
+ "X": 56832,
+ "Y": -512,
+ "Z": 26112,
+ "Room": 47
+ },
+ {
+ "X": 58880,
+ "Y": -512,
+ "Z": 20992,
+ "Room": 46
+ },
+ {
+ "X": 59904,
+ "Y": -512,
+ "Z": 28160,
+ "Room": 51
+ },
+ {
+ "X": 59904,
+ "Y": -384,
+ "Z": 31232,
+ "Room": 62
+ },
+ {
+ "X": 59648,
+ "Y": 5888,
+ "Z": 34304,
+ "Room": 65,
+ "KeyItemsLow": "26679,26444,26509",
+ "Range": "Medium"
+ },
+ {
+ "X": 59904,
+ "Y": 5888,
+ "Z": 34304,
+ "Room": 65,
+ "KeyItemsLow": "26679,26444,26509",
+ "Range": "Large"
+ },
+ {
+ "X": 58880,
+ "Y": 5376,
+ "Z": 34304,
+ "Room": 174
+ },
+ {
+ "X": 59904,
+ "Y": 6272,
+ "Z": 36352,
+ "Room": 67
+ },
+ {
+ "X": 59904,
+ "Y": 5888,
+ "Z": 39424,
+ "Room": 79
+ },
+ {
+ "X": 56832,
+ "Y": 6400,
+ "Z": 40448,
+ "Room": 111
+ },
+ {
+ "X": 47616,
+ "Y": 5760,
+ "Z": 45568,
+ "Room": 78
+ },
+ {
+ "X": 28160,
+ "Y": 3072,
+ "Z": 45568,
+ "Room": 8,
+ "Validated": false
+ },
+ {
+ "X": 29184,
+ "Y": 4608,
+ "Z": 56832,
+ "Room": 10,
+ "Validated": false
+ },
+ {
+ "X": 42496,
+ "Y": 6272,
+ "Z": 56832,
+ "Room": 12,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": 7424,
+ "Z": 56832,
+ "Room": 19,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": 7424,
+ "Z": 61952,
+ "Room": 68
+ },
+ {
+ "X": 49664,
+ "Y": 7936,
+ "Z": 70144,
+ "Room": 80
+ },
+ {
+ "X": 54784,
+ "Y": 7680,
+ "Z": 73216,
+ "Room": 45
+ },
+ {
+ "X": 53760,
+ "Y": 8064,
+ "Z": 69120,
+ "Room": 14
+ },
+ {
+ "X": 53760,
+ "Y": 7936,
+ "Z": 65024,
+ "Room": 18
+ },
+ {
+ "X": 55808,
+ "Y": 6400,
+ "Z": 59904,
+ "Room": 77
+ },
+ {
+ "X": 55808,
+ "Y": 8192,
+ "Z": 66048,
+ "Room": 146
+ },
+ {
+ "X": 55808,
+ "Y": 16256,
+ "Z": 71168,
+ "Room": 150
+ },
+ {
+ "X": 54784,
+ "Y": 17024,
+ "Z": 73216,
+ "Room": 151
+ },
+ {
+ "X": 55808,
+ "Y": 19456,
+ "Z": 70144,
+ "Room": 81
+ },
+ {
+ "X": 53760,
+ "Y": 23040,
+ "Z": 71168,
+ "Room": 107
+ },
+ {
+ "X": 53760,
+ "Y": 21888,
+ "Z": 70144,
+ "Room": 152
+ },
+ {
+ "X": 53760,
+ "Y": 23296,
+ "Z": 68096,
+ "Room": 153
+ },
+ {
+ "X": 53760,
+ "Y": 27776,
+ "Z": 71168,
+ "Room": 156,
+ "KeyItemsLow": "26679"
+ },
+ {
+ "X": 53760,
+ "Y": 27776,
+ "Z": 71424,
+ "Room": 156,
+ "KeyItemsLow": "26679",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 55808,
+ "Y": 29568,
+ "Z": 72192,
+ "Room": 170
+ },
+ {
+ "X": 56832,
+ "Y": 26368,
+ "Z": 70144,
+ "Room": 157
+ },
+ {
+ "X": 56832,
+ "Y": 26496,
+ "Z": 69120,
+ "Room": 158
+ },
+ {
+ "X": 57856,
+ "Y": 26624,
+ "Z": 66048,
+ "Room": 164
+ },
+ {
+ "X": 58880,
+ "Y": 26624,
+ "Z": 66048,
+ "Room": 160
+ },
+ {
+ "X": 65024,
+ "Y": 28672,
+ "Z": 62976,
+ "Room": 161
+ },
+ {
+ "X": 61952,
+ "Y": 28672,
+ "Z": 58880,
+ "Room": 188
+ },
+ {
+ "X": 67072,
+ "Y": 24320,
+ "Z": 53760,
+ "Room": 190
+ },
+ {
+ "X": 67072,
+ "Y": 24320,
+ "Z": 52736,
+ "Room": 192
+ },
+ {
+ "X": 74240,
+ "Y": 24064,
+ "Z": 61952,
+ "Room": 162
+ },
+ {
+ "X": 75264,
+ "Y": 23808,
+ "Z": 61952,
+ "Room": 163
+ },
+ {
+ "X": 75264,
+ "Y": 17920,
+ "Z": 71168,
+ "Room": 165
+ },
+ {
+ "X": 69120,
+ "Y": 14592,
+ "Z": 72192,
+ "Room": 166
+ },
+ {
+ "X": 64000,
+ "Y": 11776,
+ "Z": 71168,
+ "Room": 169
+ },
+ {
+ "X": 65024,
+ "Y": 8704,
+ "Z": 70144,
+ "Room": 168
+ },
+ {
+ "X": 70144,
+ "Y": 2816,
+ "Z": 69120,
+ "Room": 167
+ },
+ {
+ "X": 70144,
+ "Y": 5248,
+ "Z": 66048,
+ "Room": 95,
+ "Validated": false
+ },
+ {
+ "X": 62976,
+ "Y": 7936,
+ "Z": 66048,
+ "Room": 86
+ },
+ {
+ "X": 58880,
+ "Y": 7936,
+ "Z": 70144,
+ "Room": 56
+ },
+ {
+ "X": 72192,
+ "Y": 3712,
+ "Z": 66048,
+ "Room": 0,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": 256,
+ "Z": 66048,
+ "Room": 96,
+ "Validated": false
+ },
+ {
+ "X": 89600,
+ "Y": 4096,
+ "Z": 66048,
+ "Room": 98,
+ "Validated": false
+ },
+ {
+ "X": 95744,
+ "Y": 5120,
+ "Z": 66048,
+ "Room": 97,
+ "Validated": false
+ },
+ {
+ "X": 98816,
+ "Y": 5120,
+ "Z": 62976,
+ "Room": 184,
+ "Validated": false
+ },
+ {
+ "X": 98816,
+ "Y": 5120,
+ "Z": 59904,
+ "Room": 185,
+ "Validated": false
+ },
+ {
+ "X": 98816,
+ "Y": 5120,
+ "Z": 56832,
+ "Room": 114,
+ "Validated": false
+ },
+ {
+ "X": 94720,
+ "Y": 5120,
+ "Z": 57856,
+ "Room": 15,
+ "Validated": false
+ },
+ {
+ "X": 82432,
+ "Y": 11776,
+ "Z": 57856,
+ "Room": 99,
+ "Validated": false
+ },
+ {
+ "X": 80384,
+ "Y": 8704,
+ "Z": 57856,
+ "Room": 101,
+ "Validated": false
+ },
+ {
+ "X": 78336,
+ "Y": 8192,
+ "Z": 57856,
+ "Room": 100,
+ "Validated": false
+ },
+ {
+ "X": 68096,
+ "Y": 3712,
+ "Z": 57856,
+ "Room": 103,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": 4480,
+ "Z": 52736,
+ "Room": 105,
+ "Validated": false
+ },
+ {
+ "X": 65024,
+ "Y": 5888,
+ "Z": 48640,
+ "Room": 104
+ },
+ {
+ "X": 59904,
+ "Y": 5888,
+ "Z": 45568,
+ "Room": 70
+ },
+ {
+ "X": 47616,
+ "Y": 5888,
+ "Z": 41728,
+ "Room": 106,
+ "KeyItemsHigh": "26679",
+ "KeyItemsLow": "26444,26509"
+ },
+ {
+ "X": 47616,
+ "Y": 5888,
+ "Z": 41472,
+ "Room": 106,
+ "KeyItemsHigh": "26679",
+ "KeyItemsLow": "26444,26509",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 5888,
+ "Z": 41216,
+ "Room": 106,
+ "KeyItemsHigh": "26679",
+ "Range": "Medium"
+ },
+ {
+ "X": 47360,
+ "Y": 5888,
+ "Z": 41216,
+ "Room": 106,
+ "KeyItemsHigh": "26679",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47360,
+ "Y": 5888,
+ "Z": 41472,
+ "Room": 106,
+ "KeyItemsHigh": "26679",
+ "Range": "Large"
+ },
+ {
+ "X": 47360,
+ "Y": 5888,
+ "Z": 41728,
+ "Room": 106,
+ "KeyItemsHigh": "26679",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 52736,
+ "Y": 2048,
+ "Z": 48640,
+ "Room": 75
+ },
+ {
+ "X": 47616,
+ "Y": 3840,
+ "Z": 49664,
+ "Room": 64
+ },
+ {
+ "X": 45568,
+ "Y": 3840,
+ "Z": 49664,
+ "Room": 186
+ },
+ {
+ "X": 44544,
+ "Y": 4992,
+ "Z": 49664,
+ "Room": 177
+ },
+ {
+ "X": 41472,
+ "Y": 6144,
+ "Z": 49664,
+ "Room": 2
+ },
+ {
+ "X": 51712,
+ "Y": 8448,
+ "Z": 52736,
+ "Room": 108
+ },
+ {
+ "X": 51712,
+ "Y": 4608,
+ "Z": 65024,
+ "Room": 60,
+ "Validated": false
+ },
+ {
+ "X": 50688,
+ "Y": 4608,
+ "Z": 67072,
+ "Room": 195,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 5120,
+ "Z": 71168,
+ "Room": 112,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": 4608,
+ "Z": 68096,
+ "Room": 61,
+ "Validated": false
+ },
+ {
+ "X": 47616,
+ "Y": 4736,
+ "Z": 69120,
+ "Room": 115,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": 5248,
+ "Z": 69120,
+ "Room": 16,
+ "Validated": false
+ },
+ {
+ "X": 31232,
+ "Y": 5632,
+ "Z": 64000,
+ "Room": 109
+ },
+ {
+ "X": 31232,
+ "Y": 8064,
+ "Z": 58880,
+ "Room": 11
+ },
+ {
+ "X": 31232,
+ "Y": 10752,
+ "Z": 55808,
+ "Room": 13
+ },
+ {
+ "X": 41472,
+ "Y": 10496,
+ "Z": 52736,
+ "Room": 66
+ },
+ {
+ "X": 41472,
+ "Y": 11520,
+ "Z": 49664,
+ "Room": 84
+ },
+ {
+ "X": 43520,
+ "Y": 11008,
+ "Z": 44544,
+ "Room": 110
+ },
+ {
+ "X": 39424,
+ "Y": 11136,
+ "Z": 49664,
+ "Room": 83
+ },
+ {
+ "X": 28160,
+ "Y": 7424,
+ "Z": 55808,
+ "Room": 116
+ },
+ {
+ "X": 25088,
+ "Y": 7424,
+ "Z": 53760,
+ "Room": 129
+ },
+ {
+ "X": 25088,
+ "Y": 7424,
+ "Z": 50688,
+ "Room": 130
+ },
+ {
+ "X": 14848,
+ "Y": 8832,
+ "Z": 51712,
+ "Room": 85
+ },
+ {
+ "X": 14848,
+ "Y": 14848,
+ "Z": 57856,
+ "Room": 87
+ },
+ {
+ "X": 7680,
+ "Y": 14848,
+ "Z": 59904,
+ "Room": 91
+ },
+ {
+ "X": 7680,
+ "Y": 15616,
+ "Z": 64000,
+ "Room": 93
+ },
+ {
+ "X": 12800,
+ "Y": 15616,
+ "Z": 64000,
+ "Room": 94
+ },
+ {
+ "X": 13824,
+ "Y": 15616,
+ "Z": 61952,
+ "Room": 90
+ },
+ {
+ "X": 16896,
+ "Y": 15488,
+ "Z": 60928,
+ "Room": 189
+ },
+ {
+ "X": 16896,
+ "Y": 15360,
+ "Z": 58880,
+ "Room": 159
+ },
+ {
+ "X": 22016,
+ "Y": 14848,
+ "Z": 61952,
+ "Room": 92
+ },
+ {
+ "X": 22016,
+ "Y": 14848,
+ "Z": 57856,
+ "Room": 89
+ },
+ {
+ "X": 23040,
+ "Y": 7424,
+ "Z": 56832,
+ "Room": 117
+ },
+ {
+ "X": 22016,
+ "Y": 7680,
+ "Z": 52736,
+ "Room": 119
+ },
+ {
+ "X": 16896,
+ "Y": 7168,
+ "Z": 52736,
+ "Room": 120
+ },
+ {
+ "X": 16896,
+ "Y": 5888,
+ "Z": 58880,
+ "Room": 128
+ },
+ {
+ "X": 16896,
+ "Y": 7424,
+ "Z": 60928,
+ "Room": 122
+ },
+ {
+ "X": 16896,
+ "Y": 7424,
+ "Z": 68096,
+ "Room": 125
+ },
+ {
+ "X": 13824,
+ "Y": 7424,
+ "Z": 65024,
+ "Room": 124
+ },
+ {
+ "X": 14848,
+ "Y": 6912,
+ "Z": 64000,
+ "Room": 123
+ },
+ {
+ "X": 10752,
+ "Y": 11776,
+ "Z": 65024,
+ "Room": 126
+ },
+ {
+ "X": 10752,
+ "Y": 10624,
+ "Z": 62976,
+ "Room": 187
+ },
+ {
+ "X": 18944,
+ "Y": 6912,
+ "Z": 60928,
+ "Room": 118
+ },
+ {
+ "X": 32256,
+ "Y": 8192,
+ "Z": 50688,
+ "Room": 82
+ },
+ {
+ "X": 43520,
+ "Y": 8832,
+ "Z": 41472,
+ "Room": 110,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": 5504,
+ "Z": 36352,
+ "Room": 127,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": 5504,
+ "Z": 34304,
+ "Room": 44,
+ "Validated": false
+ },
+ {
+ "X": 45568,
+ "Y": 5632,
+ "Z": 31232,
+ "Room": 58,
+ "Validated": false
+ },
+ {
+ "X": 44544,
+ "Y": 5632,
+ "Z": 32256,
+ "Room": 193,
+ "Validated": false
+ },
+ {
+ "X": 43520,
+ "Y": 5632,
+ "Z": 30208,
+ "Room": 133,
+ "Validated": false
+ },
+ {
+ "X": 46592,
+ "Y": 5376,
+ "Z": 26112,
+ "Room": 134,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 5632,
+ "Z": 31232,
+ "Room": 42,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 6400,
+ "Z": 36352,
+ "Room": 17,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": 8448,
+ "Z": 41472,
+ "Room": 69
+ },
+ {
+ "X": 57856,
+ "Y": 3840,
+ "Z": 46592,
+ "Room": 74
+ },
+ {
+ "X": 52736,
+ "Y": 3840,
+ "Z": 49664,
+ "Room": 72
+ },
+ {
+ "X": 54784,
+ "Y": 3584,
+ "Z": 41472,
+ "Room": 71
+ },
+ {
+ "X": 54784,
+ "Y": 3456,
+ "Z": 40448,
+ "Room": 43
+ },
+ {
+ "X": 54784,
+ "Y": 2176,
+ "Z": 34304,
+ "Room": 102,
+ "Validated": false
+ },
+ {
+ "X": 49664,
+ "Y": 2816,
+ "Z": 30208,
+ "Room": 131,
+ "Validated": false
+ },
+ {
+ "X": 41472,
+ "Y": 3968,
+ "Z": 30208,
+ "Room": 132,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": -2048,
+ "Z": 30208,
+ "Room": 136,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": -8064,
+ "Z": 30208,
+ "Room": 32
+ },
+ {
+ "X": 16896,
+ "Y": -7680,
+ "Z": 30208,
+ "Room": 137
+ },
+ {
+ "X": 9728,
+ "Y": -10624,
+ "Z": 30208,
+ "Room": 138,
+ "Validated": false
+ },
+ {
+ "X": 6656,
+ "Y": -10240,
+ "Z": 35328,
+ "Room": 139,
+ "Validated": false
+ },
+ {
+ "X": 6656,
+ "Y": -7808,
+ "Z": 50688,
+ "Room": 141,
+ "Validated": false
+ },
+ {
+ "X": 10752,
+ "Y": -7040,
+ "Z": 54784,
+ "Room": 143,
+ "Validated": false
+ },
+ {
+ "X": 12800,
+ "Y": -6272,
+ "Z": 54784,
+ "Room": 182,
+ "Validated": false
+ },
+ {
+ "X": 13824,
+ "Y": -5504,
+ "Z": 54784,
+ "Room": 178,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": -4352,
+ "Z": 58880,
+ "Room": 144,
+ "Validated": false
+ },
+ {
+ "X": 27136,
+ "Y": -7040,
+ "Z": 65024,
+ "Room": 145,
+ "Validated": false
+ },
+ {
+ "X": 31232,
+ "Y": -7168,
+ "Z": 69120,
+ "Room": 147,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": -6912,
+ "Z": 74240,
+ "Room": 176,
+ "Validated": false
+ },
+ {
+ "X": 36352,
+ "Y": -6912,
+ "Z": 76288,
+ "Room": 148,
+ "Validated": false
+ },
+ {
+ "X": 35328,
+ "Y": -6784,
+ "Z": 79360,
+ "Room": 175,
+ "Validated": false
+ },
+ {
+ "X": 40448,
+ "Y": -5760,
+ "Z": 78336,
+ "Room": 142,
+ "Validated": false
+ },
+ {
+ "X": 51712,
+ "Y": -3456,
+ "Z": 78336,
+ "Room": 140,
+ "Validated": false
+ },
+ {
+ "X": 54784,
+ "Y": -3456,
+ "Z": 74240,
+ "Room": 149,
+ "Validated": false
+ },
+ {
+ "X": 54784,
+ "Y": 256,
+ "Z": 60928,
+ "Room": 135
+ },
+ {
+ "X": 24320,
+ "Y": -1536,
+ "Z": 28160,
+ "Room": 23,
+ "KeyItemsHigh": "26444,26509"
+ },
+ {
+ "X": 24064,
+ "Y": -1536,
+ "Z": 28160,
+ "Room": 23,
+ "KeyItemsHigh": "26444,26509",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23808,
+ "Y": -1536,
+ "Z": 28160,
+ "Room": 23,
+ "KeyItemsHigh": "26444,26509",
+ "Range": "Medium"
+ },
+ {
+ "X": 23808,
+ "Y": -1536,
+ "Z": 28416,
+ "Room": 23,
+ "KeyItemsHigh": "26444,26509",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 24064,
+ "Y": -1536,
+ "Z": 28416,
+ "Room": 23,
+ "KeyItemsHigh": "26444,26509",
+ "Range": "Large"
+ },
+ {
+ "X": 24320,
+ "Y": -1536,
+ "Z": 28416,
+ "Room": 23,
+ "KeyItemsHigh": "26444,26509",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 20992,
+ "Y": -5248,
+ "Z": 31232,
+ "Room": 25
+ },
+ {
+ "X": 25088,
+ "Y": 1024,
+ "Z": 31232,
+ "Room": 197
+ },
+ {
+ "X": 26112,
+ "Y": -768,
+ "Z": 30208,
+ "Room": 198
+ },
+ {
+ "X": 23040,
+ "Y": 6528,
+ "Z": 31232,
+ "Room": 21
+ },
+ {
+ "X": 25088,
+ "Y": 8960,
+ "Z": 29184,
+ "Room": 28
+ },
+ {
+ "X": 23040,
+ "Y": 17408,
+ "Z": 30208,
+ "Room": 20
+ },
+ {
+ "X": 25088,
+ "Y": 15360,
+ "Z": 30208,
+ "Room": 35
+ },
+ {
+ "X": 26112,
+ "Y": 17664,
+ "Z": 27136,
+ "Room": 179
+ },
+ {
+ "X": 24064,
+ "Y": 17152,
+ "Z": 27136,
+ "Room": 180
+ },
+ {
+ "X": 23040,
+ "Y": 15872,
+ "Z": 27136,
+ "Room": 181
+ },
+ {
+ "X": 26112,
+ "Y": 3328,
+ "Z": 25088,
+ "Room": 34
+ },
+ {
+ "X": 24064,
+ "Y": 1920,
+ "Z": 24064,
+ "Room": 7
+ },
+ {
+ "X": 25088,
+ "Y": -2560,
+ "Z": 25088,
+ "Room": 9
+ },
+ {
+ "X": 19968,
+ "Y": 0,
+ "Z": 18944,
+ "Room": 1
+ },
+ {
+ "X": 13824,
+ "Y": 3712,
+ "Z": 29184,
+ "Room": 5
+ },
+ {
+ "X": 13824,
+ "Y": 3712,
+ "Z": 30208,
+ "Room": 173
+ },
+ {
+ "X": 15872,
+ "Y": 9728,
+ "Z": 27136,
+ "Room": 172,
+ "Validated": false
+ },
+ {
+ "X": 16896,
+ "Y": 9728,
+ "Z": 15872,
+ "Room": 171,
+ "Validated": false
+ },
+ {
+ "X": 10752,
+ "Y": 0,
+ "Z": 13824,
+ "Room": 4
+ },
+ {
+ "X": 9728,
+ "Y": -2048,
+ "Z": 16896,
+ "Room": 6
+ },
+ {
+ "X": 10752,
+ "Y": -256,
+ "Z": 16896,
+ "Room": 3
+ }
+ ],
+ "CITY.TR2": [
+ {
+ "X": 98816,
+ "Y": 0,
+ "Z": 69376,
+ "Room": 9,
+ "KeyItemsLow": "27269"
+ },
+ {
+ "X": 98816,
+ "Y": 0,
+ "Z": 69120,
+ "Room": 9,
+ "KeyItemsLow": "27269",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 98816,
+ "Y": 0,
+ "Z": 68864,
+ "Room": 9,
+ "KeyItemsLow": "27269",
+ "Range": "Medium"
+ },
+ {
+ "X": 98560,
+ "Y": 0,
+ "Z": 68864,
+ "Room": 9,
+ "KeyItemsLow": "27269",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 98560,
+ "Y": 0,
+ "Z": 69120,
+ "Room": 9,
+ "KeyItemsLow": "27269",
+ "Range": "Large"
+ },
+ {
+ "X": 98560,
+ "Y": 0,
+ "Z": 69376,
+ "Room": 9,
+ "KeyItemsLow": "27269,27686",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 94720,
+ "Y": -256,
+ "Z": 69120,
+ "Room": 4
+ },
+ {
+ "X": 90624,
+ "Y": 1280,
+ "Z": 70144,
+ "Room": 1
+ },
+ {
+ "X": 91648,
+ "Y": 0,
+ "Z": 73216,
+ "Room": 15
+ },
+ {
+ "X": 92672,
+ "Y": 0,
+ "Z": 64000,
+ "Room": 6
+ },
+ {
+ "X": 92672,
+ "Y": 0,
+ "Z": 62976,
+ "Room": 0
+ },
+ {
+ "X": 93696,
+ "Y": 0,
+ "Z": 58880,
+ "Room": 7
+ },
+ {
+ "X": 93696,
+ "Y": 0,
+ "Z": 56832,
+ "Room": 31
+ },
+ {
+ "X": 93696,
+ "Y": 0,
+ "Z": 53760,
+ "Room": 37
+ },
+ {
+ "X": 89600,
+ "Y": 0,
+ "Z": 54784,
+ "Room": 33
+ },
+ {
+ "X": 86528,
+ "Y": -3840,
+ "Z": 58880,
+ "Room": 23
+ },
+ {
+ "X": 86528,
+ "Y": -3840,
+ "Z": 57856,
+ "Room": 24
+ },
+ {
+ "X": 83456,
+ "Y": -4608,
+ "Z": 58880,
+ "Room": 25
+ },
+ {
+ "X": 83456,
+ "Y": -4352,
+ "Z": 65024,
+ "Room": 26
+ },
+ {
+ "X": 85504,
+ "Y": -3840,
+ "Z": 65024,
+ "Room": 11
+ },
+ {
+ "X": 85504,
+ "Y": -3840,
+ "Z": 66048,
+ "Room": 12
+ },
+ {
+ "X": 90624,
+ "Y": -2688,
+ "Z": 67072,
+ "Room": 17
+ },
+ {
+ "X": 85504,
+ "Y": -2560,
+ "Z": 61952,
+ "Room": 13
+ },
+ {
+ "X": 84480,
+ "Y": -2048,
+ "Z": 61952,
+ "Room": 19
+ },
+ {
+ "X": 81408,
+ "Y": -2560,
+ "Z": 61952,
+ "Room": 20
+ },
+ {
+ "X": 81408,
+ "Y": -2560,
+ "Z": 62976,
+ "Room": 27
+ },
+ {
+ "X": 86528,
+ "Y": -512,
+ "Z": 76032,
+ "Room": 28,
+ "KeyItemsHigh": "27269"
+ },
+ {
+ "X": 86528,
+ "Y": -512,
+ "Z": 76288,
+ "Room": 28,
+ "KeyItemsHigh": "27269",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 86528,
+ "Y": -512,
+ "Z": 76544,
+ "Room": 28,
+ "KeyItemsHigh": "27269",
+ "Range": "Medium"
+ },
+ {
+ "X": 86272,
+ "Y": -512,
+ "Z": 76544,
+ "Room": 28,
+ "KeyItemsHigh": "27269",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 86272,
+ "Y": -512,
+ "Z": 76288,
+ "Room": 28,
+ "KeyItemsHigh": "27269",
+ "Range": "Large"
+ },
+ {
+ "X": 86272,
+ "Y": -512,
+ "Z": 76032,
+ "Room": 28,
+ "KeyItemsHigh": "27269",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 85504,
+ "Y": -256,
+ "Z": 76288,
+ "Room": 2
+ },
+ {
+ "X": 85504,
+ "Y": -256,
+ "Z": 75264,
+ "Room": 29
+ },
+ {
+ "X": 86528,
+ "Y": -3840,
+ "Z": 76288,
+ "Room": 30
+ },
+ {
+ "X": 87552,
+ "Y": -2816,
+ "Z": 73216,
+ "Room": 34
+ },
+ {
+ "X": 84480,
+ "Y": -3840,
+ "Z": 73216,
+ "Room": 21
+ },
+ {
+ "X": 83456,
+ "Y": -3840,
+ "Z": 73216,
+ "Room": 16
+ },
+ {
+ "X": 84480,
+ "Y": -768,
+ "Z": 78336,
+ "Room": 22
+ },
+ {
+ "X": 87552,
+ "Y": 0,
+ "Z": 79360,
+ "Room": 8
+ },
+ {
+ "X": 90624,
+ "Y": -2304,
+ "Z": 52736,
+ "Room": 39
+ },
+ {
+ "X": 90624,
+ "Y": -2304,
+ "Z": 54784,
+ "Room": 32
+ },
+ {
+ "X": 88576,
+ "Y": 0,
+ "Z": 52736,
+ "Room": 36
+ },
+ {
+ "X": 87552,
+ "Y": -256,
+ "Z": 52736,
+ "Room": 44
+ },
+ {
+ "X": 76288,
+ "Y": -768,
+ "Z": 45568,
+ "Room": 47
+ },
+ {
+ "X": 73216,
+ "Y": -3328,
+ "Z": 46592,
+ "Room": 43
+ },
+ {
+ "X": 80384,
+ "Y": -3968,
+ "Z": 58880,
+ "Room": 46,
+ "Validated": false
+ },
+ {
+ "X": 81408,
+ "Y": 6656,
+ "Z": 50688,
+ "Room": 45,
+ "Validated": false
+ },
+ {
+ "X": 82432,
+ "Y": 5760,
+ "Z": 58880,
+ "Room": 48,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": -3328,
+ "Z": 60928,
+ "Room": 76,
+ "KeyItemsLow": "27368",
+ "Range": "Large"
+ },
+ {
+ "X": 22784,
+ "Y": -3328,
+ "Z": 60928,
+ "Room": 76,
+ "KeyItemsLow": "27368",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -3328,
+ "Z": 55808,
+ "Room": 82
+ },
+ {
+ "X": 24064,
+ "Y": -3328,
+ "Z": 55808,
+ "Room": 89
+ },
+ {
+ "X": 25088,
+ "Y": -3328,
+ "Z": 50688,
+ "Room": 232
+ },
+ {
+ "X": 23040,
+ "Y": -3328,
+ "Z": 46592,
+ "Room": 90
+ },
+ {
+ "X": 24064,
+ "Y": -3328,
+ "Z": 44544,
+ "Room": 231
+ },
+ {
+ "X": 29184,
+ "Y": -3328,
+ "Z": 39424,
+ "Room": 230
+ },
+ {
+ "X": 23040,
+ "Y": -3328,
+ "Z": 39424,
+ "Room": 90
+ },
+ {
+ "X": 20171,
+ "Y": -3328,
+ "Z": 39159,
+ "Room": 92
+ },
+ {
+ "X": 18944,
+ "Y": -3328,
+ "Z": 54784,
+ "Room": 83
+ },
+ {
+ "X": 17920,
+ "Y": -3328,
+ "Z": 50688,
+ "Room": 91
+ },
+ {
+ "X": 12800,
+ "Y": -3328,
+ "Z": 49664,
+ "Room": 86
+ },
+ {
+ "X": 13824,
+ "Y": -3328,
+ "Z": 52736,
+ "Room": 85
+ },
+ {
+ "X": 14848,
+ "Y": -3328,
+ "Z": 52736,
+ "Room": 93
+ },
+ {
+ "X": 14848,
+ "Y": -3328,
+ "Z": 55808,
+ "Room": 84
+ },
+ {
+ "X": 12800,
+ "Y": -3328,
+ "Z": 54784,
+ "Room": 88
+ },
+ {
+ "X": 11776,
+ "Y": -3328,
+ "Z": 52736,
+ "Room": 87
+ },
+ {
+ "X": 11776,
+ "Y": -3328,
+ "Z": 41472,
+ "Room": 80
+ },
+ {
+ "X": 12032,
+ "Y": -3328,
+ "Z": 40448,
+ "Room": 81,
+ "KeyItemsLow": "27368"
+ },
+ {
+ "X": 11776,
+ "Y": -3328,
+ "Z": 40448,
+ "Room": 81,
+ "KeyItemsLow": "27368",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 11520,
+ "Y": -3328,
+ "Z": 40448,
+ "Room": 81,
+ "KeyItemsLow": "27368",
+ "Range": "Medium"
+ },
+ {
+ "X": 11520,
+ "Y": -3328,
+ "Z": 40192,
+ "Room": 81,
+ "KeyItemsLow": "27368,27686",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 14848,
+ "Y": -3328,
+ "Z": 37376,
+ "Room": 35
+ },
+ {
+ "X": 10752,
+ "Y": -3328,
+ "Z": 38400,
+ "Room": 50
+ },
+ {
+ "X": 8704,
+ "Y": -3584,
+ "Z": 38400,
+ "Room": 41
+ },
+ {
+ "X": 7680,
+ "Y": -8192,
+ "Z": 46592,
+ "Room": 100
+ },
+ {
+ "X": 7680,
+ "Y": -8704,
+ "Z": 47616,
+ "Room": 42
+ },
+ {
+ "X": 7680,
+ "Y": -10240,
+ "Z": 50688,
+ "Room": 97
+ },
+ {
+ "X": 10496,
+ "Y": -11520,
+ "Z": 54784,
+ "Room": 99,
+ "KeyItemsHigh": "27368"
+ },
+ {
+ "X": 10752,
+ "Y": -11520,
+ "Z": 54784,
+ "Room": 99,
+ "KeyItemsHigh": "27368",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 11008,
+ "Y": -11520,
+ "Z": 54784,
+ "Room": 99,
+ "KeyItemsHigh": "27368",
+ "Range": "Medium"
+ },
+ {
+ "X": 11008,
+ "Y": -11520,
+ "Z": 55040,
+ "Room": 99,
+ "KeyItemsHigh": "27368",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 10752,
+ "Y": -11520,
+ "Z": 55040,
+ "Room": 99,
+ "KeyItemsHigh": "27368",
+ "Range": "Large"
+ },
+ {
+ "X": 10496,
+ "Y": -11520,
+ "Z": 55040,
+ "Room": 99,
+ "KeyItemsHigh": "27368",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 10752,
+ "Y": 1024,
+ "Z": 57856,
+ "Room": 167
+ },
+ {
+ "X": 11776,
+ "Y": 1024,
+ "Z": 57856,
+ "Room": 166
+ },
+ {
+ "X": 15872,
+ "Y": 0,
+ "Z": 58880,
+ "Room": 165
+ },
+ {
+ "X": 16896,
+ "Y": 0,
+ "Z": 65024,
+ "Room": 161
+ },
+ {
+ "X": 34304,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 79
+ },
+ {
+ "X": 42496,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 152,
+ "Validated": false
+ },
+ {
+ "X": 41216,
+ "Y": -3328,
+ "Z": 74240,
+ "Room": 153,
+ "KeyItemsLow": "27421"
+ },
+ {
+ "X": 41472,
+ "Y": -3328,
+ "Z": 74240,
+ "Room": 153,
+ "KeyItemsLow": "27421",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41728,
+ "Y": -3328,
+ "Z": 74240,
+ "Room": 153,
+ "KeyItemsLow": "27421",
+ "Range": "Medium"
+ },
+ {
+ "X": 41728,
+ "Y": -3328,
+ "Z": 74496,
+ "Room": 153,
+ "KeyItemsLow": "27421",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 41472,
+ "Y": -3328,
+ "Z": 74496,
+ "Room": 153,
+ "KeyItemsLow": "27421",
+ "Range": "Large"
+ },
+ {
+ "X": 41216,
+ "Y": -3328,
+ "Z": 74496,
+ "Room": 153,
+ "KeyItemsLow": "27421",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": -4608,
+ "Z": 71168,
+ "Room": 152
+ },
+ {
+ "X": 44544,
+ "Y": -5888,
+ "Z": 74240,
+ "Room": 204,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": -5376,
+ "Z": 75264,
+ "Room": 148
+ },
+ {
+ "X": 35328,
+ "Y": -5888,
+ "Z": 73216,
+ "Room": 147
+ },
+ {
+ "X": 35328,
+ "Y": -7680,
+ "Z": 61952,
+ "Room": 149
+ },
+ {
+ "X": 43520,
+ "Y": -7808,
+ "Z": 62976,
+ "Room": 150
+ },
+ {
+ "X": 44544,
+ "Y": -7424,
+ "Z": 74240,
+ "Room": 120
+ },
+ {
+ "X": 37376,
+ "Y": 2560,
+ "Z": 66304,
+ "Room": 171,
+ "KeyItemsHigh": "27421"
+ },
+ {
+ "X": 37376,
+ "Y": 2560,
+ "Z": 66048,
+ "Room": 171,
+ "KeyItemsHigh": "27421",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": 2560,
+ "Z": 65792,
+ "Room": 171,
+ "KeyItemsHigh": "27421",
+ "Range": "Medium"
+ },
+ {
+ "X": 37120,
+ "Y": 2560,
+ "Z": 65792,
+ "Room": 171,
+ "KeyItemsHigh": "27421",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37120,
+ "Y": 2560,
+ "Z": 66048,
+ "Room": 171,
+ "KeyItemsHigh": "27421",
+ "Range": "Large"
+ },
+ {
+ "X": 37120,
+ "Y": 2560,
+ "Z": 66304,
+ "Room": 171,
+ "KeyItemsHigh": "27421",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 28160,
+ "Y": 1536,
+ "Z": 65024,
+ "Room": 169
+ },
+ {
+ "X": 22016,
+ "Y": 3840,
+ "Z": 64000,
+ "Room": 225
+ },
+ {
+ "X": 22016,
+ "Y": 3840,
+ "Z": 66048,
+ "Room": 226
+ },
+ {
+ "X": 19968,
+ "Y": 3840,
+ "Z": 64000,
+ "Room": 224
+ },
+ {
+ "X": 19968,
+ "Y": 3840,
+ "Z": 66048,
+ "Room": 223
+ },
+ {
+ "X": 18944,
+ "Y": 3840,
+ "Z": 65024,
+ "Room": 207
+ },
+ {
+ "X": 23040,
+ "Y": -3328,
+ "Z": 69120,
+ "Room": 77
+ },
+ {
+ "X": 23296,
+ "Y": -1536,
+ "Z": 75264,
+ "Room": 125,
+ "KeyItemsLow": "27395"
+ },
+ {
+ "X": 23040,
+ "Y": -1536,
+ "Z": 75264,
+ "Room": 125,
+ "KeyItemsLow": "27395",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 22784,
+ "Y": -1536,
+ "Z": 75264,
+ "Room": 125,
+ "KeyItemsLow": "27395",
+ "Range": "Medium"
+ },
+ {
+ "X": 22784,
+ "Y": -1536,
+ "Z": 75520,
+ "Room": 125,
+ "KeyItemsLow": "27395",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -1536,
+ "Z": 75520,
+ "Room": 125,
+ "KeyItemsLow": "27395",
+ "Range": "Large"
+ },
+ {
+ "X": 23296,
+ "Y": -1536,
+ "Z": 75520,
+ "Room": 125,
+ "KeyItemsLow": "27395",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 23040,
+ "Y": -1536,
+ "Z": 77312,
+ "Room": 127
+ },
+ {
+ "X": 23040,
+ "Y": 1792,
+ "Z": 82432,
+ "Room": 128
+ },
+ {
+ "X": 24064,
+ "Y": 1280,
+ "Z": 76288,
+ "Room": 126
+ },
+ {
+ "X": 23040,
+ "Y": 4096,
+ "Z": 75264,
+ "Room": 129
+ },
+ {
+ "X": 28160,
+ "Y": 7424,
+ "Z": 74240,
+ "Room": 130
+ },
+ {
+ "X": 30208,
+ "Y": 7424,
+ "Z": 75264,
+ "Room": 131
+ },
+ {
+ "X": 34304,
+ "Y": 6528,
+ "Z": 76288,
+ "Room": 155
+ },
+ {
+ "X": 38400,
+ "Y": 7680,
+ "Z": 76288,
+ "Room": 135
+ },
+ {
+ "X": 33280,
+ "Y": 5376,
+ "Z": 75264,
+ "Room": 133
+ },
+ {
+ "X": 33280,
+ "Y": 6400,
+ "Z": 74240,
+ "Room": 134
+ },
+ {
+ "X": 35328,
+ "Y": -768,
+ "Z": 75264,
+ "Room": 122
+ },
+ {
+ "X": 35328,
+ "Y": -2560,
+ "Z": 72192,
+ "Room": 141
+ },
+ {
+ "X": 36352,
+ "Y": -2304,
+ "Z": 79360,
+ "Room": 145
+ },
+ {
+ "X": 34304,
+ "Y": -2304,
+ "Z": 79360,
+ "Room": 144
+ },
+ {
+ "X": 35328,
+ "Y": -768,
+ "Z": 79360,
+ "Room": 146
+ },
+ {
+ "X": 35328,
+ "Y": -512,
+ "Z": 83456,
+ "Room": 108
+ },
+ {
+ "X": 35328,
+ "Y": -1792,
+ "Z": 87552,
+ "Room": 94
+ },
+ {
+ "X": 37376,
+ "Y": -2048,
+ "Z": 89600,
+ "Room": 109
+ },
+ {
+ "X": 35328,
+ "Y": -768,
+ "Z": 69120,
+ "Room": 142
+ },
+ {
+ "X": 28160,
+ "Y": 4224,
+ "Z": 70144,
+ "Room": 143
+ },
+ {
+ "X": 38400,
+ "Y": 7424,
+ "Z": 75264,
+ "Room": 136
+ },
+ {
+ "X": 38144,
+ "Y": 7424,
+ "Z": 74240,
+ "Room": 139,
+ "KeyItemsHigh": "27395"
+ },
+ {
+ "X": 38400,
+ "Y": 7424,
+ "Z": 74240,
+ "Room": 139,
+ "KeyItemsHigh": "27395",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38656,
+ "Y": 7424,
+ "Z": 74240,
+ "Room": 139,
+ "KeyItemsHigh": "27395",
+ "Range": "Medium"
+ },
+ {
+ "X": 38656,
+ "Y": 7424,
+ "Z": 73984,
+ "Room": 139,
+ "KeyItemsHigh": "27395",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": 7424,
+ "Z": 73984,
+ "Room": 139,
+ "KeyItemsHigh": "27395",
+ "Range": "Large"
+ },
+ {
+ "X": 38144,
+ "Y": 7424,
+ "Z": 73984,
+ "Room": 139,
+ "KeyItemsHigh": "27395",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 38400,
+ "Y": 9728,
+ "Z": 70144,
+ "Room": 173
+ },
+ {
+ "X": 31232,
+ "Y": 12544,
+ "Z": 70144,
+ "Room": 176
+ },
+ {
+ "X": 22016,
+ "Y": 12800,
+ "Z": 69120,
+ "Room": 177
+ },
+ {
+ "X": 16896,
+ "Y": -1024,
+ "Z": 69120,
+ "Room": 182
+ },
+ {
+ "X": 15872,
+ "Y": 1024,
+ "Z": 69120,
+ "Room": 96
+ },
+ {
+ "X": 16896,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 78
+ },
+ {
+ "X": 11776,
+ "Y": -3328,
+ "Z": 65024,
+ "Room": 102
+ },
+ {
+ "X": 5632,
+ "Y": -2816,
+ "Z": 65024,
+ "Room": 104
+ },
+ {
+ "X": 3584,
+ "Y": -3072,
+ "Z": 72192,
+ "Room": 103
+ },
+ {
+ "X": 3584,
+ "Y": -3200,
+ "Z": 74240,
+ "Room": 111,
+ "Validated": false
+ },
+ {
+ "X": 3584,
+ "Y": -3328,
+ "Z": 77312,
+ "Room": 116,
+ "Validated": false
+ },
+ {
+ "X": 3584,
+ "Y": -1664,
+ "Z": 73216,
+ "Room": 114
+ },
+ {
+ "X": 3840,
+ "Y": 1024,
+ "Z": 77312,
+ "Room": 115,
+ "KeyItemsLow": "27449"
+ },
+ {
+ "X": 3584,
+ "Y": 1024,
+ "Z": 77312,
+ "Room": 115,
+ "KeyItemsLow": "27449",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 3328,
+ "Y": 1024,
+ "Z": 77312,
+ "Room": 115,
+ "KeyItemsLow": "27449",
+ "Range": "Medium"
+ },
+ {
+ "X": 3328,
+ "Y": 1024,
+ "Z": 77568,
+ "Room": 115,
+ "KeyItemsLow": "27449",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 3584,
+ "Y": 1024,
+ "Z": 77568,
+ "Room": 115,
+ "KeyItemsLow": "27449",
+ "Range": "Large"
+ },
+ {
+ "X": 3840,
+ "Y": 1024,
+ "Z": 77568,
+ "Room": 115,
+ "KeyItemsLow": "27449",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 14848,
+ "Y": 1024,
+ "Z": 80384,
+ "Room": 118
+ },
+ {
+ "X": 15872,
+ "Y": 1024,
+ "Z": 80384,
+ "Room": 119
+ },
+ {
+ "X": 17152,
+ "Y": 1024,
+ "Z": 78592,
+ "Room": 162,
+ "KeyItemsHigh": "27449"
+ },
+ {
+ "X": 16896,
+ "Y": 1024,
+ "Z": 78592,
+ "Room": 162,
+ "KeyItemsHigh": "27449",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16640,
+ "Y": 1024,
+ "Z": 78592,
+ "Room": 162,
+ "KeyItemsHigh": "27449",
+ "Range": "Medium"
+ },
+ {
+ "X": 16640,
+ "Y": 1024,
+ "Z": 78336,
+ "Room": 162,
+ "KeyItemsHigh": "27449",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 16896,
+ "Y": 1024,
+ "Z": 78336,
+ "Room": 162,
+ "KeyItemsHigh": "27449",
+ "Range": "Large"
+ },
+ {
+ "X": 17152,
+ "Y": 1024,
+ "Z": 78336,
+ "Room": 162,
+ "KeyItemsHigh": "27449",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 69120,
+ "Y": -256,
+ "Z": 51712,
+ "Room": 51,
+ "KeyItemsLow": "27686",
+ "Range": "Large"
+ },
+ {
+ "X": 66048,
+ "Y": 0,
+ "Z": 55808,
+ "Room": 57
+ },
+ {
+ "X": 62976,
+ "Y": 0,
+ "Z": 53760,
+ "Room": 52
+ },
+ {
+ "X": 60928,
+ "Y": -256,
+ "Z": 51712,
+ "Room": 53
+ },
+ {
+ "X": 56832,
+ "Y": -3584,
+ "Z": 50688,
+ "Room": 55,
+ "Validated": false
+ },
+ {
+ "X": 52736,
+ "Y": -256,
+ "Z": 51712,
+ "Room": 56
+ },
+ {
+ "X": 43520,
+ "Y": -1280,
+ "Z": 51712,
+ "Room": 62
+ },
+ {
+ "X": 38400,
+ "Y": -1280,
+ "Z": 51712,
+ "Room": 58,
+ "KeyItemsLow": "27686",
+ "Range": "Medium"
+ },
+ {
+ "X": 36352,
+ "Y": -2048,
+ "Z": 58880,
+ "Room": 63
+ },
+ {
+ "X": 36352,
+ "Y": -2048,
+ "Z": 59904,
+ "Room": 72
+ },
+ {
+ "X": 36352,
+ "Y": -2560,
+ "Z": 62976,
+ "Room": 66
+ },
+ {
+ "X": 33280,
+ "Y": -3072,
+ "Z": 62976,
+ "Room": 75
+ },
+ {
+ "X": 29184,
+ "Y": -1664,
+ "Z": 68096,
+ "Room": 74
+ },
+ {
+ "X": 29184,
+ "Y": -1664,
+ "Z": 61952,
+ "Room": 73
+ },
+ {
+ "X": 25088,
+ "Y": 0,
+ "Z": 61952,
+ "Room": 70
+ },
+ {
+ "X": 25088,
+ "Y": 0,
+ "Z": 62976,
+ "Room": 67
+ },
+ {
+ "X": 25088,
+ "Y": 0,
+ "Z": 68096,
+ "Room": 71
+ },
+ {
+ "X": 24064,
+ "Y": 768,
+ "Z": 64000,
+ "Room": 67
+ },
+ {
+ "X": 19968,
+ "Y": 0,
+ "Z": 62976,
+ "Room": 68
+ },
+ {
+ "X": 39424,
+ "Y": -3840,
+ "Z": 52736,
+ "Room": 60,
+ "Validated": false
+ },
+ {
+ "X": 33280,
+ "Y": -3840,
+ "Z": 55808,
+ "Room": 61,
+ "Validated": false
+ },
+ {
+ "X": 34304,
+ "Y": -4864,
+ "Z": 51712,
+ "Room": 59,
+ "Validated": false
+ },
+ {
+ "X": 30208,
+ "Y": -4096,
+ "Z": 51712,
+ "Room": 227,
+ "Validated": false
+ },
+ {
+ "X": 36352,
+ "Y": -1280,
+ "Z": 48640,
+ "Room": 65
+ },
+ {
+ "X": 36352,
+ "Y": -1280,
+ "Z": 45568,
+ "Room": 181
+ },
+ {
+ "X": 33280,
+ "Y": -1280,
+ "Z": 44544,
+ "Room": 184
+ },
+ {
+ "X": 34304,
+ "Y": -1280,
+ "Z": 43520,
+ "Room": 185
+ },
+ {
+ "X": 35328,
+ "Y": -640,
+ "Z": 42496,
+ "Room": 186
+ },
+ {
+ "X": 37376,
+ "Y": -256,
+ "Z": 42496,
+ "Room": 183
+ },
+ {
+ "X": 37376,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 101,
+ "KeyItemsLow": "27686"
+ },
+ {
+ "X": 37120,
+ "Y": 0,
+ "Z": 34304,
+ "Room": 101,
+ "KeyItemsLow": "27686",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 37376,
+ "Y": -256,
+ "Z": 28160,
+ "Room": 197
+ },
+ {
+ "X": 43520,
+ "Y": -256,
+ "Z": 34304,
+ "Room": 196
+ },
+ {
+ "X": 31232,
+ "Y": -256,
+ "Z": 34304,
+ "Room": 188
+ },
+ {
+ "X": 42496,
+ "Y": -3328,
+ "Z": 36352,
+ "Room": 175
+ },
+ {
+ "X": 31232,
+ "Y": -3328,
+ "Z": 32256,
+ "Room": 191
+ },
+ {
+ "X": 30208,
+ "Y": -3328,
+ "Z": 32256,
+ "Room": 190
+ },
+ {
+ "X": 27136,
+ "Y": -3328,
+ "Z": 28160,
+ "Room": 202
+ },
+ {
+ "X": 23040,
+ "Y": -3328,
+ "Z": 32256,
+ "Room": 187
+ },
+ {
+ "X": 26112,
+ "Y": -3328,
+ "Z": 36352,
+ "Room": 172
+ },
+ {
+ "X": 29184,
+ "Y": -1280,
+ "Z": 33280,
+ "Room": 192
+ },
+ {
+ "X": 29184,
+ "Y": -2048,
+ "Z": 36352,
+ "Room": 203
+ },
+ {
+ "X": 29184,
+ "Y": 512,
+ "Z": 36352,
+ "Room": 195
+ },
+ {
+ "X": 24064,
+ "Y": 2048,
+ "Z": 34304,
+ "Room": 194
+ },
+ {
+ "X": 31232,
+ "Y": 6912,
+ "Z": 30208,
+ "Room": 201
+ },
+ {
+ "X": 23040,
+ "Y": 5120,
+ "Z": 31232,
+ "Room": 208
+ },
+ {
+ "X": 20992,
+ "Y": 5120,
+ "Z": 33280,
+ "Room": 218
+ },
+ {
+ "X": 20992,
+ "Y": 5376,
+ "Z": 37376,
+ "Room": 216
+ },
+ {
+ "X": 20992,
+ "Y": 4992,
+ "Z": 40448,
+ "Room": 210
+ },
+ {
+ "X": 17920,
+ "Y": 5120,
+ "Z": 39424,
+ "Room": 211
+ },
+ {
+ "X": 20992,
+ "Y": 5248,
+ "Z": 42496,
+ "Room": 213
+ },
+ {
+ "X": 24064,
+ "Y": 5248,
+ "Z": 49664,
+ "Room": 214
+ },
+ {
+ "X": 27136,
+ "Y": 5376,
+ "Z": 44544,
+ "Room": 215
+ },
+ {
+ "X": 29184,
+ "Y": 5120,
+ "Z": 39424,
+ "Room": 211
+ },
+ {
+ "X": 30208,
+ "Y": 5120,
+ "Z": 39424,
+ "Room": 209
+ },
+ {
+ "X": 25088,
+ "Y": 5120,
+ "Z": 54784,
+ "Room": 212
+ },
+ {
+ "X": 28160,
+ "Y": 5376,
+ "Z": 53760,
+ "Room": 221
+ },
+ {
+ "X": 30208,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 219
+ },
+ {
+ "X": 28160,
+ "Y": 5376,
+ "Z": 55808,
+ "Room": 220
+ },
+ {
+ "X": 18944,
+ "Y": 512,
+ "Z": 57856,
+ "Room": 189
+ },
+ {
+ "X": 48896,
+ "Y": 6144,
+ "Z": 47872,
+ "Room": 54,
+ "KeyItemsHigh": "27686"
+ },
+ {
+ "X": 48896,
+ "Y": 6144,
+ "Z": 47616,
+ "Room": 54,
+ "KeyItemsHigh": "27686",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48896,
+ "Y": 6144,
+ "Z": 47360,
+ "Room": 54,
+ "KeyItemsHigh": "27686",
+ "Range": "Medium"
+ },
+ {
+ "X": 48640,
+ "Y": 6144,
+ "Z": 47360,
+ "Room": 54,
+ "KeyItemsHigh": "27686",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": 6144,
+ "Z": 47616,
+ "Room": 54,
+ "KeyItemsHigh": "27686",
+ "Range": "Large"
+ },
+ {
+ "X": 48640,
+ "Y": 6144,
+ "Z": 47872,
+ "Room": 54,
+ "KeyItemsHigh": "27686",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 47616,
+ "Y": 6144,
+ "Z": 47616,
+ "Room": 156
+ },
+ {
+ "X": 23040,
+ "Y": 3584,
+ "Z": 65024,
+ "Room": 222
+ }
+ ],
+ "CHAMBER.TR2": [
+ {
+ "X": 61952,
+ "Y": -512,
+ "Z": 62976,
+ "Room": 5
+ },
+ {
+ "X": 67072,
+ "Y": -512,
+ "Z": 62976,
+ "Room": 15
+ },
+ {
+ "X": 57856,
+ "Y": -512,
+ "Z": 72192,
+ "Room": 6
+ },
+ {
+ "X": 48640,
+ "Y": -512,
+ "Z": 62976,
+ "Room": 9
+ },
+ {
+ "X": 57856,
+ "Y": -512,
+ "Z": 53760,
+ "Room": 8
+ },
+ {
+ "X": 66048,
+ "Y": -3328,
+ "Z": 62976,
+ "Room": 10
+ },
+ {
+ "X": 67072,
+ "Y": -3328,
+ "Z": 62976,
+ "Room": 11
+ },
+ {
+ "X": 69120,
+ "Y": -3328,
+ "Z": 64000,
+ "Room": 13
+ },
+ {
+ "X": 69120,
+ "Y": -4096,
+ "Z": 68096,
+ "Room": 2
+ },
+ {
+ "X": 62976,
+ "Y": -6272,
+ "Z": 68096,
+ "Room": 3
+ },
+ {
+ "X": 59904,
+ "Y": -8192,
+ "Z": 65024,
+ "Room": 4
+ },
+ {
+ "X": 55808,
+ "Y": -10240,
+ "Z": 62976,
+ "Room": 12
+ },
+ {
+ "X": 53760,
+ "Y": -11008,
+ "Z": 62976,
+ "Room": 7
+ },
+ {
+ "X": 55808,
+ "Y": -11008,
+ "Z": 58880,
+ "Room": 16
+ },
+ {
+ "X": 55808,
+ "Y": -10880,
+ "Z": 56832,
+ "Room": 17
+ },
+ {
+ "X": 55808,
+ "Y": -6016,
+ "Z": 49664,
+ "Room": 18
+ },
+ {
+ "X": 54784,
+ "Y": -1024,
+ "Z": 40448,
+ "Room": 20
+ },
+ {
+ "X": 49664,
+ "Y": 128,
+ "Z": 40448,
+ "Room": 21
+ },
+ {
+ "X": 48640,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 23
+ },
+ {
+ "X": 40448,
+ "Y": -2176,
+ "Z": 43520,
+ "Room": 26,
+ "Validated": false
+ },
+ {
+ "X": 36352,
+ "Y": -256,
+ "Z": 39424,
+ "Room": 27
+ },
+ {
+ "X": 35328,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 43
+ },
+ {
+ "X": 43520,
+ "Y": 0,
+ "Z": 37376,
+ "Room": 24
+ },
+ {
+ "X": 39424,
+ "Y": 0,
+ "Z": 36352,
+ "Room": 25
+ },
+ {
+ "X": 38400,
+ "Y": 0,
+ "Z": 30208,
+ "Room": 28
+ },
+ {
+ "X": 40448,
+ "Y": -2816,
+ "Z": 29184,
+ "Room": 35,
+ "Validated": false
+ },
+ {
+ "X": 37376,
+ "Y": -3200,
+ "Z": 31232,
+ "Room": 31,
+ "Validated": false
+ },
+ {
+ "X": 38400,
+ "Y": -2816,
+ "Z": 34304,
+ "Room": 34,
+ "Validated": false
+ },
+ {
+ "X": 32256,
+ "Y": 0,
+ "Z": 25088,
+ "Room": 37
+ },
+ {
+ "X": 31232,
+ "Y": -2816,
+ "Z": 25088,
+ "Room": 36,
+ "Validated": false
+ },
+ {
+ "X": 23040,
+ "Y": 0,
+ "Z": 27136,
+ "Room": 29
+ }
+ ],
+ "STPAUL.TR2": [
+ {
+ "X": 57856,
+ "Y": -17536,
+ "Z": 55808,
+ "Room": 40
+ },
+ {
+ "X": 49664,
+ "Y": -9216,
+ "Z": 55808,
+ "Room": 48,
+ "KeyItemsLow": "29220",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 49408,
+ "Y": -9216,
+ "Z": 55808,
+ "Room": 48,
+ "KeyItemsLow": "29220",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": -9216,
+ "Z": 54784,
+ "Room": 49
+ },
+ {
+ "X": 45568,
+ "Y": -12032,
+ "Z": 54784,
+ "Room": 50
+ },
+ {
+ "X": 42496,
+ "Y": -12032,
+ "Z": 54784,
+ "Room": 51
+ },
+ {
+ "X": 48640,
+ "Y": -13568,
+ "Z": 65024,
+ "Room": 0
+ },
+ {
+ "X": 50688,
+ "Y": -11264,
+ "Z": 60928,
+ "Room": 20
+ },
+ {
+ "X": 44544,
+ "Y": -7424,
+ "Z": 58880,
+ "Room": 45
+ },
+ {
+ "X": 46592,
+ "Y": -7168,
+ "Z": 54784,
+ "Room": 46
+ },
+ {
+ "X": 48384,
+ "Y": -4864,
+ "Z": 56064,
+ "Room": 47,
+ "KeyItemsLow": "29220"
+ },
+ {
+ "X": 48640,
+ "Y": -4864,
+ "Z": 56064,
+ "Room": 47,
+ "KeyItemsLow": "29220",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 48640,
+ "Y": -4864,
+ "Z": 55808,
+ "Room": 47,
+ "KeyItemsLow": "29220",
+ "Range": "Medium"
+ },
+ {
+ "X": 48640,
+ "Y": -4864,
+ "Z": 55552,
+ "Room": 47,
+ "KeyItemsLow": "29220",
+ "Range": "Large"
+ },
+ {
+ "X": 45568,
+ "Y": -2304,
+ "Z": 58880,
+ "Room": 44
+ },
+ {
+ "X": 40448,
+ "Y": 1280,
+ "Z": 60928,
+ "Room": 57
+ },
+ {
+ "X": 50688,
+ "Y": 1280,
+ "Z": 53760,
+ "Room": 42
+ },
+ {
+ "X": 45568,
+ "Y": -3840,
+ "Z": 53760,
+ "Room": 52
+ },
+ {
+ "X": 46592,
+ "Y": -5504,
+ "Z": 52736,
+ "Room": 67
+ },
+ {
+ "X": 40448,
+ "Y": -7424,
+ "Z": 53760,
+ "Room": 2
+ },
+ {
+ "X": 38400,
+ "Y": -7424,
+ "Z": 53760,
+ "Room": 68,
+ "RoomType": "ReturnPath"
+ },
+ {
+ "X": 41472,
+ "Y": -11008,
+ "Z": 53760,
+ "Room": 18
+ },
+ {
+ "X": 40448,
+ "Y": -8704,
+ "Z": 52736,
+ "Room": 13
+ },
+ {
+ "X": 40448,
+ "Y": -5376,
+ "Z": 62976,
+ "Room": 55
+ },
+ {
+ "X": 40448,
+ "Y": -4992,
+ "Z": 65024,
+ "Room": 56
+ },
+ {
+ "X": 41472,
+ "Y": -2816,
+ "Z": 64000,
+ "Room": 44
+ },
+ {
+ "X": 40448,
+ "Y": -2816,
+ "Z": 65024,
+ "Room": 61
+ },
+ {
+ "X": 40448,
+ "Y": -2816,
+ "Z": 66048,
+ "Room": 65
+ },
+ {
+ "X": 39424,
+ "Y": 128,
+ "Z": 66048,
+ "Room": 62
+ },
+ {
+ "X": 43520,
+ "Y": 2048,
+ "Z": 66048,
+ "Room": 27
+ },
+ {
+ "X": 43520,
+ "Y": 2048,
+ "Z": 69120,
+ "Room": 26
+ },
+ {
+ "X": 46592,
+ "Y": 1024,
+ "Z": 68096,
+ "Room": 28
+ },
+ {
+ "X": 46592,
+ "Y": 1024,
+ "Z": 66048,
+ "Room": 23
+ },
+ {
+ "X": 45568,
+ "Y": 1024,
+ "Z": 66048,
+ "Room": 29
+ },
+ {
+ "X": 46592,
+ "Y": -256,
+ "Z": 66048,
+ "Room": 37
+ },
+ {
+ "X": 45568,
+ "Y": 1024,
+ "Z": 68096,
+ "Room": 30
+ },
+ {
+ "X": 45568,
+ "Y": -3072,
+ "Z": 67072,
+ "Room": 36
+ },
+ {
+ "X": 45568,
+ "Y": -2816,
+ "Z": 65024,
+ "Room": 66
+ },
+ {
+ "X": 51712,
+ "Y": 7168,
+ "Z": 61952,
+ "Room": 60
+ },
+ {
+ "X": 47616,
+ "Y": 5632,
+ "Z": 59904,
+ "Room": 58
+ },
+ {
+ "X": 44544,
+ "Y": 5632,
+ "Z": 57856,
+ "Room": 41
+ },
+ {
+ "X": 44544,
+ "Y": 5632,
+ "Z": 59904,
+ "Room": 43
+ },
+ {
+ "X": 48640,
+ "Y": 2304,
+ "Z": 64000,
+ "Room": 33
+ },
+ {
+ "X": 48640,
+ "Y": 2304,
+ "Z": 65024,
+ "Room": 15
+ },
+ {
+ "X": 48640,
+ "Y": 2304,
+ "Z": 66048,
+ "Room": 14
+ },
+ {
+ "X": 46592,
+ "Y": 1280,
+ "Z": 65024,
+ "Room": 17
+ },
+ {
+ "X": 44544,
+ "Y": 5632,
+ "Z": 55040,
+ "Room": 38,
+ "KeyItemsHigh": "29220"
+ },
+ {
+ "X": 44544,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 38,
+ "KeyItemsHigh": "29220",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44544,
+ "Y": 5632,
+ "Z": 54528,
+ "Room": 38,
+ "KeyItemsHigh": "29220",
+ "Range": "Medium"
+ },
+ {
+ "X": 44288,
+ "Y": 5632,
+ "Z": 54528,
+ "Room": 38,
+ "KeyItemsHigh": "29220",
+ "Range": "Medium",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 44288,
+ "Y": 5632,
+ "Z": 54784,
+ "Room": 38,
+ "KeyItemsHigh": "29220",
+ "Range": "Large"
+ },
+ {
+ "X": 44288,
+ "Y": 5632,
+ "Z": 55040,
+ "Room": 38,
+ "KeyItemsHigh": "29220",
+ "Range": "Large",
+ "RequiresReturnPath": true
+ },
+ {
+ "X": 42496,
+ "Y": 8960,
+ "Z": 54784,
+ "Room": 5
+ },
+ {
+ "X": 38400,
+ "Y": 5632,
+ "Z": 38400,
+ "Room": 19
+ },
+ {
+ "X": 35328,
+ "Y": 1536,
+ "Z": 39424,
+ "Room": 6
+ },
+ {
+ "X": 32256,
+ "Y": 1536,
+ "Z": 39424,
+ "Room": 21
+ }
+ ]
}
\ No newline at end of file
From 0d121a5146bec55bb2c89ca69559d0616fbf64f5 Mon Sep 17 00:00:00 2001
From: lahm86 <33758420+lahm86@users.noreply.github.com>
Date: Sat, 11 Nov 2023 21:16:51 +0000
Subject: [PATCH 12/17] Remove legacy data/classes
All previous zoning/manual location files removed. Redundant classes removed, and redundant properties removed from Location.
---
.../Helpers/LevelPickupZoneDescriptor.cs | 14 -
TRRandomizerCore/Helpers/Location.cs | 2 -
TRRandomizerCore/Helpers/Sphere.cs | 27 -
.../TR1/Locations/item_locations.json | 2731 ---------
.../Resources/TR2/Zones/BOAT.TR2-Zones.json | 17 -
.../TR2/Zones/CATACOMB.TR2-Zones.json | 19 -
.../Resources/TR2/Zones/DECK.TR2-Zones.json | 19 -
.../TR2/Zones/EMPRTOMB.TR2-Zones.json | 21 -
.../TR2/Zones/FLOATING.TR2-Zones.json | 18 -
.../Resources/TR2/Zones/HOUSE.TR2-Zones.json | 16 -
.../TR2/Zones/ICECAVE.TR2-Zones.json | 20 -
.../Resources/TR2/Zones/KEEL.TR2-Zones.json | 23 -
.../Resources/TR2/Zones/LIVING.TR2-Zones.json | 17 -
.../TR2/Zones/MONASTRY.TR2-Zones.json | 21 -
.../Resources/TR2/Zones/OPERA.TR2-Zones.json | 21 -
.../TR2/Zones/PLATFORM.TR2-Zones.json | 22 -
.../Resources/TR2/Zones/RIG.TR2-Zones.json | 19 -
.../Resources/TR2/Zones/SKIDOO.TR2-Zones.json | 17 -
.../TR2/Zones/UNWATER.TR2-Zones.json | 18 -
.../Resources/TR2/Zones/VENICE.TR2-Zones.json | 19 -
.../Resources/TR2/Zones/WALL.TR2-Zones.json | 23 -
.../Resources/TR2/Zones/XIAN.TR2-Zones.json | 18 -
.../Resources/TR3/Locations/Zones.json | 446 --
.../TR3/Locations/item_locations.json | 5121 -----------------
.../Utilities/SpatialConverters.cs | 28 -
TRRandomizerCore/Zones/LevelZones.cs | 27 -
.../Zones/ZonedLocationCollection.cs | 289 -
27 files changed, 9033 deletions(-)
delete mode 100644 TRRandomizerCore/Helpers/LevelPickupZoneDescriptor.cs
delete mode 100644 TRRandomizerCore/Helpers/Sphere.cs
delete mode 100644 TRRandomizerCore/Resources/TR1/Locations/item_locations.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/BOAT.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/CATACOMB.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/DECK.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/EMPRTOMB.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/FLOATING.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/HOUSE.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/ICECAVE.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/KEEL.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/LIVING.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/MONASTRY.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/OPERA.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/PLATFORM.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/RIG.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/SKIDOO.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/UNWATER.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/VENICE.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/WALL.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR2/Zones/XIAN.TR2-Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR3/Locations/Zones.json
delete mode 100644 TRRandomizerCore/Resources/TR3/Locations/item_locations.json
delete mode 100644 TRRandomizerCore/Utilities/SpatialConverters.cs
delete mode 100644 TRRandomizerCore/Zones/LevelZones.cs
delete mode 100644 TRRandomizerCore/Zones/ZonedLocationCollection.cs
diff --git a/TRRandomizerCore/Helpers/LevelPickupZoneDescriptor.cs b/TRRandomizerCore/Helpers/LevelPickupZoneDescriptor.cs
deleted file mode 100644
index a1631c438..000000000
--- a/TRRandomizerCore/Helpers/LevelPickupZoneDescriptor.cs
+++ /dev/null
@@ -1,14 +0,0 @@
-using TRLevelControl.Model;
-
-namespace TRRandomizerCore.Helpers;
-
-public class LevelPickupZoneDescriptor
-{
- //Key items can be used to place secret artefacts (in games such as TR3) -
- //so this will hold a list of actual key item entities to randomize to avoid secrets being randomized.
- public List AliasedExpectedKeyItems { get; set; }
- public List BaseExpectedKeyItems { get; set; }
-
- //Per each entity - what rooms that entity is allowed to be placed in (Zones).
- public Dictionary> AllowedRooms { get; set; }
-}
diff --git a/TRRandomizerCore/Helpers/Location.cs b/TRRandomizerCore/Helpers/Location.cs
index 7e5a931a8..08e9c5d49 100644
--- a/TRRandomizerCore/Helpers/Location.cs
+++ b/TRRandomizerCore/Helpers/Location.cs
@@ -13,13 +13,11 @@ public class Location
public int Room { get; set; }
public bool RequiresGlitch { get; set; }
public Difficulty Difficulty { get; set; }
- public bool IsInRoomSpace { get; set; }
public ItemRange Range { get; set; }
public RoomType RoomType { get; set; }
public bool VehicleRequired { get; set; }
public bool RequiresDamage { get; set; }
public bool InvalidatesRoom { get; set; }
- public int KeyItemGroupID { get; set; }
public bool RequiresReturnPath { get; set; }
public LevelState LevelState { get; set; }
diff --git a/TRRandomizerCore/Helpers/Sphere.cs b/TRRandomizerCore/Helpers/Sphere.cs
deleted file mode 100644
index d557833da..000000000
--- a/TRRandomizerCore/Helpers/Sphere.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-using System.Numerics;
-
-namespace TRRandomizerCore.Helpers;
-
-public class Sphere
-{
- public Vector3 Centre { get; set; }
-
- public float Radius { get; set; }
-
- public Sphere(Vector3 centre, float radius)
- {
- Centre = centre;
- Radius = radius;
- }
-
- public bool IsColliding(Sphere other)
- {
- Vector3 distance = Centre - other.Centre;
-
- float length = (float)Math.Sqrt((distance.X * distance.X) + (distance.Y * distance.Y) + (distance.Z * distance.Z));
-
- float sumRadius = Radius + other.Radius;
-
- return (length < sumRadius);
- }
-}
diff --git a/TRRandomizerCore/Resources/TR1/Locations/item_locations.json b/TRRandomizerCore/Resources/TR1/Locations/item_locations.json
deleted file mode 100644
index b007a8205..000000000
--- a/TRRandomizerCore/Resources/TR1/Locations/item_locations.json
+++ /dev/null
@@ -1,2731 +0,0 @@
-{
- "LEVEL2.PHD": [
- {
- "X": 76288,
- "Y": -1280,
- "Z": 25088,
- "Room": 13,
- "KeyItemGroupID": 11124
- },
- {
- "X": 75264,
- "Y": -1024,
- "Z": 18944,
- "Room": 13,
- "KeyItemGroupID": 11124
- },
- {
- "X": 67072,
- "Y": 0,
- "Z": 18944,
- "Room": 20,
- "KeyItemGroupID": 11124
- },
- {
- "X": 54784,
- "Y": 0,
- "Z": 25088,
- "Room": 34,
- "KeyItemGroupID": 11124
- },
- {
- "X": 59904,
- "Y": -1280,
- "Z": 25088,
- "Room": 1,
- "KeyItemGroupID": 11124
- },
- {
- "X": 80384,
- "Y": -1152,
- "Z": 41472,
- "Room": 11,
- "KeyItemGroupID": 11124
- },
- {
- "X": 69120,
- "Y": 5120,
- "Z": 42496,
- "Room": 22,
- "KeyItemGroupID": 11124
- },
- {
- "X": 32256,
- "Y": -1024,
- "Z": 26112,
- "Room": 36,
- "KeyItemGroupID": 11124
- },
- {
- "X": 31232,
- "Y": -7936,
- "Z": 36352,
- "Room": 67,
- "KeyItemGroupID": 11124
- },
- {
- "X": 28160,
- "Y": 256,
- "Z": 24064,
- "Room": 48,
- "KeyItemGroupID": 11124
- },
- {
- "X": 18944,
- "Y": -768,
- "Z": 31232,
- "Room": 71,
- "KeyItemGroupID": 11124
- },
- {
- "X": 16896,
- "Y": -3072,
- "Z": 20992,
- "Room": 79,
- "KeyItemGroupID": 11124
- },
- {
- "X": 11776,
- "Y": -2816,
- "Z": 24064,
- "Room": 76,
- "KeyItemGroupID": 11124
- },
- {
- "X": 15872,
- "Y": 1536,
- "Z": 33280,
- "Room": 86,
- "KeyItemGroupID": 11124
- },
- {
- "X": 12800,
- "Y": -1024,
- "Z": 33280,
- "Room": 73,
- "KeyItemGroupID": 11124
- },
- {
- "X": 44544,
- "Y": -384,
- "Z": 31232,
- "Room": 37,
- "KeyItemGroupID": 11124
- },
- {
- "X": 39424,
- "Y": -896,
- "Z": 23040,
- "Room": 36,
- "KeyItemGroupID": 11124
- },
- {
- "X": 80384,
- "Y": -1792,
- "Z": 15872,
- "Room": 13,
- "KeyItemGroupID": 11143
- },
- {
- "X": 58880,
- "Y": 0,
- "Z": 36352,
- "Room": 9,
- "KeyItemGroupID": 11143
- },
- {
- "X": 69120,
- "Y": -1024,
- "Z": 19968,
- "Room": 21,
- "KeyItemGroupID": 11143
- },
- {
- "X": 79360,
- "Y": -1280,
- "Z": 25088,
- "Room": 13,
- "KeyItemGroupID": 11143
- },
- {
- "X": 78336,
- "Y": -1536,
- "Z": 33280,
- "Room": 33,
- "KeyItemGroupID": 11143
- },
- {
- "X": 65024,
- "Y": 0,
- "Z": 44544,
- "Room": 6,
- "KeyItemGroupID": 11143
- },
- {
- "X": 83456,
- "Y": 2816,
- "Z": 25088,
- "Room": 26,
- "KeyItemGroupID": 11143
- },
- {
- "X": 60928,
- "Y": 0,
- "Z": 39424,
- "Room": 16,
- "KeyItemGroupID": 11143
- },
- {
- "X": 65024,
- "Y": -2048,
- "Z": 19968,
- "Room": 2,
- "KeyItemGroupID": 11143
- },
- {
- "X": 55808,
- "Y": 0,
- "Z": 43520,
- "Room": 5,
- "KeyItemGroupID": 11143
- }
- ],
- "LEVEL3A.PHD": [
- {
- "X": 39424,
- "Y": 4864,
- "Z": 70144,
- "Room": 24,
- "KeyItemGroupID": 12150
- },
- {
- "X": 37376,
- "Y": 4736,
- "Z": 54784,
- "Room": 29,
- "KeyItemGroupID": 12150
- },
- {
- "X": 39424,
- "Y": -768,
- "Z": 84480,
- "Room": 3,
- "KeyItemGroupID": 12150
- },
- {
- "X": 31232,
- "Y": -2560,
- "Z": 89600,
- "Room": 8,
- "KeyItemGroupID": 12150
- },
- {
- "X": 33280,
- "Y": -3072,
- "Z": 94720,
- "Room": 5,
- "KeyItemGroupID": 12150
- },
- {
- "X": 30208,
- "Y": 6912,
- "Z": 38400,
- "Room": 28,
- "KeyItemGroupID": 12150
- },
- {
- "X": 34304,
- "Y": 2304,
- "Z": 32256,
- "Room": 51,
- "KeyItemGroupID": 12150
- },
- {
- "X": 44544,
- "Y": -512,
- "Z": 20992,
- "Room": 57,
- "KeyItemGroupID": 12150
- },
- {
- "X": 29184,
- "Y": 3328,
- "Z": 10752,
- "Room": 41,
- "KeyItemGroupID": 12150
- },
- {
- "X": 28160,
- "Y": 0,
- "Z": 3584,
- "Room": 40,
- "KeyItemGroupID": 12150
- },
- {
- "X": 52736,
- "Y": 3584,
- "Z": 5632,
- "Room": 61,
- "KeyItemGroupID": 12150
- },
- {
- "X": 33280,
- "Y": 768,
- "Z": 70144,
- "Room": 24,
- "KeyItemGroupID": 12158
- },
- {
- "X": 33280,
- "Y": -3072,
- "Z": 91648,
- "Room": 5,
- "KeyItemGroupID": 12158
- },
- {
- "X": 40448,
- "Y": 4608,
- "Z": 69120,
- "Room": 24,
- "KeyItemGroupID": 12158
- },
- {
- "X": 49664,
- "Y": 3328,
- "Z": 34304,
- "Room": 51,
- "KeyItemGroupID": 12158
- },
- {
- "X": 53760,
- "Y": 1280,
- "Z": 22016,
- "Room": 43,
- "KeyItemGroupID": 12158
- },
- {
- "X": 67072,
- "Y": -2560,
- "Z": 11776,
- "Room": 66,
- "KeyItemGroupID": 12158
- },
- {
- "X": 76288,
- "Y": 2304,
- "Z": 14848,
- "Room": 44,
- "KeyItemGroupID": 12158
- },
- {
- "X": 68096,
- "Y": 1792,
- "Z": 14848,
- "Room": 63,
- "KeyItemGroupID": 12158
- },
- {
- "X": 66048,
- "Y": 2816,
- "Z": 8704,
- "Room": 62,
- "KeyItemGroupID": 12158
- },
- {
- "X": 57856,
- "Y": 3584,
- "Z": 17920,
- "Room": 33,
- "KeyItemGroupID": 12158
- },
- {
- "X": 49664,
- "Y": 2048,
- "Z": 2560,
- "Room": 59,
- "KeyItemGroupID": 12168
- },
- {
- "X": 35328,
- "Y": 1792,
- "Z": 3584,
- "Room": 31,
- "KeyItemGroupID": 12168
- },
- {
- "X": 40448,
- "Y": -512,
- "Z": 1536,
- "Room": 89,
- "KeyItemGroupID": 12168
- },
- {
- "X": 48640,
- "Y": 3584,
- "Z": 24064,
- "Room": 57,
- "KeyItemGroupID": 12168
- },
- {
- "X": 39424,
- "Y": 1792,
- "Z": 43520,
- "Room": 30,
- "KeyItemGroupID": 12168
- },
- {
- "X": 43520,
- "Y": -1024,
- "Z": 86528,
- "Room": 11,
- "KeyItemGroupID": 12168
- },
- {
- "X": 33280,
- "Y": -256,
- "Z": 76288,
- "Room": 1,
- "KeyItemGroupID": 12168
- },
- {
- "X": 32256,
- "Y": 6528,
- "Z": 43520,
- "Room": 16,
- "KeyItemGroupID": 12168
- },
- {
- "X": 27136,
- "Y": 2560,
- "Z": 18944,
- "Room": 37,
- "KeyItemGroupID": 12168
- },
- {
- "X": 52736,
- "Y": 3584,
- "Z": 12800,
- "Room": 33,
- "KeyItemGroupID": 12168
- }
- ],
- "LEVEL4.PHD": [
- {
- "X": 33280,
- "Y": 11008,
- "Z": 41472,
- "Room": 41,
- "KeyItemGroupID": 14177
- },
- {
- "X": 41472,
- "Y": 11776,
- "Z": 45568,
- "Room": 18,
- "KeyItemGroupID": 14177
- },
- {
- "X": 20992,
- "Y": 19968,
- "Z": 47616,
- "Room": 38,
- "KeyItemGroupID": 14177
- },
- {
- "X": 36352,
- "Y": 20224,
- "Z": 36352,
- "Room": 3,
- "KeyItemGroupID": 14177
- },
- {
- "X": 49664,
- "Y": 16128,
- "Z": 43520,
- "Room": 47,
- "KeyItemGroupID": 14177
- },
- {
- "X": 41472,
- "Y": 11264,
- "Z": 52736,
- "Room": 35,
- "KeyItemGroupID": 14177
- },
- {
- "X": 40448,
- "Y": 23552,
- "Z": 41472,
- "Room": 42,
- "KeyItemGroupID": 14177
- },
- {
- "X": 54784,
- "Y": 19456,
- "Z": 45568,
- "Room": 25,
- "KeyItemGroupID": 14177
- },
- {
- "X": 61952,
- "Y": 14848,
- "Z": 43520,
- "Room": 16,
- "KeyItemGroupID": 14177
- },
- {
- "X": 18944,
- "Y": 17152,
- "Z": 44544,
- "Room": 39,
- "KeyItemGroupID": 14177
- },
- {
- "X": 54784,
- "Y": 19456,
- "Z": 37376,
- "Room": 25,
- "KeyItemGroupID": 14176
- },
- {
- "X": 43520,
- "Y": 17664,
- "Z": 36352,
- "Room": 23,
- "KeyItemGroupID": 14176
- },
- {
- "X": 33280,
- "Y": 19968,
- "Z": 45568,
- "Room": 19,
- "KeyItemGroupID": 14176
- },
- {
- "X": 35328,
- "Y": 11520,
- "Z": 43520,
- "Room": 18,
- "KeyItemGroupID": 14176
- },
- {
- "X": 35328,
- "Y": 13568,
- "Z": 42496,
- "Room": 20,
- "KeyItemGroupID": 14176
- },
- {
- "X": 36352,
- "Y": 28928,
- "Z": 52736,
- "Room": 53,
- "KeyItemGroupID": 14176
- },
- {
- "X": 36352,
- "Y": 11520,
- "Z": 49664,
- "Room": 4,
- "KeyItemGroupID": 14176
- },
- {
- "X": 34304,
- "Y": 23296,
- "Z": 36352,
- "Room": 42,
- "KeyItemGroupID": 14176
- },
- {
- "X": 39424,
- "Y": 18176,
- "Z": 42496,
- "Room": 23,
- "KeyItemGroupID": 14176
- },
- {
- "X": 35328,
- "Y": 16384,
- "Z": 43520,
- "Room": 21,
- "KeyItemGroupID": 14176
- },
- {
- "X": 31232,
- "Y": 23296,
- "Z": 45568,
- "Room": 42,
- "KeyItemGroupID": 14169
- },
- {
- "X": 40448,
- "Y": 20224,
- "Z": 41472,
- "Room": 3,
- "KeyItemGroupID": 14169
- },
- {
- "X": 40448,
- "Y": 16384,
- "Z": 45568,
- "Room": 21,
- "KeyItemGroupID": 14169
- },
- {
- "X": 43520,
- "Y": 13824,
- "Z": 40448,
- "Room": 20,
- "KeyItemGroupID": 14169
- },
- {
- "X": 50688,
- "Y": 14080,
- "Z": 41472,
- "Room": 47,
- "KeyItemGroupID": 14169
- },
- {
- "X": 35328,
- "Y": 12544,
- "Z": 36352,
- "Room": 20,
- "KeyItemGroupID": 14169
- },
- {
- "X": 38400,
- "Y": 16128,
- "Z": 36352,
- "Room": 21,
- "KeyItemGroupID": 14169
- },
- {
- "X": 35328,
- "Y": 16384,
- "Z": 41472,
- "Room": 21,
- "KeyItemGroupID": 14169
- },
- {
- "X": 35328,
- "Y": 18432,
- "Z": 45568,
- "Room": 23,
- "KeyItemGroupID": 14169
- },
- {
- "X": 43520,
- "Y": 22016,
- "Z": 36352,
- "Room": 42,
- "KeyItemGroupID": 14169
- },
- {
- "X": 36352,
- "Y": 11264,
- "Z": 52736,
- "Room": 35,
- "KeyItemGroupID": 14162
- },
- {
- "X": 48640,
- "Y": 15616,
- "Z": 41472,
- "Room": 48,
- "KeyItemGroupID": 14162
- },
- {
- "X": 35328,
- "Y": 18432,
- "Z": 37376,
- "Room": 23,
- "KeyItemGroupID": 14162
- },
- {
- "X": 35328,
- "Y": 20224,
- "Z": 43520,
- "Room": 3,
- "KeyItemGroupID": 14162
- },
- {
- "X": 31232,
- "Y": 23296,
- "Z": 36352,
- "Room": 42,
- "KeyItemGroupID": 14162
- },
- {
- "X": 39424,
- "Y": 16128,
- "Z": 40448,
- "Room": 21,
- "KeyItemGroupID": 14162
- },
- {
- "X": 60928,
- "Y": 17152,
- "Z": 37376,
- "Room": 43,
- "KeyItemGroupID": 14162
- },
- {
- "X": 40448,
- "Y": 18176,
- "Z": 39424,
- "Room": 23,
- "KeyItemGroupID": 14162
- },
- {
- "X": 33280,
- "Y": 12032,
- "Z": 37376,
- "Room": 41,
- "KeyItemGroupID": 14162
- },
- {
- "X": 39424,
- "Y": 11520,
- "Z": 36352,
- "Room": 18,
- "KeyItemGroupID": 14162
- }
- ],
- "LEVEL5.PHD": [
- {
- "X": 55808,
- "Y": -4608,
- "Z": 45568,
- "Room": 76,
- "KeyItemGroupID": 15183
- },
- {
- "X": 58880,
- "Y": -8192,
- "Z": 74240,
- "Room": 44,
- "KeyItemGroupID": 15183
- },
- {
- "X": 44544,
- "Y": -4096,
- "Z": 60928,
- "Room": 19,
- "KeyItemGroupID": 15183
- },
- {
- "X": 22016,
- "Y": -2304,
- "Z": 48640,
- "Room": 57,
- "KeyItemGroupID": 15183
- },
- {
- "X": 31232,
- "Y": 1280,
- "Z": 50688,
- "Room": 22
- },
- {
- "X": 33280,
- "Y": 1280,
- "Z": 50688,
- "Room": 36
- },
- {
- "X": 58880,
- "Y": -7680,
- "Z": 23040,
- "Room": 49,
- "KeyItemGroupID": 15183
- },
- {
- "X": 53760,
- "Y": -6144,
- "Z": 30208,
- "Room": 77,
- "KeyItemGroupID": 15183
- },
- {
- "X": 43520,
- "Y": 1792,
- "Z": 60928,
- "Room": 29,
- "KeyItemGroupID": 15183
- },
- {
- "X": 44544,
- "Y": -5120,
- "Z": 31232,
- "Room": 77,
- "KeyItemGroupID": 15183
- },
- {
- "X": 48640,
- "Y": -6144,
- "Z": 66048,
- "Room": 70,
- "KeyItemGroupID": 15183
- }
- ],
- "LEVEL6.PHD": [
- {
- "X": 87552,
- "Y": -4096,
- "Z": 40448,
- "Room": 78,
- "KeyItemGroupID": 16133
- },
- {
- "X": 78336,
- "Y": -3328,
- "Z": 34304,
- "Room": 6,
- "KeyItemGroupID": 16133
- },
- {
- "X": 73216,
- "Y": -2304,
- "Z": 41472,
- "Room": 5,
- "KeyItemGroupID": 16133
- },
- {
- "X": 66048,
- "Y": -2816,
- "Z": 41472,
- "Room": 3,
- "KeyItemGroupID": 16133
- },
- {
- "X": 80384,
- "Y": -4864,
- "Z": 32256,
- "Room": 8,
- "KeyItemGroupID": 16133
- },
- {
- "X": 62976,
- "Y": -4352,
- "Z": 34304,
- "Room": 16,
- "KeyItemGroupID": 16133
- },
- {
- "X": 54784,
- "Y": -4608,
- "Z": 46592,
- "Room": 56,
- "KeyItemGroupID": 16133
- },
- {
- "X": 55808,
- "Y": -15104,
- "Z": 62976,
- "Room": 60,
- "KeyItemGroupID": 16133
- },
- {
- "X": 49664,
- "Y": -6400,
- "Z": 61952,
- "Room": 45,
- "KeyItemGroupID": 16133
- },
- {
- "X": 28160,
- "Y": -6400,
- "Z": 70144,
- "Room": 31,
- "KeyItemGroupID": 16133
- },
- {
- "X": 32256,
- "Y": -9728,
- "Z": 62976,
- "Room": 46,
- "KeyItemGroupID": 16133
- },
- {
- "X": 54784,
- "Y": -8192,
- "Z": 61952,
- "Room": 58,
- "KeyItemGroupID": 16133
- },
- {
- "X": 29184,
- "Y": -8448,
- "Z": 47616,
- "Room": 54,
- "KeyItemGroupID": 16133
- },
- {
- "X": 24064,
- "Y": -4608,
- "Z": 20992,
- "Room": 20,
- "KeyItemGroupID": 16133
- },
- {
- "X": 32256,
- "Y": -6400,
- "Z": 61952,
- "Room": 31,
- "KeyItemGroupID": 16133
- },
- {
- "X": 24064,
- "Y": -4352,
- "Z": 64000,
- "Room": 23,
- "KeyItemGroupID": 16149
- },
- {
- "X": 22016,
- "Y": -256,
- "Z": 53760,
- "Room": 24,
- "KeyItemGroupID": 16149
- },
- {
- "X": 19968,
- "Y": -4352,
- "Z": 49664,
- "Room": 34,
- "KeyItemGroupID": 16149
- },
- {
- "X": 17920,
- "Y": -4608,
- "Z": 42496,
- "Room": 33,
- "KeyItemGroupID": 16149
- },
- {
- "X": 23040,
- "Y": -7424,
- "Z": 30208,
- "Room": 40,
- "KeyItemGroupID": 16149
- },
- {
- "X": 43520,
- "Y": -2048,
- "Z": 50688,
- "Room": 43,
- "KeyItemGroupID": 16149
- },
- {
- "X": 36352,
- "Y": -2048,
- "Z": 65024,
- "Room": 44,
- "KeyItemGroupID": 16149
- },
- {
- "X": 34304,
- "Y": -6400,
- "Z": 64000,
- "Room": 45,
- "KeyItemGroupID": 16149
- },
- {
- "X": 22016,
- "Y": -4352,
- "Z": 31232,
- "Room": 39,
- "KeyItemGroupID": 16149
- },
- {
- "X": 41472,
- "Y": -4352,
- "Z": 47616,
- "Room": 62,
- "KeyItemGroupID": 16149
- },
- {
- "X": 38400,
- "Y": -2560,
- "Z": 49664,
- "Room": 64,
- "KeyItemGroupID": 16149
- },
- {
- "X": 35328,
- "Y": -2560,
- "Z": 48640,
- "Room": 64,
- "KeyItemGroupID": 16149
- },
- {
- "X": 16896,
- "Y": -7424,
- "Z": 38400,
- "Room": 36,
- "KeyItemGroupID": 16149
- },
- {
- "X": 60928,
- "Y": -768,
- "Z": 49664,
- "Room": 69,
- "KeyItemGroupID": 16149
- },
- {
- "X": 78336,
- "Y": 0,
- "Z": 51712,
- "Room": 73,
- "KeyItemGroupID": 16149
- },
- {
- "X": 41472,
- "Y": -6400,
- "Z": 35328,
- "Room": 41,
- "KeyItemGroupID": 16154
- },
- {
- "X": 41472,
- "Y": -2816,
- "Z": 35328,
- "Room": 13,
- "KeyItemGroupID": 16154
- },
- {
- "X": 64000,
- "Y": -2304,
- "Z": 35328,
- "Room": 3,
- "KeyItemGroupID": 16154
- },
- {
- "X": 34304,
- "Y": -4352,
- "Z": 35328,
- "Room": 27,
- "KeyItemGroupID": 16154
- },
- {
- "X": 25088,
- "Y": -7424,
- "Z": 33280,
- "Room": 40,
- "KeyItemGroupID": 16154
- },
- {
- "X": 29184,
- "Y": -7424,
- "Z": 49664,
- "Room": 38,
- "KeyItemGroupID": 16154
- },
- {
- "X": 48640,
- "Y": 0,
- "Z": 41472,
- "Room": 10,
- "KeyItemGroupID": 16154
- },
- {
- "X": 32256,
- "Y": -11008,
- "Z": 71168,
- "Room": 49,
- "KeyItemGroupID": 16154
- },
- {
- "X": 40448,
- "Y": -4608,
- "Z": 43520,
- "Room": 13,
- "KeyItemGroupID": 16154
- },
- {
- "X": 38400,
- "Y": -4352,
- "Z": 44544,
- "Room": 25,
- "KeyItemGroupID": 16154
- },
- {
- "X": 50688,
- "Y": -6400,
- "Z": 57856,
- "Room": 45,
- "KeyItemGroupID": 16154
- },
- {
- "X": 48640,
- "Y": -2048,
- "Z": 61952,
- "Room": 44,
- "KeyItemGroupID": 16154
- },
- {
- "X": 50688,
- "Y": -2048,
- "Z": 65024,
- "Room": 44,
- "KeyItemGroupID": 16154
- },
- {
- "X": 33280,
- "Y": -4352,
- "Z": 39424,
- "Room": 27,
- "KeyItemGroupID": 16154
- },
- {
- "X": 23040,
- "Y": -6400,
- "Z": 47616,
- "Room": 29,
- "EntityIndex": 16154
- }
- ],
- "LEVEL7A.PHD": [
- {
- "X": 27136,
- "Y": -3584,
- "Z": 67072,
- "Room": 18,
- "KeyItemGroupID": 17151
- },
- {
- "X": 24064,
- "Y": -6656,
- "Z": 54784,
- "Room": 9,
- "KeyItemGroupID": 17151
- },
- {
- "X": 23040,
- "Y": -10240,
- "Z": 54784,
- "Room": 3,
- "KeyItemGroupID": 17151
- },
- {
- "X": 29184,
- "Y": -8448,
- "Z": 65024,
- "Room": 22,
- "KeyItemGroupID": 17151
- },
- {
- "X": 33280,
- "Y": -3840,
- "Z": 48640,
- "Room": 94,
- "KeyItemGroupID": 17151
- },
- {
- "X": 42496,
- "Y": -5376,
- "Z": 49664,
- "Room": 84,
- "KeyItemGroupID": 17151
- },
- {
- "X": 39424,
- "Y": 0,
- "Z": 64000,
- "Room": 110,
- "KeyItemGroupID": 17151
- },
- {
- "X": 35328,
- "Y": -1024,
- "Z": 59904,
- "Room": 111,
- "KeyItemGroupID": 17151
- },
- {
- "X": 33280,
- "Y": 0,
- "Z": 53760,
- "Room": 111,
- "KeyItemGroupID": 17151
- },
- {
- "X": 45568,
- "Y": -3328,
- "Z": 48640,
- "Room": 95,
- "KeyItemGroupID": 17151
- },
- {
- "X": 64000,
- "Y": -4864,
- "Z": 54784,
- "Room": 30,
- "KeyItemGroupID": 17170
- },
- {
- "X": 62976,
- "Y": -3584,
- "Z": 54784,
- "Room": 31,
- "KeyItemGroupID": 17170
- },
- {
- "X": 59904,
- "Y": -1280,
- "Z": 59904,
- "Room": 34,
- "KeyItemGroupID": 17170
- },
- {
- "X": 58880,
- "Y": -3584,
- "Z": 53760,
- "Room": 31,
- "KeyItemGroupID": 17170
- },
- {
- "X": 56832,
- "Y": -4608,
- "Z": 47616,
- "Room": 36,
- "KeyItemGroupID": 17170
- },
- {
- "X": 48640,
- "Y": -4096,
- "Z": 39424,
- "Room": 39,
- "KeyItemGroupID": 17170
- },
- {
- "X": 51712,
- "Y": -5376,
- "Z": 39424,
- "Room": 38,
- "KeyItemGroupID": 17170
- },
- {
- "X": 48640,
- "Y": -1024,
- "Z": 43520,
- "Room": 40,
- "KeyItemGroupID": 17170
- },
- {
- "X": 56832,
- "Y": -1024,
- "Z": 43520,
- "Room": 41,
- "KeyItemGroupID": 17170
- },
- {
- "X": 62976,
- "Y": -7936,
- "Z": 56832,
- "Room": 27,
- "KeyItemGroupID": 17170
- },
- {
- "X": 47616,
- "Y": -256,
- "Z": 43520,
- "Room": 46,
- "KeyItemGroupID": 17179
- },
- {
- "X": 45568,
- "Y": 1280,
- "Z": 49664,
- "Room": 50,
- "KeyItemGroupID": 17179
- },
- {
- "X": 40448,
- "Y": -4352,
- "Z": 52736,
- "Room": 95,
- "KeyItemGroupID": 17179
- },
- {
- "X": 38400,
- "Y": -5376,
- "Z": 49664,
- "Room": 8,
- "KeyItemGroupID": 17179
- },
- {
- "X": 50688,
- "Y": 0,
- "Z": 48640,
- "Room": 103,
- "KeyItemGroupID": 17179
- },
- {
- "X": 50688,
- "Y": 0,
- "Z": 66048,
- "Room": 106,
- "KeyItemGroupID": 17179
- },
- {
- "X": 34304,
- "Y": -5632,
- "Z": 54784,
- "Room": 92,
- "KeyItemGroupID": 17179
- },
- {
- "X": 28160,
- "Y": -8960,
- "Z": 57856,
- "Room": 10,
- "KeyItemGroupID": 17179
- },
- {
- "X": 46592,
- "Y": -3584,
- "Z": 44544,
- "Room": 48,
- "KeyItemGroupID": 17179
- },
- {
- "X": 43520,
- "Y": -3584,
- "Z": 42496,
- "Room": 48,
- "KeyItemGroupID": 17179
- },
- {
- "X": 51712,
- "Y": 1024,
- "Z": 56832,
- "Room": 55,
- "KeyItemGroupID": 17185
- },
- {
- "X": 50688,
- "Y": 0,
- "Z": 55808,
- "Room": 105,
- "KeyItemGroupID": 17185
- },
- {
- "X": 42496,
- "Y": -6656,
- "Z": 43520,
- "Room": 14,
- "KeyItemGroupID": 17185
- },
- {
- "X": 38400,
- "Y": -8448,
- "Z": 36352,
- "Room": 15,
- "KeyItemGroupID": 17185
- },
- {
- "X": 38400,
- "Y": -6656,
- "Z": 43520,
- "Room": 14,
- "KeyItemGroupID": 17185
- },
- {
- "X": 33280,
- "Y": -5632,
- "Z": 66048,
- "Room": 90,
- "KeyItemGroupID": 17185
- },
- {
- "X": 35328,
- "Y": -3328,
- "Z": 55808,
- "Room": 102,
- "KeyItemGroupID": 17185
- },
- {
- "X": 40448,
- "Y": 0,
- "Z": 50688,
- "Room": 104,
- "KeyItemGroupID": 17185
- },
- {
- "X": 47616,
- "Y": -256,
- "Z": 41472,
- "Room": 46,
- "KeyItemGroupID": 17185
- },
- {
- "X": 45568,
- "Y": 3072,
- "Z": 61952,
- "Room": 0,
- "KeyItemGroupID": 17185
- },
- {
- "X": 34304,
- "Y": -5632,
- "Z": 56832,
- "Room": 92,
- "KeyItemGroupID": 17222
- },
- {
- "X": 33280,
- "Y": -3328,
- "Z": 55808,
- "Room": 102,
- "KeyItemGroupID": 17222
- },
- {
- "X": 30208,
- "Y": -5632,
- "Z": 58880,
- "Room": 23,
- "KeyItemGroupID": 17222
- },
- {
- "X": 23040,
- "Y": -8960,
- "Z": 60928,
- "Room": 10,
- "KeyItemGroupID": 17222
- },
- {
- "X": 46592,
- "Y": -3328,
- "Z": 70144,
- "Room": 7,
- "KeyItemGroupID": 17222
- },
- {
- "X": 49664,
- "Y": 0,
- "Z": 54784,
- "Room": 105,
- "KeyItemGroupID": 17222
- },
- {
- "X": 40448,
- "Y": 3072,
- "Z": 54784,
- "Room": 0,
- "KeyItemGroupID": 17222
- },
- {
- "X": 42496,
- "Y": 1280,
- "Z": 51712,
- "Room": 51,
- "KeyItemGroupID": 17222
- },
- {
- "X": 50688,
- "Y": -3328,
- "Z": 55808,
- "Room": 97,
- "KeyItemGroupID": 17222
- },
- {
- "X": 23040,
- "Y": -7168,
- "Z": 68096,
- "Room": 20,
- "KeyItemGroupID": 17222
- }
- ],
- "LEVEL7B.PHD": [
- {
- "X": 54784,
- "Y": -6400,
- "Z": 73216,
- "Room": 66,
- "KeyItemGroupID": 18144
- },
- {
- "X": 53760,
- "Y": -3328,
- "Z": 70144,
- "Room": 72,
- "KeyItemGroupID": 18144
- },
- {
- "X": 45568,
- "Y": 1536,
- "Z": 79360,
- "Room": 3,
- "KeyItemGroupID": 18144
- },
- {
- "X": 41472,
- "Y": -256,
- "Z": 76288,
- "Room": 35,
- "KeyItemGroupID": 18144
- },
- {
- "X": 35328,
- "Y": -1792,
- "Z": 75264,
- "Room": 44,
- "KeyItemGroupID": 18144
- },
- {
- "X": 39424,
- "Y": -5376,
- "Z": 81408,
- "Room": 38,
- "KeyItemGroupID": 18144
- },
- {
- "X": 40448,
- "Y": -256,
- "Z": 80384,
- "Room": 33,
- "KeyItemGroupID": 18144
- },
- {
- "X": 52736,
- "Y": -1024,
- "Z": 68096,
- "Room": 76,
- "KeyItemGroupID": 18144
- },
- {
- "X": 49664,
- "Y": -6400,
- "Z": 73216,
- "Room": 66,
- "KeyItemGroupID": 18144
- },
- {
- "X": 44544,
- "Y": -5376,
- "Z": 78336,
- "Room": 14,
- "KeyItemGroupID": 18144
- },
- {
- "X": 43520,
- "Y": -4480,
- "Z": 58880,
- "Room": 78,
- "KeyItemGroupID": 18209
- },
- {
- "X": 33280,
- "Y": -3840,
- "Z": 56832,
- "Room": 74,
- "KeyItemGroupID": 18209
- },
- {
- "X": 52736,
- "Y": -3584,
- "Z": 67072,
- "Room": 75,
- "KeyItemGroupID": 18209
- },
- {
- "X": 38400,
- "Y": -4096,
- "Z": 71168,
- "Room": 82,
- "KeyItemGroupID": 18209
- },
- {
- "X": 32256,
- "Y": -4096,
- "Z": 71168,
- "Room": 81,
- "KeyItemGroupID": 18209
- },
- {
- "X": 40448,
- "Y": -1024,
- "Z": 68096,
- "Room": 76,
- "KeyItemGroupID": 18209
- },
- {
- "X": 33280,
- "Y": -4480,
- "Z": 57856,
- "Room": 78,
- "KeyItemGroupID": 18209
- },
- {
- "X": 54784,
- "Y": -3840,
- "Z": 75264,
- "Room": 70,
- "KeyItemGroupID": 18209
- },
- {
- "X": 51712,
- "Y": -7936,
- "Z": 78336,
- "Room": 15,
- "KeyItemGroupID": 18209
- },
- {
- "X": 32256,
- "Y": -4096,
- "Z": 68096,
- "Room": 77,
- "KeyItemGroupID": 18209
- },
- {
- "X": 32256,
- "Y": -3840,
- "Z": 58880,
- "Room": 74,
- "KeyItemGroupID": 18210
- },
- {
- "X": 36352,
- "Y": -4096,
- "Z": 72192,
- "Room": 82,
- "KeyItemGroupID": 18210
- },
- {
- "X": 34304,
- "Y": -4096,
- "Z": 72192,
- "Room": 81,
- "KeyItemGroupID": 18210
- },
- {
- "X": 47616,
- "Y": -1024,
- "Z": 68096,
- "Room": 76,
- "KeyItemGroupID": 18210
- },
- {
- "X": 52736,
- "Y": -3584,
- "Z": 69120,
- "Room": 75,
- "KeyItemGroupID": 18210
- },
- {
- "X": 51712,
- "Y": -3328,
- "Z": 70144,
- "Room": 72,
- "KeyItemGroupID": 18210
- },
- {
- "X": 52736,
- "Y": -7936,
- "Z": 80384,
- "Room": 15,
- "KeyItemGroupID": 18210
- },
- {
- "X": 27136,
- "Y": 3840,
- "Z": 81408,
- "Room": 90,
- "KeyItemGroupID": 18239
- },
- {
- "X": 27136,
- "Y": 3840,
- "Z": 75264,
- "Room": 90,
- "KeyItemGroupID": 18239
- },
- {
- "X": 36352,
- "Y": 3840,
- "Z": 82432,
- "Room": 110,
- "KeyItemGroupID": 18239
- },
- {
- "X": 35328,
- "Y": 3584,
- "Z": 91648,
- "Room": 110,
- "KeyItemGroupID": 18239
- },
- {
- "X": 19968,
- "Y": 3840,
- "Z": 89600,
- "Room": 97,
- "KeyItemGroupID": 18239
- },
- {
- "X": 31232,
- "Y": 5632,
- "Z": 77312,
- "Room": 108,
- "KeyItemGroupID": 18239
- },
- {
- "X": 22016,
- "Y": 3840,
- "Z": 81408,
- "Room": 90,
- "KeyItemGroupID": 18239
- }
- ],
- "LEVEL8A.PHD": [
- {
- "X": 33280,
- "Y": -1024,
- "Z": 26112,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 37376,
- "Y": -512,
- "Z": 26112,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 36352,
- "Y": 0,
- "Z": 30208,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 31232,
- "Y": -512,
- "Z": 34304,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 28160,
- "Y": -512,
- "Z": 37376,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 37376,
- "Y": 0,
- "Z": 36352,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 32256,
- "Y": -3072,
- "Z": 37376,
- "Room": 13,
- "KeyItemGroupID": 19143
- },
- {
- "X": 24064,
- "Y": -256,
- "Z": 33280,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 34304,
- "Y": 1536,
- "Z": 29184,
- "Room": 4,
- "KeyItemGroupID": 19143
- },
- {
- "X": 24064,
- "Y": -512,
- "Z": 35328,
- "Room": 12,
- "KeyItemGroupID": 19143
- },
- {
- "X": 34304,
- "Y": -5376,
- "Z": 45568,
- "Room": 51,
- "KeyItemGroupID": 19162
- },
- {
- "X": 45568,
- "Y": 3840,
- "Z": 37376,
- "Room": 34,
- "KeyItemGroupID": 19162
- },
- {
- "X": 57856,
- "Y": 7424,
- "Z": 31232,
- "Room": 55,
- "KeyItemGroupID": 19162
- },
- {
- "X": 55808,
- "Y": 1024,
- "Z": 25088,
- "Room": 52,
- "KeyItemGroupID": 19162
- },
- {
- "X": 39424,
- "Y": 0,
- "Z": 46592,
- "Room": 49,
- "KeyItemGroupID": 19162
- }
- ],
- "LEVEL8B.PHD": [
- {
- "X": 57856,
- "Y": 3840,
- "Z": 74240,
- "Room": 70,
- "KeyItemGroupID": 20199
- },
- {
- "X": 61952,
- "Y": -256,
- "Z": 69120,
- "Room": 72,
- "KeyItemGroupID": 20199
- },
- {
- "X": 69120,
- "Y": -256,
- "Z": 56832,
- "Room": 68,
- "KeyItemGroupID": 20199
- },
- {
- "X": 68096,
- "Y": 0,
- "Z": 55808,
- "Room": 68,
- "KeyItemGroupID": 20199
- },
- {
- "X": 53760,
- "Y": 1536,
- "Z": 41472,
- "Room": 29,
- "KeyItemGroupID": 20199
- },
- {
- "X": 59904,
- "Y": 4352,
- "Z": 62976,
- "Room": 74,
- "KeyItemGroupID": 20199
- },
- {
- "X": 60928,
- "Y": -2048,
- "Z": 60928,
- "Room": 76,
- "KeyItemGroupID": 20199
- },
- {
- "X": 58880,
- "Y": -3328,
- "Z": 56832,
- "Room": 57,
- "KeyItemGroupID": 20126
- },
- {
- "X": 53760,
- "Y": -3072,
- "Z": 55808,
- "Room": 16,
- "KeyItemGroupID": 20126
- },
- {
- "X": 56832,
- "Y": 0,
- "Z": 59904,
- "Room": 39,
- "KeyItemGroupID": 20126
- },
- {
- "X": 52736,
- "Y": 2560,
- "Z": 59904,
- "Room": 56,
- "KeyItemGroupID": 20126
- },
- {
- "X": 47616,
- "Y": 3328,
- "Z": 67072,
- "Room": 53,
- "KeyItemGroupID": 20126
- },
- {
- "X": 45568,
- "Y": 3072,
- "Z": 62976,
- "Room": 51,
- "KeyItemGroupID": 20126
- },
- {
- "X": 43520,
- "Y": -1024,
- "Z": 60928,
- "Room": 35,
- "KeyItemGroupID": 20126
- },
- {
- "X": 41472,
- "Y": -3072,
- "Z": 59904,
- "Room": 31,
- "KeyItemGroupID": 20126
- },
- {
- "X": 37376,
- "Y": -10240,
- "Z": 65024,
- "Room": 43,
- "KeyItemGroupID": 20126
- },
- {
- "X": 45568,
- "Y": -8192,
- "Z": 60928,
- "Room": 42,
- "KeyItemGroupID": 20126
- },
- {
- "X": 44544,
- "Y": -11264,
- "Z": 55808,
- "Room": 41,
- "KeyItemGroupID": 20126
- },
- {
- "X": 50688,
- "Y": -3328,
- "Z": 42496,
- "Room": 81,
- "KeyItemGroupID": 20126
- },
- {
- "X": 53760,
- "Y": -2816,
- "Z": 60928,
- "Room": 16,
- "KeyItemGroupID": 20126
- },
- {
- "X": 50688,
- "Y": -5888,
- "Z": 69120,
- "Room": 47,
- "KeyItemGroupID": 20126
- },
- {
- "X": 37376,
- "Y": -10496,
- "Z": 58880,
- "Room": 43,
- "KeyItemGroupID": 20128
- },
- {
- "X": 45568,
- "Y": -3328,
- "Z": 55808,
- "Room": 16,
- "KeyItemGroupID": 20128
- },
- {
- "X": 48640,
- "Y": 256,
- "Z": 57856,
- "Room": 36,
- "KeyItemGroupID": 20128
- },
- {
- "X": 52736,
- "Y": -2816,
- "Z": 60928,
- "Room": 16,
- "KeyItemGroupID": 20128
- },
- {
- "X": 52736,
- "Y": 1024,
- "Z": 62976,
- "Room": 52,
- "KeyItemGroupID": 20128
- },
- {
- "X": 69120,
- "Y": 0,
- "Z": 61952,
- "Room": 75,
- "KeyItemGroupID": 20128
- },
- {
- "X": 71168,
- "Y": -768,
- "Z": 55808,
- "Room": 68,
- "KeyItemGroupID": 20128
- },
- {
- "X": 59904,
- "Y": 0,
- "Z": 55808,
- "Room": 39,
- "KeyItemGroupID": 20128
- },
- {
- "X": 50688,
- "Y": 2560,
- "Z": 54784,
- "Room": 56,
- "KeyItemGroupID": 20128
- },
- {
- "X": 64000,
- "Y": 0,
- "Z": 59904,
- "Room": 39,
- "KeyItemGroupID": 20129
- },
- {
- "X": 65024,
- "Y": -3328,
- "Z": 56832,
- "Room": 57,
- "KeyItemGroupID": 20129
- },
- {
- "X": 64000,
- "Y": -2816,
- "Z": 50688,
- "Room": 60,
- "KeyItemGroupID": 20129
- },
- {
- "X": 49664,
- "Y": -3072,
- "Z": 59904,
- "Room": 16,
- "KeyItemGroupID": 20129
- },
- {
- "X": 42496,
- "Y": -11008,
- "Z": 56832,
- "Room": 41,
- "KeyItemGroupID": 20129
- },
- {
- "X": 41472,
- "Y": -9472,
- "Z": 64000,
- "Room": 43,
- "KeyItemGroupID": 20129
- },
- {
- "X": 32256,
- "Y": 256,
- "Z": 52736,
- "Room": 48,
- "KeyItemGroupID": 20129
- },
- {
- "X": 41472,
- "Y": -3072,
- "Z": 53760,
- "Room": 31,
- "KeyItemGroupID": 20129
- },
- {
- "X": 53760,
- "Y": -4608,
- "Z": 47616,
- "Room": 45,
- "KeyItemGroupID": 20129
- },
- {
- "X": 68096,
- "Y": 4352,
- "Z": 62976,
- "Room": 74,
- "KeyItemGroupID": 20127
- },
- {
- "X": 56832,
- "Y": 0,
- "Z": 54784,
- "Room": 39,
- "KeyItemGroupID": 20127
- },
- {
- "X": 45568,
- "Y": -5632,
- "Z": 48640,
- "Room": 79,
- "KeyItemGroupID": 20127
- },
- {
- "X": 45568,
- "Y": 2560,
- "Z": 49664,
- "Room": 83,
- "KeyItemGroupID": 20127
- },
- {
- "X": 54784,
- "Y": -5888,
- "Z": 44544,
- "Room": 80,
- "KeyItemGroupID": 20127
- },
- {
- "X": 46592,
- "Y": -2816,
- "Z": 52736,
- "Room": 16,
- "KeyItemGroupID": 20127
- },
- {
- "X": 37376,
- "Y": -10752,
- "Z": 55808,
- "Room": 41,
- "KeyItemGroupID": 20127
- },
- {
- "X": 44544,
- "Y": -10496,
- "Z": 60928,
- "Room": 43,
- "KeyItemGroupID": 20127
- },
- {
- "X": 44544,
- "Y": -8704,
- "Z": 62976,
- "Room": 43,
- "KeyItemGroupID": 20127
- },
- {
- "X": 45568,
- "Y": -3072,
- "Z": 65024,
- "Room": 34,
- "KeyItemGroupID": 20127
- },
- {
- "X": 52736,
- "Y": -4608,
- "Z": 62976,
- "Room": 34,
- "KeyItemGroupID": 20127
- },
- {
- "X": 61952,
- "Y": -768,
- "Z": 72192,
- "Room": 72,
- "KeyItemGroupID": 20127
- },
- {
- "X": 64000,
- "Y": -3328,
- "Z": 52736,
- "Room": 57,
- "KeyItemGroupID": 20127
- },
- {
- "X": 55808,
- "Y": 0,
- "Z": 46592,
- "Room": 32,
- "KeyItemGroupID": 20127
- },
- {
- "X": 34304,
- "Y": -5376,
- "Z": 59904,
- "Room": 38,
- "KeyItemGroupID": 20127
- }
- ],
- "LEVEL8C.PHD": [
- {
- "X": 30208,
- "Y": -11520,
- "Z": 54784,
- "Room": 58,
- "KeyItemGroupID": 21126
- },
- {
- "X": 36352,
- "Y": -7424,
- "Z": 58880,
- "Room": 10,
- "KeyItemGroupID": 21126
- },
- {
- "X": 43520,
- "Y": -896,
- "Z": 57856,
- "Room": 7,
- "KeyItemGroupID": 21126
- },
- {
- "X": 53760,
- "Y": -5120,
- "Z": 58880,
- "Room": 10,
- "KeyItemGroupID": 21126
- },
- {
- "X": 57856,
- "Y": -8448,
- "Z": 42496,
- "Room": 9,
- "KeyItemGroupID": 21126
- },
- {
- "X": 52736,
- "Y": -8448,
- "Z": 34304,
- "Room": 15,
- "KeyItemGroupID": 21126
- },
- {
- "X": 42496,
- "Y": -6272,
- "Z": 44544,
- "Room": 1,
- "KeyItemGroupID": 21126
- },
- {
- "X": 38400,
- "Y": -4352,
- "Z": 47616,
- "Room": 2,
- "KeyItemGroupID": 21126
- },
- {
- "X": 54784,
- "Y": -768,
- "Z": 40448,
- "Room": 6,
- "KeyItemGroupID": 21126
- },
- {
- "X": 57856,
- "Y": -8448,
- "Z": 56832,
- "Room": 9,
- "KeyItemGroupID": 21126
- },
- {
- "X": 32256,
- "Y": -512,
- "Z": 37376,
- "Room": 38,
- "KeyItemGroupID": 21148
- },
- {
- "X": 37376,
- "Y": 4352,
- "Z": 32256,
- "Room": 36,
- "KeyItemGroupID": 21148
- },
- {
- "X": 39424,
- "Y": -896,
- "Z": 41472,
- "Room": 0,
- "KeyItemGroupID": 21148
- },
- {
- "X": 38400,
- "Y": -6528,
- "Z": 45568,
- "Room": 1,
- "KeyItemGroupID": 21148
- },
- {
- "X": 43520,
- "Y": -11904,
- "Z": 47616,
- "Room": 3,
- "KeyItemGroupID": 21148
- },
- {
- "X": 46592,
- "Y": -1664,
- "Z": 43520,
- "Room": 0,
- "KeyItemGroupID": 21148
- },
- {
- "X": 57856,
- "Y": -8704,
- "Z": 49664,
- "Room": 9,
- "KeyItemGroupID": 21148
- },
- {
- "X": 45568,
- "Y": -8704,
- "Z": 54784,
- "Room": 3,
- "KeyItemGroupID": 21148
- },
- {
- "X": 23040,
- "Y": -13824,
- "Z": 55808,
- "Room": 16,
- "KeyItemGroupID": 21148
- },
- {
- "X": 18944,
- "Y": 0,
- "Z": 50688,
- "Room": 56,
- "KeyItemGroupID": 21148
- },
- {
- "X": 34304,
- "Y": 4224,
- "Z": 31232,
- "Room": 36,
- "KeyItemGroupID": 21150
- },
- {
- "X": 39424,
- "Y": 256,
- "Z": 35328,
- "Room": 35,
- "KeyItemGroupID": 21150
- },
- {
- "X": 38400,
- "Y": -4352,
- "Z": 49664,
- "Room": 2,
- "KeyItemGroupID": 21150
- },
- {
- "X": 34304,
- "Y": -8576,
- "Z": 50688,
- "Room": 12,
- "KeyItemGroupID": 21150
- },
- {
- "X": 50688,
- "Y": -6144,
- "Z": 34304,
- "Room": 14,
- "KeyItemGroupID": 21150
- },
- {
- "X": 56832,
- "Y": -5248,
- "Z": 47616,
- "Room": 8,
- "KeyItemGroupID": 21150
- },
- {
- "X": 45568,
- "Y": -5248,
- "Z": 58880,
- "Room": 10,
- "KeyItemGroupID": 21150
- },
- {
- "X": 40448,
- "Y": -5504,
- "Z": 41472,
- "Room": 1,
- "KeyItemGroupID": 21150
- },
- {
- "X": 44544,
- "Y": -2944,
- "Z": 34304,
- "Room": 13,
- "KeyItemGroupID": 21150
- },
- {
- "X": 18944,
- "Y": 0,
- "Z": 46592,
- "Room": 56,
- "KeyItemGroupID": 21150
- },
- {
- "X": 18944,
- "Y": 7680,
- "Z": 46592,
- "Room": 52,
- "KeyItemGroupID": 21155
- },
- {
- "X": 18944,
- "Y": 9984,
- "Z": 52736,
- "Room": 49,
- "KeyItemGroupID": 21155
- },
- {
- "X": 28160,
- "Y": 8448,
- "Z": 44544,
- "Room": 22,
- "KeyItemGroupID": 21155
- },
- {
- "X": 33280,
- "Y": 23552,
- "Z": 41472,
- "Room": 4,
- "KeyItemGroupID": 21155
- },
- {
- "X": 33280,
- "Y": 23552,
- "Z": 55808,
- "Room": 4,
- "KeyItemGroupID": 21155
- },
- {
- "X": 42496,
- "Y": 20352,
- "Z": 52736,
- "Room": 4,
- "KeyItemGroupID": 21155
- },
- {
- "X": 24064,
- "Y": 18944,
- "Z": 46592,
- "Room": 26,
- "KeyItemGroupID": 21155
- },
- {
- "X": 23040,
- "Y": 7680,
- "Z": 45568,
- "Room": 52,
- "KeyItemGroupID": 21155
- },
- {
- "X": 28160,
- "Y": 17664,
- "Z": 48640,
- "Room": 5,
- "KeyItemGroupID": 21155
- },
- {
- "X": 41472,
- "Y": 23552,
- "Z": 44544,
- "Room": 4,
- "KeyItemGroupID": 21155
- }
- ],
- "LEVEL10A.PHD": [
- {
- "X": 55808,
- "Y": -3840,
- "Z": 44544,
- "Room": 13,
- "KeyItemGroupID": 22127
- },
- {
- "X": 49664,
- "Y": -4352,
- "Z": 40448,
- "Room": 10,
- "KeyItemGroupID": 22127
- },
- {
- "X": 46592,
- "Y": -3840,
- "Z": 50688,
- "Room": 40,
- "KeyItemGroupID": 22127
- },
- {
- "X": 44544,
- "Y": -6400,
- "Z": 29184,
- "Room": 3,
- "KeyItemGroupID": 22127
- },
- {
- "X": 38400,
- "Y": -5632,
- "Z": 23040,
- "Room": 11,
- "KeyItemGroupID": 22127
- },
- {
- "X": 50688,
- "Y": -1536,
- "Z": 28160,
- "Room": 4,
- "KeyItemGroupID": 22127
- },
- {
- "X": 52736,
- "Y": -9216,
- "Z": 30208,
- "Room": 7,
- "KeyItemGroupID": 22127
- },
- {
- "X": 70144,
- "Y": -8448,
- "Z": 34304,
- "Room": 30,
- "KeyItemGroupID": 22127
- },
- {
- "X": 44544,
- "Y": -5632,
- "Z": 23040,
- "Room": 3,
- "KeyItemGroupID": 22127
- },
- {
- "X": 57856,
- "Y": -6144,
- "Z": 44544,
- "Room": 14,
- "KeyItemGroupID": 22127
- },
- {
- "X": 99840,
- "Y": -7808,
- "Z": 31232,
- "Room": 37,
- "KeyItemGroupID": 22147
- },
- {
- "X": 92672,
- "Y": -7168,
- "Z": 32256,
- "Room": 34,
- "KeyItemGroupID": 22147
- },
- {
- "X": 83456,
- "Y": -10240,
- "Z": 26112,
- "Room": 35,
- "KeyItemGroupID": 22147
- },
- {
- "X": 81408,
- "Y": -7936,
- "Z": 33280,
- "Room": 31,
- "KeyItemGroupID": 22147
- },
- {
- "X": 76288,
- "Y": -6656,
- "Z": 27136,
- "Room": 31,
- "KeyItemGroupID": 22147
- },
- {
- "X": 75264,
- "Y": -8960,
- "Z": 15872,
- "Room": 43,
- "KeyItemGroupID": 22147
- },
- {
- "X": 60928,
- "Y": -8064,
- "Z": 26112,
- "Room": 28,
- "KeyItemGroupID": 22147
- },
- {
- "X": 55808,
- "Y": -5376,
- "Z": 32256,
- "Room": 12,
- "KeyItemGroupID": 22147
- },
- {
- "X": 52736,
- "Y": -1536,
- "Z": 30208,
- "Room": 4,
- "KeyItemGroupID": 22147
- },
- {
- "X": 45568,
- "Y": -5632,
- "Z": 26112,
- "Room": 3,
- "KeyItemGroupID": 22147
- },
- {
- "X": 75264,
- "Y": -6784,
- "Z": 52736,
- "Room": 89,
- "KeyItemGroupID": 22155
- },
- {
- "X": 77312,
- "Y": -7168,
- "Z": 22016,
- "Room": 41,
- "KeyItemGroupID": 22155
- },
- {
- "X": 39424,
- "Y": -5632,
- "Z": 23040,
- "Room": 11,
- "KeyItemGroupID": 22155
- },
- {
- "X": 48640,
- "Y": -4096,
- "Z": 45568,
- "Room": 10,
- "KeyItemGroupID": 22155
- },
- {
- "X": 62976,
- "Y": -3584,
- "Z": 48640,
- "Room": 21,
- "KeyItemGroupID": 22155
- },
- {
- "X": 73216,
- "Y": -8448,
- "Z": 35328,
- "Room": 30,
- "KeyItemGroupID": 22155
- },
- {
- "X": 66048,
- "Y": -7552,
- "Z": 35328,
- "Room": 91,
- "KeyItemGroupID": 22155
- },
- {
- "X": 75264,
- "Y": -6784,
- "Z": 25088,
- "Room": 31,
- "KeyItemGroupID": 22155
- },
- {
- "X": 77312,
- "Y": -6656,
- "Z": 47616,
- "Room": 45,
- "KeyItemGroupID": 22155
- },
- {
- "X": 79360,
- "Y": -6656,
- "Z": 39424,
- "Room": 85,
- "KeyItemGroupID": 22155
- },
- {
- "X": 30208,
- "Y": -15360,
- "Z": 87552,
- "Room": 79,
- "KeyItemGroupID": 22179
- },
- {
- "X": 36352,
- "Y": -11008,
- "Z": 94720,
- "Room": 78,
- "KeyItemGroupID": 22179
- },
- {
- "X": 43520,
- "Y": -9984,
- "Z": 100864,
- "Room": 80,
- "KeyItemGroupID": 22179
- },
- {
- "X": 51712,
- "Y": -11264,
- "Z": 98816,
- "Room": 69,
- "KeyItemGroupID": 22179
- },
- {
- "X": 51712,
- "Y": -11264,
- "Z": 95744,
- "Room": 69,
- "KeyItemGroupID": 22179
- },
- {
- "X": 51712,
- "Y": -11264,
- "Z": 89600,
- "Room": 69,
- "KeyItemGroupID": 22179
- },
- {
- "X": 50688,
- "Y": -9984,
- "Z": 94720,
- "Room": 67,
- "KeyItemGroupID": 22179
- },
- {
- "X": 56832,
- "Y": -9984,
- "Z": 95744,
- "Room": 64,
- "KeyItemGroupID": 22179
- },
- {
- "X": 56832,
- "Y": -11264,
- "Z": 95744,
- "Room": 65,
- "KeyItemGroupID": 22179
- },
- {
- "X": 35328,
- "Y": -11008,
- "Z": 81408,
- "Room": 71,
- "KeyItemGroupID": 22179
- }
- ]
-}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR2/Zones/BOAT.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/BOAT.TR2-Zones.json
deleted file mode 100644
index 5d05faf4f..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/BOAT.TR2-Zones.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- 0: [ 0, 4, 7, 8, 11, 12, 13, 14, 15, 24, 28, 31, 32, 35, 36, 37, 42, 54, 55, 65 ],
- 1: [ 74, 77, 84, 85, 94, 96, 97, 102, 106, 109, 110, 119, 120, 121, 122, 124, 125, 151, 154 ],
- 2: [ 72, 88, 89, 91, 92, 100, 101, 105, 109, 111, 112, 114, 115, 116, 118, 131, 136, 137, 139, 140, 147, 148, 152 ],
- 3: [ 0, 6, 7, 11, 14, 15, 16, 17, 18, 19, 24, 25, 26, 28, 29, 30, 33, 34, 36 ],
- 4: [ 0, 6, 7, 10, 11, 14, 15, 16, 17, 18, 19, 24, 25, 26, 28, 29, 30, 33, 34, 36, 41, 42, 44, 45, 47, 53, 54, 55, 56, 57, 58, 59, 60, 62, 66, 72, 74, 77, 78, 79, 80, 81, 84, 88, 90, 91, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 126, 129, 130, 135, 136, 137, 147, 143, 149, 150, 151 ],
- 5: [ 0, 6, 7, 10, 11, 14, 15, 16, 17, 18, 19, 24, 25, 26, 28, 29, 30, 33, 34, 36, 41, 42, 44, 45, 47, 53, 54, 55, 56, 57, 58, 59, 60, 62, 66, 72, 74, 77, 78, 79, 80, 81, 84, 88, 90, 91, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 126, 129, 130, 135, 136, 137, 147, 143, 149, 150 ],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 0, 6, 7, 16, 17, 18, 19, 20, 24, 25, 26, 27, 28, 33, 34, 36 ],
- 14: [ 45, 47, 58, 59, 60, 61, 69, 72, 74, 77, 78, 79, 80, 81, 84, 88, 90, 91, 96, 129 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/CATACOMB.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/CATACOMB.TR2-Zones.json
deleted file mode 100644
index 20b149f01..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/CATACOMB.TR2-Zones.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- 0: [ 0, 1, 3, 4, 5, 7, 16, 98 ],
- 1: [ 18, 30, 40, 46, 59, 60, 61, 63, 64, 67, 79, 124 ],
- 2: [ 23, 25, 28, 35, 36, 38, 42, 48, 66, 81, 82, 87, 89, 92, 126 ],
- 3: [],
- 4: [],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ],
- 12: [],
- 13: [ 17, 19, 124 ],
- 14: [ 8, 18, 20, 29, 39, 46, 60, 62, 63, 65, 67, 104, 107, 108 ],
- 15: [ 10, 11, 14, 23, 24, 25, 30, 33, 34, 35, 38, 42, 48, 49, 52, 58, 65, 70, 71, 73, 77, 79, 83, 84, 88, 89, 91, 92, 94, 97, 126, 127 ],
- 16: [ 0, 1, 2, 3, 4, 5, 6, 7, 16, 35, 43, 74, 98, 118 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/DECK.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/DECK.TR2-Zones.json
deleted file mode 100644
index c7e20a778..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/DECK.TR2-Zones.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- 0: [ 0, 8, 19, 21, 30, 32, 39, 40, 60, 70, 76, 79, 84, 85, 103, 108 ],
- 1: [ 9, 10, 11, 17, 18, 22, 23, 24, 25, 27, 72, 90, 97, 99 ],
- 2: [ 45, 46, 51, 52, 55, 58, 61, 68, 100, 102, 105 ],
- 3: [],
- 4: [ 0, 8, 19, 20, 21, 30, 31, 32, 33, 34, 40, 60, 70, 76, 77, 79, 80, 83, 84, 86, 103, 104, 107, 108 ],
- 5: [ 0, 3, 4, 8, 9, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 42, 43, 45, 46, 47, 48, 51, 52, 53, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 70, 72, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 108, 109, 110, 111, 112, 113, 114 ],
- 6: [ 0, 3, 4, 8, 9, 10, 12, 15, 17, 19, 20, 21, 22, 23, 24, 25, 27, 28, 29, 30, 31, 32, 33, 34, 40, 41, 42, 43, 45, 46, 47, 48, 51, 52, 53, 55, 56, 58, 59, 60, 62, 63, 64, 65, 66, 68, 70, 72, 76, 77, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97, 98, 99, 103, 104, 106, 107 ],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 19, 20, 21, 30, 40, 41, 42, 43, 45, 46, 47, 48, 51, 52, 55, 57, 58, 59, 61, 62, 63, 64, 66, 68, 82, 93, 110, 111, 114, 115 ],
- 14: [ 0, 8, 31, 32, 60, 61, 70, 76, 77, 79, 83, 84, 86, 95, 96, 97, 98, 99 ],
- 15: [ 57, 61, 67, 100, 101, 102, 112, 113 ],
- 16: [ 9, 10, 11, 12, 13, 14, 15, 17, 18, 22, 53, 56, 72, 81, 89, 90, 91, 92, 94 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/EMPRTOMB.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/EMPRTOMB.TR2-Zones.json
deleted file mode 100644
index f93a84518..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/EMPRTOMB.TR2-Zones.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- 0: [ 4, 5, 7, 9, 12, 14, 15, 33, 45, 88, 146, 190 ],
- 1: [ 6, 26, 27, 30, 38, 40, 41, 43, 44, 50, 56, 57, 61, 66, 70, 72, 77, 83, 112, 115, 116, 117, 118, 121, 142, 143, 149, 154, 155, 156, 167, 168 ],
- 2: [ 59, 90, 92, 104, 106, 145 ],
- 3: [],
- 4: [ 0, 3, 13, 14, 16, 20, 21, 22, 23, 25, 26, 27, 29, 30, 35, 36, 37, 39, 40, 41, 42, 50, 56, 60, 62, 66, 67, 68, 70, 76, 89, 115, 116, 121, 122, 143, 164, 165, 168, 178 ],
- 5: [ 0, 1, 2, 3, 6, 13, 14, 16, 20, 21, 22, 23, 25, 26, 27, 29, 30, 35, 36, 37, 39, 40, 41, 42, 50, 56, 60, 62, 66, 67, 68, 70, 76, 86, 89, 96, 115, 116, 121, 122, 143, 148, 149, 150, 151, 152, 153, 154, 155, 156, 164, 165, 168, 178 ],
- 6: [ 8, 34, 46, 49, 53, 59, 87, 93, 94, 98, 104, 105, 106, 135, 144, 145 ],
- 7: [ 0, 3, 13, 14, 16, 20, 21, 22, 23, 25, 26, 27, 29, 30, 35, 36, 37, 39, 40, 41, 42, 50, 56, 60, 62, 66, 67, 70, 89, 115, 116, 121, 122, 143, 164, 165, 168, 178 ],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 14, 17, 18, 29, 35, 36, 37, 39, 41, 42, 56, 60, 62, 65, 66, 67, 70, 73, 77, 78, 79, 80, 57, 89, 114, 115, 116, 121, 122, 147, 163, 164, 165, 168, 178, 190 ],
- 14: [ 3, 16, 20, 21, 22, 23, 25, 26, 27, 30, 50 ],
- 15: [ 8, 34, 38, 46, 90, 92, 93, 94, 98, 104, 105, 106, 135, 144, 145 ],
- 16: [ 32, 33, 90, 92, 129 ],
- 17: [ 57, 61, 68, 76, 81, 101, 102, 107, 108, 110, 111, 112, 125, 132, 133, 192 ],
- 18: [ 1, 2, 86, 96, 148, 149, 150, 151, 152, 153, 154, 155, 156 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/FLOATING.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/FLOATING.TR2-Zones.json
deleted file mode 100644
index 3396285ac..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/FLOATING.TR2-Zones.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- 0: [ 1, 2, 18, 103, 104, 127, 136, 153 ],
- 1: [ 24, 25, 28, 39, 43, 44, 51, 60, 61, 63, 65, 66, 74, 75, 77, 80, 101, 119, 122 ],
- 2: [ 40, 41, 42, 53, 77, 78, 79, 86, 90, 112, 144 ],
- 3: [],
- 4: [],
- 5: [],
- 6: [],
- 7: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 72, 94, 96, 98, 99, 100, 102, 103, 104, 105, 125, 127, 136, 152, 153 ],
- 8: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 72, 94, 96, 98, 99, 100, 102, 103, 104, 105, 125, 127, 136, 152, 153 ],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 1, 3, 4, 5, 6, 7, 8, 17, 18, 21, 72, 94, 98, 99, 102, 104, 105 ],
- 14: [ 0, 23, 24, 25, 29, 37, 39, 43, 44, 45, 60, 63, 74, 83, 101 ],
- 15: [ 26, 40, 41, 46, 52, 73, 75, 76, 77, 78, 79, 81, 86, 90, 91, 106, 107, 118, 119, 121, 122, 123, 124, 126, 128, 129, 133, 134, 144, 145, 146, 147, 148, 149, 159, 160 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/HOUSE.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/HOUSE.TR2-Zones.json
deleted file mode 100644
index b326aeaa0..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/HOUSE.TR2-Zones.json
+++ /dev/null
@@ -1,16 +0,0 @@
-{
- 0: [],
- 1: [],
- 2: [],
- 3: [],
- 4: [],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: []
-}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR2/Zones/ICECAVE.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/ICECAVE.TR2-Zones.json
deleted file mode 100644
index e91fb1e85..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/ICECAVE.TR2-Zones.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- 0: [ 5, 46, 90, 94, 95, 99, 100, 106, 107, 135, 147, 150 ],
- 1: [ 8, 15, 17, 24, 29, 31, 33, 34, 36, 39, 56, 60, 61, 63, 64, 66, 68, 73, 74, 80, 85, 88, 102, 116, 118, 119, 130, 132 ],
- 2: [ 7, 103, 127, 138, 141, 142 ],
- 3: [],
- 4: [],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 4, 5, 40, 42, 44, 45, 48, 51, 52, 53, 54, 55, 84, 86, 87, 89, 92, 93, 94, 96, 98, 100, 101, 106, 121, 125 ],
- 14: [ 15, 16, 30, 31, 34, 41, 59, 60, 63, 64, 65, 90, 99, 131, 133, 135, 148 ],
- 15: [ 8, 11, 24, 25, 29, 56, 61, 69 ],
- 16: [ 74, 75, 77, 80, 85 ],
- 17: [ 7, 10, 103, 126, 127, 128, 138, 141 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/KEEL.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/KEEL.TR2-Zones.json
deleted file mode 100644
index cc8d14946..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/KEEL.TR2-Zones.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- 0: [ 42, 43, 45, 47, 49, 52, 55, 56, 57, 60, 61, 65, 66, 68, 70, 73, 75, 76, 80, 113 ],
- 1: [ 3, 21, 22, 24, 30, 33, 35, 36, 37, 40, 41, 79, 94, 106 ],
- 2: [ 2, 7, 81, 82, 83, 84, 87, 88, 89, 100, 101, 103 ],
- 3: [ 3, 8, 9, 10, 12, 14, 15, 21, 23, 25, 45, 47, 48, 49, 53, 55, 54, 55, 56, 79, 91, 93 ],
- 4: [ 3, 8, 9, 10, 12, 14, 15, 21, 23, 25, 45, 47, 48, 49, 53, 55, 54, 55, 56, 57, 58, 61, 63, 64, 65, 66, 67, 79, 91, 93 ],
- 5: [ 11, 26, 27, 30, 31, 32, 33, 35, 37, 38, 39, 40, 41, 85, 94, 104, 105, 106 ],
- 6: [],
- 7: [ 3, 8, 9, 10, 12, 13, 14, 15, 18, 21, 23, 25, 45, 47, 48, 49, 52, 53, 55, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 71, 73, 74, 75, 76, 77, 78, 79, 80, 86, 90, 91, 95, 96, 97, 93 ],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 19, 42, 43, 112, 113 ],
- 14: [ 3, 5, 8, 10, 21, 23, 25, 45, 47, 48, 49, 53, 54, 55, 56, 79, 91, 93 ],
- 15: [ 57, 58, 60, 61, 63, 64, 65, 66, 67 ],
- 16: [ 13, 59, 60, 62, 68, 69, 71, 74, 75, 76, 80, 95, 96, 97],
- 17: [ 12, 14, 15 ],
- 18: [ 26, 27, 109, 110, 111 ],
- 19: [ 11, 30, 31, 32, 33, 35, 36, 37, 38, 39, 40, 41, 85, 94, 104, 105, 106 ],
- 20: [ 6, 7, 34, 36, 81, 82, 83, 84, 88, 89, 99, 101, 102, 103 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/LIVING.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/LIVING.TR2-Zones.json
deleted file mode 100644
index 9a5610f98..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/LIVING.TR2-Zones.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- 0: [ 0, 1, 2, 3, 4, 6, 7, 11, 14, 17, 50, 68 ],
- 1: [ 16, 18, 26, 32, 33, 61, 69, 70, 80 ],
- 2: [ 21, 22, 34, 35, 36, 37, 38, 42, 44, 46, 51, 66, 71, 79, 81 ],
- 3: [ 20, 21, 22, 23, 26, 28, 32, 33, 34, 35, 36, 39, 40, 42, 69, 70, 72, 77 ],
- 4: [],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24, 27, 29, 30, 31, 50, 54, 58, 60, 68, 80 ],
- 14: [ 20, 21, 22, 23, 26, 28, 32, 33, 34, 35, 42, 69, 70 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/MONASTRY.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/MONASTRY.TR2-Zones.json
deleted file mode 100644
index f840e0e43..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/MONASTRY.TR2-Zones.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- 0: [ 10, 15, 17, 23, 24, 25, 27, 55, 76, 77, 81, 128 ],
- 1: [ 13, 53, 56, 39, 60, 61, 65, 66, 69, 83, 99, 155, 160 ],
- 2: [ 21, 43, 55, 70, 76, 77, 82, 84, 97, 110, 113, 145, 148 ],
- 3: [ ],
- 4: [ ],
- 5: [ ],
- 6: [ ],
- 7: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ],
- 8: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255 ],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 7, 8, 9, 10, 12, 15, 17, 20, 23, 24, 25, 26, 27, 28, 32, 46, 47, 49, 50, 52, 53, 54, 59, 78, 92, 93, 97, 107, 116, 122, 124, 128, 129, 130, 132 ],
- 14: [ 0, 1, 3, 4, 18, 22, 30, 31, 37, 38, 39, 42, 60, 61, 65, 66, 67, 71, 73, 75, 89, 99, 100, 101, 102, 103, 104, 109, 133, 134, 135, 137, 139, 140, 141, 142, 143, 144, 149, 153, 155, 157, 161 ],
- 15: [ 19, 41, 55, 62, 63, 70, 76, 85, 88, 91, 138 ],
- 16: [ 43, 44 ],
- 17: [ 56, 57, 150, 151, 152, 156 ],
- 18: [ 2, 5, 72, 86, 87, 94, 96, 97, 98, 110, 111, 112, 114, 145, 146, 147, 148 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/OPERA.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/OPERA.TR2-Zones.json
deleted file mode 100644
index 4f663ec61..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/OPERA.TR2-Zones.json
+++ /dev/null
@@ -1,21 +0,0 @@
-{
- 0: [ 6, 9, 10, 11, 23, 32, 33, 36, 41, 42, 140, 142, 162, 164, 166, 184 ],
- 1: [ 0, 2, 13, 34, 38, 44, 53, 55, 57, 63, 76, 79, 84, 86, 87, 89, 90, 105, 106, 107, 108, 152, 154, 155, 161, 169, 173 ],
- 2: [ 81, 104, 113, 114, 115, 116, 117, 118, 121, 122, 123 ],
- 3: [ 10, 23, 25, 27, 29, 30, 31, 32, 33, 35, 127, 162, 163,
- 1, 5, 8, 16, 37, 38, 44, 46, 47, 48, 49, 50, 52, 53, 55, 57, 59, 60, 63, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 77, 78, 82, 83, 86, 87, 88, 89, 90, 93, 95, 96, 100, 102, 103, 105, 107, 109, 111, 120, 132, 139, 141, 143, 144, 151, 153, 154, 155, 156, 158, 159, 161, 174, 176, 177, 178, 179, 183, 185, 187, 188, 189],
- 4: [],
- 5: [],
- 6: [],
- 7: [ 1, 5, 8, 16, 37, 46, 47, 49, 50, 52, 53, 55, 57, 59, 63, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 77, 78, 86, 87, 88, 89, 90, 93, 95, 96, 100, 102, 103, 105, 107, 109, 111, 120, 132, 139, 143, 144, 151, 155, 158, 159, 161, 174, 176, 177, 178, 179, 183, 185, 187, 188, 190 ],
- 8: [ 0, 1, 2, 5, 8, 12, 13, 14, 15, 16, 19, 37, 38, 44, 46, 47, 48, 49, 50, 52, 53, 55, 57, 59, 60, 63, 65, 66, 67, 68, 69, 70, 71, 72, 75, 76, 77, 78, 82, 83, 86, 87, 88, 89, 90, 93, 95, 96, 100, 102, 103, 105, 107, 109, 111, 120, 132, 135, 139, 141, 143, 144, 151, 153, 154, 155, 156, 158, 159, 161, 169, 170, 171, 172, 174, 176, 177, 178, 179, 183, 185, 187, 188, 189, 190 ],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 3, 10, 23, 25, 27, 29, 30, 31, 32, 33, 35, 127, 162, 163 ],
- 14: [ 2, 6, 11, 12, 13, 14, 15, 19, 170, 171, 190 ],
- 15: [ 1, 5, 8, 37, 46, 47, 49, 50, 51, 52, 53, 54, 55, 57, 59, 65, 66, 67, 68, 69, 70, 71, 72, 75, 77, 78, 86, 87, 89, 91, 93, 100, 102, 103, 105, 107, 109, 111, 120, 132, 139, 144, 151, 158, 159, 174, 178, 183, 187, 185 ],
- 16: [ 0, 38, 44, 60, 61, 83, 135, 141, 172, 189 ],
- 17: [ 53, 58, 81, 104, 113, 114, 117, 118, 119, 121, 122, 123, 152 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/PLATFORM.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/PLATFORM.TR2-Zones.json
deleted file mode 100644
index a6efde0f0..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/PLATFORM.TR2-Zones.json
+++ /dev/null
@@ -1,22 +0,0 @@
-{
- 0: [ 0, 42, 43, 45, 46, 48, 51, 52, 53, 54, 55, 63 ],
- 1: [ 10, 13, 15, 16, 18, 21, 22, 23, 30, 31, 34, 72, 80, 87 ],
- 2: [ 4, 7, 8, 17, 19, 20, 65, 66, 70, 76, 78, 79 ],
- 3: [ 2, 12, 13, 14, 15, 16, 21, 22, 23, 24, 25, 26, 29, 30, 32, 34, 35, 64, 65, 66, 68, 69, 70, 75, 80, 82, 83, 84, 85, 86, 87, 88, 89 ],
- 4: [],
- 5: [],
- 6: [ 48, 50, 52, 53, 54, 55, 56, 57, 62, 63 ],
- 7: [ 13, 14, 15, 16, 21, 22, 23, 24, 25, 26, 29, 32, 75, 80, 83, 84, 85, 86, 87, 88, 89,
- 2, 12, 13, 14, 15, 16, 17, 21, 22, 23, 24, 25, 26, 29, 30, 32, 34, 35, 64, 65, 66, 68, 69, 70, 75, 80, 82, 83, 84, 85, 86, 87, 88, 89 ],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 37, 39, 42, 44, 47 ],
- 14: [ 48, 50, 52, 54, 55, 56, 57, 62, 63 ],
- 15: [ 13, 14, 15, 16, 21, 22, 23, 24, 25, 26, 29, 30, 32, 34, 49, 75, 80, 83, 84, 85, 86, 87, 88, 89 ],
- 16: [ 2, 11, 12, 13, 14, 15, 16, 17, 30, 31, 34, 64, 65, 66, 68 ],
- 17: [ 12, 17, 18, 19, 74 ],
- 18: [ 3, 4, 5, 8, 9, 76, 77, 78 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/RIG.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/RIG.TR2-Zones.json
deleted file mode 100644
index 3c08ae3ca..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/RIG.TR2-Zones.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- 0: [ 0, 2, 4, 6, 11, 77, 88, 90, 92, 96, 97 ],
- 1: [ 15, 17, 20, 22, 23, 24, 30, 31, 42, 43, 50, 60 ],
- 2: [ 32, 34, 35, 41, 44, 63, 70, 83, 99, 101, 102, 106, 108 ],
- 3: [ 0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 42, 43, 50, 60, 77, 78, 79, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 97],
- 4: [ 0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 77, 78, 79, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 97 ],
- 5: [ 0, 1, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 48, 49, 50, 53, 54, 55, 56, 60, 61, 62, 63, 64, 77, 78, 79, 85, 86, 87, 88, 89, 90, 91, 92, 93, 96, 97, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110 ],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 0, 1, 3, 4, 5, 7, 10, 11, 12, 13, 90, 91, 92, 93, 96, 97 ],
- 14: [ 15, 16, 17, 19, 20, 21, 22, 23, 24, 26, 27, 28, 29, 30, 31, 42, 43, 50, 60 ],
- 15: [ 18, 32, 33, 34, 36, 37, 38, 39, 40, 44, 48, 49, 53, 54, 55, 56, 63, 98, 99, 100, 101, 102, 107, 108, 109, 110 ],
- 16: [ 34, 35, 68, 69, 70, 75 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/SKIDOO.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/SKIDOO.TR2-Zones.json
deleted file mode 100644
index 4aa17e8d6..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/SKIDOO.TR2-Zones.json
+++ /dev/null
@@ -1,17 +0,0 @@
-{
- 0: [ 0, 1, 3, 6, 10, 18, 19, 23, 25, 33, 34, 69, 76, 77, 78, 79, 81 ],
- 1: [ 14, 42, 44, 46, 47, 50, 56, 60, 62, 63, 64, 66, 67, 68, 70, 73, 74, 75, 89, 94, 97, 116, 132, 134, 136, 138 ],
- 2: [ 99, 103, 105, 107, 109, 112, 120, 121, 123, 125, 126, 127, 128, 129, 146 ],
- 3: [ 0, 1, 7, 11, 12, 13, 14, 15, 16, 18, 19, 20, 24, 28, 34, 35, 37, 38, 39, 40, 41, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 71, 72, 73, 74, 75, 86, 87, 88, 90, 91, 92, 93, 94, 132, 133, 134, 135, 136, 137, 138, 148 ],
- 4: [ 0, 1, 7, 11, 12, 13, 14, 15, 16, 18, 19, 20, 24, 28, 34, 35, 37, 38, 39, 40, 41, 46, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 67, 68, 71, 72, 73, 74, 75, 86, 87, 88, 90, 91, 92, 93, 94, 132, 133, 134, 135, 136, 137, 138, 148 ],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 0, 1, 4, 5, 7, 10, 11, 12, 14, 15, 16, 17, 18, 19, 20, 24, 26, 28, 31, 33, 34, 35, 36, 37, 38, 39, 40, 41, 47, 48, 49, 51, 52, 53, 54, 55, 56, 57, 58, 61, 62, 63, 64, 65, 66, 68, 71, 72, 73, 74, 76, 77, 78, 79, 80, 81, 83, 86, 87, 88, 90, 91, 92, 93, 94, 96, 97, 130, 132, 133, 135, 136, 137, 138, 142, 143, 148 ],
- 14: [ 95, 98, 99, 100, 101, 102, 103, 104, 112, 114, 115, 121, 123, 124, 126, 127, 128, 129, 131, 144 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/UNWATER.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/UNWATER.TR2-Zones.json
deleted file mode 100644
index b7e0316f1..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/UNWATER.TR2-Zones.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- 0: [ 0, 2, 3, 5, 6, 7, 9, 11, 12, 13, 14, 17, 18, 20, 47, 51, 54, 59 ],
- 1: [ 21, 22, 23, 28, 67 ],
- 2: [ 27, 36, 37, 40, 44, 50, 74 ],
- 3: [],
- 4: [],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [0, 2, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20],
- 14: [21, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34, 35, 46, 47, 60, 61, 62, 63, 64, 67, 68],
- 15: [27, 37, 38, 39, 40, 41, 42, 44, 49, 50, 66, 71, 72, 74, 75, 76]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/VENICE.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/VENICE.TR2-Zones.json
deleted file mode 100644
index f87b9f320..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/VENICE.TR2-Zones.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- 0: [ 0, 4, 5, 13, 16, 68, 96, 104, 107, 110, 117, 118, 123, 150, 151, 154, 164 ],
- 1: [ 6, 15, 17, 22, 25, 28, 29, 30, 38, 51, 115, 140, 141 ],
- 2: [ 43, 59, 62, 63, 70, 71, 73, 76, 77, 78, 86, 98, 126, 127, 130, 131, 134, 135, 138, 139 ],
- 3: [ 6, 8, 15, 17, 20, 22, 23, 24, 25, 28, 29, 30, 31, 33, 36, 37, 38, 39, 47, 50, 51, 71, 141, 158 ],
- 4: [ 6, 8, 15, 17, 20, 22, 23, 24, 25, 28, 29, 30, 31, 33, 36, 37, 38, 39, 41, 42, 43, 47, 50, 51, 58, 59, 61, 62, 63, 64, 65, 66, 70, 73, 77, 78, 79, 80, 81, 82, 83, 84, 86, 87, 120, 126, 127, 130, 134, 139, 141, 158 ],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 16, 18, 49, 67, 68, 75, 99, 101, 105, 106, 107, 108, 110, 116, 117, 118, 119, 151, 155, 156, 159, 162, 163 ],
- 14: [ 0, 1, 2, 4, 5, 10, 12, 13, 14, 32, 93, 96, 152, 153, 157 ],
- 15: [ 6, 8, 15, 20, 22, 24, 25, 29, 30, 31, 36, 38, 47, 140, 158 ],
- 16: [ 41, 42, 43, 58, 59, 60, 61, 62, 63, 65, 66, 70, 72, 73, 77, 78, 85, 86, 87, 130, 131, 135, 138, 145, 146 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/WALL.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/WALL.TR2-Zones.json
deleted file mode 100644
index e8514e708..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/WALL.TR2-Zones.json
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- 0: [ 3, 31, 33, 35, 36, 37, 67, 68, 70 ],
- 1: [ 0, 2, 5, 7, 8, 9, 17, 18, 20, 21, 22, 25, 26, 27, 28, 29, 30, 32, 42, 77 ],
- 2: [ 45, 47, 48, 49, 50, 51, 52, 54, 55, 56, 57, 58, 59, 61, 63, 64, 65, 66, 74 ],
- 3: [ 0, 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 77 ],
- 4: [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 77 ],
- 5: [],
- 6: [],
- 7: [],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 31, 36, 38, 70],
- 14: [ 3 ],
- 15: [ 0, 77 ],
- 16: [ 7, 9, 34 ],
- 17: [ 4, 32, 41, 42, 44, 47 ],
- 18: [ 48, 49, 50, 51, 52, 53, 56, 57, 59 ],
- 19: [ 58, 62, 63, 66, 75, 76, 79, 83 ],
- 20: [ 39, 64, 65, 74 ]
-}
diff --git a/TRRandomizerCore/Resources/TR2/Zones/XIAN.TR2-Zones.json b/TRRandomizerCore/Resources/TR2/Zones/XIAN.TR2-Zones.json
deleted file mode 100644
index 1788062bd..000000000
--- a/TRRandomizerCore/Resources/TR2/Zones/XIAN.TR2-Zones.json
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- 0: [ 1, 3, 17 ],
- 1: [ 13, 16, 18, 19 ],
- 2: [ 21 ],
- 3: [],
- 4: [],
- 5: [],
- 6: [],
- 7: [ 0, 1, 3, 17 ],
- 8: [],
- 9: [],
- 10: [],
- 11: [],
- 12: [],
- 13: [ 0, 1, 3, 17 ],
- 14: [ 2, 16, 18, 19, 20 ],
- 15: [ 5, 13, 14, 15 ]
-}
diff --git a/TRRandomizerCore/Resources/TR3/Locations/Zones.json b/TRRandomizerCore/Resources/TR3/Locations/Zones.json
deleted file mode 100644
index a5d01d5bf..000000000
--- a/TRRandomizerCore/Resources/TR3/Locations/Zones.json
+++ /dev/null
@@ -1,446 +0,0 @@
-{
- "JUNGLE.TR2": {
- "AliasedExpectedKeyItems": [
- 10359
- ],
- "BaseExpectedKeyItems": [
- 227
- ],
- "AllowedRooms": {
- "MonkeyKey": [
- 2048
- ]
- }
- },
- "TEMPLE.TR2": {
- "AliasedExpectedKeyItems": [
- 11371,
- 11410,
- 11411,
- 11416,
- 11435,
- 11444,
- 11446
- ],
- "BaseExpectedKeyItems": [
- 205,
- 206,
- 224
- ],
- "AllowedRooms": {
- "GaneshaSpikeCorridorAfterMud": [
- 2048
- ],
- "Scimitar2": [
- 2048
- ],
- "Scimitar1": [
- 2048
- ],
- "GaneshaFlipmapPool": [
- 2048
- ],
- "GaneshaBeneathRandyRory": [
- 2048
- ],
- "GaneshaCurrentPool": [
- 2048
- ],
- "GaneshaSpikeCeiling": [
- 2048
- ]
- }
- },
- "QUADCHAS.TR2": {
- "AliasedExpectedKeyItems": [
- 12239,
- 12323
- ],
- "BaseExpectedKeyItems": [
- 224
- ],
- "AllowedRooms": {
- "SnakePitKey": [
- 2048
- ],
- "MonkeyPitKey": [
- 2048
- ]
- }
- },
- "TONYBOSS.TR2": {
- "AliasedExpectedKeyItems": [
- 32700
- ],
- "BaseExpectedKeyItems": [
- 32700
- ],
- "AllowedRooms": {
- "NullKeyItem": [
- 2048
- ]
- }
- },
- "NEVADA.TR2": {
- "AliasedExpectedKeyItems": [
- 14294,
- 14378
- ],
- "BaseExpectedKeyItems": [
- 224,
- 225
- ],
- "AllowedRooms": {
- "DetonatorKey": [
- 2048
- ],
- "RooftopKeycard": [
- 2048
- ]
- }
- },
- "COMPOUND.TR2": {
- "AliasedExpectedKeyItems": [
- 15234,
- 15239,
- 15279,
- 15350,
- 15335,
- 15355,
- 15366
- ],
- "BaseExpectedKeyItems": [
- 205,
- 206,
- 224,
- 225
- ],
- "AllowedRooms": {
- "InitialKeycard": [
- 2048
- ],
- "FinalYellowKey": [
- 2048
- ],
- "BlueKey": [
- 2048
- ],
- "SecretCorridorKeycard": [
- 2048
- ],
- "SecretCorridorYellow": [
- 2048
- ],
- "OutsideTurretsKeycard": [
- 2048
- ],
- "OutsideYellowKey": [
- 2048
- ]
- }
- },
- "AREA51.TR2": {
- "AliasedExpectedKeyItems": [
- 16233,
- 16257,
- 16286,
- 16322
- ],
- "BaseExpectedKeyItems": [
- 206,
- 207,
- 208,
- 224
- ],
- "AllowedRooms": {
- "Disc2": [
- 2048
- ],
- "Disc1": [
- 2048
- ],
- "YellowKey": [
- 2048
- ],
- "UFOKeycard": [
- 2048
- ]
- }
- },
- "SHORE.TR2": {
- "AliasedExpectedKeyItems": [
- 17222,
- 17231,
- 17326,
- 17329
- ],
- "BaseExpectedKeyItems": [
- 205,
- 224
- ],
- "AllowedRooms": {
- "SerpentStoneCubby": [
- 2048
- ],
- "SmugglersKey": [
- 2048
- ],
- "SerpentStoneTopWaterfall": [
- 2048
- ],
- "SerpentStoneTreetops": [
- 2048
- ]
- }
- },
- "CRASH.TR2": {
- "AliasedExpectedKeyItems": [
- 18255,
- 18270
- ],
- "BaseExpectedKeyItems": [
- 224,
- 225
- ],
- "AllowedRooms": {
- "TuckermansKey": [
- 2048
- ],
- "BishopsKey": [
- 2048
- ]
- }
- },
- "RAPIDS.TR2": {
- "AliasedExpectedKeyItems": [
- 32700
- ],
- "BaseExpectedKeyItems": [
- 32700
- ],
- "AllowedRooms": {
- "NullKeyItem": [
- 2048
- ]
- }
- },
- "TRIBOSS.TR2": {
- "AliasedExpectedKeyItems": [
- 32700
- ],
- "BaseExpectedKeyItems": [
- 32700
- ],
- "AllowedRooms": {
- "NullKeyItem": [
- 2048
- ]
- }
- },
- "ROOFS.TR2": {
- "AliasedExpectedKeyItems": [
- 21225,
- 21396
- ],
- "BaseExpectedKeyItems": [
- 224,
- 225
- ],
- "AllowedRooms": {
- "CathedralKey": [
- 2048
- ],
- "FlueRoomKey": [
- 2048
- ]
- }
- },
- "SEWER.TR2": {
- "AliasedExpectedKeyItems": [
- 22235,
- 22243,
- 22247,
- 22262,
- 22301,
- 22325,
- 22334
- ],
- "BaseExpectedKeyItems": [
- 205,
- 206,
- 207,
- 208,
- 224,
- 225,
- 226
- ],
- "AllowedRooms": {
- "SolomonKeyDrillShaft": [
- 2048
- ],
- "Ticket": [
- 2048
- ],
- "Penny": [
- 2048
- ],
- "MaintenanceKey": [
- 2048
- ],
- "SolomonKey3DoorPuzzle": [
- 2048
- ],
- "Star": [
- 2048
- ],
- "Mallet": [
- 2048
- ]
- }
- },
- "TOWER.TR2": {
- "AliasedExpectedKeyItems": [
- 23283,
- 23293
- ],
- "BaseExpectedKeyItems": [
- 205,
- 224
- ],
- "AllowedRooms": {
- "EmbalmingFluid": [
- 2048
- ],
- "BoilerRoomKey": [
- 2048
- ]
- }
- },
- "OFFICE.TR2": {
- "AliasedExpectedKeyItems": [
- 32700
- ],
- "BaseExpectedKeyItems": [
- 32700
- ],
- "AllowedRooms": {
- "NullKeyItem": [
- 2048
- ]
- }
- },
- "ANTARC.TR2": {
- "AliasedExpectedKeyItems": [
- 25375,
- 25292,
- 25298,
- 25321,
- 25339
- ],
- "BaseExpectedKeyItems": [
- 205,
- 206,
- 224
- ],
- "AllowedRooms": {
- "HutKey": [
- 2048
- ],
- "CrowbarAfterOpeningGenerator": [
- 2048
- ],
- "CrowbarAfterOpeningTower": [
- 2048
- ],
- "GeneratorKey": [
- 2048
- ],
- "CrowbarStandardPickup": [
- 2048
- ]
- }
- },
- "MINES.TR2": {
- "AliasedExpectedKeyItems": [
- 26312,
- 26333,
- 26365
- ],
- "BaseExpectedKeyItems": [
- 205,
- 206,
- 207
- ],
- "AllowedRooms": {
- "Battery": [
- 2048
- ],
- "Winch": [
- 2048
- ],
- "Crowbar": [
- 2048
- ]
- }
- },
- "CITY.TR2": {
- "AliasedExpectedKeyItems": [
- 27251,
- 27299,
- 27302,
- 27325,
- 27324,
- 27435
- ],
- "BaseExpectedKeyItems": [
- 205,
- 224
- ],
- "AllowedRooms": {
- "UliKeyStart": [
- 2048
- ],
- "WaterMask": [
- 2048
- ],
- "WindMask": [
- 2048
- ],
- "EarthMask": [
- 2048
- ],
- "FireMask": [
- 2048
- ],
- "UliKeyMutants": [
- 2048
- ]
- }
- },
- "CHAMBER.TR2": {
- "AliasedExpectedKeyItems": [
- 32700
- ],
- "BaseExpectedKeyItems": [
- 32700
- ],
- "AllowedRooms": {
- "NullKeyItem": [
- 2048
- ]
- }
- },
- "STPAUL.TR2": {
- "AliasedExpectedKeyItems": [
- 29242
- ],
- "BaseExpectedKeyItems": [
- 224
- ],
- "AllowedRooms": {
- "VaultKey": [
- 2048
- ]
- }
- }
-}
\ No newline at end of file
diff --git a/TRRandomizerCore/Resources/TR3/Locations/item_locations.json b/TRRandomizerCore/Resources/TR3/Locations/item_locations.json
deleted file mode 100644
index 2c4f02d5e..000000000
--- a/TRRandomizerCore/Resources/TR3/Locations/item_locations.json
+++ /dev/null
@@ -1,5121 +0,0 @@
-{
- "JUNGLE.TR2": [
- {
- "X": 27203,
- "Y": 24064,
- "Z": 61980,
- "Room": 26,
- "KeyItemGroupID": 10359
- },
- {
- "X": 33280,
- "Y": 27136,
- "Z": 71168,
- "Room": 147,
- "KeyItemGroupID": 10359
- },
- {
- "X": 31249,
- "Y": 26378,
- "Z": 80360,
- "Room": 31,
- "KeyItemGroupID": 10359
- },
- {
- "X": 36328,
- "Y": 27136,
- "Z": 76279,
- "Room": 83,
- "KeyItemGroupID": 10359
- },
- {
- "X": 47588,
- "Y": 24064,
- "Z": 70140,
- "Room": 163,
- "KeyItemGroupID": 10359
- },
- {
- "X": 51705,
- "Y": 24064,
- "Z": 75262,
- "Room": 85,
- "KeyItemGroupID": 10359
- },
- {
- "X": 57857,
- "Y": 26493,
- "Z": 76297,
- "Room": 84,
- "KeyItemGroupID": 10359
- },
- {
- "X": 77312,
- "Y": 27136,
- "Z": 77312,
- "Room": 151,
- "KeyItemGroupID": 10359
- },
- {
- "X": 89616,
- "Y": 28160,
- "Z": 76321,
- "Room": 62,
- "KeyItemGroupID": 10359
- },
- {
- "X": 79385,
- "Y": 25600,
- "Z": 63939,
- "Room": 50,
- "KeyItemGroupID": 10359
- },
- {
- "X": 82362,
- "Y": 26880,
- "Z": 65016,
- "Room": 99,
- "KeyItemGroupID": 10359
- },
- {
- "X": 86557,
- "Y": 21504,
- "Z": 62914,
- "Room": 14,
- "KeyItemGroupID": 10359
- },
- {
- "X": 92656,
- "Y": 23808,
- "Z": 63986,
- "Room": 162,
- "KeyItemGroupID": 10359
- },
- {
- "X": 93675,
- "Y": 19712,
- "Z": 62963,
- "Room": 75,
- "KeyItemGroupID": 10359
- },
- {
- "X": 93633,
- "Y": 17152,
- "Z": 70138,
- "Room": 143,
- "KeyItemGroupID": 10359
- },
- {
- "X": 89595,
- "Y": 24064,
- "Z": 53671,
- "Room": 72,
- "KeyItemGroupID": 10359
- },
- {
- "X": 88529,
- "Y": 25611,
- "Z": 53758,
- "Room": 70,
- "KeyItemGroupID": 10359
- },
- {
- "X": 85585,
- "Y": 27392,
- "Z": 54775,
- "Room": 88,
- "KeyItemGroupID": 10359
- },
- {
- "X": 83424,
- "Y": 25735,
- "Z": 51659,
- "Room": 54,
- "KeyItemGroupID": 10359
- },
- {
- "X": 69067,
- "Y": 24576,
- "Z": 61030,
- "Room": 28,
- "KeyItemGroupID": 10359
- },
- {
- "X": 62867,
- "Y": 24832,
- "Z": 61995,
- "Room": 28,
- "KeyItemGroupID": 10359
- },
- {
- "X": 54689,
- "Y": 27799,
- "Z": 65088,
- "Room": 43,
- "KeyItemGroupID": 10359
- },
- {
- "X": 54784,
- "Y": 27264,
- "Z": 61952,
- "Room": 43,
- "KeyItemGroupID": 10359
- },
- {
- "X": 40417,
- "Y": 25856,
- "Z": 59941,
- "Room": 30,
- "KeyItemGroupID": 10359
- },
- {
- "X": 33303,
- "Y": 27136,
- "Z": 60962,
- "Room": 146,
- "KeyItemGroupID": 10359
- },
- {
- "X": 24140,
- "Y": 25088,
- "Z": 54760,
- "Room": 141,
- "KeyItemGroupID": 10359
- },
- {
- "X": 15001,
- "Y": 27136,
- "Z": 59942,
- "Room": 134,
- "KeyItemGroupID": 10359
- },
- {
- "X": 22030,
- "Y": 26112,
- "Z": 73234,
- "Room": 122,
- "KeyItemGroupID": 10359
- },
- {
- "X": 27081,
- "Y": 30578,
- "Z": 77380,
- "Room": 118,
- "KeyItemGroupID": 10359
- },
- {
- "X": 35328,
- "Y": 29952,
- "Z": 91648,
- "Room": 113,
- "KeyItemGroupID": 10359
- },
- {
- "X": 38400,
- "Y": 28160,
- "Z": 81408,
- "Room": 113,
- "KeyItemGroupID": 10359
- },
- {
- "X": 41438,
- "Y": 25856,
- "Z": 80357,
- "Room": 98,
- "KeyItemGroupID": 10359
- },
- {
- "X": 43525,
- "Y": 24069,
- "Z": 86501,
- "Room": 97,
- "KeyItemGroupID": 10359
- },
- {
- "X": 43559,
- "Y": 24320,
- "Z": 91625,
- "Room": 97,
- "KeyItemGroupID": 10359
- },
- {
- "X": 50699,
- "Y": 27904,
- "Z": 90652,
- "Room": 106,
- "KeyItemGroupID": 10359
- },
- {
- "X": 50677,
- "Y": 27904,
- "Z": 87532,
- "Room": 106,
- "KeyItemGroupID": 10359
- },
- {
- "X": 57903,
- "Y": 27904,
- "Z": 90617,
- "Room": 103,
- "KeyItemGroupID": 10359
- }
- ],
- "TEMPLE.TR2": [
- {
- "X": 9728,
- "Y": 3328,
- "Z": 57856,
- "Room": 211,
- "KeyItemGroupID": 11435
- },
- {
- "X": 22016,
- "Y": 4352,
- "Z": 57856,
- "Room": 211,
- "KeyItemGroupID": 11435
- },
- {
- "X": 23019,
- "Y": 5376,
- "Z": 62972,
- "Room": 213,
- "KeyItemGroupID": 11435
- },
- {
- "X": 28194,
- "Y": 3328,
- "Z": 61980,
- "Room": 209,
- "KeyItemGroupID": 11435
- },
- {
- "X": 31184,
- "Y": 5120,
- "Z": 58802,
- "Room": 208,
- "KeyItemGroupID": 11435
- },
- {
- "X": 11726,
- "Y": 4352,
- "Z": 53705,
- "Room": 211,
- "KeyItemGroupID": 11435
- },
- {
- "X": 19960,
- "Y": 4352,
- "Z": 62998,
- "Room": 211,
- "KeyItemGroupID": 11435
- },
- {
- "X": 20980,
- "Y": 4096,
- "Z": 65027,
- "Room": 212,
- "KeyItemGroupID": 11435
- },
- {
- "X": 9706,
- "Y": 4096,
- "Z": 69140,
- "Room": 212,
- "KeyItemGroupID": 11435
- },
- {
- "X": 19978,
- "Y": 7168,
- "Z": 69090,
- "Room": 220,
- "KeyItemGroupID": 11444
- },
- {
- "X": 13744,
- "Y": 7168,
- "Z": 69075,
- "Room": 220,
- "KeyItemGroupID": 11444
- },
- {
- "X": 13806,
- "Y": 7168,
- "Z": 62949,
- "Room": 220,
- "KeyItemGroupID": 11444
- },
- {
- "X": 16889,
- "Y": 7168,
- "Z": 63997,
- "Room": 220,
- "KeyItemGroupID": 11444
- },
- {
- "X": 20007,
- "Y": 7168,
- "Z": 63038,
- "Room": 220,
- "KeyItemGroupID": 11444
- },
- {
- "X": 20999,
- "Y": 4096,
- "Z": 65046,
- "Room": 212,
- "KeyItemGroupID": 11444
- },
- {
- "X": 9681,
- "Y": 4096,
- "Z": 69232,
- "Room": 212,
- "KeyItemGroupID": 11444
- },
- {
- "X": 46592,
- "Y": 5888,
- "Z": 46592,
- "Room": 189,
- "KeyItemGroupID": 11416
- },
- {
- "X": 53760,
- "Y": 5888,
- "Z": 45568,
- "Room": 190,
- "KeyItemGroupID": 11416
- },
- {
- "X": 62976,
- "Y": 7168,
- "Z": 61952,
- "Room": 81,
- "KeyItemGroupID": 11416
- },
- {
- "X": 55742,
- "Y": 7168,
- "Z": 54752,
- "Room": 82,
- "KeyItemGroupID": 11416
- },
- {
- "X": 47770,
- "Y": 6656,
- "Z": 37383,
- "Room": 170,
- "KeyItemGroupID": 11416
- },
- {
- "X": 51630,
- "Y": 6656,
- "Z": 37377,
- "Room": 170,
- "KeyItemGroupID": 11416
- },
- {
- "X": 66074,
- "Y": 8192,
- "Z": 62951,
- "Room": 88,
- "KeyItemGroupID": 11416
- },
- {
- "X": 61952,
- "Y": 7936,
- "Z": 69120,
- "Room": 88,
- "KeyItemGroupID": 11416
- },
- {
- "X": 50669,
- "Y": 8960,
- "Z": 18946,
- "Room": 173,
- "KeyItemGroupID": 11416
- },
- {
- "X": 49664,
- "Y": 1792,
- "Z": 17920,
- "Room": 177,
- "KeyItemGroupID": 11416
- },
- {
- "X": 50724,
- "Y": 4608,
- "Z": 22996,
- "Room": 175,
- "KeyItemGroupID": 11416
- },
- {
- "X": 44589,
- "Y": 1419,
- "Z": 22033,
- "Room": 176,
- "KeyItemGroupID": 11416
- },
- {
- "X": 40448,
- "Y": 1024,
- "Z": 18944,
- "Room": 176,
- "KeyItemGroupID": 11416
- },
- {
- "X": 48640,
- "Y": 3840,
- "Z": 14848,
- "Room": 184,
- "KeyItemGroupID": 11416
- },
- {
- "X": 34272,
- "Y": 768,
- "Z": 27186,
- "Room": 200,
- "KeyItemGroupID": 11416
- },
- {
- "X": 42541,
- "Y": 2560,
- "Z": 26154,
- "Room": 201,
- "KeyItemGroupID": 11416
- },
- {
- "X": 47621,
- "Y": 2689,
- "Z": 26152,
- "Room": 201,
- "KeyItemGroupID": 11416
- },
- {
- "X": 14738,
- "Y": 4352,
- "Z": 46546,
- "Room": 215,
- "KeyItemGroupID": 11446
- },
- {
- "X": 15888,
- "Y": 4352,
- "Z": 47639,
- "Room": 215,
- "KeyItemGroupID": 11446
- },
- {
- "X": 22016,
- "Y": 4352,
- "Z": 57856,
- "Room": 211,
- "KeyItemGroupID": 11446
- },
- {
- "X": 15860,
- "Y": 4352,
- "Z": 64035,
- "Room": 211,
- "KeyItemGroupID": 11446
- },
- {
- "X": 26075,
- "Y": 5376,
- "Z": 58858,
- "Room": 213,
- "KeyItemGroupID": 11446
- },
- {
- "X": 14864,
- "Y": 5888,
- "Z": 52732,
- "Room": 221,
- "KeyItemGroupID": 11446
- },
- {
- "X": 22033,
- "Y": 4096,
- "Z": 69150,
- "Room": 212,
- "KeyItemGroupID": 11446
- },
- {
- "X": 46547,
- "Y": 5236,
- "Z": 70121,
- "Room": 98,
- "KeyItemGroupID": 11371
- },
- {
- "X": 57856,
- "Y": 4864,
- "Z": 74240,
- "Room": 101,
- "KeyItemGroupID": 11371
- },
- {
- "X": 57830,
- "Y": 3584,
- "Z": 91685,
- "Room": 118,
- "KeyItemGroupID": 11371
- },
- {
- "X": 54784,
- "Y": 3840,
- "Z": 94720,
- "Room": 111,
- "KeyItemGroupID": 11371
- },
- {
- "X": 61952,
- "Y": 3840,
- "Z": 93696,
- "Room": 110,
- "KeyItemGroupID": 11371
- },
- {
- "X": 57913,
- "Y": 3840,
- "Z": 96731,
- "Room": 112,
- "KeyItemGroupID": 11371
- },
- {
- "X": 59925,
- "Y": 1280,
- "Z": 92739,
- "Room": 126,
- "KeyItemGroupID": 11371
- },
- {
- "X": 56832,
- "Y": -1536,
- "Z": 94720,
- "Room": 14,
- "KeyItemGroupID": 11371
- },
- {
- "X": 50688,
- "Y": 256,
- "Z": 75264,
- "Room": 165,
- "KeyItemGroupID": 11371
- },
- {
- "X": 56832,
- "Y": -512,
- "Z": 57856,
- "Room": 198,
- "KeyItemGroupID": 11371
- },
- {
- "X": 56832,
- "Y": 1280,
- "Z": 94720,
- "Room": 123,
- "KeyItemGroupID": 11371
- },
- {
- "X": 56832,
- "Y": 4864,
- "Z": 74240,
- "Room": 101,
- "KeyItemGroupID": 11371
- },
- {
- "X": 36329,
- "Y": 5120,
- "Z": 93656,
- "Room": 141,
- "KeyItemGroupID": 11371
- },
- {
- "X": 36302,
- "Y": 5120,
- "Z": 97818,
- "Room": 140,
- "KeyItemGroupID": 11371
- },
- {
- "X": 35328,
- "Y": 4864,
- "Z": 87552,
- "Room": 147,
- "KeyItemGroupID": 11371
- },
- {
- "X": 54784,
- "Y": 1280,
- "Z": 84480,
- "Room": 161,
- "KeyItemGroupID": 11371
- },
- {
- "X": 40448,
- "Y": 5632,
- "Z": 93696,
- "Room": 132,
- "KeyItemGroupID": 11371
- },
- {
- "X": 33313,
- "Y": 2816,
- "Z": 53703,
- "Room": 206,
- "KeyItemGroupID": 11411
- },
- {
- "X": 33280,
- "Y": 1536,
- "Z": 56832,
- "Room": 207,
- "KeyItemGroupID": 11411
- },
- {
- "X": 42497,
- "Y": 3584,
- "Z": 53740,
- "Room": 204,
- "KeyItemGroupID": 11411
- },
- {
- "X": 42479,
- "Y": 4608,
- "Z": 57844,
- "Room": 219,
- "KeyItemGroupID": 11411
- },
- {
- "X": 51712,
- "Y": 3328,
- "Z": 54784,
- "Room": 195,
- "KeyItemGroupID": 11411
- },
- {
- "X": 33257,
- "Y": 1536,
- "Z": 59901,
- "Room": 207,
- "KeyItemGroupID": 11410
- },
- {
- "X": 33292,
- "Y": 2816,
- "Z": 62983,
- "Room": 206,
- "KeyItemGroupID": 11410
- },
- {
- "X": 42475,
- "Y": 3584,
- "Z": 63049,
- "Room": 204,
- "KeyItemGroupID": 11410
- },
- {
- "X": 42496,
- "Y": 4608,
- "Z": 58880,
- "Room": 219,
- "KeyItemGroupID": 11410
- },
- {
- "X": 51712,
- "Y": 3328,
- "Z": 60928,
- "Room": 195,
- "KeyItemGroupID": 11410
- },
- {
- "X": 49664,
- "Y": -512,
- "Z": 53760,
- "Room": 197,
- "KeyItemGroupID": 11410
- },
- {
- "X": 51712,
- "Y": -512,
- "Z": 62976,
- "Room": 197,
- "KeyItemGroupID": 11410
- },
- {
- "X": 47616,
- "Y": 256,
- "Z": 72192,
- "Room": 166,
- "KeyItemGroupID": 11410
- }
- ],
- "QUADCHAS.TR2": [
- {
- "X": 45535,
- "Y": -2816,
- "Z": 35318,
- "Room": 55,
- "KeyItemGroupID": 12323
- },
- {
- "X": 50688,
- "Y": -2304,
- "Z": 35328,
- "Room": 99,
- "KeyItemGroupID": 12323
- },
- {
- "X": 47616,
- "Y": -2560,
- "Z": 40448,
- "Room": 98,
- "KeyItemGroupID": 12323
- },
- {
- "X": 45568,
- "Y": -2560,
- "Z": 41472,
- "Room": 98,
- "KeyItemGroupID": 12323
- },
- {
- "X": 48631,
- "Y": -2560,
- "Z": 45559,
- "Room": 98,
- "KeyItemGroupID": 12323
- },
- {
- "X": 52807,
- "Y": -2560,
- "Z": 42453,
- "Room": 91,
- "KeyItemGroupID": 12323
- },
- {
- "X": 55789,
- "Y": -2560,
- "Z": 44469,
- "Room": 91,
- "KeyItemGroupID": 12323
- },
- {
- "X": 54803,
- "Y": -1024,
- "Z": 47673,
- "Room": 89,
- "KeyItemGroupID": 12323
- },
- {
- "X": 50709,
- "Y": 768,
- "Z": 55834,
- "Room": 30,
- "KeyItemGroupID": 12323
- },
- {
- "X": 62941,
- "Y": -2304,
- "Z": 44561,
- "Room": 87,
- "KeyItemGroupID": 12323
- },
- {
- "X": 63890,
- "Y": -2560,
- "Z": 41486,
- "Room": 87,
- "KeyItemGroupID": 12323
- },
- {
- "X": 64000,
- "Y": -2560,
- "Z": 37376,
- "Room": 86,
- "KeyItemGroupID": 12323
- },
- {
- "X": 63992,
- "Y": -768,
- "Z": 37357,
- "Room": 85,
- "KeyItemGroupID": 12323
- },
- {
- "X": 54761,
- "Y": -768,
- "Z": 36358,
- "Room": 88,
- "KeyItemGroupID": 12323
- },
- {
- "X": 59925,
- "Y": -2816,
- "Z": 44491,
- "Room": 87,
- "KeyItemGroupID": 12323
- },
- {
- "X": 77312,
- "Y": 256,
- "Z": 34304,
- "Room": 72,
- "KeyItemGroupID": 12239
- },
- {
- "X": 75248,
- "Y": -643,
- "Z": 33264,
- "Room": 72,
- "KeyItemGroupID": 12239
- },
- {
- "X": 73216,
- "Y": -768,
- "Z": 33280,
- "Room": 59,
- "KeyItemGroupID": 12239
- },
- {
- "X": 70144,
- "Y": 512,
- "Z": 29184,
- "Room": 60,
- "KeyItemGroupID": 12239
- },
- {
- "X": 70144,
- "Y": 512,
- "Z": 30208,
- "Room": 60,
- "KeyItemGroupID": 12239
- },
- {
- "X": 70174,
- "Y": 768,
- "Z": 41523,
- "Room": 63,
- "KeyItemGroupID": 12239
- },
- {
- "X": 72192,
- "Y": 256,
- "Z": 36352,
- "Room": 78,
- "KeyItemGroupID": 12239
- },
- {
- "X": 71168,
- "Y": 1536,
- "Z": 41472,
- "Room": 79,
- "KeyItemGroupID": 12239
- },
- {
- "X": 72271,
- "Y": 1536,
- "Z": 43627,
- "Room": 79,
- "KeyItemGroupID": 12239
- },
- {
- "X": 67044,
- "Y": 512,
- "Z": 42424,
- "Room": 80,
- "KeyItemGroupID": 12239
- },
- {
- "X": 67083,
- "Y": 512,
- "Z": 45537,
- "Room": 80,
- "KeyItemGroupID": 12239
- },
- {
- "X": 80384,
- "Y": 3072,
- "Z": 30208,
- "Room": 75,
- "KeyItemGroupID": 12239
- },
- {
- "X": 73319,
- "Y": 512,
- "Z": 26118,
- "Room": 58,
- "KeyItemGroupID": 12239
- }
- ],
- "SHORE.TR2": [
- {
- "X": 32294,
- "Y": 3119,
- "Z": 93791,
- "Room": 130,
- "KeyItemGroupID": 17222
- },
- {
- "X": 35305,
- "Y": 2560,
- "Z": 91662,
- "Room": 164,
- "KeyItemGroupID": 17222
- },
- {
- "X": 25088,
- "Y": 2432,
- "Z": 93696,
- "Room": 53,
- "KeyItemGroupID": 17222
- },
- {
- "X": 30199,
- "Y": -1024,
- "Z": 89647,
- "Room": 120,
- "KeyItemGroupID": 17222
- },
- {
- "X": 34282,
- "Y": -1024,
- "Z": 89553,
- "Room": 121,
- "KeyItemGroupID": 17222
- },
- {
- "X": 36352,
- "Y": -2304,
- "Z": 94720,
- "Room": 127,
- "KeyItemGroupID": 17222
- },
- {
- "X": 42496,
- "Y": -2560,
- "Z": 91648,
- "Room": 134,
- "KeyItemGroupID": 17222
- },
- {
- "X": 38927,
- "Y": -768,
- "Z": 91133,
- "Room": 121,
- "KeyItemGroupID": 17222
- },
- {
- "X": 27146,
- "Y": -773,
- "Z": 90655,
- "Room": 120,
- "KeyItemGroupID": 17222
- },
- {
- "X": 27637,
- "Y": 1789,
- "Z": 91735,
- "Room": 135,
- "KeyItemGroupID": 17222
- },
- {
- "X": 37914,
- "Y": -4096,
- "Z": 87525,
- "Room": 121,
- "KeyItemGroupID": 17326
- },
- {
- "X": 28168,
- "Y": -5616,
- "Z": 87583,
- "Room": 120,
- "KeyItemGroupID": 17326
- },
- {
- "X": 29164,
- "Y": -4352,
- "Z": 88496,
- "Room": 120,
- "KeyItemGroupID": 17326
- },
- {
- "X": 41471,
- "Y": -4217,
- "Z": 87576,
- "Room": 121,
- "KeyItemGroupID": 17326
- },
- {
- "X": 20998,
- "Y": -6400,
- "Z": 86528,
- "Room": 123,
- "KeyItemGroupID": 17326
- },
- {
- "X": 25088,
- "Y": -7424,
- "Z": 84480,
- "Room": 178,
- "KeyItemGroupID": 17326
- },
- {
- "X": 22016,
- "Y": -2048,
- "Z": 89600,
- "Room": 119,
- "KeyItemGroupID": 17326
- },
- {
- "X": 18949,
- "Y": -1020,
- "Z": 92691,
- "Room": 119,
- "KeyItemGroupID": 17326
- },
- {
- "X": 14848,
- "Y": -384,
- "Z": 78336,
- "Room": 14,
- "KeyItemGroupID": 17326
- },
- {
- "X": 16805,
- "Y": -6866,
- "Z": 86505,
- "Room": 122,
- "KeyItemGroupID": 17329
- },
- {
- "X": 12780,
- "Y": -6019,
- "Z": 85516,
- "Room": 122,
- "KeyItemGroupID": 17329
- },
- {
- "X": 13861,
- "Y": -5888,
- "Z": 88511,
- "Room": 122,
- "KeyItemGroupID": 17329
- },
- {
- "X": 15827,
- "Y": -5888,
- "Z": 88620,
- "Room": 122,
- "KeyItemGroupID": 17329
- },
- {
- "X": 17120,
- "Y": -5888,
- "Z": 90422,
- "Room": 122,
- "KeyItemGroupID": 17329
- },
- {
- "X": 17920,
- "Y": -6784,
- "Z": 92672,
- "Room": 123,
- "KeyItemGroupID": 17329
- },
- {
- "X": 13942,
- "Y": -256,
- "Z": 79425,
- "Room": 14,
- "KeyItemGroupID": 17329
- },
- {
- "X": 17803,
- "Y": -256,
- "Z": 79586,
- "Room": 14,
- "KeyItemGroupID": 17329
- },
- {
- "X": 15828,
- "Y": -1024,
- "Z": 81705,
- "Room": 14,
- "KeyItemGroupID": 17329
- },
- {
- "X": 18944,
- "Y": -1792,
- "Z": 80384,
- "Room": 14,
- "KeyItemGroupID": 17329
- },
- {
- "X": 31229,
- "Y": 1666,
- "Z": 17914,
- "Room": 7,
- "KeyItemGroupID": 17231
- },
- {
- "X": 14848,
- "Y": -1280,
- "Z": 26112,
- "Room": 3,
- "KeyItemGroupID": 17231
- },
- {
- "X": 14873,
- "Y": -128,
- "Z": 25090,
- "Room": 3,
- "KeyItemGroupID": 17231
- },
- {
- "X": 23527,
- "Y": 3318,
- "Z": 29658,
- "Room": 7,
- "KeyItemGroupID": 17231
- },
- {
- "X": 31255,
- "Y": 2048,
- "Z": 30190,
- "Room": 7,
- "KeyItemGroupID": 17231
- },
- {
- "X": 23058,
- "Y": -249,
- "Z": 36837,
- "Room": 173,
- "KeyItemGroupID": 17231
- },
- {
- "X": 30500,
- "Y": -201,
- "Z": 36065,
- "Room": 0,
- "KeyItemGroupID": 17231
- },
- {
- "X": 21579,
- "Y": -428,
- "Z": 43902,
- "Room": 173,
- "KeyItemGroupID": 17231
- },
- {
- "X": 14421,
- "Y": -450,
- "Z": 45834,
- "Room": 2,
- "KeyItemGroupID": 17231
- },
- {
- "X": 8761,
- "Y": -436,
- "Z": 46801,
- "Room": 2,
- "KeyItemGroupID": 17231
- },
- {
- "X": 3814,
- "Y": -179,
- "Z": 45274,
- "Room": 2,
- "KeyItemGroupID": 17231
- },
- {
- "X": 2582,
- "Y": 645,
- "Z": 41524,
- "Room": 5,
- "KeyItemGroupID": 17231
- },
- {
- "X": 11234,
- "Y": 2304,
- "Z": 36839,
- "Room": 5,
- "KeyItemGroupID": 17231
- },
- {
- "X": 13844,
- "Y": -555,
- "Z": 38393,
- "Room": 2,
- "KeyItemGroupID": 17231
- }
- ],
- "CRASH.TR2": [
- {
- "X": 35337,
- "Y": 2048,
- "Z": 59890,
- "Room": 46,
- "KeyItemGroupID": 18270
- },
- {
- "X": 39501,
- "Y": 2048,
- "Z": 63990,
- "Room": 46,
- "KeyItemGroupID": 18270
- },
- {
- "X": 32751,
- "Y": 2048,
- "Z": 66583,
- "Room": 46,
- "KeyItemGroupID": 18270
- },
- {
- "X": 23814,
- "Y": 1794,
- "Z": 62455,
- "Room": 47,
- "KeyItemGroupID": 18270
- },
- {
- "X": 19968,
- "Y": 1792,
- "Z": 68096,
- "Room": 47,
- "KeyItemGroupID": 18270
- },
- {
- "X": 18944,
- "Y": 1024,
- "Z": 50688,
- "Room": 45,
- "KeyItemGroupID": 18270
- },
- {
- "X": 26112,
- "Y": 2048,
- "Z": 45568,
- "Room": 45,
- "KeyItemGroupID": 18270
- },
- {
- "X": 20992,
- "Y": 2048,
- "Z": 47616,
- "Room": 45,
- "KeyItemGroupID": 18270
- },
- {
- "X": 19968,
- "Y": 2048,
- "Z": 51712,
- "Room": 45,
- "KeyItemGroupID": 18270
- },
- {
- "X": 27136,
- "Y": 2048,
- "Z": 51712,
- "Room": 45,
- "KeyItemGroupID": 18270
- },
- {
- "X": 35330,
- "Y": -512,
- "Z": 45552,
- "Room": 48,
- "KeyItemGroupID": 18270
- },
- {
- "X": 33308,
- "Y": -512,
- "Z": 55775,
- "Room": 48,
- "KeyItemGroupID": 18270
- },
- {
- "X": 37376,
- "Y": -1664,
- "Z": 53760,
- "Room": 53,
- "KeyItemGroupID": 18270
- },
- {
- "X": 41472,
- "Y": -512,
- "Z": 47616,
- "Room": 48,
- "KeyItemGroupID": 18270
- },
- {
- "X": 50661,
- "Y": -3072,
- "Z": 49802,
- "Room": 2,
- "KeyItemGroupID": 18270
- },
- {
- "X": 52209,
- "Y": -252,
- "Z": 44001,
- "Room": 78,
- "KeyItemGroupID": 18270
- },
- {
- "X": 57341,
- "Y": -764,
- "Z": 44024,
- "Room": 78,
- "KeyItemGroupID": 18270
- },
- {
- "X": 48639,
- "Y": -2304,
- "Z": 57853,
- "Room": 6,
- "KeyItemGroupID": 18270
- },
- {
- "X": 50498,
- "Y": -768,
- "Z": 61943,
- "Room": 23,
- "KeyItemGroupID": 18270
- },
- {
- "X": 51644,
- "Y": -2304,
- "Z": 59957,
- "Room": 23,
- "KeyItemGroupID": 18270
- },
- {
- "X": 61952,
- "Y": -2048,
- "Z": 62976,
- "Room": 25,
- "KeyItemGroupID": 18270
- },
- {
- "X": 64000,
- "Y": 0,
- "Z": 15872,
- "Room": 72,
- "KeyItemGroupID": 18255
- },
- {
- "X": 64000,
- "Y": 0,
- "Z": 18944,
- "Room": 72,
- "KeyItemGroupID": 18255
- },
- {
- "X": 61952,
- "Y": 256,
- "Z": 18944,
- "Room": 72,
- "KeyItemGroupID": 18255
- },
- {
- "X": 61952,
- "Y": 256,
- "Z": 19968,
- "Room": 72,
- "KeyItemGroupID": 18255
- },
- {
- "X": 58880,
- "Y": 0,
- "Z": 20992,
- "Room": 72,
- "KeyItemGroupID": 18255
- },
- {
- "X": 70172,
- "Y": -270,
- "Z": 22975,
- "Room": 57,
- "KeyItemGroupID": 18255
- },
- {
- "X": 72221,
- "Y": 2560,
- "Z": 29181,
- "Room": 61,
- "KeyItemGroupID": 18255
- },
- {
- "X": 68068,
- "Y": 2560,
- "Z": 26149,
- "Room": 61,
- "KeyItemGroupID": 18255
- },
- {
- "X": 63972,
- "Y": 2560,
- "Z": 26184,
- "Room": 61,
- "KeyItemGroupID": 18255
- },
- {
- "X": 68096,
- "Y": 0,
- "Z": 30208,
- "Room": 57,
- "KeyItemGroupID": 18255
- },
- {
- "X": 68096,
- "Y": -4608,
- "Z": 31232,
- "Room": 59,
- "KeyItemGroupID": 18255
- },
- {
- "X": 68096,
- "Y": -6144,
- "Z": 27136,
- "Room": 60,
- "KeyItemGroupID": 18255
- },
- {
- "X": 72192,
- "Y": -6144,
- "Z": 30208,
- "Room": 60,
- "KeyItemGroupID": 18255
- },
- {
- "X": 70144,
- "Y": -8576,
- "Z": 25088,
- "Room": 62,
- "KeyItemGroupID": 18255
- },
- {
- "X": 63994,
- "Y": -6144,
- "Z": 24022,
- "Room": 60,
- "KeyItemGroupID": 18255
- },
- {
- "X": 71170,
- "Y": 0,
- "Z": 58792,
- "Room": 1,
- "KeyItemGroupID": 18255
- },
- {
- "X": 78332,
- "Y": 0,
- "Z": 56824,
- "Room": 1,
- "KeyItemGroupID": 18255
- },
- {
- "X": 80340,
- "Y": 0,
- "Z": 44551,
- "Room": 1,
- "KeyItemGroupID": 18255
- },
- {
- "X": 56832,
- "Y": 1024,
- "Z": 39424,
- "Room": 29,
- "KeyItemGroupID": 18255
- },
- {
- "X": 52736,
- "Y": 1024,
- "Z": 36352,
- "Room": 29,
- "KeyItemGroupID": 18255
- },
- {
- "X": 52736,
- "Y": 1024,
- "Z": 33280,
- "Room": 29,
- "KeyItemGroupID": 18255
- },
- {
- "X": 54784,
- "Y": 1024,
- "Z": 30208,
- "Room": 29,
- "KeyItemGroupID": 18255
- },
- {
- "X": 56832,
- "Y": 1024,
- "Z": 30208,
- "Room": 29,
- "KeyItemGroupID": 18255
- },
- {
- "X": 58880,
- "Y": 1024,
- "Z": 33280,
- "Room": 29,
- "KeyItemGroupID": 18255
- },
- {
- "X": 58880,
- "Y": 1024,
- "Z": 36352,
- "Room": 29,
- "KeyItemGroupID": 18255
- }
- ],
- "ROOFS.TR2": [
- {
- "X": 63054,
- "Y": -19200,
- "Z": 48568,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 57856,
- "Y": -19200,
- "Z": 43500,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 52694,
- "Y": -19200,
- "Z": 48596,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 57856,
- "Y": -19200,
- "Z": 54784,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 54784,
- "Y": -19200,
- "Z": 48640,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 51716,
- "Y": -19200,
- "Z": 42481,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 63012,
- "Y": -19200,
- "Z": 42545,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 51659,
- "Y": -19200,
- "Z": 54749,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 62947,
- "Y": -19200,
- "Z": 54771,
- "Room": 2,
- "KeyItemGroupID": 21225
- },
- {
- "X": 50688,
- "Y": -13312,
- "Z": 55808,
- "Room": 140,
- "KeyItemGroupID": 21225
- },
- {
- "X": 57841,
- "Y": -18176,
- "Z": 41452,
- "Room": 106,
- "KeyItemGroupID": 21225
- },
- {
- "X": 57922,
- "Y": -18176,
- "Z": 38432,
- "Room": 106,
- "KeyItemGroupID": 21225
- },
- {
- "X": 57821,
- "Y": -20224,
- "Z": 34307,
- "Room": 112,
- "KeyItemGroupID": 21225
- },
- {
- "X": 61873,
- "Y": -19200,
- "Z": 35310,
- "Room": 112,
- "KeyItemGroupID": 21225
- },
- {
- "X": 53799,
- "Y": -19200,
- "Z": 35366,
- "Room": 112,
- "KeyItemGroupID": 21225
- },
- {
- "X": 62976,
- "Y": -15104,
- "Z": 41472,
- "Room": 108,
- "KeyItemGroupID": 21225
- },
- {
- "X": 63958,
- "Y": -19200,
- "Z": 26179,
- "Room": 112,
- "KeyItemGroupID": 21225
- },
- {
- "X": 41472,
- "Y": -15104,
- "Z": 53760,
- "Room": 158,
- "KeyItemGroupID": 21396
- },
- {
- "X": 40448,
- "Y": -15104,
- "Z": 53760,
- "Room": 158,
- "KeyItemGroupID": 21396
- },
- {
- "X": 37376,
- "Y": -8704,
- "Z": 47616,
- "Room": 174,
- "KeyItemGroupID": 21396
- },
- {
- "X": 37376,
- "Y": -8704,
- "Z": 50688,
- "Room": 174,
- "KeyItemGroupID": 21396
- },
- {
- "X": 41472,
- "Y": -12032,
- "Z": 50688,
- "Room": 173,
- "KeyItemGroupID": 21396
- },
- {
- "X": 41472,
- "Y": -8704,
- "Z": 47616,
- "Room": 174,
- "KeyItemGroupID": 21396
- },
- {
- "X": 43520,
- "Y": -13824,
- "Z": 46592,
- "Room": 156,
- "KeyItemGroupID": 21396
- },
- {
- "X": 41472,
- "Y": -13824,
- "Z": 46592,
- "Room": 156,
- "KeyItemGroupID": 21396
- },
- {
- "X": 38400,
- "Y": -14848,
- "Z": 45568,
- "Room": 95,
- "KeyItemGroupID": 21396
- },
- {
- "X": 36400,
- "Y": -12288,
- "Z": 45541,
- "Room": 96,
- "KeyItemGroupID": 21396
- },
- {
- "X": 42493,
- "Y": -13568,
- "Z": 41486,
- "Room": 96,
- "KeyItemGroupID": 21396
- },
- {
- "X": 36262,
- "Y": -13568,
- "Z": 41496,
- "Room": 96,
- "KeyItemGroupID": 21396
- },
- {
- "X": 39424,
- "Y": -17792,
- "Z": 45568,
- "Room": 86,
- "KeyItemGroupID": 21396
- },
- {
- "X": 37389,
- "Y": -16384,
- "Z": 41387,
- "Room": 86,
- "KeyItemGroupID": 21396
- },
- {
- "X": 43552,
- "Y": -16520,
- "Z": 42493,
- "Room": 86,
- "KeyItemGroupID": 21396
- },
- {
- "X": 44557,
- "Y": -17926,
- "Z": 45591,
- "Room": 86,
- "KeyItemGroupID": 21396
- }
- ],
- "SEWER.TR2": [
- {
- "X": 60994,
- "Y": -8704,
- "Z": 84520,
- "Room": 110,
- "KeyItemGroupID": 22262
- },
- {
- "X": 60916,
- "Y": -8704,
- "Z": 88659,
- "Room": 110,
- "KeyItemGroupID": 22262
- },
- {
- "X": 69144,
- "Y": -8704,
- "Z": 88594,
- "Room": 110,
- "KeyItemGroupID": 22262
- },
- {
- "X": 67018,
- "Y": -8704,
- "Z": 84514,
- "Room": 110,
- "KeyItemGroupID": 22262
- },
- {
- "X": 63003,
- "Y": -5888,
- "Z": 89615,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 67085,
- "Y": -5888,
- "Z": 89594,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 68008,
- "Y": -5888,
- "Z": 89616,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 66021,
- "Y": -7424,
- "Z": 85547,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 63969,
- "Y": -7424,
- "Z": 85542,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 68097,
- "Y": -5888,
- "Z": 79384,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 66030,
- "Y": -5888,
- "Z": 79348,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 63999,
- "Y": -5888,
- "Z": 79365,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 61923,
- "Y": -5888,
- "Z": 79289,
- "Room": 37,
- "KeyItemGroupID": 22262
- },
- {
- "X": 70144,
- "Y": -8704,
- "Z": 82432,
- "Room": 110,
- "KeyItemGroupID": 22262
- },
- {
- "X": 43563,
- "Y": 1023,
- "Z": 24071,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 43576,
- "Y": 1024,
- "Z": 25082,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 49641,
- "Y": 1024,
- "Z": 23043,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 49707,
- "Y": 1024,
- "Z": 22003,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 50687,
- "Y": 1024,
- "Z": 19893,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 50759,
- "Y": 1024,
- "Z": 25099,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 52779,
- "Y": 1024,
- "Z": 23060,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 52763,
- "Y": 1024,
- "Z": 22013,
- "Room": 1,
- "KeyItemGroupID": 22334
- },
- {
- "X": 61951,
- "Y": 768,
- "Z": 56904,
- "Room": 42,
- "KeyItemGroupID": 22247
- },
- {
- "X": 63986,
- "Y": 768,
- "Z": 56956,
- "Room": 42,
- "KeyItemGroupID": 22247
- },
- {
- "X": 40529,
- "Y": 2287,
- "Z": 55793,
- "Room": 51,
- "KeyItemGroupID": 22247
- },
- {
- "X": 40606,
- "Y": 2302,
- "Z": 54935,
- "Room": 51,
- "KeyItemGroupID": 22247
- },
- {
- "X": 73170,
- "Y": 3054,
- "Z": 55830,
- "Room": 148,
- "KeyItemGroupID": 22247
- },
- {
- "X": 73143,
- "Y": 3035,
- "Z": 54711,
- "Room": 148,
- "KeyItemGroupID": 22247
- },
- {
- "X": 57312,
- "Y": 1536,
- "Z": 55316,
- "Room": 42,
- "KeyItemGroupID": 22247
- },
- {
- "X": 56804,
- "Y": 768,
- "Z": 59399,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 58862,
- "Y": 768,
- "Z": 59438,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 60935,
- "Y": 766,
- "Z": 59398,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 50658,
- "Y": 768,
- "Z": 60941,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 50696,
- "Y": 768,
- "Z": 62993,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 54784,
- "Y": 768,
- "Z": 56832,
- "Room": 42,
- "KeyItemGroupID": 22247
- },
- {
- "X": 54784,
- "Y": 768,
- "Z": 57856,
- "Room": 42,
- "KeyItemGroupID": 22247
- },
- {
- "X": 52713,
- "Y": 256,
- "Z": 58855,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 61935,
- "Y": 768,
- "Z": 60928,
- "Room": 41,
- "KeyItemGroupID": 22247
- },
- {
- "X": 44514,
- "Y": -4096,
- "Z": 84471,
- "Room": 89,
- "KeyItemGroupID": 22301
- },
- {
- "X": 44498,
- "Y": -2816,
- "Z": 88453,
- "Room": 77,
- "KeyItemGroupID": 22301
- },
- {
- "X": 46583,
- "Y": -2304,
- "Z": 85565,
- "Room": 77,
- "KeyItemGroupID": 22301
- },
- {
- "X": 57855,
- "Y": -5888,
- "Z": 89591,
- "Room": 82,
- "KeyItemGroupID": 22301
- },
- {
- "X": 41530,
- "Y": -6912,
- "Z": 86540,
- "Room": 92,
- "KeyItemGroupID": 22301
- },
- {
- "X": 51705,
- "Y": -4096,
- "Z": 78339,
- "Room": 67,
- "KeyItemGroupID": 22301
- },
- {
- "X": 52802,
- "Y": -4096,
- "Z": 81413,
- "Room": 60,
- "KeyItemGroupID": 22301
- },
- {
- "X": 40456,
- "Y": -2560,
- "Z": 91650,
- "Room": 131,
- "KeyItemGroupID": 22301
- },
- {
- "X": 55817,
- "Y": -2048,
- "Z": 91634,
- "Room": 129,
- "KeyItemGroupID": 22301
- },
- {
- "X": 40444,
- "Y": -3840,
- "Z": 64034,
- "Room": 55,
- "KeyItemGroupID": 22301
- },
- {
- "X": 45558,
- "Y": -3328,
- "Z": 73241,
- "Room": 55,
- "KeyItemGroupID": 22301
- },
- {
- "X": 46633,
- "Y": -2048,
- "Z": 71165,
- "Room": 118,
- "KeyItemGroupID": 22301
- },
- {
- "X": 38407,
- "Y": -3328,
- "Z": 68076,
- "Room": 55,
- "KeyItemGroupID": 22301
- },
- {
- "X": 51722,
- "Y": -2304,
- "Z": 62970,
- "Room": 69,
- "KeyItemGroupID": 22235
- },
- {
- "X": 51675,
- "Y": -2048,
- "Z": 61935,
- "Room": 69,
- "KeyItemGroupID": 22235
- },
- {
- "X": 62976,
- "Y": -2304,
- "Z": 62976,
- "Room": 69,
- "KeyItemGroupID": 22235
- },
- {
- "X": 62932,
- "Y": -2304,
- "Z": 61940,
- "Room": 69,
- "KeyItemGroupID": 22235
- },
- {
- "X": 55813,
- "Y": 512,
- "Z": 67083,
- "Room": 58,
- "KeyItemGroupID": 22235
- },
- {
- "X": 54777,
- "Y": 2557,
- "Z": 65019,
- "Room": 102,
- "KeyItemGroupID": 22235
- },
- {
- "X": 54615,
- "Y": 5120,
- "Z": 66041,
- "Room": 50,
- "KeyItemGroupID": 22235
- },
- {
- "X": 54797,
- "Y": 9472,
- "Z": 66052,
- "Room": 64,
- "KeyItemGroupID": 22235
- },
- {
- "X": 57862,
- "Y": 9728,
- "Z": 66027,
- "Room": 64,
- "KeyItemGroupID": 22235
- },
- {
- "X": 55816,
- "Y": 12800,
- "Z": 65015,
- "Room": 6,
- "KeyItemGroupID": 22235
- },
- {
- "X": 57866,
- "Y": 13568,
- "Z": 66030,
- "Room": 65,
- "KeyItemGroupID": 22235
- },
- {
- "X": 62977,
- "Y": -5888,
- "Z": 85479,
- "Room": 37,
- "KeyItemGroupID": 22243
- },
- {
- "X": 60886,
- "Y": -5888,
- "Z": 85491,
- "Room": 37,
- "KeyItemGroupID": 22243
- },
- {
- "X": 67068,
- "Y": -5888,
- "Z": 85454,
- "Room": 37,
- "KeyItemGroupID": 22243
- },
- {
- "X": 69098,
- "Y": -5888,
- "Z": 85488,
- "Room": 37,
- "KeyItemGroupID": 22243
- },
- {
- "X": 67050,
- "Y": -1280,
- "Z": 66563,
- "Room": 40,
- "KeyItemGroupID": 22243
- },
- {
- "X": 67077,
- "Y": -5888,
- "Z": 77817,
- "Room": 37,
- "KeyItemGroupID": 22243
- },
- {
- "X": 62954,
- "Y": -5888,
- "Z": 77818,
- "Room": 37,
- "KeyItemGroupID": 22243
- },
- {
- "X": 62870,
- "Y": 255,
- "Z": 63755,
- "Room": 39,
- "KeyItemGroupID": 22243
- },
- {
- "X": 49641,
- "Y": -4608,
- "Z": 34303,
- "Room": 62,
- "KeyItemGroupID": 22325
- },
- {
- "X": 48633,
- "Y": -4608,
- "Z": 34308,
- "Room": 62,
- "KeyItemGroupID": 22325
- },
- {
- "X": 46630,
- "Y": -376,
- "Z": 48669,
- "Room": 43,
- "KeyItemGroupID": 22325
- },
- {
- "X": 55287,
- "Y": 672,
- "Z": 51589,
- "Room": 53,
- "KeyItemGroupID": 22325
- },
- {
- "X": 60928,
- "Y": 768,
- "Z": 50688,
- "Room": 43,
- "KeyItemGroupID": 22325
- },
- {
- "X": 58867,
- "Y": 768,
- "Z": 51698,
- "Room": 53,
- "KeyItemGroupID": 22325
- },
- {
- "X": 41472,
- "Y": -256,
- "Z": 50688,
- "Room": 18,
- "KeyItemGroupID": 22325
- },
- {
- "X": 49664,
- "Y": -768,
- "Z": 57856,
- "Room": 45,
- "KeyItemGroupID": 22325
- }
- ],
- "TOWER.TR2": [
- {
- "X": 56852,
- "Y": -4352,
- "Z": 28120,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 56838,
- "Y": -4096,
- "Z": 29195,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 59870,
- "Y": -5632,
- "Z": 30227,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 59912,
- "Y": -4409,
- "Z": 33287,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 59801,
- "Y": -3840,
- "Z": 28158,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 58851,
- "Y": -4352,
- "Z": 26131,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 50674,
- "Y": -5376,
- "Z": 25106,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 49658,
- "Y": -7936,
- "Z": 26133,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 46596,
- "Y": -8730,
- "Z": 31232,
- "Room": 72,
- "KeyItemGroupID": 23293
- },
- {
- "X": 46606,
- "Y": -5888,
- "Z": 27141,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 47633,
- "Y": -5245,
- "Z": 25063,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 48661,
- "Y": -5376,
- "Z": 31266,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 50659,
- "Y": -4225,
- "Z": 31237,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 53758,
- "Y": -6656,
- "Z": 35306,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 49677,
- "Y": -4483,
- "Z": 37369,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 49717,
- "Y": -4352,
- "Z": 35379,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 48640,
- "Y": -1280,
- "Z": 33259,
- "Room": 134,
- "KeyItemGroupID": 23293
- },
- {
- "X": 46577,
- "Y": -2304,
- "Z": 37337,
- "Room": 134,
- "KeyItemGroupID": 23293
- },
- {
- "X": 46592,
- "Y": -1280,
- "Z": 40448,
- "Room": 134,
- "KeyItemGroupID": 23293
- },
- {
- "X": 53760,
- "Y": -1536,
- "Z": 37376,
- "Room": 47,
- "KeyItemGroupID": 23293
- },
- {
- "X": 59078,
- "Y": -5462,
- "Z": 35160,
- "Room": 69,
- "KeyItemGroupID": 23293
- },
- {
- "X": 58882,
- "Y": -2304,
- "Z": 20962,
- "Room": 25,
- "KeyItemGroupID": 23293
- },
- {
- "X": 40448,
- "Y": -30464,
- "Z": 34304,
- "Room": 147,
- "KeyItemGroupID": 23283
- },
- {
- "X": 44544,
- "Y": -30464,
- "Z": 29184,
- "Room": 152,
- "KeyItemGroupID": 23283
- },
- {
- "X": 44544,
- "Y": -30464,
- "Z": 28160,
- "Room": 164,
- "KeyItemGroupID": 23283
- },
- {
- "X": 54784,
- "Y": -28928,
- "Z": 27136,
- "Room": 173,
- "KeyItemGroupID": 23283
- },
- {
- "X": 51794,
- "Y": -27007,
- "Z": 26112,
- "Room": 56,
- "KeyItemGroupID": 23283
- },
- {
- "X": 49637,
- "Y": -22784,
- "Z": 31244,
- "Room": 15,
- "KeyItemGroupID": 23283
- },
- {
- "X": 51683,
- "Y": -20480,
- "Z": 27111,
- "Room": 18,
- "KeyItemGroupID": 23283
- },
- {
- "X": 49623,
- "Y": -23592,
- "Z": 28185,
- "Room": 15,
- "KeyItemGroupID": 23283
- },
- {
- "X": 51704,
- "Y": -14336,
- "Z": 27163,
- "Room": 35,
- "KeyItemGroupID": 23283
- },
- {
- "X": 51685,
- "Y": -18688,
- "Z": 30236,
- "Room": 18,
- "KeyItemGroupID": 23283
- },
- {
- "X": 43520,
- "Y": -13824,
- "Z": 31232,
- "Room": 73,
- "KeyItemGroupID": 23283
- },
- {
- "X": 59887,
- "Y": -13881,
- "Z": 31262,
- "Room": 77,
- "KeyItemGroupID": 23283
- },
- {
- "X": 66048,
- "Y": -14592,
- "Z": 25088,
- "Room": 20,
- "KeyItemGroupID": 23283
- },
- {
- "X": 73233,
- "Y": -15360,
- "Z": 26143,
- "Room": 174,
- "KeyItemGroupID": 23283
- },
- {
- "X": 73246,
- "Y": -15360,
- "Z": 22970,
- "Room": 174,
- "KeyItemGroupID": 23283
- },
- {
- "X": 69120,
- "Y": -18432,
- "Z": 25088,
- "Room": 54,
- "KeyItemGroupID": 23283
- }
- ],
- "NEVADA.TR2": [
- {
- "X": 5632,
- "Y": -3328,
- "Z": 61952,
- "Room": 78,
- "KeyItemGroupID": 14294
- },
- {
- "X": 25088,
- "Y": -3200,
- "Z": 61952,
- "Room": 43,
- "KeyItemGroupID": 14294
- },
- {
- "X": 27629,
- "Y": -3328,
- "Z": 57931,
- "Room": 47,
- "KeyItemGroupID": 14294
- },
- {
- "X": 13824,
- "Y": -3328,
- "Z": 53760,
- "Room": 48,
- "KeyItemGroupID": 14294
- },
- {
- "X": 14875,
- "Y": -3328,
- "Z": 62998,
- "Room": 130,
- "KeyItemGroupID": 14294
- },
- {
- "X": 27225,
- "Y": -3328,
- "Z": 50686,
- "Room": 48,
- "KeyItemGroupID": 14294
- },
- {
- "X": 19967,
- "Y": -3200,
- "Z": 46437,
- "Room": 41,
- "KeyItemGroupID": 14294
- },
- {
- "X": 23043,
- "Y": -3200,
- "Z": 43519,
- "Room": 41,
- "KeyItemGroupID": 14294
- },
- {
- "X": 26148,
- "Y": -3328,
- "Z": 42548,
- "Room": 37,
- "KeyItemGroupID": 14294
- },
- {
- "X": 22021,
- "Y": -8704,
- "Z": 74221,
- "Room": 107,
- "KeyItemGroupID": 14294
- },
- {
- "X": 31136,
- "Y": -10240,
- "Z": 76258,
- "Room": 65,
- "KeyItemGroupID": 14294
- },
- {
- "X": 34233,
- "Y": -10240,
- "Z": 73167,
- "Room": 65,
- "KeyItemGroupID": 14294
- },
- {
- "X": 42477,
- "Y": -9728,
- "Z": 78370,
- "Room": 65,
- "KeyItemGroupID": 14294
- },
- {
- "X": 42496,
- "Y": -9728,
- "Z": 74240,
- "Room": 65,
- "KeyItemGroupID": 14294
- },
- {
- "X": 30241,
- "Y": -9728,
- "Z": 68136,
- "Room": 65,
- "KeyItemGroupID": 14294
- },
- {
- "X": 36265,
- "Y": -12800,
- "Z": 86511,
- "Room": 119,
- "KeyItemGroupID": 14294
- },
- {
- "X": 30202,
- "Y": -6695,
- "Z": 56875,
- "Room": 179,
- "KeyItemGroupID": 14294
- },
- {
- "X": 36333,
- "Y": -5376,
- "Z": 78332,
- "Room": 111,
- "KeyItemGroupID": 14294
- },
- {
- "X": 34301,
- "Y": -3199,
- "Z": 42495,
- "Room": 30,
- "KeyItemGroupID": 14294
- },
- {
- "X": 41472,
- "Y": -3840,
- "Z": 43520,
- "Room": 30,
- "KeyItemGroupID": 14294
- },
- {
- "X": 46592,
- "Y": -4096,
- "Z": 44544,
- "Room": 35,
- "KeyItemGroupID": 14294
- },
- {
- "X": 41472,
- "Y": 2304,
- "Z": 51712,
- "Room": 33,
- "KeyItemGroupID": 14294
- },
- {
- "X": 43520,
- "Y": 7936,
- "Z": 43520,
- "Room": 31,
- "KeyItemGroupID": 14294
- },
- {
- "X": 28160,
- "Y": 8704,
- "Z": 42496,
- "Room": 40,
- "KeyItemGroupID": 14294
- },
- {
- "X": 28160,
- "Y": 9472,
- "Z": 39424,
- "Room": 40,
- "KeyItemGroupID": 14294
- },
- {
- "X": 39424,
- "Y": -128,
- "Z": 60928,
- "Room": 174,
- "KeyItemGroupID": 14294
- },
- {
- "X": 48620,
- "Y": -5888,
- "Z": 79358,
- "Room": 154,
- "KeyItemGroupID": 14378
- },
- {
- "X": 48626,
- "Y": -5888,
- "Z": 74265,
- "Room": 154,
- "KeyItemGroupID": 14378
- },
- {
- "X": 53716,
- "Y": -2816,
- "Z": 80362,
- "Room": 151,
- "KeyItemGroupID": 14378
- },
- {
- "X": 46519,
- "Y": -2943,
- "Z": 71168,
- "Room": 149,
- "KeyItemGroupID": 14378
- },
- {
- "X": 51712,
- "Y": -2816,
- "Z": 68096,
- "Room": 115,
- "KeyItemGroupID": 14378
- },
- {
- "X": 49664,
- "Y": -2816,
- "Z": 62976,
- "Room": 114,
- "KeyItemGroupID": 14378
- },
- {
- "X": 45828,
- "Y": -2935,
- "Z": 63967,
- "Room": 114,
- "KeyItemGroupID": 14378
- },
- {
- "X": 45598,
- "Y": -3072,
- "Z": 65041,
- "Room": 113,
- "KeyItemGroupID": 14378
- },
- {
- "X": 43528,
- "Y": -3072,
- "Z": 65031,
- "Room": 113,
- "KeyItemGroupID": 14378
- },
- {
- "X": 42496,
- "Y": -3072,
- "Z": 66048,
- "Room": 113,
- "KeyItemGroupID": 14378
- },
- {
- "X": 45568,
- "Y": -3072,
- "Z": 69120,
- "Room": 113,
- "KeyItemGroupID": 14378
- },
- {
- "X": 47616,
- "Y": -3072,
- "Z": 77312,
- "Room": 156,
- "KeyItemGroupID": 14378
- },
- {
- "X": 55821,
- "Y": -2816,
- "Z": 73239,
- "Room": 152,
- "KeyItemGroupID": 14378
- },
- {
- "X": 66048,
- "Y": 0,
- "Z": 69120,
- "Room": 148,
- "KeyItemGroupID": 14378
- },
- {
- "X": 68096,
- "Y": 0,
- "Z": 68096,
- "Room": 148,
- "KeyItemGroupID": 14378
- },
- {
- "X": 65044,
- "Y": 0,
- "Z": 78323,
- "Room": 144,
- "KeyItemGroupID": 14378
- },
- {
- "X": 70985,
- "Y": 0,
- "Z": 77133,
- "Room": 144,
- "KeyItemGroupID": 14378
- },
- {
- "X": 54784,
- "Y": -2816,
- "Z": 56832,
- "Room": 116,
- "KeyItemGroupID": 14378
- }
- ],
- "COMPOUND.TR2": [
- {
- "X": 93744,
- "Y": -4864,
- "Z": 82426,
- "Room": 74,
- "KeyItemGroupID": 15279
- },
- {
- "X": 95720,
- "Y": -4864,
- "Z": 72180,
- "Room": 74,
- "KeyItemGroupID": 15279
- },
- {
- "X": 88574,
- "Y": -6656,
- "Z": 80414,
- "Room": 76,
- "KeyItemGroupID": 15279
- },
- {
- "X": 74272,
- "Y": -1792,
- "Z": 75252,
- "Room": 39,
- "KeyItemGroupID": 15279
- },
- {
- "X": 75244,
- "Y": -1536,
- "Z": 77328,
- "Room": 39,
- "KeyItemGroupID": 15279
- },
- {
- "X": 70139,
- "Y": 1280,
- "Z": 53740,
- "Room": 65,
- "KeyItemGroupID": 15279
- },
- {
- "X": 78325,
- "Y": 1023,
- "Z": 58897,
- "Room": 66,
- "KeyItemGroupID": 15279
- },
- {
- "X": 77342,
- "Y": 1024,
- "Z": 56860,
- "Room": 65,
- "KeyItemGroupID": 15279
- },
- {
- "X": 75285,
- "Y": 1280,
- "Z": 53796,
- "Room": 65,
- "KeyItemGroupID": 15279
- },
- {
- "X": 72193,
- "Y": -3584,
- "Z": 60966,
- "Room": 33,
- "KeyItemGroupID": 15239
- },
- {
- "X": 71202,
- "Y": -3584,
- "Z": 53788,
- "Room": 33,
- "KeyItemGroupID": 15239
- },
- {
- "X": 75263,
- "Y": -3584,
- "Z": 53771,
- "Room": 33,
- "KeyItemGroupID": 15239
- },
- {
- "X": 75254,
- "Y": -3584,
- "Z": 60924,
- "Room": 33,
- "KeyItemGroupID": 15239
- },
- {
- "X": 77300,
- "Y": -3840,
- "Z": 56835,
- "Room": 33,
- "KeyItemGroupID": 15239
- },
- {
- "X": 77340,
- "Y": -2048,
- "Z": 60960,
- "Room": 34,
- "KeyItemGroupID": 15239
- },
- {
- "X": 70275,
- "Y": -2048,
- "Z": 60908,
- "Room": 34,
- "KeyItemGroupID": 15239
- },
- {
- "X": 73216,
- "Y": -2048,
- "Z": 53760,
- "Room": 34,
- "KeyItemGroupID": 15239
- },
- {
- "X": 78331,
- "Y": 512,
- "Z": 49713,
- "Room": 168,
- "KeyItemGroupID": 15239
- },
- {
- "X": 79352,
- "Y": 6144,
- "Z": 48643,
- "Room": 154,
- "KeyItemGroupID": 15239
- },
- {
- "X": 79348,
- "Y": 9472,
- "Z": 49596,
- "Room": 83,
- "KeyItemGroupID": 15239
- },
- {
- "X": 82466,
- "Y": 4334,
- "Z": 55842,
- "Room": 153,
- "KeyItemGroupID": 15239
- },
- {
- "X": 78342,
- "Y": -256,
- "Z": 56812,
- "Room": 61,
- "KeyItemGroupID": 15239
- },
- {
- "X": 14813,
- "Y": -256,
- "Z": 23035,
- "Room": 1,
- "KeyItemGroupID": 15234
- },
- {
- "X": 11798,
- "Y": -256,
- "Z": 23047,
- "Room": 0,
- "KeyItemGroupID": 15234
- },
- {
- "X": 8688,
- "Y": -256,
- "Z": 23078,
- "Room": 113,
- "KeyItemGroupID": 15234
- },
- {
- "X": 8726,
- "Y": -256,
- "Z": 38387,
- "Room": 3,
- "KeyItemGroupID": 15234
- },
- {
- "X": 11740,
- "Y": -256,
- "Z": 38420,
- "Room": 4,
- "KeyItemGroupID": 15234
- },
- {
- "X": 14864,
- "Y": -256,
- "Z": 38402,
- "Room": 5,
- "KeyItemGroupID": 15234
- },
- {
- "X": 17894,
- "Y": -256,
- "Z": 38354,
- "Room": 6,
- "KeyItemGroupID": 15234
- },
- {
- "X": 11760,
- "Y": 0,
- "Z": 31244,
- "Room": 117,
- "KeyItemGroupID": 15234
- },
- {
- "X": 22004,
- "Y": 256,
- "Z": 26086,
- "Room": 58,
- "KeyItemGroupID": 15234
- },
- {
- "X": 21052,
- "Y": 2048,
- "Z": 29187,
- "Room": 49,
- "KeyItemGroupID": 15234
- },
- {
- "X": 21019,
- "Y": 2048,
- "Z": 26103,
- "Room": 50,
- "KeyItemGroupID": 15234
- },
- {
- "X": 19942,
- "Y": 2048,
- "Z": 17900,
- "Room": 32,
- "KeyItemGroupID": 15234
- },
- {
- "X": 19981,
- "Y": -2816,
- "Z": 38421,
- "Room": 63,
- "KeyItemGroupID": 15234
- },
- {
- "X": 63978,
- "Y": -9472,
- "Z": 50590,
- "Room": 101,
- "KeyItemGroupID": 15355
- },
- {
- "X": 40403,
- "Y": -2304,
- "Z": 50683,
- "Room": 87,
- "KeyItemGroupID": 15355
- },
- {
- "X": 66049,
- "Y": -8704,
- "Z": 45556,
- "Room": 130,
- "KeyItemGroupID": 15355
- },
- {
- "X": 67007,
- "Y": -8704,
- "Z": 43578,
- "Room": 130,
- "KeyItemGroupID": 15355
- },
- {
- "X": 69032,
- "Y": -9728,
- "Z": 46303,
- "Room": 130,
- "KeyItemGroupID": 15355
- },
- {
- "X": 58971,
- "Y": -8960,
- "Z": 36330,
- "Room": 138,
- "KeyItemGroupID": 15355
- },
- {
- "X": 58915,
- "Y": -8960,
- "Z": 34323,
- "Room": 138,
- "KeyItemGroupID": 15355
- },
- {
- "X": 58946,
- "Y": -4864,
- "Z": 33307,
- "Room": 159,
- "KeyItemGroupID": 15355
- },
- {
- "X": 59968,
- "Y": -4864,
- "Z": 20037,
- "Room": 160,
- "KeyItemGroupID": 15355
- },
- {
- "X": 53760,
- "Y": -4864,
- "Z": 22016,
- "Room": 160,
- "KeyItemGroupID": 15355
- },
- {
- "X": 69085,
- "Y": -3840,
- "Z": 34316,
- "Room": 106,
- "KeyItemGroupID": 15355
- },
- {
- "X": 77349,
- "Y": -3840,
- "Z": 29157,
- "Room": 108,
- "KeyItemGroupID": 15355
- },
- {
- "X": 73237,
- "Y": -3584,
- "Z": 27158,
- "Room": 105,
- "KeyItemGroupID": 15355
- },
- {
- "X": 51657,
- "Y": -4864,
- "Z": 17898,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 51717,
- "Y": -4864,
- "Z": 21955,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 54781,
- "Y": -4864,
- "Z": 12777,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 58370,
- "Y": -4608,
- "Z": 13280,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 58400,
- "Y": -4608,
- "Z": 16409,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 51691,
- "Y": -4864,
- "Z": 26109,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 51700,
- "Y": -4864,
- "Z": 30227,
- "Room": 160,
- "KeyItemGroupID": 15366
- },
- {
- "X": 56887,
- "Y": -9216,
- "Z": 39442,
- "Room": 138,
- "KeyItemGroupID": 15366
- },
- {
- "X": 71122,
- "Y": -3584,
- "Z": 33273,
- "Room": 106,
- "KeyItemGroupID": 15366
- },
- {
- "X": 75332,
- "Y": -3584,
- "Z": 31242,
- "Room": 108,
- "KeyItemGroupID": 15366
- },
- {
- "X": 74277,
- "Y": -7936,
- "Z": 37068,
- "Room": 145,
- "KeyItemGroupID": 15366
- },
- {
- "X": 66033,
- "Y": -10240,
- "Z": 40450,
- "Room": 130,
- "KeyItemGroupID": 15366
- },
- {
- "X": 62976,
- "Y": -10496,
- "Z": 43520,
- "Room": 149,
- "KeyItemGroupID": 15366
- },
- {
- "X": 67097,
- "Y": -256,
- "Z": 7666,
- "Room": 129,
- "KeyItemGroupID": 15350
- },
- {
- "X": 68081,
- "Y": 5120,
- "Z": 17944,
- "Room": 41,
- "KeyItemGroupID": 15350
- },
- {
- "X": 74229,
- "Y": 5120,
- "Z": 18014,
- "Room": 41,
- "KeyItemGroupID": 15350
- },
- {
- "X": 74206,
- "Y": 5120,
- "Z": 24065,
- "Room": 41,
- "KeyItemGroupID": 15350
- },
- {
- "X": 68087,
- "Y": 4864,
- "Z": 24039,
- "Room": 41,
- "KeyItemGroupID": 15350
- },
- {
- "X": 72176,
- "Y": 8960,
- "Z": 23089,
- "Room": 124,
- "KeyItemGroupID": 15350
- },
- {
- "X": 63079,
- "Y": 8704,
- "Z": 19945,
- "Room": 142,
- "KeyItemGroupID": 15350
- },
- {
- "X": 64004,
- "Y": 8704,
- "Z": 31229,
- "Room": 144,
- "KeyItemGroupID": 15350
- },
- {
- "X": 77312,
- "Y": 8960,
- "Z": 28160,
- "Room": 162,
- "KeyItemGroupID": 15350
- },
- {
- "X": 76241,
- "Y": 8960,
- "Z": 20972,
- "Room": 162,
- "KeyItemGroupID": 15350
- },
- {
- "X": 81414,
- "Y": 14592,
- "Z": 17874,
- "Room": 183,
- "KeyItemGroupID": 15350
- },
- {
- "X": 74230,
- "Y": 14592,
- "Z": 24025,
- "Room": 161,
- "KeyItemGroupID": 15350
- },
- {
- "X": 68031,
- "Y": 14592,
- "Z": 24065,
- "Room": 161,
- "KeyItemGroupID": 15350
- },
- {
- "X": 68110,
- "Y": 14592,
- "Z": 17901,
- "Room": 161,
- "KeyItemGroupID": 15350
- },
- {
- "X": 71169,
- "Y": 8704,
- "Z": 17931,
- "Room": 118,
- "KeyItemGroupID": 15350
- },
- {
- "X": 75252,
- "Y": 8960,
- "Z": 19985,
- "Room": 118,
- "KeyItemGroupID": 15350
- },
- {
- "X": 82414,
- "Y": -256,
- "Z": 5638,
- "Room": 177,
- "KeyItemGroupID": 15335
- },
- {
- "X": 75264,
- "Y": -256,
- "Z": 7680,
- "Room": 125,
- "KeyItemGroupID": 15335
- },
- {
- "X": 71158,
- "Y": 4834,
- "Z": 19909,
- "Room": 41,
- "KeyItemGroupID": 15335
- },
- {
- "X": 71166,
- "Y": 4853,
- "Z": 22036,
- "Room": 41,
- "KeyItemGroupID": 15335
- },
- {
- "X": 72225,
- "Y": 4847,
- "Z": 20965,
- "Room": 41,
- "KeyItemGroupID": 15335
- },
- {
- "X": 70087,
- "Y": 4835,
- "Z": 21019,
- "Room": 41,
- "KeyItemGroupID": 15335
- },
- {
- "X": 66026,
- "Y": -1024,
- "Z": 19935,
- "Room": 46,
- "KeyItemGroupID": 15335
- },
- {
- "X": 67089,
- "Y": -1280,
- "Z": 23022,
- "Room": 46,
- "KeyItemGroupID": 15335
- },
- {
- "X": 69073,
- "Y": -1280,
- "Z": 22010,
- "Room": 43,
- "KeyItemGroupID": 15335
- },
- {
- "X": 74260,
- "Y": -255,
- "Z": 21002,
- "Room": 43,
- "KeyItemGroupID": 15335
- },
- {
- "X": 71215,
- "Y": -256,
- "Z": 17931,
- "Room": 43,
- "KeyItemGroupID": 15335
- },
- {
- "X": 73205,
- "Y": -3840,
- "Z": 18979,
- "Room": 44,
- "KeyItemGroupID": 15335
- },
- {
- "X": 65798,
- "Y": 8704,
- "Z": 19928,
- "Room": 142,
- "KeyItemGroupID": 15335
- }
- ],
- "AREA51.TR2": [
- {
- "X": 21957,
- "Y": 3584,
- "Z": 62965,
- "Room": 49,
- "KeyItemGroupID": 16257
- },
- {
- "X": 25032,
- "Y": 3588,
- "Z": 62937,
- "Room": 49,
- "KeyItemGroupID": 16257
- },
- {
- "X": 13826,
- "Y": 4864,
- "Z": 54812,
- "Room": 75,
- "KeyItemGroupID": 16257
- },
- {
- "X": 34315,
- "Y": 7424,
- "Z": 57842,
- "Room": 72,
- "KeyItemGroupID": 16257
- },
- {
- "X": 25088,
- "Y": 3584,
- "Z": 55808,
- "Room": 74,
- "KeyItemGroupID": 16257
- },
- {
- "X": 20930,
- "Y": 2816,
- "Z": 49638,
- "Room": 76,
- "KeyItemGroupID": 16257
- },
- {
- "X": 12801,
- "Y": 2816,
- "Z": 50657,
- "Room": 55,
- "KeyItemGroupID": 16257
- },
- {
- "X": 16922,
- "Y": 6912,
- "Z": 49619,
- "Room": 80,
- "KeyItemGroupID": 16257
- },
- {
- "X": 19971,
- "Y": 4864,
- "Z": 56845,
- "Room": 75,
- "KeyItemGroupID": 16257
- },
- {
- "X": 25153,
- "Y": 2816,
- "Z": 72242,
- "Room": 56,
- "KeyItemGroupID": 16257
- },
- {
- "X": 24080,
- "Y": 5888,
- "Z": 70148,
- "Room": 59,
- "KeyItemGroupID": 16257
- },
- {
- "X": 17908,
- "Y": -4724,
- "Z": 45521,
- "Room": 129,
- "KeyItemGroupID": 16233
- },
- {
- "X": 12794,
- "Y": -4864,
- "Z": 46089,
- "Room": 127,
- "KeyItemGroupID": 16233
- },
- {
- "X": 18944,
- "Y": -7936,
- "Z": 47616,
- "Room": 150,
- "KeyItemGroupID": 16233
- },
- {
- "X": 22016,
- "Y": -4864,
- "Z": 50688,
- "Room": 127,
- "KeyItemGroupID": 16233
- },
- {
- "X": 19457,
- "Y": -3840,
- "Z": 54270,
- "Room": 130,
- "KeyItemGroupID": 16233
- },
- {
- "X": 25088,
- "Y": -2816,
- "Z": 62976,
- "Room": 50,
- "KeyItemGroupID": 16233
- },
- {
- "X": 26139,
- "Y": -2304,
- "Z": 65530,
- "Room": 125,
- "KeyItemGroupID": 16233
- },
- {
- "X": 26130,
- "Y": -2304,
- "Z": 58863,
- "Room": 45,
- "KeyItemGroupID": 16233
- },
- {
- "X": 22014,
- "Y": -2816,
- "Z": 62959,
- "Room": 50,
- "KeyItemGroupID": 16233
- },
- {
- "X": 25088,
- "Y": -512,
- "Z": 62976,
- "Room": 53,
- "KeyItemGroupID": 16233
- },
- {
- "X": 48617,
- "Y": -2048,
- "Z": 32256,
- "Room": 99,
- "KeyItemGroupID": 16322
- },
- {
- "X": 47616,
- "Y": -2048,
- "Z": 31220,
- "Room": 99,
- "KeyItemGroupID": 16322
- },
- {
- "X": 40456,
- "Y": -2048,
- "Z": 31225,
- "Room": 99,
- "KeyItemGroupID": 16322
- },
- {
- "X": 44029,
- "Y": -2048,
- "Z": 40454,
- "Room": 99,
- "KeyItemGroupID": 16322
- },
- {
- "X": 48637,
- "Y": -2048,
- "Z": 38911,
- "Room": 99,
- "KeyItemGroupID": 16322
- },
- {
- "X": 42828,
- "Y": -2048,
- "Z": 41987,
- "Room": 103,
- "KeyItemGroupID": 16322
- },
- {
- "X": 49664,
- "Y": -2304,
- "Z": 47616,
- "Room": 120,
- "KeyItemGroupID": 16322
- },
- {
- "X": 37376,
- "Y": -2048,
- "Z": 47616,
- "Room": 96,
- "KeyItemGroupID": 16322
- },
- {
- "X": 33280,
- "Y": -2304,
- "Z": 47616,
- "Room": 123,
- "KeyItemGroupID": 16322
- },
- {
- "X": 29184,
- "Y": -2304,
- "Z": 47616,
- "Room": 123,
- "KeyItemGroupID": 16322
- },
- {
- "X": 39941,
- "Y": -3328,
- "Z": 48630,
- "Room": 96,
- "KeyItemGroupID": 16322
- },
- {
- "X": 39934,
- "Y": -3328,
- "Z": 65025,
- "Room": 3,
- "KeyItemGroupID": 16322
- },
- {
- "X": 43573,
- "Y": -3328,
- "Z": 55867,
- "Room": 3,
- "KeyItemGroupID": 16322
- },
- {
- "X": 36352,
- "Y": -3328,
- "Z": 59904,
- "Room": 3,
- "KeyItemGroupID": 16322
- },
- {
- "X": 43541,
- "Y": -4352,
- "Z": 44525,
- "Room": 97,
- "KeyItemGroupID": 16322
- },
- {
- "X": 36340,
- "Y": -4352,
- "Z": 44544,
- "Room": 97,
- "KeyItemGroupID": 16322
- },
- {
- "X": 13816,
- "Y": 1536,
- "Z": 56844,
- "Room": 78,
- "KeyItemGroupID": 16286
- },
- {
- "X": 18932,
- "Y": 1536,
- "Z": 54797,
- "Room": 78,
- "KeyItemGroupID": 16286
- },
- {
- "X": 19969,
- "Y": 1536,
- "Z": 49649,
- "Room": 78,
- "KeyItemGroupID": 16286
- },
- {
- "X": 13807,
- "Y": 1536,
- "Z": 52741,
- "Room": 78,
- "KeyItemGroupID": 16286
- },
- {
- "X": 14846,
- "Y": 6912,
- "Z": 49658,
- "Room": 80,
- "KeyItemGroupID": 16286
- },
- {
- "X": 20980,
- "Y": 4864,
- "Z": 53760,
- "Room": 75,
- "KeyItemGroupID": 16286
- },
- {
- "X": 25088,
- "Y": 3584,
- "Z": 55808,
- "Room": 74,
- "KeyItemGroupID": 16286
- },
- {
- "X": 23040,
- "Y": 1536,
- "Z": 66048,
- "Room": 51,
- "KeyItemGroupID": 16286
- },
- {
- "X": 23035,
- "Y": 1536,
- "Z": 59925,
- "Room": 61,
- "KeyItemGroupID": 16286
- }
- ],
- "ANTARC.TR2": [
- {
- "X": 67054,
- "Y": -4864,
- "Z": 31293,
- "Room": 86,
- "KeyItemGroupID": 25292
- },
- {
- "X": 68085,
- "Y": -3584,
- "Z": 27156,
- "Room": 87,
- "KeyItemGroupID": 25292
- },
- {
- "X": 66000,
- "Y": -3328,
- "Z": 27118,
- "Room": 87,
- "KeyItemGroupID": 25292
- },
- {
- "X": 63949,
- "Y": -3353,
- "Z": 38358,
- "Room": 89,
- "KeyItemGroupID": 25292
- },
- {
- "X": 69126,
- "Y": -4608,
- "Z": 38385,
- "Room": 89,
- "KeyItemGroupID": 25292
- },
- {
- "X": 68128,
- "Y": -4608,
- "Z": 39431,
- "Room": 89,
- "KeyItemGroupID": 25292
- },
- {
- "X": 65008,
- "Y": 0,
- "Z": 35318,
- "Room": 101,
- "KeyItemGroupID": 25292
- },
- {
- "X": 67105,
- "Y": -512,
- "Z": 38416,
- "Room": 101,
- "KeyItemGroupID": 25292
- },
- {
- "X": 69115,
- "Y": -3328,
- "Z": 42490,
- "Room": 166,
- "KeyItemGroupID": 25292
- },
- {
- "X": 55826,
- "Y": -6144,
- "Z": 52765,
- "Room": 98,
- "KeyItemGroupID": 25298
- },
- {
- "X": 53810,
- "Y": -6144,
- "Z": 53683,
- "Room": 98,
- "KeyItemGroupID": 25298
- },
- {
- "X": 57895,
- "Y": -6144,
- "Z": 53742,
- "Room": 97,
- "KeyItemGroupID": 25298
- },
- {
- "X": 60884,
- "Y": -6144,
- "Z": 50720,
- "Room": 97,
- "KeyItemGroupID": 25298
- },
- {
- "X": 60909,
- "Y": -6400,
- "Z": 44626,
- "Room": 95,
- "KeyItemGroupID": 25298
- },
- {
- "X": 54648,
- "Y": -2816,
- "Z": 47587,
- "Room": 91,
- "KeyItemGroupID": 25298
- },
- {
- "X": 58902,
- "Y": -3328,
- "Z": 51701,
- "Room": 108,
- "KeyItemGroupID": 25298
- },
- {
- "X": 52720,
- "Y": -2927,
- "Z": 51647,
- "Room": 105,
- "KeyItemGroupID": 25298
- },
- {
- "X": 59858,
- "Y": -3584,
- "Z": 47557,
- "Room": 112,
- "KeyItemGroupID": 25298
- },
- {
- "X": 44602,
- "Y": -4608,
- "Z": 73230,
- "Room": 134,
- "KeyItemGroupID": 25339
- },
- {
- "X": 44544,
- "Y": -4608,
- "Z": 71168,
- "Room": 134,
- "KeyItemGroupID": 25339
- },
- {
- "X": 39424,
- "Y": -4608,
- "Z": 65024,
- "Room": 27,
- "KeyItemGroupID": 25339
- },
- {
- "X": 39424,
- "Y": -4608,
- "Z": 61952,
- "Room": 27,
- "KeyItemGroupID": 25339
- },
- {
- "X": 41468,
- "Y": -5120,
- "Z": 64031,
- "Room": 27,
- "KeyItemGroupID": 25339
- },
- {
- "X": 39403,
- "Y": -4608,
- "Z": 70160,
- "Room": 191,
- "KeyItemGroupID": 25339
- },
- {
- "X": 42496,
- "Y": -4608,
- "Z": 73245,
- "Room": 134,
- "KeyItemGroupID": 25339
- },
- {
- "X": 45568,
- "Y": -2816,
- "Z": 72192,
- "Room": 133,
- "KeyItemGroupID": 25339
- },
- {
- "X": 46592,
- "Y": -2944,
- "Z": 69120,
- "Room": 187,
- "KeyItemGroupID": 25339
- },
- {
- "X": 45581,
- "Y": -2816,
- "Z": 75279,
- "Room": 133,
- "KeyItemGroupID": 25339
- },
- {
- "X": 45540,
- "Y": -2816,
- "Z": 61913,
- "Room": 187,
- "KeyItemGroupID": 25339
- },
- {
- "X": 39424,
- "Y": -4608,
- "Z": 65024,
- "Room": 27,
- "KeyItemGroupID": 25339
- },
- {
- "X": 43520,
- "Y": -2816,
- "Z": 62976,
- "Room": 187,
- "KeyItemGroupID": 25339
- },
- {
- "X": 76288,
- "Y": -3072,
- "Z": 81408,
- "Room": 115,
- "KeyItemGroupID": 25321
- },
- {
- "X": 75243,
- "Y": -3072,
- "Z": 82457,
- "Room": 115,
- "KeyItemGroupID": 25321
- },
- {
- "X": 78435,
- "Y": -3071,
- "Z": 79338,
- "Room": 115,
- "KeyItemGroupID": 25321
- },
- {
- "X": 70144,
- "Y": -2816,
- "Z": 75264,
- "Room": 77,
- "KeyItemGroupID": 25321
- },
- {
- "X": 71168,
- "Y": -2688,
- "Z": 78336,
- "Room": 78,
- "KeyItemGroupID": 25321
- },
- {
- "X": 73240,
- "Y": -2816,
- "Z": 80377,
- "Room": 78,
- "KeyItemGroupID": 25321
- },
- {
- "X": 73233,
- "Y": -2816,
- "Z": 77277,
- "Room": 78,
- "KeyItemGroupID": 25321
- },
- {
- "X": 71168,
- "Y": -2944,
- "Z": 73216,
- "Room": 77,
- "KeyItemGroupID": 25321
- },
- {
- "X": 73525,
- "Y": -2815,
- "Z": 72974,
- "Room": 77,
- "KeyItemGroupID": 25321
- },
- {
- "X": 75028,
- "Y": -3072,
- "Z": 79922,
- "Room": 115,
- "KeyItemGroupID": 25321
- },
- {
- "X": 52734,
- "Y": -512,
- "Z": 36349,
- "Room": 186,
- "KeyItemGroupID": 25375
- },
- {
- "X": 50695,
- "Y": -1024,
- "Z": 42515,
- "Room": 157,
- "KeyItemGroupID": 25375
- },
- {
- "X": 45676,
- "Y": -1811,
- "Z": 44327,
- "Room": 75,
- "KeyItemGroupID": 25375
- },
- {
- "X": 48561,
- "Y": -1280,
- "Z": 52656,
- "Room": 76,
- "KeyItemGroupID": 25375
- },
- {
- "X": 46630,
- "Y": -1931,
- "Z": 53807,
- "Room": 202,
- "KeyItemGroupID": 25375
- },
- {
- "X": 48685,
- "Y": -3864,
- "Z": 50636,
- "Room": 71,
- "KeyItemGroupID": 25375
- },
- {
- "X": 47118,
- "Y": -3591,
- "Z": 40425,
- "Room": 70,
- "KeyItemGroupID": 25375
- },
- {
- "X": 47616,
- "Y": -3712,
- "Z": 35328,
- "Room": 203,
- "KeyItemGroupID": 25375
- },
- {
- "X": 61100,
- "Y": -1280,
- "Z": 38216,
- "Room": 103,
- "KeyItemGroupID": 25375
- },
- {
- "X": 64029,
- "Y": -1280,
- "Z": 29692,
- "Room": 102,
- "KeyItemGroupID": 25375
- },
- {
- "X": 53814,
- "Y": -1906,
- "Z": 26109,
- "Room": 46,
- "KeyItemGroupID": 25375
- }
- ],
- "MINES.TR2": [
- {
- "X": 44495,
- "Y": 5888,
- "Z": 41497,
- "Room": 106,
- "KeyItemGroupID": 26312
- },
- {
- "X": 52736,
- "Y": 3840,
- "Z": 51712,
- "Room": 72,
- "KeyItemGroupID": 26312
- },
- {
- "X": 52781,
- "Y": 3840,
- "Z": 47595,
- "Room": 72,
- "KeyItemGroupID": 26312
- },
- {
- "X": 50626,
- "Y": 3840,
- "Z": 45536,
- "Room": 72,
- "KeyItemGroupID": 26312
- },
- {
- "X": 51728,
- "Y": 2048,
- "Z": 51576,
- "Room": 75,
- "KeyItemGroupID": 26312
- },
- {
- "X": 59907,
- "Y": 5888,
- "Z": 41435,
- "Room": 70,
- "KeyItemGroupID": 26312
- },
- {
- "X": 59904,
- "Y": 6272,
- "Z": 35328,
- "Room": 67,
- "KeyItemGroupID": 26312
- },
- {
- "X": 60928,
- "Y": 6272,
- "Z": 35328,
- "Room": 67,
- "KeyItemGroupID": 26312
- },
- {
- "X": 48621,
- "Y": 7936,
- "Z": 41473,
- "Room": 69,
- "KeyItemGroupID": 26312
- },
- {
- "X": 51725,
- "Y": 5888,
- "Z": 44596,
- "Room": 70,
- "KeyItemGroupID": 26312
- },
- {
- "X": 46592,
- "Y": 3840,
- "Z": 50688,
- "Room": 64,
- "KeyItemGroupID": 26312
- },
- {
- "X": 36352,
- "Y": 4864,
- "Z": 42496,
- "Room": 2,
- "KeyItemGroupID": 26312
- },
- {
- "X": 20986,
- "Y": -7936,
- "Z": 29160,
- "Room": 32,
- "KeyItemGroupID": 26312
- },
- {
- "X": 17920,
- "Y": -8960,
- "Z": 27136,
- "Room": 32,
- "KeyItemGroupID": 26312
- },
- {
- "X": 26170,
- "Y": -8333,
- "Z": 28106,
- "Room": 32,
- "KeyItemGroupID": 26312
- },
- {
- "X": 24067,
- "Y": -1536,
- "Z": 28129,
- "Room": 23,
- "KeyItemGroupID": 26312
- },
- {
- "X": 52736,
- "Y": 7936,
- "Z": 70144,
- "Room": 80,
- "KeyItemGroupID": 26365
- },
- {
- "X": 57851,
- "Y": 8065,
- "Z": 70128,
- "Room": 56,
- "KeyItemGroupID": 26365
- },
- {
- "X": 54784,
- "Y": 7936,
- "Z": 58880,
- "Room": 77,
- "KeyItemGroupID": 26365
- },
- {
- "X": 53760,
- "Y": 7936,
- "Z": 68096,
- "Room": 14,
- "KeyItemGroupID": 26365
- },
- {
- "X": 52660,
- "Y": 8192,
- "Z": 65022,
- "Room": 18,
- "KeyItemGroupID": 26365
- },
- {
- "X": 56832,
- "Y": 17152,
- "Z": 74240,
- "Room": 151,
- "KeyItemGroupID": 26365
- },
- {
- "X": 57812,
- "Y": 16929,
- "Z": 73304,
- "Room": 151,
- "KeyItemGroupID": 26365
- },
- {
- "X": 54784,
- "Y": 29696,
- "Z": 72192,
- "Room": 170,
- "KeyItemGroupID": 26365
- },
- {
- "X": 53760,
- "Y": 24576,
- "Z": 62976,
- "Room": 153,
- "KeyItemGroupID": 26365
- },
- {
- "X": 57856,
- "Y": 26624,
- "Z": 66048,
- "Room": 164,
- "KeyItemGroupID": 26365
- },
- {
- "X": 67072,
- "Y": 26496,
- "Z": 56832,
- "Room": 160,
- "KeyItemGroupID": 26365
- },
- {
- "X": 70144,
- "Y": 26624,
- "Z": 67072,
- "Room": 160,
- "KeyItemGroupID": 26365
- },
- {
- "X": 63813,
- "Y": 25088,
- "Z": 67422,
- "Room": 160,
- "KeyItemGroupID": 26365
- },
- {
- "X": 70065,
- "Y": 24811,
- "Z": 65019,
- "Room": 160,
- "KeyItemGroupID": 26365
- },
- {
- "X": 71636,
- "Y": 25344,
- "Z": 57924,
- "Room": 160,
- "KeyItemGroupID": 26365
- },
- {
- "X": 74213,
- "Y": 17920,
- "Z": 70171,
- "Room": 165,
- "KeyItemGroupID": 26365
- },
- {
- "X": 69125,
- "Y": 14594,
- "Z": 71121,
- "Room": 166,
- "KeyItemGroupID": 26365
- },
- {
- "X": 66074,
- "Y": 12301,
- "Z": 72240,
- "Room": 166,
- "KeyItemGroupID": 26365
- },
- {
- "X": 70144,
- "Y": 2560,
- "Z": 67072,
- "Room": 167,
- "KeyItemGroupID": 26365
- },
- {
- "X": 10767,
- "Y": 7424,
- "Z": 60928,
- "Room": 124,
- "KeyItemGroupID": 26333
- },
- {
- "X": 12800,
- "Y": 7424,
- "Z": 62976,
- "Room": 124,
- "KeyItemGroupID": 26333
- },
- {
- "X": 20992,
- "Y": 6912,
- "Z": 60928,
- "Room": 118,
- "KeyItemGroupID": 26333
- },
- {
- "X": 15929,
- "Y": 6912,
- "Z": 63557,
- "Room": 122,
- "KeyItemGroupID": 26333
- },
- {
- "X": 14857,
- "Y": 6912,
- "Z": 64064,
- "Room": 123,
- "KeyItemGroupID": 26333
- },
- {
- "X": 31292,
- "Y": 10752,
- "Z": 55812,
- "Room": 13,
- "KeyItemGroupID": 26333
- },
- {
- "X": 41493,
- "Y": 8192,
- "Z": 53757,
- "Room": 11,
- "KeyItemGroupID": 26333
- },
- {
- "X": 18944,
- "Y": 14848,
- "Z": 57856,
- "Room": 87,
- "KeyItemGroupID": 26333
- },
- {
- "X": 19936,
- "Y": 14848,
- "Z": 58828,
- "Room": 89,
- "KeyItemGroupID": 26333
- },
- {
- "X": 7680,
- "Y": 14976,
- "Z": 60928,
- "Room": 91,
- "KeyItemGroupID": 26333
- },
- {
- "X": 11793,
- "Y": 15360,
- "Z": 58777,
- "Room": 159,
- "KeyItemGroupID": 26333
- },
- {
- "X": 23084,
- "Y": 6912,
- "Z": 59892,
- "Room": 117,
- "KeyItemGroupID": 26333
- }
- ],
- "CITY.TR2": [
- {
- "X": 44544,
- "Y": -8192,
- "Z": 77312,
- "Room": 120,
- "KeyItemGroupID": 27325
- },
- {
- "X": 16896,
- "Y": 512,
- "Z": 80384,
- "Room": 119,
- "KeyItemGroupID": 27324
- },
- {
- "X": 32256,
- "Y": 5120,
- "Z": 48640,
- "Room": 209,
- "KeyItemGroupID": 27435
- },
- {
- "X": 32239,
- "Y": 6144,
- "Z": 54824,
- "Room": 219,
- "KeyItemGroupID": 27435
- },
- {
- "X": 32222,
- "Y": 6144,
- "Z": 49633,
- "Room": 219,
- "KeyItemGroupID": 27435
- },
- {
- "X": 28149,
- "Y": 5376,
- "Z": 56756,
- "Room": 220,
- "KeyItemGroupID": 27435
- },
- {
- "X": 25035,
- "Y": 5120,
- "Z": 56784,
- "Room": 212,
- "KeyItemGroupID": 27435
- },
- {
- "X": 28160,
- "Y": 3840,
- "Z": 49648,
- "Room": 210,
- "KeyItemGroupID": 27435
- },
- {
- "X": 18944,
- "Y": 5120,
- "Z": 38400,
- "Room": 211,
- "KeyItemGroupID": 27435
- },
- {
- "X": 25131,
- "Y": 5375,
- "Z": 38446,
- "Room": 216,
- "KeyItemGroupID": 27435
- },
- {
- "X": 22027,
- "Y": 5376,
- "Z": 44688,
- "Room": 213,
- "KeyItemGroupID": 27435
- },
- {
- "X": 24022,
- "Y": 5120,
- "Z": 47671,
- "Room": 210,
- "KeyItemGroupID": 27435
- },
- {
- "X": 23039,
- "Y": 5120,
- "Z": 55815,
- "Room": 212,
- "KeyItemGroupID": 27435
- },
- {
- "X": 18936,
- "Y": 5120,
- "Z": 55786,
- "Room": 212,
- "KeyItemGroupID": 27435
- },
- {
- "X": 22015,
- "Y": -3328,
- "Z": 38418,
- "Room": 90,
- "KeyItemGroupID": 27435
- },
- {
- "X": 28161,
- "Y": -3327,
- "Z": 44521,
- "Room": 231,
- "KeyItemGroupID": 27435
- },
- {
- "X": 26906,
- "Y": -3328,
- "Z": 46597,
- "Room": 232,
- "KeyItemGroupID": 27435
- },
- {
- "X": 28145,
- "Y": -3328,
- "Z": 55744,
- "Room": 89,
- "KeyItemGroupID": 27435
- },
- {
- "X": 21078,
- "Y": -3328,
- "Z": 53649,
- "Room": 90,
- "KeyItemGroupID": 27435
- },
- {
- "X": 14586,
- "Y": -3328,
- "Z": 52685,
- "Room": 93,
- "KeyItemGroupID": 27435
- },
- {
- "X": 15023,
- "Y": -3328,
- "Z": 50472,
- "Room": 91,
- "KeyItemGroupID": 27435
- },
- {
- "X": 18108,
- "Y": -3328,
- "Z": 41594,
- "Room": 91,
- "KeyItemGroupID": 27435
- },
- {
- "X": 10787,
- "Y": -3328,
- "Z": 36408,
- "Room": 35,
- "KeyItemGroupID": 27435
- },
- {
- "X": 7637,
- "Y": -8192,
- "Z": 46552,
- "Room": 100,
- "KeyItemGroupID": 27435
- },
- {
- "X": 32256,
- "Y": -7680,
- "Z": 65024,
- "Room": 147,
- "KeyItemGroupID": 27435
- },
- {
- "X": 40466,
- "Y": -3840,
- "Z": 74121,
- "Room": 153,
- "KeyItemGroupID": 27435
- },
- {
- "X": 41472,
- "Y": -7424,
- "Z": 61952,
- "Room": 149,
- "KeyItemGroupID": 27435
- },
- {
- "X": 43534,
- "Y": -7424,
- "Z": 68073,
- "Room": 150,
- "KeyItemGroupID": 27435
- },
- {
- "X": 9768,
- "Y": -4352,
- "Z": 65932,
- "Room": 102,
- "KeyItemGroupID": 27435
- },
- {
- "X": 5646,
- "Y": -2816,
- "Z": 62962,
- "Room": 104,
- "KeyItemGroupID": 27435
- },
- {
- "X": 1527,
- "Y": -2048,
- "Z": 63957,
- "Room": 104,
- "KeyItemGroupID": 27435
- },
- {
- "X": 3523,
- "Y": -3072,
- "Z": 72124,
- "Room": 103,
- "KeyItemGroupID": 27435
- },
- {
- "X": 6696,
- "Y": 1280,
- "Z": 80460,
- "Room": 115,
- "KeyItemGroupID": 27435
- },
- {
- "X": 8666,
- "Y": 1280,
- "Z": 80367,
- "Room": 115,
- "KeyItemGroupID": 27435
- },
- {
- "X": 10709,
- "Y": 1280,
- "Z": 80253,
- "Room": 115,
- "KeyItemGroupID": 27435
- },
- {
- "X": 17207,
- "Y": 1024,
- "Z": 81388,
- "Room": 119,
- "KeyItemGroupID": 27435
- },
- {
- "X": 17159,
- "Y": 1024,
- "Z": 79369,
- "Room": 119,
- "KeyItemGroupID": 27435
- },
- {
- "X": 24167,
- "Y": 1280,
- "Z": 76263,
- "Room": 126,
- "KeyItemGroupID": 27435
- },
- {
- "X": 21953,
- "Y": 1280,
- "Z": 76365,
- "Room": 126,
- "KeyItemGroupID": 27435
- },
- {
- "X": 30718,
- "Y": 7424,
- "Z": 75094,
- "Room": 131,
- "KeyItemGroupID": 27435
- },
- {
- "X": 36285,
- "Y": 5376,
- "Z": 75239,
- "Room": 133,
- "KeyItemGroupID": 27435
- },
- {
- "X": 35192,
- "Y": -768,
- "Z": 69091,
- "Room": 142,
- "KeyItemGroupID": 27435
- },
- {
- "X": 34229,
- "Y": -2560,
- "Z": 72162,
- "Room": 141,
- "KeyItemGroupID": 27435
- },
- {
- "X": 36413,
- "Y": -2560,
- "Z": 77282,
- "Room": 141,
- "KeyItemGroupID": 27435
- },
- {
- "X": 34309,
- "Y": -2048,
- "Z": 89894,
- "Room": 94,
- "KeyItemGroupID": 27435
- },
- {
- "X": 86509,
- "Y": -3840,
- "Z": 58867,
- "Room": 23,
- "KeyItemGroupID": 27251
- },
- {
- "X": 85418,
- "Y": -2559,
- "Z": 61949,
- "Room": 13,
- "KeyItemGroupID": 27251
- },
- {
- "X": 85478,
- "Y": -1024,
- "Z": 59894,
- "Room": 0,
- "KeyItemGroupID": 27251
- },
- {
- "X": 85515,
- "Y": -255,
- "Z": 63979,
- "Room": 6,
- "KeyItemGroupID": 27251
- },
- {
- "X": 85517,
- "Y": -256,
- "Z": 72233,
- "Room": 4,
- "KeyItemGroupID": 27251
- },
- {
- "X": 94662,
- "Y": -256,
- "Z": 76305,
- "Room": 15,
- "KeyItemGroupID": 27251
- },
- {
- "X": 94720,
- "Y": -2816,
- "Z": 66048,
- "Room": 17,
- "KeyItemGroupID": 27251
- },
- {
- "X": 90642,
- "Y": -2699,
- "Z": 67063,
- "Room": 17,
- "KeyItemGroupID": 27251
- },
- {
- "X": 90640,
- "Y": -3840,
- "Z": 65018,
- "Room": 11,
- "KeyItemGroupID": 27251
- },
- {
- "X": 86486,
- "Y": -3840,
- "Z": 67069,
- "Room": 12,
- "KeyItemGroupID": 27251
- },
- {
- "X": 86619,
- "Y": -3840,
- "Z": 70130,
- "Room": 12,
- "KeyItemGroupID": 27251
- },
- {
- "X": 83321,
- "Y": -4608,
- "Z": 61968,
- "Room": 25,
- "KeyItemGroupID": 27251
- },
- {
- "X": 90582,
- "Y": 0,
- "Z": 54757,
- "Room": 31,
- "KeyItemGroupID": 27251
- },
- {
- "X": 100783,
- "Y": -256,
- "Z": 69114,
- "Room": 9,
- "KeyItemGroupID": 27251
- },
- {
- "X": 35328,
- "Y": -2560,
- "Z": 89600,
- "Room": 94,
- "KeyItemGroupID": 27299
- },
- {
- "X": 8704,
- "Y": -12032,
- "Z": 54784,
- "Room": 97,
- "KeyItemGroupID": 27302
- }
- ],
- "STPAUL.TR2": [
- {
- "X": 49664,
- "Y": -3840,
- "Z": 55808,
- "Room": 47,
- "KeyItemGroupID": 29242
- },
- {
- "X": 49645,
- "Y": -3072,
- "Z": 63963,
- "Room": 44,
- "KeyItemGroupID": 29242
- },
- {
- "X": 48643,
- "Y": 1280,
- "Z": 53767,
- "Room": 57,
- "KeyItemGroupID": 29242
- },
- {
- "X": 54782,
- "Y": 1279,
- "Z": 53743,
- "Room": 42,
- "KeyItemGroupID": 29242
- },
- {
- "X": 45556,
- "Y": -2048,
- "Z": 54757,
- "Room": 44,
- "KeyItemGroupID": 29242
- },
- {
- "X": 41472,
- "Y": -2048,
- "Z": 54784,
- "Room": 44,
- "KeyItemGroupID": 29242
- },
- {
- "X": 45558,
- "Y": -2304,
- "Z": 58807,
- "Room": 44,
- "KeyItemGroupID": 29242
- },
- {
- "X": 40461,
- "Y": -4990,
- "Z": 65029,
- "Room": 56,
- "KeyItemGroupID": 29242
- },
- {
- "X": 41469,
- "Y": -2816,
- "Z": 64000,
- "Room": 44,
- "KeyItemGroupID": 29242
- },
- {
- "X": 43492,
- "Y": 2048,
- "Z": 69161,
- "Room": 26,
- "KeyItemGroupID": 29242
- },
- {
- "X": 51711,
- "Y": 7168,
- "Z": 60932,
- "Room": 60,
- "KeyItemGroupID": 29242
- },
- {
- "X": 45528,
- "Y": 5632,
- "Z": 64031,
- "Room": 58,
- "KeyItemGroupID": 29242
- },
- {
- "X": 42494,
- "Y": 5632,
- "Z": 59893,
- "Room": 43,
- "KeyItemGroupID": 29242
- },
- {
- "X": 42496,
- "Y": 5632,
- "Z": 57856,
- "Room": 41,
- "KeyItemGroupID": 29242
- }
- ]
-}
\ No newline at end of file
diff --git a/TRRandomizerCore/Utilities/SpatialConverters.cs b/TRRandomizerCore/Utilities/SpatialConverters.cs
deleted file mode 100644
index b0fc88b4d..000000000
--- a/TRRandomizerCore/Utilities/SpatialConverters.cs
+++ /dev/null
@@ -1,28 +0,0 @@
-using TRRandomizerCore.Helpers;
-using TRLevelControl.Model;
-
-namespace TRRandomizerCore.Utilities;
-
-internal static class SpatialConverters
-{
- internal static Location TransformToLevelSpace(Location loc, TRRoomInfo room)
- {
- if (loc.IsInRoomSpace)
- {
- return new Location
- {
- Room = loc.Room,
- X = (loc.X + room.X),
- Y = (room.YBottom - loc.Y),
- Z = (loc.Z + room.Z),
- Difficulty = loc.Difficulty,
- IsInRoomSpace = loc.IsInRoomSpace,
- RequiresGlitch = loc.RequiresGlitch
- };
- }
- else
- {
- return loc;
- }
- }
-}
diff --git a/TRRandomizerCore/Zones/LevelZones.cs b/TRRandomizerCore/Zones/LevelZones.cs
deleted file mode 100644
index f0ae9725a..000000000
--- a/TRRandomizerCore/Zones/LevelZones.cs
+++ /dev/null
@@ -1,27 +0,0 @@
-namespace TRRandomizerCore.Zones;
-
-enum LevelZones : int
-{
- StoneSecretZone = 0,
- JadeSecretZone,
- GoldSecretZone,
- Key1Zone,
- Key2Zone,
- Key3Zone,
- Key4Zone,
- Puzzle1Zone,
- Puzzle2Zone,
- Puzzle3Zone,
- Puzzle4Zone,
- Quest1Zone,
- Quest2Zone,
- ItemZones
-}
-
-enum ZonePopulationMethod
-{
- SecretsOnly,
- KeyPuzzleQuestOnly,
- GeneralOnly,
- Full
-}
diff --git a/TRRandomizerCore/Zones/ZonedLocationCollection.cs b/TRRandomizerCore/Zones/ZonedLocationCollection.cs
deleted file mode 100644
index 2da018c2b..000000000
--- a/TRRandomizerCore/Zones/ZonedLocationCollection.cs
+++ /dev/null
@@ -1,289 +0,0 @@
-using Newtonsoft.Json;
-using TRRandomizerCore.Helpers;
-
-namespace TRRandomizerCore.Zones;
-
-class ZonedLocationCollection
-{
- private readonly Dictionary> _zoneAppliedLocations;
- private int _numGeneralZones;
-
- public List StoneZone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.StoneSecretZone);
- }
- }
-
- public List JadeZone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.JadeSecretZone);
- }
- }
-
- public List GoldZone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.GoldSecretZone);
- }
- }
-
- public List Key1Zone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.Key1Zone);
- }
- }
-
- public List Key2Zone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.Key2Zone);
- }
- }
-
- public List Key3Zone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.Key3Zone);
- }
- }
-
- public List Key4Zone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.Key4Zone);
- }
- }
-
- public List Puzzle1Zone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.Puzzle1Zone);
- }
- }
-
- public List Puzzle2Zone
- {
- get
- {
- return GetZoneLocations((int)LevelZones.Puzzle2Zone);
- }
- }
-
- public List