zscript-doc/api-global-LevelLocals.md

5.7 KiB

LevelLocals

Most map-relative data is stored in this structure.

struct LevelLocals
{
   // Map data
   array<Line>   Lines;
   array<Sector> Sectors;
   array<Side>   Sides;

   internal array<SectorPortal> SectorPortals;
   readonly array<Vertex>       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);

   int 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