[Fixed] Strife linedef trigger type 52 possibly incorrect

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

Strife linedef trigger type 52 possibly incorrect

Post by Graf Zahl »

According to this thread type 52 is supposed to end the level and go to the next one. Currently it is implemented as a non-repeatable hub-travel type.
User avatar
Kaiser
Posts: 180
Joined: Thu Jul 15, 2004 8:21 am
Contact:

Post by Kaiser »

even though it functions as a standard doom exit type. Hub information are still saved. Also it will warp the player to any level based on the linedef tag. BUT it will only spawn the player on the player1 spot, NOT the map spots like linedef 145.

Linedef 124 just plays a slideshow. (Triggering it again just displays a black screen then resumes the game).
User avatar
randi
Site Admin
Posts: 7749
Joined: Wed Jul 09, 2003 10:30 pm
Contact:

Post by randi »

We are both right, actually. If the tag is 0, it goes to the next map, otherwise it goes to the specified map. Here is the code for that line type:

Code: Select all

	case 52:
		G_ExitLevel (tag/100);
		break;
And here is the code for Strife's G_ExitLevel:

Code: Select all

void G_ExitLevel (int tag)
{
	if (tag == 0)
	{
		tag = gamemap + 1;
	}
	exitmap = tag;
	exitstart = 0;
	gameaction = ga_completed;
}
So ZDoom's ACS implementation should look like this:

Code: Select all

	case 52:
		tag /= 100;
		if (tag == 0)
		{
			Exit_Normal (0);
		}
		else
		{
			Teleport_NewMap (tag, 0, FALSE);
		}
		break;
Fixed.
Post Reply

Return to “Closed Bugs [GZDoom]”