Merge branch 'dev' into nomaiText

This commit is contained in:
Nick 2022-05-03 14:37:46 -04:00
commit 4af49e6972
13 changed files with 1282 additions and 39 deletions

View File

@ -92,20 +92,29 @@ namespace NewHorizons.Builder.Atmosphere
cloudsBottomGO.transform.localScale = Vector3.one * (atmo.Size * 0.9f);
TessellatedSphereRenderer bottomTSR = cloudsBottomGO.AddComponent<TessellatedSphereRenderer>();
bottomTSR.tessellationMeshGroup = GameObject.Find("CloudsBottomLayer_GD").GetComponent<TessellatedSphereRenderer>().tessellationMeshGroup;
bottomTSR.tessellationMeshGroup = GameObject.Find("CloudsBottomLayer_QM").GetComponent<TessellatedSphereRenderer>().tessellationMeshGroup;
var bottomTSRMaterials = GameObject.Find("CloudsBottomLayer_QM").GetComponent<TessellatedSphereRenderer>().sharedMaterials;
var bottomTSRTempArray = new Material[bottomTSRMaterials.Length];
// It's a bit too green
var bottomColor = atmo.CloudTint.ToColor32();
bottomColor.g = (byte)(bottomColor.g * 0.5f);
for (int i = 0; i < bottomTSRMaterials.Length; i++)
// If they set a colour apply it to all the materials else keep the default QM one
if (atmo.CloudTint != null)
{
bottomTSRTempArray[i] = new Material(bottomTSRMaterials[i]);
bottomTSRTempArray[i].SetColor("_Color", bottomColor);
bottomTSRTempArray[i].SetColor("_TintColor", bottomColor);
}
var bottomColor = atmo.CloudTint.ToColor32();
var bottomTSRTempArray = new Material[2];
bottomTSRTempArray[0] = new Material(bottomTSRMaterials[0]);
bottomTSRTempArray[0].SetColor("_Color", bottomColor);
bottomTSRTempArray[0].SetColor("_TintColor", bottomColor);
bottomTSRTempArray[1] = new Material(bottomTSRMaterials[1]);
bottomTSR.sharedMaterials = bottomTSRTempArray;
}
else
{
bottomTSR.sharedMaterials = bottomTSRMaterials;
}
bottomTSR.maxLOD = 6;
bottomTSR.LODBias = 0;
bottomTSR.LODRadius = 1f;

View File

@ -135,6 +135,17 @@ namespace NewHorizons.Builder.Props
Logger.LogError($"Couldn't update AnglerFish chase speed: {e.Message}");
}
}
// Fix slide reel
if(component is SlideCollectionContainer)
{
sector.OnOccupantEnterSector.AddListener((_) => (component as SlideCollectionContainer).LoadStreamingTextures());
}
if(component is OWItemSocket)
{
(component as OWItemSocket)._sector = sector;
}
}
prop.transform.position = position == null ? go.transform.position : go.transform.TransformPoint((Vector3)position);

View File

