00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef __ACTION_UPGRADETO_H__
00031 #define __ACTION_UPGRADETO_H__
00032
00033 #include "actions.h"
00034
00036
00037 class COrder_TransformInto : public COrder
00038 {
00039 friend COrder *COrder::NewActionTransformInto(CUnitType &type);
00040 public:
00041 COrder_TransformInto() : COrder(UnitActionTransformInto), Type(NULL) {}
00042
00043 virtual COrder_TransformInto *Clone() const { return new COrder_TransformInto(*this); }
00044
00045 virtual bool IsValid() const;
00046
00047 virtual void Save(CFile &file, const CUnit &unit) const;
00048 virtual bool ParseSpecificData(lua_State *l, int &j, const char *value, const CUnit &unit);
00049
00050 virtual void Execute(CUnit &unit);
00051 virtual PixelPos Show(const CViewport &vp, const PixelPos &lastScreenPos) const;
00052 virtual void UpdatePathFinderData(PathFinderInput &input) { UpdatePathFinderData_NotCalled(input); }
00053
00054 private:
00055 CUnitType *Type;
00056 };
00057
00058
00059 class COrder_UpgradeTo : public COrder
00060 {
00061 friend COrder *COrder::NewActionUpgradeTo(CUnit &unit, CUnitType &type);
00062 public:
00063 COrder_UpgradeTo() : COrder(UnitActionUpgradeTo), Type(NULL), Ticks(0) {}
00064
00065 virtual COrder_UpgradeTo *Clone() const { return new COrder_UpgradeTo(*this); }
00066
00067 virtual bool IsValid() const;
00068
00069 virtual void Save(CFile &file, const CUnit &unit) const;
00070 virtual bool ParseSpecificData(lua_State *l, int &j, const char *value, const CUnit &unit);
00071
00072 virtual void Execute(CUnit &unit);
00073 virtual void Cancel(CUnit &unit);
00074 virtual PixelPos Show(const CViewport &vp, const PixelPos &lastScreenPos) const;
00075 virtual void UpdatePathFinderData(PathFinderInput &input) { UpdatePathFinderData_NotCalled(input); }
00076
00077 virtual void UpdateUnitVariables(CUnit &unit) const;
00078
00079 const CUnitType &GetUnitType() const { return *Type; }
00080 private:
00081 CUnitType *Type;
00082 int Ticks;
00083 };
00084
00085 #endif // !__ACTIONS_H__