-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDynamicObjectManager.hpp
More file actions
70 lines (48 loc) · 1.76 KB
/
DynamicObjectManager.hpp
File metadata and controls
70 lines (48 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//================================================//
#ifndef __DYNAMICOBJECTMANAGER_HPP__
#define __DYNAMICOBJECTMANAGER_HPP__
//================================================//
#include "stdafx.h"
#include "DynamicObject.hpp"
#include "RetrievableItems.hpp"
#include "Doors.hpp"
#include "Light.hpp"
#include "Trigger.hpp"
#include "NPCManager.hpp"
#include "Base.hpp"
//================================================//
typedef std::list<DynamicObject*> DynamicObjectList;
typedef DynamicObjectList::iterator DynamicObjectListIterator;
//================================================//
class DynamicObjectManager
{
public:
DynamicObjectManager(Ogre::SceneManager* mgr, Sparks::Camera* camera);
~DynamicObjectManager(void);
bool addObject(Ogre::SceneNode* node, btCollisionObject* obj, int type, int tier);
void registerAllObjectsInScene(void);
void registerUpperTierObjects(void);
void registerTriggerAction(DynamicObject* object, DynamicObjectData* data);
void registerTriggerChains(void);
// Getter functions
DynamicObjectList& getObjects(void);
DynamicObject* getObject(Ogre::String& name);
DynamicObject* getObject(Ogre::SceneNode* node);
// Setter functions
void setNPCManager(NPCManager* mgr);
void update(double timeSinceLastFrame);
private:
Ogre::SceneManager* m_pSceneMgr;
Sparks::Camera* m_pCamera;
NPCManager* m_pNPCManager;
DynamicObjectList m_objects;
Physics* m_physics;
};
//================================================//
inline DynamicObjectList& DynamicObjectManager::getObjects(void)
{ return m_objects; }
inline void DynamicObjectManager::setNPCManager(NPCManager* mgr)
{ m_pNPCManager = mgr; }
//================================================//
#endif
//================================================//