mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-05-13 23:11:20 +00:00
Many functions are modifying internals of CBooModel and const-casting is performed in order to work around functions being const when they really shouldn't be. This amends the function signatures in order to allow these functions to exist without const_cast, making code much nicer to read.
32 lines
975 B
C++
32 lines
975 B
C++
#pragma once
|
|
|
|
#include <memory>
|
|
|
|
#include "Runtime/CToken.hpp"
|
|
#include "Runtime/Graphics/CModel.hpp"
|
|
#include "Runtime/GuiSys/CGuiWidget.hpp"
|
|
|
|
namespace urde {
|
|
class CSimplePool;
|
|
|
|
class CGuiModel : public CGuiWidget {
|
|
TLockedToken<CModel> xb8_model;
|
|
CAssetId xc8_modelId;
|
|
u32 xcc_lightMask;
|
|
|
|
public:
|
|
CGuiModel(const CGuiWidgetParms& parms, CSimplePool* sp, CAssetId modelId, u32 lightMask, bool flag);
|
|
FourCC GetWidgetTypeID() const override { return FOURCC('MODL'); }
|
|
|
|
std::vector<CAssetId> GetModelAssets() const { return {xc8_modelId}; }
|
|
const TLockedToken<CModel>& GetModel() const { return xb8_model; }
|
|
bool GetIsFinishedLoadingWidgetSpecific() override;
|
|
void Touch() override;
|
|
void Draw(const CGuiWidgetDrawParms& parms) override;
|
|
bool TestCursorHit(const zeus::CMatrix4f& vp, const zeus::CVector2f& point) const override;
|
|
|
|
static std::shared_ptr<CGuiWidget> Create(CGuiFrame* frame, CInputStream& in, CSimplePool* sp);
|
|
};
|
|
|
|
} // namespace urde
|