Lua indecent exposure
This commit is contained in:
parent
ce7d345e44
commit
000c5cf15a
14 changed files with 140 additions and 115 deletions
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
38
src/k_hud.c
38
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
|
||||
|
|
|
|||
70
src/k_kart.c
70
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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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"))
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
{
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
26
src/p_mobj.c
26
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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
Loading…
Reference in a new issue