From a455822790d3420ab36c22e051f04d8264954728 Mon Sep 17 00:00:00 2001 From: "James R." Date: Thu, 14 Sep 2023 02:42:25 -0700 Subject: [PATCH] Garden Top: track inexplicable changes in mobj pointers to avoid Top entering buggy state --- src/k_kart.c | 6 +++++- src/objects/gardentop.c | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/k_kart.c b/src/k_kart.c index 7ced55df6..9d8a4a685 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -11385,7 +11385,11 @@ void K_MoveKartPlayer(player_t *player, boolean onground) } break; case KITEM_GARDENTOP: - if (ATTACK_IS_DOWN && NO_HYUDORO) + if (player->curshield == KSHIELD_TOP && K_GetGardenTop(player) == NULL) + { + Obj_GardenTopDeploy(player->mo); + } + else if (ATTACK_IS_DOWN && NO_HYUDORO) { if (player->curshield != KSHIELD_TOP) { diff --git a/src/objects/gardentop.c b/src/objects/gardentop.c index 2e31f6a04..eec08f4c5 100644 --- a/src/objects/gardentop.c +++ b/src/objects/gardentop.c @@ -411,6 +411,13 @@ anchor_top (mobj_t *top) return; } + /* Rider lost track of this object. */ + if (rider_top(rider) != top) + { + P_RemoveMobj(top); + return; + } + tilt(top); anchor(top, rider, rider->angle, 0);