mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-02-26 15:31:03 +00:00
Battle: use Easing_OutSine to shrink Overtime Barrier
Modifies netsave.
This commit is contained in:
parent
8d2327c5c9
commit
19d9d1e318
3 changed files with 10 additions and 1 deletions
|
|
@ -23,6 +23,7 @@
|
|||
#include "k_rank.h"
|
||||
#include "music.h"
|
||||
#include "hu_stuff.h"
|
||||
#include "m_easing.h"
|
||||
|
||||
#define BARRIER_MIN_RADIUS (768 * mapobjectscale)
|
||||
|
||||
|
|
@ -701,6 +702,7 @@ void K_RunBattleOvertime(void)
|
|||
{
|
||||
S_StartSound(NULL, sfx_kc40);
|
||||
P_StartQuake(5, 64 * mapobjectscale, 0, NULL);
|
||||
battleovertime.start = leveltime;
|
||||
}
|
||||
|
||||
if (!Music_Playing("level") && !Music_Playing("battle_overtime"))
|
||||
|
|
@ -719,7 +721,11 @@ void K_RunBattleOvertime(void)
|
|||
const fixed_t oldradius = battleovertime.radius;
|
||||
|
||||
if (battleovertime.radius > minradius)
|
||||
battleovertime.radius -= (battleovertime.initial_radius / (30*TICRATE));
|
||||
{
|
||||
tic_t t = leveltime - battleovertime.start;
|
||||
const tic_t duration = 30*TICRATE;
|
||||
battleovertime.radius = Easing_OutSine(min(t, duration) * FRACUNIT / duration, battleovertime.initial_radius, minradius);
|
||||
}
|
||||
|
||||
if (battleovertime.radius <= minradius && oldradius > minradius)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ extern struct battleovertime
|
|||
UINT16 enabled; ///< Has this been initalized yet?
|
||||
fixed_t radius; ///< Radius of kill field
|
||||
fixed_t initial_radius; ///< Starting radius of kill field
|
||||
tic_t start; ///< Leveltime to decrease kill field radius from
|
||||
fixed_t x, y, z; ///< Position to center on
|
||||
} battleovertime;
|
||||
|
||||
|
|
|
|||
|
|
@ -6454,6 +6454,7 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending)
|
|||
WRITEUINT16(save->p, battleovertime.enabled);
|
||||
WRITEFIXED(save->p, battleovertime.radius);
|
||||
WRITEFIXED(save->p, battleovertime.initial_radius);
|
||||
WRITEUINT32(save->p, battleovertime.start);
|
||||
WRITEFIXED(save->p, battleovertime.x);
|
||||
WRITEFIXED(save->p, battleovertime.y);
|
||||
WRITEFIXED(save->p, battleovertime.z);
|
||||
|
|
@ -6639,6 +6640,7 @@ static boolean P_NetUnArchiveMisc(savebuffer_t *save, boolean reloading)
|
|||
battleovertime.enabled = READUINT16(save->p);
|
||||
battleovertime.radius = READFIXED(save->p);
|
||||
battleovertime.initial_radius = READFIXED(save->p);
|
||||
battleovertime.start = READUINT32(save->p);
|
||||
battleovertime.x = READFIXED(save->p);
|
||||
battleovertime.y = READFIXED(save->p);
|
||||
battleovertime.z = READFIXED(save->p);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue