mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-27 20:20:40 +00:00
- Duke: Migrate away from using totalclock
and use new game-specific gameclock
with underlying timer code in common.
* Build timer still requires initialisation due to multiple `timerSetCallback()` that still need to work. # Conflicts: # source/core/menu/menu.cpp # source/games/duke/src/game.cpp
This commit is contained in:
parent
ab06235971
commit
afb09456e0
25 changed files with 104 additions and 96 deletions
|
@ -69,6 +69,11 @@ static int NSToTic(uint64_t ns)
|
|||
return static_cast<int>(ns * GameTicRate / 1'000'000'000);
|
||||
}
|
||||
|
||||
static int NSToBuildTic(uint64_t ns)
|
||||
{
|
||||
return static_cast<int>(ns * 120 / 1'000'000'000);
|
||||
}
|
||||
|
||||
static uint64_t TicToNS(int tic)
|
||||
{
|
||||
return static_cast<uint64_t>(tic) * 1'000'000'000 / GameTicRate;
|
||||
|
@ -160,6 +165,11 @@ int I_GetTime()
|
|||
return NSToTic(CurrentFrameStartTime - FirstFrameStartTime);
|
||||
}
|
||||
|
||||
int I_GetBuildTime()
|
||||
{
|
||||
return NSToBuildTic(CurrentFrameStartTime - FirstFrameStartTime);
|
||||
}
|
||||
|
||||
double I_GetTimeFrac()
|
||||
{
|
||||
int currentTic = NSToTic(CurrentFrameStartTime - FirstFrameStartTime);
|
||||
|
|
|
@ -12,6 +12,9 @@ int I_GetTime();
|
|||
// same, but using nanoseconds
|
||||
uint64_t I_GetTimeNS();
|
||||
|
||||
// Called by Build games in liew of totalclock, returns current time in tics at ticrate of 120.
|
||||
int I_GetBuildTime();
|
||||
|
||||
double I_GetTimeFrac();
|
||||
|
||||
// like I_GetTime, except it waits for a new tic before returning
|
||||
|
|
|
@ -153,7 +153,7 @@ void animatesprites_d(int x,int y,int a,int smoothratio)
|
|||
case SECTOREFFECTOR:
|
||||
if(t->lotag == 27 && ud.recstat == 1)
|
||||
{
|
||||
t->picnum = 11+(((int)totalclock>>3)&1);
|
||||
t->picnum = 11+((gameclock>>3)&1);
|
||||
t->cstat |= 128;
|
||||
}
|
||||
else
|
||||
|
@ -250,7 +250,7 @@ void animatesprites_d(int x,int y,int a,int smoothratio)
|
|||
t->z -= (4<<8);
|
||||
break;
|
||||
case CRYSTALAMMO:
|
||||
t->shade = (sintable[((int)totalclock<<4)&2047]>>10);
|
||||
t->shade = (sintable[(gameclock<<4)&2047]>>10);
|
||||
continue;
|
||||
case VIEWSCREEN:
|
||||
case VIEWSCREEN2:
|
||||
|
@ -268,10 +268,10 @@ void animatesprites_d(int x,int y,int a,int smoothratio)
|
|||
break;
|
||||
|
||||
case SHRINKSPARK:
|
||||
t->picnum = SHRINKSPARK+( ((int)totalclock>>4)&3 );
|
||||
t->picnum = SHRINKSPARK+( (gameclock>>4)&3 );
|
||||
break;
|
||||
case GROWSPARK:
|
||||
t->picnum = GROWSPARK+( ((int)totalclock>>4)&3 );
|
||||
t->picnum = GROWSPARK+( (gameclock>>4)&3 );
|
||||
break;
|
||||
case RPG:
|
||||
/*if (bpp > 8 && usemodels && md_tilehasmodel(s->picnum) >= 0) {
|
||||
|
@ -646,7 +646,7 @@ void animatesprites_d(int x,int y,int a,int smoothratio)
|
|||
if(t->picnum == EXPLOSION2)
|
||||
{
|
||||
ps[screenpeek].visibility = -127;
|
||||
lastvisinc = (int)totalclock+32;
|
||||
lastvisinc = gameclock+32;
|
||||
}
|
||||
t->shade = -127;
|
||||
break;
|
||||
|
|
|
@ -142,7 +142,7 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
case SECTOREFFECTOR:
|
||||
if (t->lotag == 27 && ud.recstat == 1)
|
||||
{
|
||||
t->picnum = 11 + (((int)totalclock >> 3) & 1);
|
||||
t->picnum = 11 + ((gameclock >> 3) & 1);
|
||||
t->cstat |= 128;
|
||||
}
|
||||
else
|
||||
|
@ -180,7 +180,7 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
case RESPAWNMARKERRED:
|
||||
case RESPAWNMARKERYELLOW:
|
||||
case RESPAWNMARKERGREEN:
|
||||
t->picnum = 861+( ((int)totalclock>>4) & 13);
|
||||
t->picnum = 861+( (gameclock>>4) & 13);
|
||||
if (s->picnum == RESPAWNMARKERRED)
|
||||
t->pal = 0;
|
||||
else if (s->picnum == RESPAWNMARKERYELLOW)
|
||||
|
@ -247,21 +247,21 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
t->z -= (4<<8);
|
||||
break;
|
||||
case CRYSTALAMMO:
|
||||
t->shade = (sintable[((int)totalclock<<4)&2047]>>10);
|
||||
t->shade = (sintable[(gameclock<<4)&2047]>>10);
|
||||
break;
|
||||
case SHRINKSPARK:
|
||||
if ((sprite[s->owner].picnum == CHEER || sprite[s->owner].picnum == CHEERSTAYPUT) && isRRRA())
|
||||
{
|
||||
t->picnum = CHEERBLADE+( ((int)totalclock>>4)&3 );
|
||||
t->picnum = CHEERBLADE+( (gameclock>>4)&3 );
|
||||
t->shade = -127;
|
||||
}
|
||||
else
|
||||
t->picnum = SHRINKSPARK+( ((int)totalclock>>4)&7 );
|
||||
t->picnum = SHRINKSPARK+( (gameclock>>4)&7 );
|
||||
break;
|
||||
case CHEERBOMB:
|
||||
if (isRRRA())
|
||||
{
|
||||
t->picnum = CHEERBOMB + (((int)totalclock >> 4) & 3);
|
||||
t->picnum = CHEERBOMB + ((gameclock >> 4) & 3);
|
||||
break;
|
||||
}
|
||||
else goto default_case;
|
||||
|
@ -269,10 +269,10 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
if(isRRRA())
|
||||
{
|
||||
if (sprite[s->owner].picnum == MINION && sprite[s->owner].pal == 8)
|
||||
t->picnum = RRTILE3500 + (((int)totalclock >> 4) % 6);
|
||||
t->picnum = RRTILE3500 + ((gameclock >> 4) % 6);
|
||||
else if (sprite[s->owner].picnum == MINION && sprite[s->owner].pal == 19)
|
||||
{
|
||||
t->picnum = RRTILE5090 + (((int)totalclock >> 4) & 3);
|
||||
t->picnum = RRTILE5090 + ((gameclock >> 4) & 3);
|
||||
t->shade = -127;
|
||||
}
|
||||
else if (sprite[s->owner].picnum == MAMA)
|
||||
|
@ -288,10 +288,10 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
t->picnum = RRTILE7274 + k;
|
||||
}
|
||||
else
|
||||
t->picnum = SPIT + (((int)totalclock >> 4) & 3);
|
||||
t->picnum = SPIT + ((gameclock >> 4) & 3);
|
||||
}
|
||||
else
|
||||
t->picnum = SPIT + (((int)totalclock >> 4) & 3);
|
||||
t->picnum = SPIT + ((gameclock >> 4) & 3);
|
||||
break;
|
||||
case EMPTYBIKE:
|
||||
if (!isRRRA()) goto default_case;
|
||||
|
@ -796,12 +796,12 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
if(t->picnum == EXPLOSION2)
|
||||
{
|
||||
ps[screenpeek].visibility = -127;
|
||||
lastvisinc = (int)totalclock+32;
|
||||
lastvisinc = gameclock+32;
|
||||
t->pal = 0;
|
||||
}
|
||||
else if(t->picnum == FIRELASER)
|
||||
{
|
||||
t->picnum = FIRELASER+(((int)totalclock>>2)&5);
|
||||
t->picnum = FIRELASER+((gameclock>>2)&5);
|
||||
}
|
||||
t->shade = -127;
|
||||
break;
|
||||
|
@ -897,11 +897,11 @@ void animatesprites_r(int x,int y,int a,int smoothratio)
|
|||
t->shade = -127;
|
||||
break;
|
||||
case RRTILE2034:
|
||||
t->picnum = RRTILE2034+((int)totalclock&1);
|
||||
t->picnum = RRTILE2034+(gameclock&1);
|
||||
break;
|
||||
case RRTILE2944:
|
||||
t->shade = -127;
|
||||
t->picnum = RRTILE2944+(((int)totalclock>>2)&4);
|
||||
t->picnum = RRTILE2944+((gameclock>>2)&4);
|
||||
break;
|
||||
case PLAYERONWATER:
|
||||
|
||||
|
|
|
@ -228,7 +228,7 @@ static bool cheatView(cheatseq_t *)
|
|||
{
|
||||
ps[myconnectindex].over_shoulder_on = 1;
|
||||
cameradist = 0;
|
||||
cameraclock = (int)totalclock;
|
||||
cameraclock = gameclock;
|
||||
}
|
||||
//FTA(22,&ps[myconnectindex]); this message makes no sense.
|
||||
}
|
||||
|
|
|
@ -67,9 +67,9 @@ static void Menu_DrawCursor(double x, double y, double scale, bool right)
|
|||
{
|
||||
const int frames = isRR() ? 16 : 7;
|
||||
int picnum;
|
||||
if (!right) picnum = TILE_SPINNINGNUKEICON + (((int)totalclock >> 3) % frames);
|
||||
else picnum = TILE_SPINNINGNUKEICON + frames - 1 - ((frames - 1 + ((int)totalclock >> 3)) % frames);
|
||||
int light = int(224 + 31 * sin((int)totalclock / 20.));
|
||||
if (!right) picnum = TILE_SPINNINGNUKEICON + ((gameclock >> 3) % frames);
|
||||
else picnum = TILE_SPINNINGNUKEICON + frames - 1 - ((frames - 1 + (gameclock >> 3)) % frames);
|
||||
int light = int(224 + 31 * sin(gameclock / 20.));
|
||||
PalEntry pe(255, light, light, light);
|
||||
DrawTexture(twod, tileGetTexture(picnum), x, y, DTA_FullscreenScale, FSMode_Fit320x200, DTA_ScaleX, scale, DTA_ScaleY, scale, DTA_Color, pe, DTA_CenterOffsetRel, true, TAG_DONE);
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ class DukeMainMenu : public DukeListMenu
|
|||
DrawTexture(twod, tileGetTexture(TILE_INGAMEDUKETHREEDEE), x, origin.Y + 29, DTA_FullscreenScale, FSMode_Fit320x200Top, DTA_CenterOffsetRel, true, TAG_DONE);
|
||||
if (PLUTOPAK)
|
||||
{
|
||||
int light = 224 + 31 * sin(int(totalclock) / 40.);
|
||||
int light = 224 + 31 * sin(gameclock / 40.);
|
||||
PalEntry pe(255, light, light, light);
|
||||
DrawTexture(twod, tileGetTexture(TILE_PLUTOPAKSPRITE + 2), x + 100, origin.Y + 36, DTA_FullscreenScale, FSMode_Fit320x200Top, DTA_Color, pe, DTA_CenterOffsetRel, true, TAG_DONE);
|
||||
}
|
||||
|
@ -186,7 +186,7 @@ void GameInterface::DrawNativeMenuText(int fontnum, int state, double oxpos, dou
|
|||
else if (state == NIT_SelectedState)
|
||||
{
|
||||
trans = 0;
|
||||
int light = 224 + 31 * sin(int(totalclock) / 20.);
|
||||
int light = 224 + 31 * sin(gameclock / 20.);
|
||||
pe = PalEntry(255, light, light, light);
|
||||
}
|
||||
else
|
||||
|
@ -219,7 +219,7 @@ void GameInterface::MenuOpened()
|
|||
if (ud.multimode < 2)
|
||||
{
|
||||
ready2send = 0;
|
||||
totalclock = ototalclock;
|
||||
//I_FreezeTime(true);
|
||||
screenpeek = myconnectindex;
|
||||
}
|
||||
}
|
||||
|
@ -261,8 +261,8 @@ void GameInterface::MenuClosed()
|
|||
if (ud.multimode < 2 && ud.recstat != 2)
|
||||
{
|
||||
ready2send = 1;
|
||||
totalclock = ototalclock;
|
||||
cameraclock = (int32_t)totalclock;
|
||||
//I_FreezeTime(false);
|
||||
cameraclock = gameclock;
|
||||
cameradist = 65536;
|
||||
}
|
||||
}
|
||||
|
@ -347,7 +347,7 @@ static int GetPlayerColor(int color)
|
|||
void GameInterface::DrawPlayerSprite(const DVector2& origin, bool onteam)
|
||||
{
|
||||
int color = TRANSLATION(Translation_Remap, playercolor2lookup(playercolor));
|
||||
int tile = isRR() ? 3845 + 36 - ((((8 - (totalclock >> 4))) & 7) * 5) : 1441 - ((((4 - (totalclock >> 4))) & 3) * 5);
|
||||
int tile = isRR() ? 3845 + 36 - ((((8 - (gameclock >> 4))) & 7) * 5) : 1441 - ((((4 - (gameclock >> 4))) & 3) * 5);
|
||||
auto tex = tileGetTexture(tile);
|
||||
if (!tex) return;
|
||||
double x = origin.X + 260, y = origin.Y + tex->GetDisplayHeight() * (isRR()? 0.25 : 0.5);
|
||||
|
|
|
@ -350,7 +350,7 @@ static void Startup(void)
|
|||
SetDispatcher();
|
||||
S_InitSound();
|
||||
|
||||
timerInit(GameTicRate);
|
||||
timerInit(TICRATE);
|
||||
|
||||
loadcons();
|
||||
fi.initactorflags();
|
||||
|
|
|
@ -149,7 +149,7 @@ void FTA(int q, struct player_struct* p)
|
|||
if (q < 0 || !(p->gm & MODE_GAME))
|
||||
return;
|
||||
|
||||
if (p->ftq != q || (totalclock - p->ftt > TICRATE && q != QUOTE_DEAD))
|
||||
if (p->ftq != q || (gameclock - p->ftt > TICRATE && q != QUOTE_DEAD))
|
||||
{
|
||||
p->ftq = q;
|
||||
auto qu = quoteMgr.GetQuote(q);
|
||||
|
@ -167,7 +167,7 @@ void FTA(int q, struct player_struct* p)
|
|||
}
|
||||
}
|
||||
}
|
||||
p->ftt = totalclock;
|
||||
p->ftt = gameclock;
|
||||
}
|
||||
|
||||
//==========================================================================
|
||||
|
@ -639,7 +639,7 @@ void drawoverheadmap(int cposx, int cposy, int czoom, int cang)
|
|||
{
|
||||
auto& pp = ps[p];
|
||||
if (sprite[pp.i].xvel > 16 && pp.on_ground)
|
||||
i = TILE_APLAYERTOP + (((int)totalclock >> 4) & 3);
|
||||
i = TILE_APLAYERTOP + ((gameclock >> 4) & 3);
|
||||
else
|
||||
i = TILE_APLAYERTOP;
|
||||
|
||||
|
@ -675,16 +675,16 @@ void cameratext(int i)
|
|||
drawitem(TILE_CAMCORNER + 1, 24, 163, true, true);
|
||||
drawitem(TILE_CAMCORNER + 1, 320 - 26, 163, false, true);
|
||||
|
||||
if ((int)totalclock & 16)
|
||||
if (gameclock & 16)
|
||||
drawitem(TILE_CAMLIGHT, 46, 32, false, false);
|
||||
}
|
||||
else
|
||||
{
|
||||
int flipbits = ((int)totalclock << 1) & 48;
|
||||
int flipbits = (gameclock << 1) & 48;
|
||||
|
||||
for (int x = -64; x < 394; x += 64)
|
||||
for (int y = 0; y < 200; y += 64)
|
||||
drawitem(TILE_STATIC, x, y, !!((int)totalclock & 8), !!((int)totalclock & 16));
|
||||
drawitem(TILE_STATIC, x, y, !!(gameclock & 8), !!(gameclock & 16));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1042,7 +1042,7 @@ int ParseState::parse(void)
|
|||
resetweapons(g_p);
|
||||
|
||||
//cameradist = 0;
|
||||
//cameraclock = totalclock;
|
||||
//cameraclock = gameclock;
|
||||
}
|
||||
setpal(&ps[g_p]);
|
||||
break;
|
||||
|
|
|
@ -329,11 +329,13 @@ bool GameTicker()
|
|||
gameupdatetime.Reset();
|
||||
gameupdatetime.Clock();
|
||||
|
||||
int currentTic = I_GetTime();
|
||||
int const currentTic = I_GetTime();
|
||||
gameclock = I_GetBuildTime();
|
||||
|
||||
if (playrunning() && currentTic - lastTic >= 1)
|
||||
{
|
||||
lastTic = currentTic;
|
||||
gameclock = currentTic << 2;
|
||||
|
||||
GetInput();
|
||||
auto const pPlayer = &ps[myconnectindex];
|
||||
|
@ -356,11 +358,10 @@ bool GameTicker()
|
|||
moveloop();
|
||||
}
|
||||
}
|
||||
if (!playrunning())
|
||||
{
|
||||
ototalclock = totalclock - 1;
|
||||
}
|
||||
double const smoothRatio = I_GetTimeFrac() * 65536.;
|
||||
|
||||
//I_FreezeTime(!playrunning());
|
||||
|
||||
double const smoothRatio = playrunning() ? I_GetTimeFrac() * MaxSmoothRatio : MaxSmoothRatio;
|
||||
|
||||
gameupdatetime.Unclock();
|
||||
|
||||
|
@ -414,7 +415,7 @@ void GameInterface::RunGameFrame()
|
|||
default:
|
||||
case GS_STARTUP:
|
||||
totalclock = 0;
|
||||
ototalclock = 0;
|
||||
gameclock = 0;
|
||||
lockclock = 0;
|
||||
|
||||
ps[myconnectindex].ftq = 0;
|
||||
|
|
|
@ -53,7 +53,7 @@ int max_player_health;
|
|||
int max_armour_amount;
|
||||
int lasermode;
|
||||
|
||||
int cameradist = 0, cameraclock = 0;
|
||||
int gameclock = 0, cameradist = 0, cameraclock = 0;
|
||||
int otherp;
|
||||
TileInfo tileinfo[MAXTILES]; // This is not from EDuke32.
|
||||
ActorInfo actorinfo[MAXTILES];
|
||||
|
@ -69,7 +69,6 @@ int gamequit;
|
|||
int playerswhenstarted;
|
||||
int show_shareware;
|
||||
int screenpeek;
|
||||
ClockTicks ototalclock;
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ extern int max_player_health;
|
|||
extern int max_armour_amount;
|
||||
extern int lasermode;
|
||||
|
||||
extern int gameclock;
|
||||
extern int cameraclock;
|
||||
extern int cameradist;
|
||||
extern int otherp; // transient helper, MP only
|
||||
|
@ -56,7 +57,6 @@ extern int gamequit;
|
|||
extern int playerswhenstarted;
|
||||
extern int show_shareware;
|
||||
extern int screenpeek;
|
||||
extern ClockTicks ototalclock;
|
||||
|
||||
// Variables that must be saved
|
||||
extern uint8_t sectorextra[MAXSECTORS]; // these hold fields that were formerly in sprite and sector. Move these back into the base structs!
|
||||
|
|
|
@ -77,7 +77,7 @@ void displaymasks_r(int snum)
|
|||
{
|
||||
int pin = 0;
|
||||
if (!(duke3d_globalflags & DUKE3D_NO_WIDESCREEN_PINNING)) pin = RS_STRETCH;
|
||||
hud_drawsprite((320 - (tilesiz[SCUBAMASK].x >> 1) - 15), (200 - (tilesiz[SCUBAMASK].y >> 1) + (calcSinTableValue(totalclock) / 1024.)), 49152, 0, SCUBAMASK, 0, p, 2 + 16 + pin);
|
||||
hud_drawsprite((320 - (tilesiz[SCUBAMASK].x >> 1) - 15), (200 - (tilesiz[SCUBAMASK].y >> 1) + (calcSinTableValue(gameclock) / 1024.)), 49152, 0, SCUBAMASK, 0, p, 2 + 16 + pin);
|
||||
hud_drawsprite((320 - tilesiz[SCUBAMASK + 4].x), (200 - tilesiz[SCUBAMASK + 4].y), 65536, 0, SCUBAMASK + 4, 0, p, 2 + 16 + pin);
|
||||
hud_drawsprite(tilesiz[SCUBAMASK + 4].x, (200 - tilesiz[SCUBAMASK + 4].y), 65536, 0, SCUBAMASK + 4, 0, p, 2 + 4 + 16 + pin);
|
||||
hud_drawsprite(35, (-1), 65536, 0, SCUBAMASK + 3, 0, p, 2 + 16 + pin);
|
||||
|
|
|
@ -104,7 +104,7 @@ void nonsharedkeys(void)
|
|||
{
|
||||
ps[myconnectindex].over_shoulder_on = 1;
|
||||
cameradist = 0;
|
||||
cameraclock = (int)totalclock;
|
||||
cameraclock = gameclock;
|
||||
}
|
||||
FTA(QUOTE_VIEW_MODE_OFF + ps[myconnectindex].over_shoulder_on, &ps[myconnectindex]);
|
||||
}
|
||||
|
@ -113,15 +113,15 @@ void nonsharedkeys(void)
|
|||
if (automapMode != am_off)
|
||||
{
|
||||
int j;
|
||||
if (nonsharedtimer > 0 || totalclock < nonsharedtimer)
|
||||
if (nonsharedtimer > 0 || gameclock < nonsharedtimer)
|
||||
{
|
||||
j = (int)totalclock - nonsharedtimer;
|
||||
j = gameclock - nonsharedtimer;
|
||||
nonsharedtimer += j;
|
||||
}
|
||||
else
|
||||
{
|
||||
j = 0;
|
||||
nonsharedtimer = (int)totalclock;
|
||||
nonsharedtimer = gameclock;
|
||||
}
|
||||
|
||||
if (buttonMap.ButtonDown(gamefunc_Enlarge_Screen))
|
||||
|
@ -712,8 +712,8 @@ static void checkCrouchToggle(player_struct* p)
|
|||
|
||||
int getticssincelastupdate()
|
||||
{
|
||||
int tics = lastcontroltime == 0 || (int)totalclock < lastcontroltime ? 0 : (int)totalclock - lastcontroltime;
|
||||
lastcontroltime = (int)totalclock;
|
||||
int tics = lastcontroltime == 0 || gameclock < lastcontroltime ? 0 : gameclock - lastcontroltime;
|
||||
lastcontroltime = gameclock;
|
||||
return tics;
|
||||
}
|
||||
|
||||
|
|
|
@ -1265,8 +1265,8 @@ bool view(struct player_struct* pp, int* vx, int* vy, int* vz, short* vsectnum,
|
|||
*vy = (*vy) + mulscale16(ny, cameradist);
|
||||
*vz = (*vz) + mulscale16(nz, cameradist);
|
||||
|
||||
cameradist = min(cameradist + (((int)totalclock - cameraclock) << 10), 65536);
|
||||
cameraclock = (int)totalclock;
|
||||
cameradist = min(cameradist + ((gameclock - cameraclock) << 10), 65536);
|
||||
cameraclock = gameclock;
|
||||
|
||||
updatesectorz(*vx, *vy, *vz, vsectnum);
|
||||
|
||||
|
|
|
@ -1485,7 +1485,7 @@ int doincrements_d(struct player_struct* p)
|
|||
p->knuckle_incs++;
|
||||
if (p->knuckle_incs == 10 && !isWW2GI())
|
||||
{
|
||||
if ((int)totalclock > 1024)
|
||||
if (gameclock > 1024)
|
||||
if (snum == screenpeek || ud.coop == 1)
|
||||
{
|
||||
if (rand() & 1)
|
||||
|
@ -2162,7 +2162,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
{
|
||||
fi.shoot(pi, SHOTSPARK1);
|
||||
S_PlayActorSound(PISTOL_FIRE, pi);
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
}
|
||||
|
||||
|
@ -2221,7 +2221,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
|
||||
S_PlayActorSound(SHOTGUN_FIRE, pi);
|
||||
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
|
||||
}
|
||||
|
@ -2274,7 +2274,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
|
||||
S_PlayActorSound(CHAINGUN_FIRE, pi);
|
||||
fi.shoot(pi, CHAINGUN);
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
checkavailweapon(p);
|
||||
|
||||
|
@ -2325,7 +2325,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
{
|
||||
// make them visible if not set...
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
}
|
||||
checkavailweapon(p);
|
||||
//#endif
|
||||
|
@ -2339,7 +2339,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
{
|
||||
// make them visible if not set...
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
}
|
||||
checkavailweapon(p);
|
||||
}
|
||||
|
@ -2358,7 +2358,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
{
|
||||
p->visibility = 0;
|
||||
//flashColor = 176 + (252 << 8) + (120 << 16);
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
checkavailweapon(p);
|
||||
}
|
||||
}
|
||||
|
@ -2366,7 +2366,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
{
|
||||
p->okickback_pic = p->kickback_pic = 0;
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
checkavailweapon(p);
|
||||
}
|
||||
else p->kickback_pic++;
|
||||
|
@ -2384,7 +2384,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
(p->kickback_pic & 1))
|
||||
{
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
fi.shoot(pi, RPG);
|
||||
p->ammo_amount[DEVISTATOR_WEAPON]--;
|
||||
checkavailweapon(p);
|
||||
|
@ -2394,7 +2394,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
else if (p->kickback_pic & 1)
|
||||
{
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
fi.shoot(pi, RPG);
|
||||
p->ammo_amount[DEVISTATOR_WEAPON]--;
|
||||
checkavailweapon(p);
|
||||
|
@ -2414,7 +2414,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
p->ammo_amount[p->curr_weapon]--;
|
||||
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
fi.shoot(pi, FREEZEBLAST);
|
||||
checkavailweapon(p);
|
||||
}
|
||||
|
@ -2497,7 +2497,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
if (p->kickback_pic == 4)
|
||||
{
|
||||
p->ammo_amount[RPG_WEAPON]--;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
fi.shoot(pi, RPG);
|
||||
checkavailweapon(p);
|
||||
|
|
|
@ -1399,7 +1399,7 @@ int doincrements_r(struct player_struct* p)
|
|||
}
|
||||
S_PlayActorSound(snd, p->i);
|
||||
}
|
||||
else if (totalclock > 1024)
|
||||
else if (gameclock > 1024)
|
||||
if (snum == screenpeek || ud.coop == 1)
|
||||
{
|
||||
if (rand() & 1)
|
||||
|
@ -2851,7 +2851,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
p->noise_radius = 8192;
|
||||
madenoise(snum);
|
||||
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
if (psectlotag != 857)
|
||||
{
|
||||
|
@ -2930,7 +2930,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
p->noise_radius = 8192;
|
||||
madenoise(snum);
|
||||
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
}
|
||||
|
||||
|
@ -3041,7 +3041,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
fi.shoot(pi, CHAINGUN);
|
||||
p->noise_radius = 8192;
|
||||
madenoise(snum);
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
|
||||
if (psectlotag != 857)
|
||||
|
@ -3097,7 +3097,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
if (p->kickback_pic == 2 || p->kickback_pic == 4)
|
||||
{
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
S_PlayActorSound(CHAINGUN_FIRE, pi);
|
||||
fi.shoot(pi, SHOTSPARK1);
|
||||
p->noise_radius = 16384;
|
||||
|
@ -3124,7 +3124,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
if (p->kickback_pic == 2 || p->kickback_pic == 4)
|
||||
{
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
S_PlayActorSound(CHAINGUN_FIRE, pi);
|
||||
fi.shoot(pi, CHAINGUN);
|
||||
p->noise_radius = 16384;
|
||||
|
@ -3182,7 +3182,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
{
|
||||
p->ammo_amount[ALIENBLASTER_WEAPON]--;
|
||||
p->visibility = 0;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
checkavailweapon(p);
|
||||
}
|
||||
else if (p->kickback_pic == 12)
|
||||
|
@ -3291,7 +3291,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
p->ammo_amount[CROSSBOW_WEAPON]--;
|
||||
if (p->ammo_amount[DYNAMITE_WEAPON])
|
||||
p->ammo_amount[DYNAMITE_WEAPON]--;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
fi.shoot(pi, RPG);
|
||||
p->noise_radius = 32768;
|
||||
|
@ -3309,7 +3309,7 @@ static void operateweapon(int snum, ESyncBits sb_snum, int psect)
|
|||
if (p->kickback_pic == 4)
|
||||
{
|
||||
p->ammo_amount[CHICKEN_WEAPON]--;
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
fi.shoot(pi, RPG2);
|
||||
p->noise_radius = 32768;
|
||||
|
|
|
@ -77,7 +77,7 @@ void DoFire(struct player_struct *p, short snum)
|
|||
if(! (aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_NOVISIBLE ))
|
||||
{
|
||||
// make them visible if not set...
|
||||
lastvisinc = (int)totalclock+32;
|
||||
lastvisinc = gameclock+32;
|
||||
p->visibility = 0;
|
||||
}
|
||||
|
||||
|
@ -400,7 +400,7 @@ void operateweapon_ww(int snum, ESyncBits sb_snum, int psect)
|
|||
if (!(aplWeaponFlags[p->curr_weapon][snum] & WEAPON_FLAG_NOVISIBLE))
|
||||
{
|
||||
// make them visible if not set...
|
||||
lastvisinc = (int)totalclock + 32;
|
||||
lastvisinc = gameclock + 32;
|
||||
p->visibility = 0;
|
||||
}
|
||||
SetGameVarID(g_iWeaponVarID, p->curr_weapon, p->i, snum);
|
||||
|
|
|
@ -757,9 +757,9 @@ void prelevel_common(int g)
|
|||
void resettimevars(void)
|
||||
{
|
||||
totalclock = 0;
|
||||
gameclock = 0;
|
||||
cloudtotalclock = 0;
|
||||
levelTextTime = 85;
|
||||
ototalclock = 0;
|
||||
lockclock = 0;
|
||||
ready2send = 1;
|
||||
if (camsprite >= 0)
|
||||
|
|
|
@ -643,7 +643,7 @@ void displayrooms(int snum, int smoothratio)
|
|||
|
||||
if (!isRRRA() || !fogactive)
|
||||
{
|
||||
if (totalclock < lastvisinc)
|
||||
if (gameclock < lastvisinc)
|
||||
{
|
||||
if (abs(p->visibility - ud.const_visibility) > 8)
|
||||
p->visibility += (ud.const_visibility - p->visibility) >> 2;
|
||||
|
|
|
@ -480,8 +480,7 @@ void GameInterface::SerializeGameState(FSerializer& arc)
|
|||
("thunder_brightness", thunder_brightness)
|
||||
|
||||
// Todo: move to backend
|
||||
("totalclock", totalclock)
|
||||
("ototalclock", ototalclock)
|
||||
("gameclock", gameclock)
|
||||
("totalclocklock", totalclocklock)
|
||||
|
||||
("lockclock", lockclock)
|
||||
|
@ -544,10 +543,6 @@ void GameInterface::SerializeGameState(FSerializer& arc)
|
|||
FX_SetReverb(0);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
ototalclock = totalclock;
|
||||
}
|
||||
ready2send = 1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -129,11 +129,11 @@ public:
|
|||
imgScale = baseScale / img->GetDisplayHeight();
|
||||
DrawGraphic(img, 2, -1.5, DI_ITEM_LEFT_BOTTOM, 1., -1, -1, imgScale, imgScale);
|
||||
|
||||
if (!althud_flashing || p->last_extra > (max_player_health >> 2) || ((int)totalclock & 32) || (sprite[p->i].pal == 1 && p->last_extra < 2))
|
||||
if (!althud_flashing || p->last_extra > (max_player_health >> 2) || (gameclock & 32) || (sprite[p->i].pal == 1 && p->last_extra < 2))
|
||||
{
|
||||
int s = -8;
|
||||
if (althud_flashing && p->last_extra > max_player_health)
|
||||
s += (sintable[((int)totalclock << 5) & 2047] >> 10);
|
||||
s += (sintable[(gameclock << 5) & 2047] >> 10);
|
||||
int intens = clamp(255 - 4 * s, 0, 255);
|
||||
auto pe = PalEntry(255, intens, intens, intens);
|
||||
format.Format("%d", p->last_extra);
|
||||
|
@ -170,7 +170,7 @@ public:
|
|||
imgX += (imgX * 0.6) * (strlen - 1);
|
||||
}
|
||||
|
||||
if (p->curr_weapon != KNEE_WEAPON && (!althud_flashing || (int)totalclock & 32 || p->ammo_amount[weapon] > (max_ammo_amount[weapon] / 10)))
|
||||
if (p->curr_weapon != KNEE_WEAPON && (!althud_flashing || gameclock & 32 || p->ammo_amount[weapon] > (max_ammo_amount[weapon] / 10)))
|
||||
{
|
||||
SBar_DrawString(this, &numberFont, format, -3, texty, DI_TEXT_ALIGN_RIGHT, CR_UNTRANSLATED, 1, 0, 0, 1, 1);
|
||||
}
|
||||
|
|
|
@ -106,11 +106,11 @@ public:
|
|||
imgScale = baseScale / img->GetDisplayHeight();
|
||||
DrawGraphic(img, 2, -2, DI_ITEM_LEFT_BOTTOM, 1, 0, 0, imgScale, imgScale);
|
||||
|
||||
if (!althud_flashing || p->last_extra > (max_player_health >> 2) || ((int)totalclock & 32) || (sprite[p->i].pal == 1 && p->last_extra < 2))
|
||||
if (!althud_flashing || p->last_extra > (max_player_health >> 2) || (gameclock & 32) || (sprite[p->i].pal == 1 && p->last_extra < 2))
|
||||
{
|
||||
int s = -8;
|
||||
if (althud_flashing && p->last_extra > max_player_health)
|
||||
s += (sintable[((int)totalclock << 5) & 2047] >> 10);
|
||||
s += (sintable[(gameclock << 5) & 2047] >> 10);
|
||||
int intens = clamp(255 - 4 * s, 0, 255);
|
||||
auto pe = PalEntry(255, intens, intens, intens);
|
||||
format.Format("%d", p->last_extra);
|
||||
|
@ -155,7 +155,7 @@ public:
|
|||
imgX += (imgX * 0.755) * (strlen - 1);
|
||||
}
|
||||
|
||||
if (p->curr_weapon != KNEE_WEAPON && p->curr_weapon != SLINGBLADE_WEAPON && (!althud_flashing || (int)totalclock & 32 || p->ammo_amount[weapon] > (max_ammo_amount[weapon] / 10)))
|
||||
if (p->curr_weapon != KNEE_WEAPON && p->curr_weapon != SLINGBLADE_WEAPON && (!althud_flashing || gameclock & 32 || p->ammo_amount[weapon] > (max_ammo_amount[weapon] / 10)))
|
||||
{
|
||||
SBar_DrawString(this, &numberFont, format, -1, -numberFont.mFont->GetHeight() * scale + 4, DI_TEXT_ALIGN_RIGHT, CR_UNTRANSLATED, 1, 0, 0, scale, scale);
|
||||
}
|
||||
|
|
|
@ -1142,9 +1142,9 @@ void allignwarpelevators(void)
|
|||
|
||||
void moveclouds(void)
|
||||
{
|
||||
if (totalclock > cloudtotalclock || totalclock < (cloudtotalclock - 7))
|
||||
if (gameclock > cloudtotalclock || gameclock < (cloudtotalclock - 7))
|
||||
{
|
||||
cloudtotalclock = totalclock + 6;
|
||||
cloudtotalclock = gameclock + 6;
|
||||
|
||||
// cloudx/y were an array, but all entries were always having the same value so a single pair is enough.
|
||||
cloudx += (sintable[(ps[screenpeek].getang() + 512) & 2047] >> 9);
|
||||
|
|
|
@ -353,7 +353,7 @@ void S_Update(void)
|
|||
}
|
||||
listener.ListenerObject = ud.camerasprite == -1 ? nullptr : &sprite[ud.camerasprite];
|
||||
soundEngine->SetListener(listener);
|
||||
soundEngine->UpdateSounds((int)totalclock);
|
||||
soundEngine->UpdateSounds(gameclock);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in a new issue