Thing type flags

From Eternity Wiki
Revision as of 00:12, 3 March 2010 by Quasar (talk | contribs) (→‎Flags3: BOSSIGNORE is deprecated.)
Jump to navigationJump to search

Thing type flags are properties that can be set on or off, to control special behavior. They belong to thing classes, such as Zombieman or BaronOfHell, and shouldn't be confused with the mapthing flags, which affect individual objects in a level, regardless of species (see ExtraData mapthing options for that type of flags).

Thingtype flags are used by the thingtype block in EDF, with the fields: flags, flags2, flags3, flags4, cflags, addflags and remflags. They're also used by the SetFlags and UnSetFlags codepointers.

The flags (or bits) are grouped (currently) into four categories, because only 32 bits can enter a long integer block. There are for now 101 defined thingtype bits in Eternity.

Flags up to flags4 can only use bits from their namespaces, while cflags, addflags and remflags cover any of them.

Flags

  • 1 SPECIAL

Collectable item (can be picked up).

  • 2 SOLID

Blocks other objects.

  • 4 SHOOTABLE

Can take damage and be targeted.

  • 8 NOSECTOR

Not linked within a sector. Invisible but can be hit. Never appears in the automap, even with the cheat.

  • 16 NOBLOCKMAP

Not linked within a blockmap. Cannot be hit but can hit.

  • 32 AMBUSH

Always with the "ambush" flag, regardless of map thing setting. Will only wake up when encountered.

  • 64 JUSTHIT

Attacks as soon as activated and seeing the target.

  • 128 JUSTATTACKED

Delays a bit before attacking.

  • 256 SPAWNCEILING

Spawns to ceiling instead of floor. Spawn height calculation is done from ceiling.

  • 512 NOGRAVITY

Doesn't fall.

  • 0x400 DROPOFF

Can pass ledges or gaps deeper than 24.

  • 0x800 PICKUP

Picks up items.

  • 0x1000 NOCLIP

Walks through all solids and can't activate walk line specials

  • 0x2000 SLIDE

No effect. Use the SLIDE flag from the third list.

  • 0x4000 FLOAT

Floating monster behavior.

  • 0x8000 TELEPORT

Can go past steps of any height. May need DROPOFF in order for monsters to actually do it.

  • 0x10000 MISSILE

Is a projectile and acts as such (not required for those with BOUNCES). If a shootable object placed on the map, it will be propelled by first shot without stopping, until it hits a wall and dies on contact.

  • 0x20000 DROPPED

Set internally for items dropped on death (such as trooper ammo clips).

  • 0x40000 SHADOW

Set for spectres and such. Fuzz effect and monster accuracy confusion.

  • 0x80000 NOBLOOD

Does not bleed when gun-shot. Spawns normal dust and puff.

  • 0x100000 CORPSE

Slides helplessly over ledges just like the Doom corpses (effect unnoticeable if the "torque" gameplay setting is enabled).

  • 0x200000 INFLOAT

Internal, used for floating monsters' maintenance.

  • 0x400000 COUNTKILL

Count towards kill score (if defeated). Warning: if COUNTKILL is to be disabled, use KILLABLE instead.

  • 0x800000 COUNTITEM

Count towards item score (if picked up).

  • 0x1000000 SKULLFLY

Internal, used for charging monsters' maintenance.

  • 0x2000000 NOTDMATCH

Never placed in deathmatch from a mapthing.

  • 0x4000000 TRANSLATION1

Turn green into grey.

  • 0x8000000 TRANSLATION2

Turn green into brown, or grey into red.

  • 0x10000000 TOUCHY

Dies on touch from different species, unless the participants are a pain elemental and a lost soul.

  • 0x20000000 BOUNCES

Bounces. Subtle different behaviors may be achieved

