mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-12-10 00:27:43 +00:00
Several architectural fixes and additions
This commit is contained in:
@@ -3,9 +3,9 @@
|
||||
namespace urde
|
||||
{
|
||||
|
||||
CGuiPane::CGuiPane(const CGuiWidgetParms& parms, float xDim, float zDim,
|
||||
CGuiPane::CGuiPane(const CGuiWidgetParms& parms, const zeus::CVector2f& dim,
|
||||
const zeus::CVector3f& scaleCenter)
|
||||
: CGuiWidget(parms), xf8_xDim(xDim), xfc_zDim(zDim), x108_scaleCenter(scaleCenter)
|
||||
: CGuiWidget(parms), xb8_dim(dim), x108_scaleCenter(scaleCenter)
|
||||
{
|
||||
InitializeBuffers();
|
||||
}
|
||||
@@ -24,15 +24,14 @@ void CGuiPane::ScaleDimensions(const zeus::CVector3f& scale)
|
||||
|
||||
void CGuiPane::SetDimensions(const zeus::CVector2f& dim, bool initVBO)
|
||||
{
|
||||
xf8_xDim = dim.x;
|
||||
xfc_zDim = dim.y;
|
||||
xb8_dim = dim;
|
||||
if (initVBO)
|
||||
InitializeBuffers();
|
||||
}
|
||||
|
||||
zeus::CVector2f CGuiPane::GetDimensions() const
|
||||
{
|
||||
return {xf8_xDim, xfc_zDim};
|
||||
return xb8_dim;
|
||||
}
|
||||
|
||||
void CGuiPane::InitializeBuffers()
|
||||
@@ -40,24 +39,24 @@ void CGuiPane::InitializeBuffers()
|
||||
if (x100_verts.size() < 4)
|
||||
x100_verts.resize(4);
|
||||
|
||||
x100_verts[0].m_pos.assign(-xf8_xDim * 0.5f, 0.f, xfc_zDim * 0.5f);
|
||||
x100_verts[1].m_pos.assign(-xf8_xDim * 0.5f, 0.f, -xfc_zDim * 0.5f);
|
||||
x100_verts[2].m_pos.assign(xf8_xDim * 0.5f, 0.f, xfc_zDim * 0.5f);
|
||||
x100_verts[3].m_pos.assign(xf8_xDim * 0.5f, 0.f, -xfc_zDim * 0.5f);
|
||||
x100_verts[0].m_pos.assign(-xb8_dim.x * 0.5f, 0.f, xb8_dim.y * 0.5f);
|
||||
x100_verts[1].m_pos.assign(-xb8_dim.x * 0.5f, 0.f, -xb8_dim.y * 0.5f);
|
||||
x100_verts[2].m_pos.assign(xb8_dim.x * 0.5f, 0.f, xb8_dim.y * 0.5f);
|
||||
x100_verts[3].m_pos.assign(xb8_dim.x * 0.5f, 0.f, -xb8_dim.y * 0.5f);
|
||||
}
|
||||
|
||||
void CGuiPane::WriteData(COutputStream& out, bool flag) const
|
||||
{
|
||||
}
|
||||
|
||||
CGuiPane* CGuiPane::Create(CGuiFrame* frame, CInputStream& in, bool flag)
|
||||
std::shared_ptr<CGuiWidget> CGuiPane::Create(CGuiFrame* frame, CInputStream& in, CSimplePool* sp)
|
||||
{
|
||||
CGuiWidgetParms parms = ReadWidgetHeader(frame, in, flag);
|
||||
float x = in.readFloatBig();
|
||||
float z = in.readFloatBig();
|
||||
zeus::CVector3f scaleCenter;
|
||||
scaleCenter.readBig(in);
|
||||
return new CGuiPane(parms, x, z, scaleCenter);
|
||||
CGuiWidgetParms parms = ReadWidgetHeader(frame, in);
|
||||
zeus::CVector2f dim = zeus::CVector2f::ReadBig(in);
|
||||
zeus::CVector3f scaleCenter = zeus::CVector3f::ReadBig(in);
|
||||
std::shared_ptr<CGuiWidget> ret = std::make_shared<CGuiPane>(parms, dim, scaleCenter);
|
||||
ret->ParseBaseInfo(frame, in, parms);
|
||||
return ret;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user