Editing
EDF miscellaneous reference
(section)
From Eternity Wiki
Jump to navigation
Jump 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.
Anti-spam check. Do
not
fill this in!
==DOOM II Cast Call== The cast call structure allows you to edit and extend the DOOM II cast call used after beating the game in DOOM II. Editing existing thing types via EDF or DeHackEd can otherwise cause this part of the game to malfunction, and it has never before been possible to add your own monsters into the fray. Now this can be done. Unlike most other EDF sections, castinfo sections will be kept in the order they are specified, unless the castorder array is defined. The castorder array feature allows you to explicitly specify a complete ordering for the castinfo sections which overrides the order of their definitions. See below for more information on castorder. Beginning with EDF 1.1, all castinfo sections are required to have a unique mnemonic. Sections with duplicate mnemonics will overwrite, with the last one occuring during parsing taking precedence as the definition. ===Syntax=== castinfo <mnemonic> { type <thing type mnemonic> name <string> stopattack <boolean> # see notes about this; there can be from zero to four sound blocks sound { frame <frame mnemonic> sfx <sound mnemonic> } } ===Explanation of Fields=== *type :Default = No default; this field is required. :This field must be set to a valid thing type mnemonic. This denotes which thing type is displayed at this entry's position in the cast call. As of EDF 1.2, if this type is not valid, the thing type "Unknown" will be substituted. This may cause the cast call to malfunction, however. The previous behavior was to cause an error. *name :Default = See below. :This is an optional field that allows providing a name to display on the screen for the thing type. Note that if this field is not present in any of the first 17 definitions, those cast members will use the normal default names from the executable, which are editable via BEX string replacement. If cast members beyond the first 17 have no name provided, they will say "unknown" (so you should always provide it in those cases). stopattack *Default = false :This is a special boolean value (can be any of yes/no, on/off, or true/false) which makes the thing break out of its attack frame cycle after its initial frame. This is only used by the player type by default, but could be used by any other type as well. sound :There can be up to four of these special blocks defined within each cast member. They define a sound event, so that whenever the thing type enters the designated frame, it will play the designated sound. If there are less than four definitions, the unused ones will be zeroed out. If there are more than four, any beyond four are simply ignored. Also, if the values provided to the fields in this block are invalid, they are simply ignored. ====Explanation of Inner Fields ==== *frame :Default = S_NULL :Name of the frame this event should occur on *sfx :Default = none :Name of the sound to play when this event occurs. ===Restrictions and Caveats=== *The castorder list is NOT required. *At least one cast member must be defined. *All cast members must have a unique mnemonic. Mnemonics should only contain alphanumeric characters and underscores. All other punctuation marks are explicity reserved for extended syntactical use. Format will not be verified. Non-unique mnemonics will overwrite previous definitions, see below. ===Full Example=== # My New Cast Call -- Only The Ultimate FooBar and the Player are worthy! castinfo foobar { type = FooBar name = "The Ultimate FooBar" sound { frame = S_FOOBAR_ATK1; sfx = firsht } sound { frame = S_FOOBAR_ATK3; sfx = firsht } sound { frame = S_FOOBAR_ATK5; sfx = firsht } } # Notice since DoomPlayer is now #2 and not #17, I still need to set his # name, otherwise it would call him a former sergeant o_O castinfo player { type = DoomPlayer name = "Our Hero" stopattack = true } ===Using the castorder Array=== When editing the cast call, it will probably be advantageous to specify the castorder array. Doing so will allow you to avoid the EDF 1.0 problem of being forced to redefine the entire cast call simply to add a new cast member in the middle. It also allows you to move around existing castinfo definitions without editing them, and to omit or repeat definitions. ====Syntax==== castorder = { <mnemonic>, ... } All mnemonics specified in the castorder list must be valid. If any do not exist, an error will occur. As with other EDF lists, if the list is defined more than once, the latest definition encountered is the one used. Also, you may use addition lists to add entries to the end of the castorder list. ====Full Example==== # I decided to switch the cast call order around castorder = { player, foobar } ... # Later on, perhaps in another file, I add a new castinfo. I can do this: castinfo weirdo { type = WeirdoGuy name = "The Weirdo Guy" } # This will add weirdo to the end of the existing castorder list. # I could also just redefine the entire list, but there's no point in this case. castorder += { weirdo }
Summary:
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)
Navigation menu
Page actions
Page
Discussion
Read
Edit
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Log in
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Search
Tools
What links here
Related changes
Special pages
Page information