Fandom

Doom Wiki

Sleeping shotgun guy in MAP02 (Doom II)

3,484pages on
this wiki
Add New Page
Talk8 Share

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.

In MAP02 of Doom II, after going through the first door, the player must get past a shotgun guy in order to press the switch that opens the next part of the level. However, this shotgun guy ignores the player and does not "wake up" as monsters usually do when spotting a player.

Usually, the bug is not noticed, as the player must confront two Former Humans in the same room before reaching the Shotgun Guy. The action of killing them usually wakes up the Shotgun Guy (that is still sensitive to sound).

The same error can occur in reverse; one example is in E1M5 of Knee-Deep in the Dead. If the player moves slowly up the left side of the first staircase, he may awaken the imp in the far northeast corner of the room directly ahead, even though there is a solid wall between the two locations.

A similar error occurs in the Playstation Port. In Phobos Labs, when the player ascends the stairs into the central room where he or she will find a group of monsters, inert, on the other side of the room.

Technical

The behavior occurs due to a bug in Doom's line of sight code. The code which causes it is located in p_sight.c, in the function P_DivlineSide.

   if (!node->dy)
   {
       if (x==node->y)
           return 2;

       if (y <= node->y)
           return node->dx < 0;

       return node->dx > 0;
   }

This code causes the engine to think that any coordinate lies on a linedef, when the linedef is horizontal and the thing's x is the same as the y coordinate of a BSP divider line's origin, which is always a vertex.

In the MAP02 case, the shotgun guy is at (1200,1232) and one of the vertices behind it is at (1232,1200). In the E1M5 case, the imp is at (672,1264) and one of the linedefs south of it has a vertex at (400,672).

Demo files

See also

External links

Also on Fandom

Random Wiki