From d83ece42d8dce30080f9219cadef99ca320770db Mon Sep 17 00:00:00 2001 From: Phillip Stephens Date: Thu, 8 Jan 2026 16:26:33 -0800 Subject: [PATCH] WeaponsTypes.cpp matches --- include/Kyoto/Animation/CPrimitive.hpp | 2 +- include/MetroidPrime/CDamageInfo.hpp | 12 ++++++------ src/MetroidPrime/Weapons/WeaponTypes.cpp | 20 ++++++++------------ 3 files changed, 15 insertions(+), 19 deletions(-) diff --git a/include/Kyoto/Animation/CPrimitive.hpp b/include/Kyoto/Animation/CPrimitive.hpp index 5a840208..ceea10f4 100644 --- a/include/Kyoto/Animation/CPrimitive.hpp +++ b/include/Kyoto/Animation/CPrimitive.hpp @@ -11,7 +11,7 @@ class CPrimitive { public: CPrimitive(CInputStream& in); void PutTo(COutputStream& out) const; - CAssetId GetAnimResId() const { return x0_animId; } + const CAssetId GetAnimResId() const { return x0_animId; } private: CAssetId x0_animId; diff --git a/include/MetroidPrime/CDamageInfo.hpp b/include/MetroidPrime/CDamageInfo.hpp index 71117709..c1628091 100644 --- a/include/MetroidPrime/CDamageInfo.hpp +++ b/include/MetroidPrime/CDamageInfo.hpp @@ -36,8 +36,8 @@ public: , x18_24_noImmunity(noImmunity) {} // HACK: This constructor exists to fix CWeapon::Think writing xc_radiusDamage as a double - CDamageInfo(const CWeaponMode& mode, float damage, float radiusDamage, float radius, float knockback, - bool noImmunity = false) + CDamageInfo(const CWeaponMode& mode, float damage, float radiusDamage, float radius, + float knockback, bool noImmunity = false) : x0_weaponMode(mode) , x8_damage(damage) , xc_radiusDamage(radiusDamage) @@ -66,10 +66,10 @@ public: float GetRadiusDamage(const CDamageVulnerability& dVuln) const; bool NoImmunity() const { return x18_24_noImmunity; } void SetNoImmunity(bool b) { x18_24_noImmunity = b; } - void MultiplyDamage(float m) { - x8_damage *= m; - xc_radiusDamage *= m; - x14_knockback *= m; + void MultiplyDamage(const float m) { + x8_damage = m * x8_damage; + xc_radiusDamage = m * xc_radiusDamage; + x14_knockback = m * x14_knockback; } void MultiplyDamageAndRadius(float m) { x8_damage *= m; diff --git a/src/MetroidPrime/Weapons/WeaponTypes.cpp b/src/MetroidPrime/Weapons/WeaponTypes.cpp index d9034aa6..4c3477f9 100644 --- a/src/MetroidPrime/Weapons/WeaponTypes.cpp +++ b/src/MetroidPrime/Weapons/WeaponTypes.cpp @@ -1,13 +1,14 @@ #include "MetroidPrime/Weapons/WeaponTypes.hpp" +#include "Kyoto/SObjectTag.hpp" #include "MetroidPrime/Weapons/WeaponCommon.hpp" #include "MetroidPrime/CAnimData.hpp" #include "MetroidPrime/CAnimPlaybackParms.hpp" #include "MetroidPrime/CStateManager.hpp" -#include "MetroidPrime/Player/CPlayerState.hpp" #include "MetroidPrime/Player/CGameState.hpp" -#include "MetroidPrime/Weapons/CGunWeapon.hpp" +#include "MetroidPrime/Player/CPlayerState.hpp" #include "MetroidPrime/Tweaks/CTweakPlayerGun.hpp" +#include "MetroidPrime/Weapons/CGunWeapon.hpp" #include "Kyoto/Animation/CPrimitive.hpp" #include "Kyoto/Audio/CSfxManager.hpp" @@ -77,7 +78,7 @@ void primitive_set_to_token_vector(const CAnimData& animData, tokensOut.reserve(primSet.size() + eventCount); for (it = primSet.begin(); it != primSet.end(); ++it) { - int aId = it->GetAnimResId(); + CAssetId aId = it->GetAnimResId(); int eId = animData.GetEventResourceIdForAnimResourceId(aId); if (eId != -1) { @@ -156,7 +157,7 @@ void do_sound_event(rstl::pair< u16, CSfxHandle >& sfxHandle, int& pitch, bool d } } -CSfxHandle play_sfx(u16 sfx, bool underwater, bool looped, short pan) { +CSfxHandle play_sfx(const ushort sfx, const bool underwater, const bool looped, const short pan) { CSfxHandle hnd = CSfxManager::SfxStart(sfx, 0x7f, pan, true, CSfxManager::kMaxPriority, looped); CSfxManager::SfxSpan(hnd, 0); if (underwater) @@ -174,13 +175,9 @@ CDamageInfo CGunWeapon::GetShotDamageInfo(const SShotParam& shotParam, CStateMan // float knockback = shotParam.x14_knockback; // bool noImmunity = shotParam.x18_24_noImmunity; - CDamageInfo result( - CWeaponMode(shotParam.x0_weaponType, 0), - shotParam.x8_damage, - shotParam.xc_radiusDamage, - shotParam.x10_radius, - shotParam.x14_knockback, - shotParam.x18_24_noImmunity); + CDamageInfo result(CWeaponMode(shotParam.x0_weaponType, 0), shotParam.x8_damage, + shotParam.xc_radiusDamage, shotParam.x10_radius, shotParam.x14_knockback, + shotParam.x18_24_noImmunity); if (gpGameState->GetHardMode()) { result.MultiplyDamage(gpGameState->GetHardModeWeaponMultiplier()); @@ -188,7 +185,6 @@ CDamageInfo CGunWeapon::GetShotDamageInfo(const SShotParam& shotParam, CStateMan return result; } - namespace NWeaponTypes { int get_current_suit(const CStateManager& mgr) {