mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
Replace darktimer/darkness with g_darkness
Modifies netsave. - Instead of setting a timer, set a start time and end time - Interpolated darkness value itself doesn't need to be netsynced
This commit is contained in:
parent
a759626335
commit
8430489673
9 changed files with 33 additions and 25 deletions
|
|
@ -803,8 +803,12 @@ struct exitcondition_t
|
|||
extern tic_t racecountdown, exitcountdown, musiccountdown;
|
||||
extern exitcondition_t g_exit;
|
||||
|
||||
extern tic_t darktimer;
|
||||
extern fixed_t darkness;
|
||||
#define DARKNESS_FADE_TIME (8)
|
||||
extern struct darkness_t
|
||||
{
|
||||
tic_t start, end;
|
||||
fixed_t value;
|
||||
} g_darkness;
|
||||
|
||||
#define DEFAULT_GRAVITY (4*FRACUNIT/5)
|
||||
extern fixed_t gravity;
|
||||
|
|
|
|||
|
|
@ -277,8 +277,7 @@ UINT8 useSeal = 1;
|
|||
tic_t racecountdown, exitcountdown, musiccountdown; // for racing
|
||||
exitcondition_t g_exit;
|
||||
|
||||
tic_t darktimer;
|
||||
fixed_t darkness;
|
||||
darkness_t g_darkness;
|
||||
|
||||
fixed_t gravity;
|
||||
fixed_t mapobjectscale;
|
||||
|
|
|
|||
|
|
@ -85,9 +85,6 @@ extern boolean pausebreakkey;
|
|||
|
||||
extern boolean promptactive;
|
||||
|
||||
extern tic_t darktimer;
|
||||
extern fixed_t darkness;
|
||||
|
||||
extern consvar_t cv_tutorialprompt;
|
||||
|
||||
extern consvar_t cv_chatwidth, cv_chatnotifications, cv_chatheight, cv_chattime, cv_consolechat, cv_chatbacktint, cv_chatspamprotection;
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ static void K_SpawnDuelOnlyItems(void)
|
|||
void K_TimerReset(void)
|
||||
{
|
||||
starttime = introtime = 0;
|
||||
darkness = darktimer = 0;
|
||||
memset(&g_darkness, 0, sizeof g_darkness);
|
||||
numbulbs = 1;
|
||||
inDuel = rainbowstartavailable = false;
|
||||
linecrossed = 0;
|
||||
|
|
|
|||
|
|
@ -749,7 +749,8 @@ void Obj_CreateShrinkPohbees(player_t *owner)
|
|||
|
||||
ownerPos = owner->position;
|
||||
|
||||
darktimer = POHBEE_TIME;
|
||||
g_darkness.start = leveltime;
|
||||
g_darkness.end = leveltime + POHBEE_TIME + DARKNESS_FADE_TIME;
|
||||
|
||||
for (i = 0; i < MAXPLAYERS; i++)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -6477,8 +6477,8 @@ static void P_NetArchiveMisc(savebuffer_t *save, boolean resending)
|
|||
|
||||
WRITEUINT32(save->p, g_pointlimit);
|
||||
|
||||
WRITEUINT32(save->p, darktimer);
|
||||
WRITEFIXED(save->p, darkness);
|
||||
WRITEUINT32(save->p, g_darkness.start);
|
||||
WRITEUINT32(save->p, g_darkness.end);
|
||||
|
||||
WRITEUINT16(save->p, numchallengedestructibles);
|
||||
|
||||
|
|
@ -6662,8 +6662,8 @@ static boolean P_NetUnArchiveMisc(savebuffer_t *save, boolean reloading)
|
|||
|
||||
g_pointlimit = READUINT32(save->p);
|
||||
|
||||
darktimer = READUINT32(save->p);
|
||||
darkness = READFIXED(save->p);
|
||||
g_darkness.start = READUINT32(save->p);
|
||||
g_darkness.end = READUINT32(save->p);
|
||||
|
||||
numchallengedestructibles = READUINT16(save->p);
|
||||
|
||||
|
|
|
|||
28
src/p_tick.c
28
src/p_tick.c
|
|
@ -46,6 +46,7 @@
|
|||
#include "k_objects.h"
|
||||
#include "music.h"
|
||||
#include "k_dialogue.h"
|
||||
#include "m_easing.h"
|
||||
|
||||
#include "lua_profile.h"
|
||||
|
||||
|
|
@ -1045,21 +1046,26 @@ void P_Ticker(boolean run)
|
|||
if (racecountdown > 1)
|
||||
racecountdown--;
|
||||
|
||||
const fixed_t darkdelta = FRACUNIT/50;
|
||||
const fixed_t maxdark = FRACUNIT/7;
|
||||
if (darktimer) // dark or darkening
|
||||
if (leveltime <= g_darkness.end)
|
||||
{
|
||||
darktimer--;
|
||||
darkness += darkdelta;
|
||||
darkness = min(darkness, maxdark);
|
||||
}
|
||||
else if (darkness >= darkdelta) // lightening
|
||||
{
|
||||
darkness -= darkdelta;
|
||||
tic_t fade = g_darkness.end - DARKNESS_FADE_TIME;
|
||||
tic_t t;
|
||||
|
||||
if (leveltime < fade) // dark or darkening
|
||||
{
|
||||
t = leveltime - g_darkness.start;
|
||||
t = min(t, DARKNESS_FADE_TIME);
|
||||
}
|
||||
else // lightening
|
||||
{
|
||||
t = g_darkness.end - leveltime;
|
||||
}
|
||||
|
||||
g_darkness.value = Easing_Linear((t * FRACUNIT) / DARKNESS_FADE_TIME, 0, FRACUNIT/7);
|
||||
}
|
||||
else // light
|
||||
{
|
||||
darkness = 0;
|
||||
g_darkness.value = 0;
|
||||
}
|
||||
|
||||
if (exitcountdown >= 1)
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ INT32 R_AdjustLightLevel(INT32 light)
|
|||
|
||||
if (!debugrender_highlight && cv_debugrender_contrast.value == 0)
|
||||
{
|
||||
const fixed_t darken = FixedMul(FixedMul(darkness, mapheaderinfo[gamemap-1]->darkness), kRange);
|
||||
const fixed_t darken = FixedMul(FixedMul(g_darkness.value, mapheaderinfo[gamemap-1]->darkness), kRange);
|
||||
return std::clamp((light * FRACUNIT) - darken, 0, kRange) / FRACUNIT;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -141,6 +141,7 @@ TYPEDEF (tolinfo_t);
|
|||
TYPEDEF (cupheader_t);
|
||||
TYPEDEF (unloaded_cupheader_t);
|
||||
TYPEDEF (exitcondition_t);
|
||||
TYPEDEF (darkness_t);
|
||||
|
||||
// font.h
|
||||
TYPEDEF (font_t);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue