summaryrefslogtreecommitdiffstats
path: root/tools/statepropbuilder/apps/spbuilder/code/sp/engine/workspace.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/statepropbuilder/apps/spbuilder/code/sp/engine/workspace.hpp')
-rw-r--r--tools/statepropbuilder/apps/spbuilder/code/sp/engine/workspace.hpp67
1 files changed, 67 insertions, 0 deletions
diff --git a/tools/statepropbuilder/apps/spbuilder/code/sp/engine/workspace.hpp b/tools/statepropbuilder/apps/spbuilder/code/sp/engine/workspace.hpp
new file mode 100644
index 0000000..e476ebf
--- /dev/null
+++ b/tools/statepropbuilder/apps/spbuilder/code/sp/engine/workspace.hpp
@@ -0,0 +1,67 @@
+#ifndef _WORKSPACE_HPP_
+#define _WORKSPACE_HPP_
+
+#include <radmath/radmath.hpp>
+#include <simcollision/collisionmanager.hpp>
+
+#include "aicollisionsolveragent.hpp"
+
+class CStateProp;
+class tDrawable;
+
+//=============================================================================
+// Class Declarations
+// ViewerIterator
+//=============================================================================
+class ViewerIterator
+{
+public:
+ virtual ~ViewerIterator() {}
+ virtual tEntity* Current(void) = 0;
+ virtual tEntity* Next(bool loop = false) = 0;
+ virtual tEntity* Prev(void) = 0;
+ virtual tEntity* First(void) = 0;
+};
+
+
+//=============================================================================
+// Class Declarations
+// Workspace
+//=============================================================================
+class Workspace : public tRefCounted
+{
+public:
+ Workspace();
+ ~Workspace();
+
+ void Init();
+ void ResetAll( bool emptyInventory = true );
+ void Advance(float dt_ms);
+ void Display(tContext* context);
+
+ int Load( const char* name );
+ int Pause(bool b);
+
+ void LoadFloor( const char* p3dfilename );
+
+private:
+
+ void ResetProp();
+ CStateProp* m_CStateProp;
+
+ AICollisionSolverAgent *m_CollisionSolver;
+ sim::CollisionManager* m_CollisionManager;
+
+ ViewerIterator* m_DrawableIterator;
+ ViewerIterator* m_ObjectFactoryIterator;
+ ViewerIterator* m_CStatePropDataIterator;
+
+ tDrawable* m_DrawableFloor;
+ sim::SimState* m_SimStateFloor;
+
+ char m_Path[256];
+};
+
+
+
+#endif