[Not a bug] Instand death crushers in Doom
Moderator: GZDoom Developers
Forum rules
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
Please don't bump threads here if you have a problem - it will often be forgotten about if you do. Instead, make a new thread here.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Instand death crushers in Doom
Ok, this is not a real bug, just a result of different crushing behavior in Doom and Hexen. I want to create an instant death crusher like the one in Hexen's MAP03. The problem is that with Doom's crushing behavior this is nearly impossible. Instead of getting crushed most of the time I just get stuck. Could you make this either a map option so that Hexen's behavior is available in Doom or make it so that ultra-fast crushers always behave as in Hexen? From what I experienced any crusher that closes in less than 3 tics is practically useless in Doom.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
Problem not solved - because it just kills the activator.
What if there are other monsters below the crusher? They should be killed, too.
What if you wanted to do more complicated stuff with this crusher? Not possible either because it doesn't kill for sure. Ok, some of this stuff could be done with sector action things but that would be a major headache.
If you are interested in what I am trying to do: Have you ever seen the 'chompers' scene in the movie Galaxy Quest? But as it would in real life it should kill anything that comes between the crushers with 100% certainty and I see absolutely no way how to do that.
IMHO a crusher that does not do any damage is a bug. The problem comes simply from the fact that Doom's crushers were so slow that stuff like this didn't matter. The makers of Hexen realized this and changed the crusher's behavior so that it works more reliably. ZDoom adds nearly all Hexen features to Doom, including ultra-fast high-damage crushers but they don't work. Now, for compatibility reasons it cannot be changed totally to Hexen's system. But I'd say for crushers that clearly don't work with Doom's current logic it should. If this was a major change to the code I might agree but this would just be a minor change in 2 lines of code to make it work.
What if there are other monsters below the crusher? They should be killed, too.
What if you wanted to do more complicated stuff with this crusher? Not possible either because it doesn't kill for sure. Ok, some of this stuff could be done with sector action things but that would be a major headache.
If you are interested in what I am trying to do: Have you ever seen the 'chompers' scene in the movie Galaxy Quest? But as it would in real life it should kill anything that comes between the crushers with 100% certainty and I see absolutely no way how to do that.
IMHO a crusher that does not do any damage is a bug. The problem comes simply from the fact that Doom's crushers were so slow that stuff like this didn't matter. The makers of Hexen realized this and changed the crusher's behavior so that it works more reliably. ZDoom adds nearly all Hexen features to Doom, including ultra-fast high-damage crushers but they don't work. Now, for compatibility reasons it cannot be changed totally to Hexen's system. But I'd say for crushers that clearly don't work with Doom's current logic it should. If this was a major change to the code I might agree but this would just be a minor change in 2 lines of code to make it work.
- The Ultimate DooMer
- Posts: 2109
- Joined: Tue Jul 15, 2003 5:29 pm
- Location: Industrial Zone
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
randy wrote:There is no difference between the way Hexen and Doom crushers work.
Really?
Code: Select all
if (crush >= 0 && gameinfo.gametype != GAME_Hexen)
{
m_Sector->floortexz += m_Sector->floorplane.HeightDiff (lastpos);
m_Sector->AdjustFloorClip ();
return crushed;
}