98 lines
2.3 KiB
C++
98 lines
2.3 KiB
C++
#pragma once
|
|
|
|
#include <toolkit/khash.h>
|
|
#include "SGameScene.h"
|
|
|
|
// fw decl
|
|
class SGameManager;
|
|
class KDeviceManager;
|
|
class KTextureManager;
|
|
class SSoundManager;
|
|
class SGameMilesSoundMgr;
|
|
class KNX3Manager;
|
|
class KFileManager;
|
|
class KViewportObject;
|
|
|
|
namespace rp {
|
|
|
|
class SGameSceneTimer
|
|
{
|
|
public:
|
|
SGameSceneTimer() : mTime( 0 ), mTimeDiff( 0 ) {}
|
|
~SGameSceneTimer() {}
|
|
void setTime( DWORD time )
|
|
{
|
|
mTimeDiff = time - mTime;
|
|
mTime = time;
|
|
}
|
|
DWORD getTime() const { return mTime; }
|
|
DWORD getDiff() const { return mTimeDiff; }
|
|
private:
|
|
DWORD mTime;
|
|
DWORD mTimeDiff;
|
|
};
|
|
|
|
class SGameSceneManager
|
|
{
|
|
public:
|
|
SGameSceneManager(
|
|
SGameManager& gameMgr
|
|
, KDeviceManager& graphics
|
|
, KTextureManager& textureMgr
|
|
, SSoundManager& soundMgr
|
|
, SGameMilesSoundMgr& milesSoundMgr
|
|
, KNX3Manager& nx3Mgr
|
|
, KFileManager& fileMgr )
|
|
: mGameMgr ( gameMgr )
|
|
, mGraphics ( graphics )
|
|
, mTextureMgr ( textureMgr )
|
|
, mSoundMgr ( soundMgr )
|
|
, mMilesSoundMgr ( milesSoundMgr )
|
|
, mNx3Mgr ( nx3Mgr )
|
|
, mFileMgr ( fileMgr )
|
|
{
|
|
}
|
|
/// 2011.08.18 메모리 누수 체크 - prodongi
|
|
~SGameSceneManager()
|
|
{
|
|
mScenes.clear();
|
|
mGarbages.clear();
|
|
}
|
|
|
|
// manager
|
|
SGameManager& gameMgr() { return mGameMgr; }
|
|
KDeviceManager& graphics() { return mGraphics; }
|
|
KTextureManager& textureMgr() { return mTextureMgr; }
|
|
SSoundManager& soundMgr() { return mSoundMgr; }
|
|
SGameMilesSoundMgr& milesSoundMgr() { return mMilesSoundMgr; }
|
|
KNX3Manager& nx3Mgr() { return mNx3Mgr; }
|
|
SGameSceneTimer& timer() { return mTimer; }
|
|
KFileManager& fileMgr() { return mFileMgr; }
|
|
|
|
// scene interface
|
|
void tick( DWORD time );
|
|
void render( KViewportObject* viewport );
|
|
void addScene( SGameScene& scene );
|
|
// 2010.07.06 - prodongi
|
|
void addScene(SGameScene& scene, SGameScene const* _where);
|
|
void removeScene( SGameScene& scene );
|
|
void removeScene2( SGameScene& scene );
|
|
|
|
private:
|
|
SGameManager& mGameMgr;
|
|
KDeviceManager& mGraphics;
|
|
KTextureManager& mTextureMgr;
|
|
SSoundManager& mSoundMgr;
|
|
SGameMilesSoundMgr& mMilesSoundMgr;
|
|
KNX3Manager& mNx3Mgr;
|
|
SGameSceneTimer mTimer;
|
|
KFileManager& mFileMgr;
|
|
|
|
typedef std::vector< SGameSceneIPtr > scene_vector_t;
|
|
scene_vector_t mScenes;
|
|
scene_vector_t mGarbages;
|
|
|
|
void _removeScene( SGameScene& scene );
|
|
};
|
|
|
|
} |