mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Move Break the Capsules and Boss elimination condition to P_KillMobj
This commit is contained in:
parent
3843f0c3cd
commit
a1558f1fbd
2 changed files with 20 additions and 11 deletions
11
src/k_kart.c
11
src/k_kart.c
|
|
@ -4317,20 +4317,15 @@ void K_DebtStingPlayer(player_t *player, mobj_t *source)
|
||||||
|
|
||||||
void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers)
|
void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers)
|
||||||
{
|
{
|
||||||
|
(void)player;
|
||||||
|
(void)prevBumpers;
|
||||||
|
|
||||||
if (!(gametyperules & GTR_BUMPERS))
|
if (!(gametyperules & GTR_BUMPERS))
|
||||||
{
|
{
|
||||||
// Bumpers aren't being used
|
// Bumpers aren't being used
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (player->bumpers == 0 && prevBumpers > 0)
|
|
||||||
{
|
|
||||||
if (battlecapsules || bossinfo.valid)
|
|
||||||
{
|
|
||||||
player->pflags |= (PF_NOCONTEST|PF_ELIMINATED);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
K_CalculateBattleWanted();
|
K_CalculateBattleWanted();
|
||||||
K_CheckBumpers();
|
K_CheckBumpers();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -39,6 +39,7 @@
|
||||||
#include "p_spec.h"
|
#include "p_spec.h"
|
||||||
#include "k_objects.h"
|
#include "k_objects.h"
|
||||||
#include "k_roulette.h"
|
#include "k_roulette.h"
|
||||||
|
#include "k_boss.h"
|
||||||
|
|
||||||
// CTF player names
|
// CTF player names
|
||||||
#define CTFTEAMCODE(pl) pl->ctfteam ? (pl->ctfteam == 1 ? "\x85" : "\x84") : ""
|
#define CTFTEAMCODE(pl) pl->ctfteam ? (pl->ctfteam == 1 ? "\x85" : "\x84") : ""
|
||||||
|
|
@ -1395,6 +1396,11 @@ void P_KillMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, UINT8 damaget
|
||||||
|
|
||||||
P_PlayDeathSound(target);
|
P_PlayDeathSound(target);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (battlecapsules || bossinfo.valid)
|
||||||
|
{
|
||||||
|
target->player->pflags |= (PF_NOCONTEST|PF_ELIMINATED);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MT_METALSONIC_RACE:
|
case MT_METALSONIC_RACE:
|
||||||
|
|
@ -1937,13 +1943,21 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source,
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case DMG_DEATHPIT:
|
case DMG_DEATHPIT:
|
||||||
// Respawn kill types
|
// Battle
|
||||||
K_DoIngameRespawn(player);
|
|
||||||
player->mo->health -= K_DestroyBumpers(player, 1);
|
player->mo->health -= K_DestroyBumpers(player, 1);
|
||||||
return false;
|
|
||||||
|
if (player->mo->health <= 0)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Quick respawn; does not kill
|
||||||
|
return K_DoIngameRespawn(player), false;
|
||||||
|
|
||||||
case DMG_SPECTATOR:
|
case DMG_SPECTATOR:
|
||||||
// disappearifies, but still gotta put items back in play
|
// disappearifies, but still gotta put items back in play
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Everything else REALLY kills
|
// Everything else REALLY kills
|
||||||
if (leveltime < starttime)
|
if (leveltime < starttime)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue