00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00030 #if !defined(Cost_h)
00031 #define Cost_h
00032
00039 class Cost {
00040 public:
00041 Cost();
00042 Cost(const Cost & c);
00043
00044 void ReadCosts(const TiXmlNode * node);
00045 TiXmlNode * WriteCosts(TiXmlNode * node, const char * name) const;
00046 long GetResources() const { return mResources; }
00047 long GetCrew() const { return mCrew; }
00048 void SetResources(unsigned long r) { mResources = r; }
00049 void SetCrew(unsigned long c) { mCrew = c; }
00050 void Zero();
00051 long & operator [](long ct);
00052 long operator [](long ct) const;
00053 Cost & operator = (const Cost & c);
00054 Cost & operator *= (double factor);
00055 Cost & operator += (const Cost & c);
00056 Cost & operator -= (const Cost & c);
00057 friend bool operator == (const Cost & a, const Cost & c);
00058 friend Cost operator *(const Cost & c, double factor) { Cost r(c); r *= factor; return r; }
00059 friend Cost operator +(const Cost & a, const Cost & b) { Cost r(a); r += b; return r; }
00060 friend Cost operator -(const Cost & a, const Cost & b) { Cost r(a); r -= b; return r; }
00061
00062 void Cleanup() { mMinerals.clear(); }
00063
00064 protected:
00065 deque<long> mMinerals;
00066 long mResources;
00067 long mCrew;
00068 };
00069
00070 #endif // !defined(Cost_h)