mirror of
https://github.com/openmoh/openmohaa.git
synced 2025-04-28 21:57:57 +03:00
Fix archive data between 64-bit and 32-bit architectures
This commit is contained in:
parent
fef30ff3d5
commit
d400d8927d
7 changed files with 69 additions and 5 deletions
|
@ -1143,6 +1143,40 @@ Vector G_PredictPosition(Vector start, Vector target, Vector targetvelocity, flo
|
|||
return projected;
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
G_ArchiveTrace
|
||||
==============
|
||||
*/
|
||||
void G_ArchiveTrace(Archiver& arc, trace_t *trace)
|
||||
{
|
||||
arc.ArchiveBoolean(&trace->allsolid);
|
||||
arc.ArchiveBoolean(&trace->startsolid);
|
||||
arc.ArchiveFloat(&trace->fraction);
|
||||
arc.ArchiveVec3(trace->endpos);
|
||||
arc.ArchiveVec3(trace->plane.normal);
|
||||
arc.ArchiveFloat(&trace->plane.dist);
|
||||
arc.ArchiveByte(&trace->plane.type);
|
||||
arc.ArchiveByte(&trace->plane.signbits);
|
||||
arc.ArchiveInteger(&trace->surfaceFlags);
|
||||
arc.ArchiveInteger(&trace->shaderNum);
|
||||
arc.ArchiveInteger(&trace->contents);
|
||||
arc.ArchiveInteger(&trace->entityNum);
|
||||
arc.ArchiveInteger(&trace->location);
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
G_ArchiveClient
|
||||
==============
|
||||
*/
|
||||
void G_ArchiveClient(Archiver& arc, gclient_t* client)
|
||||
{
|
||||
arc.ArchiveVec3(client->cmd_angles);
|
||||
arc.ArchiveInteger(&client->lastActiveTime);
|
||||
arc.ArchiveInteger(&client->activeWarning);
|
||||
}
|
||||
|
||||
/*
|
||||
==============
|
||||
G_ArchiveEdict
|
||||
|
@ -1160,7 +1194,7 @@ void G_ArchiveEdict(Archiver& arc, gentity_t *edict)
|
|||
//
|
||||
|
||||
if (edict->client) {
|
||||
arc.ArchiveRaw(edict->client, sizeof(*edict->client));
|
||||
G_ArchiveClient(arc, edict->client);
|
||||
}
|
||||
|
||||
arc.ArchiveInteger(&edict->s.beam_entnum);
|
||||
|
|
|
@ -30,6 +30,8 @@ class SimpleEntity;
|
|||
class SimpleArchivedEntity;
|
||||
class ScriptThread;
|
||||
|
||||
void G_ArchiveTrace(Archiver& arc, trace_t* trace);
|
||||
void G_ArchiveClient(Archiver& arc, gclient_t* client);
|
||||
void G_ArchiveEdict(Archiver& arc, gentity_t *edict);
|
||||
|
||||
void G_AllocDebugLines(void);
|
||||
|
|
|
@ -121,7 +121,7 @@ void Game::Archive(Archiver& arc)
|
|||
}
|
||||
|
||||
for (i = 0; i < maxclients; i++) {
|
||||
arc.ArchiveRaw(&clients[i], sizeof(gclient_t));
|
||||
G_ArchiveClient(arc, &clients[i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -218,10 +218,23 @@ qboolean cMoveGrid::CheckStuck(void)
|
|||
|
||||
void cMoveGrid::Archive(Archiver& arc)
|
||||
{
|
||||
int i;
|
||||
|
||||
arc.ArchiveInteger(&m_iXRes);
|
||||
arc.ArchiveInteger(&m_iYRes);
|
||||
arc.ArchiveInteger(&m_iZRes);
|
||||
arc.ArchiveRaw(&v, sizeof(vmove_t));
|
||||
|
||||
arc.ArchiveFloat(&v.frametime);
|
||||
arc.ArchiveFloat(&v.desired_speed);
|
||||
arc.ArchiveInteger(&v.tracemask);
|
||||
arc.ArchiveInteger(&v.numtouch);
|
||||
|
||||
for (i = 0; i < ARRAY_LEN(v.touchents); i++) {
|
||||
arc.ArchiveInteger(&v.touchents[i]);
|
||||
}
|
||||
arc.ArchiveVec3(v.mins);
|
||||
arc.ArchiveVec3(v.maxs);
|
||||
|
||||
arc.ArchiveVec3(orientation[0]);
|
||||
arc.ArchiveVec3(orientation[1]);
|
||||
arc.ArchiveVec3(orientation[2]);
|
||||
|
|
|
@ -39,7 +39,7 @@ typedef struct vehicleState_s {
|
|||
int entityNum;
|
||||
vec2_t desired_dir;
|
||||
qboolean hit_obstacle;
|
||||
float hit_origin[3];
|
||||
vec3_t hit_origin;
|
||||
vec3_t obstacle_normal;
|
||||
qboolean useGravity;
|
||||
} vehicleState_t;
|
||||
|
|
|
@ -1219,6 +1219,9 @@ inline void Player::Archive(Archiver& arc)
|
|||
for (int i = 0; i < MAX_SPEED_MULTIPLIERS; i++) {
|
||||
arc.ArchiveFloat(&speed_multiplier[i]);
|
||||
}
|
||||
|
||||
arc.ArchiveInteger(&client->ps.iViewModelAnim);
|
||||
arc.ArchiveInteger(&client->ps.iViewModelAnimChanged);
|
||||
}
|
||||
|
||||
inline Camera *Player::CurrentCamera(void)
|
||||
|
|
|
@ -6782,7 +6782,19 @@ void Vehicle::Archive(Archiver& arc)
|
|||
arc.ArchiveBoolean(&m_bRemoveOnDeath);
|
||||
arc.ArchiveBoolean(&m_bStopEnabled);
|
||||
arc.ArchiveBoolean(&m_bEnableSkidding);
|
||||
arc.ArchiveRaw(&vs, sizeof(vehicleState_t));
|
||||
|
||||
arc.ArchiveVec3(vs.origin);
|
||||
arc.ArchiveVec3(vs.velocity);
|
||||
arc.ArchiveInteger(&vs.groundEntityNum);
|
||||
arc.ArchiveBoolean(&vs.walking);
|
||||
arc.ArchiveBoolean(&vs.groundPlane);
|
||||
G_ArchiveTrace(arc, &vs.groundTrace);
|
||||
arc.ArchiveInteger(&vs.entityNum);
|
||||
arc.ArchiveVec2(vs.desired_dir);
|
||||
arc.ArchiveBoolean(&vs.hit_obstacle);
|
||||
arc.ArchiveVec3(vs.hit_origin);
|
||||
arc.ArchiveVec3(vs.obstacle_normal);
|
||||
arc.ArchiveBoolean(&vs.useGravity);
|
||||
|
||||
if (!arc.Saving()) {
|
||||
m_sMoveGrid = new cMoveGrid(3, 3, 1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue