mirror of https://github.com/AxioDL/metaforce.git
CDrone: Render fixes
This commit is contained in:
parent
c8edf200de
commit
9e0c42103c
|
@ -299,6 +299,8 @@ void CDrone::Render(CStateManager& mgr) {
|
||||||
bool isOne = x3fc_flavor == EFlavorType::One;
|
bool isOne = x3fc_flavor == EFlavorType::One;
|
||||||
if (!isOne || GetModelAlphau8(mgr) != 0) {
|
if (!isOne || GetModelAlphau8(mgr) != 0) {
|
||||||
if (isOne && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay) {
|
if (isOne && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay) {
|
||||||
|
CElementGen::SetSubtractBlend(true);
|
||||||
|
CElementGen::SetMoveRedToAlphaBuffer(true);
|
||||||
CGraphics::SetFog(ERglFogMode::PerspLin, 0.f, 75.f, zeus::skBlack);
|
CGraphics::SetFog(ERglFogMode::PerspLin, 0.f, 75.f, zeus::skBlack);
|
||||||
GetModelData()->GetAnimationData()->GetParticleDB().RenderSystemsToBeDrawnFirst();
|
GetModelData()->GetAnimationData()->GetParticleDB().RenderSystemsToBeDrawnFirst();
|
||||||
mgr.SetupFogForArea3XRange(GetAreaIdAlways());
|
mgr.SetupFogForArea3XRange(GetAreaIdAlways());
|
||||||
|
@ -307,13 +309,15 @@ void CDrone::Render(CStateManager& mgr) {
|
||||||
if (isOne && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay) {
|
if (isOne && mgr.GetPlayerState()->GetActiveVisor(mgr) == CPlayerState::EPlayerVisor::XRay) {
|
||||||
CGraphics::SetFog(ERglFogMode::PerspLin, 0.f, 75.f, zeus::skBlack);
|
CGraphics::SetFog(ERglFogMode::PerspLin, 0.f, 75.f, zeus::skBlack);
|
||||||
GetModelData()->GetAnimationData()->GetParticleDB().RenderSystemsToBeDrawnLast();
|
GetModelData()->GetAnimationData()->GetParticleDB().RenderSystemsToBeDrawnLast();
|
||||||
mgr.SetupFogForArea3XRange(GetAreaIdAlways());
|
mgr.SetupFogForArea(GetAreaIdAlways());
|
||||||
|
CElementGen::SetSubtractBlend(false);
|
||||||
|
CElementGen::SetMoveRedToAlphaBuffer(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isOne && zeus::close_enough(x5dc_, 0)) {
|
if (isOne && !zeus::close_enough(x5dc_, 0)) {
|
||||||
x82c_shieldModel->Render(
|
x82c_shieldModel->Render(
|
||||||
mgr, GetLctrTransform("Shield_LCTR"sv), GetActorLights(),
|
mgr, GetLctrTransform("Shield_LCTR"sv), GetActorLights(),
|
||||||
CModelFlags{8, 0, 3, zeus::CColor::lerp({1.f, 0.f, 0.f, 1.f}, zeus::skWhite, x5e8_shieldTime)});
|
CModelFlags{8, 0, 3, zeus::CColor::lerp({1.f, 1.f, 1.f, x5dc_}, {1.f, 0.f, 0.f, 1.f}, x5e8_shieldTime)});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -355,7 +359,6 @@ EWeaponCollisionResponseTypes CDrone::GetCollisionResponseType(const zeus::CVect
|
||||||
}
|
}
|
||||||
|
|
||||||
void CDrone::DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) {
|
void CDrone::DoUserAnimEvent(CStateManager& mgr, const CInt32POINode& node, EUserEventType type, float dt) {
|
||||||
// TODO: Finish
|
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case EUserEventType::Projectile:
|
case EUserEventType::Projectile:
|
||||||
sub_80165984(mgr, GetLctrTransform(node.GetLocatorName()));
|
sub_80165984(mgr, GetLctrTransform(node.GetLocatorName()));
|
||||||
|
|
Loading…
Reference in New Issue