Add CScriptShadowProjector

Former-commit-id: 34af5fd251
This commit is contained in:
Henrique Gemignani Passos Lima
2022-11-08 16:10:22 +02:00
parent 1dd0e2ad4d
commit df08c87c09
8 changed files with 204 additions and 12 deletions

View File

@@ -0,0 +1,37 @@
#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