Skip to content

Commit 42016a8

Browse files
committed
hit by car
1 parent 577bdc7 commit 42016a8

4 files changed

Lines changed: 13 additions & 6 deletions

File tree

src/GameParams.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ GameParams::GameParams()
1010

1111
void GameParams::SetToDefaults()
1212
{
13-
mPedestrianBoundsSphereRadius = Convert::MapUnitsToMeters(0.13f);
13+
mPedestrianBoundsSphereRadius = Convert::MapUnitsToMeters(0.10f);
1414

1515
mPedestrianTurnSpeed = 260.0f;
1616
mPedestrianTurnSpeedSlideOnCar = 120.0f;

src/Pedestrian.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,13 +388,18 @@ void Pedestrian::ReceiveHitByCar(Vehicle* targetCar, float impulse)
388388
if (IsDead())
389389
return;
390390

391-
// todo: magic numbers
392-
if (impulse > 4.0f)
391+
if (impulse > 4.0f || IsUnconscious()) // todo: magic numbers
393392
{
394393
Die(ePedestrianDeathReason_HitByCar, nullptr);
395394
return;
396395
}
397396

398-
// todo
397+
// jump over
398+
if (mStatesManager.CanStartSlideOnCarState())
399+
{
400+
PedestrianStateEvent evData { ePedestrianStateEvent_PushByCar };
401+
mStatesManager.ChangeState(ePedestrianState_SlideOnCar, evData);
402+
return;
403+
}
399404
}
400405

src/PedestrianStates.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -530,7 +530,7 @@ void PedestrianStatesManager::StateKnockedDown_ProcessEnter(const PedestrianStat
530530
mPedestrian->SetCarExited();
531531
}
532532

533-
float impulse = 0.6f;
533+
float impulse = 0.5f; // todo: magic numbers
534534

535535
mPedestrian->SetAnimation(eSpriteAnimID_Ped_FallShort, eSpriteAnimLoop_None);
536536
mPedestrian->mPhysicsComponent->AddLinearImpulse(-mPedestrian->mPhysicsComponent->GetSignVector() * impulse);

src/PedestrianStates.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ enum ePedestrianStateEvent
1616
ePedestrianStateEvent_FallFromHeightEnd,
1717
ePedestrianStateEvent_WeaponChange,
1818
ePedestrianStateEvent_WaterContact,
19+
ePedestrianStateEvent_PushByCar,
1920
};
2021

2122
// defines state event
@@ -58,6 +59,8 @@ class PedestrianStatesManager: public cxx::noncopyable
5859
// update current state
5960
void ProcessFrame();
6061

62+
bool CanStartSlideOnCarState() const;
63+
6164
private:
6265
void InitFuncsTable();
6366

@@ -71,7 +74,6 @@ class PedestrianStatesManager: public cxx::noncopyable
7174
// anims helpers
7275
eSpriteAnimID DetectIdleAnimation() const;
7376

74-
bool CanStartSlideOnCarState() const;
7577
void SetInCarPositionToDoor();
7678
void SetInCarPositionToSeat();
7779

0 commit comments

Comments
 (0)