#pragma once #include #include struct LightInfo { /* 0x00 */ GXColor mColor; /* 0x04 */ Vec mPos; /* 0x10 */ bool mIsFollowCamera; }; struct LightInfoCoin { LightInfo base; struct { GXColor _14; f32 _18; }; }; struct ActorLightInfo { LightInfo mInfo0; // 0x0 LightInfo mInfo1; // 0x14 u8 mAlpha2; // 0x28 GXColor mColor; // 0x29 }; struct AreaLightInfo { /* 0x00 */ const char* mAreaLightName; /* 0x04 */ s32 mInterpolate; /* 0x08 */ bool mFix; /* 0x0C */ ActorLightInfo mPlayerLight; /* 0x3C */ ActorLightInfo mStrongLight; /* 0x6C */ ActorLightInfo mWeakLight; /* 0x9C */ ActorLightInfo mPlanetLight; }; class LightDataHolder { public: LightDataHolder(); void initLightData(); AreaLightInfo* findAreaLight(const char*) const; const char* getDefaultAreaLightName() const; s32 getDefaultStepInterpolate() const; inline AreaLightInfo* getLightInfo(s32 idx) const { return &mLights[idx]; } /* 0x00 */ s32 mLightCount; /* 0x04 */ AreaLightInfo* mLights; /* 0x08 */ LightInfoCoin _8; };