{strNPCOFS(lastGoalEntity), F_GENTITY}, {strNPCOFS(eventualGoal), F_GENTITY}, {strNPCOFS(captureGoal), F_GENTITY}, {strNPCOFS(defendEnt), F_GENTITY}, {strNPCOFS(greetEnt), F_GENTITY}, {strNPCOFS(group), F_GROUP}, {strNPCOFS(blockedEntity), F_GENTITY}, {strNPCOFS(blockedTargetEntity),F_GENTITY}, {strNPCOFS(jumpTarget), F_GENTITY}, {strNPCOFS(watchTarget), F_GENTITY}, {NULL, 0, F_IGNORE} }; static const save_field_t savefields_LevelLocals[] = { {strLLOFS(locationHead), F_GENTITY}, {strLLOFS(alertEvents), F_ALERTEVENT}, {strLLOFS(groups), F_AIGROUPS}, {strLLOFS(knownAnimFileSets),F_ANIMFILESETS}, {NULL, 0, F_IGNORE} }; static const save_field_t savefields_gVHIC[] = { {strVHICOFS(m_pPilot), F_GENTITY}, {strVHICOFS(m_pOldPilot), F_GENTITY}, {strVHICOFS(m_pDroidUnit), F_GENTITY}, {strVHICOFS(m_pParentEntity), F_GENTITY}, //m_ppPassengers //!ptr array?! {strVHICOFS(m_pVehicleInfo), F_VEHINFO}, //!another ptr! store name field instead and re-hook on load?
{strNPCOFS(coverTarg), F_GENTITY}, {strNPCOFS(tempGoal), F_GENTITY}, {strNPCOFS(goalEntity), F_GENTITY}, {strNPCOFS(lastGoalEntity), F_GENTITY}, {strNPCOFS(eventualGoal), F_GENTITY}, {strNPCOFS(captureGoal), F_GENTITY}, {strNPCOFS(defendEnt), F_GENTITY}, {strNPCOFS(greetEnt), F_GENTITY}, {strNPCOFS(group), F_GROUP}, {NULL, 0, F_IGNORE} }; field_t savefields_LevelLocals[] = { {strLLOFS(locationHead), F_GENTITY}, {strLLOFS(alertEvents), F_ALERTEVENT}, {strLLOFS(groups), F_AIGROUPS}, {NULL, 0, F_IGNORE} }; /* struct gclient_s { // ps MUST be the first element, because the server expects it ok playerState_t ps; // communicated by server to clients // private to game ok clientPersistant_t pers; ok clientSession_t sess; ok usercmd_t usercmd; // most recent usercmd