# LevelLocals Most map-relative data is stored in this structure. ``` struct LevelLocals { // Map data array Lines; array Sectors; array Sides; internal array SectorPortals; readonly array Vertexes; // Stats int Found_Items; int Found_Secrets; int Killed_Monsters; int Total_Items; int Total_Monsters; int Total_Secrets; // Time readonly int MapTime; readonly int ParTime; readonly int StartTime; readonly int SuckTime; readonly int Time; readonly int TotalTime; // Map sequencing readonly int Cluster; readonly int ClusterFlags; readonly string LevelName; readonly int LevelNum; readonly string MapName; string NextMap; string NextSecretMap; readonly int MapType; // Music readonly string Music; readonly int MusicOrder; // Sky readonly textureid SkyTexture1; readonly textureid SkyTexture2; float SkySpeed1; float SkySpeed2; // Physics play double AirControl play double AirFriction; play int AirSupply; play double Gravity; // State bool AllMap; bool Frozen; // Static info name DeathSequence; string F1Pic; readonly bool ActOwnSpecial; readonly bool AllowRespawn; readonly bool CheckSwitchRange; readonly int FogDensity; readonly bool Infinite_Flight; readonly bool KeepFullInventory; readonly bool MissilesActivateImpact; readonly bool MonsterFallingDamage; readonly bool MonstersTelefrag; readonly bool NoInventoryBar; readonly bool NoMonsters; readonly bool No_Dlg_Freeze; readonly int OutsideFogDensity; readonly float PixelStretch; readonly bool PolyGrind; readonly bool RemoveItems; readonly int SkyFog; readonly bool SndSeqTotalCtrl; readonly double TeamDamage; double GetUDMFFloat(int type, int index, name key); int GetUDMFInt(int type, int index, name key); string GetUDMFString(int type, int index, name key); bool ExecuteSpecial(int special, Actor activator, Line linedef, bool lineside, int arg1 = 0, int arg2 = 0, int arg3 = 0, int arg4 = 0, int arg5 = 0); void ChangeSky(textureid sky1, textureid sky2); string FormatMapName(int mapnamecolor); string GetChecksum() const; void SetInterMusic(string nextmap); void StartIntermission(name type, int state) const; string TimeFormatted(bool totals = false); bool IsCrouchingAllowed() const; bool IsFreelookAllowed() const; bool IsJumpingAllowed() const; static void GiveSecret(Actor activator, bool printmsg = true, bool playsound = true); static void RemoveAllBots(bool fromlist); static void StartSlideshow(name whichone = 'none'); static void WorldDone(); static vector2 GetAutomapPosition(); static clearscope bool IsPointInMap(vector3 p); static clearscope vector3 SphericalCoords(vector3 viewpoint, vector3 targetPos, vector2 viewAngles = (0, 0), bool absolute = false); static clearscope vector2 Vec2Diff(vector2 v1, vector2 v2); static clearscope vector2 Vec2Offset(vector2 pos, vector2 dir, bool absolute = false); static clearscope vector3 Vec2OffsetZ(vector2 pos, vector2 dir, double atz, bool absolute = false); static clearscope vector3 Vec3Diff(vector3 v1, vector3 v2); static clearscope vector3 Vec3Offset(vector3 pos, vector3 dir, bool absolute = false); } ``` - `Lines` TODO - `Sectors` TODO - `Sides` TODO - `SectorPortals` TODO - `Vertexes` TODO - `Found_Items` TODO - `Found_Secrets` TODO - `Killed_Monsters` TODO - `Total_Items` TODO - `Total_Monsters` TODO - `Total_Secrets` TODO - `MapTime` TODO - `ParTime` TODO - `StartTime` TODO - `SuckTime` TODO - `Time` TODO - `TotalTime` TODO - `Cluster` TODO - `ClusterFlags` Flags for this cluster. May contain any of the following bit flags: | Name | Description | | ---- | ----------- | | `Level.CLUSTER_HUB` | This cluster uses hub behaviour. | - `LevelName` TODO - `LevelNum` TODO - `MapName` TODO - `NextMap` TODO - `NextSecretMap` TODO - `MapType` TODO - `Music` TODO - `MusicOrder` TODO - `SkyTexture1` TODO - `SkyTexture2` TODO - `SkySpeed1` TODO - `SkySpeed2` TODO - `AirControl` TODO - `AirSupply` TODO - `Gravity` TODO - `AllMap` TODO - `Frozen` TODO - `DeathSequence` TODO - `F1Pic` TODO - `ActOwnSpecial` TODO - `AllowRespawn` TODO - `CheckSwitchRange` TODO - `FogDensity` TODO - `Infinite_Flight` TODO - `KeepFullInventory` TODO - `MissilesActivateImpact` TODO - `MonsterFallingDamage` TODO - `MonstersTelefrag` TODO - `NoInventoryBar` TODO - `NoMonsters` TODO - `No_Dlg_Freeze` TODO - `OutsideFogDensity` TODO - `PixelStretch` TODO - `PolyGrind` TODO - `RemoveItems` TODO - `SkyFog` TODO - `SndSeqTotalCtrl` TODO - `TeamDamage` TODO - `GetUDMFFloat` TODO - `GetUDMFInt` TODO - `GetUDMFString` TODO - `ExecuteSpecial` TODO - `ChangeSky` TODO - `FormatMapName` TODO - `GetChecksum` TODO - `SetInterMusic` TODO - `StartIntermission` TODO - `TimeFormatted` TODO - `IsCrouchingAllowed` TODO - `IsFreelookAllowed` TODO - `IsJumpingAllowed` TODO - `GiveSecret` TODO - `RemoveAllBots` TODO - `StartSlideshow` TODO - `WorldDone` TODO - `GetAutomapPosition` TODO - `IsPointInMap` TODO - `SphericalCoords` TODO - `Vec2Diff` TODO - `Vec2Offset` TODO - `Vec2OffsetZ` TODO - `Vec3Diff` TODO - `Vec3Offset` TODO