#pragma once #include "CGuiWidget.hpp" #include "Graphics/CLight.hpp" namespace urde { class CSimplePool; class CGuiLight : public CGuiWidget { ELightType xb8_type; float xbc_spotCutoff; float xc0_distC; float xc4_distL; float xc8_distQ; float xcc_angleC; float xd0_angleL; float xd4_angleQ; u32 xd8_lightId; zeus::CColor xdc_ambColor = zeus::CColor::skBlack; public: ~CGuiLight(); CGuiLight(const CGuiWidgetParms& parms, const CLight& light); FourCC GetWidgetTypeID() const { return FOURCC('LITE'); } CLight BuildLight() const; void SetIsVisible(bool vis); u32 GetLightId() const {return xd8_lightId;} const zeus::CColor& GetAmbientLightColor() const {return xdc_ambColor;} void SetSpotCutoff(float v) {xbc_spotCutoff = v;} void SetDistC(float v) {xc0_distC = v;} void SetDistL(float v) {xc4_distL = v;} void SetDistQ(float v) {xc8_distQ = v;} void SetAngleC(float v) {xcc_angleC = v;} void SetAngleL(float v) {xd0_angleL = v;} void SetAngleQ(float v) {xd4_angleQ = v;} void SetLightId(u32 idx) {xd8_lightId = idx;} void SetAmbientLightColor(const zeus::CColor& color) {xdc_ambColor = color;} static std::shared_ptr Create(CGuiFrame* frame, CInputStream& in, CSimplePool* sp); std::shared_ptr shared_from_this() { return std::static_pointer_cast(CGuiObject::shared_from_this()); } }; }