mirror of
https://github.com/SwareJonge/mkdd.git
synced 2025-03-01 09:36:23 +00:00
match and link SimpleDrawer.cpp
This commit is contained in:
parent
73bd769de8
commit
8dea8f9267
@ -1034,6 +1034,13 @@ src/Kaneshige/TexLODControl.cpp:
|
||||
src/Kaneshige/ShapePktControl.cpp:
|
||||
.text: [0x801ba000, 0x801ba064]
|
||||
|
||||
src/Kaneshige/SimpleDrawer.cpp:
|
||||
.text: [0x801ba064, 0x801ba2a4]
|
||||
.rodata: [0x80378988, 0x803789b8]
|
||||
.sdata: [0x80414650, 0x80414658]
|
||||
.sbss: [0x804163e8, 0x804163f0]
|
||||
.sdata2: [0x8041a0b8, 0x8041a0c0]
|
||||
|
||||
src/Kaneshige/JugemPoint.cpp:
|
||||
.text: [0x801ba2a4, 0x801ba2b4]
|
||||
|
||||
|
@ -992,6 +992,11 @@ src/Kaneshige/TexLODControl.cpp:
|
||||
src/Kaneshige/ShapePktControl.cpp:
|
||||
.text: [0x80190134, 0x80190190]
|
||||
|
||||
src/Kaneshige/SimpleDrawer.cpp:
|
||||
.text: [0x80190190, 0x80190324]
|
||||
.sdata: [0x803d38f0, 0x803d38f8]
|
||||
.sbss: [0x803d5660, 0x803d5668]
|
||||
|
||||
src/Kaneshige/JugemPoint.cpp:
|
||||
.text: [0x80190324, 0x80190334]
|
||||
|
||||
|
@ -2855,7 +2855,10 @@ global:
|
||||
# SimpleDrawer.cpp
|
||||
0x80190190: __ct__12SimpleDrawerFv
|
||||
0x801901a8: drawInit__12SimpleDrawerFP7ExModel
|
||||
0x801901d0: drawInit__12SimpleDrawerFP12J3DModelData
|
||||
0x80190238: loadPreDrawSetting__12SimpleDrawerFv
|
||||
0x803d38f0: sEnableCheckHidding__12SimpleDrawer
|
||||
0x803d5660: sDrawingDrawer__12SimpleDrawer
|
||||
|
||||
# JugemPoint.cpp
|
||||
0x80190324: __ct__10JugemPointFv
|
||||
|
@ -64,6 +64,7 @@ namespace JUTAssertion
|
||||
#define JUT_MINMAX_ASSERT(min, cur, max) \
|
||||
JUT_ASSERT_F((((min) <= (cur)) && ((cur) < (max))), "range over: %d <= " #cur "=%d < %d", (min), (cur), (max));
|
||||
|
||||
// TODO: might not exist, unsigned comparisons against 0 get discarded
|
||||
#define JUT_MAX_ASSERT(cur, max) \
|
||||
JUT_ASSERT_F(((cur) < (max)), "range over: %d <= " #cur "=%d < %d", 0, (cur), (max));
|
||||
|
||||
|
@ -65,6 +65,12 @@ public:
|
||||
void setSimpleTevReg(u32 id) { mSimpleTevReg |= (1 << id); }
|
||||
void simpleDraw(u32 viewNo) { simpleDraw(viewNo, nullptr, 1); }
|
||||
|
||||
J3DModelData *getModelData(u16 level) const {
|
||||
#line 188
|
||||
JUT_MINMAX_ASSERT(0, level, mLevelCnt)
|
||||
return mModelData[level];
|
||||
}
|
||||
|
||||
static bool sClippingOn; // 0x80414610
|
||||
static bool sMtxCombinationOn; // 0x80416398
|
||||
static bool sDrawingOnlyUpdZMat; // 0x80416399
|
||||
@ -72,7 +78,7 @@ public:
|
||||
|
||||
private:
|
||||
// Vtable 0x0
|
||||
u8 _4[0x8 - 0x4];
|
||||
u16 mLevelCnt;
|
||||
J3DModelData **mModelData;
|
||||
J3DModel **mModel;
|
||||
u8 _10[0x1c - 0x10];
|
||||
|
@ -4,21 +4,27 @@
|
||||
#include "Kaneshige/ExModel.h"
|
||||
|
||||
class SimpleDrawer
|
||||
{ // Autogenerated
|
||||
{
|
||||
public:
|
||||
SimpleDrawer(); // 0x801ba064
|
||||
void drawInit(ExModel *); // 0x801ba07c
|
||||
void drawInit(J3DModelData *); // 0x801ba14c
|
||||
bool loadPreDrawSetting(); // 0x801ba1b4
|
||||
SimpleDrawer(); // 0x801ba064
|
||||
void drawInit(ExModel *model); // 0x801ba07c
|
||||
void drawInit(J3DModelData *modelData); // 0x801ba14c
|
||||
bool loadPreDrawSetting(); // 0x801ba1b4
|
||||
|
||||
~SimpleDrawer() {}
|
||||
J3DMaterial *getDrawingMaterial() { return mDrawingMaterial; }
|
||||
void enableDrawMaterial() { mIsMatDrawOn = true; }
|
||||
bool isPhaseCheckHidding() { return mPhase == 1; }
|
||||
|
||||
static SimpleDrawer *getDrawingDrawer() { return sDrawingDrawer; }
|
||||
|
||||
static bool sEnableCheckHidding; // 0x80414650
|
||||
static SimpleDrawer *sDrawingDrawer; // 0x804163e8
|
||||
|
||||
~SimpleDrawer() {}
|
||||
private:
|
||||
u32 _0;
|
||||
u8 _4;
|
||||
u32 mPhase; // 0x0
|
||||
bool mKeepDrawMat; // 0x4
|
||||
J3DMaterial *mDrawingMaterial; // 0x8
|
||||
bool mIsMatDrawOn; // 0xc
|
||||
}; // Size: unk
|
||||
};
|
||||
|
||||
#endif // SIMPLEDRAWER_H
|
74
src/Kaneshige/SimpleDrawer.cpp
Normal file
74
src/Kaneshige/SimpleDrawer.cpp
Normal file
@ -0,0 +1,74 @@
|
||||
#include "Kaneshige/SimpleDrawer.h"
|
||||
|
||||
SimpleDrawer *SimpleDrawer::sDrawingDrawer;
|
||||
bool SimpleDrawer::sEnableCheckHidding = true;
|
||||
|
||||
SimpleDrawer::SimpleDrawer()
|
||||
{
|
||||
mKeepDrawMat = false;
|
||||
mDrawingMaterial = nullptr;
|
||||
mPhase = 0;
|
||||
mIsMatDrawOn = false;
|
||||
}
|
||||
|
||||
void SimpleDrawer::drawInit(ExModel *model)
|
||||
{
|
||||
J3DModelData *modelData = model->getModelData(0);
|
||||
drawInit(modelData);
|
||||
}
|
||||
|
||||
void SimpleDrawer::drawInit(J3DModelData *modelData)
|
||||
{
|
||||
sDrawingDrawer = this;
|
||||
modelData->syncJ3DSys();
|
||||
J3DShape::resetVcdVatCache();
|
||||
J3DJoint *joint = modelData->getJointNodePointer(0);
|
||||
|
||||
mPhase = 0;
|
||||
mKeepDrawMat = true;
|
||||
mDrawingMaterial = joint->getMesh();
|
||||
mIsMatDrawOn = false;
|
||||
}
|
||||
|
||||
bool SimpleDrawer::loadPreDrawSetting()
|
||||
{
|
||||
bool ret = true;
|
||||
|
||||
switch (mPhase)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if (mDrawingMaterial)
|
||||
{
|
||||
if (mIsMatDrawOn || !sEnableCheckHidding)
|
||||
{
|
||||
mPhase = 1;
|
||||
mDrawingMaterial->loadSharedDL();
|
||||
mDrawingMaterial->getShape()->loadPreDrawSetting();
|
||||
break;
|
||||
}
|
||||
|
||||
if (mKeepDrawMat == false)
|
||||
{
|
||||
mDrawingMaterial = mDrawingMaterial->getNext();
|
||||
mIsMatDrawOn = false;
|
||||
}
|
||||
mKeepDrawMat = false;
|
||||
break;
|
||||
}
|
||||
|
||||
ret = false;
|
||||
sDrawingDrawer = nullptr;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
mPhase = 0;
|
||||
mDrawingMaterial = mDrawingMaterial->getNext();
|
||||
mIsMatDrawOn = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user