@ -0,0 +1,198 @@
using NewHorizons.External;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using UnityEngine;
using NewHorizons.Utility;
using OWML.ModHelper;
using OWML.Common;
using NewHorizons.Handlers;
using Logger = NewHorizons.Utility.Logger;
namespace NewHorizons.Builder.Props
{
public static class ProjectionBuilder
{
private static GameObject _slideReelPrefab;
private static GameObject _autoPrefab;
public static void Make(GameObject go, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
{
if (info.type == "autoProjector") MakeAutoProjector(go, sector, info, mod);
else if (info.type == "slideReel") MakeSlideReel(go, sector, info, mod);
else Logger.LogError($"Invalid projection type {info.type}");
}
private static void MakeSlideReel(GameObject go, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
{
if (_slideReelPrefab == null)
{
_slideReelPrefab = GameObject.Find("RingWorld_Body/Sector_RingInterior/Sector_Zone1/Sector_SlideBurningRoom_Zone1/Interactables_SlideBurningRoom_Zone1/Prefab_IP_SecretAlcove/RotationPivot/SlideReelSocket/Prefab_IP_Reel_1_LibraryPath").gameObject.InstantiateInactive();
_slideReelPrefab.name = "Prefab_IP_Reel";
}
var slideReelObj = _slideReelPrefab.InstantiateInactive();
slideReelObj.name = $"Prefab_IP_Reel_{mod.ModHelper.Manifest.Name}";
var slideReel = slideReelObj.GetComponent<SlideReelItem>();
slideReel.SetSector(sector);
slideReel.SetVisible(true);
var slideCollectionContainer = slideReelObj.GetRequiredComponent<SlideCollectionContainer>();
foreach(var renderer in slideReelObj.GetComponentsInChildren<Renderer>())
{
renderer.enabled = true;
}
slideReelObj.transform.parent = sector?.transform ?? go.transform;
slideReelObj.transform.localPosition = (Vector3)(info.position ?? Vector3.zero);
slideReelObj.transform.localRotation = Quaternion.Euler((Vector3)(info.rotation ?? Vector3.zero));
// Now we replace the slides
int slidesCount = info.slides.Length;
var slideCollection = new SlideCollection(slidesCount);
// The base game ones only have 15 slides max
var textures = new Texture2D[slidesCount >= 15 ? 15 : slidesCount];
for(int i = 0; i < slidesCount; i++)
{
var slide = new Slide();
var slideInfo = info.slides[i];
var texture = ImageUtilities.GetTexture(mod, slideInfo.imagePath);
slide.textureOverride = ImageUtilities.Invert(texture);
// Track the first 15 to put on the slide reel object
if(i < 15) textures[i] = texture;
AddModules(slideInfo, ref slide);
slideCollection.slides[i] = slide;
}
// Else when you put them down you can't pick them back up
slideReelObj.GetComponent<OWCollider>()._physicsRemoved = false;
slideCollectionContainer.slideCollection = slideCollection;
// Idk why but it wants reveals to be comma delimited not a list
if (info.reveals != null) slideCollectionContainer._shipLogOnComplete = string.Join(",", info.reveals);
OWAssetHandler.LoadObject(slideReelObj);
sector.OnOccupantEnterSector.AddListener((x) => OWAssetHandler.LoadObject(slideReelObj));
var slidesBack = slideReelObj.transform.Find("Props_IP_SlideReel_7/Slides_Back").GetComponent<MeshRenderer>();
var slidesFront = slideReelObj.transform.Find("Props_IP_SlideReel_7/Slides_Front").GetComponent<MeshRenderer>();
// Now put together the textures into a 4x4 thing for the materials
var reelTexture = ImageUtilities.MakeReelTexture(textures);
slidesBack.material.mainTexture = reelTexture;
slidesBack.material.SetTexture("_EmissionMap", reelTexture);
slidesFront.material.mainTexture = reelTexture;
slidesFront.material.SetTexture("_EmissionMap", reelTexture);
slideReelObj.SetActive(true);
}
public static void MakeAutoProjector(GameObject go, Sector sector, PropModule.ProjectionInfo info, IModBehaviour mod)
{
if (_autoPrefab == null)
{
_autoPrefab = GameObject.Find("RingWorld_Body/Sector_RingInterior/Sector_Zone4/Sector_BlightedShore/Sector_JammingControlRoom_Zone4/Interactables_JammingControlRoom_Zone4/AutoProjector_SignalJammer/Prefab_IP_AutoProjector_SignalJammer").gameObject.InstantiateInactive();
_autoPrefab.name = "Prefab_IP_AutoProjector";
}
var projectorObj = _autoPrefab.InstantiateInactive();
projectorObj.name = $"Prefab_IP_AutoProjector_{mod.ModHelper.Manifest.Name}";
var autoProjector = projectorObj.GetComponent<AutoSlideProjector>();
autoProjector._sector = sector;
var slideCollectionContainer = autoProjector.GetRequiredComponent<SlideCollectionContainer>();
autoProjector.transform.parent = sector?.transform ?? go.transform;
autoProjector.transform.localPosition = (Vector3)(info.position ?? Vector3.zero);
autoProjector.transform.localRotation = Quaternion.Euler((Vector3)(info.rotation ?? Vector3.zero));
// Now we replace the slides
int slidesCount = info.slides.Length;
var slideCollection = new SlideCollection(slidesCount);
for (int i = 0; i < slidesCount; i++)
{
var slide = new Slide();
var slideInfo = info.slides[i];
var texture = ImageUtilities.GetTexture(mod, slideInfo.imagePath);
slide.textureOverride = ImageUtilities.Invert(texture);
AddModules(slideInfo, ref slide);
slideCollection.slides[i] = slide;
}
slideCollectionContainer.slideCollection = slideCollection;
OWAssetHandler.LoadObject(projectorObj);
sector.OnOccupantEnterSector.AddListener((x) => OWAssetHandler.LoadObject(projectorObj));
// Change the picture on the lens
var lens = projectorObj.transform.Find("Spotlight/Prop_IP_SingleSlideProjector/Projector_Lens").GetComponent<MeshRenderer>();
lens.materials[1].mainTexture = slideCollection.slides[0]._textureOverride;
lens.materials[1].SetTexture("_EmissionMap", slideCollection.slides[0]._textureOverride);
projectorObj.SetActive(true);
}
private static void AddModules(PropModule.SlideInfo slideInfo, ref Slide slide)
{
var modules = new List<SlideFunctionModule>();
if (!String.IsNullOrEmpty(slideInfo.beatAudio))
{
var audioBeat = new SlideBeatAudioModule();
audioBeat._audioType = (AudioType)Enum.Parse(typeof(AudioType), slideInfo.beatAudio);
audioBeat._delay = slideInfo.beatDelay;
modules.Add(audioBeat);
}
if (!String.IsNullOrEmpty(slideInfo.backdropAudio))
{
var audioBackdrop = new SlideBackdropAudioModule();
audioBackdrop._audioType = (AudioType)Enum.Parse(typeof(AudioType), slideInfo.backdropAudio);
audioBackdrop._fadeTime = slideInfo.backdropFadeTime;
modules.Add(audioBackdrop);
}
if (slideInfo.ambientLightIntensity > 0)
{
var ambientLight = new SlideAmbientLightModule();
ambientLight._intensity = slideInfo.ambientLightIntensity;
ambientLight._range = slideInfo.ambientLightRange;
ambientLight._color = slideInfo.ambientLightColor.ToColor();
ambientLight._spotIntensityMod = slideInfo.spotIntensityMod;
modules.Add(ambientLight);
}
if (slideInfo.playTimeDuration != 0)
{
var playTime = new SlidePlayTimeModule();
playTime._duration = slideInfo.playTimeDuration;
modules.Add(playTime);
}
if (slideInfo.blackFrameDuration != 0)
{
var blackFrame = new SlideBlackFrameModule();
blackFrame._duration = slideInfo.blackFrameDuration;
modules.Add(blackFrame);
}
if (!String.IsNullOrEmpty(slideInfo.reveal))
{
var shipLogEntry = new SlideShipLogEntryModule();
shipLogEntry._entryKey = slideInfo.reveal;
modules.Add(shipLogEntry);
}
Slide.WriteModules(modules, ref slide._modulesList, ref slide._modulesData, ref slide.lengths);
}
}
}

View File

@ -85,6 +85,13 @@ namespace NewHorizons.Builder.Props
NomaiTextBuilder.Make(go, sector, nomaiTextInfo, mod);
}
}
if(config.Props.SlideShows != null)
{
foreach (var slideReelInfo in config.Props.SlideShows)
{
ProjectionBuilder.Make(go, sector, slideReelInfo, mod);
}
}
}
public static GameObject LoadPrefab(string assetBundle, string path, string uniqueModName, IModBehaviour mod)

View File

@ -20,7 +20,7 @@ namespace NewHorizons.Builder.ShipLog
GameObject entryLocationGameObject = new GameObject("Entry Location (" + info.id + ")");
entryLocationGameObject.SetActive(false);
entryLocationGameObject.transform.parent = sector?.transform ?? go.transform;
entryLocationGameObject.transform.localPosition = info.position;
entryLocationGameObject.transform.localPosition = info.position ?? Vector3.zero;
ShipLogEntryLocation newLocation = entryLocationGameObject.AddComponent<ShipLogEntryLocation>();
newLocation._entryID = info.id;
newLocation._isWithinCloakField = info.cloaked;

View File

@ -49,7 +49,7 @@ namespace NewHorizons.Builder.ShipLog
GameObject revealTriggerVolume = new GameObject("Reveal Volume (" + info.revealOn + ")");
revealTriggerVolume.SetActive(false);
revealTriggerVolume.transform.parent = sector?.transform ?? go.transform;
revealTriggerVolume.transform.localPosition = info.position;
revealTriggerVolume.transform.localPosition = info.position ?? Vector3.zero;
return revealTriggerVolume;
}

View File

@ -19,6 +19,7 @@ namespace NewHorizons.External
public RevealInfo[] Reveal;
public EntryLocationInfo[] EntryLocation;
public NomaiTextInfo[] NomaiText;
public ProjectionInfo[] SlideShows;
public class ScatterInfo
{
@ -89,7 +90,7 @@ namespace NewHorizons.External
{
public string revealOn = "enter";
public string[] reveals;
public MVector3 position = new MVector3(0, 0, 0);
public MVector3 position;
public float radius = 1f;
public float maxDistance = -1f; // Snapshot & Observe Only
public float maxAngle = 180f; // Observe Only
@ -101,10 +102,48 @@ namespace NewHorizons.External
public bool cloaked;
public MVector3 position;
}
public class NomaiTextInfo
{
public MVector3 position;
public string xmlFile;
}
public class ProjectionInfo
{
public MVector3 position;
public MVector3 rotation;
public string[] reveals;
public SlideInfo[] slides;
public string type = "SlideReel";
}
public class SlideInfo
{
public string imagePath;
// SlideBeatAudioModule
public string beatAudio;
public float beatDelay;
// SlideBackdropAudioModule
public string backdropAudio;
public float backdropFadeTime;
// SlideAmbientLightModule
public float ambientLightIntensity;
public float ambientLightRange;
public MColor ambientLightColor;
public float spotIntensityMod;
// SlidePlayTimeModule
public float playTimeDuration;
// SlideBlackFrameModule
public float blackFrameDuration;
// SlideShipLogEntryModule
public string reveal;
}
}
}

View File

@ -226,12 +226,31 @@ namespace NewHorizons
#region Load
public void LoadConfigs(IModBehaviour mod)
{
try
{
if (_firstLoad)
{
MountedAddons.Add(mod);
}
var folder = mod.ModHelper.Manifest.ModFolderPath;
// Load systems first so that when we load bodies later we can check for missing ones
if (Directory.Exists(folder + @"systems\"))
{
foreach (var file in Directory.GetFiles(folder + @"systems\", "*.json", SearchOption.AllDirectories))
{
var name = Path.GetFileNameWithoutExtension(file);
Logger.Log($"Loading system {name}");
var relativePath = file.Replace(folder, "");
var starSystemConfig = mod.ModHelper.Storage.Load<StarSystemConfig>(relativePath);
var system = new NewHorizonsSystem(name, starSystemConfig, mod);
SystemDict[name] = system;
}
}
if (Directory.Exists(folder + "planets"))
{
foreach (var file in Directory.GetFiles(folder + @"planets\", "*.json", SearchOption.AllDirectories))
@ -245,6 +264,7 @@ namespace NewHorizons
if (body.Config.Spawn != null) SystemDict[body.Config.StarSystem].Spawn = body.Config.Spawn;
// Add the new planet to the planet dictionary
if (!BodyDict.ContainsKey(body.Config.StarSystem)) BodyDict[body.Config.StarSystem] = new List<NewHorizonsBody>();
BodyDict[body.Config.StarSystem].Add(body);
}
}
@ -254,6 +274,11 @@ namespace NewHorizons
LoadTranslations(folder, mod);
}
}
catch(Exception ex)
{
Logger.LogError($"{ex.Message}, {ex.StackTrace}");
}
}
private void LoadTranslations(string folder, IModBehaviour mod)
{
@ -420,7 +445,15 @@ namespace NewHorizons
public string[] GetInstalledAddons()
{
return Main.MountedAddons.Select(x => x.ModHelper.Manifest.UniqueName).ToArray();
try
{
return Main.MountedAddons.Select(x => x?.ModHelper?.Manifest?.UniqueName).ToArray();
}
catch (Exception ex)
{
Logger.LogError($"Couldn't get installed addons {ex.Message}, {ex.StackTrace}");
return new string[] { };
}
}
}
#endregion API

View File

@ -48,6 +48,94 @@ namespace NewHorizons.Utility
_generatedTextures.Clear();
}
public static Texture2D Invert(Texture2D texture)
{
var pixels = texture.GetPixels();
for (int i = 0; i < pixels.Length; i++)
{
var x = i % texture.width;
var y = (int)Mathf.Floor(i / texture.height);
// Needs a black border
if(x == 0 || y == 0 || x == texture.width-1 || y == texture.height-1)
{
pixels[i].r = 1;
pixels[i].g = 1;
pixels[i].b = 1;
pixels[i].a = 1;
}
else
{
pixels[i].r = 1f - pixels[i].r;
pixels[i].g = 1f - pixels[i].g;
pixels[i].b = 1f - pixels[i].b;
}
}
var newTexture = new Texture2D(texture.width, texture.height);
newTexture.name = texture.name + "Inverted";
newTexture.SetPixels(pixels);
newTexture.Apply();
newTexture.wrapMode = TextureWrapMode.Clamp;
_generatedTextures.Add(newTexture);
return newTexture;
}
public static Texture2D MakeReelTexture(Texture2D[] textures)
{
var size = 256;
var texture = (new Texture2D(size * 4, size * 4, TextureFormat.ARGB32, false));
texture.name = "SlideReelAtlas";
Color[] fillPixels = new Color[size * size * 4 * 4];
for(int xIndex = 0; xIndex < 4; xIndex++)
{
for(int yIndex = 0; yIndex < 4; yIndex++)
{
int index = yIndex * 4 + xIndex;
var srcTexture = index < textures.Length ? textures[index] : null;
for(int i = 0; i < size; i++)
{
for(int j = 0; j < size; j++)
{
var colour = Color.black;
if(srcTexture)
{
var srcX = i * srcTexture.width / (float)size;
var srcY = j * srcTexture.height / (float)size;
if (srcX >= 0 && srcX < srcTexture.width && srcY >= 0 && srcY < srcTexture.height)
{
colour = srcTexture.GetPixel((int)srcX, (int)srcY);
}
}
var x = xIndex * size + i;
// Want it to start from the first row from the bottom then go down then modulo around idk
// 5 because no pos mod idk
var y = ((5 - yIndex)%4) * size + j;
var pixelIndex = x + y * (size * 4);
if(pixelIndex < fillPixels.Length && pixelIndex >= 0) fillPixels[pixelIndex] = colour;
}
}
}
}
texture.SetPixels(fillPixels);
texture.Apply();
_generatedTextures.Add(texture);
return texture;
}
public static Texture2D MakeOutline(Texture2D texture, Color color, int thickness)
{
var outline = new Texture2D(texture.width, texture.height, TextureFormat.ARGB32, false);
@ -162,7 +250,13 @@ namespace NewHorizons.Utility
{
for(int j = 0; j < tex.height; j++)
{
fillPixels[i + j * tex.width] = src.GetPixel(i, j);
var x = i + (src.width - width) / 2;
var y = j + (src.height - height) / 2;
var colour = Color.black;
if (x < src.width && y < src.height) colour = src.GetPixel(i, j);
fillPixels[i + j * tex.width] = colour;
}
}
tex.SetPixels(fillPixels);

View File

@ -3,7 +3,7 @@
"author": "xen, Bwc9876, & Book",
"name": "New Horizons",
"uniqueName": "xen.NewHorizons",
"version": "0.11.0",
"version": "0.11.1",
"owmlVersion": "2.1.0",
"dependencies": [ "PacificEngine.OW_CommonResources" ],
"conflicts": [ "Raicuparta.QuantumSpaceBuddies", "Vesper.OuterWildsMMO", "Vesper.AutoResume" ],

View File

@ -794,6 +794,98 @@
}
}
}
},
"slideShows": {
"type": "array",
"description": "For creating custom auto projectors or slide reels from the DLC",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"position": {
"$ref": "#/$defs/vector3",
"description": "The position of this object."
},
"rotation": {
"$ref": "#/$defs/vector3",
"description": "The euler angle rotation of this object."
},
"reveals": {
"type": "array",
"description": "The ship log entries revealed after finishing this slide reel.",
"items": {
"type": "string"
}
},
"slides": {
"type": "array",
"description": "The list of slides for this object.",
"items": {
"type": "object",
"additionalProperties": false,
"properties": {
"imagePath": {
"type": "string",
"description": "The path to the image file for this slide."
},
"beatAudio": {
"type": "string",
"description": "The name of the AudioClip for a one-shot sound when opening the slide."
},
"beatDelay": {
"type": "number",
"description": "The time delay until the one-shot audio"
},
"backdropAudio": {
"type": "string",
"description": "The name of the AudioClip that will continuously play while watching these slides"
},
"backdropFadeTime": {
"type": "number",
"description": "The time to fade into the backdrop audio"
},
"ambientLightIntensity": {
"type": "number",
"description": "Ambient light intensity when viewing this slide."
},
"ambientLightRange": {
"type": "number",
"description": "Ambient light range when viewing this slide."
},
"ambientLightColor": {
"$ref": "#/$defs/color",
"description": "Ambient light colour when viewing this slide."
},
"spotIntensityMod": {
"type": "number",
"description": "Spotlight intensity modifier when viewing this slide."
},
"playTimeDuration": {
"type": "number",
"description": "Play-time duration for auto-projector slides."
},
"blackFrameDuration": {
"type": "number",
"description": "Before viewing this slide, there will be a black frame for this many seconds."
},
"reveal": {
"type": "string",
"description": "Ship log entry revealed when viewing this slide."
}
}
}
},
"type": {
"type": "string",
"description": "The type of object this is. Must be either SlideReel or AutoProjector",
"enum": [
"slideReel",
"autoProjector"
],
"default": "slideReel"
}
}
}
}
}
},

View File

@ -40,7 +40,7 @@ Check the ship's log for how to use your warp drive to travel between star syste
- Signalscope signals and custom frequencies
- Surface scatter: rocks, trees, etc, using in-game models, or custom ones
- Black hole / white hole pairs
- Custom dialogue and custom ship log entries for rumour mode and map mode
- Custom dialogue, slide-reel projections, and custom ship log entries for rumour mode and map mode
- Funnels and variable surface height (can be made of sand/water/lava/star)
## Roadmap
@ -49,10 +49,9 @@ Check the ship's log for how to use your warp drive to travel between star syste
- Better terrain and water LOD
- Edit existing planet orbits (started)
- Implement all planet features:
- Tornados + floating islands
- Let any star go supernova
- Pocket dimensions
- Timed position/velocity changes
- Tornados
- Supernovae
- Bramble dimensions
- Implement custom Nomai scrolls
- Implement custom translatable writing
@ -73,7 +72,8 @@ Main authors:
New Horizons was made with help from:
- [Nageld](https://github.com/Nageld): Set up xml reading for custom dialogue in v0.8.0
- [jtsalomo](https://github.com/jtsalomo): Implemented [OW_CommonResources](https://github.com/PacificEngine/OW_CommonResources) support introduced in v0.5.0
- [Raicuparta](https://github.com/Raicuparta): Integrated the [New Horizons Template](https://github.com/xen-42/ow-new-horizons-config-template) into the Outer Wilds Mods website
- [Raicuparta](https://github.com/Raicuparta)
- [MegaPiggy](https://github.com/MegaPiggy)
Translation credits:
- Russian: GrayFix and Tlya

View File

@ -0,0 +1,760 @@
Title: Audio Values
Description: Numbers for audio values for slide reels
Hide_In_Nav: True
Render_TOC: False
# The List
None = 0,
Menu_RebindKey = 1,
Menu_ResetDefaults = 2,
Menu_UpDown = 3,
Menu_LeftRight = 4,
Menu_ChangeTab = 5,
Menu_Pause = 6,
Menu_Unpause = 7,
Menu_SliderIncrement = 8,
ToolScopeEquip = 100,
ToolScopeUnequip = 101,
ToolScopeSwitchFreq = 104,
ToolScopeStatic = 105,
ToolScopeHideAndSeekSignal = 106,
ToolScopeZoomAdjust = 107,
ToolScopeIdentifySignal = 108,
ToolItemScrollPickUp = 200,
ToolItemScrollDrop = 201,
ToolItemScrollInsert = 202,
ToolItemScrollRemove = 203,
ToolItemWarpCorePickUp = 204,
ToolItemWarpCoreDrop = 205,
ToolItemWarpCoreInsert = 206,
ToolItemWarpCoreRemove = 207,
ToolItemSharedStonePickUp = 208,
ToolItemSharedStoneDrop = 209,
ToolItemSharedStoneInsert = 210,
ToolItemSharedStoneRemove = 211,
ToolRepairing_LP = 300,
ToolRepairComplete = 301,
ToolTranslatorEquip = 400,
ToolTranslatorUnequip = 401,
ToolTranslateText_LP = 402,
ToolFlashlightOn = 500,
ToolFlashlightOff = 501,
ToolFlashlightFlicker = 502,
ToolProbeEquip = 600,
ToolProbeUnequip = 601,
ToolProbeLaunch = 602,
ToolProbeLaunchUnderwater = 603,
ToolProbeTakePhoto = 604,
ToolProbeTakeReversePhoto = 605,
ToolProbeRetrieve = 606,
ToolProbeFlight_LP = 607,
ToolProbeAttach = 608,
ToolProbeChangeMode = 609,
ToolMarshmallowEquip = 700,
ToolMarshmallowReplace = 701,
ToolMarshmallowIgnite = 702,
ToolMarshmallowBlowOut = 703,
ToolMarshmallowEat = 704,
ToolMarshmallowEatBurnt = 705,
ToolMarshmallowToss = 706,
PlayerSuitWearSuit = 800,
PlayerSuitRemoveSuit = 801,
PlayerSuitWearHelmet = 802,
PlayerSuitRemoveHelmet = 803,
PlayerSuitOxygenRefill = 804,
PlayerSuitOxygenLeak_In = 805,
PlayerSuitOxygenLeak_LP = 806,
PlayerSuitOxygenLeak_Out = 807,
PlayerSuitLockOn = 808,
PlayerSuitLockOff = 809,
PlayerSuitWarning = 810,
PlayerSuitCriticalWarning = 811,
PlayerSuitJetpackThrustTranslational_LP = 812,
PlayerSuitJetpackThrustRotational = 813,
PlayerSuitJetpackBoost = 814,
PlayerSuitJetpackThrustRotationalUnderwater_LP = 816,
PlayerSuitJetpackThrustUnderwater_LP = 817,
PlayerSuitRainOnHelmet = 818,
PlayerSuitNotificationTextScroll_In = 820,
PlayerSuitNotificationTextScroll_LP = 821,
PlayerSuitHelmetCrack = 822,
PlayerSuitOxygenRefill_Short = 823,
PlayerSuitPatchPuncture = 824,
PlayerSuitJetpackOxygenPropellant_LP = 825,
PlayerBreathing_LP = 850,
PlayerBreathing_LowOxygen_LP = 851,
PlayerGasp_Light = 852,
PlayerGasp_Medium = 853,
PlayerGasp_Heavy = 854,
Asphyxiate_Start_Suit = 855,
Asphyxiate_Start_NoSuit = 856,
Asphyxiate_End_Suit = 857,
Asphyxiate_End_NoSuit = 858,
Drowning_Start = 859,
Drowing_End = 860,
PlayerGasp_StopSuffocating = 861,
PlayerGasp_StopSuffocating_Suit = 862,
EnterVolumeDamageHeat_LP = 900,
EnterVolumeDamageGhostfire_LP = 901,
EnterVolumeDamageLava_LP = 902,
EnterVolumeDamageFire_LP = 903,
HazardFirstContactDamage = 904,
ElectricShock = 905,
Splash_GhostMatter = 950,
Splash_Lava = 951,
Submerge_Player = 952,
Submerge_Ship = 953,
Splash_Water_Probe = 954,
Splash_Water_Player = 955,
Splash_Water_Ship = 956,
NonDiaMapActivation = 1000,
DialogueEnter = 1001,
DialogueAdvance = 1002,
DialogueExit = 1003,
NonDiaUIAffirmativeSFX = 1004,
NonDiaUINegativeSFX = 1005,
TapeRecorder_Start = 1006,
TapeRecorder_LP = 1007,
TapeRecorder_Stop = 1008,
PlayerTurbulence_LP = 1050,
ShipTurbulence_LP = 1051,
ShipRattle_LP = 1052,
ShipReentryBurn_LP = 1053,
PLACEHOLDER = 1100,
LandingGrass = 1102,
LandingDirt = 1103,
LandingStone = 1104,
LandingMetal = 1105,
LandingNomaiMetal = 1106,
LandingSand = 1107,
LandingIce = 1108,
LandingWater = 1109,
ImpactUnderwater = 1110,
ImpactLowSpeed = 1111,
ImpactMediumSpeed = 1112,
ImpactHighSpeed = 1113,
MovementFootstep = 1114,
MovementRunningStep = 1115,
MovementGrassFootstep = 1116,
MovementDirtFootstep = 1117,
MovementStoneFootstep = 1118,
MovementMetalFootstep = 1119,
MovementNomaiMetalFootstep = 1120,
MovementSandFootstep = 1121,
MovementIceFootstep = 1122,
MovementShallowWaterFootstep = 1123,
MovementJump = 1124,
MovementWoodCreakFootstep = 1134,
MovementWoodCreakLanding = 1135,
MovementWoodFootstep = 1136,
MovementWoodLanding = 1137,
MovementSnowFootstep = 1138,
MovementSnowLanding = 1139,
MovementIceLSiding = 1140,
MovementGlassFootsteps = 1141,
MovementGlassLanding = 1142,
MovementPassingBushes = 1143,
MovementLeavesFootsteps = 1144,
MovementLeavesLanding = 1145,
MovementGravelFootsteps = 1146,
MovementGravelLanding = 1147,
KnockOverCairn = 1150,
DefaultPropImpact = 1151,
NomaiShuttleImpact = 1152,
ModelShipImpact = 1153,
ShipCockpitScopeActivate = 1200,
ShipCockpitScopeDeactivate = 1201,
ShipCockpitScopeZoomIn = 1202,
ShipCockpitScopeZoomOut = 1203,
ShipCockpitScopeSwitchFreq = 1204,
ShipCockpitScopeScreenSlide_LP = 1205,
ShipCockpitScopeScreenKachunk = 1206,
ShipCockpitMasterAlarm_LP = 1207,
ShipCockpitAutopilotActivate = 1208,
ShipCockpitAutopilotDeactivate = 1209,
ShipCockpitBuckleUp = 1210,
ShipCockpitUnbuckle = 1211,
ShipCockpitConsoleReadout_In = 1212,
ShipCockpitConsoleReadout_LP = 1213,
ShipCockpitHeadlightsOn = 1214,
ShipCockpitHeadlightsOff = 1215,
ShipCockpitLandingCamActivate = 1216,
ShipCockpitLandingCamDeactivate = 1217,
ShipCockpitLandingCamStatic_LP = 1218,
ShipCockpitProbeCameraScreenRotation = 1219,
ShipCockpitProbeActivate = 1220,
ShipCockpitProbeDeactivate = 1221,
ShipCockpitProbeLaunch = 1222,
ShipCockpitProbeLaunchUnderwater = 1223,
ShipCockpitProbeTakePhoto = 1224,
ShipCockpitProbeRetrieve = 1225,
ShipCockpitLandingCamAmbient_LP = 1226,
ShipCockpitEject = 1227,
ShipCabinUseMedkit = 1300,
ShipCabinUseRefueller = 1301,
ShipCabinComputerActivate = 1302,
ShipCabinComputerAmbient_LP = 1303,
ShipHatchOpen = 1304,
ShipHatchClose = 1305,
ShipHullGroan = 1309,
ShipCabinAmbience = 1310,
ShipEatenGroan = 1311,
ShipLogBootUp = 1350,
ShipLogAmbience_LP = 1351,
ShipLogEnterDetectiveMode = 1355,
ShipLogEnterMapMode = 1356,
ShipLogNavigate_LP = 1357,
ShipLogSelectPlanet = 1360,
ShipLogDeselectPlanet = 1361,
ShipLogMoveBetweenPlanets = 1362,
ShipLogMoveBetweenEntries = 1363,
ShipLogRevealEntry = 1365,
ShipLogHighlightEntry = 1366,
ShipLogSelectEntry = 1367,
ShipLogDeselectEntry = 1368,
ShipLogTextReveal_LP = 1370,
ShipLogMarkLocation = 1390,
ShipLogUnmarkLocation = 1391,
ShipDamageExternalTankLeak_LP = 1400,
ShipDamageElectricSparking_LP = 1401,
ShipDamageCockpitGlassCrack = 1402,
ShipDamageShipExplosion = 1403,
ShipDamageSingleElectricSpark = 1404,
ShipDamageFuelLeak_LP = 1405,
ShipDamageOxygenLeak_LP = 1406,
ShipDamageElectricalFailure = 1407,
ShipImpact_NoDamage = 1420,
ShipImpact_LightDamage = 1421,
ShipImpact_MediumDamage = 1422,
ShipImpact_HeavyDamage = 1423,
Ship_LandingPad_Soft = 1424,
Ship_LandingPad_Hard = 1425,
ShipThrustIgnition = 1500,
ShipThrustRotational = 1501,
ShipThrustRotationalUnderwater = 1502,
ShipThrustTranslational_LP = 1503,
ShipThrustTranslationalUnderwater_LP = 1504,
ShipThrustAfterburn_LP = 1505,
NomaiHologram_LP = 1550,
NomaiHologramActivate = 1551,
NomaiHologramDeactivate = 1552,
NomaiRemoteCameraAmbient_LP = 1553,
NomaiRemoteCameraEntry = 1554,
NomaiRemoteCameraExit = 1555,
NomaiComputerAmbient = 1600,
NomaiComputerRingActivate = 1601,
NomaiComputerRingDeactivate = 1602,
NomaiOrbStartDrag = 1603,
NomaiOrbDragging_LP = 1604,
NomaiOrbRolling_LP = 1605,
NomaiOrbSlotActivated = 1606,
NomaiGravCrystalAmbient_LP = 1609,
NomaiGravCrystalFlickerAmbient_LP = 1610,
NomaiGravityCannonAmbient_LP = 1611,
NomaiGravityCannonActivate = 1612,
NomaiGravityCannonDeactivate = 1613,
NomaiTractorBeamActivate = 1614,
NomaiTractorBeamDeactivate = 1615,
NomaiTractorBeamAmbient_LP = 1616,
NomaiRecorderAmbient_LP = 1617,
NomaiEscapePodDistressSignal_LP = 1618,
NomaiTextReveal_LP = 1619,
NomaiDataStream_LP = 1620,
NomaiPowerOn = 1621,
NomaiPowerOff = 1622,
NomaiLightsOn = 1623,
NomaiLightsOff = 1624,
NomaiAirLockAirPourIn = 1625,
NomaiAirLockAirPourOut = 1626,
NomaiDoorAirLockOpen = 1627,
NomaiDoorStart = 1628,
NomaiDoorStop = 1629,
NomaiDoorSlide_LP = 1630,
NomaiDoorStartBig = 1631,
NomaiDoorStopBig = 1632,
NomaiDoorSlideBig_LP = 1633,
NomaiHeadStatueRotate_LP = 1634,
NomaiPedestalSlide_LP = 1635,
NomaiPedestalContact = 1636,
NomaiEscapePodHatch = 1645,
NomaiTimeLoopOpen = 1646,
NomaiTimeLoopClose = 1647,
NomaiVesselPowerUp = 1648,
NomaiPillarRaiseLower_LP = 1649,
NomaiPillarRotate = 1650,
NomaiAirlockSlide_LP = 1651,
NomaiAirlockWaterPourOut = 1652,
NomaiAirlockWaterPourIn = 1653,
HT_SurfaceAmbience_LP = 1700,
HT_CaveAmbientBig_LP = 1702,
HT_CaveAmbientSmall_LP = 1703,
HT_SandColumnEnd_LP = 1705,
HT_SandColumnStart_LP = 1706,
HT_SandfallSmallBottom_LP = 1707,
HT_SandRiver_LP = 1708,
HT_InsideSandfall_Suit_LP = 1709,
HT_InsideSandfall_Ship_LP = 1710,
TH_ModelShipCrash = 1800,
TH_SatelliteSnapshot = 1801,
TH_RetrieveModelShip = 1803,
TH_ZeroGTrainingAllRepaired = 1804,
TH_CanyonAmbienceDay_LP = 1807,
TH_CanyonAmbienceNight_LP = 1808,
TH_HiAltitudeAmbienceDay_LP = 1809,
TH_HiAltitudeAmbienceNight_LP = 1810,
TH_ZeroGCaveAmbient_LP = 1811,
TH_UnderwaterCurrent_LP = 1812,
TH_UnderwaterAmbience_LP = 1813,
TH_MuseumAmbience_LP = 1814,
TH_BridgeCreaking_LP = 1819,
TH_Campfire_LP = 1820,
TH_FlagFlapping_LP = 1821,
TH_GeyserEnd = 1822,
TH_Geyser_LP = 1823,
TH_GeyserStart = 1824,
TH_Insects_LP = 1825,
TH_LiftActivate = 1826,
TH_LiftArrives = 1827,
TH_Lift_LP = 1828,
TH_ProjectorActivate = 1829,
TH_ProjectorRun_LP = 1830,
TH_ProjectorStop = 1831,
TH_RiverWaterFlow_LP = 1832,
TH_Waterfall_LP = 1833,
TH_WaterWheel_LP = 1834,
TH_ModelRocketThrustRotational = 1835,
TH_ModelRocketThrustTranslational_LP = 1836,
TH_Campfire_Ignite = 1837,
TH_RockingChair = 1838,
TH_BanjoTuning = 1839,
TH_PickaxeImpact = 1840,
TH_WoodCarving = 1841,
TH_RadioSignal_LP = 1842,
BH_BreakawayFragment = 1900,
BH_VolcanicMoonSurface_LP = 1901,
BH_BreakawayPlatform = 1902,
BH_MeteorImpact = 1903,
BH_BlackHoleEmission = 1904,
BH_SurfaceAmbience_LP = 1905,
BH_SubsurfaceAmbience_LP = 1906,
WHS_StationActivation = 1907,
BH_ForgeMoving_LP = 1908,
BH_MeteorLaunch = 1909,
GD_OceanSurface_LP = 2000,
GD_UnderwaterAmbient_LP = 2002,
GD_CoreAmbient_LP = 2004,
GD_ElectricBarrier_LP = 2005,
GD_Tornado_LP = 2006,
GD_Lightning = 2007,
GD_RainAmbient_LP = 2008,
GD_IslandSplash = 2009,
GD_IslandFalling = 2010,
GD_IslandLiftedByTornado = 2011,
GD_WavesBeach_LP = 2012,
GD_WavesRock_LP = 2013,
GD_CaveAmbience_LP = 2014,
GD_UnderwaterCurrent_LP = 2015,
DBAnglerfishLurking_LP = 2100,
DBAnglerfishChasing_LP = 2101,
DBAnglerfishDetectDisturbance = 2102,
DBAnglerfishDetectTarget = 2103,
DBAnglerfishBite = 2104,
DBAnglerfishChomp = 2105,
DBAnglerfishOpeningMouth = 2106,
DB_Ambience_LP = 2107,
DB_VineImpact = 2108,
CometAmbience_LP = 2200,
CometIceMelting_LP = 2201,
SolanumStaffContact = 2210,
SolanumStomp = 2211,
SolanumCairnAssembly = 2212,
SolanumCairnSettle = 2213,
SolanumSymbolReveal = 2214,
SolanumEnterWriting = 2215,
SolanumExitWriting = 2216,
SolanumEnterIcon = 2217,
SolanumExitIcon = 2218,
SolanumEnterRaiseCairn = 2219,
SolanumExitRaiseCairn = 2220,
EyeAmbience_LP = 2250,
EyeLightning = 2251,
EyeVortex_LP = 2252,
VesselAmbience_LP = 2253,
EyeVortexEntry = 2254,
EyeVortexExit = 2255,
EyeGalaxyZoom = 2260,
EyeGalaxyBlowAway = 2261,
EyeBigGalaxyBurn = 2262,
EyeShuttleFlight = 2270,
EyeShuttleIntoLight = 2271,
EyeSmokeSpherePulse = 2280,
EyeSmokeSphereCollapse = 2281,
EyeCosmicInflation = 2282,
EyeBigBang = 2283,
EyeBigBangWall_LP = 2284,
EyeSmokeSphereEntry = 2285,
EyeSphereInflation = 2286,
TravelerEsker = 2300,
TravelerChert = 2301,
TravelerRiebeck = 2302,
TravelerGabbro = 2303,
TravelerFeldspar = 2304,
TravelerNomai = 2305,
TravelerEnd_All = 2306,
TravelerEnd_NoPiano = 2307,
SingularityCreate = 2400,
SingularityCollapse = 2401,
SingularityOnPlayerEnterExit = 2402,
SingularityOnObjectEnter = 2403,
SingularityOnObjectExit = 2404,
Singularity_BlackHole_LP = 2405,
Singularity_WhiteHole_LP = 2406,
VesselSingularityCreate = 2407,
VesselSingularityCollapse = 2408,
Sun_Ambience_LP = 2412,
Sun_Explosion = 2413,
Sun_SupernovaWall_LP = 2414,
Sun_Collapse = 2415,
QuantumAmbience_LP = 2424,
WhiteHoleAmbience_LP = 2425,
BlackHoleAmbience_LP = 2426,
TimelineEndEffect_Shadow = 2427,
TimelineEndEffect_Cracks = 2428,
TimelineEndEffect_Shatter = 2429,
FigBackerVideo = 2440,
CometPurr = 2441,
Death_Instant = 2450,
Death_Crushed = 2451,
Death_Energy = 2452,
Death_Digestion = 2453,
Death_TimeLoop = 2454,
Death_Self = 2455,
Death_BigBang = 2456,
Death_Lava = 2457,
Death_CrushedByElevator = 2458,
MemoryUplink_Start = 2460,
MemoryUplink_End = 2461,
MemoryUplink_LP = 2462,
MemoryUplink_Overlay_LP = 2463,
Flashback_End = 2465,
Flashback_Base_LP = 2466,
Flashback_Overlay_1_LP = 2467,
Flashback_Overlay_2_LP = 2468,
NomaiRuinsBaseTrack = 2500,
NomaiRuinsBaseScaryTrack = 2501,
NomaiRuinsOverlayTracks = 2502,
HT_City = 2503,
TH_Observatory = 2504,
TH_Village = 2505,
BH_Observatory = 2506,
GD_UnderwaterExploration = 2507,
QM_Ambient = 2508,
DB_Ambient = 2509,
TimeLoopDevice_Ambient = 2510,
EndOfTime = 2511,
EndOfTime_DBFinal = 2512,
EndOfTime_Final = 2513,
Travel_Theme = 2514,
SunStation = 2515,
SadNomaiTheme = 2516,
DB_VesselDiscovery = 2517,
EYE_ForestOfGalaxies = 2518,
EndOfTime_Final_LP = 2519,
EYE_QuantumFoamApproach = 2520,
EYE_EndOfGame = 2521,
MainMenuTheme = 2522,
FinalCredits = 2523,
PostCredits = 2524,
KazooTheme = 2525,
Raft_Impact_Light = 2550,
Raft_Impact_Medium = 2551,
Raft_Impact_Heavy = 2552,
Raft_Push = 2553,
Raft_Reel_Start = 2554,
Raft_Reel_Loop = 2555,
Raft_Reel_End = 2556,
Raft_Socket = 2557,
Raft_Release = 2558,
Raft_RunAground = 2559,
Raft_Move_Start = 2560,
Raft_Move_Loop = 2561,
Raft_Move_End = 2562,
Raft_Impact_Player = 2563,
Raft_DW_Turbo = 2564,
Door_SensorSliding_Loop = 2570,
Door_Loop = 2571,
Door_Loop_Creaking = 2572,
Door_OpenStart = 2573,
Door_OpenStop = 2574,
Door_CloseStart = 2575,
Door_CloseStop = 2576,
Door_Metal_OpenStart = 2577,
Door_Metal_OpenStop = 2578,
Door_Metal_CloseStart = 2579,
Door_Metal_CloseStop = 2580,
Door_Small_OpenStart = 2581,
Door_Small_OpenStop = 2582,
Door_Small_CloseStart = 2583,
Door_Small_CloseStop = 2584,
SecretPassage_Start = 2590,
SecretPassage_Loop = 2591,
SecretPassage_Stop = 2592,
Airlock_Open = 2593,
Airlock_Loop = 2594,
Airlock_Close = 2595,
Airlock_Pressurize = 2596,
Airlock_Depressurize = 2597,
AirRushingOut = 2598,
SlideReel_Pickup = 2600,
SlideReel_Drop = 2601,
SlideReel_Insert = 2602,
SlideReel_Remove = 2603,
Lantern_Pickup = 2604,
Lantern_Drop = 2605,
Lantern_Insert = 2606,
Lantern_Remove = 2607,
Lantern_ShortOut = 2608,
Artifact_Pickup = 2609,
Artifact_Drop = 2610,
Artifact_Light = 2611,
Artifact_Extinguish = 2612,
Artifact_Conceal = 2613,
Artifact_Unconceal = 2614,
Artifact_Focus = 2615,
Artifact_Unfocus = 2616,
Artifact_Crackling_Loop = 2617,
Artifact_Insert = 2618,
Artifact_Remove = 2619,
VisionTorch_ProjectionOn = 2620,
VisionTorch_ProjectionOff = 2621,
VisionTorch_EnterVision = 2622,
VisionTorch_ExitVision = 2623,
VisionTorch_NextSlide = 2624,
VisionTorch_Scanning_Loop = 2625,
VisionTorch_Crackling_Loop = 2626,
VisionTorch_Give = 2627,
VisionTorch_Take = 2628,
DamBreak_RW_Base = 2650,
DamBreak_DW_Base = 2651,
DamBreak_RW_Water = 2652,
DamCrack = 2653,
DamCrack_Loop = 2654,
WaterSpray_Small = 2660,
WaterSpray_Large = 2661,
Splash_Medium = 2662,
Splash_Large = 2663,
WoodDebris = 2670,
WoodImpact_Small = 2671,
WoodImpact_Large = 2672,
HouseCollapse_Zone3 = 2673,
GeneralDestruction = 2674,
HouseDestruction = 2675,
StiltDestruction = 2676,
Tower_RW_Tilt = 2680,
Tower_RW_Fall_1 = 2681,
Tower_RW_Fall_2 = 2682,
Tower_DW_Tilt = 2683,
Tower_DW_Fall_1 = 2684,
Tower_DW_Fall_2 = 2685,
Tower_RW_Splash = 2686,
SolarSail_RW_Start = 2690,
SolarSail_RW_End = 2691,
SolarSail_RW_Loop = 2692,
SolarSail_DW_Start = 2693,
SolarSail_DW_End = 2694,
SolarSail_DW_Loop = 2695,
StationFlicker_RW = 2696,
StationFlicker_DW = 2697,
StationShudder_RW = 2698,
StationShudder_DW = 2699,
River_DW_Base = 2700,
FloodWave_DW_Loop = 2701,
River_DW_Lake = 2703,
Candle_Light_Big = 2719,
Candle_Light_Small = 2720,
Candle_Extinguish = 2721,
DreamFire_Crackling_Loop = 2722,
DreamFire_Extinguish = 2723,
DreamFire_Explosion = 2724,
LodgeFire_Crackling_Loop = 2725,
ProjectorTotem_Pulse = 2729,
ProjectorTotem_Light = 2730,
ProjectorTotem_Extinguish = 2731,
ProjectorTotem_Blow = 2732,
GrappleTotem_Zoom = 2733,
GrappleTotem_RetroZoom = 2734,
Simulation_Enter = 2739,
Simulation_Exit = 2740,
IllusoryWall_Enter = 2741,
IllusoryWall_Exit = 2742,
LoadingZone_Enter = 2743,
LoadingZone_Exit = 2744,
LoadingZone_GlitchOut = 2745,
LoadingZone_Loop = 2746,
Glitch_Loop = 2747,
Sarcophagus_OpenFail = 2760,
Sarcophagus_Open = 2761,
Sarcophagus_SomethingIsComing = 2762,
Sarcophagus_TunnelAmbience = 2763,
Sarcophagus_LightsOnAmbience = 2764,
Ambience_DW_Base = 2775,
Ambience_DW_LightsOut = 2776,
Ambience_DW_Hotel = 2777,
Ambience_DW_Nature = 2778,
Ambience_DW_Forest = 2781,
Ambience_DW_Simulation = 2782,
Ambience_DW_Underground = 2784,
Ambience_DW_FireRoom = 2787,
PointSounds_DW_TreeCreak = 2790,
PointSounds_DW_Creature_1 = 2791,
PointSounds_DW_Creature_2 = 2792,
PointSounds_DW_Hotel_2 = 2795,
AlarmChime_RW = 2798,
AlarmChime_DW = 2799,
LightSensor_On = 2800,
LightSensor_Off = 2801,
LightSensor_Loop = 2802,
Projector_Prev = 2803,
Projector_Next = 2804,
Cloak_Entry = 2805,
Cloak_Exit = 2806,
GearRotate_Light = 2807,
GearRotate_Heavy = 2808,
GearRotate_Fail = 2809,
CodeTotem_Horizontal = 2810,
CodeTotem_Vertical = 2811,
CageElevator_Start = 2817,
CageElevator_Loop_Winch = 2818,
CageElevator_End = 2819,
CageElevator_Loop_Rattle = 2820,
Ambience_RW_Lab = 2873,
Ambience_RW_Tunnel = 2874,
Ambience_RW_FireRoom = 2875,
Ambience_RW_Base = 2876,
Ambience_RW_Cave = 2877,
Ambience_RW_Indoor = 2878,
River_RW_Base = 2879,
River_Underwater = 2880,
River_Reservoir = 2881,
River_Rapids = 2882,
River_Underwater_Rapids = 2883,
FloodWave_RW_Loop = 2884,
River_RW_Small = 2885,
River_RW_Stream = 2886,
PostCredit_RuinReveal = 2887,
PostCredit_LanternLight = 2889,
RaftTravel_River = 2890,
RaftTravel_Reservoir = 2891,
GhostSequence_ReducedFrights = 2895,
GhostSequence_Suspense = 2896,
GhostSequence_Dread = 2897,
GhostSequence_Fear = 2898,
GhostSequence_Fear_Slam = 2899,
EndOfTime_Dream = 2900,
StationDiscovery = 2901,
DreamFireRoom = 2902,
EyeTemple_Stinger = 2903,
EyeTemple_Basement = 2904,
SlideBurningRoom = 2905,
SubmergedStructure = 2906,
SecretLibrary = 2907,
DreamRuinsOverlayTracks = 2908,
DreamRuinsBaseTrack = 2909,
TravelerPrisoner = 2910,
TravelerEnd_All_Prisoner = 2911,
TravelerEnd_NoPiano_Prisoner = 2912,
Prisoner_Elevator = 2913,
Prisoner_Reveal = 2914,
Prisoner_Catharsis = 2915,
SecretPortrait = 2916,
SecretKorok = 2917,
PartyHouse_Traveler = 2920,
PartyHouse_Vocals = 2921,
PartyHouse_Drone = 2922,
PartyHouse_Bass = 2923,
Reel_Secret_Backdrop_A = 2924,
Reel_Secret_Backdrop_B = 2925,
Reel_Secret_Beat_Peephole_A = 2926,
Reel_Secret_Beat_Peephole_B = 2927,
Reel_Secret_Beat_Tower_A = 2928,
Reel_Secret_Beat_Tower_B = 2929,
Reel_Secret_Beat_Lantern = 2930,
Reel_Lab_Backdrop_Fail = 2933,
Reel_Lab_Backdrop_Success = 2934,
Reel_Lab_Backdrop_Testing = 2935,
Reel_Backdrop_Burnt = 2938,
Reel_1_Backdrop_A = 2940,
Reel_1_Beat_A = 2945,
Reel_1_Beat_B = 2946,
Reel_1_Beat_C = 2947,
Reel_2_Backdrop_A = 2950,
Reel_2_Backdrop_B = 2951,
Reel_2_Beat_A = 2955,
Reel_2_Beat_B = 2956,
Reel_2_Beat_C = 2957,
Reel_2_Beat_D = 2958,
Reel_3_Backdrop_A = 2960,
Reel_3_Backdrop_B = 2961,
Reel_3_Backdrop_C = 2962,
Reel_3_Beat_A = 2965,
Reel_3_Beat_B = 2966,
Reel_3_Beat_C = 2967,
Reel_3_Beat_D = 2968,
Reel_4_Backdrop_A = 2970,
Reel_4_Beat_A = 2975,
Reel_4_Beat_B = 2976,
Reel_4_Beat_C = 2977,
Reel_4_Beat_D = 2978,
Reel_5_Long = 2980,
Reel_5_Short = 2981,
Reel_Farewell = 2985,
Reel_Rule_Beat_DarkDiscovery = 2986,
Reel_Rule_Backdrop_Discovery = 2987,
Reel_Rule_Beat_Discovery = 2988,
Reel_Rule_Backdrop_Dream = 2989,
Reel_Rule_Backdrop_Normal = 2990,
Reel_Rule_Backdrop_Glitch = 2991,
Reel_LibraryPath_Backdrop = 2992,
Reel_Rule2a_Beat_A = 2993,
Reel_Seal_Backdrop = 2994,
Reel_Burning_Backdrop_A = 2995,
Reel_Burning_Backdrop_B = 2996,
Reel_Burning_Beat_A = 2997,
Reel_Burning_Beat_B = 2998,
Reel_Burning_Beat_C = 2999,
Ghost_DeathGroup = 3000,
Ghost_DeathSingle = 3001,
Ghost_Grab_Swish = 3002,
Ghost_Grab_Contact = 3003,
Ghost_BlowOut_Charge = 3004,
Ghost_BlowOut_Extinguish = 3005,
Ghost_NeckSnap = 3006,
Ghost_Identify_Curious = 3010,
Ghost_Identify_Irritated = 3011,
Ghost_Identify_Fail = 3012,
Ghost_Chase = 3013,
Ghost_Stalk = 3014,
Ghost_Hunt = 3015,
Ghost_HuntFail = 3016,
Ghost_Grab_Scream = 3017,
Ghost_Stalk_Fast = 3018,
Ghost_Grab_Shout = 3019,
Ghost_SomeoneIsInHereHowl = 3020,
Ghost_IntruderConfirmed = 3021,
Ghost_IntruderConfirmedResponse = 3022,
Ghost_CallForHelp = 3023,
Ghost_CallForHelpResponse = 3024,
Ghost_Laugh = 3025,
Ghost_Footstep_Wood = 3030,
Ghost_Footstep_Wood_Running = 3031,
Ghost_Footstep_Forest = 3032,
Ghost_Footstep_Forest_Running = 3033,
Ghost_Footstep_Gravel = 3034,
Ghost_Footstep_Wood_Stompy = 3035,
Prisoner_ReactToVision_Vocals = 3050,
Prisoner_RevealToStand_Vocals_1 = 3051,
Prisoner_RevealToStand_Vocals_2 = 3052,
Prisoner_PickUpArtifact = 3053,
Prisoner_PickUpTorch = 3054,
Prisoner_ClothFoley = 3055