Editing EDF game properties reference

From Eternity Wiki
Jump to navigationJump to search
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
This unique block changes global game properties from established hardcoded defaults.
==Usage==
Simply add a block named <code>gameproperties { }</code> in your EDF lump, and set the items you want to change from the base game. If you have multiple such blocks in your EDF code, the last one will be considered.
The descriptions of the available fields are below.
==Structure==
==Structure==
  gameproperties
  gameproperties
  {
  {
   flags.add               <string>
   flags.add
   flags.remove             <string>
   flags.remove
   missionflags.add         <string>
   missionflags.add
   missionflags.remove     <string>
   missionflags.remove
   demo.titletics           <integer>
   demo.titletics
   demo.advisortics         <integer>
   demo.advisortics
   demo.pagetics           <integer>
   demo.pagetics
   menu.background         <string>
   menu.background
   menu.transframe         <string>
   menu.transframe
   menu.skvattacksound     <string>
   menu.skvattacksound
   menu.offset             <integer>
   menu.offset
   menu.pointer1           <string>
   menu.pointer1
   menu.pointer2           <string>
   menu.pointer2
  menu.startmap            <string>
   border.flat
   border.flat             <string>
   border.topleft
   border.topleft           <string>
   border.top
   border.top               <string>
   border.topright
   border.topright         <string>
   border.left
   border.left             <string>
   border.right
   border.right             <string>
   border.bottomleft
   border.bottomleft       <string>
   border.bottom
   border.bottom           <string>
   border.bottomright
   border.bottomright       <string>
   console.charsperline
   console.charsperline     <integer>
   console.bellsound
   console.bellsound       <string>
   console.chatsound
   console.chatsound       <string>
   console.backdrop
   console.backdrop         <string>
   hud.pausepatch
   hud.pausepatch           <string>
   game.telefogtype
  game.autoflightartifact  <string>
   game.telefogheight
  game.pufftype            <string>
   game.telesound
   game.telefogtype         <string>
   game.thrustfactor
   game.telefogheight       <integer>
   game.defpclass
   game.telesound           <string>
   game.endgamefinaletype
   game.thrustfactor       <integer>
   finale.text.x
   game.defpclass           <string>
   finale.text.y
   game.endgamefinaletype   <string>
   intermission.pic
  game.skillammomultiplier <floating-point>
   sound.defaultmusname
  game.monstermeleerange  <value>
   sound.defaultsndname
  game.itemheight          <floating-point>
   credit.background
  game.skillammomultiplier <number>
   credit.y
  game.lookpitchup        <integer>
   credit.titlestep
  game.lookpitchdown      <integer>
   exit.endtextname
   finale.text.x           <integer>
   finale.text.y           <integer>
  castcall.title.y        <integer>
  castcall.name.y          <integer>
   intermission.pic         <string>
   sound.defaultmusname     <string>
   sound.defaultsndname     <string>
   credit.background       <string>
   credit.y                 <integer>
   credit.titlestep         <integer>
   exit.endtextname         <string>
  blood.defaultnormal      <string>
  blood.defaultrip        <string>
  blood.defaultcrush      <string>
  }
  }
==Description==
==Description==
===Flags===
All fields default to 0 or empty string.
'''flags.add''' and '''flags.remove'''
===Game flags===
 
