EDF spritenames: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
Sprite names are defined as a list of string values which must be exactly four characters long, and should contain only capital letters and numbers.  
Sprite names are defined as a list of string values which must be exactly four characters long, and should contain only capital letters and numbers.
 
'''NOTE''': You don't need to use '''spritenames''' for every [[thingtype]] or [[frame]] definition. It's useful for example for [[Dehacked]].
 
{{backto|EDF}}
{{backto|EDF}}


Line 27: Line 30:
  # add a few values in later (maybe near a thing or frames that use them)...
  # add a few values in later (maybe near a thing or frames that use them)...
  spritenames += { "BLAH", "WOOT" }
  spritenames += { "BLAH", "WOOT" }
=Sprite-related variables=
==See also==
There are two sprite-related variables which may be specified in user EDF files:
*[[EDF blanksprite]]
*playersprite
*blanksprite
playersprite sets the sprite to be used by the default "Marine" player skin. This must be one of the four-character sprite mnemonics defined in the spritenames array. If not provided in any EDF file, this variable defaults to the value "PLAY" (and if PLAY is not defined in that case, an error will occur).
 
blanksprite sets the sprite to be used when objects or guns attempt to use a sprite which has no graphics loaded. This must be one of the four-character sprite mnemonics defined in the spritenames array. If not provided in any EDF file, this variable defaults to the value "TNT1" (and if TNT1 is not defined in that case, an error will occur).
 
These values are parsed immediately after the sprite name list is loaded, and can be placed anywhere. If defined more than once, the last definition encountered takes precedence. These values must be defined at the topmost level of an EDF file.
 
==Syntax==
playersprite <sprite mnemonic>
 
blanksprite <sprite mnemonic>
==Full example==
# set the player skin sprite to BLAH
playersprite = BLAH
# set the blank sprite to FOO1
blanksprite = FOO1
=Sprite-Based Pickup Items=
Sprite-based pickup item definitions allow one of a set of predefined pickup effects to be associated with a sprite, so that collectable objects (with the SPECIAL flag set) using it will have that effect on the collecting player.
 
It is currently only possible to associate one effect with a given sprite, but effects can be assigned to as many sprites as is desired. If a sprite is assigned more than one pickup effect, the one occuring last takes precedence. There are plans to extend this feature in the future to include customizable pickup items, but for now only the predefined effects are available.
 
==Syntax==
pickupitem <sprite mnemonic> { effect = <effect name> }
sprite mnemonic must be a valid sprite mnemonic defined in the spritenames list.
 
effect name may be any one of the following:
  ** Note: all ammo amounts double in "I'm Too Young To Die" and "Nightmare!"
  ** Note: weapons give 5 clips of ammo when "Weapons Stay" DM flag is on
  ** Note: dropped weapons give half normal ammo
 
  Effect Name        Item is...              Special effects
  ----------------------------------------------------------------------------
  PFX_NONE            No-op collectable        None
  PFX_GREENARMOR      Green armor jacket      +100% armor
  PFX_BLUEARMOR      Blue armor jacket        +200% armor
  PFX_POTION          DOOM health potion      +1% health
  PFX_ARMORBONUS      Armor bonus              +1% armor
  PFX_SOULSPHERE      Soulsphere              +100% health
  PFX_MEGASPHERE      Megasphere              200% health/armor
  PFX_BLUEKEY        DOOM Blue key card
  PFX_YELLOWKEY      DOOM Yellow key card
  PFX_REDKEY          DOOM Red key card
  PFX_BLUESKULL      DOOM Blue skull key
  PFX_YELLOWSKULL    DOOM Yellow skull key
  PFX_REDSKULL        DOOM Red skull key
  PFX_STIMPACK        Stimpack                +10% health
  PFX_MEDIKIT        Medikit                  +25% health
  PFX_INVULNSPHERE    Invulnerability Sphere  Temporary god mode
  PFX_BERZERKBOX      Berzerk Box              Super strength
  PFX_INVISISPHERE    Invisibility Sphere      Temporary partial invis.
  PFX_RADSUIT        Radiation Suit          No nukage damage
  PFX_ALLMAP          Computer Map            All of automap revealed
  PFX_LIGHTAMP        Light Amp Visor          All lights at full level
  PFX_CLIP            Clip                    +10 Bullets
  PFX_CLIPBOX        Clip box                +50 Bullets
  PFX_ROCKET          Rocket                  +1 Rocket
  PFX_ROCKETBOX      Box of Rockets          +10 Rockets
  PFX_CELL            Cells                    +20 Cells
  PFX_CELLPACK        Cell pack                +100 Cells
  PFX_SHELL          Shells                  +4 Shells
  PFX_SHELLBOX        Box of Shells            +20 Shells
  PFX_BACKPACK        Backpack                Max ammo *= 2, +1 clip all ammo
  PFX_BFG            BFG                      BFG weapon, +2 clips cells
  PFX_CHAINGUN        Chaingun                Chaingun weapon, +2 clips bull.
  PFX_CHAINSAW        Chainsaw                Chainsaw weapon
  PFX_LAUNCHER        Rocket launcher          Rocket launcher weapon, +2 rock.
  PFX_PLASMA          Plasma Gun              Plasma gun weapon, +2 clips cells
  PFX_SHOTGUN        Shotgun                  Shotgun weapon, +2 clips shells
  PFX_SSG            Super Shotgun            SSG weapon, +2 clips shells
  PFX_HGREENKEY      Heretic Green key        ** Gives both DOOM red keys
  PFX_HBLUEKEY        Heretic Blue key        ** Gives both DOOM blue keys
  PFX_HYELLOWKEY      Heretic Yellow key      ** Gives both DOOM yellow keys
  PFX_HPOTION        Heretic Potion          +10% health
  PFX_SILVERSHIELD    Silver Shield            +100% Heretic armor (stronger)
  PFX_ENCHANTEDSHIELD Enchanted Shield        +200% Heretic armor (stronger)
  PFX_BAGOFHOLDING    Bag of Holding          No effect yet
  PFX_HMAP            Map Scroll              All of automap revealed
  PFX_TOTALINVIS      Total InvisiSphere      Temporary total invisibility
  -----------------------------------------------------------------------------
==Full example==
# define a couple of sprite-based pickups
pickupitem FOO2 { effect = PFX_TOTALINVIS }
pickupitem FOO3 { effect = PFX_LAUNCHER }
# redefine an existing pickup effect (don't forget free-form syntax...)
pickupitem FOO3
{
  effect = PFX_ENCHANTEDSHIELD;
}
[[category:EDF]]
[[category:EDF]]

Latest revision as of 14:32, 2 May 2018

Sprite names are defined as a list of string values which must be exactly four characters long, and should contain only capital letters and numbers.

NOTE: You don't need to use spritenames for every thingtype or frame definition. It's useful for example for Dehacked.

Back to EDF

Syntax[edit]

Any of the following is allowed:

spritenames = { <string>, ... }
spritenames += { <string>, ... }

This syntax allows the addition of new sprite names to the list without requiring the original list to be changed or copied.

The names defined in this list are the names by which a sprite must be referred to in all other EDF structures. Sprites are the first item to be parsed, regardless of their location, so like all EDF structures, the list and any additions to it can be placed anywhere.

Note: Sprite names may be duplicated in the list. When this occurs, objects will use the corresponding index of the last definition of that sprite name. Avoid this whenever possible, as it is wasteful and may lead to inconsistencies if DeHackEd patches are subsequently applied. Previous versions of the EDF documentation inappropriately stated that all sprite names must be unique. This has never been true, and cannot be made true for purposes of forward compatibility (otherwise addition of new sprites to the default sprites.edf could break older EDFs).

Restrictions and Caveats[edit]

  • There must be at least one sprite name defined.
  • Sprite names will be checked for length, but not for invalid characters.
  • If compatibility with DeHackEd patches is desired, new sprites should use addition lists.

Full example[edit]

# defining an original spritenames array (this would replace the default list)
# notice that sprite names never NEED to be quoted, but can be if so desired.
spritenames =
{
  FOO1, FOO2, FOO3, TNT1, PLAY
}

# add a few values in later (maybe near a thing or frames that use them)...
spritenames += { "BLAH", "WOOT" }

See also[edit]