Red: before C11 generics. Green: after C11 generics
This commit is contained in:
parent
bdfe3344f0
commit
e3f70bc7fd
1 changed files with 275 additions and 295 deletions
570
src/p_saveg.c
570
src/p_saveg.c
|
|
@ -179,6 +179,43 @@ void P_SyncMem(savebuffer_t *save, void *s, size_t n)
|
|||
READMEM(save->p, s, n);
|
||||
}
|
||||
|
||||
mobj_t *P_SyncMobj(savebuffer_t *save, mobj_t *mo)
|
||||
{
|
||||
if (save->write)
|
||||
{
|
||||
WRITEUINT32(save->p, mo ? mo->mobjnum : 0);
|
||||
return mo;
|
||||
}
|
||||
else
|
||||
return (mobj_t *)(uintptr_t)READUINT32(save->p);
|
||||
}
|
||||
|
||||
waypoint_t *P_SyncWaypoint(savebuffer_t *save, waypoint_t *wp)
|
||||
{
|
||||
if (save->write)
|
||||
{
|
||||
WRITEUINT32(save->p, K_GetWaypointHeapIndex(wp));
|
||||
return wp;
|
||||
}
|
||||
else
|
||||
return (waypoint_t *)(uintptr_t)READUINT32(save->p);
|
||||
}
|
||||
|
||||
#define SYNC(v) v = _Generic(v, \
|
||||
SINT8: P_SyncSINT8, \
|
||||
INT16: P_SyncINT16, \
|
||||
INT32: P_SyncINT32, \
|
||||
UINT8: P_SyncUINT8, \
|
||||
UINT16: P_SyncUINT16, \
|
||||
UINT32: P_SyncUINT32, \
|
||||
mobj_t *: P_SyncMobj, \
|
||||
waypoint_t *: P_SyncWaypoint \
|
||||
)(save, v);
|
||||
|
||||
#define SYNCBOOLEAN(v) v = _Generic(v, \
|
||||
boolean: P_SyncUINT8 \
|
||||
)(save, v);
|
||||
|
||||
// Block UINT32s to attempt to ensure that the correct data is
|
||||
// being sent and received
|
||||
#define ARCHIVEBLOCK_MISC 0x7FEEDEED
|
||||
|
|
@ -190,15 +227,6 @@ void P_SyncMem(savebuffer_t *save, void *s, size_t n)
|
|||
#define ARCHIVEBLOCK_SPECIALS 0x7F228378
|
||||
#define ARCHIVEBLOCK_WAYPOINTS 0x7F46498F
|
||||
|
||||
// Note: This cannot be bigger
|
||||
// than an UINT16
|
||||
typedef enum
|
||||
{
|
||||
AWAYVIEW = 0x01,
|
||||
FOLLOWITEM = 0x02,
|
||||
FOLLOWER = 0x04,
|
||||
} player_saveflags;
|
||||
|
||||
static inline void P_ArchivePlayer(savebuffer_t *save)
|
||||
{
|
||||
const player_t *player = &players[consoleplayer];
|
||||
|
|
@ -228,7 +256,6 @@ static void P_NetSyncPlayers(savebuffer_t *save)
|
|||
TracyCZone(__zone, true);
|
||||
|
||||
INT32 i, j;
|
||||
UINT16 flags;
|
||||
|
||||
if (P_SyncUINT32(save, ARCHIVEBLOCK_PLAYERS) != ARCHIVEBLOCK_PLAYERS)
|
||||
I_Error("Bad $$$.sav at archive block Players");
|
||||
|
|
@ -239,385 +266,338 @@ static void P_NetSyncPlayers(savebuffer_t *save)
|
|||
|
||||
for (j = 0; j < PWRLV_NUMTYPES; j++)
|
||||
{
|
||||
clientpowerlevels[i][j] = P_SyncINT16(save, clientpowerlevels[i][j]);
|
||||
SYNC(clientpowerlevels[i][j]);
|
||||
}
|
||||
clientPowerAdd[i] = P_SyncINT16(save, clientPowerAdd[i]);
|
||||
SYNC(clientPowerAdd[i]);
|
||||
|
||||
if (!playeringame[i])
|
||||
continue;
|
||||
|
||||
flags = 0;
|
||||
|
||||
// no longer send ticcmds
|
||||
|
||||
P_SyncStringN(save, player_names[i], MAXPLAYERNAME);
|
||||
|
||||
playerconsole[i] = P_SyncUINT8(save, playerconsole[i]);
|
||||
splitscreen_invitations[i] = P_SyncINT32(save, splitscreen_invitations[i]);
|
||||
SYNC(playerconsole[i]);
|
||||
SYNC(splitscreen_invitations[i]);
|
||||
|
||||
players[i].angleturn = P_SyncAngle(save, players[i].angleturn);
|
||||
players[i].aiming = P_SyncAngle(save, players[i].aiming);
|
||||
players[i].drawangle = P_SyncAngle(save, players[i].drawangle);
|
||||
players[i].viewrollangle = P_SyncAngle(save, players[i].viewrollangle);
|
||||
players[i].tilt = P_SyncAngle(save, players[i].tilt);
|
||||
players[i].awayviewaiming = P_SyncAngle(save, players[i].awayviewaiming);
|
||||
players[i].awayviewtics = P_SyncINT32(save, players[i].awayviewtics);
|
||||
SYNC(players[i].angleturn);
|
||||
SYNC(players[i].aiming);
|
||||
SYNC(players[i].drawangle);
|
||||
SYNC(players[i].viewrollangle);
|
||||
SYNC(players[i].tilt);
|
||||
SYNC(players[i].awayviewaiming);
|
||||
SYNC(players[i].awayviewtics);
|
||||
|
||||
players[i].playerstate = P_SyncUINT8(save, players[i].playerstate);
|
||||
players[i].pflags = P_SyncUINT32(save, players[i].pflags);
|
||||
players[i].panim = P_SyncUINT8(save, players[i].panim);
|
||||
players[i].spectator = P_SyncUINT8(save, players[i].spectator);
|
||||
players[i].spectatewait = P_SyncUINT32(save, players[i].spectatewait);
|
||||
SYNC(players[i].playerstate);
|
||||
SYNC(players[i].pflags);
|
||||
SYNC(players[i].panim);
|
||||
SYNCBOOLEAN(players[i].spectator);
|
||||
SYNC(players[i].spectatewait);
|
||||
|
||||
players[i].flashpal = P_SyncUINT16(save, players[i].flashpal);
|
||||
players[i].flashcount = P_SyncUINT16(save, players[i].flashcount);
|
||||
SYNC(players[i].flashpal);
|
||||
SYNC(players[i].flashcount);
|
||||
|
||||
players[i].skincolor = P_SyncUINT8(save, players[i].skincolor);
|
||||
players[i].skin = P_SyncINT32(save, players[i].skin);
|
||||
players[i].availabilities = P_SyncUINT32(save, players[i].availabilities);
|
||||
players[i].score = P_SyncUINT32(save, players[i].score);
|
||||
players[i].lives = P_SyncSINT8(save, players[i].lives);
|
||||
players[i].xtralife = P_SyncSINT8(save, players[i].xtralife);
|
||||
players[i].speed = P_SyncFixed(save, players[i].speed);
|
||||
players[i].lastspeed = P_SyncFixed(save, players[i].lastspeed);
|
||||
players[i].deadtimer = P_SyncINT32(save, players[i].deadtimer);
|
||||
players[i].exiting = P_SyncUINT32(save, players[i].exiting);
|
||||
SYNC(players[i].skincolor);
|
||||
SYNC(players[i].skin);
|
||||
SYNC(players[i].availabilities);
|
||||
SYNC(players[i].score);
|
||||
SYNC(players[i].lives);
|
||||
SYNC(players[i].xtralife);
|
||||
SYNC(players[i].speed);
|
||||
SYNC(players[i].lastspeed);
|
||||
SYNC(players[i].deadtimer);
|
||||
SYNC(players[i].exiting);
|
||||
|
||||
////////////////////////////
|
||||
// Conveyor Belt Movement //
|
||||
////////////////////////////
|
||||
players[i].cmomx = P_SyncFixed(save, players[i].cmomx); // Conveyor momx
|
||||
players[i].cmomy = P_SyncFixed(save, players[i].cmomy); // Conveyor momy
|
||||
players[i].rmomx = P_SyncFixed(save, players[i].rmomx); // "Real" momx (momx - cmomx)
|
||||
players[i].rmomy = P_SyncFixed(save, players[i].rmomy); // "Real" momy (momy - cmomy)
|
||||
SYNC(players[i].cmomx); // Conveyor momx
|
||||
SYNC(players[i].cmomy); // Conveyor momy
|
||||
SYNC(players[i].rmomx); // "Real" momx (momx - cmomx)
|
||||
SYNC(players[i].rmomy); // "Real" momy (momy - cmomy)
|
||||
|
||||
players[i].totalring = P_SyncINT16(save, players[i].totalring);
|
||||
players[i].realtime = P_SyncUINT32(save, players[i].realtime);
|
||||
SYNC(players[i].totalring);
|
||||
SYNC(players[i].realtime);
|
||||
for (j = 0; j < LAP__MAX; j++)
|
||||
{
|
||||
players[i].laptime[j] = P_SyncUINT32(save, players[i].laptime[j]);
|
||||
SYNC(players[i].laptime[j]);
|
||||
}
|
||||
players[i].laps = P_SyncUINT8(save, players[i].laps);
|
||||
players[i].latestlap = P_SyncUINT8(save, players[i].latestlap);
|
||||
SYNC(players[i].laps);
|
||||
SYNC(players[i].latestlap);
|
||||
|
||||
players[i].starposttime = P_SyncUINT32(save, players[i].starposttime);
|
||||
players[i].starpostx = P_SyncINT16(save, players[i].starpostx);
|
||||
players[i].starposty = P_SyncINT16(save, players[i].starposty);
|
||||
players[i].starpostz = P_SyncINT16(save, players[i].starpostz);
|
||||
players[i].starpostnum = P_SyncINT32(save, players[i].starpostnum);
|
||||
players[i].starpostangle = P_SyncAngle(save, players[i].starpostangle);
|
||||
players[i].starpostflip = P_SyncUINT8(save, (UINT8)players[i].starpostflip);
|
||||
players[i].prevcheck = P_SyncINT32(save, players[i].prevcheck);
|
||||
players[i].nextcheck = P_SyncINT32(save, players[i].nextcheck);
|
||||
SYNC(players[i].starposttime);
|
||||
SYNC(players[i].starpostx);
|
||||
SYNC(players[i].starposty);
|
||||
SYNC(players[i].starpostz);
|
||||
SYNC(players[i].starpostnum);
|
||||
SYNC(players[i].starpostangle);
|
||||
SYNCBOOLEAN(players[i].starpostflip);
|
||||
SYNC(players[i].prevcheck);
|
||||
SYNC(players[i].nextcheck);
|
||||
|
||||
players[i].ctfteam = P_SyncUINT8(save, players[i].ctfteam);
|
||||
SYNC(players[i].ctfteam);
|
||||
|
||||
players[i].checkskip = P_SyncUINT8(save, players[i].checkskip);
|
||||
SYNC(players[i].checkskip);
|
||||
|
||||
players[i].lastsidehit = P_SyncINT16(save, players[i].lastsidehit);
|
||||
players[i].lastlinehit = P_SyncINT16(save, players[i].lastlinehit);
|
||||
SYNC(players[i].lastsidehit);
|
||||
SYNC(players[i].lastlinehit);
|
||||
|
||||
players[i].onconveyor = P_SyncINT32(save, players[i].onconveyor);
|
||||
SYNC(players[i].onconveyor);
|
||||
|
||||
players[i].jointime = P_SyncUINT32(save, players[i].jointime);
|
||||
players[i].spectatorreentry = P_SyncUINT32(save, players[i].spectatorreentry);
|
||||
SYNC(players[i].jointime);
|
||||
SYNC(players[i].spectatorreentry);
|
||||
|
||||
players[i].grieftime = P_SyncUINT32(save, players[i].grieftime);
|
||||
players[i].griefstrikes = P_SyncUINT8(save, players[i].griefstrikes);
|
||||
SYNC(players[i].grieftime);
|
||||
SYNC(players[i].griefstrikes);
|
||||
|
||||
players[i].splitscreenindex = P_SyncUINT8(save, players[i].splitscreenindex);
|
||||
SYNC(players[i].splitscreenindex);
|
||||
|
||||
if (save->write)
|
||||
{
|
||||
if (players[i].awayviewmobj)
|
||||
flags |= AWAYVIEW;
|
||||
SYNC(players[i].awayviewmobj);
|
||||
SYNC(players[i].followmobj);
|
||||
SYNC(players[i].followitem);
|
||||
|
||||
if (players[i].followmobj)
|
||||
flags |= FOLLOWITEM;
|
||||
|
||||
if (players[i].follower)
|
||||
flags |= FOLLOWER;
|
||||
|
||||
WRITEUINT16(save->p, flags);
|
||||
|
||||
if (flags & AWAYVIEW)
|
||||
WRITEUINT32(save->p, players[i].awayviewmobj->mobjnum);
|
||||
|
||||
if (flags & FOLLOWITEM)
|
||||
WRITEUINT32(save->p, players[i].followmobj->mobjnum);
|
||||
}
|
||||
else
|
||||
{
|
||||
flags = READUINT16(save->p);
|
||||
|
||||
if (flags & AWAYVIEW)
|
||||
players[i].awayviewmobj = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
|
||||
if (flags & FOLLOWITEM)
|
||||
players[i].followmobj = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
}
|
||||
|
||||
players[i].followitem = P_SyncUINT32(save, (UINT32)players[i].followitem);
|
||||
|
||||
players[i].charflags = P_SyncUINT32(save, players[i].charflags);
|
||||
SYNC(players[i].charflags);
|
||||
|
||||
// SRB2kart
|
||||
players[i].kartspeed = P_SyncUINT8(save, players[i].kartspeed);
|
||||
players[i].kartweight = P_SyncUINT8(save, players[i].kartweight);
|
||||
SYNC(players[i].kartspeed);
|
||||
SYNC(players[i].kartweight);
|
||||
|
||||
for (j = 0; j < MAXPREDICTTICS; j++)
|
||||
{
|
||||
players[i].lturn_max[j] = P_SyncINT16(save, players[i].lturn_max[j]);
|
||||
players[i].rturn_max[j] = P_SyncINT16(save, players[i].rturn_max[j]);
|
||||
SYNC(players[i].lturn_max[j]);
|
||||
SYNC(players[i].rturn_max[j]);
|
||||
}
|
||||
|
||||
players[i].followerskin = P_SyncUINT8(save, players[i].followerskin);
|
||||
players[i].followerready = P_SyncUINT8(save, players[i].followerready); // booleans are really just numbers eh??
|
||||
players[i].followercolor = P_SyncUINT16(save, players[i].followercolor);
|
||||
SYNC(players[i].followerskin);
|
||||
SYNCBOOLEAN(players[i].followerready);
|
||||
SYNC(players[i].followercolor);
|
||||
|
||||
if (save->write)
|
||||
{
|
||||
if (flags & FOLLOWER)
|
||||
WRITEUINT32(save->p, players[i].follower->mobjnum);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (flags & FOLLOWER)
|
||||
players[i].follower = (mobj_t *)(size_t)READUINT32(save->p);
|
||||
}
|
||||
SYNC(players[i].follower);
|
||||
|
||||
for (j = 0; j < NUMPOWERS; j++)
|
||||
players[i].powers[j] = P_SyncUINT16(save, players[i].powers[j]);
|
||||
SYNC(players[i].powers[j]);
|
||||
for (j = 0; j < NUMKARTSTUFF; j++)
|
||||
players[i].kartstuff[j] = P_SyncINT32(save, players[i].kartstuff[j]);
|
||||
SYNC(players[i].kartstuff[j]);
|
||||
|
||||
players[i].nocontrol = P_SyncUINT16(save, players[i].nocontrol);
|
||||
players[i].carry = P_SyncUINT8(save, players[i].carry);
|
||||
players[i].dye = P_SyncUINT16(save, players[i].dye);
|
||||
SYNC(players[i].nocontrol);
|
||||
SYNC(players[i].carry);
|
||||
SYNC(players[i].dye);
|
||||
|
||||
players[i].position = P_SyncUINT8(save, players[i].position);
|
||||
players[i].oldposition = P_SyncUINT8(save, players[i].oldposition);
|
||||
players[i].positiondelay = P_SyncUINT8(save, players[i].positiondelay);
|
||||
players[i].distancetofinish = P_SyncUINT32(save, players[i].distancetofinish);
|
||||
players[i].distancetofinishprev = P_SyncUINT32(save, players[i].distancetofinishprev);
|
||||
if (save->write)
|
||||
{
|
||||
WRITEUINT32(save->p, K_GetWaypointHeapIndex(players[i].currentwaypoint));
|
||||
WRITEUINT32(save->p, K_GetWaypointHeapIndex(players[i].nextwaypoint));
|
||||
}
|
||||
else
|
||||
{
|
||||
players[i].currentwaypoint = (waypoint_t *)(size_t)READUINT32(save->p);
|
||||
players[i].nextwaypoint = (waypoint_t *)(size_t)READUINT32(save->p);
|
||||
}
|
||||
players[i].bigwaypointgap = P_SyncUINT16(save, players[i].bigwaypointgap);
|
||||
players[i].airtime = P_SyncUINT32(save, players[i].airtime);
|
||||
players[i].startboost = P_SyncUINT8(save, players[i].startboost);
|
||||
SYNC(players[i].position);
|
||||
SYNC(players[i].oldposition);
|
||||
SYNC(players[i].positiondelay);
|
||||
SYNC(players[i].distancetofinish);
|
||||
SYNC(players[i].distancetofinishprev);
|
||||
SYNC(players[i].currentwaypoint);
|
||||
SYNC(players[i].nextwaypoint);
|
||||
SYNC(players[i].bigwaypointgap);
|
||||
SYNC(players[i].airtime);
|
||||
SYNC(players[i].startboost);
|
||||
|
||||
players[i].dropdash = P_SyncUINT8(save, players[i].dropdash);
|
||||
players[i].respawn = P_SyncUINT8(save, players[i].respawn);
|
||||
SYNC(players[i].dropdash);
|
||||
SYNC(players[i].respawn);
|
||||
|
||||
players[i].flashing = P_SyncUINT16(save, players[i].flashing);
|
||||
players[i].spinouttimer = P_SyncUINT16(save, players[i].spinouttimer);
|
||||
players[i].spinoutrot = P_SyncINT32(save, players[i].spinoutrot);
|
||||
players[i].spinouttype = P_SyncUINT8(save, players[i].spinouttype);
|
||||
players[i].flipovertimer = P_SyncUINT16(save, players[i].flipovertimer);
|
||||
players[i].flipoverangle = P_SyncAngle(save, players[i].flipoverangle);
|
||||
players[i].squishedtimer = P_SyncINT16(save, players[i].squishedtimer);
|
||||
players[i].instashield = P_SyncUINT8(save, players[i].instashield);
|
||||
players[i].wipeoutslow = P_SyncUINT8(save, players[i].wipeoutslow);
|
||||
players[i].justbumped = P_SyncUINT8(save, players[i].justbumped);
|
||||
players[i].noclip = P_SyncUINT8(save, players[i].noclip);
|
||||
SYNC(players[i].flashing);
|
||||
SYNC(players[i].spinouttimer);
|
||||
SYNC(players[i].spinoutrot);
|
||||
SYNC(players[i].spinouttype);
|
||||
SYNC(players[i].flipovertimer);
|
||||
SYNC(players[i].flipoverangle);
|
||||
SYNC(players[i].squishedtimer);
|
||||
SYNC(players[i].instashield);
|
||||
SYNC(players[i].wipeoutslow);
|
||||
SYNC(players[i].justbumped);
|
||||
SYNCBOOLEAN(players[i].noclip);
|
||||
|
||||
players[i].drift = P_SyncSINT8(save, players[i].drift);
|
||||
players[i].driftlock = P_SyncSINT8(save, players[i].driftlock);
|
||||
players[i].driftcharge = P_SyncFixed(save, players[i].driftcharge);
|
||||
players[i].driftboost = P_SyncUINT8(save, players[i].driftboost);
|
||||
SYNC(players[i].drift);
|
||||
SYNC(players[i].driftlock);
|
||||
SYNC(players[i].driftcharge);
|
||||
SYNC(players[i].driftboost);
|
||||
|
||||
players[i].aizdriftstrat = P_SyncSINT8(save, players[i].aizdriftstrat);
|
||||
players[i].aizdrifttilt = P_SyncINT32(save, players[i].aizdrifttilt);
|
||||
players[i].aizdriftturn = P_SyncINT32(save, players[i].aizdriftturn);
|
||||
players[i].slipdashcharge = P_SyncFixed(save, players[i].slipdashcharge);
|
||||
players[i].slipdashdir = P_SyncSINT8(save, players[i].slipdashdir);
|
||||
SYNC(players[i].aizdriftstrat);
|
||||
SYNC(players[i].aizdrifttilt);
|
||||
SYNC(players[i].aizdriftturn);
|
||||
SYNC(players[i].slipdashcharge);
|
||||
SYNC(players[i].slipdashdir);
|
||||
|
||||
players[i].offroad = P_SyncFixed(save, players[i].offroad);
|
||||
players[i].tiregrease = P_SyncFixed(save, players[i].tiregrease);
|
||||
players[i].pogospring = P_SyncUINT8(save, players[i].pogospring);
|
||||
players[i].brakestop = P_SyncUINT8(save, players[i].brakestop);
|
||||
players[i].waterskip = P_SyncUINT8(save, players[i].waterskip);
|
||||
SYNC(players[i].offroad);
|
||||
SYNC(players[i].tiregrease);
|
||||
SYNC(players[i].pogospring);
|
||||
SYNC(players[i].brakestop);
|
||||
SYNC(players[i].waterskip);
|
||||
|
||||
players[i].dashpadcooldown = P_SyncUINT8(save, players[i].dashpadcooldown);
|
||||
SYNC(players[i].dashpadcooldown);
|
||||
|
||||
players[i].boostpower = P_SyncFixed(save, players[i].boostpower);
|
||||
players[i].speedboost = P_SyncFixed(save, players[i].speedboost);
|
||||
players[i].prevspeedboost = P_SyncFixed(save, players[i].prevspeedboost);
|
||||
players[i].accelboost = P_SyncFixed(save, players[i].accelboost);
|
||||
players[i].boostangle = P_SyncAngle(save, players[i].boostangle);
|
||||
players[i].numsneakers = P_SyncUINT8(save, players[i].numsneakers);
|
||||
players[i].numboosts = P_SyncUINT8(save, players[i].numboosts);
|
||||
SYNC(players[i].boostpower);
|
||||
SYNC(players[i].speedboost);
|
||||
SYNC(players[i].prevspeedboost);
|
||||
SYNC(players[i].accelboost);
|
||||
SYNC(players[i].boostangle);
|
||||
SYNC(players[i].numsneakers);
|
||||
SYNC(players[i].numboosts);
|
||||
|
||||
players[i].draftpower = P_SyncFixed(save, players[i].draftpower);
|
||||
players[i].draftleeway = P_SyncUINT16(save, players[i].draftleeway);
|
||||
players[i].lastdraft = P_SyncSINT8(save, players[i].lastdraft);
|
||||
SYNC(players[i].draftpower);
|
||||
SYNC(players[i].draftleeway);
|
||||
SYNC(players[i].lastdraft);
|
||||
|
||||
// boostinfo_t
|
||||
players[i].boostinfo.stackspeedboost = P_SyncFixed(save, players[i].boostinfo.stackspeedboost);
|
||||
players[i].boostinfo.nonstackspeedboost = P_SyncFixed(save, players[i].boostinfo.nonstackspeedboost);
|
||||
players[i].boostinfo.accelboost = P_SyncFixed(save, players[i].boostinfo.accelboost);
|
||||
players[i].boostinfo.grade = P_SyncUINT8(save, players[i].boostinfo.grade);
|
||||
SYNC(players[i].boostinfo.stackspeedboost);
|
||||
SYNC(players[i].boostinfo.nonstackspeedboost);
|
||||
SYNC(players[i].boostinfo.accelboost);
|
||||
SYNC(players[i].boostinfo.grade);
|
||||
|
||||
players[i].tripwireState = P_SyncUINT8(save, players[i].tripwireState);
|
||||
players[i].tripwirePass = P_SyncUINT8(save, players[i].tripwirePass);
|
||||
players[i].tripwireLeniency = P_SyncUINT16(save, players[i].tripwireLeniency);
|
||||
players[i].tripwireReboundDelay = P_SyncUINT8(save, players[i].tripwireReboundDelay);
|
||||
SYNC(players[i].tripwireState);
|
||||
SYNC(players[i].tripwirePass);
|
||||
SYNC(players[i].tripwireLeniency);
|
||||
SYNC(players[i].tripwireReboundDelay);
|
||||
|
||||
players[i].itemroulette = P_SyncUINT16(save, players[i].itemroulette);
|
||||
players[i].previtemroulette = P_SyncUINT16(save, players[i].previtemroulette);
|
||||
players[i].itemblink = P_SyncUINT16(save, players[i].itemblink);
|
||||
players[i].itemblinkmode = P_SyncUINT16(save, players[i].itemblinkmode);
|
||||
players[i].roulettetype = P_SyncUINT8(save, players[i].roulettetype);
|
||||
SYNC(players[i].itemroulette);
|
||||
SYNC(players[i].previtemroulette);
|
||||
SYNC(players[i].itemblink);
|
||||
SYNC(players[i].itemblinkmode);
|
||||
SYNC(players[i].roulettetype);
|
||||
|
||||
players[i].itemtype = P_SyncSINT8(save, players[i].itemtype);
|
||||
players[i].itemamount = P_SyncUINT8(save, players[i].itemamount);
|
||||
players[i].throwdir = P_SyncSINT8(save, players[i].throwdir);
|
||||
SYNC(players[i].itemtype);
|
||||
SYNC(players[i].itemamount);
|
||||
SYNC(players[i].throwdir);
|
||||
|
||||
players[i].sadtimer = P_SyncUINT8(save, players[i].sadtimer);
|
||||
SYNC(players[i].sadtimer);
|
||||
|
||||
players[i].rings = P_SyncSINT8(save, players[i].rings);
|
||||
players[i].ringmin = P_SyncSINT8(save, players[i].ringmin);
|
||||
players[i].ringmax = P_SyncSINT8(save, players[i].ringmax);
|
||||
players[i].pickuprings = P_SyncUINT8(save, players[i].pickuprings);
|
||||
players[i].ringdelay = P_SyncUINT8(save, players[i].ringdelay);
|
||||
players[i].ringlock = P_SyncUINT8(save, players[i].ringlock);
|
||||
players[i].ringboost = P_SyncUINT16(save, players[i].ringboost);
|
||||
players[i].ringtime = P_SyncUINT16(save, players[i].ringtime);
|
||||
players[i].superring = P_SyncUINT16(save, players[i].superring);
|
||||
players[i].nextringaward = P_SyncUINT8(save, players[i].nextringaward);
|
||||
players[i].ringvolume = P_SyncUINT8(save, players[i].ringvolume);
|
||||
players[i].ringtransparency = P_SyncUINT8(save, players[i].ringtransparency);
|
||||
SYNC(players[i].rings);
|
||||
SYNC(players[i].ringmin);
|
||||
SYNC(players[i].ringmax);
|
||||
SYNC(players[i].pickuprings);
|
||||
SYNC(players[i].ringdelay);
|
||||
SYNC(players[i].ringlock);
|
||||
SYNC(players[i].ringboost);
|
||||
SYNC(players[i].ringtime);
|
||||
SYNC(players[i].superring);
|
||||
SYNC(players[i].nextringaward);
|
||||
SYNC(players[i].ringvolume);
|
||||
SYNC(players[i].ringtransparency);
|
||||
|
||||
players[i].airdroptime = P_SyncUINT8(save, players[i].airdroptime);
|
||||
players[i].ringdrop = P_SyncUINT8(save, players[i].ringdrop);
|
||||
SYNC(players[i].airdroptime);
|
||||
SYNCBOOLEAN(players[i].ringdrop);
|
||||
|
||||
players[i].curshield = P_SyncUINT8(save, players[i].curshield);
|
||||
SYNC(players[i].curshield);
|
||||
|
||||
players[i].bubblecool = P_SyncUINT8(save, players[i].bubblecool);
|
||||
players[i].bubbleblowup = P_SyncUINT8(save, players[i].bubbleblowup);
|
||||
players[i].bubblehealth = P_SyncUINT8(save, players[i].bubblehealth);
|
||||
players[i].bubbleboost = P_SyncUINT16(save, players[i].bubbleboost);
|
||||
SYNC(players[i].bubblecool);
|
||||
SYNC(players[i].bubbleblowup);
|
||||
SYNC(players[i].bubblehealth);
|
||||
SYNC(players[i].bubbleboost);
|
||||
|
||||
players[i].flamedash = P_SyncUINT16(save, players[i].flamedash);
|
||||
players[i].flametimer = P_SyncINT32(save, players[i].flametimer);
|
||||
players[i].flamestore = P_SyncUINT8(save, players[i].flamestore);
|
||||
SYNC(players[i].flamedash);
|
||||
SYNC(players[i].flametimer);
|
||||
SYNC(players[i].flamestore);
|
||||
|
||||
players[i].hyudorotimer = P_SyncUINT16(save, players[i].hyudorotimer);
|
||||
players[i].stealingtimer = P_SyncSINT8(save, players[i].stealingtimer);
|
||||
SYNC(players[i].hyudorotimer);
|
||||
SYNC(players[i].stealingtimer);
|
||||
|
||||
players[i].sneakertimer = P_SyncUINT16(save, players[i].sneakertimer);
|
||||
players[i].realsneakertimer = P_SyncUINT16(save, players[i].realsneakertimer);
|
||||
players[i].floorboost = P_SyncUINT8(save, players[i].floorboost);
|
||||
players[i].chaintimer = P_SyncUINT16(save, players[i].chaintimer);
|
||||
SYNC(players[i].sneakertimer);
|
||||
SYNC(players[i].realsneakertimer);
|
||||
SYNC(players[i].floorboost);
|
||||
SYNC(players[i].chaintimer);
|
||||
|
||||
players[i].boostcharge = P_SyncUINT8(save, players[i].boostcharge);
|
||||
SYNC(players[i].boostcharge);
|
||||
|
||||
players[i].slopeboost = P_SyncFixed(save, players[i].slopeboost);
|
||||
players[i].prevslopeboost = P_SyncFixed(save, players[i].prevslopeboost);
|
||||
players[i].slopeaccel = P_SyncFixed(save, players[i].slopeaccel);
|
||||
SYNC(players[i].slopeboost);
|
||||
SYNC(players[i].prevslopeboost);
|
||||
SYNC(players[i].slopeaccel);
|
||||
|
||||
players[i].growshrinktimer = P_SyncINT16(save, players[i].growshrinktimer);
|
||||
players[i].growcancel = P_SyncINT16(save, players[i].growcancel);
|
||||
SYNC(players[i].growshrinktimer);
|
||||
SYNC(players[i].growcancel);
|
||||
|
||||
players[i].rocketsneakertimer = P_SyncUINT16(save, players[i].rocketsneakertimer);
|
||||
SYNC(players[i].rocketsneakertimer);
|
||||
|
||||
players[i].invincibilitytimer = P_SyncUINT16(save, players[i].invincibilitytimer);
|
||||
players[i].maxinvincibilitytime = P_SyncUINT16(save, players[i].maxinvincibilitytime);
|
||||
players[i].invincibilitybottleneck = P_SyncUINT16(save, players[i].invincibilitybottleneck);
|
||||
players[i].invincibilitycancel = P_SyncINT16(save, players[i].invincibilitycancel);
|
||||
SYNC(players[i].invincibilitytimer);
|
||||
SYNC(players[i].maxinvincibilitytime);
|
||||
SYNC(players[i].invincibilitybottleneck);
|
||||
SYNC(players[i].invincibilitycancel);
|
||||
|
||||
players[i].eggmanexplode = P_SyncUINT8(save, players[i].eggmanexplode);
|
||||
players[i].eggmanblame = P_SyncSINT8(save, players[i].eggmanblame);
|
||||
SYNC(players[i].eggmanexplode);
|
||||
SYNC(players[i].eggmanblame);
|
||||
|
||||
players[i].bananadrag = P_SyncUINT16(save, players[i].bananadrag);
|
||||
SYNC(players[i].bananadrag);
|
||||
|
||||
players[i].lastjawztarget = P_SyncSINT8(save, players[i].lastjawztarget);
|
||||
players[i].jawztargetdelay = P_SyncUINT8(save, players[i].jawztargetdelay);
|
||||
SYNC(players[i].lastjawztarget);
|
||||
SYNC(players[i].jawztargetdelay);
|
||||
|
||||
players[i].confirmVictim = P_SyncUINT8(save, players[i].confirmVictim);
|
||||
players[i].confirmVictimDelay = P_SyncUINT8(save, players[i].confirmVictimDelay);
|
||||
SYNC(players[i].confirmVictim);
|
||||
SYNC(players[i].confirmVictimDelay);
|
||||
|
||||
players[i].interpoints = P_SyncINT32(save, players[i].interpoints);
|
||||
players[i].roundscore = P_SyncUINT32(save, players[i].roundscore);
|
||||
players[i].emeralds = P_SyncUINT8(save, players[i].emeralds);
|
||||
players[i].bumper = P_SyncUINT8(save, players[i].bumper);
|
||||
players[i].karmadelay = P_SyncINT16(save, players[i].karmadelay);
|
||||
players[i].karmamode = P_SyncINT16(save, players[i].karmamode);
|
||||
players[i].karmapoints = P_SyncINT16(save, players[i].karmapoints);
|
||||
players[i].wanted = P_SyncINT16(save, players[i].wanted);
|
||||
SYNC(players[i].interpoints);
|
||||
SYNC(players[i].roundscore);
|
||||
SYNC(players[i].emeralds);
|
||||
SYNC(players[i].bumper);
|
||||
SYNC(players[i].karmadelay);
|
||||
SYNC(players[i].karmamode);
|
||||
SYNC(players[i].karmapoints);
|
||||
SYNC(players[i].wanted);
|
||||
|
||||
players[i].glanceDir = P_SyncSINT8(save, players[i].glanceDir);
|
||||
SYNC(players[i].glanceDir);
|
||||
|
||||
players[i].breathTimer = P_SyncUINT16(save, players[i].breathTimer);
|
||||
SYNC(players[i].breathTimer);
|
||||
|
||||
players[i].lastsafelap = P_SyncUINT8(save, players[i].lastsafelap);
|
||||
players[i].lastsafestarpost = P_SyncUINT8(save, players[i].lastsafestarpost);
|
||||
SYNC(players[i].lastsafelap);
|
||||
SYNC(players[i].lastsafestarpost);
|
||||
|
||||
players[i].typing_timer = P_SyncUINT8(save, players[i].typing_timer);
|
||||
players[i].typing_duration = P_SyncUINT8(save, players[i].typing_duration);
|
||||
SYNC(players[i].typing_timer);
|
||||
SYNC(players[i].typing_duration);
|
||||
|
||||
players[i].kickstartaccel = P_SyncUINT8(save, players[i].kickstartaccel);
|
||||
SYNC(players[i].kickstartaccel);
|
||||
|
||||
players[i].itemflags = P_SyncUINT8(save, players[i].itemflags);
|
||||
SYNC(players[i].itemflags);
|
||||
|
||||
// botvars_t
|
||||
players[i].bot = P_SyncUINT8(save, players[i].bot);
|
||||
players[i].botvars.style = P_SyncUINT8(save, players[i].botvars.style);
|
||||
players[i].botvars.difficulty = P_SyncUINT8(save, players[i].botvars.difficulty);
|
||||
players[i].botvars.diffincrease = P_SyncUINT8(save, players[i].botvars.diffincrease);
|
||||
players[i].botvars.rival = P_SyncUINT8(save, players[i].botvars.rival);
|
||||
players[i].botvars.rubberband = P_SyncFixed(save, players[i].botvars.rubberband);
|
||||
players[i].botvars.controller = P_SyncUINT16(save, players[i].botvars.controller);
|
||||
SYNCBOOLEAN(players[i].bot);
|
||||
SYNC(players[i].botvars.style);
|
||||
SYNC(players[i].botvars.difficulty);
|
||||
SYNC(players[i].botvars.diffincrease);
|
||||
SYNCBOOLEAN(players[i].botvars.rival);
|
||||
SYNC(players[i].botvars.rubberband);
|
||||
SYNC(players[i].botvars.controller);
|
||||
|
||||
players[i].outrun = P_SyncFixed(save, players[i].outrun);
|
||||
players[i].outruntime = P_SyncUINT8(save, players[i].outruntime);
|
||||
SYNC(players[i].outrun);
|
||||
SYNC(players[i].outruntime);
|
||||
|
||||
// sonicloopsvars_t
|
||||
players[i].loop.radius = P_SyncFixed(save, players[i].loop.radius);
|
||||
players[i].loop.revolution = P_SyncFixed(save, players[i].loop.revolution);
|
||||
players[i].loop.min_revolution = P_SyncFixed(save, players[i].loop.min_revolution);
|
||||
players[i].loop.max_revolution = P_SyncFixed(save, players[i].loop.max_revolution);
|
||||
players[i].loop.yaw = P_SyncAngle(save, players[i].loop.yaw);
|
||||
players[i].loop.origin.x = P_SyncFixed(save, players[i].loop.origin.x);
|
||||
players[i].loop.origin.y = P_SyncFixed(save, players[i].loop.origin.y);
|
||||
players[i].loop.origin.z = P_SyncFixed(save, players[i].loop.origin.z);
|
||||
players[i].loop.origin_shift.x = P_SyncFixed(save, players[i].loop.origin_shift.x);
|
||||
players[i].loop.origin_shift.y = P_SyncFixed(save, players[i].loop.origin_shift.y);
|
||||
players[i].loop.shift.x = P_SyncFixed(save, players[i].loop.shift.x);
|
||||
players[i].loop.shift.y = P_SyncFixed(save, players[i].loop.shift.y);
|
||||
players[i].loop.flip = P_SyncUINT8(save, players[i].loop.flip);
|
||||
SYNC(players[i].loop.radius);
|
||||
SYNC(players[i].loop.revolution);
|
||||
SYNC(players[i].loop.min_revolution);
|
||||
SYNC(players[i].loop.max_revolution);
|
||||
SYNC(players[i].loop.yaw);
|
||||
SYNC(players[i].loop.origin.x);
|
||||
SYNC(players[i].loop.origin.y);
|
||||
SYNC(players[i].loop.origin.z);
|
||||
SYNC(players[i].loop.origin_shift.x);
|
||||
SYNC(players[i].loop.origin_shift.y);
|
||||
SYNC(players[i].loop.shift.x);
|
||||
SYNC(players[i].loop.shift.y);
|
||||
SYNCBOOLEAN(players[i].loop.flip);
|
||||
|
||||
// sonicloopcamvars_t
|
||||
players[i].loop.camera.enter_tic = P_SyncUINT32(save, players[i].loop.camera.enter_tic);
|
||||
players[i].loop.camera.exit_tic = P_SyncUINT32(save, players[i].loop.camera.exit_tic);
|
||||
players[i].loop.camera.zoom_in_speed = P_SyncUINT32(save, players[i].loop.camera.zoom_in_speed);
|
||||
players[i].loop.camera.zoom_out_speed = P_SyncUINT32(save, players[i].loop.camera.zoom_out_speed);
|
||||
players[i].loop.camera.dist = P_SyncFixed(save, players[i].loop.camera.dist);
|
||||
players[i].loop.camera.pan = P_SyncAngle(save, players[i].loop.camera.pan);
|
||||
players[i].loop.camera.pan_speed = P_SyncFixed(save, players[i].loop.camera.pan_speed);
|
||||
players[i].loop.camera.pan_accel = P_SyncUINT32(save, players[i].loop.camera.pan_accel);
|
||||
players[i].loop.camera.pan_back = P_SyncUINT32(save, players[i].loop.camera.pan_back);
|
||||
SYNC(players[i].loop.camera.enter_tic);
|
||||
SYNC(players[i].loop.camera.exit_tic);
|
||||
SYNC(players[i].loop.camera.zoom_in_speed);
|
||||
SYNC(players[i].loop.camera.zoom_out_speed);
|
||||
SYNC(players[i].loop.camera.dist);
|
||||
SYNC(players[i].loop.camera.pan);
|
||||
SYNC(players[i].loop.camera.pan_speed);
|
||||
SYNC(players[i].loop.camera.pan_accel);
|
||||
SYNC(players[i].loop.camera.pan_back);
|
||||
|
||||
// Restored NiGHTS stuff
|
||||
players[i].bumpertime = P_SyncUINT32(save, players[i].bumpertime);
|
||||
players[i].linkcount = P_SyncINT32(save, players[i].linkcount);
|
||||
players[i].linktimer = P_SyncUINT32(save, players[i].linktimer);
|
||||
players[i].maxlink = P_SyncINT32(save, players[i].maxlink);
|
||||
SYNC(players[i].bumpertime);
|
||||
SYNC(players[i].linkcount);
|
||||
SYNC(players[i].linktimer);
|
||||
SYNC(players[i].maxlink);
|
||||
|
||||
// Fix janky landing particle
|
||||
players[i].prevonground = P_SyncUINT8(save, players[i].prevonground);
|
||||
SYNCBOOLEAN(players[i].prevonground);
|
||||
|
||||
// Wall Transfer bonus
|
||||
players[i].walltransfered = P_SyncUINT8(save, players[i].walltransfered);
|
||||
players[i].walltransferboost = P_SyncUINT8(save, players[i].walltransferboost);
|
||||
SYNCBOOLEAN(players[i].walltransfered);
|
||||
SYNC(players[i].walltransferboost);
|
||||
|
||||
}
|
||||
TracyCZoneEnd(__zone);
|
||||
|
|
|
|||
Loading…
Reference in a new issue