mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-14 22:46:09 +00:00
DrawWorld implementation complete
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
#include "CMorphBall.hpp"
|
||||
#include "CPlayer.hpp"
|
||||
#include "CMorphBallShadow.hpp"
|
||||
|
||||
namespace urde
|
||||
{
|
||||
@@ -8,4 +10,28 @@ CMorphBall::CMorphBall(CPlayer& player, float)
|
||||
{
|
||||
}
|
||||
|
||||
void CMorphBall::DrawBallShadow(const CStateManager& mgr)
|
||||
{
|
||||
if (!x1e50_shadow)
|
||||
return;
|
||||
|
||||
float alpha = 1.f;
|
||||
switch (x0_player.x2f8_morphTransState)
|
||||
{
|
||||
case CPlayer::EPlayerMorphBallState::Unmorphed:
|
||||
return;
|
||||
case CPlayer::EPlayerMorphBallState::Unmorphing:
|
||||
alpha = 0.f;
|
||||
if (x0_player.x578_morphDuration != 0.f)
|
||||
alpha = zeus::clamp(0.f, x0_player.x574_morphTime / x0_player.x578_morphDuration, 1.f);
|
||||
alpha = 1.f - alpha;
|
||||
case CPlayer::EPlayerMorphBallState::Morphing:
|
||||
alpha = 0.f;
|
||||
if (x0_player.x578_morphDuration != 0.f)
|
||||
alpha = zeus::clamp(0.f, x0_player.x574_morphTime / x0_player.x578_morphDuration, 1.f);
|
||||
default: break;
|
||||
}
|
||||
x1e50_shadow->Render(mgr, alpha);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user