2016-07-22 19:46:30 +00:00
|
|
|
#include "CMorphBall.hpp"
|
2017-03-06 06:33:51 +00:00
|
|
|
#include "CPlayer.hpp"
|
|
|
|
#include "CMorphBallShadow.hpp"
|
2017-03-10 18:00:40 +00:00
|
|
|
#include "Particle/CGenDescription.hpp"
|
2016-07-22 19:46:30 +00:00
|
|
|
|
|
|
|
namespace urde
|
|
|
|
{
|
|
|
|
|
|
|
|
CMorphBall::CMorphBall(CPlayer& player, float)
|
|
|
|
: x0_player(player)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2017-03-06 06:33:51 +00:00
|
|
|
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);
|
|
|
|
}
|
|
|
|
|
2016-07-22 19:46:30 +00:00
|
|
|
}
|