[Fixed] not possible to exit after the player dies?
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.
not possible to exit after the player dies?
short of fragging a romero head, if the player's dead body crosses a exit line or a death script specifys to exit the map (exit_normal at least) then nothing happens. I dunno if this was intentional or not, but original doom's behavior was to let the player exit, and I don't see any problems that could arise from this with the exception of hubs (and even then if the player crosses into another map in the hub he'll still be dead, but in a different map from where he died)
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
This is intentional.
Here's the code that does the checks if you are interested:
This behavior was introduced in Boom.
A compatibility option would certainly be nice because there are a few WADs out there that exploit Doom's behavior.
Here's the code that does the checks if you are interested:
Code: Select all
// [RH] Check dmflags for noexit and respond accordingly
bool CheckIfExitIsGood (AActor *self)
{
// The world can always exit itself.
if (self == NULL)
return true;
if (self->player && self->player->playerstate == PST_DEAD)
{
return false;
}
if ((deathmatch || alwaysapplydmflags) && (dmflags & DF_NO_EXIT))
{
P_DamageMobj (self, self, self, 10000, MOD_EXIT);
return false;
}
if (deathmatch)
{
Printf ("%s exited the level.\n", self->player->userinfo.netname);
}
return true;
}
This behavior was introduced in Boom.
A compatibility option would certainly be nice because there are a few WADs out there that exploit Doom's behavior.
- Graf Zahl
- Lead GZDoom+Raze Developer
- Posts: 49067
- Joined: Sat Jul 19, 2003 10:19 am
- Location: Germany
It uses a different means to exit the level. This only applies to the exit line specials.
Plus, the player isn't dead when the sector special executes, he's just almost dead.
Ok, I looked closer at the death script execution code. It appears to be executed before the player is marked dead so exiting in it should work.
Plus, the player isn't dead when the sector special executes, he's just almost dead.
Ok, I looked closer at the death script execution code. It appears to be executed before the player is marked dead so exiting in it should work.
- Bio Hazard
- Posts: 4019
- Joined: Fri Aug 15, 2003 8:15 pm
- Location: ferret ~/C/ZDL $
- Contact:
I used the special on a level where you are set up by enemy forces and ambushed. You wake up on the next level in prison with whatever health you finished the previous level on. This has been as low as 1% quite a few times, but I have never been killed by the special. I didn't realise you were actually prevented from dying though. Thanks for that info Graf.Nanami wrote:Oh, I see. So we see the player's dead, and then it exits the level... and then we all see he's not really dead, and he's getting better.
Of course, in E1M8, I've always figured that final dark room is supposed to represent the bloody fight you port straight into when you arrive on Deimos. I've never considered it to indicate you getting killed as soon as you arrive.
If it did, the next two episodes would be REALLY short.Enjay wrote:I used the special on a level where you are set up by enemy forces and ambushed. You wake up on the next level in prison with whatever health you finished the previous level on. This has been as low as 1% quite a few times, but I have never been killed by the special. I didn't realise you were actually prevented from dying though. Thanks for that info Graf.Nanami wrote:Oh, I see. So we see the player's dead, and then it exits the level... and then we all see he's not really dead, and he's getting better.
Of course, in E1M8, I've always figured that final dark room is supposed to represent the bloody fight you port straight into when you arrive on Deimos. I've never considered it to indicate you getting killed as soon as you arrive.