Buggy netgame! Sorry yalls.

* Fix free play on intermission.
* Fix crash in killing/damaging mobj with null death/pain state.
This commit is contained in:
toaster 2018-07-29 23:07:10 +01:00
parent 74e182237a
commit 0dddf7623a
2 changed files with 17 additions and 31 deletions

View File

@ -3492,22 +3492,25 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
break;
}
target->reactiontime = 0; // we're awake now...
if (source && source != target)
if (!P_MobjWasRemoved(target))
{
// if not intent on another player,
// chase after this one
P_SetTarget(&target->target, source);
if (target->state == &states[target->info->spawnstate] && target->info->seestate != S_NULL)
target->reactiontime = 0; // we're awake now...
if (source && source != target)
{
if (player)
// if not intent on another player,
// chase after this one
P_SetTarget(&target->target, source);
if (target->state == &states[target->info->spawnstate] && target->info->seestate != S_NULL)
{
if (!(player->powers[pw_super] && ALL7EMERALDS(player->powers[pw_emeralds])))
P_SetPlayerMobjState(target, target->info->seestate);
if (player)
{
if (!(player->powers[pw_super] && ALL7EMERALDS(player->powers[pw_emeralds])))
P_SetPlayerMobjState(target, target->info->seestate);
}
else
P_SetMobjState(target, target->info->seestate);
}
else
P_SetMobjState(target, target->info->seestate);
}
}

View File

@ -493,25 +493,8 @@ void Y_IntermissionDrawer(void)
dotimer:
if (netgame) // FREE PLAY?
{
i = MAXPLAYERS;
if (!forcefreeplay)
{
// check to see if there's anyone else at all
for (i = 0; i < MAXPLAYERS; i++)
{
if (i == consoleplayer)
continue;
if (playeringame[i] && !stplyr->spectator)
break;
}
}
if (i == MAXPLAYERS)
K_drawKartFreePlay(intertic);
}
if (netgame && forcefreeplay) // FREE PLAY?
K_drawKartFreePlay(intertic);
if (timer)
{