mirror of https://github.com/AxioDL/metaforce.git
CDrone: Implement Dead
This commit is contained in:
parent
5f4335c861
commit
5b166b7be5
|
@ -1158,4 +1158,30 @@ void CDrone::sub_801656d4(const zeus::CTransform& xf, CStateManager& mgr) {
|
||||||
mgr.sub_80044098(*x56c_.GetObj(), result, id, x5ac_.GetWeaponMode(), 1, xe6_27_thermalVisorFlags);
|
mgr.sub_80044098(*x56c_.GetObj(), result, id, x5ac_.GetWeaponMode(), 1, xe6_27_thermalVisorFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void CDrone::Dead(CStateManager& mgr, EStateMsg msg, float arg) {
|
||||||
|
if (msg == EStateMsg::Activate) {
|
||||||
|
x460_knockBackController.SetAutoResetImpulse(false);
|
||||||
|
if (x834_31_attackOver) {
|
||||||
|
SetMomentumWR({0.f, 0.f, -GetWeight()});
|
||||||
|
} else {
|
||||||
|
Stop();
|
||||||
|
SetVelocityWR(zeus::skZero3f);
|
||||||
|
SetMomentumWR(zeus::skZero3f);
|
||||||
|
}
|
||||||
|
x401_26_disableMove = true;
|
||||||
|
x5c8_ = 0.f;
|
||||||
|
SetVisorFlareEnabled(mgr, false);
|
||||||
|
x7c8_ = 0;
|
||||||
|
} else if (msg == EStateMsg::Update && x7c0_ == 0) {
|
||||||
|
if (x834_31_attackOver) {
|
||||||
|
GetBodyController()->GetCommandMgr().DeliverCmd(CBCHurledCmd());
|
||||||
|
x7c8_ = 1;
|
||||||
|
} else {
|
||||||
|
GetBodyController()->GetCommandMgr().DeliverCmd(CBCKnockDownCmd(zeus::skZero3f, pas::ESeverity::Zero));
|
||||||
|
x7c8_ = 1;
|
||||||
|
Stop();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace urde::MP1
|
} // namespace urde::MP1
|
||||||
|
|
|
@ -166,6 +166,7 @@ public:
|
||||||
bool ShouldMove(CStateManager&, float arg) override;
|
bool ShouldMove(CStateManager&, float arg) override;
|
||||||
bool CodeTrigger(CStateManager&, float arg) override;
|
bool CodeTrigger(CStateManager&, float arg) override;
|
||||||
void Burn(float duration, float damage) override;
|
void Burn(float duration, float damage) override;
|
||||||
|
void Dead(CStateManager& mgr, EStateMsg msg, float arg) override;
|
||||||
CPathFindSearch* GetSearchPath() override;
|
CPathFindSearch* GetSearchPath() override;
|
||||||
virtual void BuildNearList(EMaterialTypes includeMat, EMaterialTypes excludeMat,
|
virtual void BuildNearList(EMaterialTypes includeMat, EMaterialTypes excludeMat,
|
||||||
rstl::reserved_vector<TUniqueId, 1024>& listOut, float radius, CStateManager& mgr);
|
rstl::reserved_vector<TUniqueId, 1024>& listOut, float radius, CStateManager& mgr);
|
||||||
|
|
Loading…
Reference in New Issue