EDF spritenames
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.
- Back to EDF
Syntax
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
- 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
# 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" }
There are two sprite-related variables which may be specified in user EDF files:
- 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; }