Difference between revisions of "Tag 667"

From DoomWiki.org

[checked revision][checked revision]
(Fix level links.)
(Bugs)
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
'''Tag 667''', closely related to [[tag 666]], is used on [[Doom II]]'s [[MAP07: Dead Simple (Doom II)|MAP07]] in conjunction with the [[Arachnotron]]. This is the relevant code (from [[Doom source code: files#Main files|p_enemy.c]], lines 1722-1727 in the [[Doom source code]] release):
+
'''Tag 667''', closely related to [[tag 666]], is used on [[Doom II]]'s [[MAP07: Dead Simple (Doom II)|MAP07]] in conjunction with the [[arachnotron]]. This is the relevant code (from [[Doom source code: files#Main files|p_enemy.c]], lines 1722-1727 in the [[Doom source code]] release):
  
 
  if (mo->type == MT_BABY)
 
  if (mo->type == MT_BABY)
Line 8: Line 8:
 
  }
 
  }
  
When the last Arachnotron dies, any [[sectors]] tagged with the number 667 are raised up by the height of the first [[sidedef]]'s lower [[texture]]. If the first sidedef does not have a lower texture, the second sidedef is used.
+
When the last arachnotron dies, any [[sector]] tagged with the number 667 is raised up by the height of the shortest lower [[texture]] of any of that sector's [[sidedef]]s.  
  
Tag 667 is also used in [[Strife]]. Killing all [[Crusader]]s on any map will cause all sectors tagged 667 to lower their floors to the lowest surrounding floor. This effect is used in [[MAP02: Town (Strife)|MAP02: Town]] in the demo version, and in [[MAP09: Castle: Programmer's Keep (Strife)|MAP09: Castle: Programmer's Keep]] in the registered version. At least one player must currently be alive for this to happen.
+
Tag 667 is also used in [[Strife]]. Killing all [[crusader]]s on any map will cause all sectors tagged 667 to lower their floors to the lowest surrounding floor. This effect is used in [[MAP33: Town (Strife)|MAP33: Town]] in the demo version, in [[MAP09: Castle: Programmer's Keep (Strife)|MAP09: Castle: Programmer's Keep]] in the registered version, and in [[MAP35: Factory: Production (Strife: Veteran Edition)|MAP35: Factory: Production]] in the [[Strife: Veteran Edition|Veteran Edition]]. At least one player must currently be alive for this to happen.
  
 
== Bugs ==
 
== Bugs ==
  
Sometimes, if the last two Arachnotrons on [[MAP07: Dead Simple (Doom II)|MAP07: Dead Simple]] are killed such that the last one dies before the death animation for the first one has finished, the step to the exit switch rises twice, placing it too high for the player to step onto. The level can still be completed by [[straferunning]] to the step from one of the square metal platforms, if lowered.
+
If one of the sidedefs of the sector with the 667 tag has the "-" empty texture for a lower texture, the height of the first dummy entry in the texture list is used. In [[DOOM2.WAD]] it is [[AASHITTY]], thus the sector is raised by 64 units. This can produce effects unexpected by the map's designer if they are not aware of this particular quirk of the Doom engine.  
  
This bug occurs because a monster is considered dead to the source code at the beginning of its death sequence, but A_BossDeath is triggered at the end. Therefore, there is a short window where an Arachnotron at the end of its death sequence could erroneously be considered the last Arachnotron if the 'real' last Arachnotron is still in the middle of its death sequence.
+
This bug was fixed in [[Boom]], which ignores sidedefs with the "-" texture in its implementation of the "raise by shortest lower texture" function. One side effect of the change is that maps utilizing tag 667 may not work as expected in [[vanilla]]-compatible engines or emulation modes, if these maps are tested only in engines that have adopted Boom's fix. [[Armadosia]] MAP07 is one notable example.
  
In addition, if the level is played with respawning monsters toggled on (either through using a [[command line arguments|command line argument]] or playing on [[skill level|Nightmare!]] difficulty,) killing every Arachnotron that respawns after the whole group is killed for the first time will cause the step to rise up another time, resulting in the same effect. Unlike the above, this can be done repeatedly, which will eventually cause the step to rise up to the sky. The inner sides of the step are untextured; if the player raises the step high enough in this fashion while standing on the exit platform, they will be able to see through the newly created walls, providing a view of the courtyard while remaining hidden from the enemy.
+
Sometimes, if the last two arachnotrons on [[MAP07: Dead Simple (Doom II)|MAP07: Dead Simple]] are killed such that the last one dies before the death animation for the first one has finished, the step to the exit switch rises twice, placing it too high for the player to step onto. The level can still be completed by [[straferunning]] to the step from one of the square metal platforms, if lowered.
 +
 
 +
