Add structs for landmark transition (not implemented yet)

This commit is contained in:
mittorn 2018-10-17 16:32:23 +07:00
parent 7f4479dc1d
commit 4399ab7fb5
2 changed files with 41 additions and 3 deletions

View File

@ -873,7 +873,11 @@ void GGM_SaveState( CBasePlayer *pPlayer )
if( pPlayer->pev->health <= 0 ) if( pPlayer->pev->health <= 0 )
return; return;
pState->t.vecOrigin = pPlayer->pev->origin; pState->t.pos.vecOrigin = pPlayer->pev->origin;
pState->t.pos.vecAngles = pPlayer->pev->angles;
pState->t.pos.fDuck = !!(pPlayer->pev->flags & FL_DUCKING);
strncpy( pState->t.pos.mapName, STRING(gpGlobals->mapname), 31 );
pState->t.flHealth = pPlayer->pev->health; pState->t.flHealth = pPlayer->pev->health;
pState->t.flBattery = pPlayer->pev->armorvalue; pState->t.flBattery = pPlayer->pev->armorvalue;
if(pPlayer->m_pActiveItem.Get()) if(pPlayer->m_pActiveItem.Get())
@ -915,8 +919,16 @@ bool GGM_RestoreState(CBasePlayer *pPlayer)
if( pState->t.flHealth < 1 ) if( pState->t.flHealth < 1 )
return false; return false;
pPlayer->pev->armorvalue = pState->t.flBattery; pPlayer->pev->armorvalue = pState->t.flBattery;
pPlayer->pev->origin = pState->t.vecOrigin;
pPlayer->pev->health = pState->t.flHealth; pPlayer->pev->health = pState->t.flHealth;
pPlayer->pev->origin = pState->t.pos.vecOrigin;
if( pState->t.pos.fDuck )
{
pPlayer->pev->view_ofs.z = 12;
pPlayer->pev->flags |= FL_DUCKING;
UTIL_SetSize( pPlayer->pev, VEC_DUCK_HULL_MIN, VEC_DUCK_HULL_MAX );
}
pPlayer->pev->angles = pState->t.pos.vecAngles;
pPlayer->RemoveAllItems( FALSE ); pPlayer->RemoveAllItems( FALSE );
for( i = 0; i < MAX_WEAPONS; i++ ) for( i = 0; i < MAX_WEAPONS; i++ )

View File

@ -103,9 +103,35 @@ public:
void Show(); void Show();
}; };
// offset for all maps relative to current map
struct GGMMapOffset
{
struct GGMMapOffset *pNext;
char mapName[32];
Vector vecOffset;
};
// use this to translate GGMMapOffset during changelevel
struct GGMLandmarkTransition
{
char sourceMap[32];
char targetMap[32];
Vector vecLandmark;
};
// full player map-independed position data
struct GGMPosition
{
Vector vecOrigin;
Vector vecAngles;
char mapName[32];
char trainGlobal[32];
Vector vecTrainOffset;
Vector vecTrainAngles;
bool fDuck;
};
// login records are persistent
struct GGMLogin struct GGMLogin
{ {
struct GGMLogin *pNext; struct GGMLogin *pNext;
@ -138,7 +164,7 @@ struct GGMTempState
char rgiClip[MAX_WEAPONS];// ammo names char rgiClip[MAX_WEAPONS];// ammo names
int rgAmmo[MAX_AMMO_SLOTS];// ammo quantities int rgAmmo[MAX_AMMO_SLOTS];// ammo quantities
char WeaponName[32]; char WeaponName[32];
Vector vecOrigin; GGMPosition pos;
}; };
struct GGMPlayerState struct GGMPlayerState