CIceBeam/CPhazonBeam: Make use of std::array where applicable

Same behavior, stronger typing.
This commit is contained in:
Lioncash 2020-04-12 11:34:27 -04:00
parent b631b5f3a1
commit a433a7852f
2 changed files with 9 additions and 6 deletions

View File

@ -1,5 +1,7 @@
#include "Runtime/Weapon/CIceBeam.hpp" #include "Runtime/Weapon/CIceBeam.hpp"
#include <array>
#include "Runtime/CSimplePool.hpp" #include "Runtime/CSimplePool.hpp"
#include "Runtime/GameGlobalObjects.hpp" #include "Runtime/GameGlobalObjects.hpp"
@ -59,12 +61,12 @@ void CIceBeam::UpdateGunFx(bool shotSmoke, float dt, const CStateManager& mgr, c
CGunWeapon::UpdateGunFx(shotSmoke, dt, mgr, xf); CGunWeapon::UpdateGunFx(shotSmoke, dt, mgr, xf);
} }
static const u16 kSoundId[] = {SFXwpn_fire_ice_normal, SFXwpn_fire_ice_charged};
void CIceBeam::Fire(bool underwater, float dt, EChargeState chargeState, const zeus::CTransform& xf, CStateManager& mgr, void CIceBeam::Fire(bool underwater, float dt, EChargeState chargeState, const zeus::CTransform& xf, CStateManager& mgr,
TUniqueId homingTarget, float chargeFactor1, float chargeFactor2) { TUniqueId homingTarget, float chargeFactor1, float chargeFactor2) {
static constexpr std::array<u16, 2> soundId{SFXwpn_fire_ice_normal, SFXwpn_fire_ice_charged};
CGunWeapon::Fire(underwater, dt, chargeState, xf, mgr, homingTarget, chargeFactor1, chargeFactor2); CGunWeapon::Fire(underwater, dt, chargeState, xf, mgr, homingTarget, chargeFactor1, chargeFactor2);
NWeaponTypes::play_sfx(kSoundId[int(chargeState)], underwater, false, 0.165f); NWeaponTypes::play_sfx(soundId[size_t(chargeState)], underwater, false, 0.165f);
} }
void CIceBeam::EnableFx(bool enable) { void CIceBeam::EnableFx(bool enable) {

View File

@ -1,5 +1,7 @@
#include "Runtime/Weapon/CPhazonBeam.hpp" #include "Runtime/Weapon/CPhazonBeam.hpp"
#include <array>
#include "Runtime/CSimplePool.hpp" #include "Runtime/CSimplePool.hpp"
#include "Runtime/GameGlobalObjects.hpp" #include "Runtime/GameGlobalObjects.hpp"
#include "Runtime/Graphics/CBooRenderer.hpp" #include "Runtime/Graphics/CBooRenderer.hpp"
@ -77,8 +79,6 @@ void CPhazonBeam::UpdateGunFx(bool shotSmoke, float dt, const CStateManager& mgr
CGunWeapon::UpdateGunFx(shotSmoke, dt, mgr, xf); CGunWeapon::UpdateGunFx(shotSmoke, dt, mgr, xf);
} }
static const u16 kSoundId[] = {SFXwpn_fire_phazon_normal, SFXwpn_fire_power_charged};
void CPhazonBeam::Fire(bool underwater, float dt, EChargeState chargeState, const zeus::CTransform& xf, void CPhazonBeam::Fire(bool underwater, float dt, EChargeState chargeState, const zeus::CTransform& xf,
CStateManager& mgr, TUniqueId homingTarget, float chargeFactor1, float chargeFactor2) { CStateManager& mgr, TUniqueId homingTarget, float chargeFactor1, float chargeFactor2) {
if (chargeState == EChargeState::Normal) { if (chargeState == EChargeState::Normal) {
@ -95,7 +95,8 @@ void CPhazonBeam::Fire(bool underwater, float dt, EChargeState chargeState, cons
CGunWeapon::Fire(underwater, dt, chargeState, xf, mgr, homingTarget, chargeFactor1, chargeFactor2); CGunWeapon::Fire(underwater, dt, chargeState, xf, mgr, homingTarget, chargeFactor1, chargeFactor2);
} }
NWeaponTypes::play_sfx(kSoundId[int(chargeState)], underwater, false, 0.165f); static constexpr std::array<u16, 2> soundId{SFXwpn_fire_phazon_normal, SFXwpn_fire_power_charged};
NWeaponTypes::play_sfx(soundId[size_t(chargeState)], underwater, false, 0.165f);
} }
void CPhazonBeam::Update(float dt, CStateManager& mgr) { void CPhazonBeam::Update(float dt, CStateManager& mgr) {