00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef _CCOMCOM_H
00010 #define _CCOMCOM_H
00011
00012 class cComputer;
00013 class cComcom;
00014 class cTarcom;
00015 class cWepcom;
00016 class cSyscom;
00017 class cForcom;
00018 class cNavcom;
00019
00020 #include "cObject.h"
00021 #include "cMech.h"
00022
00023 class cComputer {
00024 public:
00025 virtual void drawHUD() = 0;
00026 virtual void process(float spf) = 0;
00027 };
00028
00034 class cComcom : public cComputer {
00035 protected:
00036 cObject* mDevice;
00037 Console* mConsole;
00038 OID mLastMessage;
00039 public:
00040 cComcom(cObject* device);
00041 void process(float spf);
00042 void drawHUD();
00043 };
00044
00048 class cTarcom : public cComputer {
00049 public:
00050 cObject* mDevice;
00051 std::list<cObject*>* near;
00052 OID selected;
00053 public:
00054 cTarcom(cObject* device);
00055 OID getSelected();
00056 void nextTarget();
00057 void prevTarget();
00058 void process(float spf);
00059 void drawHUD();
00060 };
00061
00065 class cSyscom : public cComputer {
00066 public:
00067 cObject* mDevice;
00068 public:
00069 cSyscom(cObject* device);
00070 void process(float spf);
00071 void drawHUD();
00072 };
00073
00077 class cWepcom : public cComputer {
00078 public:
00079 cObject* mDevice;
00080 public:
00081 cWepcom(cObject* device);
00082 void process(float spf);
00083 void drawHUD();
00084 };
00085
00089 class cForcom : public cComputer {
00090 public:
00091 cMech* mDevice;
00092 public:
00093 cForcom(cMech* device);
00094 void process(float spf);
00095 void drawHUD();
00096 };
00097
00098
00099
00100
00101
00102 class cNavcom : public cComputer {
00103 public:
00104 cObject* mDevice;
00105 int mWaypoint;
00106 bool mCyclic;
00107 std::vector< int > mRoute;
00108 std::vector< std::vector<float> > mPOIs;
00109 public:
00110 cNavcom(cObject* device);
00111 void process(float spf);
00112 void drawHUD();
00113 };
00114
00115
00116 #endif
00117