mirror of
https://github.com/zeldaret/ss
synced 2026-05-28 00:15:59 -04:00
small mdl stuff
This commit is contained in:
+25
-25
@@ -2640,7 +2640,7 @@ fn_8005D2D0 = .text:0x8005D2D0; // type:function size:0x8
|
||||
fn_8005D2E0 = .text:0x8005D2E0; // type:function size:0x34
|
||||
isAnimationWaitingMaybe = .text:0x8005D320; // type:function size:0x80
|
||||
fn_8005D3A0 = .text:0x8005D3A0; // type:function size:0x8
|
||||
fn_8005D3B0 = .text:0x8005D3B0; // type:function size:0x30
|
||||
ExecCallbackC__27daPlBaseCalcWorldCallback_cFPQ34nw4r4math5MTX34Q34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld = .text:0x8005D3B0; // type:function size:0x30
|
||||
fn_8005D3E0 = .text:0x8005D3E0; // type:function size:0x28
|
||||
fn_8005D410 = .text:0x8005D410; // type:function size:0x60
|
||||
InitLinkItemHeap = .text:0x8005D470; // type:function size:0x58
|
||||
@@ -2665,22 +2665,22 @@ ActorLink__createModelAndSetDrawPriority = .text:0x8005E820; // type:function si
|
||||
createModelAndSetPriorityDraw = .text:0x8005E890; // type:function size:0x68
|
||||
fn_8005E900 = .text:0x8005E900; // type:function size:0x11C
|
||||
fn_8005EA20 = .text:0x8005EA20; // type:function size:0xA0
|
||||
fn_8005EAC0 = .text:0x8005EAC0; // type:function size:0x274
|
||||
fn_8005ED40 = .text:0x8005ED40; // type:function size:0x4
|
||||
fn_8005ED50 = .text:0x8005ED50; // type:function size:0xC
|
||||
fn_8005ED60 = .text:0x8005ED60; // type:function size:0x7B0
|
||||
fn_8005F510 = .text:0x8005F510; // type:function size:0x4
|
||||
fn_8005F520 = .text:0x8005F520; // type:function size:0x24
|
||||
fn_8005F550 = .text:0x8005F550; // type:function size:0x8
|
||||
fn_8005F560 = .text:0x8005F560; // type:function size:0x8
|
||||
fn_8005F570 = .text:0x8005F570; // type:function size:0x8
|
||||
fn_8005EAC0__19daPlayerModelBase_cFv = .text:0x8005EAC0; // type:function size:0x274
|
||||
someDivingHrabbingStuff__19daPlayerModelBase_cFv = .text:0x8005ED40; // type:function size:0x4
|
||||
vt_0x308__19daPlayerModelBase_cFv = .text:0x8005ED50; // type:function size:0xC
|
||||
fn_8005ED60__19daPlayerModelBase_cFv = .text:0x8005ED60; // type:function size:0x7B0
|
||||
vt_0x2E0__19daPlayerModelBase_cFv = .text:0x8005F510; // type:function size:0x4
|
||||
vt_0x30C__19daPlayerModelBase_cFR7mVec3_c = .text:0x8005F520; // type:function size:0x24
|
||||
isMPPose__19daPlayerModelBase_cFv = .text:0x8005F550; // type:function size:0x8
|
||||
isOnTightRope__19daPlayerModelBase_cFv = .text:0x8005F560; // type:function size:0x8
|
||||
isOnVines__19daPlayerModelBase_cFv = .text:0x8005F570; // type:function size:0x8
|
||||
fn_8005F580 = .text:0x8005F580; // type:function size:0x88
|
||||
fn_8005F610 = .text:0x8005F610; // type:function size:0xD4
|
||||
fn_8005F6F0 = .text:0x8005F6F0; // type:function size:0x194
|
||||
fn_8005F890 = .text:0x8005F890; // type:function size:0x2C0
|
||||
fn_8005FB50 = .text:0x8005FB50; // type:function size:0x8
|
||||
fn_8005FB60 = .text:0x8005FB60; // type:function size:0xC
|
||||
fn_8005FB70 = .text:0x8005FB70; // type:function size:0x14
|
||||
fn_8005F890__19daPlayerModelBase_cFv = .text:0x8005F890; // type:function size:0x2C0
|
||||
vt_0x2E8__19daPlayerModelBase_cFv = .text:0x8005FB50; // type:function size:0x8
|
||||
vt_0x304__19daPlayerModelBase_cCFv = .text:0x8005FB60; // type:function size:0xC
|
||||
isOnClawTargetMaybe__19daPlayerModelBase_cFiR4mAngR4mAng = .text:0x8005FB70; // type:function size:0x14
|
||||
fn_8005FB90 = .text:0x8005FB90; // type:function size:0x220
|
||||
fn_8005FDB0 = .text:0x8005FDB0; // type:function size:0x4
|
||||
fn_8005FDC0 = .text:0x8005FDC0; // type:function size:0x78
|
||||
@@ -2711,8 +2711,8 @@ fn_80060D50 = .text:0x80060D50; // type:function size:0x54
|
||||
fn_80060DB0 = .text:0x80060DB0; // type:function size:0x29C
|
||||
fn_80061050 = .text:0x80061050; // type:function size:0x1B0
|
||||
fn_80061200 = .text:0x80061200; // type:function size:0x210
|
||||
fn_80061410 = .text:0x80061410; // type:function size:0x6C
|
||||
fn_80061480 = .text:0x80061480; // type:function size:0x8
|
||||
fn_80061410__19daPlayerModelBase_cFv = .text:0x80061410; // type:function size:0x6C
|
||||
alwaysRet0__19daPlayerModelBase_cFv = .text:0x80061480; // type:function size:0x8
|
||||
fn_80061490 = .text:0x80061490; // type:function size:0x1C
|
||||
fn_800614B0 = .text:0x800614B0; // type:function size:0xC
|
||||
fn_800614C0 = .text:0x800614C0; // type:function size:0xC
|
||||
@@ -2728,15 +2728,15 @@ ActorLink__getCenterTranslation = .text:0x80061560; // type:function size:0x8
|
||||
fn_80061570 = .text:0x80061570; // type:function size:0x8
|
||||
__dt__19daPlayerModelBase_cFv = .text:0x80061580; // type:function size:0x254
|
||||
__dt__16daPlBaseAnmChr_cFv = .text:0x800617E0; // type:function size:0x58
|
||||
fn_80061840 = .text:0x80061840; // type:function size:0x40
|
||||
fn_80061880 = .text:0x80061880; // type:function size:0x40
|
||||
fn_800618C0 = .text:0x800618C0; // type:function size:0x40
|
||||
fn_80061900 = .text:0x80061900; // type:function size:0x58
|
||||
fn_80061960 = .text:0x80061960; // type:function size:0x58
|
||||
fn_800619C0 = .text:0x800619C0; // type:function size:0x6C
|
||||
fn_80061A30 = .text:0x80061A30; // type:function size:0x58
|
||||
fn_80061A90 = .text:0x80061A90; // type:function size:0x4
|
||||
fn_80061AA0 = .text:0x80061AA0; // type:function size:0x4
|
||||
__dt__24daPlBaseScnObjCallback_cFv = .text:0x80061840; // type:function size:0x40
|
||||
__dt__27daPlBaseCalcWorldCallback_cFv = .text:0x80061880; // type:function size:0x40
|
||||
__dt__Q34nw4r3g3d18ICalcWorldCallbackFv = .text:0x800618C0; // type:function size:0x40
|
||||
__dt__19daPlBaseCallback2_cFv = .text:0x80061900; // type:function size:0x58
|
||||
__dt__19daPlBaseCallback1_cFv = .text:0x80061960; // type:function size:0x58
|
||||
__dt__13daPlBaseMdl_cFv = .text:0x800619C0; // type:function size:0x6C
|
||||
__dt__21daPlBaseMdlCallback_cFv = .text:0x80061A30; // type:function size:0x58
|
||||
ExecCallbackB__Q34nw4r3g3d18ICalcWorldCallbackFPQ34nw4r3g3d13WorldMtxManipQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld = .text:0x80061A90; // type:function size:0x4
|
||||
ExecCallbackA__Q34nw4r3g3d18ICalcWorldCallbackFPQ34nw4r3g3d12ChrAnmResultQ34nw4r3g3d6ResMdlPQ34nw4r3g3d16FuncObjCalcWorld = .text:0x80061AA0; // type:function size:0x4
|
||||
dPlayerModel__sinit = .text:0x80061AB0; // type:function size:0x5C
|
||||
computeChecksumInner__FPvUl = .text:0x80061B10; // type:function size:0x88
|
||||
computeChecksum__FPvUl = .text:0x80061BA0; // type:function size:0x34
|
||||
|
||||
+83
-27
@@ -49,10 +49,16 @@ public:
|
||||
virtual ~daPlBase_c() {}
|
||||
};
|
||||
|
||||
class daPlBaseCallback1_c : m3d::callback_c {};
|
||||
class daPlBaseCallback2_c : m3d::callback_c {};
|
||||
class daPlBaseCallback1_c : m3d::callback_c {
|
||||
u8 _0x__[4];
|
||||
};
|
||||
class daPlBaseCallback2_c : m3d::callback_c {
|
||||
u8 _0x__[4];
|
||||
};
|
||||
|
||||
class daPlBaseMdlCallback_c : m3d::mdl_c::mdlCallback_c {};
|
||||
class daPlBaseMdlCallback_c : m3d::mdl_c::mdlCallback_c {
|
||||
u8 _0x__[8];
|
||||
};
|
||||
|
||||
class daPlBaseAnmChr_c : m3d::anmChr_c {
|
||||
public:
|
||||
@@ -74,22 +80,14 @@ private:
|
||||
|
||||
class daPlBaseCalcWorldCallback_c : public nw4r::g3d::ICalcWorldCallback {
|
||||
public:
|
||||
virtual void ExecCallbackA(
|
||||
nw4r::g3d::ChrAnmResult *pResult, nw4r::g3d::ResMdl mdl,
|
||||
nw4r::g3d::FuncObjCalcWorld *pFuncObj
|
||||
) override; // at 0xC
|
||||
|
||||
virtual void ExecCallbackB(
|
||||
nw4r::g3d::WorldMtxManip *pManip, nw4r::g3d::ResMdl mdl,
|
||||
nw4r::g3d::FuncObjCalcWorld *pFuncObj
|
||||
) override; // at 0x10
|
||||
|
||||
virtual void ExecCallbackC(
|
||||
nw4r::math::MTX34 *pMtxArray, nw4r::g3d::ResMdl mdl,
|
||||
nw4r::g3d::FuncObjCalcWorld *pFuncObj
|
||||
) override; // at 0x14
|
||||
};
|
||||
class daPlBaseScnObjCallback_c : public nw4r::g3d::IScnObjCallback {};
|
||||
class daPlBaseScnObjCallback_c : public nw4r::g3d::IScnObjCallback {
|
||||
u8 _0x__[0x10];
|
||||
};
|
||||
|
||||
class UnkPlayerClass {
|
||||
public:
|
||||
@@ -654,19 +652,72 @@ public:
|
||||
FLG0_HANGING_ITEM | FLG0_HANGING_LEDGE | FLG0_UNK_0x10 | FLG0_IN_AIR,
|
||||
};
|
||||
|
||||
// overriddes omitted
|
||||
/* vt 0x2E0 */ virtual void vt_0x2E0();
|
||||
/* vt 0x2E4 */ virtual void someDivingHrabbingStuff();
|
||||
/* vt 0x2E8 */ virtual void vt_0x2E8();
|
||||
/* vt 0x2EC */ virtual void isOnClawTargetMaybe();
|
||||
/* vt 0x2F0 */ virtual void isMPPose();
|
||||
/* vt 0x2F4 */ virtual void isOnTightRope();
|
||||
/* vt 0x2F8 */ virtual void isOnVines();
|
||||
/* vt 0x2FC */ virtual void alwaysRet0();
|
||||
/* vt 0x300 */ virtual void canBlockAttack();
|
||||
/* vt 0x304 */ virtual void vt_0x304();
|
||||
/* vt 0x308 */ virtual void vt_0x308();
|
||||
/* vt 0x30C */ virtual void vt_0x30C();
|
||||
void fn_8005ED60();
|
||||
void fn_8005EAC0();
|
||||
void fn_8005F890();
|
||||
void fn_80061410();
|
||||
|
||||
/* vt 0x114 */ virtual void somethingWithCarriedActorFlags() override {
|
||||
// TODO
|
||||
}
|
||||
/* vt 0x118 */ virtual dAcObjBase_c *getCurrentCarriedActor() override {
|
||||
// TODO
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
/* vt 0x0E4 */ virtual const mVec3_c &getCenterTranslation() const override {
|
||||
// TODO
|
||||
return mVec3_c::Zero;
|
||||
}
|
||||
/* vt 0x0E8 */ virtual const mVec3_c &vt_0x0E8() const override {
|
||||
return field_0x12F4;
|
||||
}
|
||||
/* vt 0x0EC */ virtual const mVec3_c &vt_0x0EC() const override {
|
||||
// TODO
|
||||
return mVec3_c::Zero;
|
||||
}
|
||||
/* vt 0x0F0 */ virtual const mVec3_c &vt_0x0F0() const override {
|
||||
// TODO
|
||||
return mVec3_c::Zero;
|
||||
}
|
||||
/* vt 0x0F4 */ virtual const mVec3_c &vt_0x0F4() const override {
|
||||
// TODO
|
||||
return mVec3_c::Zero;
|
||||
}
|
||||
|
||||
/* vt 0x2E0 */ virtual void vt_0x2E0() {}
|
||||
/* vt 0x2E4 */ virtual void someDivingHrabbingStuff() {}
|
||||
/* vt 0x2E8 */ virtual bool vt_0x2E8() {
|
||||
return true;
|
||||
}
|
||||
/* vt 0x2EC */ virtual void isOnClawTargetMaybe(UNKWORD, mAng &a1, mAng &a2) {
|
||||
a1.setR(0);
|
||||
a2.setR(0);
|
||||
}
|
||||
/* vt 0x2F0 */ virtual bool isMPPose() {
|
||||
return false;
|
||||
}
|
||||
/* vt 0x2F4 */ virtual bool isOnTightRope() {
|
||||
return false;
|
||||
}
|
||||
/* vt 0x2F8 */ virtual bool isOnVines() {
|
||||
return false;
|
||||
}
|
||||
/* vt 0x2FC */ virtual bool alwaysRet0() {
|
||||
return 0;
|
||||
}
|
||||
/* vt 0x300 */ virtual bool canBlockAttack() {
|
||||
return false;
|
||||
}
|
||||
/* vt 0x304 */ virtual const mVec3_c &vt_0x304() const {
|
||||
return mVec3_c::Zero;
|
||||
}
|
||||
/* vt 0x308 */ virtual mAng vt_0x308() {
|
||||
return 0;
|
||||
}
|
||||
/* vt 0x30C */ virtual void vt_0x30C(mVec3_c &res) {
|
||||
res = mVec3_c::Ex;
|
||||
}
|
||||
|
||||
protected:
|
||||
/* 0x370 */ mHeapAllocator_c mModelAllocator;
|
||||
@@ -685,8 +736,11 @@ protected:
|
||||
/* 0x46C */ daPlBaseCallback2_c mCallback2;
|
||||
/* 0x474 */ m3d::smdl_c mFaceMdl;
|
||||
/* 0x490 */ m3d::anmChr_c mFaceAnmChr;
|
||||
/* 0x4C8 */ u8 _0x4C8[4];
|
||||
/* 0x4CC */ m3d::anmTexPat_c mFaceTexPat;
|
||||
/* 0x4F8 */ u8 _0x4F8[4];
|
||||
/* 0x4FC */ m3d::anmTexSrt_c mFaceTexSrt;
|
||||
/* 0x528 */ u8 _0x528[4];
|
||||
/* 0x52C */ m3d::anmChr_c mHeadAnmChr;
|
||||
/* 0x564 */ m3d::smdl_c mHandsMdl;
|
||||
/* 0x580 */ daPlBaseCalcWorldCallback_c mCalcWorldCallback;
|
||||
@@ -709,9 +763,11 @@ protected:
|
||||
/* 0x878 */ dCcD_Cyl mCcCyls[3];
|
||||
/* 0xC68 */ dCcD_Cps mCcCpss[3];
|
||||
/* 0x10B8 */ dCcD_Cyl mCcCyl;
|
||||
/* 0x1208 */ u8 _0x1208[0xA4];
|
||||
/* 0x12AC */ mVec3_c mTranslationHand[2];
|
||||
/* 0x12C4 */ mVec3_c mTranslationWeapon[2];
|
||||
/* 0x12DC */ mVec3_c mToeTranslation[2];
|
||||
/* 0x12F4 */ mVec3_c field_0x12F4;
|
||||
/* 0x1300 */ UnkPlayerClass mUnk_0x1300[4];
|
||||
/* 0x1340 */ mQuat_c mQuat1;
|
||||
/* 0x1350 */ mQuat_c mQuat2;
|
||||
|
||||
@@ -36,6 +36,10 @@ struct mAng {
|
||||
return &mVal;
|
||||
}
|
||||
|
||||
void setR(const u32 &v) {
|
||||
mVal = v;
|
||||
}
|
||||
|
||||
mAng operator-() {
|
||||
return mAng(-mVal);
|
||||
}
|
||||
|
||||
@@ -43,13 +43,13 @@ public:
|
||||
virtual ~ICalcWorldCallback() {}; // at 0x8
|
||||
|
||||
virtual void ExecCallbackA(ChrAnmResult *pResult, ResMdl mdl,
|
||||
FuncObjCalcWorld *pFuncObj) = 0; // at 0xC
|
||||
FuncObjCalcWorld *pFuncObj) {}; // at 0xC
|
||||
|
||||
virtual void ExecCallbackB(WorldMtxManip *pManip, ResMdl mdl,
|
||||
FuncObjCalcWorld *pFuncObj) = 0; // at 0x10
|
||||
FuncObjCalcWorld *pFuncObj) {}; // at 0x10
|
||||
|
||||
virtual void ExecCallbackC(math::MTX34 *pMtxArray, ResMdl mdl,
|
||||
FuncObjCalcWorld *pFuncObj) = 0; // at 0x14
|
||||
FuncObjCalcWorld *pFuncObj) {}; // at 0x14
|
||||
};
|
||||
|
||||
/******************************************************************************
|
||||
|
||||
@@ -1,4 +1,48 @@
|
||||
#include "d/a/d_a_player.h"
|
||||
#include "m/m_vec.h"
|
||||
|
||||
// TODO: This file contains the vtable and a bunch of weak functions
|
||||
// for daPlayerModelBase_c. How do we generate the vtable here though?
|
||||
// All virtual methods of daPlayerModelBase_c seem to be inline, so
|
||||
// there's not much opportunity to get the vtable to be emitted here
|
||||
// except for dtor hacks...
|
||||
|
||||
void daPlBaseCalcWorldCallback_c::ExecCallbackC(
|
||||
nw4r::math::MTX34 *pMtxArray, nw4r::g3d::ResMdl mdl,
|
||||
nw4r::g3d::FuncObjCalcWorld *pFuncObj
|
||||
) {
|
||||
|
||||
}
|
||||
|
||||
void daPlayerModelBase_c::fn_8005EAC0() {
|
||||
// Just getting weak functions to appear here
|
||||
someDivingHrabbingStuff();
|
||||
vt_0x308();
|
||||
}
|
||||
|
||||
void daPlayerModelBase_c::fn_8005ED60() {
|
||||
// Just getting weak functions to appear here
|
||||
vt_0x2E0();
|
||||
vt_0x308();
|
||||
mVec3_c v;
|
||||
vt_0x30C(v);
|
||||
isMPPose();
|
||||
isOnTightRope();
|
||||
isOnVines();
|
||||
}
|
||||
|
||||
void daPlayerModelBase_c::fn_8005F890() {
|
||||
// Just getting weak functions to appear here
|
||||
vt_0x2E8();
|
||||
vt_0x304();
|
||||
mAng a1, a2;
|
||||
isOnClawTargetMaybe(0, a1, a2);
|
||||
}
|
||||
|
||||
void daPlayerModelBase_c::fn_80061410() {
|
||||
// Just getting weak functions to appear here
|
||||
alwaysRet0();
|
||||
}
|
||||
|
||||
void dummy_triggerDtor(daPlayerModelBase_c *pl) {
|
||||
delete pl;
|
||||
|
||||
Reference in New Issue
Block a user