This bug occurs because a monster is considered dead to the source code at the beginning of its death sequence (its health is less than or equal to zero), but {{c|A_BossDeath}} is triggered at the end. Therefore, there is a short window where an arachnotron at the end of its death sequence could erroneously be considered the last arachnotron if the 'real' last arachnotron is still in the middle of its death sequence.
 +
 
 +
In addition, if the level is played with [[respawning]] monsters enabled, either through use of a [[command line arguments|command line argument]] or during play on [[skill level|Nightmare!]] difficulty, killing every arachnotron that respawns after the whole group is killed for the first time will cause the step to rise up another time, resulting in the same effect. Unlike the above, this can be done repeatedly, which will eventually cause the step to rise up to the sky. The inner sides of the step are untextured; if the player raises the step high enough in this fashion while standing on the exit platform, he or she will be able to see through the newly created walls, providing a view of the courtyard while remaining hidden from the enemy.
  
 
== Demo files ==
 
== Demo files ==
  
* [http://images2.wikia.nocookie.net/__cb20050928183050/doom/images/e/e7/Tag667bug.lmp v1.666/PrBoom demo] ([[:Image:Tag667bug.lmp|file info]]) showing the double-rising bug on [[MAP07: Dead Simple (Doom II)|MAP07: Dead Simple]].
+
* [[Media:Tag667bug.lmp|v1.666/PrBoom demo]] ([[:Image:Tag667bug.lmp|file info]]) showing the double-rising bug on [[MAP07: Dead Simple (Doom II)|MAP07: Dead Simple]].
* [http://images3.wikia.nocookie.net/__cb20050930001453/doom/images/b/b6/D207667.lmp Doom95/v1.9 demo] ([[:Image:d207667.lmp|file info]]) showing the double-rising bug on [[MAP07: Dead Simple (Doom II)|MAP07: Dead Simple]].
+
* [[Media:D207667.lmp|Doom95/v1.9 demo]] ([[:Image:d207667.lmp|file info]]) showing the double-rising bug on [[MAP07: Dead Simple (Doom II)|MAP07: Dead Simple]].
 +
 
 +
== See also ==
 +
* [[Tag 666]]
 +
* [[Strife special tags]]
 +
 
 
[[Category:Tags]]
 
[[Category:Tags]]

Revision as of 00:17, 7 February 2019

Tag 667, closely related to tag 666, is used on Doom II's MAP07 in conjunction with the arachnotron. This is the relevant code (from p_enemy.c, lines 1722-1727 in the Doom source code release):

if (mo->type == MT_BABY)
{
  junk.tag = 667;
  EV_DoFloor(&junk,raiseToTexture);
  return;
}

When the last arachnotron dies, any sector tagged with the number 667 is raised up by the height of the shortest lower texture of any of that sector's sidedefs.

Tag 667 is also used in Strife. Killing all crusaders on any map will cause all sectors tagged 667 to lower their floors to the lowest surrounding floor. This effect is used in MAP33: Town in the demo version, in MAP09: Castle: Programmer's Keep in the registered version, and in MAP35: Factory: Production in the Veteran Edition. At least one player must currently be alive for this to happen.

Bugs

If one of the sidedefs of the sector with the 667 tag has the "-" empty texture for a lower texture, the height of the first dummy entry in the texture list is used. In DOOM2.WAD it is AASHITTY, thus the sector is raised by 64 units. This can produce effects unexpected by the map's designer if they are not aware of this particular quirk of the Doom engine.

This bug was fixed in Boom, which ignores sidedefs with the "-" texture in its implementation of the "raise by shortest lower texture" function. One side effect of the change is that maps utilizing tag 667 may not work as expected in vanilla-compatible engines or emulation modes, if these maps are tested only in engines that have adopted Boom's fix. Armadosia MAP07 is one notable example.

Sometimes, if the last two arachnotrons on MAP07: Dead Simple are killed such that the last one dies before the death animation for the first one has finished, the step to the exit switch rises twice, placing it too high for the player to step onto. The level can still be completed by straferunning to the step from one of the square metal platforms, if lowered.

This bug occurs because a monster is considered dead to the source code at the beginning of its death sequence (its health is less than or equal to zero), but A_BossDeath is triggered at the end. Therefore, there is a short window where an arachnotron at the end of its death sequence could erroneously be considered the last arachnotron if the 'real' last arachnotron is still in the middle of its death sequence.

In addition, if the level is played with respawning monsters enabled, either through use of a command line argument or during play on Nightmare! difficulty, killing every arachnotron that respawns after the whole group is killed for the first time will cause the step to rise up another time, resulting in the same effect. Unlike the above, this can be done repeatedly, which will eventually cause the step to rise up to the sky. The inner sides of the step are untextured; if the player raises the step high enough in this fashion while standing on the exit platform, he or she will be able to see through the newly created walls, providing a view of the courtyard while remaining hidden from the enemy.

Demo files

See also