prime/include/MetroidPrime/CProjectedShadow.hpp

41 lines
927 B
C++
Raw Normal View History

2022-11-08 14:10:22 +00:00
#ifndef _CPROJECTEDSHADOW
#define _CPROJECTEDSHADOW
#include "Kyoto/Graphics/CTexture.hpp"
#include "Kyoto/Math/CAABox.hpp"
2022-12-13 01:15:33 +00:00
class CStateManager;
class CModelData;
class SShadowDrawContext;
2022-11-08 14:10:22 +00:00
class CProjectedShadow {
public:
CProjectedShadow(int, int, uchar);
~CProjectedShadow();
2022-12-13 01:15:33 +00:00
void Render(const CStateManager&);
2022-11-08 14:10:22 +00:00
void RenderShadowBuffer(CStateManager&, const CModelData&, const CTransform4f&, int,
const CVector3f&, float, float);
void SetOpacity(float opacity) { x98_opacity = opacity; }
2022-12-13 01:15:33 +00:00
CAABox sub_8029e214();
void sub_8029dc98();
void sub_8029d6c8();
static void ModelDrawCallback(const float*, const float*, const SShadowDrawContext*);
2022-11-08 14:10:22 +00:00
private:
CTexture x0_texture;
CAABox x68_;
bool x80_;
2022-12-13 01:15:33 +00:00
uchar x81_persistent;
2022-11-08 14:10:22 +00:00
float x84_;
CVector3f x88_;
float x94_zDistanceAdjust;
float x98_opacity;
};
CHECK_SIZEOF(CProjectedShadow, 0x9c)
#endif // _CPROJECTEDSHADOW