CBloodFlower: Implement GetCollisionResponseType

CBloodFlower seems to be missing the implementation from v0-00. This
change adds in its equivalent behavior.
This commit is contained in:
Lioncash 2020-02-03 10:35:49 -05:00
parent cbf7140d21
commit d1a714cf1a
2 changed files with 14 additions and 0 deletions

View File

@ -146,6 +146,17 @@ void CBloodFlower::Render(const CStateManager& mgr) const {
x574_podEffect->Render(GetActorLights()); x574_podEffect->Render(GetActorLights());
} }
EWeaponCollisionResponseTypes CBloodFlower::GetCollisionResponseType(const zeus::CVector3f&, const zeus::CVector3f&,
const CWeaponMode& weaponMode, EProjectileAttrib) const {
const auto* const damageVulnerability = GetDamageVulnerability();
if (damageVulnerability->WeaponHurts(weaponMode, false)) {
return EWeaponCollisionResponseTypes::Unknown28;
}
return EWeaponCollisionResponseTypes::Unknown78;
}
bool CBloodFlower::ShouldAttack(CStateManager& mgr, float arg) { bool CBloodFlower::ShouldAttack(CStateManager& mgr, float arg) {
if (TooClose(mgr, 0.f)) if (TooClose(mgr, 0.f))
return false; return false;

View File

@ -56,6 +56,9 @@ public:
void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override; void DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) override;
void Render(const CStateManager& mgr) const override; void Render(const CStateManager& mgr) const override;
void Touch(CActor&, CStateManager&) override {} void Touch(CActor&, CStateManager&) override {}
EWeaponCollisionResponseTypes GetCollisionResponseType(const zeus::CVector3f& v1, const zeus::CVector3f& v2,
const CWeaponMode& weaponMode,
EProjectileAttrib attribute) const override;
CProjectileInfo* GetProjectileInfo() override { return &x590_projectileInfo; } CProjectileInfo* GetProjectileInfo() override { return &x590_projectileInfo; }
bool ShouldAttack(CStateManager&, float) override; bool ShouldAttack(CStateManager&, float) override;