diff --git a/src/doomstat.h b/src/doomstat.h index 6c8bc76db..e6e1bc190 100644 --- a/src/doomstat.h +++ b/src/doomstat.h @@ -742,7 +742,6 @@ extern INT32 greasetics; extern INT32 wipeoutslowtime; extern INT32 wantedreduce; extern INT32 wantedfrequency; -extern INT32 flameseg; extern UINT8 introtoplay; extern UINT8 creditscutscene; diff --git a/src/g_game.c b/src/g_game.c index 4a995e55e..1de396135 100644 --- a/src/g_game.c +++ b/src/g_game.c @@ -254,7 +254,6 @@ INT32 greasetics = 3*TICRATE; INT32 wipeoutslowtime = 20; INT32 wantedreduce = 5*TICRATE; INT32 wantedfrequency = 10*TICRATE; -INT32 flameseg = TICRATE/4; UINT8 use1upSound = 0; UINT8 maxXtraLife = 2; // Max extra lives from rings diff --git a/src/k_botitem.c b/src/k_botitem.c index 55dc3f0eb..72da58a5e 100644 --- a/src/k_botitem.c +++ b/src/k_botitem.c @@ -1247,7 +1247,7 @@ static void K_BotItemFlame(player_t *player, ticcmd_t *cmd) } else if (player->pflags & PF_HOLDREADY) { - INT32 flamemax = player->flamelength * flameseg; + INT32 flamemax = player->flamelength; if (player->flamemeter < flamemax || flamemax == 0) { diff --git a/src/k_hud.c b/src/k_hud.c index 6c3a1d283..02e6c3b74 100644 --- a/src/k_hud.c +++ b/src/k_hud.c @@ -163,8 +163,8 @@ static patch_t *kp_typdot; static patch_t *kp_eggnum[6]; -static patch_t *kp_flameshieldmeter[104][2]; -static patch_t *kp_flameshieldmeter_bg[16][2]; +static patch_t *kp_flameshieldmeter[FLAMESHIELD_MAX][2]; +static patch_t *kp_flameshieldmeter_bg[FLAMESHIELD_MAX][2]; static patch_t *kp_fpview[3]; static patch_t *kp_inputwheel[5]; @@ -502,7 +502,7 @@ void K_LoadKartHUDGraphics(void) HU_UpdatePatch(&kp_jackpot[0], "K_RBJACK"); sprintf(buffer, "FSMFGxxx"); - for (i = 0; i < 104; i++) + for (i = 0; i < FLAMESHIELD_MAX; i++) { buffer[5] = '0'+((i+1)/100); buffer[6] = '0'+(((i+1)/10)%10); @@ -510,10 +510,11 @@ void K_LoadKartHUDGraphics(void) HU_UpdatePatch(&kp_flameshieldmeter[i][0], "%s", buffer); } - sprintf(buffer, "FSMBG0xx"); - for (i = 0; i < 16; i++) + sprintf(buffer, "FSMBGxxx"); + for (i = 0; i < FLAMESHIELD_MAX; i++) { - buffer[6] = '0'+((i+1)/10); + buffer[5] = '0'+((i+1)/100); + buffer[6] = '0'+(((i+1)/10)%10); buffer[7] = '0'+((i+1)%10); HU_UpdatePatch(&kp_flameshieldmeter_bg[i][0], "%s", buffer); } @@ -561,7 +562,7 @@ void K_LoadKartHUDGraphics(void) HU_UpdatePatch(&kp_jackpot[1], "K_SBJACK"); sprintf(buffer, "FSMFSxxx"); - for (i = 0; i < 104; i++) + for (i = 0; i < 120; i++) { buffer[5] = '0'+((i+1)/100); buffer[6] = '0'+(((i+1)/10)%10); @@ -570,9 +571,10 @@ void K_LoadKartHUDGraphics(void) } sprintf(buffer, "FSMBS0xx"); - for (i = 0; i < 16; i++) + for (i = 0; i < 120; i++) { - buffer[6] = '0'+((i+1)/10); + buffer[5] = '0'+((i+1)/100); + buffer[6] = '0'+(((i+1)/10)%10); buffer[7] = '0'+((i+1)%10); HU_UpdatePatch(&kp_flameshieldmeter_bg[i][1], "%s", buffer); } @@ -1534,14 +1536,13 @@ static void K_drawKartItem(void) if (stplyr->itemtype == KITEM_FLAMESHIELD && stplyr->flamelength > 0) { - INT32 numframes = 104; - INT32 absolutemax = 16 * flameseg; - INT32 flamemax = stplyr->flamelength * flameseg; + INT32 numframes = FLAMESHIELD_MAX; + INT32 absolutemax = numframes; + INT32 flamemax = stplyr->flamelength; INT32 flamemeter = min(stplyr->flamemeter, flamemax); - INT32 bf = 16 - stplyr->flamelength; + INT32 bf = numframes - stplyr->flamelength; INT32 ff = numframes - ((flamemeter * numframes) / absolutemax); - INT32 fmin = (8 * (bf-1)); INT32 xo = 6, yo = 4; INT32 flip = 0; @@ -1557,10 +1558,13 @@ static void K_drawKartItem(void) } } + /* + INT32 fmin = (8 * (bf-1)); if (ff < fmin) ff = fmin; + */ - if (bf >= 0 && bf < 16) + if (bf >= 0 && bf < numframes) V_DrawScaledPatch(fx-xo, fy-yo, V_HUDTRANS|V_SLIDEIN|fflags|flip, kp_flameshieldmeter_bg[bf][offset]); if (ff >= 0 && ff < numframes && stplyr->flamemeter > 0) diff --git a/src/k_kart.c b/src/k_kart.c index 9f24aea77..1eb99fec2 100644 --- a/src/k_kart.c +++ b/src/k_kart.c @@ -9958,6 +9958,7 @@ static INT32 K_FlameShieldMax(player_t *player) { UINT32 disttofinish = 0; UINT32 distv = 2048; + distv = distv * 16 / FLAMESHIELD_MAX; // Old distv was based on a 16-segment bar UINT8 numplayers = 0; UINT8 i; @@ -9974,7 +9975,7 @@ static INT32 K_FlameShieldMax(player_t *player) if (numplayers <= 1) { - return 16; // max when alone, for testing + return FLAMESHIELD_MAX; // max when alone, for testing // and when in battle, for chaos } else if (player->position == 1) @@ -9984,7 +9985,7 @@ static INT32 K_FlameShieldMax(player_t *player) disttofinish = player->distancetofinish - disttofinish; distv = FixedMul(distv, mapobjectscale); - return min(16, 1 + (disttofinish / distv)); + return min(FLAMESHIELD_MAX, (FLAMESHIELD_MAX / 16) + (disttofinish / distv)); // Ditto for this minimum, old value was 1/16 } boolean K_PlayerEBrake(player_t *player) @@ -11392,7 +11393,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) if (player->flamelength < destlen) player->flamelength++; // Can always go up! - flamemax = player->flamelength * flameseg; + flamemax = player->flamelength; if (flamemax > 0) flamemax += TICRATE; // leniency period @@ -11444,7 +11445,7 @@ void K_MoveKartPlayer(player_t *player, boolean onground) { player->flamelength--; // Can ONLY go down if you're not using it - flamemax = player->flamelength * flameseg; + flamemax = player->flamelength; if (flamemax > 0) flamemax += TICRATE; // leniency period } diff --git a/src/k_kart.h b/src/k_kart.h index 2f8eca77a..8d1d6c496 100644 --- a/src/k_kart.h +++ b/src/k_kart.h @@ -35,6 +35,8 @@ Make sure this matches the actual number of states #define INSTAWHIP_DROPGUARD (12) #define GUARDBREAK_COOLDOWN (TICRATE*4) +#define FLAMESHIELD_MAX (120) + #define RR_PROJECTILE_FUSE (8*TICRATE) #define STUMBLE_STEEP_VAL ANG60 diff --git a/src/p_mobj.c b/src/p_mobj.c index 73411696a..a70c6e108 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -8322,7 +8322,7 @@ static boolean P_MobjRegularThink(mobj_t *mobj) return false; } - flamemax = mobj->target->player->flamelength * flameseg; + flamemax = mobj->target->player->flamelength; P_SetScale(mobj, (mobj->destscale = (5*mobj->target->scale)>>2));