BOUNCES+MISSILE: as a missile, bounces off floors and ceilings but explodes everywhere else. Useful for not allowing the BFG to conveniently explode.
BOUNCES+NOGRAVITY: bounces off all surfaces. Can be used for projectiles despite lack of MISSILE flag.
BOUNCES+FLOAT: usable for monsters, letting them pogo-jump to most heights.
BOUNCES+FLOAT+DROPOFF: even higher jumping.
BOUNCES: can be used for projectiles, allowing grenades to be implemented.
  • 0x40000000 FRIEND

Friendly monster, of MBF-Eternity variety.

  • 0x80000000 TRANSLUCENT

Boom style translucency.

Flags2

  • 1 LOGRAV

1/3 gravity. Doesn't work if BOUNCES is also set.

  • 2 NOSPLASH

Doesn't produce terrain effects

  • 4 NOSTRAFE

Never uses advanced strafe logic

  • 8 NORESPAWN

Never respawns

  • 16 ALWAYSRESPAWN

Always respawns, regardless of difficulty level

  • 32 REMOVEDEAD

Forces disappearance after its death, and not to be used for player avatars.

  • 64 NOTHRUST

Unaffected by Boom environmental pushers (wind, force points, conveyors, water currents).

  • 128 NOCROSS

Cannot trigger walkover linedefs.

  • 256 JUMPDOWN

As a FRIEND, may jump down ledges to follow players

  • 512 PUSHABLE

Can be pushed, like the Heretic pods.

  • 0x400 MAP07BOSS1

Used for Mancubi, and checked by the BossDeath codepointer, active in MAP07 for tag 666.

  • 0x800 MAP07BOSS2

Used for Arachnotrons, active in MAP07 for tag 667

  • 0x1000 E1M8BOSS

Used for Barons of Hell and Iron Liches, active in E1M8 for tag 666

  • 0x2000 E2M8BOSS

Used for Cyberdemons and Maulotaurs, active in E2M8 for level exit or tag 666 depending on game

  • 0x4000 E3M8BOSS

Used for Spiderdemons and D'sparil, active in E3M8 for level exit or tag 666, depending on game

  • 0x8000 BOSS

Roars loudly and is immune to radius and certain other attacks.

  • 0x10000 E4M6BOSS

Used for Cyberdemons, active in E4M6 and tag 666

  • 0x20000 E4M8BOSS

Used for Spiderdemons and Iron Liches, active in E4M8 and tag 666

  • 0x40000 FOOTCLIP

Allows Heretic-style water feet sinking into water, and view going down if under camera.

  • 0x80000 FLOATBOB

Allows Heretic-style object bobbing.

  • 0x100000 DONTDRAW

Invisible, but unlike NOSECTOR, may appear on automap.

  • 0x200000 SHORTMRANGE

Has a limited missile range, like the Archvile.

  • 0x400000 LONGMELEE

Has a restricted non-missile proximity area, like the Revenant.

  • 0x800000 RANGEHALF

Treats itself as half as far from the target as it is, resulting in slightly higher attack chance.

  • 0x1000000 HIGHERMPROB

Higher attack chance.

  • 0x2000000 CANTLEAVEFLOORPIC

Cannot leave the floor texture from where it's placed. Useful for water monsters.

  • 0x4000000 SPAWNFLOAT

Spawns at random z coordinates within the sector.

  • 0x8000000 INVULNERABLE

Can't be damaged but can be targeted (unlike SHOOTABLE)

  • 0x10000000 DORMANT

Eligible for the mapthing Dormant flag, and script-wise awakening.

  • 0x20000000 SEEKERMISSILE

Eligible for the Tracer, GenTracer, HticTracer and WhirlwindSeek codepointers, and the homing setting for MissileAttack etc.

  • 0x40000000 DEFLECTIVE

Needs to be paired with REFLECTIVE, and sets the object invulnerable and deflecting the projectiles at a wide angle

  • 0x80000000 REFLECTIVE

Reflects projectiles back, but still takes damage

