From e67ab6a1164822ed96b21b5d8254d98afdad32cc Mon Sep 17 00:00:00 2001 From: James R Date: Thu, 29 Jun 2023 19:00:07 -0700 Subject: [PATCH] Spawn Guard visual when player spawns, do not tie spawning to e-brake Object already handles turning invisible if player has no Guard. --- src/k_kart.c | 20 -------------------- src/objects/block.c | 4 ++-- src/p_mobj.c | 20 ++++++++++++++++++++ 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/k_kart.c b/src/k_kart.c index cd5d81e77..9d12f203c 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -10106,26 +10106,6 @@ void K_KartEbrakeVisuals(player_t *p) if (!S_SoundPlaying(p->mo, sfx_s3kd9s)) S_ReducedVFXSound(p->mo, sfx_s3kd9s, p); - // Block visuals - // (These objects track whether a player is block-eligible on their own, no worries) - if (!p->ebrakefor) - { - mobj_t *ring = P_SpawnMobj(p->mo->x, p->mo->y, p->mo->z, MT_BLOCKRING); - P_SetTarget(&ring->target, p->mo); - P_SetScale(ring, p->mo->scale); - K_MatchGenericExtraFlags(ring, p->mo); - ring->renderflags &= ~RF_DONTDRAW; - - mobj_t *body = P_SpawnMobj(p->mo->x, p->mo->y, p->mo->z, MT_BLOCKBODY); - P_SetTarget(&body->target, p->mo); - P_SetScale(body, p->mo->scale); - K_MatchGenericExtraFlags(body, p->mo); - body->renderflags |= RF_DONTDRAW; - - if (K_PlayerGuard(p)) - S_StartSound(body, sfx_s1af); - } - // HOLD! bubble. if (!p->ebrakefor) { diff --git a/src/objects/block.c b/src/objects/block.c index b2d70ed49..ee56a5d5e 100644 --- a/src/objects/block.c +++ b/src/objects/block.c @@ -6,7 +6,7 @@ void Obj_BlockRingThink (mobj_t *ring) { - if (P_MobjWasRemoved(ring->target) || !ring->target->player || !ring->target->player->ebrakefor) + if (P_MobjWasRemoved(ring->target) || !ring->target->player) { P_RemoveMobj(ring); } @@ -42,7 +42,7 @@ void Obj_BlockRingThink (mobj_t *ring) void Obj_BlockBodyThink (mobj_t *body) { - if (P_MobjWasRemoved(body->target) || !body->target->player || !body->target->player->ebrakefor) + if (P_MobjWasRemoved(body->target) || !body->target->player) { P_RemoveMobj(body); } diff --git a/src/p_mobj.c b/src/p_mobj.c index 6592fab7b..a700dcac7 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -11866,6 +11866,26 @@ void P_SpawnPlayer(INT32 playernum) } } + // Block visuals + // (These objects track whether a player is block-eligible on their own, no worries) + if (!p->spectator) + { + mobj_t *ring = P_SpawnMobj(p->mo->x, p->mo->y, p->mo->z, MT_BLOCKRING); + P_SetTarget(&ring->target, p->mo); + P_SetScale(ring, p->mo->scale); + K_MatchGenericExtraFlags(ring, p->mo); + ring->renderflags &= ~RF_DONTDRAW; + + mobj_t *body = P_SpawnMobj(p->mo->x, p->mo->y, p->mo->z, MT_BLOCKBODY); + P_SetTarget(&body->target, p->mo); + P_SetScale(body, p->mo->scale); + K_MatchGenericExtraFlags(body, p->mo); + body->renderflags |= RF_DONTDRAW; + + if (K_PlayerGuard(p)) + S_StartSound(body, sfx_s1af); + } + // I'm not refactoring the loop at the top of this file. pcount = 0;