00001
00008 #ifndef _CMISSION_H
00009 #define _CMISSION_H
00010
00011 class cMission;
00012
00013 #include "cWorld.h"
00014 #include "cObject.h"
00015 #include "cPad.h"
00016
00017 #include <vector>
00018
00019
00027 class cMission {
00028 protected:
00029
00030 std::vector<cObject*> mVictory;
00031 std::vector<cObject*> mDefeat;
00032 int mState;
00033 public:
00034 cMission() :mState(0) {};
00035
00041 virtual cObject* init(cWorld* world) = 0;
00042
00049 virtual void checkConditions();
00050
00052 void onVictory();
00053
00055 void onDefeat();
00056
00060
00061
00065
00066 };
00067
00068
00072 class cEmptyMission : public cMission {
00073 virtual cObject* init(cWorld* world);
00074 };
00075
00076
00080 class cTestMission : public cMission {
00081 virtual cObject* init(cWorld* world);
00082 virtual void onVictory();
00083 virtual void onDefeat();
00084 private:
00085 cObject* initMechs(cWorld* world);
00086 void initFlora(cWorld* world);
00087 void initArchitecture(cWorld* world);
00088 };
00089
00100 class cPSO_M1: public cMission {
00101 virtual cObject* init(cWorld* world);
00102 virtual void onVictory();
00103 virtual void onDefeat();
00104 };
00105
00106
00110 class cXMLMission : public cMission {
00111 virtual cObject* init(cWorld* world);
00112 };
00113
00114 #endif
00115