From DoomWiki.org
There's a discussion about creating/updating Thing data tables by compiling the source code's info.c (and friends) into a working C program to extract the information directly from the mobjinfo, state, sprite and sound tables. Here's more information that's too voluminous for that main topic.
Contents
Thing Flags[edit]
The descriptions used in DMINFO/HTINFO sometimes deviate from the old, reverse-engineered DHE/HHE ones because the enum names and comments in the source files helped to make them more accurate and, err, descriptive.
Doom[edit]
In Doom, things/mobj's have one flags field. This table lists their numbers and descriptions:
Flag | DHE description | Source enum | DMINFO description |
---|---|---|---|
0 | Can be picked up | MF_SPECIAL | Can be picked up |
1 | Obstacle | MF_SOLID | Obstacle |
2 | Shootable | MF_SHOOTABLE | Shootable |
3 | Total invisibility | MF_NOSECTOR | No sector links (Invisible) |
4 | Can't be hit | MF_NOBLOCKMAP | No blocklinks (Inert) |
5 | Semi-deaf | MF_AMBUSH | Ambush (Semi-deaf) |
6 | In pain | MF_JUSTHIT | Just hit (In pain) |
7 | Steps before attack | MF_JUSTATTACKED | Just attacked (Step first) |
8 | Hangs from ceiling | MF_SPAWNCEILING | Hangs from ceiling |
9 | No gravity | MF_NOGRAVITY | No gravity |
10 | Travels over cliffs | MF_DROPOFF | Drops off ledges |
11 | Picks up items | MF_PICKUP | Picks up items |
12 | No clipping | MF_NOCLIP | No clipping |
13 | Slides along walls | MF_SLIDE | Sliding along walls |
14 | Floating | MF_FLOAT | Floating |
15 | Semi-no clipping | MF_TELEPORT | No line crossing |
16 | Projectiles | MF_MISSILE | Projectile |
17 | Disappearing weapon | MF_DROPPED | Dropped by enemy |
18 | Partial invisibilty | MF_SHADOW | Partial invisibility |
19 | Puffs (vs. bleeds) | MF_NOBLOOD | Puffs vs. blood |
20 | Sliding helpless | MF_CORPSE | Sliding corpse |
21 | No auto-leveling | MF_INFLOAT | No auto-leveling |
22 | Affects Kill % | MF_COUNTKILL | Affects kill % |
23 | Affects Item % | MF_COUNTITEM | Affects item % |
24 | Running | MF_SKULLFLY | Flying skull |
25 | Not in deathmatch | MF_NOTDMATCH | Not in deathmatch |
Heretic[edit]
Heretic has the same flags field along with a flags2 field:
Flag | HHE description | Source enum | HTINFO description |
---|---|---|---|
0 | Subject to Inertia | MF2_LOGRAV | Alternate gravity |
1 | Blown by Wind | MF2_WINDTHRUST | Wind can thrust |
2 | Bounces | MF2_FLOORBOUNCE | Bounces off floor |
3 | Goes Through Invis | MF2_THRUGHOST | Missile passes thru ghosts |
4 | Pushable Up Cliffs | MF2_FLY | Flying |
5 | Walks In Liquids | MF2_FOOTCLIP | Feet can be clipped |
6 | Starts on Floor | MF2_SPAWNFLOAT | Spawn random float height |
7 | Does Not Teleport | MF2_NOTELEPORT | No teleport |
8 | Dragon Claw Spikes | MF2_RIP | Missile rips thru solid |
9 | Pushable | MF2_PUSHABLE | Pushable |
10 | Only Hits Monsters | MF2_SLIDE | Slide against walls |
11 | Unknown | MF2_ONMOBJ | On top of mobj |
12 | Unknown | MF2_PASSMOBJ | Pass over/under mobj |
13 | Particles | MF2_CANNOTPUSH | Cannot push other pushables |
14 | Unknown | MF2_FEETARECLIPPED | Feet are being clipped |
15 | Varying Damage | MF2_BOSS | Major boss |
16 | Causes Burning Death | MF2_FIREDAMAGE | Fire damage |
17 | Does Not Push Things | MF2_NODMGTHRUST | No damage thrust |
18 | Telefrags | MF2_TELESTOMP | Can stomp (Telefrag) |
19 | Bobbing | MF2_FLOATBOB | Float bobbing movement |
20 | Unknown | MF2_DONTDRAW | No vissprite |
Hexen[edit]
The flags and flags2 fields in Hexen have a few bits that differ from Heretic, so here are both in their entirety:
Flag | Source enum | HXINFO description |
---|---|---|
0 | MF_SPECIAL | Can be picked up |
1 | MF_SOLID | Obstacle |
2 | MF_SHOOTABLE | Shootable |
3 | MF_NOSECTOR | No sector links (Invisible) |
4 | MF_NOBLOCKMAP | No blocklinks (Inert) |
5 | MF_AMBUSH | Ambush (Semi-deaf) |
6 | MF_JUSTHIT | Just hit (In pain) |
7 | MF_JUSTATTACKED | Just attacked (Step first) |
8 | MF_SPAWNCEILING | Hangs from ceiling |
9 | MF_NOGRAVITY | No gravity |
10 | MF_DROPOFF | Drops off ledges |
11 | MF_PICKUP | Picks up items |
12 | MF_NOCLIP | No clipping |
13 | MF_SLIDE | Sliding along walls |
14 | MF_FLOAT | Floating |
15 | MF_TELEPORT | No line crossing |
16 | MF_MISSILE | Projectile |
17 | MF_ALTSHADOW | Alternate shadow |
18 | MF_SHADOW | Partial invisibility |
19 | MF_NOBLOOD | Puffs vs. blood |
20 | MF_CORPSE | Sliding corpse |
21 | MF_INFLOAT | No auto-leveling |
22 | MF_COUNTKILL | Affects kill % |
23 | MF_ICECORPSE | Frozen corpse |
24 | MF_SKULLFLY | Flying skull |
25 | MF_NOTDMATCH | Not in deathmatch |
26-28 | MF_TRANSLATION | Use translation table |
Flag | Source enum | HXINFO description |
---|---|---|
0 | MF2_LOGRAV | Alternate gravity |
1 | MF2_WINDTHRUST | Wind can thrust |
2 | MF2_FLOORBOUNCE | Bounces off floor |
3 | MF2_BLASTED | Projectile pass thru ghost |
4 | MF2_FLY | Flying |
5 | MF2_FLOORCLIP | Feet can be clipped |
6 | MF2_SPAWNFLOAT | Spawn random float height |
7 | MF2_NOTELEPORT | No teleport |
8 | MF2_RIP | Projectile rips thru solid |
9 | MF2_PUSHABLE | Pushable |
10 | MF2_SLIDE | Slide against walls |
11 | MF2_ONMOBJ | On top of mobj |
12 | MF2_PASSMOBJ | Pass over/under mobj |
13 | MF2_CANNOTPUSH | Cannot push other pushables |
14 | MF2_DROPPED | Dropped by monster |
15 | MF2_BOSS | Major boss |
16 | MF2_FIREDAMAGE | Fire damage |
17 | MF2_NODMGTHRUST | No damage Thrust |
18 | MF2_TELESTOMP | Can stomp (Telefrag) |
19 | MF2_FLOATBOB | Float bobbing movement |
20 | MF2_DONTDRAW | No vissprite |
21 | MF2_IMPACT | Projectile can impact |
22 | MF2_PUSHWALL | Can push walls |
23 | MF2_MCROSS | Activates monster cross line |
24 | MF2_PCROSS | Activates projectile cross line |
25 | MF2_CANTLEAVEFLOORPIC | Stay on floor type |
26 | MF2_NONSHOOTABLE | Non-shootable but solid |
27 | MF2_INVULNERABLE | Invulnerable |
28 | MF2_DORMANT | Dormant |
29 | MF2_ICEDAMAGE | Does ice damage |
30 | MF2_SEEKERMISSILE | Seeker projectile |
31 | MF2_REFLECTIVE | Reflects projectiles |
Strife[edit]
The flags field in Strife has a few bits that differs from Doom:
Flag | Source enum | SFXINFO description |
---|---|---|
0 | MF_SPECIAL | Can be picked up |
1 | MF_SOLID | Obstacle |
2 | MF_SHOOTABLE | Shootable |
3 | MF_NOSECTOR | No sector links (Invisible) |
4 | MF_NOBLOCKMAP | No blocklinks (Inert) |
5 | MF_STAND | Stand around |
6 | MF_JUSTHIT | Just hit (In pain) |
7 | MF_JUSTATTACKED | Just attacked (Step first) |
8 | MF_SPAWNCEILING | Hangs from ceiling |
9 | MF_NOGRAVITY | No gravity |
10 | MF_DROPOFF | Drops off ledges |
11 | MF_GIVEQUEST | Quest item |
12 | MF_NOCLIP | No clipping |
13 | MF_FEETCLIPPED | Feet are being clipped |
14 | MF_FLOAT | Floating |
15 | MF_NODIALOG | Can NPC talk |
16 | MF_MISSILE | Projectile |
17 | MF_DROPPED | Dropped by enemy |
18 | MF_SHADOW | Partial invisibility |
19 | MF_NOBLOOD | Puffs vs. blood |
20 | MF_CORPSE | Sliding corpse |
21 | MF_INFLOAT | No auto-leveling |
22 | MF_COUNTKILL | Affects kill % |
23 | MF_AMBUSH | Ambush (Semi-deaf) |
24 | MF_BOUNCE | Bouncing projectile |
25 | MF_NOTDMATCH | Not in deathmatch |
26 | MF_ALLY | Allied player |
27 | MF_MVIS | Transparency |
28 | MF_COLORSWAP1 | Color swap 1 |
29 | MF_COLORSWAP2 | Color swap 2 |
30 | MF_COLORSWAP3 | Color swap 3 |
31 | MF_SPECTRAL | Spectral entity |