edf : cstyle { name = "Eternity Definition File"; keyword_link = "http://eternity.youfailit.net/index.php?title=Special:Search&search=%s&fulltext=Search"; constant_link = "http://eternity.youfailit.net/index.php?title=Special:Search&search=%s&fulltext=Search"; function_link = "http://eternity.youfailit.net/index.php?title=Special:Search&search=%s&fulltext=Search"; case_sensitive = false; keywords = { $override, // General keywords font, fontdelta, damagetype, sound, sounddelta, soundsequence, enviromanager, ambience, frame, framedelta, string, splash, terrain, terraindelta, floor, menu, spritenames, boss_spawner_types, castinfo, // Animation keywords animation, flat, wall, lastpic, tics, flags, pic, name, tics, random, flags, min, max, // Compatibility Hack keywords compatibilityhacks, hashes, on, off, // Item Effect keywords healtheffect, armoreffect, ammoeffect, powereffect, weapongiver, artifact, healthdelta, armordelta, ammodelta, powerdelta, weapongiverdelta, artifactdelta, additive, additivetime, alwayspickup, ammo, ammogiven, amount, args, artifacttype, ammo.backpackamount, ammo.backpackmaxamount, ammo.coopstay, ammo.dmstay, ammo.dropped, ammo.give, class, classname, clearammogiven, dropamount, duration, fullamountonly, icon, icon.offset.x, icon.offset.y, ignoreskill, interhubamount, invbar, itemid, keepdepleted, lowmessage, maxamount, maxsaveamount, noshareware, overridesself, permanent, saveamount, savedivisor, savefactor, sethealth, setabsorption, sortorder, type, undroppable, useaction, useeffect, usesound, weapon, // Lockdef keywords lockdef, require, any, message, remotemessage, keys, lockedsound, mapcolor, // Pickup Effect keywords pickupeffect, pfxname, sprite, effect, effects, changeweapon, message, sound, flags, // Player keywords playerclass, playerdelta, default, defaultskin, thingtype, altattackstate, initialhealth, maxhealth, superhealth, viewheight, speedwalk, speedrun, speedstrafe, speedstraferun, speedturn, speedturnfast, speedturnslow, speedlookslow, speedlookfast, speedjump, clearrebornitems, rebornitem, weaponslot, alwaysjump, name, amount, weapons, clear, // Puff keywords pufftype, puffdelta, thingtype, sound, hitsound, hitpufftype, nobloodpufftype, upspeed, zspread, punchhack, particles, // Skin keywords skin, sprite, faces, sounds, pain, diehi, oof, gib, punch, radio, die, fall, feet, fallhit, plwdth, noway, jump, // Switch keywords switch, on, sound, offsound, gameindex, // Thing Group keywords thinggroup, flags, types, // Thing Type keywords thingtype, thingdelta, bloodtype.normal, bloodtype.impact, bloodtype.rip, bloodtype.crush, bloodbehavior, clearbloodbehaviors, action, behavior, pickupeffect, clearpickupeffect, effects, changeweapon, message, sound, flags, // Weapon keywords weaponinfo, weapondelta, dehackednum, ammotype, upstate, downstate, readystate, attackstate, flashstate, holdstate, ammouse, ammotype2, attackstate2, flashstate2, holdstate2, ammouse2, selectionorder, sisterweapon, slotnumber, slotselectionorder, flags, addflags, remflags, mod, recoil, hapticrecoil, haptictime, upsound, readysound, fullscreenoffset, firstdecoratestate, states, inherits, name, // Non-MAPINFO EDF keywords absolute.hop, absolute.push, acs_spawndata, action, activatesound, activesound, activestate, addflags, alias, alphavelocity, altattackstate, args, attacksound, attenuation, baseclass, basictype, bexdest, bexsource, blanksprite, blockcentered, bloodcolor, boss_spawner_probs, boss_spawner_types, c_font, castinfo, castorder, ceilingsequence, centerwidth, cflags, chars, chunkbasezvel, chunkclass, chunkxvelshift, chunkyvelshift, chunkzvelshift, clipping_dist, close_dist, cmd, cmds, cmp, colorable, commands, correct_height, crashstate, damage, damageamount, damagefactor, damagetimemask, damagetype, deactivatesound, deathsound, deathstate, default, defaultskin, defaultsprite, dehackednum, dmg_deathstates, dmg_deathstates.add, dmg_deathstates.remove, dmg_painstates, dmg_painstates.add, dmg_painstates.remove, dmgspecial, doom2_title_tics, doomednum, doorsequence, droptype, effect, end, f_font, factor, fastspeed, filter, first, flags, flags2, flags3, flags4, flat, floorsequence, footclip, frame, fullbright, height, hu_font, hu_fsmediumfont, hu_fsslargefont, hu_fssmallfont, hu_overlayfont, id, in_font, in_font_big, in_font_bignum, inactivestate, index, inherits, intermission_fade, intermission_pause, intermission_tl, item, linearformat, linearlump, linesize, link, linkpitch, linkvol, liquid, lump, mask, mass, maxperiod, maxstartwait, maxwait, meleestate, minperiod, minstartwait, minversion, minvolume, minwait, misc1, misc2, missilestate, mn_episode, mn_episode, mn_font, mn_font_big, mn_font_normal, mod, modes, name, nextframe, nextpage, nopcsound, nostopcutoff, nukespecial, num, obituary, obituary_melee, obituary_normal, obituaryself, painchance, painsound, painstate, particle_event, particlefx, patch, patchnumoffset, pcslump, period, pickupitem, pitchvariance, platsequence, playersprite, prefix, prevpage, priority, ptclcolor1, ptclcolor2, radius, raisestate, random, randomplayvol, reactiontime, remflags, respawnchance, respawntime, seesound, seestate, sfx, singularity, skinindex, skinsprite, smallclass, smallclip, smallsound, sound, sourceless, spacesize, spawnhealth, spawnstate, speed, speedlookfast, speedlookslow, speedrun, speedstrafe, speedstraferun, speedturn, speedturnfast, speedturnslow, speedwalk, splash, splashalert, sprite, spriteframe, start, states, stopattack, stopsound, subchannel, tallestchar, terrain, text, thingtype, tics, topdamage, topdamagemask, translation, translucency, type, uppercase, useptclcolors, val, volume, widthdelta, x, xdeathstate, xscale, y, yscale, // Mapinfo properties acsscript, altskyname, boss-specials, colormap, creator, doublesky, edf-intername, endofgame, extradata, finale-secret, finaletype, fullbright, gravity, inter-backdrop, intermusic, interpic, intertext, killfinale, killstats, levelname, levelpic, levelpicnext, levelpicsecret, levelscript, leveltype, lightning, music, nextlevel, nextsecret, noautosequences, outdoorfog, partime, skydelta, sky2delta, skyname, sky2name, sound-swtchn, sound-swtchx, sound-stnmov, sound-pstop, sound-bdcls, sound-bdopn, sound-dorcls, sound-doropn, sound-pstart, sound-fcmove, unevenlight, // Counter codepointer keywords less, lessorequal, greater, greaterorequal, equal, notequal, and, less_counter, lessorequal_counter, greater_counter, greaterorequal_counter, equal_counter, notequal_counter, and_counter, weapon, flash, assign, add, sub, mul, div, mod, andnot, or, xor, rand, randmod, rshift, lshift, hitdice, rshift, lshift, abs, negate, not, invert, multiplyone, rollmany, // HticExplode keywords default, dsparilbspark, floorfire, timebomb, // BeastPuff keywords momentum, nomomentum, // Scratch keywords usemisc1, usedamage, usecounter, useconstant, // StartScript keywords gamescript, levelscript, acs, // SetTics keywords constant, counter, // MissileAttack keywords normal, homing, // BulletAttack keywords ba_always, ba_never, ba_ssg, ba_monster, always, never, ssg, monster, // ThingSummon keywords kill, remove, normal, makechild, // ShowMessage keywords msg_console, msg_normal, msg_center, // PlaySoundEx keywords chan_auto, chan_weapon, chan_voice, chan_item, chan_body, attn_normal, attn_idle, attn_static, attn_none, auto, weapon, voice, item, body, normal, idle, static, none } constants = { // Animation flags SWIRL, // Flags SPECIAL, SOLID, SHOOTABLE, NOSECTOR, NOBLOCKMAP, AMBUSH, JUSTHIT, JUSTATTACKED, SPAWNCEILING, NOGRAVITY, DROPOFF, PICKUP, NOCLIP, SLIDE, FLOAT, TELEPORT, MISSILE, DROPPED, SHADOW, NOBLOOD, CORPSE, INFLOAT, COUNTKILL, COUNTITEM, SKULLFLY, NOTDMATCH, TRANSLATION1, TRANSLATION2, TOUCHY, BOUNCES, FRIEND, TRANSLUCENT, // Flags2 LOGRAV, NOSPLASH, NOSTRAFE, NORESPAWN, ALWAYSRESPAWN, REMOVEDEAD, NOTHRUST, NOCROSS, JUMPDOWN, PUSHABLE, MAP07BOSS1, MAP07BOSS2, E1M8BOSS, E2M8BOSS, E3M8BOSS, BOSS, E4M6BOSS, E4M8BOSS, FOOTCLIP, FLOATBOB, DONTDRAW, SHORTMRANGE, LONGMELEE, RANGEHALF, HIGHERMPROB, CANTLEAVEFLOORPIC, SPAWNFLOAT, INVULNERABLE, DORMANT, SEEKERMISSILE, DEFLECTIVE, REFLECTIVE, // Flags3 GHOST, THRUGHOST, NODMGTHRUST, ACTSEESOUND, LOUDACTIVE, E5M8BOSS, DMGIGNORED, BOSSIGNORE, SLIDE, TELESTOMP, WINDTHRUST, FIREDAMAGE, KILLABLE, DEADFLOAT, NOTHRESHOLD, FLOORMISSILE, SUPERITEM, NOITEMRESP, SUPERFRIEND, INVULNCHARGE, EXPLOCOUNT, CANNOTPUSH, TLSTYLEADD, SPACMONSTER, SPACMISSILE, NOFRIENDDMG, 3DDECORATION, ALWAYSFAST, PASSMOBJ, DONTOVERLAP, CYCLEALPHA, RIP, // Flags4 AUTOTRANSLATE, NORADIUSDMG, FORCERADIUSDMG, LOOKALLAROUND, NODAMAGE, SYNCHRONIZED, NORANDOMIZE, BRIGHT, FLY, NORADIUSHACK, NOSOUNDCUTOFF, RAVENRESPAWN, NOTSHAREWARE, NOTORQUE, ALWAYSTORQUE, NOZERODAMAGE, TLSTYLESUB, TOTALINVISIBLE, DRAWSBLOOD, SPACPUSHWALL, NOSPECIESINFIGHT, HARMSPECIESMISSILE, FRIENDFOEMISSILE, BLOODLESSIMPACT, HERETICBOUNCES, MONSTERPASS, LOWAIMPRIO, STICKYCARRY, SETTARGETONDEATH, SLIDEOVERTHINGS, UNSTEPPABLE, RANGEEIGHTH, // Flags5 NOTAUTOAIMED, // Puff Flags PUFFONACTORS, BLOODLESS, LOCALTHRUST, RANDOMTICS, TARGETSHOOTER, // Thing Group flags PROJECTILEALLIANCE, DAMAGEIGNORE, INHERITED, // ParticleFX flags ROCKET, GRENADE, FLIES, BFG, FLIESONDEATH, DRIP, REDFOUNTAIN, GREENFOUNTAIN, BLUEFOUNTAIN, YELLOWFOUNTAIN, PURPLEFOUNTAIN, BLACKFOUNTAIN, WHITEFOUNTAIN, // Weapon flags NOTHRUST, NOHITGHOSTS, NOTSHAREWARE, DISABLEAPS, SILENCEABLE, SILENT, NOAUTOFIRE, FLEEMELEE, ALWAYSRECOIL, HAPTICRECOIL, READYSNDHALF, AUTOSWITCHFROM, POWEREDUP, FORCETOREADY, PHOENIXRESET, DEPOWERSWITCH, // Game name constants DOOM, HERETIC, // A_SpawnEX flags NORMAL, ABSOLUTEANGLE, ABSOLUTEVELOCITY, ABSOLUTEPOSITION, CHECKPOSITION, // A_SeekerMissile flags NORMAL, LOOK, PRECISE, CURRSPEED } functions { // EDF "preprocessor" functions ifgametype = "game_name"; ifngametype = "game_name"; ifdisabled = "game_name"; ifenabled = "game_name"; ifenabledany = "game_name, [...]"; ifdisabledany = "game_name, [...]"; endif; enable = "game_name"; disable = "game_name"; lumpinclude = "lump_name"; stdinclude = "lump_name"; userinclude = "lump_name"; include = "lump_name"; include_prev = "lump_name"; bexinclude = "lump_name"; bexoverride; includeifenabled= "lump_name, game_name"; // Action functions // Those are the A_Foobar forms because the Foobar form are generally // used in "traditional" EDF declarations where the call is within a // string and the SLADE lexer therefore does not notice them. As a // result, they will only be highlighted when used in a DECORATE block. // Common action functions A_Chase; A_Die; A_Explode; A_FaceTarget; A_Fall; A_Look; A_Pain; A_KeepChasing; A_RandomWalk; A_Scream; A_XScream; A_PlayerScream; A_PlayerSkull; A_NailBomb; A_Detonate; // Counter action functions A_HealthJump = "state, comparison, value_or_counter"; A_CounterDiceRoll = "ctr, multiplier, dicesides, staticdmg, setoradd, randomtype"; A_CounterJump = "state, comparison, value_or_counter, counter"; A_CounterJumpEx = "state, comparison, valcounter, counter"; A_CounterSwitch = "counter, first_frame, number_of_frames"; A_CounterSwitchEx = "counternum, state, state, ..."; A_WeaponCtrJumpEx = "state, comparison, valcounter, counter, psprite"; A_SetCounter = "counter, value, operation"; A_CounterOp = "operand, operand, counter, operation"; A_CopyCounter = "source, destination"; A_WeaponCtrJump = "state, comparison, value_or_counter, counter, psprite"; A_WeaponCtrSwitch = "counter, first_frame, number_of_frames, psprite"; A_WeaponSetCtr = "counter, value, operation"; A_WeaponCtrOp = "operand, operand, counter, operation"; A_WeaponCopyCtr = "source, destination"; A_CheckReloadEx = "state, test, value_or_counter, psprite"; // Doom action functions A_PosAttack; A_SPosAttack; A_CPosAttack; A_CPosRefire; A_TroopAttack; A_SargAttack; A_HeadAttack; A_BruisAttack; A_SpidRefire; A_BspiAttack; A_BabyMetal; A_Hoof; A_Metal; A_CyberAttack; A_SkelMissile; A_Tracer; A_SkelWhoosh; A_SkelFist; A_VileChase; A_VileStart; A_Fire; A_StartFire; A_FireCrackle; A_VileTarget; A_VileAttack; A_FatRaise; A_FatAttack1; A_FatAttack2; A_FatAttack3; A_SkullAttack; A_BetaSkullAttack; A_Stop; A_PainShootSkull; A_PainAttack; A_PainDie; A_BossDeath; A_KeenDie; A_BrainAwake; A_BrainPain; A_BrainScream; A_BrainExplode; A_BrainDie; A_BrainSpit; A_SpawnFly; A_SpawnSound; // Heretic action functions A_SpawnGlitter = "dehacked_number, z_momentum"; A_AccelGlitter; A_SpawnAbove = "dehacked_number, state, z_offset"; A_MummyAttack; A_MummyAttack2; A_MummySoul; A_HticTracer = "threshold, maxturn"; A_ClinkAttack; A_WizardAtk1; A_WizardAtk2; A_WizardAtk3; A_Sor1Chase; A_Sor1Pain; A_Srcr1Attack; A_SorcererRise; A_Srcr2Decide; A_Srcr2Attack; A_BlueSpark; A_GenWizard; A_Sor2DthInit; A_Sor2DthLoop; A_HticExplode = "keyword"; A_HticBossDeath; A_PodPain; A_RemovePod; A_MakePod; A_VolcanoBlast; A_VolcBallImpact; A_KnightAttack; A_DripBlood; A_BeastAttack; A_BeastPuff = "keyword"; A_SnakeAttack; A_SnakeAttack2; A_MinotaurAtk1; A_MinotaurDecide; A_MinotaurCharge; A_MinotaurAtk2; A_MinotaurAtk3; A_MntrFloorFire; A_LichFire; A_LichWhirlwind; A_LichAttack; A_WhirlwindSeek; A_LichIceImpact; A_LichFireGrow; A_ImpChargeAtk; A_ImpMeleeAtk; A_ImpMissileAtk; A_ImpDeath; A_ImpXDeath1; A_ImpXDeath2; A_ImpExplode; A_PhoenixPuff; // General action functions A_Mushroom = "thing"; A_MushroomEx = "thing_type, thing_count, vertical_range, horizontal_range, splash_damage, splash_radius"; A_Spawn; A_SpawnEx = "thingtype, flags, forward, left, up, forward_velocity, left_velocity, up_velocity, angle, chance"; A_Turn = "mode, val"; A_TurnProjectile = "mode, val"; A_Face; A_Scratch = "keyword, value, sound, mod"; A_PlaySound; A_RandomJump; A_LineEffect; A_SetFlags = "field, OR_value"; A_UnSetFlags = "field, NOT_AND_value"; A_StartScript = "script_number, VM_keyword, param_1, param_2, param_3"; A_FaceMoveDir; A_GenRefire = "stop_state, chance"; A_GenTracer; A_SetTics = "amount, randomizer, toggle"; A_MissileAttack = "missile_type, keyword, z_offset, angle, [melee_state]"; A_MissileSpread = "missile_type, amount, z_offset, sweep, [melee_state]"; A_BulletAttack = "sound, keyword, amount, damage_factor, damage_modulus"; A_ThingSummon = "type, distance, z_offset, keyword, keyword"; A_KillChildren; A_AproxDistance = "dest"; A_ShowMessage = "message_number, keyword"; A_AmbientThinker; A_SteamSpawn = "type, range_horiz, angle_vert, range_vert, speed"; A_TargetJump = "state"; A_EjectCasing = "front_distance, center_dist, z_offset, casing_type"; A_CasingThrust = "horiz_force, vert_force"; A_SelfDestruct; // DECORATE-inspired action functions A_AlertMonsters; A_CheckPlayerDone = "state"; A_ClearSkin; A_DetonateEx = "damage, radius, hurt_self?, alert?, full_damage_radius"; A_FadeIn = "step"; A_FadeOut = "step"; A_Jump = "chance, state, [...]"; A_JumpIfNoAmmo = "state"; A_JumpIfTargetInLOS = "statenum, fov, proj_target"; A_SeekerMissile = "threshold, maxturnangle, flags, chance, distance"; A_SetTranslucent = "alpha, mode"; A_PlaySoundEx = "sound, channel, loop?, attenuation, volume"; } }