prime/include/MetroidPrime/ScriptObjects/CScriptProjectedShadow.hpp

38 lines
1.1 KiB
C++

#ifndef _CSCRIPTPROJECTEDSHADOW
#define _CSCRIPTPROJECTEDSHADOW
#include "MetroidPrime/CActor.hpp"
#include "rstl/single_ptr.hpp"
class CProjectedShadow;
class CScriptShadowProjector : public CActor {
public:
CScriptShadowProjector(TUniqueId, const rstl::string&, const CEntityInfo&, const CTransform4f&,
bool, const CVector3f&, bool, float, float, float, float, int);
void Accept(IVisitor& visitor) override;
void Think(float, CStateManager&) override;
void AcceptScriptMsg(EScriptObjectMessage, TUniqueId, CStateManager&) override;
void PreRender(CStateManager&, const CFrustumPlanes&) override;
void AddToRenderer(const CFrustumPlanes&, const CStateManager&) const override;
void CreateProjectedShadow();
uchar GetPersistent() const { return x110_24_persistent; }
private:
float xe8_scale;
CVector3f xec_offset;
float xf8_zOffsetAdjust;
float xfc_opacity;
float x100_opacityRecip;
TUniqueId x104_target;
rstl::single_ptr< CProjectedShadow > x108_projectedShadow;
uint x10c_textureSize;
uchar x110_24_persistent : 1;
bool x110_25_shadowInvalidated : 1;
};
#endif // _CSCRIPTPROJECTEDSHADOW