From b621723d232ac2300549fa39973ebf95258afbc4 Mon Sep 17 00:00:00 2001 From: Latapostrophe Date: Sat, 9 Mar 2019 17:25:42 +0100 Subject: [PATCH] Fix boost / rocket sneakers for antigrav --- src/info.c | 4 ++-- src/k_kart.c | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/src/info.c b/src/info.c index 5701f1c9..bba961d2 100644 --- a/src/info.c +++ b/src/info.c @@ -15018,8 +15018,8 @@ mobjinfo_t mobjinfo[NUMMOBJTYPES] = S_NULL, // xdeathstate sfx_None, // deathsound 8, // speed - 8*FRACUNIT, // radius - 8*FRACUNIT, // height + 32*FRACUNIT, // radius + 64*FRACUNIT, // height 1, // display offset 100, // mass 0, // damage diff --git a/src/k_kart.c b/src/k_kart.c index 090af863..32133482 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -1299,7 +1299,7 @@ void K_FlipFromObject(mobj_t *mo, mobj_t *master) void K_MatchGenericExtraFlags(mobj_t *mo, mobj_t *master) { // flipping - // handle z shifting from there too; + // handle z shifting from there too. This is here since there's no reason not to flip us if needed when we do this anyway; K_FlipFromObject(mo, master); // visibility (usually for hyudoro) @@ -3274,6 +3274,7 @@ void K_DoSneaker(player_t *player, INT32 type) P_SetTarget(&overlay->target, cur); P_SetTarget(&cur->tracer, overlay); P_SetScale(overlay, (overlay->destscale = 3*cur->scale/4)); + K_FlipFromObject(overlay, cur); } cur = cur->hnext; } @@ -3284,6 +3285,7 @@ void K_DoSneaker(player_t *player, INT32 type) mobj_t *overlay = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_BOOSTFLAME); P_SetTarget(&overlay->target, player->mo); P_SetScale(overlay, (overlay->destscale = player->mo->scale)); + K_FlipFromObject(overlay, player->mo); } } @@ -3895,14 +3897,13 @@ static void K_MoveHeldObjects(player_t *player) targx = player->mo->x + P_ReturnThrustX(cur, cur->angle + angoffset, cur->extravalue1); targy = player->mo->y + P_ReturnThrustY(cur, cur->angle + angoffset, cur->extravalue1); - K_MatchGenericExtraFlags(cur, player->mo); // Update graviflip in real time thanks. { // bobbing, copy pasted from my kimokawaiii entry const fixed_t pi = (22<>ANGLETOFINESHIFT) & FINEMASK); targz = (player->mo->z + (player->mo->height/2)) + sine; if (player->mo->eflags & MFE_VERTICALFLIP) - targz -= player->mo->height/2 - FixedMul(player->mo->scale, cur->height); + targz += (player->mo->height/2 - FixedMul(player->mo->scale, 32*FRACUNIT))*6; // No I don't understand why this works either, but it does. } @@ -3920,7 +3921,7 @@ static void K_MoveHeldObjects(player_t *player) } P_TeleportMove(cur, targx, targy, targz); - + K_FlipFromObject(cur, player->mo); // Update graviflip in real time thanks. num = (num+1) % 2; cur = cur->hnext; }