bricks
release accel to stop waterskipping
This commit is contained in:
parent
bc96bbba4c
commit
66dcc5c1db
7 changed files with 70 additions and 1 deletions
|
|
@ -582,6 +582,8 @@ consvar_t cv_kartairthrust_power2 = CVAR_INIT ("kartairthrust_power2", "0.35", C
|
|||
consvar_t cv_kartairthrust_power3 = CVAR_INIT ("kartairthrust_power3", "0.5", CV_NETVAR|CV_FLOAT|CV_CHEAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
consvar_t cv_kartairthrust_power4 = CVAR_INIT ("kartairthrust_power4", "0.75", CV_NETVAR|CV_FLOAT|CV_CHEAT|CV_GUARD, CV_Unsigned, NULL);
|
||||
|
||||
consvar_t cv_kartwaterskiplock = CVAR_INIT ("kartwaterskiplock", "No", CV_NETVAR|CV_CALL|CV_NOINIT|CV_GUARD, CV_YesNo, KartWaterSkipLock_OnChange);
|
||||
|
||||
consvar_t cv_kartitemlitter = CVAR_INIT ("kartitemlitter", "On", CV_NETVAR|CV_CALL|CV_NOINIT, CV_OnOff, KartItemLitter_OnChange);
|
||||
consvar_t cv_kartitempush = CVAR_INIT ("kartitempush", "Off", CV_NETVAR|CV_CALL|CV_NOINIT, CV_OnOff, KartItemPush_OnChange);
|
||||
|
||||
|
|
@ -8241,6 +8243,39 @@ static void KartAirThrust_OnChange(void)
|
|||
}
|
||||
}
|
||||
|
||||
static void KartWaterSkipLock_OnChange(void)
|
||||
{
|
||||
if (K_CanChangeRules(false) == false)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (!K_WaterskipBricksActive() && cv_kartwaterskiplock.value)
|
||||
{
|
||||
if (leveltime < starttime)
|
||||
{
|
||||
waterskipbricks = true;
|
||||
CONS_Printf(M_GetText("Waterskip Lock has been turned \"On\".\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
CONS_Printf(M_GetText("Waterskip Lock will be turned \"On\" Next Round.\n"));
|
||||
}
|
||||
}
|
||||
else if (K_WaterskipBricksActive() && !cv_kartwaterskiplock.value)
|
||||
{
|
||||
if (leveltime < starttime)
|
||||
{
|
||||
waterskipbricks = false;
|
||||
CONS_Printf(M_GetText("Waterskip Lock has been turned \"Off\".\n"));
|
||||
}
|
||||
else
|
||||
{
|
||||
CONS_Printf(M_GetText("Waterskip Lock will be turned \"Off\" next round.\n"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void KartItemLitter_OnChange(void)
|
||||
{
|
||||
if (K_CanChangeRules(false) == false)
|
||||
|
|
|
|||
|
|
@ -208,6 +208,8 @@ extern consvar_t cv_kartairthrust_power2;
|
|||
extern consvar_t cv_kartairthrust_power3;
|
||||
extern consvar_t cv_kartairthrust_power4;
|
||||
|
||||
extern consvar_t cv_kartwaterskiplock;
|
||||
|
||||
extern consvar_t cv_kartitemlitter, cv_kartitempush;
|
||||
|
||||
extern consvar_t cv_kartantibump;
|
||||
|
|
|
|||
23
src/k_kart.c
23
src/k_kart.c
|
|
@ -11225,6 +11225,17 @@ boolean K_AirThrustActive(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
boolean K_WaterskipBricksActive(void)
|
||||
{
|
||||
if (waterskipbricks)
|
||||
{
|
||||
// Water Skip Lock is enabled!
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
boolean K_ItemLitterActive(void)
|
||||
{
|
||||
if (itemlittering)
|
||||
|
|
@ -11407,4 +11418,16 @@ void K_QuiteSaltyHop(player_t *player)
|
|||
}
|
||||
}
|
||||
|
||||
boolean K_CheckWaterskipLockout(player_t *player)
|
||||
{
|
||||
if (K_WaterskipBricksActive())
|
||||
{
|
||||
return (player->cmd.buttons & BT_ACCELERATE) == BT_ACCELERATE;
|
||||
}
|
||||
else
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
//}
|
||||
|
|
|
|||
|
|
@ -359,6 +359,7 @@ boolean K_SlopeBoostActive(void);
|
|||
boolean K_DraftingActive(void);
|
||||
boolean K_AirDropActive(void);
|
||||
boolean K_AirThrustActive(void);
|
||||
boolean K_WaterskipBricksActive(void);
|
||||
boolean K_ItemLitterActive(void);
|
||||
boolean K_ItemListActive(void);
|
||||
boolean K_ItemPushingActive(void);
|
||||
|
|
@ -383,6 +384,7 @@ typedef enum
|
|||
void K_AwardScaledPlayerRings(player_t *player, SINT8 mode);
|
||||
|
||||
void K_QuiteSaltyHop(player_t *player);
|
||||
boolean K_CheckWaterskipLockout(player_t *player);
|
||||
|
||||
typedef enum
|
||||
{
|
||||
|
|
|
|||
|
|
@ -3443,7 +3443,8 @@ void P_MobjCheckWater(mobj_t *mobj)
|
|||
P_SetScale(splish, mobj->scale);
|
||||
|
||||
// skipping stone!
|
||||
if (p && p->waterskip < 2
|
||||
if (p && K_CheckWaterskipLockout(p)
|
||||
&& p->waterskip < 2
|
||||
&& ((p->speed/3 > abs(mobj->momz)) // Going more forward than horizontal, so you can skip across the water.
|
||||
|| (p->speed > K_GetKartSpeed(p,false,true)/3 && p->waterskip)) // Already skipped once, so you can skip once more!
|
||||
&& ((!(mobj->eflags & MFE_VERTICALFLIP) && thingtop - mobj->momz > mobj->watertop)
|
||||
|
|
|
|||
|
|
@ -619,6 +619,7 @@ extern boolean slopeboostactive;
|
|||
extern boolean draftingactive;
|
||||
extern boolean airdropactive;
|
||||
extern boolean airthrustactive;
|
||||
extern boolean waterskipbricks;
|
||||
extern boolean itemlittering;
|
||||
extern boolean itempushing;
|
||||
extern UINT8 bumpsparkactive;
|
||||
|
|
|
|||
|
|
@ -162,6 +162,7 @@ boolean slopeboostactive;
|
|||
boolean draftingactive;
|
||||
boolean airdropactive;
|
||||
boolean airthrustactive;
|
||||
boolean waterskipbricks;
|
||||
boolean itemlittering;
|
||||
boolean itempushing;
|
||||
UINT8 bumpsparkactive;
|
||||
|
|
@ -8177,6 +8178,7 @@ static void P_InitLevelSettings(boolean reloadinggamestate)
|
|||
draftingactive = false;
|
||||
airdropactive = false;
|
||||
airthrustactive = false;
|
||||
waterskipbricks = false;
|
||||
itemlittering = false;
|
||||
itempushing = false;
|
||||
itemlistactive = false;
|
||||
|
|
@ -8210,6 +8212,9 @@ static void P_InitLevelSettings(boolean reloadinggamestate)
|
|||
if (cv_kartairthrust.value)
|
||||
airthrustactive = true;
|
||||
|
||||
if (cv_kartwaterskiplock.value)
|
||||
waterskipbricks = true;
|
||||
|
||||
if (cv_kartitemlitter.value)
|
||||
itemlittering = true;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue