Thing type flags: Difference between revisions

From Eternity Wiki
Jump to navigationJump to search
(Table test for flags.)
(Tablified flags2.)
Line 223: Line 223:


=flags2=
=flags2=
*1''' LOGRAV'''
{| class="wikitable" style="font-size: 85%"; text-align: center; width: auto
1/3 gravity. Doesn't work if BOUNCES is also set.
!style="background-color: #C5D0E1"| Flag name
*2 '''NOSPLASH'''
!style="background-color: #E3EEFF"| Bit number
Doesn't produce terrain effects
!style="background-color: #C5D0E1"| Decimal
*4 '''NOSTRAFE'''
!style="background-color: #E3EEFF"| Hexadecimal
Never uses advanced strafe logic
!style="background-color: #C5D0E1"| Description
*8 '''NORESPAWN'''
|-style="background-color: #F5F5F5"
Never respawns
| '''LOGRAV'''
*16''' ALWAYSRESPAWN'''
| 0
Always respawns, regardless of difficulty level
| 1
*32 '''REMOVEDEAD'''
| 0x01
Forces disappearance after its death, and not to be used for player avatars.
| Is subject to 1/3rd normal gravity. Does not combine with '''BOUNCES'''.
*64 '''NOTHRUST'''
|-style="background-color: #D9D9D9"
Unaffected by Boom environmental pushers (wind, force points, conveyors, water currents).
| '''NOSPLASH'''
*128 '''NOCROSS'''
| 1
Cannot trigger walkover linedefs.
| 2
*256 '''JUMPDOWN'''
| 0x02
As a FRIEND, may jump down ledges to follow players
| Cannot trigger [[terrain]] effects.
*512 '''PUSHABLE'''
|-style="background-color: #F5F5F5"
Can be pushed, like the Heretic pods.
| '''NOSTRAFE'''
*0x400 '''MAP07BOSS1'''
| 2
Used for Mancubi, and checked by the [[BossDeath]] codepointer, active in MAP07 for tag 666.
| 4
*0x800''' MAP07BOSS2'''
| 0x04
Used for Arachnotrons, active in MAP07 for tag 667
| Never uses MBF strafing logic even if enabled.
*0x1000 '''E1M8BOSS'''
|-style="background-color: #D9D9D9"
Used for Barons of Hell and Iron Liches, active in E1M8 for tag 666
| '''NORESPAWN'''
*0x2000 '''E2M8BOSS'''
| 3
Used for Cyberdemons and Maulotaurs, active in E2M8 for level exit or tag 666 depending on game
| 8
*0x4000 '''E3M8BOSS'''
| 0x08
Used for Spiderdemons and D'sparil, active in E3M8 for level exit or tag 666, depending on game
| Never respawns, even in Nightmare skill or with -respawn active.
*0x8000 '''BOSS'''
|-style="background-color: #F5F5F5"
Roars loudly and is immune to radius and certain other attacks.
| '''ALWAYSRESPAWN'''
*0x10000 '''E4M6BOSS'''
| 4
Used for Cyberdemons, active in E4M6 and tag 666
| 16
*0x20000 '''E4M8BOSS'''
| 0x10
Used for Spiderdemons and Iron Liches, active in E4M8 and tag 666
| Always respawns regardless of skill or settings.
*0x40000 '''FOOTCLIP'''
|-style="background-color: #D9D9D9"
Allows Heretic-style water feet sinking into water, and view going down if under camera.
| '''REMOVEDEAD'''
*0x80000 '''FLOATBOB'''
| 5
Allows Heretic-style object bobbing.
| 32
*0x100000 '''DONTDRAW'''
| 0x20
Invisible, but unlike NOSECTOR, may appear on automap.
| Is randomly removed from the level after death, instead of respawning. Not for player class objects.
*0x200000 '''SHORTMRANGE'''
|-style="background-color: #F5F5F5"
Has a limited missile range, like the Archvile.
| '''NOTHRUST'''
*0x400000 '''LONGMELEE'''
| 6
Has a restricted non-missile proximity area, like the Revenant.
| 64
*0x800000 '''RANGEHALF'''
| 0x40
Treats itself as half as far from the target as it is, resulting in slightly higher attack chance.
| Is not affected by BOOM environmental pushers (wind, force points, conveyors, water currents).
*0x1000000 '''HIGHERMPROB'''
|-style="background-color: #D9D9D9"
Higher attack chance.
| '''NOCROSS'''
*0x2000000 '''CANTLEAVEFLOORPIC'''
| 7
Cannot leave the floor texture from where it's placed. Useful for water monsters.
| 128
*0x4000000 '''SPAWNFLOAT'''
| 0x80
Spawns at random z coordinates within the sector.
| Cannot trigger DOOM-style walk-over linedef specials.
*0x8000000 '''INVULNERABLE'''
|-style="background-color: #F5F5F5"
Can't be damaged but can be targeted (unlike SHOOTABLE)
| '''JUMPDOWN'''
*0x10000000 '''DORMANT'''
| 8
Eligible for the mapthing Dormant flag, and script-wise awakening.
| 256
*0x20000000 '''SEEKERMISSILE'''
| 0x100
Eligible for the [[Tracer]], [[GenTracer]], [[HticTracer]] and [[WhirlwindSeek]] codepointers, and the '''homing''' setting for [[MissileAttack]] etc.
| When friendly, may jump down off ledges to follow player, subject to dog jumping setting.
*0x40000000 '''DEFLECTIVE'''
|-style="background-color: #D9D9D9"
Needs to be paired with REFLECTIVE, and sets the object invulnerable and deflecting the projectiles at a wide angle
| '''PUSHABLE'''
*0x80000000 '''REFLECTIVE'''
| 9
Reflects projectiles back, but still takes damage
| 512
| 0x200
| Can be pushed, like Heretic pods.
|-style="background-color: #F5F5F5"
| '''MAP07BOSS1'''
| 10
| 1024
| 0x400
| Is a boss for the MAP07_1 boss special (tag 666).
|-style="background-color: #D9D9D9"
| '''MAP07BOSS2'''
| 11
| 2048
| 0x800
| Is a boss for the MAP07_2 boss special (tag 667).
|-style="background-color: #F5F5F5"
| '''E1M8BOSS'''
| 12
| 4096
| 0x1000
| Is a boss for the E1M8 boss special (tag 666).
|-style="background-color: #D9D9D9"
| '''E2M8BOSS'''
| 13
| 8192
| 0x2000
| Is a boss for the E2M8 boss special (exits level, or tag 666 in Heretic).
|-style="background-color: #F5F5F5"
| '''E3M8BOSS'''
| 14
| 16384
| 0x4000
| Is a boss for the E3M8 boss special (exits level, or tag 666 in Heretic).
|-style="background-color: #D9D9D9"
| '''BOSS'''
| 15
| 32768
| 0x8000
| Roars loudly, and is immune to blast radii and certain other attacks.
|-style="background-color: #F5F5F5"
| '''E4M6BOSS'''
| 16
| 65536
| 0x10000
| Is a boss for the E4M6 boss special (tag 666).
|-style="background-color: #D9D9D9"
| '''E4M8BOSS'''
| 17
| 131072
| 0x20000
| Is a boss for the E4M8 boss special (tag 666).
|-style="background-color: #F5F5F5"
| '''FOOTCLIP'''
| 18
| 262144
| 0x40000
| Is subject to liquid terrain effects (lowered view point, missiles, feet are clipped).
|-style="background-color: #D9D9D9"
| '''FLOATBOB'''
| 19
| 524288
| 0x80000
| Bobs perpetually on the z axis, like Heretic and Hexen powerups.
|-style="background-color: #F5F5F5"
| '''DONTDRAW'''
| 20
| 1048576
| 0x100000
| Doesn't generate a sprite (invisible, but appears on automap).
|-style="background-color: #D9D9D9"
| '''SHORTMRANGE'''
| 21
| 2097152
| 0x200000
| Has a limited missile range, like the Arch-vile.
|-style="background-color: #F5F5F5"
| '''LONGMELEE'''
| 22
| 4194304
| 0x400000
| Has a restricted non-missile proximity area, like the Revenant.
|-style="background-color: #D9D9D9"
| '''RANGEHALF'''
| 23
| 8388608
| 0x800000
| Considers only half the distance to its target, giving a higher missile attack probability.
|-style="background-color: #F5F5F5"
| '''HIGHERMPROB'''
| 24
| 16777216
| 0x1000000
| Additional boost to missile attack probability at a distance, as with the Cyberdemon.
|-style="background-color: #D9D9D9"
| '''CANTLEAVEFLOORPIC'''
| 25
| 33554432
| 0x2000000
| Cannot cross into sectors with a different floor flat. Useful for water monsters.
|-style="background-color: #F5F5F5"
| '''SPAWNFLOAT'''
| 26
| 67108864
| 0x4000000
| Spawns at a randomized height within the range of its sector, like Heretic Gargoyle.
|-style="background-color: #D9D9D9"
| '''INVULNERABLE'''
| 27
| 134217728
| 0x8000000
| Takes no damage if damage is less than 10000. Does not react to damage.
|-style="background-color: #F5F5F5"
| '''DORMANT'''
| 28
| 268435456
| 0x10000000
| Spawns as dormant and invulnerable regardless of mapthing flags. Must be awakened by script or line special.
|-style="background-color: #D9D9D9"
| '''SEEKERMISSILE'''
| 29
| 536870912
| 0x20000000
| Is considered a homing projectile, for reflection purposes.
|-style="background-color: #F5F5F5"
| '''DEFLECTIVE'''
| 30
| 1073741824
| 0x40000000
| If paired with REFLECTIVE, causes reflection at a wide angle.
|-style="background-color: #D9D9D9"
| '''REFLECTIVE'''
| 31
| 2147483648
| 0x80000000
| Reflects projectiles. Still takes damage unless also '''INVULNERABLE'''.
|-
!style="background-color: #C5D0E1"| Flag name
!style="background-color: #E3EEFF"| Bit number
!style="background-color: #C5D0E1"| Decimal
!style="background-color: #E3EEFF"| Hexadecimal
!style="background-color: #C5D0E1"| Description
|}


