mirror of https://github.com/PrimeDecomp/prime.git
Link CPowerBeam
Former-commit-id: 2f08ee8e2b967aff6d0057ae0d010ee7982c5ba1
This commit is contained in:
parent
e85fd9312c
commit
e4c947d2ad
|
@ -16986,7 +16986,7 @@ lbl_803CE4A5 = .rodata:0x803CE4A5; // type:object size:0xD data:string
|
||||||
lbl_803CE4B2 = .rodata:0x803CE4B2; // type:object size:0x76
|
lbl_803CE4B2 = .rodata:0x803CE4B2; // type:object size:0x76
|
||||||
lbl_803CE528 = .rodata:0x803CE528; // type:object size:0x8
|
lbl_803CE528 = .rodata:0x803CE528; // type:object size:0x8
|
||||||
@stringBase0 = .rodata:0x803CE530; // type:object size:0x13 scope:local data:string_table
|
@stringBase0 = .rodata:0x803CE530; // type:object size:0x13 scope:local data:string_table
|
||||||
lbl_803CE548 = .rodata:0x803CE548; // type:object size:0x20
|
@stringBase0 = .rodata:0x803CE548; // type:object size:0x1C scope:local data:string_table
|
||||||
lbl_803CE568 = .rodata:0x803CE568; // type:object size:0x30
|
lbl_803CE568 = .rodata:0x803CE568; // type:object size:0x30
|
||||||
lbl_803CE598 = .rodata:0x803CE598; // type:object size:0x28
|
lbl_803CE598 = .rodata:0x803CE598; // type:object size:0x28
|
||||||
lbl_803CE5C0 = .rodata:0x803CE5C0; // type:object size:0x8
|
lbl_803CE5C0 = .rodata:0x803CE5C0; // type:object size:0x8
|
||||||
|
@ -17318,52 +17318,14 @@ lbl_803D1678 = .rodata:0x803D1678; // type:object size:0xD data:string
|
||||||
lbl_803D1685 = .rodata:0x803D1685; // type:object size:0x9 data:string
|
lbl_803D1685 = .rodata:0x803D1685; // type:object size:0x9 data:string
|
||||||
lbl_803D168E = .rodata:0x803D168E; // type:object size:0xB data:string
|
lbl_803D168E = .rodata:0x803D168E; // type:object size:0xB data:string
|
||||||
lbl_803D1699 = .rodata:0x803D1699; // type:object size:0xB7
|
lbl_803D1699 = .rodata:0x803D1699; // type:object size:0xB7
|
||||||
skMuzzleNames = .rodata:0x803D1750; // type:object size:0x28 scope:global
|
skMuzzleNames__10CGunWeapon = .rodata:0x803D1750; // type:object size:0x28 scope:global
|
||||||
skFrozenNames = .rodata:0x803D1778; // type:object size:0x28 scope:global
|
skFrozenNames__10CGunWeapon = .rodata:0x803D1778; // type:object size:0x28 scope:global
|
||||||
skBeamXferNames = .rodata:0x803D17A0; // type:object size:0x14 scope:global
|
skBeamXferNames__10CGunWeapon = .rodata:0x803D17A0; // type:object size:0x14 scope:global
|
||||||
skAnimDependencyNames = .rodata:0x803D17B4; // type:object size:0x14 scope:global
|
skAnimDependencyNames__10CGunWeapon = .rodata:0x803D17B4; // type:object size:0x14 scope:global
|
||||||
skDependencyNames = .rodata:0x803D17C8; // type:object size:0x14 scope:global
|
skDependencyNames__10CGunWeapon = .rodata:0x803D17C8; // type:object size:0x14 scope:global
|
||||||
skSuitArmNames = .rodata:0x803D17DC; // type:object size:0x20 scope:global data:4byte
|
skSuitArmNames__10CGunWeapon = .rodata:0x803D17DC; // type:object size:0x20 scope:global data:4byte
|
||||||
skAnimTypeList = .rodata:0x803D17FC; // type:object size:0x2C scope:global
|
skAnimTypeList__10CGunWeapon = .rodata:0x803D17FC; // type:object size:0x2C scope:global
|
||||||
lbl_803D1828 = .rodata:0x803D1828; // type:object size:0xC data:string
|
@stringBase0 = .rodata:0x803D1828; // type:object size:0x1C7 scope:local data:string_table
|
||||||
lbl_803D1834 = .rodata:0x803D1834; // type:object size:0xC data:string
|
|
||||||
lbl_803D1840 = .rodata:0x803D1840; // type:object size:0xA data:string
|
|
||||||
lbl_803D184A = .rodata:0x803D184A; // type:object size:0xA data:string
|
|
||||||
lbl_803D1854 = .rodata:0x803D1854; // type:object size:0xB data:string
|
|
||||||
lbl_803D185F = .rodata:0x803D185F; // type:object size:0xD data:string
|
|
||||||
lbl_803D186C = .rodata:0x803D186C; // type:object size:0xD data:string
|
|
||||||
lbl_803D1879 = .rodata:0x803D1879; // type:object size:0xD data:string
|
|
||||||
lbl_803D1886 = .rodata:0x803D1886; // type:object size:0xC data:string
|
|
||||||
lbl_803D1892 = .rodata:0x803D1892; // type:object size:0xC data:string
|
|
||||||
lbl_803D189E = .rodata:0x803D189E; // type:object size:0x9 data:string
|
|
||||||
lbl_803D18A7 = .rodata:0x803D18A7; // type:object size:0xA data:string
|
|
||||||
lbl_803D18B1 = .rodata:0x803D18B1; // type:object size:0xB data:string
|
|
||||||
lbl_803D18BC = .rodata:0x803D18BC; // type:object size:0xD data:string
|
|
||||||
lbl_803D18C9 = .rodata:0x803D18C9; // type:object size:0xA data:string
|
|
||||||
lbl_803D18D3 = .rodata:0x803D18D3; // type:object size:0x8 data:string
|
|
||||||
lbl_803D18DB = .rodata:0x803D18DB; // type:object size:0x9 data:string
|
|
||||||
lbl_803D18E4 = .rodata:0x803D18E4; // type:object size:0xB data:string
|
|
||||||
lbl_803D18EF = .rodata:0x803D18EF; // type:object size:0xB data:string
|
|
||||||
lbl_803D18FA = .rodata:0x803D18FA; // type:object size:0x10 data:string
|
|
||||||
lbl_803D190A = .rodata:0x803D190A; // type:object size:0xE data:string
|
|
||||||
lbl_803D1918 = .rodata:0x803D1918; // type:object size:0xF data:string
|
|
||||||
lbl_803D1927 = .rodata:0x803D1927; // type:object size:0x11 data:string
|
|
||||||
lbl_803D1938 = .rodata:0x803D1938; // type:object size:0x11 data:string
|
|
||||||
lbl_803D1949 = .rodata:0x803D1949; // type:object size:0xB data:string
|
|
||||||
lbl_803D1954 = .rodata:0x803D1954; // type:object size:0x9 data:string
|
|
||||||
lbl_803D195D = .rodata:0x803D195D; // type:object size:0xA data:string
|
|
||||||
lbl_803D1967 = .rodata:0x803D1967; // type:object size:0xC data:string
|
|
||||||
lbl_803D1973 = .rodata:0x803D1973; // type:object size:0xC data:string
|
|
||||||
lbl_803D197F = .rodata:0x803D197F; // type:object size:0x9 data:string
|
|
||||||
lbl_803D1988 = .rodata:0x803D1988; // type:object size:0xB data:string
|
|
||||||
lbl_803D1993 = .rodata:0x803D1993; // type:object size:0x9 data:string
|
|
||||||
lbl_803D199C = .rodata:0x803D199C; // type:object size:0xA data:string
|
|
||||||
lbl_803D19A6 = .rodata:0x803D19A6; // type:object size:0xA data:string
|
|
||||||
lbl_803D19B0 = .rodata:0x803D19B0; // type:object size:0xB data:string
|
|
||||||
lbl_803D19BB = .rodata:0x803D19BB; // type:object size:0xB data:string
|
|
||||||
lbl_803D19C6 = .rodata:0x803D19C6; // type:object size:0xB data:string
|
|
||||||
lbl_803D19D1 = .rodata:0x803D19D1; // type:object size:0x6 data:string
|
|
||||||
lbl_803D19D7 = .rodata:0x803D19D7; // type:object size:0x19
|
|
||||||
lbl_803D19F0 = .rodata:0x803D19F0; // type:object size:0x8
|
lbl_803D19F0 = .rodata:0x803D19F0; // type:object size:0x8
|
||||||
lbl_803D19F8 = .rodata:0x803D19F8; // type:object size:0x10
|
lbl_803D19F8 = .rodata:0x803D19F8; // type:object size:0x10
|
||||||
lbl_803D1A08 = .rodata:0x803D1A08; // type:object size:0x18 data:4byte
|
lbl_803D1A08 = .rodata:0x803D1A08; // type:object size:0x18 data:4byte
|
||||||
|
@ -24806,8 +24768,8 @@ lbl_805AC6D8 = .sdata2:0x805AC6D8; // type:object size:0x4 data:float
|
||||||
lbl_805AC6DC = .sdata2:0x805AC6DC; // type:object size:0x4 data:float
|
lbl_805AC6DC = .sdata2:0x805AC6DC; // type:object size:0x4 data:float
|
||||||
lbl_805AC6E0 = .sdata2:0x805AC6E0; // type:object size:0x4 data:float
|
lbl_805AC6E0 = .sdata2:0x805AC6E0; // type:object size:0x4 data:float
|
||||||
lbl_805AC6E4 = .sdata2:0x805AC6E4; // type:object size:0x4 data:float
|
lbl_805AC6E4 = .sdata2:0x805AC6E4; // type:object size:0x4 data:float
|
||||||
lbl_805AC6E8 = .sdata2:0x805AC6E8; // type:object size:0x4 data:4byte
|
skMuzzleLocator__10CGunWeapon = .sdata2:0x805AC6E8; // type:object size:0x4 data:4byte
|
||||||
lbl_805AC6EC = .sdata2:0x805AC6EC; // type:object size:0x4 data:4byte
|
skElbowLocator__10CGunWeapon = .sdata2:0x805AC6EC; // type:object size:0x4 data:4byte
|
||||||
skShootAnim__10CGunWeapon = .sdata2:0x805AC6F0; // type:object size:0x8 scope:global
|
skShootAnim__10CGunWeapon = .sdata2:0x805AC6F0; // type:object size:0x8 scope:global
|
||||||
lbl_805AC6F8 = .sdata2:0x805AC6F8; // type:object size:0x4 data:float
|
lbl_805AC6F8 = .sdata2:0x805AC6F8; // type:object size:0x4 data:float
|
||||||
lbl_805AC6FC = .sdata2:0x805AC6FC; // type:object size:0x4 data:float
|
lbl_805AC6FC = .sdata2:0x805AC6FC; // type:object size:0x4 data:float
|
||||||
|
|
|
@ -352,7 +352,7 @@ config.libs = [
|
||||||
Object(NonMatching, "MetroidPrime/CSamusDoll.cpp"),
|
Object(NonMatching, "MetroidPrime/CSamusDoll.cpp"),
|
||||||
Object(NonMatching, "MetroidPrime/Factories/CStateMachineFactory.cpp"),
|
Object(NonMatching, "MetroidPrime/Factories/CStateMachineFactory.cpp"),
|
||||||
Object(Matching, "MetroidPrime/Weapons/CPlasmaBeam.cpp"),
|
Object(Matching, "MetroidPrime/Weapons/CPlasmaBeam.cpp"),
|
||||||
Object(NonMatching, "MetroidPrime/Weapons/CPowerBeam.cpp"),
|
Object(Matching, "MetroidPrime/Weapons/CPowerBeam.cpp"),
|
||||||
Object(NonMatching, "MetroidPrime/Weapons/CWaveBeam.cpp"),
|
Object(NonMatching, "MetroidPrime/Weapons/CWaveBeam.cpp"),
|
||||||
Object(NonMatching, "MetroidPrime/Weapons/CIceBeam.cpp"),
|
Object(NonMatching, "MetroidPrime/Weapons/CIceBeam.cpp"),
|
||||||
Object(NonMatching, "MetroidPrime/CScriptMailbox.cpp"),
|
Object(NonMatching, "MetroidPrime/CScriptMailbox.cpp"),
|
||||||
|
|
|
@ -164,6 +164,8 @@ protected:
|
||||||
bool x218_28_suitArmLocked : 1;
|
bool x218_28_suitArmLocked : 1;
|
||||||
bool x218_29_drawHologram : 1;
|
bool x218_29_drawHologram : 1;
|
||||||
|
|
||||||
|
static const char* skMuzzleLocator;
|
||||||
|
static const char* skElbowLocator;
|
||||||
static const int skShootAnim[2];
|
static const int skShootAnim[2];
|
||||||
|
|
||||||
void AllocResPools(CPlayerState::EBeamId beam);
|
void AllocResPools(CPlayerState::EBeamId beam);
|
||||||
|
|
|
@ -48,8 +48,6 @@ void CPowerBeam::PostRenderGunFx(const CStateManager& mgr, const CTransform4f& x
|
||||||
CGunWeapon::PostRenderGunFx(mgr, xf);
|
CGunWeapon::PostRenderGunFx(mgr, xf);
|
||||||
}
|
}
|
||||||
|
|
||||||
static const char* kTransformName = "LBEAM";
|
|
||||||
|
|
||||||
void CPowerBeam::UpdateGunFx(bool shotSmoke, float dt, const CStateManager& mgr,
|
void CPowerBeam::UpdateGunFx(bool shotSmoke, float dt, const CStateManager& mgr,
|
||||||
const CTransform4f& xf) {
|
const CTransform4f& xf) {
|
||||||
switch (x240_smokeState) {
|
switch (x240_smokeState) {
|
||||||
|
@ -72,7 +70,7 @@ void CPowerBeam::UpdateGunFx(bool shotSmoke, float dt, const CStateManager& mgr,
|
||||||
// [[fallthrough]];
|
// [[fallthrough]];
|
||||||
case kSS_Done:
|
case kSS_Done:
|
||||||
if (!x234_shotSmokeGen.null()) {
|
if (!x234_shotSmokeGen.null()) {
|
||||||
CTransform4f locator = x10_solidModelData->GetScaledLocatorTransform(rstl::string_l(kTransformName));
|
CTransform4f locator = x10_solidModelData->GetScaledLocatorTransform(rstl::string_l(CGunWeapon::skMuzzleLocator));
|
||||||
x234_shotSmokeGen->SetGlobalTranslation(locator.GetTranslation());
|
x234_shotSmokeGen->SetGlobalTranslation(locator.GetTranslation());
|
||||||
x234_shotSmokeGen->Update(dt);
|
x234_shotSmokeGen->Update(dt);
|
||||||
if (x240_smokeState == kSS_Done && x234_shotSmokeGen->GetSystemCount() == 0)
|
if (x240_smokeState == kSS_Done && x234_shotSmokeGen->GetSystemCount() == 0)
|
||||||
|
@ -100,7 +98,7 @@ void CPowerBeam::Update(float dt, CStateManager& mgr) {
|
||||||
if (CGunWeapon::IsLoaded() && !x244_25_loaded) {
|
if (CGunWeapon::IsLoaded() && !x244_25_loaded) {
|
||||||
x244_25_loaded = x21c_shotSmoke.IsLoaded() && x228_power2nd1.IsLoaded();
|
x244_25_loaded = x21c_shotSmoke.IsLoaded() && x228_power2nd1.IsLoaded();
|
||||||
if (x244_25_loaded) {
|
if (x244_25_loaded) {
|
||||||
x234_shotSmokeGen = new CElementGen (x21c_shotSmoke);
|
x234_shotSmokeGen = NEW CElementGen (x21c_shotSmoke);
|
||||||
x234_shotSmokeGen->SetParticleEmission(false);
|
x234_shotSmokeGen->SetParticleEmission(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -109,7 +107,7 @@ void CPowerBeam::Update(float dt, CStateManager& mgr) {
|
||||||
void CPowerBeam::Fire(bool underwater, float dt, CPlayerState::EChargeStage chargeState, const CTransform4f& xf,
|
void CPowerBeam::Fire(bool underwater, float dt, CPlayerState::EChargeStage chargeState, const CTransform4f& xf,
|
||||||
CStateManager& mgr, TUniqueId homingTarget, float chargeFactor1,
|
CStateManager& mgr, TUniqueId homingTarget, float chargeFactor1,
|
||||||
float chargeFactor2) {
|
float chargeFactor2) {
|
||||||
static ushort skSoundId[] = {
|
static const ushort skSoundId[] = {
|
||||||
SFXwpn_fire_power_normal,
|
SFXwpn_fire_power_normal,
|
||||||
SFXwpn_fire_power_charged,
|
SFXwpn_fire_power_charged,
|
||||||
};
|
};
|
||||||
|
@ -145,7 +143,7 @@ void CPowerBeam::EnableSecondaryFx(ESecondaryFxType type) {
|
||||||
x1cc_enabledSecondaryEffect = kSFT_None;
|
x1cc_enabledSecondaryEffect = kSFT_None;
|
||||||
break;
|
break;
|
||||||
case kSFT_Charge:
|
case kSFT_Charge:
|
||||||
x238_power2ndGen = new CElementGen(x228_power2nd1);
|
x238_power2ndGen = NEW CElementGen(x228_power2nd1);
|
||||||
x238_power2ndGen->SetGlobalScale(x4_scale);
|
x238_power2ndGen->SetGlobalScale(x4_scale);
|
||||||
x1cc_enabledSecondaryEffect = type;
|
x1cc_enabledSecondaryEffect = type;
|
||||||
break;
|
break;
|
||||||
|
|
Loading…
Reference in New Issue