11#include " stdafx.h"
22#include " AiCharacterController.h"
33#include " Pedestrian.h"
4- #include " PhysicsComponents .h"
4+ #include " PhysicsBody .h"
55#include " CarnageGame.h"
66#include " DebugRenderer.h"
77#include " BroadcastEventsManager.h"
@@ -115,7 +115,7 @@ void AiCharacterController::DebugDraw(DebugRenderer& debugRender)
115115 if (mAiMode == ePedestrianAiMode_None || mAiMode == ePedestrianAiMode_Disabled)
116116 return ;
117117
118- glm::vec3 currpos = mCharacter ->mPhysicsBody -> GetPosition () ;
118+ glm::vec3 currpos = mCharacter ->mTransform . mPosition ;
119119 glm::vec3 destpos (mDestinationPoint .x , currpos.y , mDestinationPoint .y );
120120
121121 debugRender.DrawLine (currpos, destpos, Color32_Red, false );
@@ -137,9 +137,10 @@ bool AiCharacterController::ScanForExplosions()
137137 float reactionDistance2 = glm::pow (gGameParams .mAiReactOnExplosionsDistance , 2 .0f );
138138
139139 BroadcastEvent eventData;
140- if (gBroadcastEvents .PeekClosestEvent (eBroadcastEvent_Explosion, mCharacter ->GetPosition2 (), eventData))
140+ glm::vec2 position2 = mCharacter ->mTransform .GetPosition2 ();
141+ if (gBroadcastEvents .PeekClosestEvent (eBroadcastEvent_Explosion, position2, eventData))
141142 {
142- if (glm::distance2 (eventData.mPosition , mCharacter -> GetPosition2 () ) > reactionDistance2) // too far away
143+ if (glm::distance2 (eventData.mPosition , position2 ) > reactionDistance2) // too far away
143144 return false ;
144145
145146 return true ;
@@ -152,12 +153,13 @@ bool AiCharacterController::ScanForGunshots()
152153 float reactionDistance2 = glm::pow (gGameParams .mAiReactOnGunshotsDistance , 2 .0f );
153154
154155 BroadcastEvent eventData;
155- if (gBroadcastEvents .PeekClosestEvent (eBroadcastEvent_GunShot, mCharacter ->GetPosition2 (), eventData))
156+ glm::vec2 position2 = mCharacter ->mTransform .GetPosition2 ();
157+ if (gBroadcastEvents .PeekClosestEvent (eBroadcastEvent_GunShot, position2, eventData))
156158 {
157159 if (eventData.mCharacter == mCharacter ) // hear own gunshots
158160 return false ;
159161
160- if (glm::distance2 (eventData.mPosition , mCharacter -> GetPosition2 () ) > reactionDistance2) // too far away
162+ if (glm::distance2 (eventData.mPosition , position2 ) > reactionDistance2) // too far away
161163 return false ;
162164
163165 return true ;
@@ -249,7 +251,7 @@ void AiCharacterController::UpdateWandering()
249251 if (ContinueWalkToWaypoint (mDefaultNearDistance ))
250252 return ;
251253
252- bool canFollowHuman = HasAiFlags (ePedestrianAiFlags_FollowHumanCharacter );
254+ bool canFollowHuman = HasAiFlags (PedestrianAiFlags_FollowHumanCharacter );
253255 if (canFollowHuman)
254256 {
255257 if (TryFollowHumanCharacterNearby ())
@@ -290,7 +292,7 @@ void AiCharacterController::StartWandering()
290292
291293bool AiCharacterController::ChooseWalkWaypoint (bool isPanic)
292294{
293- cxx::angle_t currHeading = mCharacter ->mPhysicsBody -> GetRotationAngle () ;
295+ cxx::angle_t currHeading = mCharacter ->mTransform . mOrientation ;
294296
295297 // choose new block ir next order: forward, left, right, backward
296298 eMapDirection currentMapDirection = GetMapDirectionFromHeading (currHeading.mDegrees );
@@ -302,7 +304,7 @@ bool AiCharacterController::ChooseWalkWaypoint(bool isPanic)
302304 GetMapDirectionOpposite (currentMapDirection)
303305 };
304306
305- glm::ivec3 currentLogPos = Convert::MetersToMapUnits (mCharacter ->GetPosition () );
307+ glm::ivec3 currentLogPos = Convert::MetersToMapUnits (mCharacter ->mTransform . mPosition );
306308 glm::ivec3 newWayPoint (0 , 0 , 0 );
307309 for (eMapDirection curr: moveDirs)
308310 {
@@ -325,7 +327,7 @@ bool AiCharacterController::ChooseWalkWaypoint(bool isPanic)
325327 break ;
326328 }
327329
328- bool canSuicide = HasAiFlags (ePedestrianAiFlags_LemmingBehavior );
330+ bool canSuicide = HasAiFlags (PedestrianAiFlags_LemmingBehavior );
329331 if (canSuicide && (groundType == eGroundType_Air))
330332 {
331333 newWayPoint = moveBlockPos;
@@ -352,17 +354,16 @@ bool AiCharacterController::ContinueWalkToWaypoint(float distance)
352354{
353355 float tolerance2 = pow (gGameParams .mPedestrianBoundsSphereRadius , 2 .0f );
354356
355- glm::vec2 currentPosition = mCharacter ->mPhysicsBody -> GetPosition2 ();
356- if (glm::distance2 (currentPosition , mDestinationPoint ) <= tolerance2)
357+ glm::vec2 currentPos2 = mCharacter ->mTransform . GetPosition2 ();
358+ if (glm::distance2 (currentPos2 , mDestinationPoint ) <= tolerance2)
357359 {
358360 mCharacter ->mCtlState .Clear ();
359361 return false ;
360362 }
361363
362364 // setup sign direction
363- glm::vec2 currentPos2 = mCharacter ->mPhysicsBody ->GetPosition2 ();
364365 glm::vec2 toTarget = glm::normalize (mDestinationPoint - currentPos2);
365- mCharacter ->mPhysicsBody -> SetOrientation2 (toTarget);
366+ mCharacter ->SetOrientation (toTarget);
366367
367368 // set control
368369 mCharacter ->mCtlState .mWalkForward = true ;
@@ -389,7 +390,7 @@ void AiCharacterController::StopDriving()
389390
390391 mCharacter ->mCtlState .Clear ();
391392
392- float currentSpeed = mCharacter ->mCurrentCar ->mPhysicsBody -> GetCurrentSpeed ();
393+ float currentSpeed = mCharacter ->mCurrentCar ->GetCurrentSpeed ();
393394 if (currentSpeed > gGameParams .mCarSpeedPassengerCanEnter )
394395 {
395396 mCharacter ->mCtlState .mAcceleration = -1 .0f ;
@@ -460,7 +461,7 @@ void AiCharacterController::StartFollowTarget()
460461 mCharacter ->mCtlState .Clear ();
461462 mAiMode = ePedestrianAiMode_FollowTarget;
462463
463- mDestinationPoint = mFollowPedestrian ->mPhysicsBody -> GetPosition2 ();
464+ mDestinationPoint = mFollowPedestrian ->mTransform . GetPosition2 ();
464465}
465466
466467void AiCharacterController::UpdateFollowTarget ()
@@ -480,8 +481,8 @@ void AiCharacterController::UpdateFollowTarget()
480481 if (ContinueWalkToWaypoint (mFollowNearDistance ))
481482 return ;
482483
483- glm::vec2 characterPosition2 = mCharacter ->mPhysicsBody -> GetPosition2 ();
484- glm::vec2 targetPosition2 = mFollowPedestrian ->mPhysicsBody -> GetPosition2 ();
484+ glm::vec2 characterPosition2 = mCharacter ->mTransform . GetPosition2 ();
485+ glm::vec2 targetPosition2 = mFollowPedestrian ->mTransform . GetPosition2 ();
485486
486487 float distanceToTarget2 = glm::distance2 (characterPosition2, targetPosition2);
487488 if (distanceToTarget2 < glm::pow (mFollowNearDistance , 2 .0f ))
@@ -495,17 +496,17 @@ void AiCharacterController::UpdateFollowTarget()
495496 ContinueWalkToWaypoint (mFollowNearDistance );
496497}
497498
498- void AiCharacterController::EnableAiFlags (ePedestrianAiFlags aiFlags)
499+ void AiCharacterController::EnableAiFlags (PedestrianAiFlags aiFlags)
499500{
500501 mAiFlags = (mAiFlags | aiFlags);
501502}
502503
503- void AiCharacterController::DisableAiFlags (ePedestrianAiFlags aiFlags)
504+ void AiCharacterController::DisableAiFlags (PedestrianAiFlags aiFlags)
504505{
505506 mAiFlags = (mAiFlags & ~aiFlags);
506507}
507508
508- bool AiCharacterController::HasAiFlags (ePedestrianAiFlags aiFlags) const
509+ bool AiCharacterController::HasAiFlags (PedestrianAiFlags aiFlags) const
509510{
510511 return (mAiFlags & aiFlags) == aiFlags;
511512}
@@ -524,7 +525,7 @@ bool AiCharacterController::TryFollowHumanCharacterNearby()
524525 if (!currentPlayer->mCharacter ->IsStanding ())
525526 continue ;
526527
527- float currDistance2 = glm::distance2 (currentPlayer->mCharacter ->GetPosition2 (), mCharacter ->GetPosition2 ());
528+ float currDistance2 = glm::distance2 (currentPlayer->mCharacter ->mTransform . GetPosition2 (), mCharacter ->mTransform . GetPosition2 ());
528529 if (currDistance2 > bestDistance2)
529530 continue ;
530531
0 commit comments