Skip to content

Commit 07d4ab4

Browse files
committed
Minor fixes.
1 parent f04ba19 commit 07d4ab4

File tree

2 files changed

+19
-21
lines changed

2 files changed

+19
-21
lines changed

src/core/modules/entities/entities_collisions.cpp

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -682,7 +682,7 @@ bool CCollisionSet::Contains(void *pObject)
682682
return m_pSet.find(pObject) != m_pSet.end();
683683
}
684684

685-
void CCollisionSet::Clear(void *pObject)
685+
void CCollisionSet::Clear()
686686
{
687687
m_pSet.clear();
688688
}
@@ -726,21 +726,13 @@ bool CCollisionSet::ShouldHitEntity(CBaseEntity *pEntity, CBaseEntity *pOther)
726726
//-----------------------------------------------------------------------------
727727
boost::shared_ptr<CCollisionSet> CCollisionMap::Find(CBaseEntityWrapper *pEntity)
728728
{
729-
boost::shared_ptr<CCollisionSet> spSet;
730-
spSet = m_mapSets[pEntity];
731-
732-
if (!get_pointer(spSet)) {
733-
if (!pEntity->IsNetworked()) {
734-
BOOST_RAISE_EXCEPTION(
735-
PyExc_ValueError,
736-
"Given entity is not networked."
737-
)
738-
}
739-
740-
spSet = boost::shared_ptr<CCollisionSet>(new CCollisionSet(false));
741-
m_mapSets[pEntity] = spSet;
729+
CollisionMap_t::const_iterator it = m_mapSets.find(pEntity);
730+
if (it != m_mapSets.end()) {
731+
return it->second;
742732
}
743733

734+
boost::shared_ptr<CCollisionSet> spSet = boost::shared_ptr<CCollisionSet>(new CCollisionSet(false));
735+
m_mapSets[pEntity] = spSet;
744736
return spSet;
745737
}
746738

@@ -774,8 +766,7 @@ object CCollisionMap::Iterate()
774766
list oElements;
775767

776768
if (HasElements()) {
777-
for (boost::unordered_map<void *, boost::shared_ptr<CCollisionSet> >::const_iterator it = m_mapSets.begin();
778-
it != m_mapSets.end(); it++) {
769+
for (CollisionMap_t::const_iterator it = m_mapSets.begin(); it != m_mapSets.end(); it++) {
779770
oElements.append(make_tuple(object(it->first), object(it->second)));
780771
}
781772
}
@@ -785,8 +776,7 @@ object CCollisionMap::Iterate()
785776

786777
void CCollisionMap::OnEntityDeleted(CBaseEntity *pEntity)
787778
{
788-
for (boost::unordered_map<void *, boost::shared_ptr<CCollisionSet> >::const_iterator it = m_mapSets.begin();
789-
it != m_mapSets.end(); it++) {
779+
for (CollisionMap_t::const_iterator it = m_mapSets.begin(); it != m_mapSets.end(); it++) {
790780
it->second->OnEntityDeleted(pEntity);
791781
}
792782

@@ -795,8 +785,14 @@ void CCollisionMap::OnEntityDeleted(CBaseEntity *pEntity)
795785

796786
bool CCollisionMap::ShouldHitEntity(CBaseEntity *pEntity, CBaseEntity *pOther)
797787
{
798-
CCollisionSet *pSet = get_pointer(m_mapSets[pEntity]);
788+
CollisionMap_t::const_iterator it = m_mapSets.find(pEntity);
789+
if (it == m_mapSets.end()) {
790+
return true;
791+
}
792+
793+
CCollisionSet *pSet = get_pointer(it->second);
799794
if (!pSet) {
795+
m_mapSets.erase(it);
800796
return true;
801797
}
802798

src/core/modules/entities/entities_collisions.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@
4949
// Forward declarations.
5050
//-----------------------------------------------------------------------------
5151
struct CollisionHookData_t;
52+
class CCollisionSet;
5253
class CCollisionCache;
5354

5455

@@ -65,6 +66,7 @@ typedef CBitVec<MAX_EDICTS> CollisionCache_t;
6566
typedef boost::unordered_map<unsigned int, CCollisionCache *> CollisionCacheMap_t;
6667

6768
typedef std::pair<void *, void *> CollisionPair_t;
69+
typedef boost::unordered_map<void *, boost::shared_ptr<CCollisionSet> > CollisionMap_t;
6870

6971

7072
//-----------------------------------------------------------------------------
@@ -181,7 +183,7 @@ class CCollisionSet : public ICollisionRules
181183

182184
void Add(CBaseEntityWrapper *pEntity);
183185
void Remove(void *pObject);
184-
void Clear(void *pObject);
186+
void Clear();
185187

186188
bool Contains(void *pObject);
187189
unsigned int GetSize();
@@ -218,7 +220,7 @@ class CCollisionMap: public ICollisionRules
218220
object Iterate();
219221

220222
private:
221-
boost::unordered_map<void *, boost::shared_ptr<CCollisionSet> > m_mapSets;
223+
CollisionMap_t m_mapSets;
222224
};
223225

224226

0 commit comments

Comments
 (0)