summaryrefslogtreecommitdiffstats
path: root/src/taskbuild.h
diff options
context:
space:
mode:
authoradiblol <adiblol@1tbps.org>2012-03-08 19:32:05 +0100
committeradiblol <adiblol@1tbps.org>2012-03-08 19:32:05 +0100
commita4c804b49ec872b71bd5a0167c3ad45704a3cc30 (patch)
tree8c931235247d662ca46a99695beb328fdfc8e8a8 /src/taskbuild.h
downloadcolobot-a4c804b49ec872b71bd5a0167c3ad45704a3cc30.tar.gz
colobot-a4c804b49ec872b71bd5a0167c3ad45704a3cc30.tar.bz2
colobot-a4c804b49ec872b71bd5a0167c3ad45704a3cc30.zip
Initial commit, Copyright (C) 2001-2008, Daniel ROUX & EPSITEC SA, www.epsitec.ch
Diffstat (limited to 'src/taskbuild.h')
-rw-r--r--src/taskbuild.h74
1 files changed, 74 insertions, 0 deletions
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_