@@ -119,17 +119,17 @@ void PhysicsManager::ProcessSimulationStep()
119119 mPhysicsWorld ->Step (mSimulationStepTime , velocityIterations, positionIterations);
120120
121121 // process physics components
122- for (PhysicsBody* currComponent: mCarsBodiesList )
122+ for (size_t i = 0 , NumElements = mCarsBodiesList . size (); i < NumElements; ++i )
123123 {
124- currComponent ->SimulationStep ();
124+ mCarsBodiesList [i] ->SimulationStep ();
125125 }
126- for (PhysicsBody* currComponent: mPedsBodiesList )
126+ for (size_t i = 0 , NumElements = mPedsBodiesList . size (); i < NumElements; ++i )
127127 {
128- currComponent ->SimulationStep ();
128+ mPedsBodiesList [i] ->SimulationStep ();
129129 }
130- for (PhysicsBody* currComponent: mProjectileBodiesList )
130+ for (size_t i = 0 , NumElements = mProjectileBodiesList . size (); i < NumElements; ++i )
131131 {
132- currComponent ->SimulationStep ();
132+ mProjectileBodiesList [i] ->SimulationStep ();
133133 }
134134
135135 FixedStepGravity ();
@@ -162,7 +162,7 @@ PedPhysicsBody* PhysicsManager::CreatePhysicsBody(Pedestrian* object, const glm:
162162 PedPhysicsBody* physicsObject = mPedsBodiesPool .create (mPhysicsWorld , object);
163163 physicsObject->SetPosition (position, rotationAngle);
164164
165- mPedsBodiesList .insert (& physicsObject-> mPhysicsBodiesListNode );
165+ mPedsBodiesList .push_back ( physicsObject);
166166 return physicsObject;
167167}
168168
@@ -174,7 +174,7 @@ CarPhysicsBody* PhysicsManager::CreatePhysicsBody(Vehicle* object, const glm::ve
174174 CarPhysicsBody* physicsObject = mCarsBodiesPool .create (mPhysicsWorld , object);
175175 physicsObject->SetPosition (position, rotationAngle);
176176
177- mCarsBodiesList .insert (& physicsObject-> mPhysicsBodiesListNode );
177+ mCarsBodiesList .push_back ( physicsObject);
178178 return physicsObject;
179179}
180180
@@ -185,7 +185,7 @@ ProjectilePhysicsBody* PhysicsManager::CreatePhysicsBody(Projectile* object, con
185185 ProjectilePhysicsBody* physicsObject = mProjectileBodiesPool .create (mPhysicsWorld , object);
186186 physicsObject->SetPosition (position, rotationAngle);
187187
188- mProjectileBodiesList .insert (& physicsObject-> mPhysicsBodiesListNode );
188+ mProjectileBodiesList .push_back ( physicsObject);
189189 return physicsObject;
190190}
191191
@@ -258,42 +258,24 @@ void PhysicsManager::CreateMapCollisionShape()
258258void PhysicsManager::DestroyPhysicsBody (PedPhysicsBody* object)
259259{
260260 debug_assert (object);
261- if (mPedsBodiesList .contains (&object->mPhysicsBodiesListNode ))
262- {
263- mPedsBodiesList .remove (&object->mPhysicsBodiesListNode );
264- }
265- else
266- {
267- debug_assert (false );
268- }
261+ cxx::erase_elements (mPedsBodiesList , object);
262+
269263 mPedsBodiesPool .destroy (object);
270264}
271265
272266void PhysicsManager::DestroyPhysicsBody (CarPhysicsBody* object)
273267{
274268 debug_assert (object);
275- if (mCarsBodiesList .contains (&object->mPhysicsBodiesListNode ))
276- {
277- mCarsBodiesList .remove (&object->mPhysicsBodiesListNode );
278- }
279- else
280- {
281- debug_assert (false );
282- }
269+ cxx::erase_elements (mCarsBodiesList , object);
270+
283271 mCarsBodiesPool .destroy (object);
284272}
285273
286274void PhysicsManager::DestroyPhysicsBody (ProjectilePhysicsBody* object)
287275{
288276 debug_assert (object);
289- if (mProjectileBodiesList .contains (&object->mPhysicsBodiesListNode ))
290- {
291- mProjectileBodiesList .remove (&object->mPhysicsBodiesListNode );
292- }
293- else
294- {
295- debug_assert (false );
296- }
277+ cxx::erase_elements (mProjectileBodiesList , object);
278+
297279 mProjectileBodiesPool .destroy (object);
298280}
299281
@@ -450,11 +432,10 @@ void PhysicsManager::FixedStepGravity()
450432 // todo: cleanup this mess
451433
452434 // cars
453- for (PhysicsBody* currPhysicsBody: mCarsBodiesList )
435+ for (size_t i = 0 , NumElements = mCarsBodiesList . size (); i < NumElements; ++i )
454436 {
455- CarPhysicsBody* physicsComponent = static_cast <CarPhysicsBody*>(currPhysicsBody);
456- Vehicle* currCar = physicsComponent->mReferenceCar ;
457437
438+ CarPhysicsBody* physicsComponent = static_cast <CarPhysicsBody*>(mCarsBodiesList [i]);
458439 if (physicsComponent->mWaterContact )
459440 continue ;
460441
@@ -484,9 +465,9 @@ void PhysicsManager::FixedStepGravity()
484465 }
485466
486467 // pedestrians
487- for (PhysicsBody* currPhysicsBody: mPedsBodiesList )
468+ for (size_t i = 0 , NumElements = mPedsBodiesList . size (); i < NumElements; ++i )
488469 {
489- PedPhysicsBody* physicsComponent = static_cast <PedPhysicsBody*>(currPhysicsBody );
470+ PedPhysicsBody* physicsComponent = static_cast <PedPhysicsBody*>(mPedsBodiesList [i] );
490471 Pedestrian* currPedestrian = physicsComponent->mReferencePed ;
491472
492473 if (currPedestrian->mCurrentCar )
0 commit comments