These two flags control global game flags. Both fields below are of string type and use flag names separated by vertical bars (|), plus (+) or comma (,).
Adds or removes general gameplay flags from the default set. Group them using the usual syntax, separating them by | (vertical bar), + or "," (comma). For plus and comma, you need to surround all flags in quotes.
=====flags.add=====
====List of flags====
*Enables the specified flags, on top of the hardcoded defaults.
You can use the flags from the following categories:
=====flags.remove=====
=====Gameplay=====
*Disables the specified flags, from the hardcoded defaults.
These flags control gameplay physics:
====Flag list====
:*'''CHASEFAST''': accelerates all the [[Chase]] states of monsters on skill 5 and '''-fast''' like in Heretic.
*'''HASDISK''': draw flashing I/O disk
:*'''HASMADMELEE''': causes all monsters to fight each other when player dies in single player (like in Heretic).
*'''SHAREWARE''': emulate shareware game (no -file command-line parameter allowed)
:*'''LOSTSOULBOUNCE''': for demo compatibility, decide whether lost souls should bounce on floors (normally it's a user or [[OPTIONS]] gameplay setting).
*'''MNBIGFONT''': use big font for menu titles
:*'''SKILL5RESPAWN''': make monsters respawn on skill 5.
*'''MAPXY''': use MAPxy map names by default
=====Game flow control=====
*'''SAVESOUND''': make a sound in save and load menus
These flags don't control gameplay per se, but are important for player control and progression:
*'''HASADVISORY''': display the advisory popup on title screen
:*'''DOOMWEAPONOFFSET''': setup weapon frame '''offset()''' attributes to render like in Doom. Necessary for Dehacked compatibility.
*'''SHADOWTITLES''': shadows titles in menus
:*'''INVALWAYSOPEN''': Inventory is always open (like Strife, but not Heretic).
*'''HASMADMELEE''': has mad melee when player dies in SP
:*'''MAPXY''': use ''MAPxy'' map names by default. This implies that the '''-warp''' command-line parameter will expect one value, and any legacy features which depended on the ''ExMy'' vs. ''MAPxy'' arrangements will favour ''MAPxy''.
*'''HASEXITSOUNDS''': has sounds at exit
:*'''NODIEHI''': avoid playing the '''pdiehi''' (high) death sound.
*'''WOLFHACK''': is subject to German-edition restriction
:*'''SETENDOFGAME''': [[Teleport_EndGame]] enables the cast finale.
*'''SETENDOFGAME''': Teleport_EndGame sets LevelInfo.endOfGame
=====Cosmetic=====
*'''CLASSICMENUS''': supports classic/traditional menu emulation
These flags control minor display differences between the games. Usually they're of limited use for mod authors, only relevant for the base game differences. Check this list if you have particular issues to solve in your mod:
*'''SKILL5RESPAWN''': monsters respawn by default on skill 5
:*'''CENTERHUDMSG''': make messages always show in center. Typical with Heretic.
*'''SKILL5WARNING''': display menu warning for skill 5
:*'''CHEATSOUND''': make the menu sound when cheating.
*'''HUDSTATBARNAME''': HUD positions level name above status bar
:*'''HASADVISORY''': display the advisory popup in the title screen. This means drawing an "ADVISOR" lump image at coordinates (4, 160) of a virtual 320x200 screen space, soon as the title screen appears.
====Default flags====
:*'''HUDSTARTBARNAME''': displays the automap level name and time relative to the status bar instead of at a hardcoded position.
*Doom: "'''HASDISK''', '''HASEXITSOUNDS''', '''CLASSICMENUS''', '''SKILL5RESPAWN''', '''SKILL5WARNING''', '''HUDSTATBARNAME'''"
:*'''IMPACTBLOOD''': '''(unused)'''. Projectiles causing blood on impact is a [[thingtype]] flag now.
*Heretic: "'''MNBIGFONT''', '''GIF_SAVESOUND''', '''GIF_HASADVISORY''', '''GIF_SHADOWTITLES''', '''GIF_HASMADMELEE'''"
:*'''MNBIGFONT''': use big font for menu titles.
:*'''SAVESOUND''': make a sound in save and load menus. This is a small interface detail.
:*'''SHADOWTITLES''': adds shadows font effects to the titles in menus.
:*'''SKILL5WARNING''': warn player if they want to start a new game on skill 5.
:*'''WOLFHACK''': is subject to German-edition restriction on secret levels. Typical for Doom 2.
 
====Internally preset flags====
The games supported by Eternity start with the following flags preset:
=====Doom=====
Common to all variants: '''DOOMWEAPONOFFSET''', '''HUDSTATBARNAME''', '''SKILL5RESPAWN''', '''SKILL5WARNING'''.
 
In addition, the following variants of Doom have extra flags:
*shareware: '''NODIEHI'''
*retail (Ultimate Doom): '''LOSTSOULBOUNCE'''
*commercial (Doom II): '''MAPXY''', '''SETENDOFGAME''', '''WOLFHACK'''
:Final Doom, the Xbox and the BFG edition versions also have '''LOSTSOULBOUNCE'''.
=====Heretic=====
For Heretic, the preset flags are: '''CENTERHUDMSG''', '''CHASEFAST''', '''CHEATSOUND''', '''HASADVISORY''', '''HASMADMELEE''', '''MNBIGFONT''', '''SAVESOUND''', '''SHADOWTITLES'''.
 
===Mission flags===
'''missionflags.add''' and '''missionflags.remove'''
 
Adds or removes mission-specific flags. A mission is a variant of a game, such as how we have Ultimate Doom, Doom II, Final Doom etc. The available mission flags are:
====List of flags====
*'''ALLOWEXITTAG''': mission allows tagged normal exit lines.
*'''ALLOWSECRETTAG''': mission allows tagged secret exit lines.
*'''CONBACKTITLE''': use '''console.backdrop''' (settable here) instead of TITLEPIC for the console background.
*'''DEMOIFDEMO4''': fine control for DEMO4 lump's existence.
*'''DOOM2MISSIONS''': supports the Doom II mission packs.
*'''HASBETRAY''': has the "Betray" secret MAP33 level.
*'''NOGDHIGH''': BFG edition setup flag.
*'''NOTELEPORTZ''': preserves Z coordinate when teleporting, like in Final Doom. Only acts like this in vanilla/demo compatibility.
*'''WOLFNAMEHACKS''': override Wolfenstein secret level names.
====Mission-preset flags====
Those missions have the following flags set:
*Doom II: '''DOOM2MISSIONS'''
*Final Doom: '''DEMOIFDEMO4''', '''NOTELEPORTZ'''
*Xbox and BFG edition: '''DOOM2MISSIONS''', '''HASBETRAY''', '''NOGDHIGH''', '''WOLFNAMEHACKS'''
All other missions have 0 flags.
===Demo control===
*'''demo.titletics'''
:Time to show the title screen. Defaults: 170 (Doom I), 385 (Doom II), 210 (Heretic).
*'''demo.advisortics'''
:Time to show the advisory banner over the title screen. This adds up to the whole time the title pic is shown. Only nonzero default is 140 in Heretic.
*'''demo.pagetics'''
:Time to show the page between demos. Defaults: 385 (Doom), 200 (Heretic).
===Menu customization===
*'''menu.background'''
:The default menu background flat. Defaults: FLOOR4_6 (Doom), FLOOR16 (Heretic), CONS1_5 (HacX mission).
*'''menu.transframe'''
:Name of [[frame]] to use in the video menu translucency preview. Defaults: S_TBALL1 (Doom), S_MUMMYFX1_1 (Heretic).
*'''menu.skvattacksound'''
:Name of [[sound]] to play when simulating attacking in the skin viewer. Defaults: shotgn (Doom), gldhit (Heretic).
*'''menu.offset'''
:Vertical offset upwards to draw the menu. Defaults: 0 (Doom), 4 (Heretic).
*'''menu.pointer1''' and '''menu.pointer2'''
:Graphic patches to use for the menu selector. Defaults: M_SKULL1 and M_SKULL2 (Doom), M_SLCTR1 and M_SLCTR2 (Heretic).
*'''menu.startmap'''
:Map lump name to load when the new game menu item is selected. This will skip the menus for episode and skill level selection. Default: No default
 
===Border customization===
*'''border.flat'''
:The flat to use for the background around the status bar and when the view window is reduced. Defaults: FLOOR7_2 (Doom I), GRNROCK (Doom II), FLOOR04 (Heretic shareware), FLAT513 (Heretic full).
*'''border.topleft''', '''.top''', '''.topright''', '''.left''', '''.right''', '''.bottomleft''', '''.bottom''' and '''.bottomright'''
:Pictures to use for the border. Defaults: BRDR_TL, BRDR_T, BRDR_TR, BRDR_L, BRDR_R, BRDR_BL, BRDR_B and BRDR_BR (Doom); BORD** (Heretic), same suffixes.
===Console customization===
*'''console.charsperline'''
:Number of characters per line to display in console. Default: 40.
*'''console.bellsound'''
:The beep error sound to use from the console, such as when errors occur. Defaults: tink (Doom), ht_chat (Heretic).
*'''console.chatsound'''
:The sound to play when receiving messages from other players. Defaults: tink (Doom I), radio (Doom II), ht_chat (Heretic).
*'''console.backdrop'''
:The name of the graphics lump to display for the console. Defaults: TITLEPIC (Doom), TITLE (Heretic).
===Heads-up display===
*'''hud.pausepatch'''
:The name of the graphics lump to display for the pause banner. Defaults: M_PAUSE (Doom), PAUSED (Heretic).
===Gameplay===
These options are relevant for gameplay physics. See also the similar gameplay flags.
{|class="wikitable sortable"
! Name
! Description
! Doom default
! Heretic default
|-
||'''game.autoflightartifact'''||The artifact to use when commanding the player to fly up.||(none)||ArtiFly
|-
||'''game.lookpitchup'''<br>
'''game.lookpitchdown'''
||Set the player view pitch limits up and down respectively, in degrees. Valid values are between 0 and 45 inclusive, integer only.||45||32
|-
||'''game.pufftype'''||The default hitscan puff when no EDF [[pufftype]] is specified.||BulletPuff||HereticStaffPuff
|-
||'''game.telefogtype'''||The teleportation fog thing type.||DoomTeleFog||HereticTeleFog
|-
||'''game.telefogheight'''||The distance of the telefog from the ground.||0||32
|-
||'''game.telesound'''||The teleportation sound.||telept||htelept
|-
||'''game.thrustfactor'''||The percentage of how much to thrust things based on damage.||100||150
|-
||'''game.defpclass'''||The default player class when starting a new game.||DoomMarine||Corvus
|-
||'''game.endgamefinaletype'''||Default behavior for [[Teleport_EndGame]]. Supported options are:
:*text
:*doom_credits
:*doom_deimos
:*doom_bunny
:*doom_marine
:*htic_credits
:*htic_water
:*htic_demon
:*psx_udoom
:*psx_doom2
||doom_credits (Doom I), text (Doom II)||htic_credits
|-
||'''game.skillammomultiplier'''||Floating-point value for skill 1 and 5 ammo multiplier.||2||1.5
|-
||'''game.monstermeleerange'''||Mode to calculate melee range. Supported options are:
:*doom: range is 44 + radius(enemy)
:*raven: range is 64
||doom||raven
|-
||'''game.itemheight'''||Item pick-up height. Unlike expectations, the height is not thingtype's height, but this value.||8.0||32.0
|}
 
===Finale and intermission===
*'''finale.text.x''' and '''finale.text.y'''
:Finale text coordinates. Defaults: 10, 10 (Doom); 20, 5 (Heretic)
*'''castcall.title.y'''
:Cast call title Y. Default: 20
*'''castcall.name.y'''
:Cast call name Y. Default: 180
*'''intermission.pic'''
:Intermission backdrop. Default: INTERPIC
===Sound===
*'''sound.defaultmusname'''
:Default music to play if none specified. Defaults: e1m1 (Doom I and Heretic), runnin (Doom II)
*'''sound.defaultsndname'''
:Sound to play when the one specified in EDF is unavailable. Defaults: pistol (Doom), gldhit (Heretic)
*'''sound.titlemusic'''
:Title screen music. No default.
===Credits===
*'''credit.background'''
:Swirling flat to use in the Eternity credits background. Defaults: NUKAGE1 (Doom I), SLIME05 (Doom II), SLIME01 (Hacx mission), FLTWAWA1 (Heretic)
*'''credit.y'''
:Credits Y coordinate. Defaults: 20 (Doom), 8 (Heretic)
*'''credit.titlestep'''
:Y step for each line. Defaults: 12 (Doom), 8 (Heretic)
===ENDOOM===
*'''exit.endtextname'''
:Exit text lump. Defaults: ENDOOM (Doom), ENDTEXT (Heretic)
===Blood===
*'''blood.defaultnormal'''
:Thing type for the default blood splat. Defaults: DoomBlood (Doom), HereticBloodSplatter (Heretic)
*'''blood.defaultrip'''
:Thing type for the piercing RIP projectiles. Defaults: DoomBlood (Doom), HereticBlood (Heretic)
*'''blood.defaultcrush'''
:Thing type for the crushing ceiling blood. Defaults: DoomBlood (Doom), HereticBlood (Heretic)
Please note that all contributions to Eternity Wiki are considered to be released under the GNU Free Documentation License 1.2 (see Eternity Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)