00001
00009 #ifndef _CMISSION_H
00010 #define _CMISSION_H
00011
00012 class cMission;
00013
00014 #include "cWorld.h"
00015 #include "cObject.h"
00016 #include "cPad.h"
00017
00018 #include <vector>
00019
00020
00028 class cMission {
00029 protected:
00030
00031 std::vector<cObject*> mVictory;
00032 std::vector<cObject*> mDefeat;
00033 int mState;
00034 public:
00035 cMission() :mState(0) {};
00036
00042 virtual cObject* init(cWorld* world) = 0;
00043
00050 virtual void checkConditions();
00051
00053 void onVictory();
00054
00056 void onDefeat();
00057
00061
00062
00066
00067 };
00068
00069
00073 class cEmptyMission : public cMission {
00074 virtual cObject* init(cWorld* world);
00075 };
00076
00077
00081 class cTestMission : public cMission {
00082 virtual cObject* init(cWorld* world);
00083 virtual void onVictory();
00084 virtual void onDefeat();
00085 private:
00086 cObject* initMechs(cWorld* world);
00087 void initFlora(cWorld* world);
00088 void initArchitecture(cWorld* world);
00089 };
00090
00102 #endif
00103