mirror of https://github.com/AxioDL/metaforce.git
CNewFlameThrower: Make constructor take a std::array by reference
Same behavior, but enforces the size requirement instead of accepting any arbitrary const CAssetId* pointer.
This commit is contained in:
parent
fa0dcf5b12
commit
54dededb9b
|
@ -210,19 +210,21 @@ void CAuxWeapon::CreateFlameThrower(const zeus::CTransform& xf, CStateManager& m
|
||||||
if (x6e_flameThrowerId != kInvalidUniqueId)
|
if (x6e_flameThrowerId != kInvalidUniqueId)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
CAssetId resInfo[] = {NWeaponTypes::get_asset_id_from_name("NFTMainFire"),
|
const std::array<CAssetId, 8> resInfo{
|
||||||
NWeaponTypes::get_asset_id_from_name("NFTMainSmoke"),
|
NWeaponTypes::get_asset_id_from_name("NFTMainFire"),
|
||||||
NWeaponTypes::get_asset_id_from_name("NFTSwooshCenter"),
|
NWeaponTypes::get_asset_id_from_name("NFTMainSmoke"),
|
||||||
NWeaponTypes::get_asset_id_from_name("NFTSwooshFire"),
|
NWeaponTypes::get_asset_id_from_name("NFTSwooshCenter"),
|
||||||
NWeaponTypes::get_asset_id_from_name("NFTSecondarySmoke"),
|
NWeaponTypes::get_asset_id_from_name("NFTSwooshFire"),
|
||||||
NWeaponTypes::get_asset_id_from_name("NFTSecondaryFire"),
|
NWeaponTypes::get_asset_id_from_name("NFTSecondarySmoke"),
|
||||||
NWeaponTypes::get_asset_id_from_name("NFTSecondarySparks"),
|
NWeaponTypes::get_asset_id_from_name("NFTSecondaryFire"),
|
||||||
{}};
|
NWeaponTypes::get_asset_id_from_name("NFTSecondarySparks"),
|
||||||
|
{},
|
||||||
|
};
|
||||||
x6e_flameThrowerId = mgr.AllocateUniqueId();
|
x6e_flameThrowerId = mgr.AllocateUniqueId();
|
||||||
CNewFlameThrower* ft = new CNewFlameThrower(
|
auto* ft = new CNewFlameThrower(x28_combos[3], "Player_FlameThrower", EWeaponType::Plasma, resInfo, xf,
|
||||||
x28_combos[3], "Player_FlameThrower", EWeaponType::Plasma, resInfo, xf, EMaterialTypes::Player,
|
EMaterialTypes::Player,
|
||||||
CGunWeapon::GetShotDamageInfo(g_tweakPlayerGun->GetComboShotInfo(3), mgr), x6e_flameThrowerId, kInvalidAreaId,
|
CGunWeapon::GetShotDamageInfo(g_tweakPlayerGun->GetComboShotInfo(3), mgr),
|
||||||
x6c_playerId, EProjectileAttrib::None);
|
x6e_flameThrowerId, kInvalidAreaId, x6c_playerId, EProjectileAttrib::None);
|
||||||
mgr.AddObject(ft);
|
mgr.AddObject(ft);
|
||||||
ft->Think(dt, mgr);
|
ft->Think(dt, mgr);
|
||||||
ft->StartFiring(xf, mgr);
|
ft->StartFiring(xf, mgr);
|
||||||
|
|
|
@ -8,9 +8,9 @@
|
||||||
namespace urde {
|
namespace urde {
|
||||||
|
|
||||||
CNewFlameThrower::CNewFlameThrower(const TToken<CWeaponDescription>& desc, std::string_view name, EWeaponType wType,
|
CNewFlameThrower::CNewFlameThrower(const TToken<CWeaponDescription>& desc, std::string_view name, EWeaponType wType,
|
||||||
const CAssetId resInfo[8], const zeus::CTransform& xf, EMaterialTypes matType,
|
const std::array<CAssetId, 8>& resInfo, const zeus::CTransform& xf,
|
||||||
const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner,
|
EMaterialTypes matType, const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid,
|
||||||
EProjectileAttrib attribs)
|
TUniqueId owner, EProjectileAttrib attribs)
|
||||||
: CGameProjectile(false, desc, name, wType, xf, matType, dInfo, uid, aid, owner, kInvalidUniqueId, attribs, false,
|
: CGameProjectile(false, desc, name, wType, xf, matType, dInfo, uid, aid, owner, kInvalidUniqueId, attribs, false,
|
||||||
zeus::skOne3f, {}, -1, false)
|
zeus::skOne3f, {}, -1, false)
|
||||||
, x304_mainFire(g_SimplePool->GetObj(SObjectTag{FOURCC('PART'), resInfo[0]}))
|
, x304_mainFire(g_SimplePool->GetObj(SObjectTag{FOURCC('PART'), resInfo[0]}))
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
|
#include <array>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
@ -53,7 +54,7 @@ public:
|
||||||
// NFTSecondarySparks
|
// NFTSecondarySparks
|
||||||
// <invalid>
|
// <invalid>
|
||||||
CNewFlameThrower(const TToken<CWeaponDescription>& desc, std::string_view name, EWeaponType wType,
|
CNewFlameThrower(const TToken<CWeaponDescription>& desc, std::string_view name, EWeaponType wType,
|
||||||
const CAssetId resInfo[8], const zeus::CTransform& xf, EMaterialTypes matType,
|
const std::array<CAssetId, 8>& resInfo, const zeus::CTransform& xf, EMaterialTypes matType,
|
||||||
const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, EProjectileAttrib attribs);
|
const CDamageInfo& dInfo, TUniqueId uid, TAreaId aid, TUniqueId owner, EProjectileAttrib attribs);
|
||||||
void StartFiring(const zeus::CTransform& xf, CStateManager& mgr);
|
void StartFiring(const zeus::CTransform& xf, CStateManager& mgr);
|
||||||
bool CanRenderAuxEffects() const { return x37c_24_renderAuxEffects; }
|
bool CanRenderAuxEffects() const { return x37c_24_renderAuxEffects; }
|
||||||
|
|
Loading…
Reference in New Issue