From a4c804b49ec872b71bd5a0167c3ad45704a3cc30 Mon Sep 17 00:00:00 2001 From: adiblol Date: Thu, 8 Mar 2012 19:32:05 +0100 Subject: Initial commit, Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch --- src/taskbuild.h | 74 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 src/taskbuild.h (limited to 'src/taskbuild.h') diff --git a/src/taskbuild.h b/src/taskbuild.h new file mode 100644 index 0000000..6d8a234 --- /dev/null +++ b/src/taskbuild.h @@ -0,0 +1,74 @@ +// taskbuild.h + +#ifndef _TASKBUILD_H_ +#define _TASKBUILD_H_ + + +class CInstanceManager; +class CTerrain; +class CBrain; +class CPhysics; +class CObject; + + + +#define BUILDMARGIN 16.0f +#define TBMAXLIGHT 4 + + +enum TaskBuildPhase +{ + TBP_TURN = 1, // tourne + TBP_MOVE = 2, // avance/recule + TBP_TAKE = 3, // prend arme + TBP_PREP = 4, // prépare + TBP_BUILD = 5, // construit + TBP_TERM = 6, // termine + TBP_RECEDE = 7, // recule terminal +}; + + + +class CTaskBuild : public CTask +{ +public: + CTaskBuild(CInstanceManager* iMan, CObject* object); + ~CTaskBuild(); + + BOOL EventProcess(const Event &event); + + Error Start(ObjectType type); + Error IsEnded(); + BOOL Abort(); + +protected: + Error FlatFloor(); + BOOL CreateBuilding(D3DVECTOR pos, float angle); + void CreateLight(); + void BlackLight(); + CObject* SearchMetalObject(float &angle, float dMin, float dMax, float aLimit, Error &err); + void DeleteMark(D3DVECTOR pos, float radius); + +protected: + ObjectType m_type; // type de construction + CObject* m_metal; // objet metal transformé + CObject* m_power; // pile du véhicule + CObject* m_building; // batiment construit + TaskBuildPhase m_phase; // phase de l'opération + BOOL m_bError; // TRUE -> opération impossible + BOOL m_bBuild; // TRUE -> batiment construit + BOOL m_bBlack; // TRUE -> lumières noir -> blanc + float m_time; // temps absolu + float m_lastParticule;// temps génération dernière particule + float m_progress; // progression (0..1) + float m_speed; // vitesse de la progression + float m_angleY; // angle de rotation du véhicule + float m_angleZ; // angle de rotation du canon + D3DVECTOR m_buildingPos; // position initiale du batiment + float m_buildingHeight;// hauteur du building + int m_lightRank[TBMAXLIGHT];// lumières pour les effets + int m_soundChannel; +}; + + +#endif //_TASKBUILD_H_ -- cgit v1.2.3-1-g7c22