2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-15 16:06:10 +00:00

CElitePirate: Implement AttractProjectiles; fix CGameProjectile material list

This commit is contained in:
2020-03-30 23:10:51 -04:00
parent 684bbd5903
commit 2e3d1c980b
4 changed files with 123 additions and 49 deletions

View File

@@ -56,6 +56,7 @@ public:
[[nodiscard]] float GetAttackChance() const { return x10_attackChance; }
[[nodiscard]] float GetShotAtTime() const { return x14_shotAtTime; }
[[nodiscard]] float GetShotAtTimeVariance() const { return x18_shotAtTimeVariance; }
[[nodiscard]] float GetX1C() const { return x1c_; }
[[nodiscard]] CAssetId GetX20() const { return x20_; }
[[nodiscard]] u16 GetSFXAbsorb() const { return x24_sfxAbsorb; }
[[nodiscard]] const CActorParameters& GetLauncherActParams() const { return x28_launcherActParams; }
@@ -213,17 +214,19 @@ private:
bool sub_80227430(const CDamageInfo& info) const;
void sub_80228634(CStateManager& mgr);
void sub_802285c4(CStateManager& mgr);
void sub_80227a90(CStateManager& mgr);
void AttractProjectiles(CStateManager& mgr);
void sub_802277e0(CStateManager& mgr, float dt);
bool sub_80229208();
void sub_80228e50(float dt);
bool IsAttractingEnergy();
void UpdateTimers(float dt);
void sub_80228798();
void sub_802289dc(CStateManager& mgr, TUniqueId& uid, std::string_view name);
void UpdateActorTransform(CStateManager& mgr, TUniqueId& uid, std::string_view name);
void sub_80228e84(CStateManager& mgr);
void ExtendTouchBounds(CStateManager& mgr, const rstl::reserved_vector<TUniqueId, 7>& uids,
const zeus::CVector3f& vec);
void ExtendTouchBounds(const CStateManager& mgr, const rstl::reserved_vector<TUniqueId, 7>& uids,
const zeus::CVector3f& vec) const;
bool ShouldFireFromLauncher(CStateManager& mgr, TUniqueId launcherId);
bool ShouldCallForBackupFromLauncher(CStateManager& mgr, TUniqueId uid);
bool ShouldCallForBackupFromLauncher(const CStateManager& mgr, TUniqueId uid) const;
bool IsClosestEnergyAttractor(const CStateManager& mgr, const rstl::reserved_vector<TUniqueId, 1024>& charNearList,
const zeus::CVector3f& projectilePos) const;
};
} // namespace MP1
} // namespace urde