[Fixed] Map15 door + decorations physics weirdness

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
Janizdreg
Posts: 111
Joined: Thu Jan 01, 2004 9:06 am
Location: Finland
Contact:

Map15 door + decorations physics weirdness

Post by Janizdreg »

Three decorations in Doom2 map15 bounce up & down when I open/close the door located at 1400,-3300. View a demo (recorded using ZDoom 2.0.63) of this here.
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Post by Xaser »

Yeah. Just recently, Zdoom's Physics have gone completely insane. If there are bad guys that are stuck together, sometimes when you kill one, all the others move upward and just stay floating there. WTF? :?
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49234
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

http://forum.zdoom.org/viewtopic.php?t=1287

But thanks to pointing out a position in a level where it can be tested. It's probably just a minor stupid thing...
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Post by Xaser »

Oh great... that links to a thread which links to a thread which links to Telebase.wad, one of the most god-awful wads ever made. :P
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49234
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

There are actually 2 bugs at work here:

This code in P_CeilingRaise is responsible for the gib moving up while the door raises:

Code: Select all

	else if (!isgood && thing->z + thing->height < thing->ceilingz )
	{
		if (!P_TestMobjZ (thing) && onmobj->z <= thing->z)
		{
			thing->z = MIN (thing->ceilingz - thing->height,
							onmobj->z + onmobj->height);
		}
	}
The gib on the right side on the inside of the door overlaps with the torch nearby. So while raising the door the code tries to put the gib at the highest possible position below its 'floor' (the top of the torch). The problem is that this code only makes sense for objects which have the MF2_PASSMOBJ flag set. For decorations (especially non-solid ones) it should never be executed.


The second effect (The gib jumping up while the door is moving down) is caused by the following incorrect check in P_PushDown:

Code: Select all

	if (thing->z < thing->floorz)
	{
		return 1;
	}
It should be '<=' instead of '<'.
Anyway, P_PushDown should always check whether the z-position it wants to place an object in is actually lower than its current z-position. It doesn't do that either.
Last edited by Graf Zahl on Sun Feb 15, 2004 1:23 pm, edited 1 time in total.
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Post by Xaser »

Cool, so this crappy physics stuff WILL get fixed. Thanx, Graf!
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49234
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Xaser wrote:
Oh great... that links to a thread which links to a thread which links to Telebase.wad, one of the most god-awful wads ever made. :P

It's the same bug so the link is valid, don't you think? ;)
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Post by Xaser »

Graf Zahl wrote:
Xaser wrote:
Oh great... that links to a thread which links to a thread which links to Telebase.wad, one of the most god-awful wads ever made. :P

It's the same bug so the link is valid, don't you think? ;)
Yes, but did you HAVE to link to telebase.wad? Well, I guess you did, so I'll shut up now.
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49234
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Xaser wrote: Yes, but did you HAVE to link to telebase.wad? Well, I guess you did, so I'll shut up now.

A) What's your problem with Telebase? (I don't know this level.)
B) The bug in Telebase will not be fixed by this. Overlapping monsters in a map is just sloppy mapping and the code I mentioned is designed to unblock them. (But maybe it's a good idea to limit this only to monsters which overlap to such a degree that they cannot move out of each other.)

For decorations it's another matter. They can overlap and overlapping must be allowed at any time.
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Post by Xaser »

Graf Zahl wrote:
Xaser wrote: Yes, but did you HAVE to link to telebase.wad? Well, I guess you did, so I'll shut up now.

A) What's your problem with Telebase? (I don't know this level.)
B) The bug in Telebase will not be fixed by this. Overlapping monsters in a map is just sloppy mapping and the code I mentioned is designed to unblock them. (But maybe it's a good idea to limit this only to monsters which overlap to such a degree that they cannot move out of each other.)

For decorations it's another matter. They can overlap and overlapping must be allowed at any time.
A) I Made Telebase. It's a very bad level, and it brings back bad memories. :(
B) Darnit. That baddie stuck together thing is driving me mad! Then again, in that case, I gues it doesn't affect me that much. :P
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49234
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Xaser wrote: A) I Made Telebase. It's a very bad level, and it brings back bad memories. :(

Why did you release it then? If I'd be ashamed of a level I'd dump it, not release it.
User avatar
Xaser
 
 
Posts: 10774
Joined: Sun Jul 20, 2003 12:15 pm
Contact:

Post by Xaser »

I released it sort of as a "test" to see if I could upload levels okay. Sadly, it worked. :cry:
User avatar
Cutmanmike
Posts: 11353
Joined: Mon Oct 06, 2003 3:41 pm
Operating System Version (Optional): Windows 10
Location: United Kingdom
Contact:

Post by Cutmanmike »

Fun! I could play with that door all day long
User avatar
Graf Zahl
Lead GZDoom+Raze Developer
Lead GZDoom+Raze Developer
Posts: 49234
Joined: Sat Jul 19, 2003 10:19 am
Location: Germany

Post by Graf Zahl »

Xaser wrote:I released it sort of as a "test" to see if I could upload levels okay. Sadly, it worked. :cry:
Now, THAT was stupid... :P
User avatar
HotWax
Posts: 10002
Joined: Fri Jul 18, 2003 6:18 pm
Location: Idaho Falls, ID

Post by HotWax »

Hey, we were all 13 once...

BTW, be ashamed of this, you supposed "programmer!!"
Graf Zahl wrote:The second effect (The gib jumping up while the door is moving down is caused by the following incorrect check in P_PushDown:

Code: Select all

C_ERR 215: Unexpected end-of-line.  Expected: ')'
Post Reply

Return to “Closed Bugs [GZDoom]”