=Flags3=
=Flags3=

Revision as of 12:54, 3 March 2010

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 own namespaces, while cflags, addflags and remflags combine all flags into a single namespace, excepting the flags bit SLIDE.

flags

Flag name Bit number Decimal Hexadecimal Description
SPECIAL 0 1 0x01 Collectable item (can be picked up).
SOLID 1 2 0x02 Blocks other objects.
SHOOTABLE 2 4 0x04 Can take damage and be targeted.
NOSECTOR 3 8 0x08 Not linked into sectors. Invisible, but can be hit. Never appears in automap, even with cheats.
NOBLOCKMAP 4 16 0x10 Not linked into the blockmap. Cannot be hit, but can hit other objects.
AMBUSH 5 32 0x20 Always has "AMBUSH" mapthing flag behavior. Will only wake up when an enemy is seen.
JUSTHIT 6 64 0x40 Internal flag, monster will attack as soon as it is activated.
JUSTATTACKED 7 128 0x80 Internal flag, delays a bit before attacking.
SPAWNCEILING 8 256 0x100 Spawns on the ceiling instead of the floor.
NOGRAVITY 9 512 0x200 Is not subject to gravity.
DROPOFF 10 1024 0x400 Can pass over ledges higher than 24 units.
PICKUP 11 2048 0x800 Can pick up items. Currently only works on player class objects.
NOCLIP 12 4096 0x1000 Is not clipped against other objects or lines.
SLIDE 13 8192 0x2000 For compatibility only, has no effect. Use flags3 bit SLIDE instead.
FLOAT 14 16384 0x4000 Has floating monster behavior.
TELEPORT 15 32768 0x8000 Unused vanilla flag. Can go over steps of any height, has other odd behaviors. Use not recommended.
MISSILE 16 65536 0x10000 Is a projectile.
DROPPED 17 131072 0x20000 Internal flag for dropped items (trooper clips, etc). Can be crushed, never respawns.
SHADOW 18 262144 0x40000 Renders as spectre fuzz. Monsters aiming at this thing will suffer inaccuracy.
NOBLOOD 19 524288 0x80000 Doesn't bleed when hit by tracer attacks; spawns bullet puffs instead.
CORPSE 20 1048576 0x100000 Is a corpse and may slide over ledges. Also checked by Arch-viles.
INFLOAT 21 2097152 0x200000 Internal flag, used for floating monster AI.
COUNTKILL 22 4194304 0x400000 Counts toward kill score when defeated, and is considered a valid target. See also KILLABLE.
COUNTITEM 23 8388608 0x800000 Counts toward item score when collected. May respawn if item respawning is enabled.
SKULLFLY 24 16777216 0x1000000 Internal flag, used for charging monster maintenance.
NOTDMATCH 25 33554432 0x2000000 Is not spawned at level start in Deathmatch game modes.
TRANSLATION1 26 67108864 0x4000000 Remaps green to gray in sprites.
TRANSLATION2 27 134217728 0x8000000 Remaps green to brown, or gray to red if combined with TRANSLATION1.
TOUCHY 28 268435456 0x10000000 Dies on contact with solid things of other species, excepting Lost Souls and Pain Elementals.
BOUNCES 29 536870912 0x20000000 Bounces. Can be combined with other flags for various effects. See below.
FRIEND 30 1073741824 0x40000000 Friendly monster, MBF/Eternity variety.
TRANSLUCENT 31 2147483648 0x80000000 Renders with BOOM-style translucency, controlled by user translucency level setting.
Flag name Bit number Decimal Hexadecimal Description
  • BOUNCES

