mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2024-11-17 02:01:15 +00:00
Merge branch 'battle' of http://git.magicalgirl.moe/KartKrew/Kart.git into battle
This commit is contained in:
commit
3eb3a74b5d
9 changed files with 67 additions and 35 deletions
|
@ -317,6 +317,8 @@ consvar_t cv_feather = {"feathers", "On", CV_NETVAR|CV_CHEAT, CV_OnOff, NU
|
|||
|
||||
consvar_t cv_karthud = {"karthud", "Default", CV_SAVE|CV_CALL, karthud_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
consvar_t cv_kartcheck = {"kartcheck", "On", CV_SAVE, CV_OnOff, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
static CV_PossibleValue_t kartstarsfx_cons_t[] = {{0, "Music"}, {1, "SMK"}, {0, NULL}};
|
||||
consvar_t cv_kartstarsfx = {"kartstarsfx", "Music", CV_SAVE, kartstarsfx_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL}; // change default to "SMK"?
|
||||
consvar_t cv_kartcc = {"kartcc", "100cc", CV_NETVAR, kartcc_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
static CV_PossibleValue_t kartballoons_cons_t[] = {{1, "MIN"}, {12, "MAX"}, {0, NULL}};
|
||||
consvar_t cv_kartballoons = {"kartballoons", "3", CV_NETVAR, kartballoons_cons_t, NULL, 0, NULL, NULL, 0, 0, NULL};
|
||||
|
|
|
@ -107,6 +107,7 @@ extern consvar_t cv_feather;
|
|||
|
||||
extern consvar_t cv_karthud;
|
||||
extern consvar_t cv_kartcheck;
|
||||
extern consvar_t cv_kartstarsfx;
|
||||
extern consvar_t cv_kartcc;
|
||||
extern consvar_t cv_kartballoons;
|
||||
extern consvar_t cv_kartfrantic;
|
||||
|
|
33
src/k_kart.c
33
src/k_kart.c
|
@ -303,6 +303,7 @@ void K_RegisterKartStuff(void)
|
|||
CV_RegisterVar(&cv_feather);
|
||||
|
||||
CV_RegisterVar(&cv_kartcheck);
|
||||
CV_RegisterVar(&cv_kartstarsfx);
|
||||
CV_RegisterVar(&cv_kartcc);
|
||||
CV_RegisterVar(&cv_kartballoons);
|
||||
CV_RegisterVar(&cv_kartfrantic);
|
||||
|
@ -1382,6 +1383,8 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
|
||||
if (player->kartstuff[k_spinouttimer])
|
||||
player->kartstuff[k_spinouttimer]--;
|
||||
else if (player->kartstuff[k_comebacktimer])
|
||||
player->kartstuff[k_comebacktimer]--;
|
||||
|
||||
if (player->kartstuff[k_spinout] == 0 && player->kartstuff[k_spinouttimer] == 0 && player->powers[pw_flashing] == flashingtics)
|
||||
player->powers[pw_flashing]--;
|
||||
|
@ -1438,9 +1441,6 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
if (player->kartstuff[k_poweritemtimer])
|
||||
player->kartstuff[k_poweritemtimer]--;
|
||||
|
||||
if (player->kartstuff[k_comebacktimer])
|
||||
player->kartstuff[k_comebacktimer]--;
|
||||
|
||||
if (player->kartstuff[k_lapanimation])
|
||||
player->kartstuff[k_lapanimation]--;
|
||||
|
||||
|
@ -1493,6 +1493,15 @@ void K_KartPlayerThink(player_t *player, ticcmd_t *cmd)
|
|||
S_StopSoundByID(player->mo, sfx_mega); // Stop it
|
||||
}
|
||||
|
||||
if (player->mo->health > 0 && (player->mo->player->kartstuff[k_startimer] > 0
|
||||
|| player->mo->player->kartstuff[k_growshrinktimer] > 0))
|
||||
{
|
||||
if (leveltime % 13 == 0 && !P_IsLocalPlayer(player))
|
||||
S_StartSound(player->mo, sfx_smkinv);
|
||||
}
|
||||
else if (S_SoundPlaying(player->mo, sfx_smkinv))
|
||||
S_StopSoundByID(player->mo, sfx_smkinv);
|
||||
|
||||
// Plays the music after the starting countdown.
|
||||
if (P_IsLocalPlayer(player) && leveltime == 158)
|
||||
S_ChangeMusicInternal(mapmusname, true);
|
||||
|
@ -1652,7 +1661,7 @@ fixed_t K_3dKartMovement(player_t *player, boolean onground, fixed_t forwardmove
|
|||
fixed_t p_speed = K_GetKartSpeed(player, true);
|
||||
fixed_t p_accel = K_GetKartAccel(player);
|
||||
|
||||
if (!onground) return 0; // If the player isn't on the ground, there is no change in speed
|
||||
if (!onground && !(player->kartstuff[k_feather] & 2)) return 0; // If the player isn't on the ground, there is no change in speed
|
||||
|
||||
// ACCELCODE!!!1!11!
|
||||
oldspeed = R_PointToDist2(0, 0, player->rmomx, player->rmomy); // FixedMul(P_AproxDistance(player->rmomx, player->rmomy), player->mo->scale);
|
||||
|
@ -2942,7 +2951,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
{
|
||||
if (P_IsLocalPlayer(player) && !player->exiting)
|
||||
S_ChangeMusicInternal("minvnc", true);
|
||||
if (!P_IsLocalPlayer(player))
|
||||
if (!cv_kartstarsfx.value && !P_IsLocalPlayer(player))
|
||||
S_StartSound(player->mo, sfx_star);
|
||||
player->kartstuff[k_startimer] = itemtime; // Activate it
|
||||
K_PlayTauntSound(player->mo);
|
||||
|
@ -3257,7 +3266,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
{
|
||||
if (P_IsLocalPlayer(player) && !player->exiting)
|
||||
S_ChangeMusicInternal("mega", true);
|
||||
if (!P_IsLocalPlayer(player))
|
||||
if (!cv_kartstarsfx.value && !P_IsLocalPlayer(player))
|
||||
S_StartSound(player->mo, sfx_mega);
|
||||
K_PlayTauntSound(player->mo);
|
||||
player->kartstuff[k_growshrinktimer] = itemtime + TICRATE*2;
|
||||
|
@ -3286,7 +3295,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
else if (ATTACK_IS_DOWN && !HOLDING_ITEM && player->kartstuff[k_feather] & 1 && NO_BOO)
|
||||
{
|
||||
K_PlayTauntSound(player->mo);
|
||||
K_DoBouncePad(player, 16<<FRACBITS);
|
||||
K_DoBouncePad(player, 30<<FRACBITS);
|
||||
|
||||
player->pflags |= PF_ATTACKDOWN;
|
||||
player->kartstuff[k_feather] |= 2;
|
||||
|
@ -3367,10 +3376,10 @@ void K_MoveKartPlayer(player_t *player, boolean onground)
|
|||
|
||||
if (player->kartstuff[k_comebacktimer] > 0)
|
||||
{
|
||||
if (leveltime & 1)
|
||||
player->mo->tracer->flags2 |= MF2_DONTDRAW;
|
||||
else
|
||||
if (player->kartstuff[k_comebacktimer] < TICRATE && (leveltime & 1))
|
||||
player->mo->tracer->flags2 &= ~MF2_DONTDRAW;
|
||||
else
|
||||
player->mo->tracer->flags2 |= MF2_DONTDRAW;
|
||||
|
||||
player->powers[pw_flashing] = player->kartstuff[k_comebacktimer];
|
||||
}
|
||||
|
@ -4609,6 +4618,10 @@ void K_drawKartHUD(void)
|
|||
// Draw the speedometer
|
||||
// TODO: Make a better speedometer.
|
||||
K_drawKartSpeedometer();
|
||||
|
||||
if (gametype != GT_RACE && !stplyr->kartstuff[k_spinouttimer]
|
||||
&& stplyr->kartstuff[k_balloon] <= 0 && stplyr->kartstuff[k_comebacktimer])
|
||||
V_DrawCenteredString(BASEVIDWIDTH/2, STRINGY(176), 0, va("%d", (stplyr->kartstuff[k_comebacktimer]+TICRATE)/TICRATE));
|
||||
}
|
||||
|
||||
//}
|
||||
|
|
|
@ -3163,12 +3163,13 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
else if (player->kartstuff[k_startimer] > 0 || player->kartstuff[k_growshrinktimer] > 0 || player->powers[pw_flashing])
|
||||
return false;
|
||||
else
|
||||
{
|
||||
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_REDITEM || inflictor->type == MT_REDITEMDUD))
|
||||
{
|
||||
player->kartstuff[k_spinouttype] = 1;
|
||||
K_SpinPlayer(player, source);
|
||||
damage = player->mo->health - 1;
|
||||
P_RingDamage(player, inflictor, source, damage);
|
||||
if (inflictor && (inflictor->type == MT_GREENITEM || inflictor->type == MT_REDITEM || inflictor->type == MT_REDITEMDUD))
|
||||
P_PlayerRingBurst(player, 5);
|
||||
player->mo->momx = player->mo->momy = 0;
|
||||
if (P_IsLocalPlayer(player))
|
||||
|
@ -3176,6 +3177,12 @@ boolean P_DamageMobj(mobj_t *target, mobj_t *inflictor, mobj_t *source, INT32 da
|
|||
quake.intensity = 32*FRACUNIT;
|
||||
quake.time = 5;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
player->kartstuff[k_spinouttype] = -1;
|
||||
K_SpinPlayer(player, source);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/* // SRB2kart - don't need these
|
||||
|
|
|
@ -1628,6 +1628,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
K_StealBalloon(thing->player, tmthing->player);
|
||||
|
||||
K_ExplodePlayer(tmthing->player, thing);
|
||||
P_AddPlayerScore(thing->player, 1); // 2 points instead of 1 for getting someone in comeback mode
|
||||
|
||||
thing->player->kartstuff[k_comebackhits]++;
|
||||
thing->player->kartstuff[k_comebacktimer] = comebacktime * (thing->player->kartstuff[k_comebackhits]+1);
|
||||
|
@ -1639,6 +1640,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
K_StealBalloon(tmthing->player, thing->player);
|
||||
|
||||
K_ExplodePlayer(thing->player, tmthing);
|
||||
P_AddPlayerScore(thing->player, 1); // 2 points instead of 1 for getting someone in comeback mode
|
||||
|
||||
tmthing->player->kartstuff[k_comebackhits]++;
|
||||
tmthing->player->kartstuff[k_comebacktimer] = comebacktime * (tmthing->player->kartstuff[k_comebackhits]+1);
|
||||
|
@ -1663,7 +1665,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
if (P_IsObjectOnGround(thing) && tmthing->momz < 0)
|
||||
{
|
||||
K_KartBouncing(tmthing, thing, true);
|
||||
if (tmthing->player->kartstuff[k_feather] & 2)
|
||||
if (gametype != GT_RACE && tmthing->player->kartstuff[k_feather] & 2)
|
||||
{
|
||||
K_StealBalloon(tmthing->player, thing->player);
|
||||
K_SpinPlayer(thing->player, tmthing);
|
||||
|
@ -1672,7 +1674,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
else if (P_IsObjectOnGround(tmthing) && thing->momz < 0)
|
||||
{
|
||||
K_KartBouncing(thing, tmthing, true);
|
||||
if (thing->player->kartstuff[k_feather] & 2)
|
||||
if (gametype != GT_RACE && thing->player->kartstuff[k_feather] & 2)
|
||||
{
|
||||
K_StealBalloon(thing->player, tmthing->player);
|
||||
K_SpinPlayer(tmthing->player, thing);
|
||||
|
@ -1681,6 +1683,8 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
else
|
||||
K_KartBouncing(tmthing, thing, false);
|
||||
|
||||
if (gametype != GT_RACE)
|
||||
{
|
||||
if (thing->player->kartstuff[k_mushroomtimer] && !(tmthing->player->kartstuff[k_mushroomtimer]))
|
||||
{
|
||||
K_StealBalloon(thing->player, tmthing->player);
|
||||
|
@ -1691,6 +1695,7 @@ static boolean PIT_CheckThing(mobj_t *thing)
|
|||
K_StealBalloon(tmthing->player, thing->player);
|
||||
K_SpinPlayer(thing->player, tmthing);
|
||||
}
|
||||
}
|
||||
|
||||
thing->player->kartstuff[k_justbumped] = 6;
|
||||
tmthing->player->kartstuff[k_justbumped] = 6;
|
||||
|
|
|
@ -1331,6 +1331,8 @@ fixed_t P_GetMobjGravity(mobj_t *mo)
|
|||
}
|
||||
if (wasflip == !(mo->eflags & MFE_VERTICALFLIP)) // note!! == ! is not equivalent to != here - turns numeric into bool this way
|
||||
P_PlayerFlip(mo);
|
||||
if (mo->player->kartstuff[k_feather] & 2)
|
||||
gravityadd = FixedMul(gravityadd, 5*FRACUNIT/2);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -9465,7 +9465,7 @@ void P_PlayerThink(player_t *player)
|
|||
// SRB2kart - fixes boo not flashing when it should. Mega doesn't flash either. Flashing is local.
|
||||
if ((player == &players[displayplayer] || (splitscreen && player == &players[secondarydisplayplayer]))
|
||||
&& player->kartstuff[k_bootimer] == 0 && player->kartstuff[k_growshrinktimer] <= 0
|
||||
&& (player->kartstuff[k_comebacktimer] == 0 || (gametype != GT_RACE && player->kartstuff[k_balloon] > 0)))
|
||||
&& (player->kartstuff[k_comebacktimer] == 0 || (gametype == GT_RACE || player->kartstuff[k_balloon] > 0)))
|
||||
{
|
||||
if (player->powers[pw_flashing] > 0 && player->powers[pw_flashing] < flashingtics && (leveltime & 1))
|
||||
player->mo->flags2 |= MF2_DONTDRAW;
|
||||
|
|
|
@ -503,6 +503,7 @@ sfxinfo_t S_sfx[NUMSFX] =
|
|||
{"shelit", false, 64, 16, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"vroom", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"boing", false, 64, 0, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
{"smkinv", false, 140, 16, -1, NULL, 0, -1, -1, LUMPERROR},
|
||||
|
||||
// SRB2kart - Skin sounds
|
||||
{"kwin", false, 64, 0, -1, NULL, 0, SKSWIN, -1, LUMPERROR},
|
||||
|
|
|
@ -575,6 +575,7 @@ typedef enum
|
|||
sfx_shelit,
|
||||
sfx_vroom,
|
||||
sfx_boing,
|
||||
sfx_smkinv,
|
||||
|
||||
sfx_kwin,
|
||||
sfx_klose,
|
||||
|
|
Loading…
Reference in a new issue