[Fixed] Vertical thrust doesn't take invurnerability into...
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.
Vertical thrust doesn't take invurnerability into account.
See here for details. The short of it is that the vertical thrust applied from weapons fire is the same whether you're invurnerable or not, while the horizontal thrust lessens. Since vanilla Doom had this feature, the vertical should be changed to match the horizontal behavior.
- Sticky
- Posts: 836
- Joined: Mon Aug 04, 2003 12:29 pm
- Location: Denver, CO How do they get teflon to stick to the pan?
Re: Vertical thrust doesn't take invurnerability into accoun
Hehe. I think the horizontal should be changed to match the vertical.HotWax wrote: the vertical should be changed to match the horizontal behavior.
I think it's counterintuitive to have different values dependant on state. The forces acting upon you are the same--they should yield the same result! If anything, it should be the other way around: by giving up health and armor to absorb some of the shock, you would move less--not more!
As I posted on the other topic, 1.22 didn't have these discrepencies. As for Vanilla doom... I think I've only got my Iwads here at school, so "I'm with you fellers" on that one.
Then why is it one way for horizontal movement and another for vertical?Graf Zahl wrote:There are 2 forces which apply thrust: being damaged and being affected by splash damage. The first one is disabled when you are invulnerable so I guess this is the expected behavior.
No offense, but what you think is irrelevant. id coded the horizontal thrust to lessen while the player is invurnerable. I think we should follow their lead and keep it that way for the vertical thrust as well. Otherwise it wouldn't feel like Doom anymore. (You really want to get pushed around by zombies and imps while you have an invurn sphere on??)Sticky wrote:Hehe. I think the horizontal should be changed to match the vertical.
I think it's counterintuitive to have different values dependant on state. The forces acting upon you are the same--they should yield the same result! If anything, it should be the other way around: by giving up health and armor to absorb some of the shock, you would move less--not more!
If it's desirable for those cheapass DM players who can't stand hurting themselves when they use the silliest and most weakass move in the game -- rocket jumping to move around -- then it can be made into a DM flag that keeps full thrust for both horizontal AND vertical thrust... killing off your whole wall-climbing trick in the process.
I've never liked the idea that somebody would intentionally fire a rocket right next to themselves just to generate thrust to push them where they're trying to go. Can you imagine anything like this happening in reality? "Nah, don't worry Joe, I'll be fine. You just aim that bazooka at me and once I reach the peak of my jump, I'll peg ol' Jim-Bob with a few well placed sniper shots... On three now... One... Two... THREE!" SPLAT
Last edited by HotWax on Mon Jan 19, 2004 12:14 pm, edited 2 times in total.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
HotWax wrote:Then why is it one way for horizontal movement and another for vertical?Graf Zahl wrote:There are 2 forces which apply thrust: being damaged and being affected by splash damage. The first one is disabled when you are invulnerable so I guess this is the expected behavior.
Vertical thrust is only applied for splash damage.
Go to the other thread and see for yourself!
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49225
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
So, I did some checks and found the following:
1. Doom and Heretic don't lessen horizontal thrust at all when the player is invulnerable. (Sorry, HotWax, your reasoning is wrong here!
)
2. Hexen doesn't apply any thrust to invulnerable players at all
The reason for ZDoom's odd behavior is a result of improperly adding some Hexen code without handling some important stuff correctly. The minimal horizontal thrust that is applied is something ZDoom specific that is done in the splash damage code. That code doesn't check for invulnerability at all.
Anyway, here's the problem:
This code from Hexen in P_DamageMobj skips the thrust application completely for an invulnerable player. The problem is that it never existed in Doom and Heretic. Hexen did a major rewrite of the Damage function so that it never applies thrust to invulnerable players. The real problem ist the inner 'if target->player) return; ' For Doom and Heretic (and probably Strife, too) it should not exit the function but jump behind the outer 'if' block. The invulnerability flags are checked elsewhere in the function but what's most important, after the thrust application.
Thinking about the secret exit in E3M6 I wonder why nobody complained earlier about this. Being able to blast yourself across large distances while invulnerable is vital there.
1. Doom and Heretic don't lessen horizontal thrust at all when the player is invulnerable. (Sorry, HotWax, your reasoning is wrong here!

