mirror of
https://git.do.srb2.org/KartKrew/Kart-Public.git
synced 2025-01-13 13:21:31 +00:00
Be more consistent with how we lock kartspeed/kartweight
- The skin values are now locked between 1 and 9. - kartspeed & kartweight are no longer locked on skin-switch. Combined with the above, this results in no gameplay change, other than the character select showing the proper value. - Values used for the engine sounds are locked. No longer can overflow into character voices or freeslotted sounds. - Removed the overzealous weight locking when in offroad. If we want to ACTUALLY lock speed/weight for Lua too then we should do that in the Lua stuff.
This commit is contained in:
parent
9a4ebb916a
commit
b03d87c80a
2 changed files with 24 additions and 14 deletions
16
src/k_kart.c
16
src/k_kart.c
|
@ -1257,8 +1257,6 @@ static void K_UpdateOffroad(player_t *player)
|
||||||
|
|
||||||
if (player->kartstuff[k_offroad] > 0)
|
if (player->kartstuff[k_offroad] > 0)
|
||||||
{
|
{
|
||||||
if (kartweight < 1) { kartweight = 1; } if (kartweight > 9) { kartweight = 9; } // Safety Net
|
|
||||||
|
|
||||||
// 1872 is the magic number - 35 frames adds up to approximately 65536. 1872/4 = 468/3 = 156
|
// 1872 is the magic number - 35 frames adds up to approximately 65536. 1872/4 = 468/3 = 156
|
||||||
// A higher kart weight means you can stay offroad for longer without losing speed
|
// A higher kart weight means you can stay offroad for longer without losing speed
|
||||||
offroad = (1872 + 5*156 - kartweight*156)*offroadstrength;
|
offroad = (1872 + 5*156 - kartweight*156)*offroadstrength;
|
||||||
|
@ -3871,12 +3869,24 @@ player_t *K_FindJawzTarget(mobj_t *actor, player_t *source)
|
||||||
static void K_UpdateEngineSounds(player_t *player, ticcmd_t *cmd)
|
static void K_UpdateEngineSounds(player_t *player, ticcmd_t *cmd)
|
||||||
{
|
{
|
||||||
const INT32 numsnds = 13;
|
const INT32 numsnds = 13;
|
||||||
INT32 class = ((player->kartspeed-1)/3) + (3*((player->kartweight-1)/3)); // engine class number
|
INT32 class, s, w; // engine class number
|
||||||
UINT8 volume = 255;
|
UINT8 volume = 255;
|
||||||
fixed_t volumedampen = 0;
|
fixed_t volumedampen = 0;
|
||||||
INT32 targetsnd = 0;
|
INT32 targetsnd = 0;
|
||||||
INT32 i;
|
INT32 i;
|
||||||
|
|
||||||
|
s = (player->kartspeed-1)/3;
|
||||||
|
w = (player->kartweight-1)/3;
|
||||||
|
|
||||||
|
#define LOCKSTAT(stat) \
|
||||||
|
if (stat < 0) { stat = 0; } \
|
||||||
|
if (stat > 2) { stat = 2; }
|
||||||
|
LOCKSTAT(s);
|
||||||
|
LOCKSTAT(w);
|
||||||
|
#undef LOCKSTAT
|
||||||
|
|
||||||
|
class = s+(3*w);
|
||||||
|
|
||||||
// Silence the engines
|
// Silence the engines
|
||||||
if (leveltime < 8 || player->spectator || player->exiting)
|
if (leveltime < 8 || player->spectator || player->exiting)
|
||||||
{
|
{
|
||||||
|
|
|
@ -2680,13 +2680,6 @@ void SetPlayerSkinByNum(INT32 playernum, INT32 skinnum)
|
||||||
// SRB2kart
|
// SRB2kart
|
||||||
player->kartspeed = skin->kartspeed;
|
player->kartspeed = skin->kartspeed;
|
||||||
player->kartweight = skin->kartweight;
|
player->kartweight = skin->kartweight;
|
||||||
|
|
||||||
// Cheat Checks
|
|
||||||
if (player->kartspeed < 1) player->kartspeed = 1;
|
|
||||||
if (player->kartspeed > 9) player->kartspeed = 9;
|
|
||||||
if (player->kartweight < 1) player->kartweight = 1;
|
|
||||||
if (player->kartweight > 9) player->kartweight = 9;
|
|
||||||
//
|
|
||||||
|
|
||||||
player->normalspeed = skin->normalspeed;
|
player->normalspeed = skin->normalspeed;
|
||||||
player->runspeed = skin->runspeed;
|
player->runspeed = skin->runspeed;
|
||||||
|
@ -2911,15 +2904,22 @@ void R_AddSkins(UINT16 wadnum)
|
||||||
#undef GETSPEED
|
#undef GETSPEED
|
||||||
|
|
||||||
#define GETINT(field) else if (!stricmp(stoken, #field)) skin->field = atoi(value);
|
#define GETINT(field) else if (!stricmp(stoken, #field)) skin->field = atoi(value);
|
||||||
// SRB2kart
|
|
||||||
GETINT(kartspeed)
|
|
||||||
GETINT(kartweight)
|
|
||||||
//
|
|
||||||
GETINT(thrustfactor)
|
GETINT(thrustfactor)
|
||||||
GETINT(accelstart)
|
GETINT(accelstart)
|
||||||
GETINT(acceleration)
|
GETINT(acceleration)
|
||||||
#undef GETINT
|
#undef GETINT
|
||||||
|
|
||||||
|
#define GETKARTSTAT(field) \
|
||||||
|
else if (!stricmp(stoken, #field)) \
|
||||||
|
{ \
|
||||||
|
skin->field = atoi(value); \
|
||||||
|
if (skin->field < 1) skin->field = 1; \
|
||||||
|
if (skin->field > 9) skin->field = 9; \
|
||||||
|
}
|
||||||
|
GETKARTSTAT(kartspeed)
|
||||||
|
GETKARTSTAT(kartweight)
|
||||||
|
#undef GETKARTSTAT
|
||||||
|
|
||||||
// custom translation table
|
// custom translation table
|
||||||
else if (!stricmp(stoken, "startcolor"))
|
else if (!stricmp(stoken, "startcolor"))
|
||||||
skin->starttranscolor = atoi(value);
|
skin->starttranscolor = atoi(value);
|
||||||
|
|
Loading…
Reference in a new issue