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
|