2. Hexen doesn't apply any thrust to invulnerable players at all
The reason for ZDoom's odd behavior is a result of improperly adding some Hexen code without handling some important stuff correctly. The minimal horizontal thrust that is applied is something ZDoom specific that is done in the splash damage code. That code doesn't check for invulnerability at all.
Anyway, here's the problem:
Code: Select all
if ((target->flags2 & MF2_INVULNERABLE) && damage < 10000)
{ // actor is invulnerable
if (target->player) return; // for players, no exceptions
if (!inflictor || !(inflictor->flags3 & MF3_FOILINVUL))
{
return;
}
}
Thinking about the secret exit in E3M6 I wonder why nobody complained earlier about this. Being able to blast yourself across large distances while invulnerable is vital there.
- Sticky
- Posts: 836
- Joined: Mon Aug 04, 2003 12:29 pm
- Location: Denver, CO How do they get teflon to stick to the pan?
I'll be happy as long as you don't take my RJs away entirely
Yep. Makes sense to me. I'm already lucky enough to be invulnerable, doesn't seem like I should need lead boots, too.HotWax wrote:You really want to get pushed around by zombies and imps while you have an invurn sphere on??
Clearly, you've never played in a game where rocket jumping is vital to survival. You have to remember, everyone uses their zdoom differently.HotWax wrote:If it's desirable for those cheapass DM players. . . the silliest and most weakass move in the game
That's why there are so many DM flags.
On that note, it doesn't matter to me how this is changed; the map we play doesn't have an invuln... err, we don't let it respawn, so it really would have no effect on me. It just seems funky to me that the one time you should be able to rocket jump (à la your realistic argument), it's harder to do so.
As for the climbing-wall trick... well, I thought it was pf cool, but I don't have any actual use for it, so it can go bye bye. I'm definitely in the minority of player who would like to see a wad where you have to use something like that, and as I have no coding skill... it's just not gonna happen.
Besides, if it's changed the way you want, where they're both lessened while invulnerable, it'll likely still be possible. I would just take more rockets. Depends on the timing.
Yep, it looks a lot like you you described: splat. It's total bullshit. For examle, we DM on skill level 1 where damage is further reduced; you REALLY wouldn't like it! I've survived super-shotgun blasts direct to the head, and I've survived direct hits with the BFG. Many a time, presuming I have any ammount of armor left, I've RJd with 30 health and survived. It's totally fake, but it's great. This isn't TrueCombat, ya know?HotWax wrote:I've never liked the idea that somebody would intentionally fire a rocket right next to themselves just to generate thrust to push them where they're trying to go. Can you imagine anything like this happening in reality?
I actually have mentioned this in bug reports at least one, maybe two times but it seems no one cares enough about it for it to be fixed. At the least I think there should be a compatability setting IMO.Graf Zahl wrote:Thinking about the secret exit in E3M6 I wonder why nobody complained earlier about this. Being able to blast yourself across large distances while invulnerable is vital there.
- Sticky
- Posts: 836
- Joined: Mon Aug 04, 2003 12:29 pm
- Location: Denver, CO How do they get teflon to stick to the pan?
You mentioned several different things in one post. I do it all the time, but that may have contributed to its partial resolution.Kuroshi wrote:I actually have mentioned this in bug reports at least one, maybe two times but it seems no one cares enough about it for it to be fixed.
I'm going to take Graf's word that the behavior is not as I recalled in vanilla Doom, in which case the correct behavior of NOT reducing the horizontal thrust while invurnerable needs to be restored.
Sticky: I disagree with you that wall climbing would still be possible given reduced vertical thrust. Taking into account how severly the thrust was toned down on the horizontal plane, and the rocket's refire delay, I wouldn't be surprised if you landed before you could get off the second rocket.
Sticky: I disagree with you that wall climbing would still be possible given reduced vertical thrust. Taking into account how severly the thrust was toned down on the horizontal plane, and the rocket's refire delay, I wouldn't be surprised if you landed before you could get off the second rocket.