Bounces. Different behaviors may be achieved by combining with other flags:

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.

flags2

Flag name Bit number Decimal Hexadecimal Description
LOGRAV 0 1 0x01 Is subject to 1/3rd normal gravity. Does not combine with BOUNCES.
NOSPLASH 1 2 0x02 Cannot trigger terrain effects.
NOSTRAFE 2 4 0x04 Never uses MBF strafing logic even if enabled.
NORESPAWN 3 8 0x08 Never respawns, even in Nightmare skill or with -respawn active.
ALWAYSRESPAWN 4 16 0x10 Always respawns regardless of skill or settings.
REMOVEDEAD 5 32 0x20 Is randomly removed from the level after death, instead of respawning. Not for player class objects.
NOTHRUST 6 64 0x40 Is not affected by BOOM environmental pushers (wind, force points, conveyors, water currents).
NOCROSS 7 128 0x80 Cannot trigger DOOM-style walk-over linedef specials.
JUMPDOWN 8 256 0x100 When friendly, may jump down off ledges to follow player, subject to dog jumping setting.
PUSHABLE 9 512 0x200 Can be pushed, like Heretic pods.
MAP07BOSS1 10 1024 0x400 Is a boss for the MAP07_1 boss special (tag 666).
MAP07BOSS2 11 2048 0x800 Is a boss for the MAP07_2 boss special (tag 667).
E1M8BOSS 12 4096 0x1000 Is a boss for the E1M8 boss special (tag 666).
E2M8BOSS 13 8192 0x2000 Is a boss for the E2M8 boss special (exits level, or tag 666 in Heretic).
E3M8BOSS 14 16384 0x4000 Is a boss for the E3M8 boss special (exits level, or tag 666 in Heretic).
BOSS 15 32768 0x8000 Roars loudly, and is immune to blast radii and certain other attacks.
E4M6BOSS 16 65536 0x10000 Is a boss for the E4M6 boss special (tag 666).
E4M8BOSS 17 131072 0x20000 Is a boss for the E4M8 boss special (tag 666).
FOOTCLIP 18 262144 0x40000 Is subject to liquid terrain effects (lowered view point, missiles, feet are clipped).
FLOATBOB 19 524288 0x80000 Bobs perpetually on the z axis, like Heretic and Hexen powerups.
DONTDRAW 20 1048576 0x100000 Doesn't generate a sprite (invisible, but appears on automap).
SHORTMRANGE 21 2097152 0x200000 Has a limited missile range, like the Arch-vile.
LONGMELEE 22 4194304 0x400000 Has a restricted non-missile proximity area, like the Revenant.
RANGEHALF 23 8388608 0x800000 Considers only half the distance to its target, giving a higher missile attack probability.
HIGHERMPROB 24 16777216 0x1000000 Additional boost to missile attack probability at a distance, as with the Cyberdemon.
CANTLEAVEFLOORPIC 25 33554432 0x2000000 Cannot cross into sectors with a different floor flat. Useful for water monsters.
SPAWNFLOAT 26 67108864 0x4000000 Spawns at a randomized height within the range of its sector, like Heretic Gargoyle.
INVULNERABLE 27 134217728 0x8000000 Takes no damage if damage is less than 10000. Does not react to damage.
DORMANT 28 268435456 0x10000000 Spawns as dormant and invulnerable regardless of mapthing flags. Must be awakened by script or line special.
SEEKERMISSILE 29 536870912 0x20000000 Is considered a homing projectile, for reflection purposes.
DEFLECTIVE 30 1073741824 0x40000000 If paired with REFLECTIVE, causes reflection at a wide angle.
REFLECTIVE 31 2147483648 0x80000000 Reflects projectiles. Still takes damage unless also INVULNERABLE.
Flag name Bit number Decimal Hexadecimal Description

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).