31#include "hpl1/engine/graphics/GraphicsTypes.h"
32#include "hpl1/engine/math/MathTypes.h"
33#include "hpl1/engine/system/SystemTypes.h"
35#include "hpl1/engine/scene/Entity3D.h"
36#include "hpl1/engine/scene/SoundSource.h"
38#include "hpl1/engine/game/GameTypes.h"
40#include "hpl1/engine/game/SaveGame.h"
61class cParticleManager;
62class cParticleSystem3D;
64class cPortalContainer;
65class iRenderableContainer;
74class cAINodeContainer;
76class cAINodeGeneratorParams;
107typedef cSTLIterator<cMeshEntity *, tMeshEntityList, tMeshEntityListIt> cMeshEntityIterator;
108typedef cSTLIterator<cBillboard *, tBillboardList, tBillboardListIt> cBillboardIterator;
109typedef cSTLIterator<iLight3D *, tLight3DList, tLight3DListIt> cLight3DListIterator;
110typedef cSTLIterator<cParticleSystem3D *, tParticleSystem3DList, tParticleSystem3DListIt> cParticleSystem3DIterator;
111typedef cSTLIterator<cSoundEntity *, tSoundEntityList, tSoundEntityListIt> cSoundEntityIterator;
112typedef cSTLIterator<cBeam *, tBeamList, tBeamListIt> cBeamIterator;
153 cMatrixf &GetWorldMatrix() {
return m_mtxTransform; }
154 cMatrixf &GetLocalMatrix() {
return m_mtxTransform; }
155 void SetMatrix(
const cMatrixf &a_mtxTrans) { m_mtxTransform = a_mtxTrans; }
157 tString &GetName() {
return msName; }
174 virtual int GetSaveCreatePrio();
185 tString GetName() {
return msName; }
187 bool CreateFromFile(
tString asFile);
189 void SetFileName(
const tString &asFile) { msFileName = asFile; }
190 const tString &GetFileName() {
return msFileName; }
192 void Update(
float afTimeStep);
194 void PreUpdate(
float afTotalTime,
float afTimeStep);
196 cVector3f GetWorldSize() {
return mvWorldSize; }
198 iScript *GetScript() {
return mpScript; }
199 void SetScript(
iScript *apScript) { mpScript = apScript; }
204 cPhysics *GetPhysics() {
return mpPhysics; }
205 cResources *GetResources() {
return mpResources; }
206 cSound *GetSound() {
return mpSound; }
207 cSystem *GetSystem() {
return mpSystem; }
210 const tString &asFile,
bool abLoadReferences);
220 void SetPhysicsWorld(
iPhysicsWorld *apWorld,
bool abAutoDelete =
true);
237 void DrawMeshBoundingBoxes(
const cColor &aColor,
bool abStatic);
243 bool abAddToContainer =
true);
244 void DestroyLight(
iLight3D *apLight);
249 cLight3DListIterator GetLightIterator() {
return cLight3DListIterator(&mlstLights); }
253 cBillboard *CreateBillboard(
const tString &asName,
const cVector2f &avSize,
254 const tString &asMaterial =
"",
255 bool abAddToContainer =
true, cMatrixf *apTransform = NULL);
256 void DestroyBillboard(cBillboard *apObject);
257 cBillboard *GetBillboard(
const tString &asName);
258 cBillboardIterator GetBillboardIterator();
262 cBeam *CreateBeam(
const tString &asName);
263 void DestroyBeam(cBeam *apObject);
264 cBeam *GetBeam(
const tString &asName);
265 cBeamIterator GetBeamIterator();
269 cParticleSystem3D *CreateParticleSystem(
const tString &asName,
const tString &asType,
270 const cVector3f &avSize,
const cMatrixf &a_mtxTransform);
271 void DestroyParticleSystem(cParticleSystem3D *apPS);
272 cParticleSystem3D *GetParticleSystem(
const tString &asName);
273 bool ParticleSystemExists(cParticleSystem3D *apPS);
275 cParticleSystem3DIterator GetParticleSystemIterator() {
return cParticleSystem3DIterator(&mlstParticleSystems); }
279 cColliderEntity *CreateColliderEntity(
const tString &asName, iPhysicsBody *apBody);
280 void DestroyColliderEntity(cColliderEntity *apCollider);
281 cColliderEntity *GetColliderEntity(
const tString &asName);
285 cSoundEntity *CreateSoundEntity(
const tString &asName,
const tString &asSoundEntity,
286 bool abRemoveWhenOver);
287 void DestroySoundEntity(cSoundEntity *apEntity);
288 cSoundEntity *GetSoundEntity(
const tString &asName);
289 void DestroyAllSoundEntities();
290 bool SoundEntityExists(cSoundEntity *apEntity);
292 cSoundEntityIterator GetSoundEntityIterator() {
return cSoundEntityIterator(&mlstSoundEntities); }
296 cStartPosEntity *CreateStartPos(
const tString &asName);
297 cStartPosEntity *GetStartPosEntity(
const tString &asName);
298 cStartPosEntity *GetFirstStartPosEntity();
302 void GenerateAINodes(cAINodeGeneratorParams *apParams);
304 cAINodeContainer *CreateAINodeContainer(
const tString &asName,
305 const tString &asNodeName,
306 const cVector3f &avSize,
307 bool abNodeIsAtCenter,
308 int alMinEdges,
int alMaxEdges,
float afMaxEdgeDistance,
311 cAStarHandler *CreateAStarHandler(cAINodeContainer *apContainer);
313 void AddAINode(
const tString &asName,
const tString &asType,
const cVector3f &avPosition);
314 tTempAiNodeList *GetAINodeList(
const tString &asType);
321 iSaveData *CreateSaveData();
324 void UpdateEntities(
float afTimeStep);
325 void UpdateBodies(
float afTimeStep);
326 void UpdateParticles(
float afTimeStep);
327 void UpdateLights(
float afTimeStep);
328 void UpdateSoundEntities(
float afTimeStep);
332 cGraphics *mpGraphics;
334 cResources *mpResources;
340 iPhysicsWorld *mpPhysicsWorld;
341 bool mbAutoDeletePhysicsWorld;
343 cVector3f mvWorldSize;
345 cPortalContainer *mpPortalContainer;
349 tLight3DList mlstLights;
350 tMeshEntityList mlstMeshEntities;
351 tBillboardList mlstBillboards;
353 tParticleSystem3DList mlstParticleSystems;
354 tColliderEntityList mlstColliders;
355 tSoundEntityList mlstSoundEntities;
356 tStartPosEntityList mlstStartPosEntities;
357 tAreaEntityMap m_mapAreaEntities;
359 tAINodeContainerList mlstAINodeContainers;
360 tAStarHandlerList mlstAStarHandlers;
361 tTempNodeContainerMap m_mapTempNodes;
366 cColor mAmbientColor;
ListInternal::Iterator< cParticleSystem3D * > iterator
Definition: list.h:52
typename TreeT::BasicIterator iterator
Definition: stablemap.h:48
Definition: tinyxml.h:864
Definition: World3D.h:137
Definition: Container.h:219
Definition: Graphics.h:46
Definition: Light3DPoint.h:46
Definition: Light3DSpot.h:54
Definition: MeshEntity.h:96
Definition: PortalContainer.h:229
Definition: Resources.h:160
Definition: SystemTypes.h:411
Definition: SaveGame.h:214
Definition: SaveGame.h:183
Definition: World3D.h:149
Definition: World3D.h:116
Definition: World3D.h:126
Definition: World3D.h:179
Definition: Entity3D.h:81
Definition: Light3D.h:117
Definition: PhysicsWorld.h:115
Definition: RenderableContainer.h:41
Definition: SaveGame.h:130
Definition: SerializeClass.h:230
Definition: list_intern.h:54