PhazonBeam fixes, add debug hack for Metroid Prime's lair cutscene trigger

This commit is contained in:
Phillip Stephens 2022-01-09 17:17:51 -08:00
parent 8a9701fc30
commit 13d4a94ee1
Signed by: Antidote
GPG Key ID: F8BEE4C83DACA60D
3 changed files with 10 additions and 3 deletions

View File

@ -208,9 +208,9 @@ void CPhazonBeam::Draw(bool drawSuitArm, const CStateManager& mgr, const zeus::C
} }
if (x274_26_veinsAlphaActive) { if (x274_26_veinsAlphaActive) {
CModelFlags useFlags(5, 0, 3, zeus::CColor(1.f, 0.5f * x270_indirectAlpha)); CModelFlags useFlags(5, 0, 3, zeus::CColor(1.f, 0.5f * x270_indirectAlpha));
x224_phazonVeinsData->Render(mgr, xf, lights, useFlags); x224_phazonVeinsData->Render(mgr, modelXf * zeus::CTransform::Scale(x270_indirectAlpha), lights, useFlags);
} else { } else {
x224_phazonVeinsData->Render(mgr, xf, lights, flags); x224_phazonVeinsData->Render(mgr, modelXf, lights, flags);
} }
} }
} }

View File

@ -632,7 +632,7 @@ void CPlayerGun::HandlePhazonBeamChange(CStateManager& mgr) {
inMorph = true; inMorph = true;
break; break;
case EPhazonBeamState::Active: case EPhazonBeamState::Active:
if (!x835_25_inPhazonBeam) { if (!x835_24_canFirePhazon) {
SetPhazonBeamMorph(true); SetPhazonBeamMorph(true);
x338_nextState = ENextState::ExitPhazonBeam; x338_nextState = ENextState::ExitPhazonBeam;
inMorph = true; inMorph = true;

View File

@ -34,6 +34,13 @@ CScriptTrigger::CScriptTrigger(TUniqueId uid, std::string_view name, const CEnti
GetEditorId(), GetAreaIdAlways()); GetEditorId(), GetAreaIdAlways());
x11c_forceField.x() = 0.f; x11c_forceField.x() = 0.f;
} }
#else
// HACK: For some reason MetroidPrime's lair doesn't enable this trigger until after the cutscene, activate it in debug build
if (GetEditorId() == 0x000B01DB && !GetActive()) {
Log.report(logvisor::Warning, FMT_STRING("BUG THIS!: Overriding active for trigger {} in area {}"), GetEditorId(),
GetAreaIdAlways());
SetActive(true);
}
#endif #endif
} }