Structs:LevelInfo

From ZDoom Wiki
Jump to navigation Jump to search
Note: This feature is for ZScript only.


The LevelInfo struct contains information about the level.

Usage

A global pointer to the current LeveInfo instance is available via LevelLocals, with Level.info.

LevelInfo contains a lot of the same information as LevelLocals, but in a static context. It can also be used to check properties of other maps aside from the current one, in contrast to LevelLocals.

Fields

  • readonly int levelnum
  • readonly String MapName
  • readonly String NextMap
  • readonly String NextSecretMap
  • readonly String SkyPic1
  • readonly String SkyPic2
  • readonly String F1Pic
  • readonly int cluster
  • readonly int partime
  • readonly int sucktime
  • readonly int flags
First set of flags:
  • LEVEL_NOINTERMISSION
  • LEVEL_NOINVENTORYBAR - This effects Doom only since it's the only one without a standard inventory bar.
  • LEVEL_DOUBLESKY
  • LEVEL_HASFADETABLE - Level uses Hexen's fadetable mapinfo to get fog
  • LEVEL_MAP07SPECIAL
  • LEVEL_BRUISERSPECIAL
  • LEVEL_CYBORGSPECIAL
  • LEVEL_SPIDERSPECIAL
  • LEVEL_SPECLOWERFLOOR
  • LEVEL_SPECOPENDOOR
  • LEVEL_SPECLOWERFLOORTOHIGHEST
  • LEVEL_SPECACTIONSMASK
  • LEVEL_MONSTERSTELEFRAG
  • LEVEL_ACTOWNSPECIAL
  • LEVEL_SNDSEQTOTALCTRL
  • LEVEL_FORCETILEDSKY
  • LEVEL_CROUCH_NO
  • LEVEL_JUMP_NO
  • LEVEL_FREELOOK_NO
  • LEVEL_FREELOOK_YES - The absence of both of the following bits means that this level does not
  • LEVEL_FALLDMG_ZD - Level uses ZDoom's falling damage
  • LEVEL_FALLDMG_HX - Level uses Hexen's falling damage
  • LEVEL_HEADSPECIAL - Heretic episode 1/4
  • LEVEL_MINOTAURSPECIAL - Heretic episode 2/5
  • LEVEL_SORCERER2SPECIAL - Heretic episode 3
  • LEVEL_SPECKILLMONSTERS
  • LEVEL_STARTLIGHTNING - Automatically start lightning
  • LEVEL_FILTERSTARTS - Apply mapthing filtering to player starts
  • LEVEL_LOOKUPLEVELNAME - Level name is the name of a language string
  • LEVEL_USEPLAYERSTARTZ - Use the Z position of player starts
  • LEVEL_SWAPSKIES - Used by lightning
  • LEVEL_NOALLIES - i.e. Inside Strife's front base
  • LEVEL_CHANGEMAPCHEAT - Don't display cluster messages
  • LEVEL_VISITED - Used for intermission map
  • readonly int flags2
