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);