Flags3

  • 1 GHOST

Heretic-style ghost: stealth for the monsters, and passable by THRUGHOST objects

  • 2 THRUGHOST

Passes through GHOST objects ("man-made" projectile in Heretic)

  • 4 NODMGTHRUST

Cannot thrust objects against which this one causes damage.

  • 8 ACTSEESOUND

50% chance to use the sight sound instead of the active sound when mumbling around.

  • 16 LOUDACTIVE

Makes the active sound at full volume.

  • 32 E5M8BOSS

Used for Maulotaurs, active in E5M8 and tag 666.

  • 64 DMGIGNORED

"Feared" by other monsters: they won't fight this one if provoked.

  • 128 BOSSIGNORE

Won't attack other monsters with BOSSIGNORE. This flag is deprecated and should not be used by EDF modifications. It will be replaced with generalized control of infighting behavior.

  • 256 SLIDE

Can slide along walls, when pushing on them, like the player and Heretic pods

  • 512 TELESTOMP

Can telefrag.

  • 0x400 WINDTHRUST

Can be pushed by Heretic winds

  • 0x800 FIREDAMAGE

Does fire type damage

  • 0x1000 KILLABLE

Safety flag required to be used when COUNTKILL is not used. Allows the monster to behave normally without counting it towards the kill ratio.

  • 0x2000 DEADFLOAT

Doesn't lose gravity when killed.

  • 0x4000 NOTHRESHOLD

Thing always turns on the latest attacked, like in Quake.

  • 0x8000 FLOORMISSILE

The missile hugs the floor.

  • 0x10000 SUPERITEM

Super powerup: only respawns if a special dmflag is enabled.

  • 0x20000 NOITEMRESP

Never respawns, and unlike DROPPED, won't be crushed by sectors.

  • 0x40000 SUPERFRIEND

Loyal friend, never retaliates on being hit.

  • 0x80000 INVULNCHARGE

Invulnerable when SKULLFLY is set (when charging)

  • 0x100000 EXPLOCOUNT

Missile won't blow up if Counter 1 < Counter 2, instead it will increment Counter 1

  • 0x200000 CANNOTPUSH

Cannot push PUSHABLE objects

  • 0x400000 TLSTYLEADD

Uses additive translucency, can be combined with the alpha property

  • 0x800000 SPACMONSTER

Can activate parameterized line specials with the MONSTER flag

  • 0x1000000 SPACMISSILE

Can activate parameterized line specials with the MISSILE flag

  • 0x2000000 NOFRIENDDMG

Won't take damage from FRIEND objects

  • 0x4000000 3DDECORATION

Used for Doom decoration, which acts dually as a sentient actor blocker and free for projectiles

  • 0x8000000 ALWAYSFAST

Always accelerated in speed and reaction despite the skill level

  • 0x10000000 PASSMOBJ

Fully 3d, if z-clipping is enabled

  • 0x20000000 DONTOVERLAP

Tries to avoid overlapping even if z-clipping is enabled

  • 0x40000000 CYCLEALPHA

Cycles the alpha, depending on the alphavelocity property

  • 0x80000000 RIP

As a missile, goes through damageable objects, dealing them pain repeatably while in them

Flags4

  • 1 AUTOTRANSLATE

Automatically translates the colors of the sprite to current game's closest colors, if they belonged to Doom and are spawned in another game. Needed for a few objects, such as the MBFHelperDog, whose sprites are designed to use the Doom's palette, but are allowed to be spawned in Heretic.

  • 2 NORADIUSDMG

Doesn't take radius damage.

  • 4 FORCERADIUSDMG

Always takes radius damage.

  • 8 LOOKALLAROUND

Sees targets in any direction during Look frames, similar to how they behave when under AMBUSH setting after hearing a shot.

  • 16 NODAMAGE

Takes no damage but may still enter pain frames (unlike the invulnerability behavior).