[Fixed] Vertical thrust doesn't take invurnerability into...

Bugs that have been investigated and resolved somehow.

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.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Vertical thrust doesn't take invurnerability into account.

Post by HotWax »

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49225
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

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.
User avatar
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

Post by Sticky »

HotWax wrote: the vertical should be changed to match the horizontal behavior.
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!

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.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

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.
Then why is it one way for horizontal movement and another for vertical?
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!
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??)

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.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49225
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

HotWax wrote:
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.
Then why is it one way for horizontal movement and another for vertical?

Vertical thrust is only applied for splash damage.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Look at the demos in the other thread for a very good example of why this needs to be changed. Clearly I'm not explaining it well enough here.
User avatar
Zell
Posts: 791
Joined: Thu Jul 24, 2003 7:47 am
Location: IN A GODDAMN BOX[In Erie.]

Post by Zell »

what the hell is wall running/climbing/whatever?
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Go to the other thread and see for yourself!
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49225
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

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:

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;
		}
	}
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.
User avatar
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

Post by Sticky »

HotWax wrote:You really want to get pushed around by zombies and imps while you have an invurn sphere on??
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:If it's desirable for those cheapass DM players. . . the silliest and most weakass move in the game
Clearly, you've never played in a game where rocket jumping is vital to survival. You have to remember, everyone uses their zdoom differently.
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.
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?
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?
Kuroshi
Posts: 68
Joined: Fri Oct 31, 2003 4:40 pm

Post by Kuroshi »

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.
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.
User avatar
Sticky
Posts: 836
Joined: Mon Aug 04, 2003 12:29 pm
Location: Denver, CO How do they get teflon to stick to the pan?

Post by Sticky »

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.
You mentioned several different things in one post. I do it all the time, but that may have contributed to its partial resolution.
Kuroshi
Posts: 68
Joined: Fri Oct 31, 2003 4:40 pm

Post by Kuroshi »

You're probably right about that being the issue. I'll try to limit how many bugs I report in the same topic in the future.
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

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.
User avatar
Sticky
Posts: 836
Joined: Mon Aug 04, 2003 12:29 pm
Location: Denver, CO How do they get teflon to stick to the pan?

Post by Sticky »

It's hard to say. I have an idea, and I could go on and on (and just did then deleted), but I'm probably wrong, and besides, there's no way to know for sure until changes are made. We'll just have to wait and see.
Post Reply

Return to “Closed Bugs [GZDoom]”