moved event handling into Modules instead of having seperate event listener objects

This commit is contained in:
2010-07-29 00:02:12 +08:00
parent 91cdebd33a
commit b86d28541a
19 changed files with 152 additions and 165 deletions
+1 -28
View File
@@ -50,8 +50,6 @@ class Model : public Engine::ModelBase {
mAsteroids.clear();
mLevelList.clear();
SaveHighscoreList();
delete mLevelCompleteEventHandler;
delete mGameOverEventHandler;
};
virtual void OnRegisterCommands ();
@@ -70,32 +68,7 @@ class Model : public Engine::ModelBase {
std::string mPlayerName;
std::vector<std::string> mLevelList;
/* event handler class definitions */
class LevelCompleteEventHandler : public Engine::EventListenerBase {
public:
explicit LevelCompleteEventHandler (Model *view) : mModel (view) {};
virtual bool HandleEvent (const Engine::EventBasePtr &event) const {
return mModel->OnLevelComplete();
}
private:
LevelCompleteEventHandler() {};
Model *mModel;
};
class GameOverEventHandler : public Engine::EventListenerBase {
public:
explicit GameOverEventHandler (Model *view) : mModel (view) {};
virtual bool HandleEvent (const Engine::EventBasePtr &event) const {
return mModel->OnGameOver();
}
private:
GameOverEventHandler() {};
Model *mModel;
};
/* event handler member variables */
LevelCompleteEventHandler *mLevelCompleteEventHandler;
GameOverEventHandler *mGameOverEventHandler;
virtual bool OnReceiveEvent (const Engine::EventBasePtr &event);
friend class View;
};