Second set of flags:
  • LEVEL2_RANDOMPLAYERSTARTS - Select single player starts randomnly (no voodoo dolls)
  • LEVEL2_ALLMAP - The player picked up a map on this level
  • LEVEL2_LAXMONSTERACTIVATION - Monsters can open doors depending on the door speed
  • LEVEL2_LAXACTIVATIONMAPINFO - LEVEL_LAXMONSTERACTIVATION is not a default.
  • LEVEL2_MISSILESACTIVATEIMPACT - Missiles are the activators of SPAC_IMPACT events not their shooters
  • LEVEL2_NEEDCLUSTERTEXT - A map with this flag needs to retain its cluster intermission texts when being redefined in UMAPINFO
  • LEVEL2_KEEPFULLINVENTORY - doesn't reduce the amount of inventory items to 1
  • LEVEL2_PRERAISEWEAPON - players should spawn with their weapons fully raised (but not when respawning it multiplayer)
  • LEVEL2_MONSTERFALLINGDAMAGE
  • LEVEL2_CLIPMIDTEX
  • LEVEL2_WRAPMIDTEX
  • LEVEL2_CHECKSWITCHRANGE
  • LEVEL2_PAUSE_MUSIC_IN_MENUS
  • LEVEL2_TOTALINFIGHTING
  • LEVEL2_NOINFIGHTING
  • LEVEL2_NOMONSTERS
  • LEVEL2_INFINITE_FLIGHT
  • LEVEL2_ALLOWRESPAWN
  • LEVEL2_FORCETEAMPLAYON
  • LEVEL2_FORCETEAMPLAYOFF
  • LEVEL2_CONV_SINGLE_UNFREEZE
  • LEVEL2_NOCLUSTERTEXT - ignore intermission texts fro clusters. This gets set when UMAPINFO is used to redefine its properties.
  • LEVEL2_DUMMYSWITCHES
  • LEVEL2_HEXENHACK - Level was defined in a Hexen style MAPINFO
  • LEVEL2_SMOOTHLIGHTING - Level uses the smooth lighting feature.
  • LEVEL2_POLYGRIND - Polyobjects grind corpses to gibs.
  • LEVEL2_RESETINVENTORY - Resets player inventory when starting this level (unless in a hub)
  • LEVEL2_RESETHEALTH - Resets player health when starting this level (unless in a hub)
  • LEVEL2_NOSTATISTICS - This level should not have statistics collected
  • LEVEL2_ENDGAME - This is an epilogue level that cannot be quit.
  • LEVEL2_NOAUTOSAVEHINT - tell the game that an autosave for this level does not need to be kept
  • LEVEL2_FORGETSTATE - forget this map's state in a hub
  • readonly int flags3
Third set of flags:
  • LEVEL3_FORCEFAKECONTRAST - forces fake contrast even with fog enabled
  • LEVEL3_REMOVEITEMS - kills all INVBAR items on map change.
  • LEVEL3_ATTENUATE - attenuate lights?
  • LEVEL3_NOLIGHTFADE - no light fading to black.
  • LEVEL3_NOCOLOREDSPRITELIGHTING - draw sprites only with color-less light
  • LEVEL3_EXITNORMALUSED
  • LEVEL3_EXITSECRETUSED
  • LEVEL3_FORCEWORLDPANNING - Forces the world panning flag for all textures even those without it explicitly set.
  • LEVEL3_HIDEAUTHORNAME
  • LEVEL3_PROPERMONSTERFALLINGDAMAGE - Properly apply falling damage to the monsters
  • LEVEL3_SKYBOXAO - Apply SSAO to sector skies
  • LEVEL3_E1M8SPECIAL
  • LEVEL3_E2M8SPECIAL
  • LEVEL3_E3M8SPECIAL
  • LEVEL3_E4M8SPECIAL
  • LEVEL3_E4M6SPECIAL
  • LEVEL3_NOSHADOWMAP - disables shadowmaps for a given level.
  • LEVEL3_AVOIDMELEE - global flag needed for proper MBF support.
  • LEVEL3_NOJUMPDOWN - only for MBF21. Inverse of MBF's dog_jumping flag.
  • LEVEL3_LIGHTCREATED - a light had been created in the last frame
  • readonly String Music
  • readonly String LevelName
  • readonly String AuthorName
  • readonly int musicorder
  • readonly float skyspeed1
  • readonly float skyspeed2
  • readonly bool LightningSound
  • readonly int cdtrack
  • readonly double gravity
  • readonly double aircontrol
  • readonly int airsupply
  • readonly int compatflags
  • readonly int compatflags2
  • readonly name deathsequence
  • readonly int fogdensity
  • readonly int outsidefogdensity
  • readonly int skyfog
  • readonly float pixelstretch
  • readonly name RedirectType
  • readonly String RedirectMapName
  • readonly double teamdamage

Methods

Non-static

  • bool isValid() const
  • String LookupLevelName() const

Static

  • static int GetLevelInfoCount()
  • static LevelInfo GetLevelInfo(int index)
  • static LevelInfo FindLevelInfo(String mapname)
  • static LevelInfo FindLevelByNum(int num)
  • static bool MapExists(String mapname)
  • static String MapChecksum(String mapname)