Update code karma stuff to be more accurate
Turns out you can still drive even with karma off in v1 so lets repat this here
This commit is contained in:
parent
44ec1d9ef5
commit
b2d3da4aa2
7 changed files with 33 additions and 19 deletions
|
|
@ -3058,7 +3058,7 @@ static void K_drawKartBumpersOrKarma(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
if (stplyr->bumper <= 0 && (gametyperules & GTR_KARMA))
|
||||
if (stplyr->bumper <= 0 && (gametyperules & GTR_KARMA) && comeback)
|
||||
{
|
||||
V_DrawMappedPatch(fx, fy-1, V_HUDTRANS|splitflags, kp_splitkarmabomb, colormap);
|
||||
V_DrawScaledPatch(fx+13, fy, V_HUDTRANS|splitflags, kp_facenum[stplyr->karmapoints % 10]);
|
||||
|
|
|
|||
12
src/k_kart.c
12
src/k_kart.c
|
|
@ -2745,7 +2745,7 @@ fixed_t K_GetKartSpeedFromStat(UINT8 kartspeed, boolean karmabomb)
|
|||
|
||||
fixed_t K_GetKartSpeed(const player_t *player, boolean doboostpower, boolean dorubberband)
|
||||
{
|
||||
boolean karmabomb = ((gametyperules & GTR_KARMA) && player->bumper <= 0);
|
||||
boolean karmabomb = ((gametyperules & GTR_BUMPERS) && player->bumper <= 0);
|
||||
fixed_t finalspeed;
|
||||
|
||||
if (doboostpower && !player->pogospring && !P_IsObjectOnGround(player->mo))
|
||||
|
|
@ -2788,7 +2788,7 @@ fixed_t K_GetKartAccel(const player_t *player)
|
|||
fixed_t k_accel = 32; // 36;
|
||||
UINT8 kartspeed = player->kartspeed;
|
||||
|
||||
if ((gametyperules & GTR_KARMA) && player->bumper <= 0)
|
||||
if ((gametyperules & GTR_BUMPERS) && player->bumper <= 0)
|
||||
kartspeed = 1;
|
||||
|
||||
k_accel += 4 * (9 - kartspeed); // 32 - 64
|
||||
|
|
@ -8775,7 +8775,7 @@ INT16 K_GetKartTurnValue(const player_t *player, INT16 turnvalue)
|
|||
|
||||
INT32 K_GetKartDriftSparkValue(const player_t *player)
|
||||
{
|
||||
UINT8 kartspeed = ((gametyperules & GTR_KARMA) && player->bumper <= 0)
|
||||
UINT8 kartspeed = ((gametyperules & GTR_BUMPERS) && player->bumper <= 0)
|
||||
? 1
|
||||
: player->kartspeed;
|
||||
return (26*4 + kartspeed*2 + (9 - player->kartweight))*8;
|
||||
|
|
@ -9862,7 +9862,7 @@ static void K_AdjustPlayerFriction(player_t *player)
|
|||
player->mo->friction -= 2048;
|
||||
|
||||
// Karma ice physics
|
||||
if ((gametyperules & GTR_KARMA) && player->bumper <= 0)
|
||||
if ((gametyperules & GTR_BUMPERS) && player->bumper <= 0)
|
||||
{
|
||||
player->mo->friction += 1228;
|
||||
|
||||
|
|
@ -10754,14 +10754,14 @@ bubbledeflate:
|
|||
player->mo->renderflags &= ~RF_DONTDRAW;
|
||||
}
|
||||
|
||||
if ((gametyperules & GTR_KARMA) && player->bumper <= 0) // dead in match? you da bomb
|
||||
if ((gametyperules & GTR_BUMPERS) && 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 ((player->bumper > 0) || ((gametyperules & GTR_CIRCUIT) && !(gametyperules & GTR_KARMA)))
|
||||
else if ((player->bumper > 0) || ((gametyperules & GTR_CIRCUIT) && !(gametyperules & GTR_BUMPERS)))
|
||||
{
|
||||
player->mo->renderflags &= ~(RF_TRANSMASK|RF_BRIGHTMASK);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -956,7 +956,7 @@ static void K_SpawnFootstepParticle(mobj_t *mo, t_footstep_t *fs, tic_t timer)
|
|||
|
||||
if (mo->player != NULL)
|
||||
{
|
||||
boolean karmabomb = ((gametyperules & GTR_KARMA) && mo->player->bumper <= 0);
|
||||
boolean karmabomb = ((gametyperules & GTR_BUMPERS) && mo->player->bumper <= 0);
|
||||
tireAngle = (mo->player->drawangle + ANGLE_180);
|
||||
speedValue = K_GetKartSpeedFromStat(mo->player->kartspeed, karmabomb);
|
||||
}
|
||||
|
|
|
|||
23
src/p_mobj.c
23
src/p_mobj.c
|
|
@ -7548,14 +7548,13 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
|||
case MT_PLAYERARROW:
|
||||
if (mobj->target && mobj->target->health
|
||||
&& mobj->target->player && !mobj->target->player->spectator
|
||||
&& mobj->target->health && mobj->target->player->playerstate != PST_DEAD
|
||||
/*&& players[displayplayers[0]].mo && !players[displayplayers[0]].spectator*/)
|
||||
&& mobj->target->health && mobj->target->player->playerstate != PST_DEAD)
|
||||
{
|
||||
fixed_t scale = 3*mobj->target->scale;
|
||||
mobj->color = mobj->target->color;
|
||||
K_MatchGenericExtraFlags(mobj, mobj->target);
|
||||
|
||||
if ((gametype == GT_RACE || mobj->target->player->bumper <= 0)
|
||||
if ((!(gametyperules & GTR_ITEMARROWS) || (gametyperules & GTR_BUMPERS && mobj->target->player->bumper <= 0))
|
||||
#if 1 // Set to 0 to test without needing to host
|
||||
|| (P_IsDisplayPlayer(mobj->target->player))
|
||||
#endif
|
||||
|
|
@ -7660,6 +7659,17 @@ static void P_MobjSceneryThink(mobj_t *mobj)
|
|||
else
|
||||
mobj->tracer->renderflags |= RF_DONTDRAW;
|
||||
}
|
||||
else if (mobj->target->player->flametimer > 1)
|
||||
{
|
||||
//itembar = mobj->target->player->flametimer; -- not today satan
|
||||
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
|
||||
mobj->tracer->sprite = SPR_ITEM;
|
||||
mobj->tracer->frame = FF_FULLBRIGHT|KITEM_FLAMESHIELD;
|
||||
if (leveltime & 1)
|
||||
mobj->tracer->renderflags &= ~RF_DONTDRAW;
|
||||
else
|
||||
mobj->tracer->renderflags |= RF_DONTDRAW;
|
||||
}
|
||||
else if (mobj->target->player->growshrinktimer > 0)
|
||||
{
|
||||
P_SetMobjState(mobj, S_PLAYERARROW_BOX);
|
||||
|
|
@ -12376,13 +12386,16 @@ void P_SpawnPlayer(INT32 playernum)
|
|||
p->grieftime = 0;
|
||||
p->spinoutrot = 0;
|
||||
|
||||
if (gametyperules & GTR_BUMPERS)
|
||||
if (gametyperules & GTR_ITEMARROWS)
|
||||
{
|
||||
mobj_t *overheadarrow = P_SpawnMobj(mobj->x, mobj->y, mobj->z + mobj->height + 16*FRACUNIT, MT_PLAYERARROW);
|
||||
P_SetTarget(&overheadarrow->target, mobj);
|
||||
overheadarrow->renderflags |= RF_DONTDRAW;
|
||||
P_SetScale(overheadarrow, mobj->destscale);
|
||||
}
|
||||
|
||||
if (gametyperules & GTR_BUMPERS)
|
||||
{
|
||||
if (p->spectator)
|
||||
{
|
||||
// HEY! No being cheap...
|
||||
|
|
@ -12397,7 +12410,7 @@ void P_SpawnPlayer(INT32 playernum)
|
|||
|
||||
K_SpawnPlayerBattleBumpers(p);
|
||||
}
|
||||
else if (p->bumper <= 0)
|
||||
else if (p->bumper <= 0 && (gametyperules & GTR_KARMA))
|
||||
{
|
||||
mobj_t *karmahitbox = P_SpawnMobj(mobj->x, mobj->y, mobj->z, MT_KARMAHITBOX); // Player hitbox is too small!!
|
||||
P_SetTarget(&karmahitbox->target, mobj);
|
||||
|
|
|
|||
|
|
@ -8112,7 +8112,7 @@ static void P_InitLevelSettings(boolean reloadinggamestate)
|
|||
// SRB2Kart: map load variables
|
||||
if (grandprixinfo.gp == true)
|
||||
{
|
||||
if ((gametyperules & GTR_BUMPERS))
|
||||
if ((gametyperules & GTR_BATTLESPEED))
|
||||
{
|
||||
gamespeed = KARTSPEED_NORMAL;
|
||||
}
|
||||
|
|
@ -8133,7 +8133,7 @@ static void P_InitLevelSettings(boolean reloadinggamestate)
|
|||
else if (modeattacking)
|
||||
{
|
||||
// Just play it safe and set everything
|
||||
if ((gametyperules & GTR_BUMPERS))
|
||||
if ((gametyperules & GTR_BATTLESPEED))
|
||||
gamespeed = KARTSPEED_NORMAL;
|
||||
else
|
||||
gamespeed = KARTSPEED_HARD;
|
||||
|
|
|
|||
|
|
@ -536,7 +536,7 @@ void P_GivePlayerLives(player_t *player, INT32 numlives)
|
|||
// Adds to the player's score
|
||||
void P_AddPlayerScore(player_t *player, UINT32 amount)
|
||||
{
|
||||
if (!(gametyperules & GTR_BUMPERS))
|
||||
if (!(gametyperules & GTR_POINTS))
|
||||
return;
|
||||
|
||||
if (player->exiting) // srb2kart
|
||||
|
|
|
|||
|
|
@ -1019,18 +1019,19 @@ void ST_Drawer(void)
|
|||
// Replay manual-save stuff
|
||||
if (demo.recording && multiplayer && demo.savebutton && demo.savebutton + 3*TICRATE < leveltime)
|
||||
{
|
||||
INT32 gtc = HU_GetHighlightColor();
|
||||
switch (demo.savemode)
|
||||
{
|
||||
case DSM_NOTSAVING:
|
||||
V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, V_HUDTRANS|V_SNAPTOTOP|V_SNAPTORIGHT|V_ALLOWLOWERCASE|((gametyperules & GTR_BUMPERS) ? V_REDMAP : V_SKYMAP), "Look Backward: Save replay");
|
||||
V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, V_HUDTRANS|V_SNAPTOTOP|V_SNAPTORIGHT|V_ALLOWLOWERCASE|gtc, "Look Backward: Save replay");
|
||||
break;
|
||||
|
||||
case DSM_WILLAUTOSAVE:
|
||||
V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, V_HUDTRANS|V_SNAPTOTOP|V_SNAPTORIGHT|V_ALLOWLOWERCASE|((gametyperules & GTR_BUMPERS) ? V_REDMAP : V_SKYMAP), "Replay will be saved. (Look Backward: Change title)");
|
||||
V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, V_HUDTRANS|V_SNAPTOTOP|V_SNAPTORIGHT|V_ALLOWLOWERCASE|gtc, "Replay will be saved. (Look Backward: Change title)");
|
||||
break;
|
||||
|
||||
case DSM_WILLSAVE:
|
||||
V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, V_HUDTRANS|V_SNAPTOTOP|V_SNAPTORIGHT|V_ALLOWLOWERCASE|((gametyperules & GTR_BUMPERS) ? V_REDMAP : V_SKYMAP), "Replay will be saved.");
|
||||
V_DrawRightAlignedThinString(BASEVIDWIDTH - 2, 2, V_HUDTRANS|V_SNAPTOTOP|V_SNAPTORIGHT|V_ALLOWLOWERCASE|gtc, "Replay will be saved.");
|
||||
break;
|
||||
|
||||
case DSM_TITLEENTRY:
|
||||
|
|
|
|||
Loading…
Reference in a new issue