32 #include "object/object_create_params.h"
44 class COldModelManager;
56 FILTER_ONLYLANDING = 1 << (8+0),
57 FILTER_ONLYFLYING = 1 << (8+1),
59 FILTER_FRIENDLY = 1 << (8+2),
60 FILTER_ENEMY = 1 << (8+3),
61 FILTER_NEUTRAL = 1 << (8+4),
64 using CObjectMap = std::map<int, std::unique_ptr<CObject>>;
65 using CObjectMapCIt = std::map<int, std::unique_ptr<CObject>>::const_iterator;
73 : m_currentIt(currentIt)
76 while (m_currentIt != m_endIt && m_currentIt->second ==
nullptr)
85 return m_currentIt->second.get();
94 while (m_currentIt != m_endIt && m_currentIt->second ==
nullptr);
99 return m_currentIt == other.m_currentIt;
104 return m_currentIt != other.m_currentIt;
108 CObjectMapCIt m_currentIt;
109 CObjectMapCIt m_endIt;
119 m_activeIteratorsCounter(activeIteratorsCounter)
121 ++m_activeIteratorsCounter;
127 --m_activeIteratorsCounter;
140 const CObjectMap& m_map;
141 int& m_activeIteratorsCounter;
191 CleanRemovedObjectsIfNeeded();
201 float minDist = 0.0f,
202 float maxDist = 1000.0f,
203 bool furthest =
false,
204 RadarFilter filter = FILTER_NONE,
205 bool cbotTypes =
false);
207 std::vector<ObjectType> type = std::vector<ObjectType>(),
210 float minDist = 0.0f,
211 float maxDist = 1000.0f,
212 bool furthest =
false,
213 RadarFilter filter = FILTER_NONE,
214 bool cbotTypes =
false);
221 float minDist = 0.0f,
222 float maxDist = 1000.0f,
223 bool furthest =
false,
224 RadarFilter filter = FILTER_NONE,
225 bool cbotTypes =
false);
229 std::vector<ObjectType> type = std::vector<ObjectType>(),
232 float minDist = 0.0f,
233 float maxDist = 1000.0f,
234 bool furthest =
false,
235 RadarFilter filter = FILTER_NONE,
236 bool cbotTypes =
false);
242 float maxDist = 1000.0f,
243 bool cbotTypes =
false);
245 std::vector<ObjectType> type = std::vector<ObjectType>(),
246 float maxDist = 1000.0f,
247 bool cbotTypes =
false);
251 float maxDist = 1000.0f,
252 bool cbotTypes =
false);
255 std::vector<ObjectType> type = std::vector<ObjectType>(),
256 float maxDist = 1000.0f,
257 bool cbotTypes =
false);
261 void CleanRemovedObjectsIfNeeded();
264 CObjectMap m_objects;
265 std::unique_ptr<CObjectFactory> m_objectFactory;
267 int m_activeObjectIterators;
268 bool m_shouldCleanRemovedObjects;
Definition: object_manager.h:112
CSingleton base class for singletons.
std::vector< CObject * > GetObjectsOfTeam(int team)
Gets all objects of given team.
Definition: object_manager.cpp:174
bool DeleteObject(CObject *instance)
Deletes the object.
Definition: object_manager.cpp:63
CObject * FindNearest(CObject *pThis, ObjectType type=OBJECT_NULL, float maxDist=1000.0f, bool cbotTypes=false)
Returns nearest object that's closer than maxDist.
Definition: object_manager.cpp:374
void DestroyTeam(int team)
Destroy all objects of team.
Definition: object_manager.cpp:202
Definition: singleton.h:30
Manager for static models.
Definition: oldmodelmanager.h:55
void DeleteAllObjects()
Deletes all objects.
Definition: object_manager.cpp:101
const float PI
PI.
Definition: const.h:48
CObject * GetObjectByRank(unsigned int id)
Gets object by id in range <0; number of objects - 1>
Definition: object_manager.cpp:125
int CountObjectsImplementing(ObjectInterfaceType interface)
Counts all objects implementing given interface.
Definition: object_manager.cpp:222
Particle engine.
Definition: particle.h:223
CObject * CreateObject(ObjectCreateParams params)
Creates an object.
Definition: object_manager.cpp:134
ObjectInterfaceType
Type of interface that an object implements.
Definition: object_interface_type.h:34
CObjectContainerProxy GetAllObjects()
Returns all objects.
Definition: object_manager.h:189
ObjectInterfaceType enum.
Terrain loader/generator and manager.
Definition: terrain.h:145
Definition: object_manager.h:67
Constants used in math functions.
Namespace for (new) graphics code.
Definition: app.h:49
Vector struct and related functions.
Manager for models read from model files.
Definition: model_manager.h:34
The graphics engine.
Definition: engine.h:620
Definition: object_create_params.h:26
CObject * Radar(CObject *pThis, ObjectType type=OBJECT_NULL, float angle=0.0f, float focus=Math::PI *2.0f, float minDist=0.0f, float maxDist=1000.0f, bool furthest=false, RadarFilter filter=FILTER_NONE, bool cbotTypes=false)
Finds an object, like radar() in CBot.
Definition: object_manager.cpp:233
ObjectType
Type of game object.
Definition: object_type.h:33
bool TeamExists(int team)
Checks if any of team's objects exist.
Definition: object_manager.cpp:187
3D (3x1) vector
Definition: vector.h:53
Definition: object_factory.h:48
Manages CObject instances.
Definition: object_manager.h:148
CObject * GetObjectById(unsigned int id)
Finds object by id (CObject::GetID())
Definition: object_manager.cpp:119
Base class for all 3D in-game objects.
Definition: object.h:59