mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2026-04-27 12:31:54 +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 "k_rank.h"
|
||||||
#include "music.h"
|
#include "music.h"
|
||||||
#include "hu_stuff.h"
|
#include "hu_stuff.h"
|
||||||
|
#include "m_easing.h"
|
||||||
|
|
||||||
#define BARRIER_MIN_RADIUS (768 * mapobjectscale)
|
#define BARRIER_MIN_RADIUS (768 * mapobjectscale)
|
||||||
|
|
||||||
|
|
@ -701,6 +702,7 @@ void K_RunBattleOvertime(void)
|
||||||
{
|
{
|
||||||
S_StartSound(NULL, sfx_kc40);
|
S_StartSound(NULL, sfx_kc40);
|
||||||
P_StartQuake(5, 64 * mapobjectscale, 0, NULL);
|
P_StartQuake(5, 64 * mapobjectscale, 0, NULL);
|
||||||
|
battleovertime.start = leveltime;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Music_Playing("level") && !Music_Playing("battle_overtime"))
|
if (!Music_Playing("level") && !Music_Playing("battle_overtime"))
|
||||||
|
|
@ -719,7 +721,11 @@ void K_RunBattleOvertime(void)
|
||||||
const fixed_t oldradius = battleovertime.radius;
|
const fixed_t oldradius = battleovertime.radius;
|
||||||
|
|
||||||
if (battleovertime.radius > minradius)
|
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)
|
if (battleovertime.radius <= minradius && oldradius > minradius)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,7 @@ extern struct battleovertime
|
||||||
UINT16 enabled; ///< Has this been initalized yet?
|
UINT16 enabled; ///< Has this been initalized yet?
|
||||||
fixed_t radius; ///< Radius of kill field
|
fixed_t radius; ///< Radius of kill field
|
||||||
fixed_t initial_radius; ///< Starting 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
|
fixed_t x, y, z; ///< Position to center on
|
||||||
} battleovertime;
|
} battleovertime;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6454,6 +6454,7 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending)
|
||||||
WRITEUINT16(save->p, battleovertime.enabled);
|
WRITEUINT16(save->p, battleovertime.enabled);
|
||||||
WRITEFIXED(save->p, battleovertime.radius);
|
WRITEFIXED(save->p, battleovertime.radius);
|
||||||
WRITEFIXED(save->p, battleovertime.initial_radius);
|
WRITEFIXED(save->p, battleovertime.initial_radius);
|
||||||
|
WRITEUINT32(save->p, battleovertime.start);
|
||||||
WRITEFIXED(save->p, battleovertime.x);
|
WRITEFIXED(save->p, battleovertime.x);
|
||||||
WRITEFIXED(save->p, battleovertime.y);
|
WRITEFIXED(save->p, battleovertime.y);
|
||||||
WRITEFIXED(save->p, battleovertime.z);
|
WRITEFIXED(save->p, battleovertime.z);
|
||||||
|
|
@ -6639,6 +6640,7 @@ static boolean P_NetUnArchiveMisc(savebuffer_t *save, boolean reloading)
|
||||||
battleovertime.enabled = READUINT16(save->p);
|
battleovertime.enabled = READUINT16(save->p);
|
||||||
battleovertime.radius = READFIXED(save->p);
|
battleovertime.radius = READFIXED(save->p);
|
||||||
battleovertime.initial_radius = READFIXED(save->p);
|
battleovertime.initial_radius = READFIXED(save->p);
|
||||||
|
battleovertime.start = READUINT32(save->p);
|
||||||
battleovertime.x = READFIXED(save->p);
|
battleovertime.x = READFIXED(save->p);
|
||||||
battleovertime.y = READFIXED(save->p);
|
battleovertime.y = READFIXED(save->p);
|
||||||
battleovertime.z = READFIXED(save->p);
|
battleovertime.z = READFIXED(save->p);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue