mirror of
https://github.com/ZDoom/raze-gles.git
synced 2024-12-30 21:31:03 +00:00
resetprestat
This commit is contained in:
parent
4af227fec6
commit
42bbc1e6ce
6 changed files with 23 additions and 140 deletions
|
@ -313,7 +313,7 @@ enum
|
||||||
};
|
};
|
||||||
|
|
||||||
// Interpolation code is the same in all games with slightly different naming - this needs to be unified and cleaned up.
|
// Interpolation code is the same in all games with slightly different naming - this needs to be unified and cleaned up.
|
||||||
extern int32_t g_interpolationCnt;
|
extern int32_t numinterpolations;
|
||||||
extern int32_t* curipos[MAXINTERPOLATIONS];
|
extern int32_t* curipos[MAXINTERPOLATIONS];
|
||||||
extern int32_t bakipos[MAXINTERPOLATIONS];
|
extern int32_t bakipos[MAXINTERPOLATIONS];
|
||||||
void G_UpdateInterpolations(void);
|
void G_UpdateInterpolations(void);
|
||||||
|
|
|
@ -377,7 +377,7 @@ void resetinventory(int snum)
|
||||||
//
|
//
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
void resetprestat(short snum,char g)
|
void resetprestat(int snum,int g)
|
||||||
{
|
{
|
||||||
struct player_struct *p;
|
struct player_struct *p;
|
||||||
short i;
|
short i;
|
||||||
|
@ -427,7 +427,7 @@ void resetprestat(short snum,char g)
|
||||||
BellTime = 0;
|
BellTime = 0;
|
||||||
g_bellSprite = 0;
|
g_bellSprite = 0;
|
||||||
|
|
||||||
//numinterpolations = 0;
|
numinterpolations = 0;
|
||||||
//startofdynamicinterpolations = 0;
|
//startofdynamicinterpolations = 0;
|
||||||
|
|
||||||
if( ( (g&MODE_EOL) != MODE_EOL && numplayers < 2) || (ud.coop != 1 && numplayers > 1) )
|
if( ( (g&MODE_EOL) != MODE_EOL && numplayers < 2) || (ud.coop != 1 && numplayers > 1) )
|
||||||
|
@ -451,7 +451,7 @@ void resetprestat(short snum,char g)
|
||||||
p->make_noise = 0;
|
p->make_noise = 0;
|
||||||
p->noise_radius = 0;
|
p->noise_radius = 0;
|
||||||
|
|
||||||
if (ud.multimode > 1 && ud.coop != 1)
|
if (isRR() && ud.multimode > 1 && ud.coop != 1)
|
||||||
{
|
{
|
||||||
p->keys[0] = 1;
|
p->keys[0] = 1;
|
||||||
p->keys[1] = 1;
|
p->keys[1] = 1;
|
||||||
|
@ -484,9 +484,7 @@ void resetprestat(short snum,char g)
|
||||||
|
|
||||||
if (numplayers < 2)
|
if (numplayers < 2)
|
||||||
{
|
{
|
||||||
ufospawn = ud.m_player_skill*4+1;
|
ufospawn = std::min(ud.m_player_skill*4+1, 32);
|
||||||
if (ufospawn > 32)
|
|
||||||
ufospawn = 32;
|
|
||||||
ufocnt = 0;
|
ufocnt = 0;
|
||||||
hulkspawn = ud.m_player_skill + 1;
|
hulkspawn = ud.m_player_skill + 1;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,6 +40,7 @@ void resetinventory(int playerNum);
|
||||||
void P_ResetPlayer(int playerNum);
|
void P_ResetPlayer(int playerNum);
|
||||||
void resetplayerstats(int playerNum);
|
void resetplayerstats(int playerNum);
|
||||||
void resetweapons(int playerNum);
|
void resetweapons(int playerNum);
|
||||||
|
void resetprestat(int snum, int g);
|
||||||
void G_ClearFIFO(void);
|
void G_ClearFIFO(void);
|
||||||
void G_ResetInterpolations(void);
|
void G_ResetInterpolations(void);
|
||||||
extern int32_t fragbarheight(void);
|
extern int32_t fragbarheight(void);
|
||||||
|
|
|
@ -28,7 +28,7 @@ BEGIN_DUKE_NS
|
||||||
|
|
||||||
#define MAXINTERPOLATIONS MAXSPRITES
|
#define MAXINTERPOLATIONS MAXSPRITES
|
||||||
|
|
||||||
int32_t g_interpolationCnt;
|
int32_t numinterpolations;
|
||||||
int32_t g_interpolationLock;
|
int32_t g_interpolationLock;
|
||||||
int32_t oldipos[MAXINTERPOLATIONS];
|
int32_t oldipos[MAXINTERPOLATIONS];
|
||||||
int32_t *curipos[MAXINTERPOLATIONS];
|
int32_t *curipos[MAXINTERPOLATIONS];
|
||||||
|
@ -36,28 +36,28 @@ int32_t bakipos[MAXINTERPOLATIONS];
|
||||||
|
|
||||||
int G_SetInterpolation(int32_t *const posptr)
|
int G_SetInterpolation(int32_t *const posptr)
|
||||||
{
|
{
|
||||||
if (g_interpolationCnt >= MAXINTERPOLATIONS)
|
if (numinterpolations >= MAXINTERPOLATIONS)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
for (bssize_t i = 0; i < g_interpolationCnt; ++i)
|
for (bssize_t i = 0; i < numinterpolations; ++i)
|
||||||
if (curipos[i] == posptr)
|
if (curipos[i] == posptr)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
curipos[g_interpolationCnt] = posptr;
|
curipos[numinterpolations] = posptr;
|
||||||
oldipos[g_interpolationCnt] = *posptr;
|
oldipos[numinterpolations] = *posptr;
|
||||||
g_interpolationCnt++;
|
numinterpolations++;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void G_StopInterpolation(const int32_t * const posptr)
|
void G_StopInterpolation(const int32_t * const posptr)
|
||||||
{
|
{
|
||||||
for (bssize_t i = 0; i < g_interpolationCnt; ++i)
|
for (bssize_t i = 0; i < numinterpolations; ++i)
|
||||||
if (curipos[i] == posptr)
|
if (curipos[i] == posptr)
|
||||||
{
|
{
|
||||||
g_interpolationCnt--;
|
numinterpolations--;
|
||||||
oldipos[i] = oldipos[g_interpolationCnt];
|
oldipos[i] = oldipos[numinterpolations];
|
||||||
bakipos[i] = bakipos[g_interpolationCnt];
|
bakipos[i] = bakipos[numinterpolations];
|
||||||
curipos[i] = curipos[g_interpolationCnt];
|
curipos[i] = curipos[numinterpolations];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +68,7 @@ void G_DoInterpolations(int smoothRatio)
|
||||||
|
|
||||||
int32_t ndelta = 0;
|
int32_t ndelta = 0;
|
||||||
|
|
||||||
for (bssize_t i = 0, j = 0; i < g_interpolationCnt; ++i)
|
for (bssize_t i = 0, j = 0; i < numinterpolations; ++i)
|
||||||
{
|
{
|
||||||
int32_t const odelta = ndelta;
|
int32_t const odelta = ndelta;
|
||||||
bakipos[i] = *curipos[i];
|
bakipos[i] = *curipos[i];
|
||||||
|
@ -82,12 +82,12 @@ void G_DoInterpolations(int smoothRatio)
|
||||||
|
|
||||||
void G_UpdateInterpolations(void) //Stick at beginning of G_DoMoveThings
|
void G_UpdateInterpolations(void) //Stick at beginning of G_DoMoveThings
|
||||||
{
|
{
|
||||||
for (bssize_t i=g_interpolationCnt-1; i>=0; i--) oldipos[i] = *curipos[i];
|
for (bssize_t i=numinterpolations-1; i>=0; i--) oldipos[i] = *curipos[i];
|
||||||
}
|
}
|
||||||
|
|
||||||
void G_RestoreInterpolations(void) //Stick at end of drawscreen
|
void G_RestoreInterpolations(void) //Stick at end of drawscreen
|
||||||
{
|
{
|
||||||
int32_t i=g_interpolationCnt-1;
|
int32_t i=numinterpolations-1;
|
||||||
|
|
||||||
if (--g_interpolationLock)
|
if (--g_interpolationLock)
|
||||||
return;
|
return;
|
||||||
|
|
|
@ -311,122 +311,6 @@ void P_ResetPlayer(int playerNum)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void resetprestat(int playerNum, int gameMode)
|
|
||||||
{
|
|
||||||
DukePlayer_t *const pPlayer = g_player[playerNum].ps;
|
|
||||||
|
|
||||||
g_spriteDeleteQueuePos = 0;
|
|
||||||
for (bssize_t i = 0; i < g_deleteQueueSize; i++) SpriteDeletionQueue[i] = -1;
|
|
||||||
|
|
||||||
pPlayer->hbomb_on = 0;
|
|
||||||
pPlayer->cheat_phase = 0;
|
|
||||||
pPlayer->toggle_key_flag = 0;
|
|
||||||
pPlayer->secret_rooms = 0;
|
|
||||||
pPlayer->max_secret_rooms = 0;
|
|
||||||
pPlayer->actors_killed = 0;
|
|
||||||
pPlayer->max_actors_killed = 0;
|
|
||||||
pPlayer->lastrandomspot = 0;
|
|
||||||
pPlayer->weapon_pos = WEAPON_POS_START;
|
|
||||||
|
|
||||||
P_ResetTintFade(pPlayer);
|
|
||||||
|
|
||||||
pPlayer->kickback_pic = 5;
|
|
||||||
|
|
||||||
pPlayer->last_weapon = -1;
|
|
||||||
pPlayer->weapreccnt = 0;
|
|
||||||
pPlayer->interface_toggle_flag = 0;
|
|
||||||
pPlayer->show_empty_weapon = 0;
|
|
||||||
pPlayer->holster_weapon = 0;
|
|
||||||
pPlayer->last_pissed_time = 0;
|
|
||||||
pPlayer->one_parallax_sectnum = -1;
|
|
||||||
pPlayer->visibility = ud.const_visibility;
|
|
||||||
|
|
||||||
screenpeek = myconnectindex;
|
|
||||||
g_animWallCnt = 0;
|
|
||||||
g_cyclerCnt = 0;
|
|
||||||
g_animateCnt = 0;
|
|
||||||
parallaxtype = 0;
|
|
||||||
randomseed = 17;
|
|
||||||
ud.pause_on = 0;
|
|
||||||
ud.camerasprite = -1;
|
|
||||||
ud.eog = 0;
|
|
||||||
tempwallptr = 0;
|
|
||||||
g_curViewscreen = -1;
|
|
||||||
g_earthquakeTime = 0;
|
|
||||||
g_interpolationCnt = 0;
|
|
||||||
|
|
||||||
if (RRRA)
|
|
||||||
{
|
|
||||||
WindTime = 0;
|
|
||||||
WindDir = 0;
|
|
||||||
fakebubba_spawn = 0;
|
|
||||||
RRRA_ExitedLevel = 0;
|
|
||||||
g_bellTime = 0;
|
|
||||||
g_bellSprite = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (((gameMode & MODE_EOL) != MODE_EOL && numplayers < 2 && !g_netServer)
|
|
||||||
|| (!(g_gametypeFlags[ud.coop] & GAMETYPE_PRESERVEINVENTORYDEATH) && numplayers > 1))
|
|
||||||
{
|
|
||||||
resetweapons(playerNum);
|
|
||||||
resetinventory(playerNum);
|
|
||||||
}
|
|
||||||
else if (pPlayer->curr_weapon == HANDREMOTE_WEAPON && !isRR())
|
|
||||||
{
|
|
||||||
pPlayer->ammo_amount[HANDBOMB_WEAPON]++;
|
|
||||||
pPlayer->curr_weapon = HANDBOMB_WEAPON;
|
|
||||||
}
|
|
||||||
|
|
||||||
pPlayer->timebeforeexit = 0;
|
|
||||||
pPlayer->customexitsound = 0;
|
|
||||||
|
|
||||||
if (RR)
|
|
||||||
{
|
|
||||||
pPlayer->stairs = 0;
|
|
||||||
pPlayer->noise_x = 131072;
|
|
||||||
pPlayer->noise_y = 131072;
|
|
||||||
pPlayer->make_noise = 0;
|
|
||||||
pPlayer->noise_radius = 0;
|
|
||||||
if ((g_netServer || ud.multimode > 1) && (g_gametypeFlags[ud.coop] & GAMETYPE_ACCESSATSTART))
|
|
||||||
{
|
|
||||||
pPlayer->keys[0] = 1;
|
|
||||||
pPlayer->keys[1] = 1;
|
|
||||||
pPlayer->keys[2] = 1;
|
|
||||||
pPlayer->keys[3] = 1;
|
|
||||||
pPlayer->keys[4] = 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
pPlayer->keys[0] = 0;
|
|
||||||
pPlayer->keys[1] = 0;
|
|
||||||
pPlayer->keys[2] = 0;
|
|
||||||
pPlayer->keys[3] = 0;
|
|
||||||
pPlayer->keys[4] = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
pPlayer->drunkang = pPlayer->eatang = 1647;
|
|
||||||
pPlayer->drink_amt = pPlayer->eat = 0;
|
|
||||||
pPlayer->drink_timer = pPlayer->eat_timer = 4096;
|
|
||||||
pPlayer->shotgun_state[0] = pPlayer->shotgun_state[1] = 0;
|
|
||||||
pPlayer->detonate_time = 0;
|
|
||||||
pPlayer->detonate_count = 0;
|
|
||||||
pPlayer->recoil = 0;
|
|
||||||
pPlayer->yehaa_timer = 0;
|
|
||||||
resetlanepics();
|
|
||||||
if (!g_netServer && numplayers < 2)
|
|
||||||
{
|
|
||||||
g_ufoSpawn = min(ud.m_player_skill*4+1, 32);
|
|
||||||
g_ufoCnt = 0;
|
|
||||||
g_hulkSpawn = ud.m_player_skill + 1;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
g_ufoSpawn = 32;
|
|
||||||
g_ufoCnt = 0;
|
|
||||||
g_hulkSpawn = 2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[spriteNum].lotag == UINT16_MAX && (sprite[spriteNum].cstat & 16)); }
|
static inline int G_CheckExitSprite(int spriteNum) { return ((uint16_t)sprite[spriteNum].lotag == UINT16_MAX && (sprite[spriteNum].cstat & 16)); }
|
||||||
|
|
||||||
|
@ -1594,7 +1478,7 @@ int G_EnterLevel(int gameMode)
|
||||||
|
|
||||||
G_ClearFIFO();
|
G_ClearFIFO();
|
||||||
|
|
||||||
for (i=g_interpolationCnt-1; i>=0; i--) bakipos[i] = *curipos[i];
|
for (i=numinterpolations-1; i>=0; i--) bakipos[i] = *curipos[i];
|
||||||
|
|
||||||
g_player[myconnectindex].ps->over_shoulder_on = 0;
|
g_player[myconnectindex].ps->over_shoulder_on = 0;
|
||||||
|
|
||||||
|
|
|
@ -71,7 +71,7 @@ void G_ResetInterpolations(void)
|
||||||
{
|
{
|
||||||
int32_t k, i;
|
int32_t k, i;
|
||||||
|
|
||||||
g_interpolationCnt = 0;
|
numinterpolations = 0;
|
||||||
|
|
||||||
k = headspritestat[STAT_EFFECTOR];
|
k = headspritestat[STAT_EFFECTOR];
|
||||||
while (k >= 0)
|
while (k >= 0)
|
||||||
|
@ -105,7 +105,7 @@ void G_ResetInterpolations(void)
|
||||||
k = nextspritestat[k];
|
k = nextspritestat[k];
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i=g_interpolationCnt-1; i>=0; i--) bakipos[i] = *curipos[i];
|
for (i=numinterpolations-1; i>=0; i--) bakipos[i] = *curipos[i];
|
||||||
for (i = g_animateCnt-1; i>=0; i--)
|
for (i = g_animateCnt-1; i>=0; i--)
|
||||||
G_SetInterpolation(g_animatePtr[i]);
|
G_SetInterpolation(g_animatePtr[i]);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue