From 000c5cf15a633209f70e1c9cedabfe0f9bf63747 Mon Sep 17 00:00:00 2001 From: NepDisk <16447892+NepDisk@users.noreply.github.com> Date: Fri, 4 Oct 2024 15:58:46 -0400 Subject: [PATCH] Lua indecent exposure --- src/d_player.h | 3 +- src/g_demo.c | 8 +++--- src/g_game.c | 8 +++--- src/k_battle.c | 14 ++++----- src/k_collide.c | 4 +-- src/k_hud.c | 38 ++++++++++++------------ src/k_kart.c | 70 +++++++++++++++++++++------------------------ src/lua_playerlib.c | 48 +++++++++++++++++++++++++------ src/p_enemy.c | 2 +- src/p_inter.c | 20 ++++++------- src/p_map.c | 4 +-- src/p_mobj.c | 26 ++++++++--------- src/p_saveg.c | 6 ++-- src/p_user.c | 4 +-- 14 files changed, 140 insertions(+), 115 deletions(-) diff --git a/src/d_player.h b/src/d_player.h index 34255763d..1bc481388 100644 --- a/src/d_player.h +++ b/src/d_player.h @@ -422,7 +422,6 @@ typedef struct player_s fixed_t boostpower; // Base boost value, for offroad fixed_t speedboost; // Boost value smoothing for max speed fixed_t accelboost; // Boost value smoothing for acceleration - fixed_t handleboost; // Boost value smoothing for handling angle_t boostangle; // angle set when not spun out OR boosted to determine what direction you should keep going at if you're spun out and boosted. UINT8 tripwireState; // see tripwirestate_t @@ -483,7 +482,7 @@ typedef struct player_s UINT32 roundscore; // battle score this round UINT8 emeralds; - UINT8 bumpers; + UINT8 bumper; INT16 karmadelay; tic_t overtimekarma; // time to live in overtime comeback INT16 spheres; diff --git a/src/g_demo.c b/src/g_demo.c index 0c1cfb5ed..7a72481fa 100644 --- a/src/g_demo.c +++ b/src/g_demo.c @@ -796,13 +796,13 @@ void G_WriteGhostTic(mobj_t *ghost, INT32 playernum) if (ghost->player && ( ghostext[playernum].kartitem != ghost->player->itemtype || ghostext[playernum].kartamount != ghost->player->itemamount || - ghostext[playernum].kartbumpers != ghost->player->bumpers + ghostext[playernum].kartbumpers != ghost->player->bumper )) { ghostext[playernum].flags |= EZT_KART; ghostext[playernum].kartitem = ghost->player->itemtype; ghostext[playernum].kartamount = ghost->player->itemamount; - ghostext[playernum].kartbumpers = ghost->player->bumpers; + ghostext[playernum].kartbumpers = ghost->player->bumper; } if (ghostext[playernum].flags) @@ -1087,7 +1087,7 @@ void G_ConsGhostTic(INT32 playernum) if (players[playernum].itemtype != ghostext[playernum].kartitem || players[playernum].itemamount != ghostext[playernum].kartamount - || players[playernum].bumpers != ghostext[playernum].kartbumpers) + || players[playernum].bumper != ghostext[playernum].kartbumpers) { if (demosynced) CONS_Alert(CONS_WARNING, M_GetText("Demo playback has desynced (item/bumpers)!\n")); @@ -1095,7 +1095,7 @@ void G_ConsGhostTic(INT32 playernum) players[playernum].itemtype = ghostext[playernum].kartitem; players[playernum].itemamount = ghostext[playernum].kartamount; - players[playernum].bumpers = ghostext[playernum].kartbumpers; + players[playernum].bumper = ghostext[playernum].kartbumpers; } } diff --git a/src/g_game.c b/src/g_game.c index f2f32fd22..f5e22c709 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -1731,7 +1731,7 @@ boolean G_CouldView(INT32 playernum) // I don't know if we want this actually, but I'll humor the suggestion anyway if ((gametyperules & GTR_BUMPERS) && !demo.playback) { - if (player->bumpers <= 0) + if (player->bumper <= 0) return false; } @@ -2344,7 +2344,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) else growshrinktimer = 0; - bumper = players[player].bumpers; + bumper = players[player].bumper; rings = players[player].rings; spheres = players[player].spheres; kickstartaccel = players[player].kickstartaccel; @@ -2449,7 +2449,7 @@ void G_PlayerReborn(INT32 player, boolean betweenmaps) p->itemtype = itemtype; p->itemamount = itemamount; p->growshrinktimer = growshrinktimer; - p->bumpers = bumper; + p->bumper = bumper; p->karmadelay = comebacktime; p->overtimekarma = 0; p->eggmanblame = -1; @@ -2931,7 +2931,7 @@ void G_ExitLevel(void) { if (playeringame[i] && !players[i].spectator && !players[i].bot) { - if (players[i].bumpers > 0) + if (players[i].bumper > 0) { youlost = false; break; diff --git a/src/k_battle.c b/src/k_battle.c index 9113e817e..7def36d1e 100644 --- a/src/k_battle.c +++ b/src/k_battle.c @@ -116,7 +116,7 @@ void K_CheckBumpers(void) maxroundscore = players[i].roundscore; } - if (players[i].bumpers <= 0) // if you don't have any bumpers, you're probably not a winner + if (players[i].bumper <= 0) // if you don't have any bumpers, you're probably not a winner { nobumpers = true; continue; @@ -206,7 +206,7 @@ void K_CheckEmeralds(player_t *player) continue; } - players[i].bumpers = 0; + players[i].bumper = 0; } K_CheckBumpers(); @@ -376,7 +376,7 @@ void K_RunPaperItemSpawners(void) emeraldsSpawned |= players[i].emeralds; if ((players[i].exiting > 0 || (players[i].pflags & PF_ELIMINATED)) - || ((gametyperules & GTR_BUMPERS) && players[i].bumpers <= 0)) + || ((gametyperules & GTR_BUMPERS) && players[i].bumper <= 0)) { continue; } @@ -748,16 +748,16 @@ void K_SetupMovingCapsule(mapthing_t *mt, mobj_t *mobj) void K_SpawnPlayerBattleBumpers(player_t *p) { - if (!p->mo || p->bumpers <= 0) + if (!p->mo || p->bumper <= 0) return; { INT32 i; - angle_t diff = FixedAngle(360*FRACUNIT/p->bumpers); + angle_t diff = FixedAngle(360*FRACUNIT/p->bumper); angle_t newangle = p->mo->angle; mobj_t *bump; - for (i = 0; i < p->bumpers; i++) + for (i = 0; i < p->bumper; i++) { bump = P_SpawnMobjFromMobj(p->mo, P_ReturnThrustX(p->mo, newangle + ANGLE_180, 64*FRACUNIT), @@ -817,7 +817,7 @@ aftercapsules: { if (!playeringame[i] || players[i].spectator) continue; - players[i].bumpers = maxbumpers; + players[i].bumper = maxbumpers; K_SpawnPlayerBattleBumpers(players+i); } } diff --git a/src/k_collide.c b/src/k_collide.c index bae8c1aca..c54ad665c 100644 --- a/src/k_collide.c +++ b/src/k_collide.c @@ -231,7 +231,7 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2) if (!P_CanPickupItem(t2->player, 2)) return true; - if ((gametyperules & GTR_BUMPERS) && t2->player->bumpers <= 0) + if ((gametyperules & GTR_BUMPERS) && t2->player->bumper <= 0) { return true; } @@ -263,7 +263,7 @@ boolean K_EggItemCollide(mobj_t *t1, mobj_t *t2) if (t1->target && t1->target->player) { - if ((gametyperules & GTR_CIRCUIT) || t1->target->player->bumpers > 0) + if ((gametyperules & GTR_CIRCUIT) || t1->target->player->bumper > 0) t2->player->eggmanblame = t1->target->player-players; else t2->player->eggmanblame = t2->player-players; diff --git a/src/k_hud.c b/src/k_hud.c index 3660b83de..ab1e331a5 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -1836,10 +1836,10 @@ static boolean K_drawKartPositionFaces(void) if (LUA_HudEnabled(hud_battlebumpers)) { - if ((gametyperules & GTR_BUMPERS) && players[rankplayer[i]].bumpers > 0) + if ((gametyperules & GTR_BUMPERS) && players[rankplayer[i]].bumper > 0) { V_DrawMappedPatch(bumperx-2, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_tinybumper[0], colormap); - for (j = 1; j < players[rankplayer[i]].bumpers; j++) + for (j = 1; j < players[rankplayer[i]].bumper; j++) { bumperx += 5; V_DrawMappedPatch(bumperx, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_tinybumper[1], colormap); @@ -1864,7 +1864,7 @@ static boolean K_drawKartPositionFaces(void) if (i == strank) V_DrawScaledPatch(FACE_X, Y, V_HUDTRANS|V_SNAPTOLEFT, kp_facehighlight[(leveltime / 4) % 8]); - if (gametype == GT_BATTLE && players[rankplayer[i]].bumpers <= 0) + if (gametype == GT_BATTLE && players[rankplayer[i]].bumper <= 0) V_DrawScaledPatch(FACE_X-4, Y-3, V_HUDTRANS|V_SNAPTOLEFT, kp_ranknobumpers); else { @@ -2178,11 +2178,11 @@ void K_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, IN colormap = R_GetTranslationColormap(players[tab[i].num].skin, players[tab[i].num].mo->color, GTC_CACHE); V_DrawMappedPatch(x, y-4, 0, faceprefix[players[tab[i].num].skin][FACE_RANK], colormap); - /*if (gametype == GT_BATTLE && players[tab[i].num].bumpers > 0) -- not enough space for this + /*if (gametype == GT_BATTLE && players[tab[i].num].bumper > 0) -- not enough space for this { INT32 bumperx = x+19; V_DrawMappedPatch(bumperx-2, y-4, 0, kp_tinybumper[0], colormap); - for (j = 1; j < players[tab[i].num].bumpers; j++) + for (j = 1; j < players[tab[i].num].bumper; j++) { bumperx += 5; V_DrawMappedPatch(bumperx, y-4, 0, kp_tinybumper[1], colormap); @@ -2193,7 +2193,7 @@ void K_DrawTabRankings(INT32 x, INT32 y, playersort_t *tab, INT32 scorelines, IN if (tab[i].num == whiteplayer) V_DrawScaledPatch(x, y-4, 0, kp_facehighlight[(leveltime / 4) % 8]); - if (gametype == GT_BATTLE && players[tab[i].num].bumpers <= 0) + if (gametype == GT_BATTLE && players[tab[i].num].bumper <= 0) V_DrawScaledPatch(x-4, y-7, 0, kp_ranknobumpers); else { @@ -2701,11 +2701,11 @@ static void K_drawKartBumpersOrKarma(void) INT32 maxbumper = K_StartingBumperCount(); V_DrawMappedPatch(fx+1, fy-2, V_HUDTRANS|splitflags, kp_rankbumper, colormap); - if (stplyr->bumpers > 9 || maxbumper > 9) + if (stplyr->bumper > 9 || maxbumper > 9) { UINT8 ln[2]; - ln[0] = (stplyr->bumpers / 10 % 10); - ln[1] = (stplyr->bumpers % 10); + ln[0] = (stplyr->bumper / 10 % 10); + ln[1] = (stplyr->bumper % 10); V_DrawScaledPatch(fx+13, fy, V_HUDTRANS|splitflags, fontv[PINGNUM_FONT].font[ln[0]]); V_DrawScaledPatch(fx+17, fy, V_HUDTRANS|splitflags, fontv[PINGNUM_FONT].font[ln[1]]); @@ -2718,7 +2718,7 @@ static void K_drawKartBumpersOrKarma(void) } else { - V_DrawScaledPatch(fx+13, fy, V_HUDTRANS|splitflags, kp_facenum[(stplyr->bumpers) % 10]); + V_DrawScaledPatch(fx+13, fy, V_HUDTRANS|splitflags, kp_facenum[(stplyr->bumper) % 10]); V_DrawScaledPatch(fx+27, fy, V_HUDTRANS|splitflags, kp_facenum[(maxbumper) % 10]); } } @@ -2737,15 +2737,15 @@ static void K_drawKartBumpersOrKarma(void) { INT32 maxbumper = K_StartingBumperCount(); - if (stplyr->bumpers > 9 && maxbumper > 9) + if (stplyr->bumper > 9 && maxbumper > 9) V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_bumperstickerwide, colormap); else V_DrawMappedPatch(LAPS_X, LAPS_Y, V_HUDTRANS|splitflags, kp_bumpersticker, colormap); if (bossinfo.boss) - V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%d", stplyr->bumpers, maxbumper)); + V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%d", stplyr->bumper, maxbumper)); else // TODO BETTER HUD - V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%d %d", stplyr->bumpers, maxbumper, stplyr->overtimekarma / TICRATE)); + V_DrawKartString(LAPS_X+47, LAPS_Y+3, V_HUDTRANS|splitflags, va("%d/%d %d", stplyr->bumper, maxbumper, stplyr->overtimekarma / TICRATE)); } } } @@ -3194,7 +3194,7 @@ static void K_drawKartNameTags(void) continue; } - if ((gametyperules & GTR_BUMPERS) && (ntplayer->bumpers <= 0)) + if ((gametyperules & GTR_BUMPERS) && (ntplayer->bumper <= 0)) { // Dead in Battle continue; @@ -3543,7 +3543,7 @@ static void K_drawKartMinimap(void) } // Now we know it's not a display player, handle non-local player exceptions. - if ((gametyperules & GTR_BUMPERS) && players[i].bumpers <= 0) + if ((gametyperules & GTR_BUMPERS) && players[i].bumper <= 0) continue; if (players[i].hyudorotimer > 0) @@ -3861,7 +3861,7 @@ static void K_drawBattleFullscreen(void) else K_drawKartFinish(); } - else if (stplyr->bumpers <= 0 && stplyr->karmadelay && comeback && !stplyr->spectator && drawcomebacktimer) + else if (stplyr->bumper <= 0 && stplyr->karmadelay && comeback && !stplyr->spectator && drawcomebacktimer) { UINT16 t = stplyr->karmadelay/(10*TICRATE); INT32 txoff, adjust = (r_splitscreen > 1) ? 4 : 6; // normal string is 8, kart string is 12, half of that for ease @@ -4365,8 +4365,8 @@ static void K_drawDistributionDebugger(void) if (!playeringame[i] || players[i].spectator) continue; pingame++; - if (players[i].bumpers > bestbumper) - bestbumper = players[i].bumpers; + if (players[i].bumper > bestbumper) + bestbumper = players[i].bumper; } // lovely double loop...... @@ -4511,7 +4511,7 @@ void K_drawKartHUD(void) battlefullscreen = ((gametyperules & (GTR_BUMPERS|GTR_KARMA)) == (GTR_BUMPERS|GTR_KARMA) && (stplyr->exiting - || (stplyr->bumpers <= 0 + || (stplyr->bumper <= 0 && stplyr->karmadelay > 0 && !(stplyr->pflags & PF_ELIMINATED) && comeback == true diff --git a/src/k_kart.c b/src/k_kart.c index 220aebb0d..11a85ab4d 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -256,7 +256,7 @@ boolean K_IsPlayerLosing(player_t *player) return true; // Didn't even TRY? if (battlecapsules || bossinfo.boss) - return (player->bumpers <= 0); // anything short of DNF is COOL + return (player->bumper <= 0); // anything short of DNF is COOL if (player->position == 1) return false; @@ -592,7 +592,7 @@ INT32 K_KartGetItemOdds( if (!playeringame[i] || players[i].spectator) continue; - if (!(gametyperules & GTR_BUMPERS) || players[i].bumpers) + if (!(gametyperules & GTR_BUMPERS) || players[i].bumper) pingame++; if (players[i].exiting) @@ -881,8 +881,8 @@ static void K_KartItemRoulette(player_t *player, ticcmd_t *cmd) pingame++; if (players[i].exiting) dontforcespb = true; - if (players[i].bumpers > bestbumper) - bestbumper = players[i].bumpers; + if (players[i].bumper > bestbumper) + bestbumper = players[i].bumper; } // No forced SPB in 1v1s, it has to be randomly rolled @@ -2731,13 +2731,9 @@ static fixed_t K_FlameShieldDashVar(INT32 val) return (3*FRACUNIT/4) + (((val * FRACUNIT) / TICRATE) / 2); } -// sets boostpower, speedboost, accelboost, and handleboost to whatever we need it to be +// sets boostpower, speedboost and accelboost to whatever we need it to be static void K_GetKartBoostPower(player_t *player) { - // v2 almost broke sliptiding when it fixed turning bugs! - // This value is fine-tuned to feel like v1 again without reverting any of those changes. - const fixed_t sliptidehandling = FRACUNIT/2; - fixed_t boostpower = FRACUNIT; fixed_t speedboost = 0, accelboost = 0; @@ -2904,7 +2900,7 @@ fixed_t K_GetKartSpeed(player_t *player, boolean doboostpower, boolean dorubberb break; } - if ((gametyperules & GTR_KARMA) && (player->bumpers <= 0)) + if ((gametyperules & GTR_KARMA) && (player->bumper <= 0)) kartspeed = 1; k_speed += kartspeed*3; // 153 - 177 @@ -2953,7 +2949,7 @@ fixed_t K_GetKartAccel(player_t *player) fixed_t k_accel = 32; // 36; UINT8 kartspeed = player->kartspeed; - if ((gametyperules & GTR_KARMA) && player->bumpers <= 0) + if ((gametyperules & GTR_KARMA) && player->bumper <= 0) kartspeed = 1; k_accel += 4 * (9 - kartspeed); // 32 - 64 @@ -3228,7 +3224,7 @@ void K_BattleAwardHit(player_t *player, player_t *victim, mobj_t *inflictor, UIN } else if (gametyperules & GTR_BUMPERS) { - if ((victim->bumpers > 0) && (victim->bumpers <= bumpersRemoved)) + if ((victim->bumper > 0) && (victim->bumper <= bumpersRemoved)) { // +2 points for finishing off a player points = 2; @@ -3394,7 +3390,7 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers) // TODO: replace all console text print-outs with a real visual - if (player->bumpers > 0 && prevBumpers == 0) + if (player->bumper > 0 && prevBumpers == 0) { K_DoInvincibility(player, 8 * TICRATE); @@ -3403,7 +3399,7 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers) CONS_Printf(M_GetText("%s is back in the game!\n"), player_names[player-players]); } } - else if (player->bumpers == 0 && prevBumpers > 0) + else if (player->bumper == 0 && prevBumpers > 0) { mobj_t *karmahitbox = P_SpawnMobj(player->mo->x, player->mo->y, player->mo->z, MT_KARMAHITBOX); P_SetTarget(&karmahitbox->target, player->mo); @@ -3429,28 +3425,28 @@ void K_HandleBumperChanges(player_t *player, UINT8 prevBumpers) void K_DestroyBumpers(player_t *player, UINT8 amount) { - UINT8 oldBumpers = player->bumpers; + UINT8 oldBumpers = player->bumper; if (!(gametyperules & GTR_BUMPERS)) { return; } - amount = min(amount, player->bumpers); + amount = min(amount, player->bumper); if (amount == 0) { return; } - player->bumpers -= amount; + player->bumper -= amount; K_HandleBumperChanges(player, oldBumpers); } void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount) { - UINT8 oldPlayerBumpers = player->bumpers; - UINT8 oldVictimBumpers = victim->bumpers; + UINT8 oldPlayerBumpers = player->bumper; + UINT8 oldVictimBumpers = victim->bumper; UINT8 tookBumpers = 0; @@ -3459,16 +3455,16 @@ void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount) return; } - amount = min(amount, victim->bumpers); + amount = min(amount, victim->bumper); if (amount == 0) { return; } - while ((tookBumpers < amount) && (victim->bumpers > 0)) + while ((tookBumpers < amount) && (victim->bumper > 0)) { - UINT8 newbumper = player->bumpers; + UINT8 newbumper = player->bumper; angle_t newangle, diff; fixed_t newx, newy; @@ -3510,8 +3506,8 @@ void K_TakeBumpersFromPlayer(player_t *player, player_t *victim, UINT8 amount) P_SetMobjState(newmo, S_BATTLEBUMPER1); } - player->bumpers++; - victim->bumpers--; + player->bumper++; + victim->bumper--; tookBumpers++; } @@ -3928,7 +3924,7 @@ void K_SpawnBoostTrail(player_t *player) if (!P_IsObjectOnGround(player->mo) || player->hyudorotimer != 0 - || ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0 && player->karmadelay)) + || ((gametyperules & GTR_BUMPERS) && player->bumper <= 0 && player->karmadelay)) return; if (player->mo->eflags & MFE_VERTICALFLIP) @@ -4549,7 +4545,7 @@ static void K_DoHyudoroSteal(player_t *player) // Can steal from this player && (gametype == GT_RACE //&& players[i].position < player->position) - || ((gametyperules & GTR_BUMPERS) && players[i].bumpers > 0)) + || ((gametyperules & GTR_BUMPERS) && players[i].bumper > 0)) // Has an item && (players[i].itemtype @@ -5921,7 +5917,7 @@ player_t *K_FindJawzTarget(mobj_t *actor, player_t *source) continue; // Don't pay attention to dead players - if (player->bumpers <= 0) + if (player->bumper <= 0) continue; // Z pos too high/low @@ -6608,7 +6604,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) player->spheres = 40; // where's the < 0 check? see below the following block! - if ((gametyperules & GTR_BUMPERS) && (player->bumpers <= 0)) + if ((gametyperules & GTR_BUMPERS) && (player->bumper <= 0)) { // Deplete 1 every tic when removed from the game. player->spheres--; @@ -6664,7 +6660,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) else if (player->karmadelay > 0 && !P_PlayerInPain(player)) { player->karmadelay--; - if (P_IsDisplayPlayer(player) && player->bumpers <= 0 && player->karmadelay <= 0) + if (P_IsDisplayPlayer(player) && player->bumper <= 0 && player->karmadelay <= 0) comebackshowninfo = true; // client has already seen the message } @@ -6776,7 +6772,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) K_KartPlayerHUDUpdate(player); - if (battleovertime.enabled && !(player->pflags & PF_ELIMINATED) && player->bumpers <= 0 && player->karmadelay <= 0) + if (battleovertime.enabled && !(player->pflags & PF_ELIMINATED) && player->bumper <= 0 && player->karmadelay <= 0) { if (player->overtimekarma) player->overtimekarma--; @@ -6807,7 +6803,7 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd) if (player->eggmanexplode) { - if (player->spectator || (gametype == GT_BATTLE && !player->bumpers)) + if (player->spectator || (gametype == GT_BATTLE && !player->bumper)) player->eggmanexplode = 0; else { @@ -7636,7 +7632,7 @@ INT16 K_GetKartTurnValue(player_t *player, INT16 turnvalue) INT32 K_GetKartDriftSparkValue(player_t *player) { - UINT8 kartspeed = ((gametyperules & GTR_KARMA) && player->bumpers <= 0) + UINT8 kartspeed = ((gametyperules & GTR_KARMA) && player->bumper <= 0) ? 1 : player->kartspeed; return (26*4 + kartspeed*2 + (9 - player->kartweight))*8; @@ -7922,11 +7918,11 @@ void K_KartUpdatePosition(player_t *player) else if (yourEmeralds == myEmeralds) { // Bumpers are a tie breaker - if (players[i].bumpers > player->bumpers) + if (players[i].bumper > player->bumper) { position++; } - else if (players[i].bumpers == player->bumpers) + else if (players[i].bumper == player->bumper) { // Score is the second tier tie breaker if (players[i].roundscore > player->roundscore) @@ -8207,7 +8203,7 @@ static void K_AdjustPlayerFriction(player_t *player) player->mo->friction -= 2048; // Karma ice physics - if ((gametyperules & GTR_KARMA) && player->bumpers <= 0) + if ((gametyperules & GTR_KARMA) && player->bumper <= 0) { player->mo->friction += 1228; @@ -8963,14 +8959,14 @@ void K_MoveKartPlayer(player_t *player, boolean onground) player->mo->renderflags &= ~RF_DONTDRAW; } - if (gametype == GT_BATTLE && player->bumpers <= 0) // dead in match? you da bomb + if (gametype == GT_BATTLE && player->bumper <= 0) // dead in match? you da bomb { K_DropItems(player); //K_StripItems(player); K_StripOther(player); player->mo->renderflags |= RF_GHOSTLY; player->flashing = player->karmadelay; } - else if (gametype == GT_RACE || player->bumpers > 0) + else if (gametype == GT_RACE || player->bumper > 0) { player->mo->renderflags &= ~(RF_TRANSMASK|RF_BRIGHTMASK); } diff --git a/src/lua_playerlib.c b/src/lua_playerlib.c index 8aad2c700..741ca334c 100644 --- a/src/lua_playerlib.c +++ b/src/lua_playerlib.c @@ -234,6 +234,8 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->flashing); else if (fastcmp(field,"spinouttimer")) lua_pushinteger(L, plr->spinouttimer); + else if (fastcmp(field,"spinouttype")) + lua_pushinteger(L, plr->spinouttype); else if (fastcmp(field,"instashield")) lua_pushinteger(L, plr->instashield); else if (fastcmp(field,"wipeoutslow")) @@ -250,7 +252,11 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->boostcharge); else if (fastcmp(field,"startboost")) lua_pushinteger(L, plr->startboost); - else if (fastcmp(field,"aizdriftstraft")) + else if (fastcmp(field,"dropdash")) + lua_pushinteger(L, plr->dropdash); + else if (fastcmp(field,"respawn")) + lua_pushinteger(L, plr->respawn); + else if (fastcmp(field,"aizdriftstrat")) lua_pushinteger(L, plr->aizdriftstrat); else if (fastcmp(field,"aizdrifttilt")) lua_pushinteger(L, plr->aizdrifttilt); @@ -258,6 +264,10 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->aizdriftturn); else if (fastcmp(field,"offroad")) lua_pushinteger(L, plr->offroad); + else if (fastcmp(field,"pogospring")) + lua_pushinteger(L, plr->pogospring); + else if (fastcmp(field,"brakestop")) + lua_pushinteger(L, plr->brakestop); else if (fastcmp(field,"waterskip")) lua_pushinteger(L, plr->waterskip); else if (fastcmp(field,"dashpadcooldown")) @@ -268,8 +278,6 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->speedboost); else if (fastcmp(field,"accelboost")) lua_pushinteger(L, plr->accelboost); - else if (fastcmp(field,"handleboost")) - lua_pushinteger(L, plr->handleboost); else if (fastcmp(field,"boostangle")) lua_pushangle(L, plr->boostangle); else if (fastcmp(field,"tripwireState")) @@ -318,6 +326,8 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->hyudorotimer); else if (fastcmp(field,"stealingtimer")) lua_pushinteger(L, plr->stealingtimer); + else if (fastcmp(field,"stolentimer")) + lua_pushinteger(L, plr->stolentimer); else if (fastcmp(field,"sneakertimer")) lua_pushinteger(L, plr->sneakertimer); else if (fastcmp(field,"floorboost")) @@ -326,6 +336,10 @@ static int player_get(lua_State *L) lua_pushinteger(L, plr->waterrun); else if (fastcmp(field,"growshrinktimer")) lua_pushinteger(L, plr->growshrinktimer); + else if (fastcmp(field,"growcancel")) + lua_pushinteger(L, plr->growcancel); + else if (fastcmp(field,"squishedtimer")) + lua_pushinteger(L, plr->squishedtimer); else if (fastcmp(field,"rocketsneakertimer")) lua_pushinteger(L, plr->rocketsneakertimer); else if (fastcmp(field,"invincibilitytimer")) @@ -351,7 +365,7 @@ static int player_get(lua_State *L) else if (fastcmp(field,"emeralds")) lua_pushinteger(L, plr->emeralds); else if (fastcmp(field,"bumpers")) - lua_pushinteger(L, plr->bumpers); + lua_pushinteger(L, plr->bumper); else if (fastcmp(field,"karmadelay")) lua_pushinteger(L, plr->karmadelay); else if (fastcmp(field,"spheres")) @@ -455,6 +469,8 @@ static int player_get(lua_State *L) else if (fastcmp(field,"spectator")) lua_pushboolean(L, plr->spectator); + else if (fastcmp(field,"spectatewait")) + lua_pushinteger(L, plr->spectatewait); else if (fastcmp(field,"bot")) lua_pushboolean(L, plr->bot); else if (fastcmp(field,"jointime")) @@ -584,6 +600,8 @@ static int player_set(lua_State *L) plr->flashing = luaL_checkinteger(L, 3); else if (fastcmp(field,"spinouttimer")) plr->spinouttimer = luaL_checkinteger(L, 3); + else if (fastcmp(field,"spinouttype")) + plr->spinouttype = luaL_checkinteger(L, 3); else if (fastcmp(field,"instashield")) plr->instashield = luaL_checkinteger(L, 3); else if (fastcmp(field,"wipeoutslow")) @@ -600,7 +618,11 @@ static int player_set(lua_State *L) plr->boostcharge = luaL_checkinteger(L, 3); else if (fastcmp(field,"startboost")) plr->startboost = luaL_checkinteger(L, 3); - else if (fastcmp(field,"aizdriftstraft")) + else if (fastcmp(field,"dropdash")) + plr->dropdash = luaL_checkinteger(L, 3); + else if (fastcmp(field,"respawn")) + plr->respawn = luaL_checkinteger(L, 3); + else if (fastcmp(field,"aizdriftstrat")) plr->aizdriftstrat = luaL_checkinteger(L, 3); else if (fastcmp(field,"aizdrifttilt")) plr->aizdrifttilt = luaL_checkinteger(L, 3); @@ -608,6 +630,10 @@ static int player_set(lua_State *L) plr->aizdriftturn = luaL_checkinteger(L, 3); else if (fastcmp(field,"offroad")) plr->offroad = luaL_checkinteger(L, 3); + else if (fastcmp(field,"pogospring")) + plr->pogospring = luaL_checkinteger(L, 3); + else if (fastcmp(field,"brakestop")) + plr->brakestop = luaL_checkinteger(L, 3); else if (fastcmp(field,"waterskip")) plr->waterskip = luaL_checkinteger(L, 3); else if (fastcmp(field,"dashpadcooldown")) @@ -618,8 +644,6 @@ static int player_set(lua_State *L) plr->speedboost = luaL_checkinteger(L, 3); else if (fastcmp(field,"accelboost")) plr->accelboost = luaL_checkinteger(L, 3); - else if (fastcmp(field,"handleboost")) - plr->handleboost = luaL_checkinteger(L, 3); else if (fastcmp(field,"boostangle")) plr->boostangle = luaL_checkangle(L, 3); else if (fastcmp(field,"tripwireState")) @@ -668,6 +692,8 @@ static int player_set(lua_State *L) plr->hyudorotimer = luaL_checkinteger(L, 3); else if (fastcmp(field,"stealingtimer")) plr->stealingtimer = luaL_checkinteger(L, 3); + else if (fastcmp(field,"stolentimer")) + plr->stealingtimer = luaL_checkinteger(L, 3); else if (fastcmp(field,"sneakertimer")) plr->sneakertimer = luaL_checkinteger(L, 3); else if (fastcmp(field,"floorboost")) @@ -676,6 +702,10 @@ static int player_set(lua_State *L) plr->waterrun = luaL_checkboolean(L, 3); else if (fastcmp(field,"growshrinktimer")) plr->growshrinktimer = luaL_checkinteger(L, 3); + else if (fastcmp(field,"growcancel")) + plr->growcancel = luaL_checkinteger(L, 3); + else if (fastcmp(field,"squishedtimer")) + plr->squishedtimer = luaL_checkinteger(L, 3); else if (fastcmp(field,"rocketsneakertimer")) plr->rocketsneakertimer = luaL_checkinteger(L, 3); else if (fastcmp(field,"invincibilitytimer")) @@ -701,7 +731,7 @@ static int player_set(lua_State *L) else if (fastcmp(field,"emeralds")) plr->emeralds = luaL_checkinteger(L, 3); else if (fastcmp(field,"bumpers")) - plr->bumpers = luaL_checkinteger(L, 3); + plr->bumper = luaL_checkinteger(L, 3); else if (fastcmp(field,"karmadelay")) plr->karmadelay = luaL_checkinteger(L, 3); else if (fastcmp(field,"spheres")) @@ -801,6 +831,8 @@ static int player_set(lua_State *L) plr->awayviewaiming = luaL_checkangle(L, 3); else if (fastcmp(field,"spectator")) plr->spectator = lua_toboolean(L, 3); + else if (fastcmp(field,"spectatewait")) + plr->spectatewait = luaL_checkinteger(L, 3); else if (fastcmp(field,"bot")) return NOSET; else if (fastcmp(field,"jointime")) diff --git a/src/p_enemy.c b/src/p_enemy.c index 1670264a9..92d874ad0 100644 --- a/src/p_enemy.c +++ b/src/p_enemy.c @@ -14084,7 +14084,7 @@ void A_ReaperThinker(mobj_t *actor) continue; player = &players[i]; - if (player && player->mo && player->bumpers && player->score >= maxscore) + if (player && player->mo && player->bumper && player->score >= maxscore) { targetplayermo = player->mo; maxscore = player->score; diff --git a/src/p_inter.c b/src/p_inter.c index 191c99efa..5e8450c7c 100644 --- a/src/p_inter.c +++ b/src/p_inter.c @@ -117,7 +117,7 @@ boolean P_CanPickupItem(player_t *player, UINT8 weapon) #ifndef OTHERKARMAMODES && !weapon #endif - && player->bumpers <= 0) + && player->bumper <= 0) return false; if (weapon) @@ -256,7 +256,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) if (!P_CanPickupItem(player, 3) || (player->itemamount && player->itemtype != special->threshold)) return; - if ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0) + if ((gametyperules & GTR_BUMPERS) && player->bumper <= 0) return; player->itemtype = special->threshold; @@ -291,7 +291,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) P_KillMobj(special, toucher, toucher, DMG_NORMAL); break; case MT_ITEMCAPSULE: - if ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0) + if ((gametyperules & GTR_BUMPERS) && player->bumper <= 0) return; if (special->scale < special->extravalue1) // don't break it while it's respawning @@ -321,7 +321,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) return; if (player == special->target->player) return; - if (player->bumpers <= 0) + if (player->bumper <= 0) return; if (special->target->player->exiting || player->exiting) return; @@ -437,7 +437,7 @@ void P_TouchSpecialThing(mobj_t *special, mobj_t *toucher, boolean heightcheck) S_StartSound(special, sfx_s1a2); return; case MT_CDUFO: // SRB2kart - if (special->fuse || !P_CanPickupItem(player, 1) || ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0)) + if (special->fuse || !P_CanPickupItem(player, 1) || ((gametyperules & GTR_BUMPERS) && player->bumper <= 0)) return; player->itemroulette = 1; @@ -1880,7 +1880,7 @@ static boolean P_KillPlayer(player_t *player, mobj_t *inflictor, mobj_t *source, P_SetTarget(&boom->target, player->mo); } - K_DestroyBumpers(player, player->bumpers); + K_DestroyBumpers(player, player->bumper); player->pflags |= PF_ELIMINATED; } @@ -1994,7 +1994,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da { if (gametyperules & GTR_BUMPERS) { - if (player->bumpers <= 0 && player->karmadelay) + if (player->bumper <= 0 && player->karmadelay) { // No bumpers & in WAIT, can't be hurt K_DoInstashield(player); @@ -2059,7 +2059,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (type == DMG_KARMA) { - takeBumpers = player->bumpers; + takeBumpers = player->bumper; } } else @@ -2067,7 +2067,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (type == DMG_KARMA) { // Take half of their bumpers for karma comeback damage - takeBumpers = max(1, player->bumpers / 2); + takeBumpers = max(1, player->bumper / 2); } } @@ -2081,7 +2081,7 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da if (type == DMG_KARMA) { // Destroy any remainder bumpers from the player for karma comeback damage - K_DestroyBumpers(player, player->bumpers); + K_DestroyBumpers(player, player->bumper); } else { diff --git a/src/p_map.c b/src/p_map.c index d3472c1cc..0d2a0a1ce 100644 --- a/src/p_map.c +++ b/src/p_map.c @@ -1154,8 +1154,8 @@ static BlockItReturn_t PIT_CheckThing(mobj_t *thing) } if ((gametyperules & GTR_BUMPERS) - && ((thing->player->bumpers && !tm.thing->player->bumpers) - || (tm.thing->player->bumpers && !thing->player->bumpers))) + && ((thing->player->bumper && !tm.thing->player->bumper) + || (tm.thing->player->bumper && !thing->player->bumper))) { return BMIT_CONTINUE; } diff --git a/src/p_mobj.c b/src/p_mobj.c index 90127cc97..4bc1c8e2d 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -4309,7 +4309,7 @@ boolean P_SupermanLook4Players(mobj_t *actor) if (players[c].mo->health <= 0) continue; // dead - if ((gametyperules & GTR_BUMPERS) && players[c].bumpers <= 0) + if ((gametyperules & GTR_BUMPERS) && players[c].bumper <= 0) continue; // other dead playersinthegame[stop] = &players[c]; @@ -5827,10 +5827,10 @@ static void P_MobjSceneryThink(mobj_t *mobj) else ang = FixedAngle(mobj->info->speed); - if (mobj->target->player->bumpers <= 1) + if (mobj->target->player->bumper <= 1) diff = 0; else - diff = FixedAngle(360*FRACUNIT/mobj->target->player->bumpers); + diff = FixedAngle(360*FRACUNIT/mobj->target->player->bumper); ang = (ang*leveltime) + (diff * (mobj->threshold-1)); @@ -5867,9 +5867,9 @@ static void P_MobjSceneryThink(mobj_t *mobj) mobj->color = mobj->target->color; } - if (mobj->target->player->bumpers < 2) + if (mobj->target->player->bumper < 2) P_SetMobjState(mobj, S_BATTLEBUMPER3); - else if (mobj->target->player->bumpers < 3) + else if (mobj->target->player->bumper < 3) P_SetMobjState(mobj, S_BATTLEBUMPER2); else P_SetMobjState(mobj, S_BATTLEBUMPER1); @@ -5886,7 +5886,7 @@ static void P_MobjSceneryThink(mobj_t *mobj) P_SetThingPosition(mobj); } - if (mobj->target->player->bumpers <= mobj->threshold) + if (mobj->target->player->bumper <= mobj->threshold) { // Do bumper destruction P_KillMobj(mobj, NULL, NULL, DMG_NORMAL); @@ -5920,7 +5920,7 @@ static void P_MobjSceneryThink(mobj_t *mobj) mobj->color = mobj->target->color; K_MatchGenericExtraFlags(mobj, mobj->target); - if ((gametype == GT_RACE || mobj->target->player->bumpers <= 0) + if ((gametype == GT_RACE || mobj->target->player->bumper <= 0) #if 1 // Set to 0 to test without needing to host || (P_IsDisplayPlayer(mobj->target->player)) #endif @@ -7553,7 +7553,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj) statenum_t state = (mobj->state-states); if (!mobj->target || !mobj->target->health || !mobj->target->player || mobj->target->player->spectator - || (gametype == GT_RACE || mobj->target->player->bumpers)) + || (gametype == GT_RACE || mobj->target->player->bumper)) { P_RemoveMobj(mobj); return false; @@ -10812,24 +10812,24 @@ void P_SpawnPlayer(INT32 playernum) if (p->spectator) { // HEY! No being cheap... - p->bumpers = 0; + p->bumper = 0; } - else if ((p->bumpers > 0) || (leveltime < starttime) || (pcount <= 1)) + else if ((p->bumper > 0) || (leveltime < starttime) || (pcount <= 1)) { if ((leveltime < starttime) || (pcount <= 1)) // Start of the map? { if (leveltime > 2) // Reset those bumpers! { - p->bumpers = K_StartingBumperCount(); + p->bumper = K_StartingBumperCount(); K_SpawnPlayerBattleBumpers(p); } else // temp, will get overwritten in K_BattleInit { - p->bumpers = 1; + p->bumper = 1; } } } - else if (p->bumpers <= 0) + else if (p->bumper <= 0) { mobj_t *karmahitbox = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_KARMAHITBOX); // Player hitbox is too small!! P_SetTarget(&karmahitbox->target, mobj); diff --git a/src/p_saveg.c b/src/p_saveg.c index 6490afed6..a7cfcee76 100644 --- a/src/p_saveg.c +++ b/src/p_saveg.c @@ -273,7 +273,6 @@ static void P_NetArchivePlayers(void) WRITEFIXED(save_p, players[i].boostpower); WRITEFIXED(save_p, players[i].speedboost); WRITEFIXED(save_p, players[i].accelboost); - WRITEFIXED(save_p, players[i].handleboost); WRITEANGLE(save_p, players[i].boostangle); WRITEUINT8(save_p, players[i].tripwireState); @@ -330,7 +329,7 @@ static void P_NetArchivePlayers(void) WRITEUINT32(save_p, players[i].roundscore); WRITEUINT8(save_p, players[i].emeralds); - WRITEUINT8(save_p, players[i].bumpers); + WRITEUINT8(save_p, players[i].bumper); WRITEINT16(save_p, players[i].karmadelay); WRITEUINT32(save_p, players[i].overtimekarma); WRITEINT16(save_p, players[i].spheres); @@ -560,7 +559,6 @@ static void P_NetUnArchivePlayers(void) players[i].boostpower = READFIXED(save_p); players[i].speedboost = READFIXED(save_p); players[i].accelboost = READFIXED(save_p); - players[i].handleboost = READFIXED(save_p); players[i].boostangle = READANGLE(save_p); players[i].tripwireState = READUINT8(save_p); @@ -617,7 +615,7 @@ static void P_NetUnArchivePlayers(void) players[i].roundscore = READUINT32(save_p); players[i].emeralds = READUINT8(save_p); - players[i].bumpers = READUINT8(save_p); + players[i].bumper = READUINT8(save_p); players[i].karmadelay = READINT16(save_p); players[i].overtimekarma = READUINT32(save_p); players[i].spheres = READINT16(save_p); diff --git a/src/p_user.c b/src/p_user.c index f50cfec57..05b068604 100644 --- a/src/p_user.c +++ b/src/p_user.c @@ -515,7 +515,7 @@ INT32 P_GivePlayerSpheres(player_t *player, INT32 num_spheres) num_spheres += player->spheres; // Not alive - if ((gametyperules & GTR_BUMPERS) && (player->bumpers <= 0)) + if ((gametyperules & GTR_BUMPERS) && (player->bumper <= 0)) return 0; if (num_spheres > 40) // Reached the cap, don't waste 'em! @@ -4508,7 +4508,7 @@ void P_PlayerThink(player_t *player) || player->growshrinktimer > 0 // Grow doesn't flash either. || (player->respawn) // Respawn timer (for drop dash effect) || (player->pflags & PF_NOCONTEST) // NO CONTEST explosion - || ((gametyperules & GTR_BUMPERS) && player->bumpers <= 0 && player->karmadelay))) + || ((gametyperules & GTR_BUMPERS) && player->bumper <= 0 && player->karmadelay))) { if (player->flashing > 1 && player->flashing < K_GetKartFlashing(player) && (leveltime & 1))