The-Simpsons-Hit-and-Run/game/code/data/PersistentWorldManager.h

50 lines
1.8 KiB
C++

//===========================================================================
// Copyright (C) 2003 Radical Entertainment Ltd. All rights reserved.
//
// Component: PersistentWorldManager
//
// Description: Manage the state of the world we want to keep during gameplay
// and record to memory card.
//
// Authors: James Harrison
//
// Revisions Date Author Revision
// 24 Feb James Harrison Created for SRR2
//
//===========================================================================
#ifndef PERSISTENT_WORLD_MANAGER_H
#define PERSISTENT_WORLD_MANAGER_H
class PersistentWorldManager
{
public:
// Static Methods for accessing this singleton.
static PersistentWorldManager* CreateInstance();
static void DestroyInstance();
static PersistentWorldManager* GetInstance();
void OnSectorLoad( tUID Sector );
void OnLevelLoad( int LevelNum );
short GetPersistentObjectID( tUID Sector, tUID ObjectName = 0 );
short GetPersistentObjectID( void ); // This is a level based object not associated with a particular sector.
void OnObjectBreak( short ObjectID );
protected:
PersistentWorldManager();
~PersistentWorldManager();
PersistentWorldManager( const PersistentWorldManager& );
PersistentWorldManager& operator= ( const PersistentWorldManager& );
bool CheckObject( unsigned char SectorIndex, unsigned char ObjectIndex ) const;
// Pointer to the one and only instance of this singleton.
static PersistentWorldManager* spInstance;
unsigned char mCurSectorLoad; // Just to speed up the searches.
};
// Standard syntactic sugar for getting at this singleton.
inline PersistentWorldManager* GetPersistentWorldManager() { return PersistentWorldManager::GetInstance(); }
#endif //#ifndef PERSISTENT_WORLD_MANAGER_H