Merge pull request #229 from magcius/fop

J3DJointTree, f_op_scene, profile struct fixes
This commit is contained in:
TakaRikka
2022-12-30 17:04:44 -08:00
committed by GitHub
40 changed files with 337 additions and 479 deletions
@@ -1,51 +0,0 @@
lbl_80325C00:
/* 80325C00 A0 E3 00 1E */ lhz r7, 0x1e(r3)
/* 80325C04 38 80 00 00 */ li r4, 0
/* 80325C08 38 A0 00 00 */ li r5, 0
/* 80325C0C A0 03 00 36 */ lhz r0, 0x36(r3)
/* 80325C10 81 03 00 24 */ lwz r8, 0x24(r3)
/* 80325C14 81 23 00 28 */ lwz r9, 0x28(r3)
/* 80325C18 81 43 00 30 */ lwz r10, 0x30(r3)
/* 80325C1C 39 80 00 00 */ li r12, 0
/* 80325C20 48 00 00 18 */ b lbl_80325C38
lbl_80325C24:
/* 80325C24 55 8B 0B FC */ rlwinm r11, r12, 1, 0xf, 0x1e
/* 80325C28 80 C3 00 3C */ lwz r6, 0x3c(r3)
/* 80325C2C 7C C6 5A 2E */ lhzx r6, r6, r11
/* 80325C30 7C CA 5B 2E */ sthx r6, r10, r11
/* 80325C34 39 8C 00 01 */ addi r12, r12, 1
lbl_80325C38:
/* 80325C38 55 86 04 3E */ clrlwi r6, r12, 0x10
/* 80325C3C 7C 06 00 40 */ cmplw r6, r0
/* 80325C40 41 80 FF E4 */ blt lbl_80325C24
/* 80325C44 39 60 00 00 */ li r11, 0
/* 80325C48 48 00 00 58 */ b lbl_80325CA0
lbl_80325C4C:
/* 80325C4C 80 C3 00 20 */ lwz r6, 0x20(r3)
/* 80325C50 55 60 04 3E */ clrlwi r0, r11, 0x10
/* 80325C54 7C 06 00 AE */ lbzx r0, r6, r0
/* 80325C58 38 C0 00 00 */ li r6, 0
/* 80325C5C C0 22 CA 18 */ lfs f1, lit_903(r2)
/* 80325C60 7C 09 03 A6 */ mtctr r0
/* 80325C64 2C 00 00 00 */ cmpwi r0, 0
/* 80325C68 40 81 00 24 */ ble lbl_80325C8C
lbl_80325C6C:
/* 80325C6C 7C 09 2C 2E */ lfsx f0, r9, r5
/* 80325C70 FC 01 00 40 */ fcmpo cr0, f1, f0
/* 80325C74 40 80 00 0C */ bge lbl_80325C80
/* 80325C78 FC 20 00 90 */ fmr f1, f0
/* 80325C7C 7C C8 22 2E */ lhzx r6, r8, r4
lbl_80325C80:
/* 80325C80 38 84 00 02 */ addi r4, r4, 2
/* 80325C84 38 A5 00 04 */ addi r5, r5, 4
/* 80325C88 42 00 FF E4 */ bdnz lbl_80325C6C
lbl_80325C8C:
/* 80325C8C A0 03 00 36 */ lhz r0, 0x36(r3)
/* 80325C90 7C 0B 02 14 */ add r0, r11, r0
/* 80325C94 54 00 08 3C */ slwi r0, r0, 1
/* 80325C98 7C CA 03 2E */ sthx r6, r10, r0
/* 80325C9C 39 6B 00 01 */ addi r11, r11, 1
lbl_80325CA0:
/* 80325CA0 7C 0B 38 00 */ cmpw r11, r7
/* 80325CA4 41 80 FF A8 */ blt lbl_80325C4C
/* 80325CA8 4E 80 00 20 */ blr
@@ -1,97 +0,0 @@
lbl_80325A9C:
/* 80325A9C 94 21 FF D0 */ stwu r1, -0x30(r1)
/* 80325AA0 7C 08 02 A6 */ mflr r0
/* 80325AA4 90 01 00 34 */ stw r0, 0x34(r1)
/* 80325AA8 39 61 00 30 */ addi r11, r1, 0x30
/* 80325AAC 48 03 C7 19 */ bl _savegpr_23
/* 80325AB0 7C 77 1B 78 */ mr r23, r3
/* 80325AB4 7C 98 23 78 */ mr r24, r4
/* 80325AB8 7C B9 2B 78 */ mr r25, r5
/* 80325ABC 7C DA 33 78 */ mr r26, r6
/* 80325AC0 7C FB 3B 78 */ mr r27, r7
/* 80325AC4 7F 1F C3 78 */ mr r31, r24
lbl_80325AC8:
/* 80325AC8 3B C0 00 00 */ li r30, 0
/* 80325ACC 3B A0 00 00 */ li r29, 0
/* 80325AD0 3B 80 00 00 */ li r28, 0
/* 80325AD4 80 99 00 00 */ lwz r4, 0(r25)
/* 80325AD8 A0 04 00 00 */ lhz r0, 0(r4)
/* 80325ADC 28 00 00 12 */ cmplwi r0, 0x12
/* 80325AE0 41 81 00 A0 */ bgt lbl_80325B80
/* 80325AE4 3C 60 80 3D */ lis r3, lit_871@ha /* 0x803CECA8@ha */
/* 80325AE8 38 63 EC A8 */ addi r3, r3, lit_871@l /* 0x803CECA8@l */
/* 80325AEC 54 00 10 3A */ slwi r0, r0, 2
/* 80325AF0 7C 03 00 2E */ lwzx r0, r3, r0
/* 80325AF4 7C 09 03 A6 */ mtctr r0
/* 80325AF8 4E 80 04 20 */ bctr
/* 80325AFC 38 04 00 04 */ addi r0, r4, 4
/* 80325B00 90 19 00 00 */ stw r0, 0(r25)
/* 80325B04 7E E3 BB 78 */ mr r3, r23
/* 80325B08 7F E4 FB 78 */ mr r4, r31
/* 80325B0C 7F 25 CB 78 */ mr r5, r25
/* 80325B10 7F 46 D3 78 */ mr r6, r26
/* 80325B14 7F 67 DB 78 */ mr r7, r27
/* 80325B18 4B FF FF 85 */ bl makeHierarchy__12J3DJointTreeFP8J3DJointPPC17J3DModelHierarchyP16J3DMaterialTableP13J3DShapeTable
/* 80325B1C 48 00 00 64 */ b lbl_80325B80
/* 80325B20 38 04 00 04 */ addi r0, r4, 4
/* 80325B24 90 19 00 00 */ stw r0, 0(r25)
/* 80325B28 48 00 00 C0 */ b lbl_80325BE8
/* 80325B2C 48 00 00 BC */ b lbl_80325BE8
/* 80325B30 80 77 00 18 */ lwz r3, 0x18(r23)
/* 80325B34 38 04 00 04 */ addi r0, r4, 4
/* 80325B38 90 19 00 00 */ stw r0, 0(r25)
/* 80325B3C A0 04 00 02 */ lhz r0, 2(r4)
/* 80325B40 54 00 10 3A */ slwi r0, r0, 2
/* 80325B44 7F C3 00 2E */ lwzx r30, r3, r0
/* 80325B48 48 00 00 38 */ b lbl_80325B80
/* 80325B4C 38 04 00 04 */ addi r0, r4, 4
/* 80325B50 90 19 00 00 */ stw r0, 0(r25)
/* 80325B54 A0 04 00 02 */ lhz r0, 2(r4)
/* 80325B58 80 7A 00 08 */ lwz r3, 8(r26)
/* 80325B5C 54 00 10 3A */ slwi r0, r0, 2
/* 80325B60 7F A3 00 2E */ lwzx r29, r3, r0
/* 80325B64 48 00 00 1C */ b lbl_80325B80
/* 80325B68 38 04 00 04 */ addi r0, r4, 4
/* 80325B6C 90 19 00 00 */ stw r0, 0(r25)
/* 80325B70 A0 04 00 02 */ lhz r0, 2(r4)
/* 80325B74 80 7B 00 08 */ lwz r3, 8(r27)
/* 80325B78 54 00 10 3A */ slwi r0, r0, 2
/* 80325B7C 7F 83 00 2E */ lwzx r28, r3, r0
lbl_80325B80:
/* 80325B80 28 1E 00 00 */ cmplwi r30, 0
/* 80325B84 41 82 00 28 */ beq lbl_80325BAC
/* 80325B88 7F DF F3 78 */ mr r31, r30
/* 80325B8C 28 18 00 00 */ cmplwi r24, 0
/* 80325B90 40 82 00 0C */ bne lbl_80325B9C
/* 80325B94 93 D7 00 10 */ stw r30, 0x10(r23)
/* 80325B98 4B FF FF 30 */ b lbl_80325AC8
lbl_80325B9C:
/* 80325B9C 7F 03 C3 78 */ mr r3, r24
/* 80325BA0 7F C4 F3 78 */ mr r4, r30
/* 80325BA4 48 00 95 99 */ bl appendChild__8J3DJointFP8J3DJoint
/* 80325BA8 4B FF FF 20 */ b lbl_80325AC8
lbl_80325BAC:
/* 80325BAC 28 1D 00 00 */ cmplwi r29, 0
/* 80325BB0 41 82 00 20 */ beq lbl_80325BD0
/* 80325BB4 80 18 00 58 */ lwz r0, 0x58(r24)
/* 80325BB8 28 00 00 00 */ cmplwi r0, 0
/* 80325BBC 41 82 00 08 */ beq lbl_80325BC4
/* 80325BC0 90 1D 00 04 */ stw r0, 4(r29)
lbl_80325BC4:
/* 80325BC4 93 B8 00 58 */ stw r29, 0x58(r24)
/* 80325BC8 93 1D 00 0C */ stw r24, 0xc(r29)
/* 80325BCC 4B FF FE FC */ b lbl_80325AC8
lbl_80325BD0:
/* 80325BD0 28 1C 00 00 */ cmplwi r28, 0
/* 80325BD4 41 82 FE F4 */ beq lbl_80325AC8
/* 80325BD8 80 78 00 58 */ lwz r3, 0x58(r24)
/* 80325BDC 93 83 00 08 */ stw r28, 8(r3)
/* 80325BE0 90 7C 00 04 */ stw r3, 4(r28)
/* 80325BE4 4B FF FE E4 */ b lbl_80325AC8
lbl_80325BE8:
/* 80325BE8 39 61 00 30 */ addi r11, r1, 0x30
/* 80325BEC 48 03 C6 25 */ bl _restgpr_23
/* 80325BF0 80 01 00 34 */ lwz r0, 0x34(r1)
/* 80325BF4 7C 08 03 A6 */ mtlr r0
/* 80325BF8 38 21 00 30 */ addi r1, r1, 0x30
/* 80325BFC 4E 80 00 20 */ blr
-31
View File
@@ -1,31 +0,0 @@
lbl_8001EC00:
/* 8001EC00 94 21 FF F0 */ stwu r1, -0x10(r1)
/* 8001EC04 7C 08 02 A6 */ mflr r0
/* 8001EC08 90 01 00 14 */ stw r0, 0x14(r1)
/* 8001EC0C 93 E1 00 0C */ stw r31, 0xc(r1)
/* 8001EC10 7C 7F 1B 78 */ mr r31, r3
/* 8001EC14 88 03 00 0C */ lbz r0, 0xc(r3)
/* 8001EC18 7C 00 07 75 */ extsb. r0, r0
/* 8001EC1C 40 82 00 38 */ bne lbl_8001EC54
/* 8001EC20 80 7F 00 10 */ lwz r3, 0x10(r31)
/* 8001EC24 80 03 00 20 */ lwz r0, 0x20(r3)
/* 8001EC28 90 1F 01 AC */ stw r0, 0x1ac(r31)
/* 8001EC2C 38 7F 01 B0 */ addi r3, r31, 0x1b0
/* 8001EC30 7F E4 FB 78 */ mr r4, r31
/* 8001EC34 48 00 05 55 */ bl fopScnTg_Init__FP15scene_tag_classPv
/* 8001EC38 38 7F 01 B0 */ addi r3, r31, 0x1b0
/* 8001EC3C 48 00 05 21 */ bl fopScnTg_ToQueue__FP15scene_tag_class
/* 8001EC40 80 7F 00 AC */ lwz r3, 0xac(r31)
/* 8001EC44 28 03 00 00 */ cmplwi r3, 0
/* 8001EC48 41 82 00 0C */ beq lbl_8001EC54
/* 8001EC4C 80 03 00 00 */ lwz r0, 0(r3)
/* 8001EC50 90 1F 00 B0 */ stw r0, 0xb0(r31)
lbl_8001EC54:
/* 8001EC54 80 7F 01 AC */ lwz r3, 0x1ac(r31)
/* 8001EC58 7F E4 FB 78 */ mr r4, r31
/* 8001EC5C 48 00 38 71 */ bl fpcMtd_Create__FP20process_method_classPv
/* 8001EC60 83 E1 00 0C */ lwz r31, 0xc(r1)
/* 8001EC64 80 01 00 14 */ lwz r0, 0x14(r1)
/* 8001EC68 7C 08 03 A6 */ mtlr r0
/* 8001EC6C 38 21 00 10 */ addi r1, r1, 0x10
/* 8001EC70 4E 80 00 20 */ blr
@@ -69,6 +69,7 @@ public:
private:
friend struct J3DJointFactory;
friend class J3DJointTree;
/* 0x00 */ void* mCallBackUserData;
/* 0x04 */ J3DJointCallBack mCallBack;
@@ -6,7 +6,11 @@
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
struct J3DModelHierarchy {};
struct J3DModelHierarchy {
/* 0x0 */ u16 mType;
/* 0x2 */ u16 mValue;
};
struct J3DMaterialTable;
struct J3DDrawMtxData {
@@ -32,6 +36,11 @@ public:
/* 80325D24 */ virtual ~J3DJointTree();
u16 getWEvlpMtxNum() const { return mWEvlpMtxNum; }
u8 getWEvlpMixMtxNum(u16 idx) const { return mWEvlpMixMtxNum[idx]; }
u16 * getWEvlpMixIndex() const { return mWEvlpMixIndex; }
f32 * getWEvlpMixWeight() const { return mWEvlpMixWeight; }
u16 * getWEvlpImportantMtxIndex() const { return mWEvlpImportantMtxIdx; }
u16 getDrawFullWgtMtxNum() const { return mDrawMtxData.mDrawFullWgtMtxNum; }
u16 getJointNum() const { return mJointNum; }
u16 getDrawMtxNum() const { return mDrawMtxData.mEntryNum; }
JUTNameTab* getJointName() const { return mJointName; }
@@ -49,11 +58,11 @@ private:
/* 0x18 */ J3DJoint** mJointNodePointer;
/* 0x1C */ u16 mJointNum;
/* 0x1E */ u16 mWEvlpMtxNum;
/* 0x20 */ u32 mWEvlpMixMtxNum;
/* 0x24 */ s32 mWEvlpMixIndex;
/* 0x28 */ s32 mWEvlpMixWeight;
/* 0x20 */ u8* mWEvlpMixMtxNum;
/* 0x24 */ u16* mWEvlpMixIndex;
/* 0x28 */ f32* mWEvlpMixWeight;
/* 0x2C */ Mtx* mInvJointMtx;
/* 0x30 */ s32 mWEvlpImportantMtxIdx;
/* 0x30 */ u16* mWEvlpImportantMtxIdx;
/* 0x34 */ J3DDrawMtxData mDrawMtxData;
/* 0x40 */ u32 field_0x40;
/* 0x44 */ JUTNameTab* mJointName;
+1
View File
@@ -113,6 +113,7 @@ public:
private:
friend struct J3DShapeFactory;
friend class J3DJointTree;
/* 0x04 */ J3DMaterial* mMaterial;
/* 0x08 */ u16 mIndex;
+8 -8
View File
@@ -7,16 +7,16 @@
class msg_class : public leafdraw_class {
public:
/* 0xC0 */ int field_0xc0;
/* 0xC4 */ create_tag_class field_0xc4;
/* 0xD8 */ leafdraw_method_class* field_0xd8;
/* 0xDC */ fopAc_ac_c* field_0xdc;
/* 0xE0 */ cXyz field_0xe0;
/* 0xEC */ u32 field_0xec;
/* 0xC0 */ int mMsgType;
/* 0xC4 */ create_tag_class mDwTg;
/* 0xD8 */ leafdraw_method_class* mSubMtd;
/* 0xDC */ fopAc_ac_c* mpActor;
/* 0xE0 */ cXyz mPos;
/* 0xEC */ u32 mMsgID;
/* 0xF0 */ u32 field_0xf0;
/* 0xF4 */ u32 field_0xf4;
/* 0xF8 */ u16 field_0xf8;
/* 0xFA */ u8 field_0xfa;
/* 0xF8 */ u16 mMode;
/* 0xFA */ u8 mSelectedChoiceIdx;
/* 0xFC */ int field_0xfc;
}; // Size: 0x100
+1
View File
@@ -63,6 +63,7 @@ public:
/* 8025854C */ void setRenderMode();
public:
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x1CC */ mDoDvdThd_toMainRam_c* sceneCommand;
/* 0x1D0 */ JKRExpHeap* field_0x1d0;
/* 0x1D4 */ JKRExpHeap* field_0x1d4;
+1
View File
@@ -72,6 +72,7 @@ public:
static s8 pauseTimer;
static s8 nextPauseTimer;
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x1CC */ mDoDvdThd_toMainRam_c* sceneCommand;
/* 0x1D0 */ mDoDvdThd_mountXArchive_c* field_0x1d0;
/* 0x1D4 */ u8 field_0x1d4;
+9
View File
@@ -7,6 +7,15 @@
#include "dolphin/mtx/mtx.h"
#include "f_pc/f_pc_leaf.h"
struct actor_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
/* 0x24 */ leafdraw_method_class* mSubMtd;
/* 0x28 */ int field_0x28; // mStatus
/* 0x2C */ u8 field_0x2c; // mActorType
/* 0x2D */ u8 field_0x2d; // mCullType
/* 0x2E */ u8 field_0x2e[2]; // Likely padding
};
struct JKRSolidHeap;
class dEvt_info_c {
+6 -1
View File
@@ -3,8 +3,13 @@
#include "f_op/f_op_camera_mng.h"
struct camera_process_profile_definition {
/* 0x00 */ view_process_profile_definition mBase;
/* 0x3C */ leafdraw_method_class* mSubMtd; // Subclass methods
};
static s32 fopCam_Draw(camera_class* param_1);
static int fopCam_Execute(camera_class* pCamera);
int fopCam_IsDelete(camera_class* pCamera);
#endif
#endif
+9 -3
View File
@@ -5,10 +5,15 @@
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
struct msg_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
/* 0x24 */ leafdraw_method_class* mSubMtd; // Subclass methods
};
struct fopMsg_prm_class {
/* 0x00 */ fopAc_ac_c* field_0x0;
/* 0x04 */ cXyz field_0x4;
/* 0x10 */ u32 field_0x10;
/* 0x00 */ fopAc_ac_c* mpActor;
/* 0x04 */ cXyz mPos;
/* 0x10 */ u32 mMsgID;
/* 0x14 */ u32 field_0x14;
/* 0x18 */ int field_0x18;
}; // Size: 0x1C
@@ -33,6 +38,7 @@ typedef int (*fopMsgCreateFunc)(void*);
JKRExpHeap* fopMsgM_createExpHeap(u32, JKRHeap*);
u32 fopMsgM_Create(s16, fopMsgCreateFunc, void*);
fopMsg_prm_class* fopMsgM_GetAppend(void* msg);
void fopMsgM_setMessageID(unsigned int);
void fopMsgM_destroyExpHeap(JKRExpHeap*);
s32 fopMsgM_setStageLayer(void*);
+8 -7
View File
@@ -11,15 +11,16 @@
struct request_of_phase_process_class;
class mDoDvdThd_command_c;
typedef struct scene_process_profile_definition {
/* 0x00 */ node_process_profile_definition mBase;
/* 0x20 */ process_method_class* mpMtd; // Subclass methods
} scene_process_profile_definition;
class scene_class {
public:
/* 0x000 */ base_process_class field_0x0;
/* 0x0B8 */ u8 field_0xb8[0x10];
/* 0x0C8 */ u32 field_0xc8;
/* 0x0CC */ u8 field_0xcc[0xE0];
/* 0x1AC */ process_method_class* mpProcessMtd;
/* 0x1B0 */ scene_tag_class field_0x1b0;
/* 0x1C4 */ request_of_phase_process_class field_0x1c4;
/* 0x000 */ process_node_class mBase;
/* 0x1AC */ process_method_class * mpMtd;
/* 0x1B0 */ scene_tag_class mScnTg;
};
#endif
+1 -1
View File
@@ -14,7 +14,7 @@ void fopScnM_Init(void);
inline u32 fpcM_LayerID(const void* pProc) {
return fpcBs_Is_JustOfType(g_fpcNd_type, ((base_process_class*)pProc)->mSubType) != FALSE ?
((scene_class*)pProc)->field_0xc8 :
((scene_class*)pProc)->mBase.mLayer.mLayerID :
0xFFFFFFFF;
}
+10
View File
@@ -6,6 +6,16 @@
#include "dolphin/types.h"
#include "f_pc/f_pc_leaf.h"
struct view_process_profile_definition {
/* 0x00 */ leaf_process_profile_definition mBase;
/* 0x24 */ leafdraw_method_class* mSubMtd; // Subclass methods
/* 0x28 */ u32 unk28;
/* 0x2C */ u32 unk2C;
/* 0x30 */ u32 unk30;
/* 0x34 */ u32 unk34;
/* 0x38 */ u32 unk38;
};
class lookat_class {
public:
/* 0x00 */ cXyz mEye;
+1 -1
View File
@@ -8,7 +8,7 @@ typedef struct draw_priority_class {
s16 mPriority;
} draw_priority_class;
s32 fpcDwPi_Get(const draw_priority_class* pDwPi);
s16 fpcDwPi_Get(const draw_priority_class* pDwPi);
void fpcDwPi_Set(draw_priority_class* pDwPi, s16 p);
void fpcDwPi_Init(draw_priority_class* pDwPi, s16 p);
+7 -7
View File
@@ -11,14 +11,14 @@ struct process_method_tag_class;
typedef struct process_node_class process_node_class;
typedef struct layer_class {
node_class mNode;
u32 mLayerID;
node_lists_tree_class mNodeListTree;
process_node_class* mpPcNode;
node_list_class mCancelList;
/* 0x00 */ node_class mNode;
/* 0x0C */ u32 mLayerID;
/* 0x10 */ node_lists_tree_class mNodeListTree;
/* 0x18 */ process_node_class* mpPcNode;
/* 0x1C */ node_list_class mCancelList;
struct {
s16 mCreatingCount;
s16 mDeletingCount;
/* 0x28 */ s16 mCreatingCount;
/* 0x2A */ s16 mDeletingCount;
} counts;
} layer_class;
+4 -7
View File
@@ -22,15 +22,12 @@ typedef struct leafdraw_class {
typedef struct leaf_process_profile_definition {
/* 0x00 */ process_profile_definition mBase;
/* 0x28 */ int field_0x28;
/* 0x2C */ u8 field_0x2c;
/* 0x2D */ u8 field_0x2d;
/* 0x2E */ u8 field_0x2e[0x2]; // extended from here to end to make fopCam_Create match. might be wrong
/* 0x30 */ u8 field_0x30[0xc];
/* 0x3C */ leafdraw_method_class* mMethods;
/* 0x1C */ leafdraw_method_class* mSubMtd; // Subclass methods
/* 0x20 */ s16 mPriority; // mDrawPriority
/* 0x22 */ u8 unk22[2]; // Likely padding...
} leaf_process_profile_definition;
s32 fpcLf_GetPriority(const leafdraw_class* pLeaf);
s16 fpcLf_GetPriority(const leafdraw_class* pLeaf);
s32 fpcLf_DrawMethod(leafdraw_method_class* pMthd, void* pUserData);
s32 fpcLf_Draw(leafdraw_class* pMthd);
s32 fpcLf_Execute(leafdraw_class* pLeaf);
+2 -2
View File
@@ -54,8 +54,8 @@ inline bool fpcM_IsFirstCreating(void* proc) {
return ((base_process_class*)proc)->mInitState == 0;
}
inline leaf_process_profile_definition* fpcM_GetProfile(void* proc) {
return (leaf_process_profile_definition*)((base_process_class*)proc)->mpProf;
inline process_profile_definition* fpcM_GetProfile(void* proc) {
return (process_profile_definition*)((base_process_class*)proc)->mpProf;
}
inline void* fpcM_GetAppend(const void* proc) {
+8 -7
View File
@@ -8,19 +8,20 @@
typedef struct nodedraw_method_class {
process_method_class mBase;
process_method_func mNodedrawFunc;
process_method_func mpDrawFunc;
} nodedraw_method_class;
typedef struct process_node_class {
base_process_class mBase;
nodedraw_method_class* mpNodeMtd;
layer_class mLayer;
node_list_class mLayerNodeLists[16];
s8 mUnk0;
/* 0x00 */ base_process_class mBase;
/* 0xB8 */ nodedraw_method_class* mpNodeMtd;
/* 0xBC */ layer_class mLayer;
/* 0xE8 */ node_list_class mLayerNodeLists[16];
/* 0x1A8 */ s8 mUnk0;
} process_node_class;
typedef struct node_process_profile_definition {
process_profile_definition mBase;
/* 0x00 */ process_profile_definition mBase;
/* 0x1C */ process_method_class* mSubMtd; // Subclass methods
} node_process_profile_definition;
s32 fpcNd_DrawMethod(nodedraw_method_class* pNodeMethod, void* pData);

Some files were not shown because too many files have changed in this diff Show More