diff options
| author | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-12-04 05:10:59 -0800 |
|---|---|---|
| committer | TakaRikka <38417346+TakaRikka@users.noreply.github.com> | 2021-12-04 05:10:59 -0800 |
| commit | fd9c4cafc4d9aa3df4b2f43ee33f15152482fce9 (patch) | |
| tree | 9cbded0544c03c997411dc658e7b8b4ae9e59277 /include | |
| parent | 70eabb12bd5e9327ccd01b1f9367fca109d4fbfa (diff) | |
wip
Diffstat (limited to 'include')
26 files changed, 2013 insertions, 270 deletions
diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h index 0c2f69d007..b6867363da 100644 --- a/include/JSystem/J2DGraph/J2DAnmLoader.h +++ b/include/JSystem/J2DGraph/J2DAnmLoader.h @@ -6,7 +6,7 @@ #include "dolphin/types.h" struct J2DAnmLoaderDataBase { - /* 80308A6C */ static void load(void const*); + /* 80308A6C */ static void* load(void const*); }; class J2DAnmLoader { diff --git a/include/JSystem/J2DGraph/J2DPane.h b/include/JSystem/J2DGraph/J2DPane.h index d73d42d169..d6bb45c8ec 100644 --- a/include/JSystem/J2DGraph/J2DPane.h +++ b/include/JSystem/J2DGraph/J2DPane.h @@ -128,6 +128,9 @@ public: void* getPointer(JSURandomInputStream* stream, u32 size, JKRArchive* archive); void animationTransform(); void updateTransform(const J2DAnmTransform* transform); + void setUserInfo(u64 info) { + mUserInfoTag = info; + } static f32 static_mBounds[4]; diff --git a/include/JSystem/J3DGraphAnimator/J3DJoint.h b/include/JSystem/J3DGraphAnimator/J3DJoint.h index 9cbf745d43..25a21bad57 100644 --- a/include/JSystem/J3DGraphAnimator/J3DJoint.h +++ b/include/JSystem/J3DGraphAnimator/J3DJoint.h @@ -29,6 +29,14 @@ public: static J3DJoint* mJoint; }; // Size: 0x4 +class J3DMtxCalcNoAnmBase : public J3DMtxCalc { +public: + /* 8000FA8C */ virtual ~J3DMtxCalcNoAnmBase(); +}; + +template <typename A, typename B> +class J3DMtxCalcNoAnm : public J3DMtxCalcNoAnmBase, public A, public B {}; + class J3DJoint; typedef int (*J3DJointCallBack)(J3DJoint*, int); diff --git a/include/JSystem/J3DGraphAnimator/J3DModel.h b/include/JSystem/J3DGraphAnimator/J3DModel.h index 16bf6deacd..02c71511b1 100644 --- a/include/JSystem/J3DGraphAnimator/J3DModel.h +++ b/include/JSystem/J3DGraphAnimator/J3DModel.h @@ -49,6 +49,7 @@ public: void offFlag(u32 flag) { mFlags &= ~flag; } bool checkFlag(u32 flag) const { return (mFlags & flag) ? true : false; } Mtx& getBaseTRMtx() { return mBaseTransformMtx; } + void i_setBaseTRMtx(Mtx m) { PSMTXCopy(m, mBaseTransformMtx); } // is there a better way to handle inlines with same name as non-inlines? MtxP i_getAnmMtx(int p1) { return mMtxBuffer->getAnmMtx(p1); } diff --git a/include/SSystem/SComponent/c_m3d_g_cps.h b/include/SSystem/SComponent/c_m3d_g_cps.h index 47acd885af..14315a9fc3 100644 --- a/include/SSystem/SComponent/c_m3d_g_cps.h +++ b/include/SSystem/SComponent/c_m3d_g_cps.h @@ -26,6 +26,7 @@ public: } bool Cross(cM3dGCyl const* cyl, cXyz* xyz) const { return cM3d_Cross_CpsCyl(*this, *cyl, xyz); } bool Cross(cM3dGSph const* sph, cXyz* xyz) const { return cM3d_Cross_CpsSph(*this, *sph, xyz); } + void SetR(f32 r) { mRadius = r; } }; // Size = 0x20 diff --git a/include/d/a/d_a_alink.h b/include/d/a/d_a_alink.h index 22e01aed97..e723b67db0 100644 --- a/include/d/a/d_a_alink.h +++ b/include/d/a/d_a_alink.h @@ -19,6 +19,7 @@ #include "d/particle/d_particle.h" #include "d/particle/d_particle_copoly.h" #include "rel/d/a/tag/d_a_tag_mmsg/d_a_tag_mmsg.h" +#include "rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h" #include "dolphin/types.h" class fopEn_enemy_c; @@ -32,23 +33,29 @@ class J2DAnmBase; class daAlink_lockCursor_c : public dDlst_base_c { public: - /* 80125F14 */ void create(); + /* 80125F14 */ BOOL create(); /* 80126358 */ void update(); /* 80126424 */ virtual void draw(); /* 800CFE68 */ virtual ~daAlink_lockCursor_c(); + void initFrame() { + field_0x4 = false; + field_0x2c = 4.0f; + field_0x30 = 0.0f; + } + private: /* 0x04 */ bool field_0x4; /* 0x05 */ u8 field_0x5[3]; - /* 0x08 */ J2DScreen* field_0x8; + /* 0x08 */ J2DScreen* mScrn; /* 0x0C */ J2DPane* field_0xc; - /* 0x10 */ J2DPane* field_0x10; - /* 0x14 */ J2DPane* field_0x14; - /* 0x18 */ J2DPane* field_0x18; - /* 0x1C */ J2DAnmBase* field_0x1c; - /* 0x20 */ J2DAnmBase* field_0x20; - /* 0x24 */ J2DAnmBase* field_0x24; - /* 0x28 */ J2DAnmBase* field_0x28; + /* 0x10 */ J2DPane* mCursor0; + /* 0x14 */ J2DPane* mCursor1; + /* 0x18 */ J2DPane* mCursor2; + /* 0x1C */ J2DAnmTevRegKey* field_0x1c; + /* 0x20 */ J2DAnmTevRegKey* field_0x20; + /* 0x24 */ J2DAnmColorKey* field_0x24; + /* 0x28 */ J2DAnmTransformKey* field_0x28; /* 0x2C */ float field_0x2c; /* 0x30 */ float field_0x30; /* 0x34 */ float field_0x34; @@ -57,7 +64,7 @@ private: class daAlink_sight_c : public daPy_sightPacket_c { public: - /* 80126650 */ void create(); + /* 80126650 */ bool create(); /* 80126710 */ void onLockFlg(); /* 801266C0 */ virtual void draw(); @@ -66,7 +73,7 @@ public: private: /* 0x4C */ bool mLockFlag; /* 0x4D */ u8 field_0x4d[3]; - /* 0x50 */ daAlink_lockCursor_c field_0x50; + /* 0x50 */ daAlink_lockCursor_c mLockCursor; }; class daAlink_blur_c : public J3DPacket { @@ -84,7 +91,7 @@ private: /* 0x018 */ u8 field_0x18[4]; /* 0x01C */ int field_0x1c; /* 0x020 */ u8 field_0x20[4]; - /* 0x024 */ float field_0x24; + /* 0x024 */ f32 field_0x24; /* 0x028 */ u8 field_0x28[4]; /* 0x02C */ cXyz field_0x2c; /* 0x038 */ cXyz field_0x38[0x3C]; @@ -134,6 +141,25 @@ private: /* 0x104 */ int mSetFlag; }; +struct daAlink_AnmData { + /* 0x0 */ u16 field_0x0; + /* 0x2 */ u16 field_0x2; + /* 0x4 */ u8 field_0x4; + /* 0x5 */ u8 field_0x5; + /* 0x6 */ u16 field_0x6; + /* 0x8 */ u16 field_0x8; + /* 0xA */ u16 field_0xa; +}; // Size: 0xC + +struct daAlink_WlAnmData { + /* 0x0 */ u16 field_0x0; + /* 0x2 */ u8 field_0x2; + /* 0x3 */ u8 field_0x3; + /* 0x4 */ u16 field_0x4; + /* 0x6 */ u8 field_0x6; + /* 0x7 */ u8 field_0x7; +}; // Size: 0x8 + class daAlink_c : public daPy_py_c { public: enum daAlink_ANM { @@ -157,6 +183,8 @@ public: /* 0xBE */ ANM_BACKWARD_SLIDE, /* 0xBF */ ANM_BACKWARD_SLIDE_LAND, /* 0xC0 */ ANM_FORWARD_SLIDE_LAND, + + /* 0x18D */ ANM_CUT_JUMP_LARGE = 0x18D, // verify ANM_GANON_FINISH = 408 // name probably wrong, fix later }; @@ -202,6 +230,7 @@ public: /* 0x10000000 */ MODE_UNK_10000000 = 0x10000000, // catch boomerang? /* 0x20000000 */ MODE_UNK_20000000 = 0x20000000, /* 0x40000000 */ MODE_UNK_40000000 = 0x40000000, + MODE_PLAYER_FLY = 0x70C52, }; enum daAlink_PROC { @@ -335,7 +364,11 @@ public: /* 0x0F2 */ WOLF_MOVE, /* 0x0F3 */ WOLF_DASH, /* 0x0F4 */ WOLF_KNOCKBACK, - /* 0x0F7 */ WOLF_SIDESTEP = 247, + /* 0x0F6 */ WOLF_ATN_WAIT = 246, + /* 0x0F7 */ WOLF_SIDESTEP, + /* 0x0F8 */ WOLF_SIDESTEP_LAND, + /* 0x0F9 */ WOLF_BACKFLIP, + /* 0x0FA */ WOLF_BACKFLIP_LAND, /* 0x0FC */ WOLF_AUTOJUMP = 252, /* 0x0FF */ WOLF_RSIT = 255, /* 0x107 */ WOLF_DAMAGE = 263, @@ -356,7 +389,8 @@ public: /* 0x144 */ PUSH_MOVE, /* 0x148 */ TRESURE_STAND = 328, /* 0x14D */ METAMORPHOSE = 333, - /* 0x150 */ DEAD = 336, + /* 0x14F */ WARP = 335, + /* 0x150 */ DEAD, /* 0x159 */ LARGE_DAMAGE = 345, /* 0x15A */ LARGE_DAMAGE_WALL, }; @@ -371,9 +405,12 @@ public: }; class firePointEff_c { + public: /* 800CFC3C */ ~firePointEff_c(); /* 800CFC78 */ firePointEff_c(); - /* 0x00 */ u8 field_0x0[0xc]; + /* 0x00 */ u8 field_0x0; + /* 0x04 */ u32 field_0x4; + /* 0x08 */ u32 field_0x8; /* 0x0C */ cXyz field_0xc; /* 0x18 */ cXyz field_0x18; /* 0x24 */ cXyz field_0x24; @@ -388,14 +425,14 @@ public: /* 8009D87C */ bool getE3Zhint(); /* 8009D884 */ char* getAlinkArcName(); /* 8009DA60 */ static bool checkStageName(char const*); - /* 8009DA98 */ static void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*); + /* 8009DA98 */ void tgHitCallback(fopAc_ac_c*, dCcD_GObjInf*, dCcD_GObjInf*); /* 8009DB64 */ void coHitCallback(fopAc_ac_c*, dCcD_GObjInf*); /* 8009DC6C */ void setMatrixWorldAxisRot(f32 (*)[4], s16, s16, s16, int, cXyz const*); /* 8009DD90 */ void jointControll(int); /* 8009E7B8 */ void setUpperFront(); /* 8009E91C */ void changeBlendRate(int); /* 8009EB18 */ void resetRootMtx(); - /* 8009EB58 */ void modelCallBack(int); + /* 8009EB58 */ bool modelCallBack(int); /* 8009ECA0 */ void headModelCallBack(int); /* 8009EF7C */ void wolfModelCallBack(int); /* 8009F034 */ void setHatAngle(); @@ -418,10 +455,10 @@ public: /* 800A2CE0 */ void setLegAngle(f32, daAlink_footData_c*, s16*, s16*, int); /* 800A3430 */ void footBgCheck(); /* 800A39B8 */ void handBgCheck(); - /* 800A3C8C */ void setItemHeap(); + /* 800A3C8C */ JKRHeap* setItemHeap(); /* 800A3CE4 */ void setIdxMask(u16*, u16*); /* 800A3D0C */ void getAnimeResource(daPy_anmHeap_c*, u16, u32); - /* 800A3D7C */ void initModel(J3DModelData*, u32, u32); + /* 800A3D7C */ J3DModel* initModel(J3DModelData*, u32, u32); /* 800A3E30 */ void initModel(u16, u32); /* 800A3E98 */ void initModelEnv(u16, u32); /* 800A3F00 */ void initDemoModel(J3DModel**, char const*, u32); @@ -519,17 +556,17 @@ public: /* 800B0150 */ void getRoofAngle(cBgS_PolyInfo*, s16); /* 800B01FC */ void getWallEdgePos(cXyz const&, cM3dGPla*, cM3dGPla*, cXyz*, int); /* 800B02BC */ void setFrontWallType(); - /* 800B1488 */ void checkWaterPolygonUnder(); + /* 800B1488 */ BOOL checkWaterPolygonUnder(); /* 800B14B4 */ void setWaterY(); /* 800B154C */ void setHangWaterY(); /* 800B172C */ void setSandDownBgCheckWallH(); /* 800B1770 */ void setBgCheckParam(); - /* 800B1B28 */ void checkNotJumpSinkLimit(); - /* 800B1B68 */ void checkNotItemSinkLimit(); + /* 800B1B28 */ BOOL checkNotJumpSinkLimit(); + /* 800B1B68 */ BOOL checkNotItemSinkLimit(); /* 800B1BAC */ void setSandShapeOffset(); /* 800B1FB8 */ bool checkLv2MiddleBossBgRide(s16); /* 800B1FD8 */ void getSlidePolygon(cM3dGPla*); - /* 800B21EC */ void checkSlope() const; + /* 800B21EC */ BOOL checkSlope() const; /* 800B25CC */ BOOL itemTriggerCheck(u8); /* 800B25E8 */ BOOL itemButtonCheck(u8); /* 800B2604 */ void itemButton(); @@ -556,7 +593,7 @@ public: /* 800B3630 */ void getShapeAngleYAtnActor(); /* 800B3734 */ void setShapeAngleToAtnActor(int); /* 800B3844 */ void initServiceWaitTime(); - /* 800B3904 */ void checkZeroSpeedF() const; + /* 800B3904 */ bool checkZeroSpeedF() const; /* 800B3924 */ void setNormalSpeedF(f32, f32); /* 800B3F2C */ void getStickAngleDistanceRate(); /* 800B3FD4 */ void setSpeedAndAngleNormal(); @@ -578,7 +615,7 @@ public: /* 800B5C34 */ void setLandPassiveData(); /* 800B5C64 */ void setStepLandVibration(); /* 800B5CCC */ void checkLandAction(int); - /* 800B5F6C */ void checkSlideAction(); + /* 800B5F6C */ BOOL checkSlideAction(); /* 800B607C */ void checkAutoJumpAction(); /* 800B69CC */ bool checkCutJumpInFly(); /* 800B6A30 */ BOOL checkFrontWallTypeAction(); @@ -659,9 +696,9 @@ public: /* 800BFD74 */ void makeItemType(); /* 800BFDB0 */ BOOL checkZoraWearAbility() const; /* 800BFDFC */ BOOL checkMagicArmorWearAbility() const; - /* 800BFE48 */ void loadAramBmd(u16, u32); + /* 800BFE48 */ J3DModelData* loadAramBmd(u16, u32); /* 800BFF04 */ void loadAram(u16, u32); - /* 800BFF70 */ void loadAramItemBrk(u16, J3DModel*); + /* 800BFF70 */ J3DAnmTevRegKey* loadAramItemBrk(u16, J3DModel*); /* 800BFFCC */ void loadAramItemBtk(u16, J3DModel*); /* 800C0028 */ void loadAramItemBtp(u16, J3DModel*); /* 800C0084 */ void changeItemBck(u16, f32); @@ -723,7 +760,7 @@ public: /* 800C4FFC */ void procFrontRollCrash(); /* 800C5160 */ void procFrontRollSuccessInit(); /* 800C5240 */ void procFrontRollSuccess(); - /* 800C5328 */ void procSideRollInit(int); + /* 800C5328 */ bool procSideRollInit(int); /* 800C5484 */ void procSideRoll(); /* 800C5700 */ void backJumpSpeedDec(); /* 800C57A4 */ bool procBackJumpInit(int); @@ -748,7 +785,7 @@ public: /* 800C755C */ void procStepMove(); /* 800C7690 */ void procCrouchInit(); /* 800C76F8 */ void procCrouch(); - /* 800C77F4 */ void procCoMetamorphoseInit(); + /* 800C77F4 */ bool procCoMetamorphoseInit(); /* 800C7C64 */ void procCoMetamorphose(); /* 800C82E8 */ void procCoMetamorphoseOnlyInit(); /* 800C83A0 */ void procCoMetamorphoseOnly(); @@ -874,7 +911,7 @@ public: /* 800D6238 */ void procCutLargeJumpChargeInit(); /* 800D62A0 */ void procCutLargeJumpCharge(); /* 800D6374 */ void procCutLargeJumpInit(); - /* 800D6484 */ void procCutLargeJump(); + /* 800D6484 */ bool procCutLargeJump(); /* 800D66C0 */ void procCutLargeJumpLandInit(int); /* 800D67FC */ void procCutLargeJumpLand(); /* 800D698C */ void procSwordUnequipSpInit(); @@ -950,7 +987,7 @@ public: /* 800DDBA8 */ void procGuardAttack(); /* 800DDE58 */ void procGuardBreakInit(); /* 800DDF2C */ void procGuardBreak(); - /* 800DE008 */ void procTurnMoveInit(int); + /* 800DE008 */ bool procTurnMoveInit(int); /* 800DE380 */ void procTurnMove(); /* 800DE64C */ void getArrowFlyData(f32*, f32*, int) const; /* 800DE740 */ void getArrowIncAtR() const; @@ -982,20 +1019,20 @@ public: /* 800DFDDC */ void procBowSubject(); /* 800DFE3C */ void procBowMoveInit(); /* 800DFEC0 */ void procBowMove(); - /* 800DFFE0 */ void checkBoomerangLockAccept(); - /* 800E0010 */ void getBoomSpeed(); - /* 800E00B0 */ void getBoomCatchSpeed() const; - /* 800E00C0 */ void getBoomFlyMax() const; - /* 800E011C */ void getBoomLockMax(); - /* 800E0190 */ void getBoomBgThroughTime() const; - /* 800E01A0 */ void checkBossBabaRoom(); + /* 800DFFE0 */ BOOL checkBoomerangLockAccept(); + /* 800E0010 */ f32 getBoomSpeed(); + /* 800E00B0 */ f32 getBoomCatchSpeed() const; + /* 800E00C0 */ f32 getBoomFlyMax() const; + /* 800E011C */ f32 getBoomLockMax(); + /* 800E0190 */ s16 getBoomBgThroughTime() const; + /* 800E01A0 */ bool checkBossBabaRoom(); /* 800E01CC */ void cancelBoomerangLock(fopAc_ac_c*); - /* 800E0210 */ void getBoomerangActor(); + /* 800E0210 */ fopAc_ac_c* getBoomerangActor(); /* 800E0244 */ void checkBoomerangChargeEnd(); /* 800E02B8 */ void checkBoomerangCarry(fopAc_ac_c*); /* 800E03D0 */ void initBoomerangUpperAnimeSpeed(int); - /* 800E0440 */ void checkBoomerangAnime() const; - /* 800E04AC */ void checkBoomerangThrowAnime() const; + /* 800E0440 */ BOOL checkBoomerangAnime() const; + /* 800E04AC */ BOOL checkBoomerangThrowAnime() const; /* 800E04E8 */ void setBoomerangReadyQuake(); /* 800E055C */ void setBoomerangReadyAnime(); /* 800E05E8 */ void setThrowBoomerangAnime(); @@ -1013,14 +1050,14 @@ public: /* 800E10F4 */ void procBoomerangMove(); /* 800E11D8 */ void procBoomerangCatchInit(); /* 800E1248 */ void procBoomerangCatch(); - /* 800E12E0 */ void checkLv6BossRoom(); - /* 800E1310 */ void getCopyRodBallSpeed() const; - /* 800E1320 */ void getCopyRodBallReturnSpeed() const; - /* 800E1330 */ void getCopyRodBallDisMax() const; - /* 800E1374 */ void getCopyRodControllActor(); - /* 800E1390 */ void getCopyRodCameraActor(); + /* 800E12E0 */ static BOOL checkLv6BossRoom(); + /* 800E1310 */ f32 getCopyRodBallSpeed() const; + /* 800E1320 */ f32 getCopyRodBallReturnSpeed() const; + /* 800E1330 */ f32 getCopyRodBallDisMax() const; + /* 800E1374 */ fopAc_ac_c* getCopyRodControllActor(); + /* 800E1390 */ fopAc_ac_c* getCopyRodCameraActor(); /* 800E13AC */ void initCopyRodUpperAnimeSpeed(int); - /* 800E1408 */ void checkForestOldCentury(); + /* 800E1408 */ BOOL checkForestOldCentury(); /* 800E1530 */ void checkCopyRodAnime() const; /* 800E158C */ void setCopyRodControllAnime(); /* 800E15FC */ void setCopyRodControllUpperSpeedRate(); @@ -1281,7 +1318,7 @@ public: /* 800F3EB8 */ void checkCanoePaddleGrab(fopAc_ac_c*) const; /* 800F3F38 */ void checkCanoeFishingRodGrabOrPut() const; /* 800F3FC4 */ void initCanoeRide(); - /* 800F4008 */ void checkCanoeJumpRide(); + /* 800F4008 */ BOOL checkCanoeJumpRide(); /* 800F40E4 */ void setArmReelAnime(); /* 800F4140 */ void setFishingWaitAction(); /* 800F4490 */ void setFishGetFace(); @@ -1643,7 +1680,7 @@ public: /* 80112E7C */ void setIronBallChainPos(); /* 80113CA0 */ void checkIronBallReturnChange(); /* 80113D58 */ void setIronBallPos(); - /* 801150E4 */ void checkIronBallAnime() const; + /* 801150E4 */ BOOL checkIronBallAnime() const; /* 8011510C */ void setIronBallReadyAnime(); /* 801151E0 */ void setIronBallBaseAnime(); /* 80115254 */ void checkUpperItemActionIronBall(); @@ -1837,14 +1874,14 @@ public: /* 80126F3C */ void changeLink(int); /* 80127C54 */ void onWolfEyeUp(); /* 80127CAC */ void offWolfEyeUp(); - /* 80127CF0 */ void wolfSenseTrigger(); + /* 80127CF0 */ BOOL wolfSenseTrigger(); /* 80127D14 */ void setWolfSenceStatus(u8); /* 80127D2C */ void wolfClawTrigger(); /* 80127D50 */ void setWolfDigStatus(u8); /* 80127D68 */ BOOL checkWolfShapeReverse() const; - /* 80127DC4 */ void checkWolfSideStep() const; + /* 80127DC4 */ BOOL checkWolfSideStep() const; /* 80127E08 */ void setWolfTailAngle(); - /* 80127F20 */ void checkWolfSlowDash(); + /* 80127F20 */ BOOL checkWolfSlowDash(); /* 80127F50 */ void setSpeedAndAngleWolf(); /* 80128478 */ void setSpeedAndAngleWolfAtn(); /* 80128798 */ void checkWolfAtnWait(); @@ -1862,9 +1899,9 @@ public: /* 80129704 */ void setSingleAnimeWolf(daAlink_c::daAlink_WANM, f32, f32, s16, f32); /* 80129848 */ void setSingleAnimeWolfParam(daAlink_c::daAlink_WANM, daAlinkHIO_anm_c const*); /* 8012987C */ void checkWolfLandAction(int); - /* 80129958 */ void checkMidnaUseAbility() const; + /* 80129958 */ BOOL checkMidnaUseAbility() const; /* 801299A8 */ void checkWolfUseAbility(); - /* 80129A80 */ void checkWolfGroundSpecialMode(); + /* 80129A80 */ bool checkWolfGroundSpecialMode(); /* 80129B44 */ void checkNextActionWolf(int); /* 8012A02C */ void wolfSideBgCheck(s16); /* 8012A228 */ void checkWolfAttackReverse(int); @@ -1955,12 +1992,12 @@ public: /* 8013384C */ void procWolfRopeSubjectivityInit(); /* 80133930 */ void procWolfRopeSubjectivity(); /* 80133D6C */ void getWolfTagJumpTime() const; - /* 80133EF0 */ void checkMidnaLockJumpPoint() const; + /* 80133EF0 */ cXyz* checkMidnaLockJumpPoint() const; /* 80134000 */ void procWolfTagJumpInit(fopAc_ac_c*); /* 80134838 */ void procWolfTagJump(); /* 80134DB8 */ void procWolfTagJumpLandInit(fopAc_ac_c*); /* 80134EBC */ void procWolfTagJumpLand(); - /* 80135160 */ void procWolfGiantPuzzleInit(); + /* 80135160 */ bool procWolfGiantPuzzleInit(); /* 801351F8 */ void procWolfGiantPuzzle(); /* 80135458 */ void setWolfHangGroundY(); /* 801354C8 */ void changeWolfHangEndProc(); @@ -1978,7 +2015,7 @@ public: /* 80136C18 */ void procWolfLandDamageInit(int); /* 80136DE4 */ void procWolfLandDamage(); /* 80136EC4 */ void setWolfScreamWaitAnime(); - /* 80136F54 */ void procWolfScreamWaitInit(); + /* 80136F54 */ bool procWolfScreamWaitInit(); /* 80136FF8 */ void procWolfScreamWait(); /* 801370E4 */ void getWolfLieMoveAnmSpeed(); /* 8013712C */ void getWolfLieMoveSpeed(); @@ -2058,7 +2095,7 @@ public: /* 8013D86C */ void procWolfGrabThrow(); /* 8013D930 */ void procWolfPushInit(); /* 8013DA8C */ void procWolfPush(); - /* 8013DB6C */ void procWolfCargoCarryInit(); + /* 8013DB6C */ bool procWolfCargoCarryInit(); /* 8013DC5C */ void procWolfCargoCarry(); /* 8013DDF8 */ void procWolfChainUpInit(); /* 8013DE70 */ void procWolfChainUp(); @@ -2243,7 +2280,7 @@ public: virtual BOOL checkHorseStart(); virtual Z2WolfHowlMgr* getWolfHowlMgrP(); virtual BOOL checkWolfHowlSuccessAnime() const; - virtual bool checkCopyRodTopUse(); + virtual BOOL checkCopyRodTopUse(); virtual bool checkCopyRodEquip() const; virtual BOOL checkCutJumpMode() const; @@ -2251,32 +2288,42 @@ public: u32 i_checkModeFlg(u32 pFlag) const { return mModeFlg & pFlag; } bool i_checkSmallUpperGuardAnime() const { return checkUpperAnime(0x16); } bool i_checkFmChainGrabAnime() const { return checkUpperAnime(0x62) || checkUpperAnime(0x2A0); } - bool i_checkAttentionLock() { return mAttention->Lockon(); } + BOOL i_checkAttentionLock() { return mAttention->Lockon(); } bool checkUpperAnime(u16 pIdx) const { return mUpperAnime[UPPER_NOW].getIdx() == pIdx; } bool checkIronBallWaitAnime() const { return checkUpperAnime(0x19C); } - s16 checkWolfEyeUp() const { return mWolfEyeUp; } - void onModeFlg(u32 flag) { mModeFlg |= flag; } - void offModeFlg(u32 flag) { mModeFlg &= ~flag; } bool checkHorseTurnLAnime() const { return checkUpperAnime(0x24C); } bool checkHorseTurnRAnime() const { return checkUpperAnime(0x24D); } bool checkHorseTurnAnime() const { return checkHorseTurnLAnime() || checkHorseTurnRAnime(); } bool checkHookshotShootAnime() const { return checkUpperAnime(0x18C); } bool checkHookshotReadyAnime() const { return checkUpperAnime(0x18D); } bool checkHookshotAnime() const { return checkHookshotReadyAnime() || checkHookshotShootAnime(); } + BOOL checkBoomerangReadyAnime() const { return (mEquipItem == BOOMERANG || mEquipItem == 0x102) && checkUpperAnime(0x54); } + + s16 checkWolfEyeUp() const { return mWolfEyeUp; } + void onModeFlg(u32 flag) { mModeFlg |= flag; } + void offModeFlg(u32 flag) { mModeFlg &= ~flag; } bool swordButton() { return itemButtonCheck(8); } daPy_actorKeep_c* getThrowBoomerangAcKeep() { return &mThrowBoomerangActor; } s32 getStartRoomNo() { return fopAcM_GetParam(this) & 0x3F; } bool checkFisingRodLure() const { return mEquipItem == 0x105; } bool doTrigger() const { return mItemTrigger & 0x10; } u32 getStartMode() { return (fopAcM_GetParam(this) >> 0xC) & 0x1F; } + bool checkInputOnR() const { return field_0x33ac <= 0.05f; } + static int getSightBti() { return 0x5B; } + bool checkBoomerangChargeEndWait() const { return mEquipItem != 0x102 && checkBoomerangAnime(); } + J3DAnmTransform* getNowAnmPackUpper(daAlink_UPPER param_0) { return mNowAnmPack[param_0].getAnmTransform(); } + void setFacePriBck(u16 param_0) { setFaceBck(param_0, 1, 0xFFFF); } + BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; } + inline u16 getReadyItem(); + static u8 const m_mainBckShield[80]; static u8 const m_mainBckSword[20]; static u8 const m_mainBckFishing[112]; - static u8 const m_anmDataTable[4968]; - static void* const m_wlAnmDataTable[294]; + static daAlink_AnmData const m_anmDataTable[414]; + static daAlink_WlAnmData const m_wlAnmDataTable[147]; static u8 const m_faceTexDataTable[652]; static u8 const m_handLeftOutSidePos[12]; static u8 const m_handRightOutSidePos[12]; @@ -2313,7 +2360,7 @@ private: /* 0x00688 */ J3DModel* field_0x0688; /* 0x0068C */ J3DAnmBase* field_0x068c; /* 0x00690 */ mDoExt_baseAnm** field_0x0690; - /* 0x00694 */ void* field_0x0694; // J3DDeformData + /* 0x00694 */ J3DDeformData* field_0x0694; /* 0x00698 */ void* field_0x0698; /* 0x0069C */ void* field_0x069c; /* 0x006A0 */ J3DModel* field_0x06a0; @@ -2349,7 +2396,7 @@ private: /* 0x00718 */ J3DAnmBase* field_0x0718; /* 0x0071C */ J3DAnmBase* field_0x071c; /* 0x00720 */ J3DAnmBase* field_0x0720; - /* 0x00724 */ J3DAnmBase* field_0x0724; + /* 0x00724 */ J3DAnmTevRegKey* field_0x0724; /* 0x00728 */ J3DAnmBase* field_0x0728; /* 0x0072C */ J3DAnmBase* field_0x072c; /* 0x00730 */ mDoExt_bckAnm field_0x730; @@ -2382,12 +2429,12 @@ private: /* 0x01ECC */ dBgS_ObjGndChk mObjGndChk; /* 0x01F20 */ u8 field_0x1f20[8]; /* 0x01F28 */ mDoExt_AnmRatioPack field_0x1f28[3]; - /* 0x01F40 */ mDoExt_AnmRatioPack field_0x1f40[3]; + /* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPack[3]; /* 0x01F58 */ daPy_anmHeap_c mUnderAnime[3]; /* 0x01F94 */ daPy_anmHeap_c mUpperAnime[3]; /* 0x01FD0 */ daPy_frameCtrl_c mFrameCtrl1[3]; /* 0x02018 */ daPy_frameCtrl_c mFrameCtrl2[3]; - /* 0x02060 */ void* field_0x2060; // mDoExt_MtxCalcOldFrame* + /* 0x02060 */ mDoExt_MtxCalcOldFrame* field_0x2060; /* 0x02064 */ daAlink_sight_c mSight; /* 0x020F0 */ daPy_anmHeap_c mAnmHeap3; /* 0x02104 */ daPy_anmHeap_c mAnmHeap4; @@ -2408,7 +2455,7 @@ private: /* 0x027E8 */ dAttList_c* mAttList2; /* 0x027EC */ fopAc_ac_c* mTargetedActor; /* 0x027F0 */ fopAc_ac_c* field_0x27f0; - /* 0x027F4 */ fopAc_ac_c* field_0x27f4; + /* 0x027F4 */ kytag05_class* field_0x27f4; /* 0x027F8 */ fopAc_ac_c* field_0x27f8; /* 0x027FC */ fopAc_ac_c* field_0x27fc; /* 0x02800 */ daTagMmsg_c* mMidnaMsg; @@ -2420,7 +2467,7 @@ private: /* 0x02824 */ daPy_actorKeep_c mItemActor; // name might be wrong /* 0x0282C */ daPy_actorKeep_c mGrabItemActor; /* 0x02834 */ daPy_actorKeep_c mThrowBoomerangActor; - /* 0x0283C */ daPy_actorKeep_c field_0x283c; + /* 0x0283C */ daPy_actorKeep_c mCopyRodAcKeep; /* 0x02844 */ daPy_actorKeep_c field_0x2844; /* 0x0284C */ daPy_actorKeep_c field_0x284c; /* 0x02854 */ daPy_actorKeep_c mCargoCarryActor; @@ -2443,7 +2490,7 @@ private: /* 0x02BAC */ cXyz field_0x2bac; /* 0x02BB8 */ Mtx mInvMtx; /* 0x02BE8 */ Mtx field_0x2be8; - /* 0x02C18 */ Mtx field_0x2c18; + /* 0x02C18 */ Mtx mRootMtx; /* 0x02C48 */ Mtx field_0x2c48; /* 0x02C78 */ Mtx field_0x2c78; /* 0x02CA8 */ Z2CreatureLink mZ2Link; @@ -2568,7 +2615,7 @@ private: /* 0x0300E */ s16 field_0x300e; /* 0x03010 */ s16 field_0x3010; /* 0x03012 */ s16 field_0x3012; - /* 0x03014 */ s16 field_0x3014; + /* 0x03014 */ s16 mFallVoiceInit; /* 0x03016 */ u8 field_0x3016[2]; /* 0x03018 */ s16 field_0x3018; /* 0x0301A */ s16 field_0x301a; @@ -2765,11 +2812,11 @@ private: /* 0x033A8 */ float field_0x33a8; /* 0x033AC */ float field_0x33ac; /* 0x033B0 */ float field_0x33b0; - /* 0x033B4 */ float field_0x33b4; + /* 0x033B4 */ float mWaterY; /* 0x033B8 */ float field_0x33b8; /* 0x033BC */ float field_0x33bc; /* 0x033C0 */ float field_0x33c0; - /* 0x033C4 */ float field_0x33c4; + /* 0x033C4 */ float mFallHeight; /* 0x033C8 */ float field_0x33c8; /* 0x033CC */ float field_0x33cc; /* 0x033D0 */ float field_0x33d0; @@ -2813,7 +2860,7 @@ private: /* 0x03468 */ float field_0x3468; /* 0x0346C */ float field_0x346c; /* 0x03470 */ float field_0x3470; - /* 0x03474 */ float field_0x3474; + /* 0x03474 */ float mSwordUpColorIntensity; /* 0x03478 */ float field_0x3478; /* 0x0347C */ float field_0x347c; /* 0x03480 */ float field_0x3480; @@ -2830,7 +2877,7 @@ private: /* 0x034D4 */ cXyz field_0x34d4; /* 0x034E0 */ cXyz field_0x34e0; /* 0x034EC */ cXyz field_0x34ec; - /* 0x034F8 */ cXyz field_0x34f8; + /* 0x034F8 */ cXyz mLastJumpPos; /* 0x03504 */ cXyz field_0x3504; /* 0x03510 */ cXyz field_0x3510; /* 0x0351C */ cXyz field_0x351c; @@ -2935,6 +2982,21 @@ public: static daAlinkHIO_basic_c1 const m; }; +class daAlinkHIO_backJump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; +}; // Size: 0x38 + +class daAlinkHIO_backJump_c0 { +public: + static daAlinkHIO_backJump_c1 const m; +}; + class daAlinkHIO_autoJump_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mJump; @@ -2975,89 +3037,6 @@ public: static daAlinkHIO_autoJump_c1 const m; }; -class daAlinkHIO_wlAutoJump_c1 { -public: - /* 0x00 */ daAlinkHIO_anm_c field_0x00; - /* 0x14 */ daAlinkHIO_anm_c field_0x14; - /* 0x28 */ daAlinkHIO_anm_c field_0x28; - /* 0x3C */ u8 field_0x3c; - /* 0x3E */ s16 field_0x3e; - /* 0x40 */ s16 field_0x40; - /* 0x42 */ s16 field_0x42; - /* 0x44 */ f32 field_0x44; - /* 0x48 */ f32 field_0x48; - /* 0x4C */ f32 field_0x4c; - /* 0x50 */ f32 field_0x50; - /* 0x54 */ f32 field_0x54; - /* 0x58 */ f32 field_0x58; - /* 0x5C */ f32 field_0x5c; - /* 0x60 */ f32 field_0x60; - /* 0x64 */ f32 field_0x64; - /* 0x68 */ f32 field_0x68; - /* 0x6C */ f32 field_0x6c; - /* 0x70 */ f32 field_0x70; - /* 0x74 */ f32 field_0x74; - /* 0x78 */ f32 field_0x78; -}; // size = 0x7C - -class daAlinkHIO_wlAutoJump_c0 { -public: - static daAlinkHIO_wlAutoJump_c1 const m; -}; - -class daAlinkHIO_bomb_c1 { -public: - /* 0x00 */ s16 mExplodeTime; - /* 0x02 */ s16 mEnemyBombColorR; - /* 0x04 */ s16 mBombInsectLimitAngle; - /* 0x08 */ f32 mGravity; - /* 0x0C */ f32 mMaxFallSpeed; - /* 0x10 */ f32 mBoundRate; - /* 0x14 */ f32 mStopSpeedY; - /* 0x18 */ f32 mMaxSpeedY; - /* 0x1C */ f32 mEffScale; - /* 0x20 */ f32 mAtRadius; - /* 0x24 */ f32 mPokeBombTrackRate; - /* 0x28 */ f32 mWaterGravity; - /* 0x2C */ f32 mWaterMaxFallSpeed; - /* 0x30 */ f32 mThrowSpeedH; - /* 0x34 */ f32 mThrowSpeedV; - /* 0x38 */ f32 mWaterThrowSpeedH; - /* 0x3C */ f32 mWaterThrowSpeedV; - /* 0x40 */ f32 mWolfThrowSpeedH; - /* 0x44 */ f32 mWolfThrowSpeedV; - /* 0x48 */ f32 mExplodeWaterEffectLimit; -}; // Size: 0x4C - -class daAlinkHIO_bomb_c0 { -public: - static daAlinkHIO_bomb_c1 const m; -}; - -class daAlinkHIO_magneBoots_c1 { -public: - /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; - /* 0x14 */ f32 mInputFactor; - /* 0x18 */ f32 mFeetPositionRatio; - /* 0x1C */ f32 mWalkAnmSpeedMax; - /* 0x20 */ f32 mWalkAnmSpeedMin; - /* 0x24 */ f32 mWaterInputFactor; - /* 0x28 */ f32 mWaterStartWalkAnmRate; - /* 0x2C */ f32 mWaterWalkAnmRate; - /* 0x30 */ f32 mMaxMagneFlySpeed; - /* 0x34 */ f32 mMagneFlyAccelRate; - /* 0x38 */ f32 mWaterVelocityY; - /* 0x3C */ f32 mWaterVelocityX; - /* 0x40 */ f32 mWaterVelRateSword; - /* 0x44 */ f32 mZoraWaterInputFactor; - /* 0x48 */ f32 mZoraWaterAnmSpeed; -}; // Size: 0x4C - -class daAlinkHIO_magneBoots_c0 { -public: - static daAlinkHIO_magneBoots_c1 const m; -}; - class daAlinkHIO_cut_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; @@ -3113,6 +3092,28 @@ public: static daAlinkHIO_cutJump_c1 const m; }; +class daAlinkHIO_cutLargeJump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mChargeAnm; // ? + /* 0x14 */ daAlinkHIO_anm_c mChargeMoveAnm; // ? + /* 0x28 */ daAlinkHIO_anm_c mCutAnm; + /* 0x3C */ daAlinkHIO_anm_c mLandAnm; + /* 0x50 */ f32 mCutSpeedH; + /* 0x54 */ f32 mCutSpeedV; + /* 0x58 */ f32 mJumpAttackStartF; + /* 0x5C */ f32 mJumpAttackEndF; + /* 0x60 */ f32 mCutInitF; + /* 0x64 */ f32 mLandAttackInitF; + /* 0x68 */ f32 mLandAttackEndF; + /* 0x6C */ f32 mLandAttackRadius; + /* 0x70 */ f32 mSpinSlashUnkCF; +}; // Size: 0x74 + +class daAlinkHIO_cutLargeJump_c0 { +public: + static daAlinkHIO_cutLargeJump_c1 const m; +}; + class daAlinkHIO_move_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mSlideAnm; @@ -3274,6 +3275,460 @@ public: static daAlinkHIO_frontRoll_c1 const m; }; +class daAlinkHIO_swim_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mResurfaceAnm; + /* 0x14 */ daAlinkHIO_anm_c mDiveAnm; + /* 0x28 */ daAlinkHIO_anm_c mUnderwaterDiveAnm; + /* 0x3C */ daAlinkHIO_anm_c mDashAnm; + /* 0x50 */ s16 mTurnRate; + /* 0x52 */ s16 mTurnMin; + /* 0x54 */ s16 mTurnMax; + /* 0x56 */ s16 mUnderwaterTurnRate; + /* 0x58 */ s16 mUnderwaterTurnMin; + /* 0x5A */ s16 mUnderwaterTurnMax; + /* 0x5C */ s16 val1a; // related to dash + /* 0x5E */ s16 val1a_; // related to dash + /* 0x60 */ f32 mInitHeight; + /* 0x64 */ f32 mResurfaceHeight; + /* 0x68 */ f32 mMaxForwardSpeed; + /* 0x6C */ f32 mMaxStrafeSpeed; + /* 0x70 */ f32 mMaxBackwardSpeed; + /* 0x74 */ f32 mMaxUnderwaterSpeed; + /* 0x78 */ f32 mUnderwaterMaxSinkSpeed; + /* 0x7C */ f32 mAcceleration; + /* 0x80 */ f32 mDeceleration; + /* 0x84 */ f32 mMaxSinkSpeed; + /* 0x88 */ f32 mMaxFloatUpSpeed; + /* 0x8C */ f32 mBuoyancy; // ? + /* 0x90 */ f32 mWaitAnmSpeed; + /* 0x94 */ f32 mWaitInterpolation; + /* 0x98 */ f32 mWaitVibrationIntensity; + /* 0x9C */ f32 mForwardMinAnmSpeed; + /* 0xA0 */ f32 mForwardMaxAnmSpeed; + /* 0xA4 */ f32 mStrafeMinAnmSpeed; + /* 0xA8 */ f32 mStrafeMaxAnmSpeed; + /* 0xAC */ f32 mBackwardMinAnmSpeed; + /* 0xB0 */ f32 mBackwardMaxAnmSpeed; + /* 0xB4 */ f32 mUnderwaterMinAnmSpeed; + /* 0xB8 */ f32 mUnderwaterMaxAnmSpeed; + /* 0xBC */ f32 mMoveInterpolation; + /* 0xC0 */ f32 mClimbHeight; + /* 0xC4 */ f32 mUnderwaterClimbHeight; + /* 0xC8 */ f32 mForwardMinSpeed; + /* 0xCC */ f32 mInitMaxSinkSpeed; + /* 0xD0 */ f32 mBootsMaxSinkSpeed; + /* 0xD4 */ f32 mNormalFloatDepth; + /* 0xD8 */ f32 mZoraFloatDepth; + /* 0xDC */ f32 mUnderwaterButtonSpeed; + /* 0xE0 */ f32 mUnderwaterButtonAnmSpeed; // ? + /* 0xE4 */ f32 mBootsGravity; + /* 0xE8 */ f32 mSurfaceSwimSpeedRate; + /* 0xEC */ f32 mDMaxSpeed; // ? + /* 0xF0 */ f32 mDDeceleration; + /* 0xF4 */ f32 mDMinAnmSpeed; + /* 0xF8 */ f32 mDMaxAnmSpeed; +}; // Size: 0xFC + +class daAlinkHIO_swim_c0 { +public: + static daAlinkHIO_swim_c1 const m; +}; + +class daAlinkHIO_ladder_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; +}; // Size: 0x70 + +class daAlinkHIO_ladder_c0 { +public: + static daAlinkHIO_ladder_c1 const m; +}; + +class daAlinkHIO_horse_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x52 */ s16 field_0x52; + /* 0x54 */ s16 field_0x54; + /* 0x56 */ s16 field_0x56; + /* 0x58 */ s16 field_0x58; + /* 0x5A */ s16 field_0x5A; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; +}; // Size: 0x6C + +class daAlinkHIO_horse_c0 { +public: + static daAlinkHIO_horse_c1 const m; +}; + +class daAlinkHIO_wolf_c1 { +public: + /* 0x00 */ s16 mMaxNeckTurnH; + /* 0x02 */ s16 mMaxNeckTurnUp; + /* 0x04 */ s16 mMaxNeckTurnDown; + /* 0x06 */ s16 mMaxTiredNeckTurnH; + /* 0x08 */ s16 mMaxTiredNeckTurnUp; + /* 0x0A */ s16 mMaxTiredNeckTurnDown; + /* 0x0C */ s16 mSensesLingerTime; // ? + /* 0x0E */ s16 mLightDropR; + /* 0x10 */ s16 mLightDropG; + /* 0x12 */ s16 mLightDropB; + /* 0x14 */ f32 mSwampInputRate; // ? +}; // Size: 0x18 + +class daAlinkHIO_wolf_c0 { +public: + static daAlinkHIO_wolf_c1 const m; +}; + +class daAlinkHIO_wlMove_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x52 */ s16 field_0x52; + /* 0x54 */ s16 field_0x54; + /* 0x56 */ s16 field_0x56; + /* 0x58 */ s16 field_0x58; + /* 0x5A */ s16 field_0x5A; + /* 0x5C */ s16 field_0x5C; + /* 0x5E */ s16 field_0x5E; + /* 0x60 */ s16 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; + /* 0x8C */ f32 field_0x8C; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; + /* 0x98 */ f32 field_0x98; + /* 0x9C */ f32 field_0x9C; + /* 0xA0 */ f32 field_0xA0; + /* 0xA4 */ f32 field_0xA4; + /* 0xA8 */ f32 field_0xA8; + /* 0xAC */ f32 field_0xAC; + /* 0xB0 */ f32 field_0xB0; + /* 0xB4 */ f32 field_0xB4; + /* 0xB8 */ f32 field_0xB8; + /* 0xBC */ f32 field_0xBC; + /* 0xC0 */ f32 field_0xC0; + /* 0xC4 */ f32 field_0xC4; + /* 0xC8 */ f32 field_0xC8; + /* 0xCC */ f32 field_0xCC; + /* 0xD0 */ f32 field_0xD0; + /* 0xD4 */ f32 field_0xD4; + /* 0xD8 */ f32 field_0xD8; + /* 0xDC */ f32 field_0xDC; + /* 0xE0 */ f32 field_0xE0; + /* 0xE4 */ f32 field_0xE4; + /* 0xE8 */ f32 field_0xE8; + /* 0xEC */ f32 field_0xEC; + /* 0xF0 */ f32 field_0xF0; + /* 0xF4 */ f32 field_0xF4; + /* 0xF8 */ f32 field_0xF8; + /* 0xFC */ f32 field_0xFC; +}; // Size: 0x100 + +class daAlinkHIO_wlMove_c0 { +public: + static daAlinkHIO_wlMove_c1 const m; +}; + +class daAlinkHIO_wlMoveNoP_c1 { +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ s16 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; +}; // Size: 0x48 + +class daAlinkHIO_wlMoveNoP_c0 { +public: + static daAlinkHIO_wlMoveNoP_c1 const m; +}; + +class daAlinkHIO_wlAtnMove_c1 { +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ s16 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; +}; // Size: 0x38 + +class daAlinkHIO_wlAtnMove_c0 { +public: + static daAlinkHIO_wlAtnMove_c1 const m; +}; + +class daAlinkHIO_wlAutoJump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x00; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ u8 field_0x3c; + /* 0x3E */ s16 field_0x3e; + /* 0x40 */ s16 field_0x40; + /* 0x42 */ s16 field_0x42; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4c; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5c; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6c; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; +}; // size = 0x7C + +class daAlinkHIO_wlAutoJump_c0 { +public: + static daAlinkHIO_wlAutoJump_c1 const m; +}; + +class daAlinkHIO_wlSlide_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x52 */ s16 field_0x52; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; +}; // Size: 0x7C + +class daAlinkHIO_wlSlide_c0 { +public: + static daAlinkHIO_wlSlide_c1 const m; +}; + +class daAlinkHIO_wlSideStep_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; +}; // Size: 0x68 + +class daAlinkHIO_wlSideStep_c0 { +public: + static daAlinkHIO_wlSideStep_c1 const m; +}; + +class daAlinkHIO_wlBackJump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; +}; // Size: 0x38 + +class daAlinkHIO_wlBackJump_c0 { +public: + static daAlinkHIO_wlBackJump_c1 const m; +}; + +class daAlinkHIO_wlRope_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; +}; // Size: 0x38 + +class daAlinkHIO_wlRope_c0 { +public: + static daAlinkHIO_wlRope_c1 const m; +}; + +class daAlinkHIO_wlPush_c1 { +public: + /* 0x00 */ f32 field_0x0; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; +}; // Size: 0x14 + +class daAlinkHIO_wlPush_c0 { +public: + static daAlinkHIO_wlPush_c1 const m; +}; + +class daAlinkHIO_wlPoint_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; +}; // Size: 0x7C + +class daAlinkHIO_wlPoint_c0 { +public: + static daAlinkHIO_wlPoint_c1 const m; +}; + +class daAlinkHIO_wlWallHang_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; + /* 0x8C */ f32 field_0x8C; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; + /* 0x98 */ f32 field_0x98; +}; // Size: 0x9C + +class daAlinkHIO_wlWallHang_c0 { +public: + static daAlinkHIO_wlWallHang_c1 const m; +}; + +class daAlinkHIO_wlSwim_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ s16 field_0x3C; + /* 0x3E */ s16 field_0x3E; + /* 0x40 */ s16 field_0x40; + /* 0x42 */ s16 field_0x42; + /* 0x44 */ s16 field_0x44; + /* 0x46 */ s16 field_0x46; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; + /* 0x8C */ f32 field_0x8C; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; + /* 0x98 */ f32 field_0x98; + /* 0x9C */ f32 field_0x9C; + /* 0xA0 */ f32 field_0xA0; + /* 0xA4 */ f32 field_0xA4; +}; // Size: 0xA8 + +class daAlinkHIO_wlSwim_c0 { +public: + static daAlinkHIO_wlSwim_c1 const m; +}; + class daAlinkHIO_wlAttack_c1 { public: /* 0x00 */ daAlinkHIO_anm_c mLandAnm; @@ -3294,6 +3749,595 @@ public: static daAlinkHIO_wlAttack_c1 const m; }; +class daAlinkHIO_wlHowl_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; +}; // Size: 0x60 + +class daAlinkHIO_wlHowl_c0 { +public: + static daAlinkHIO_wlHowl_c1 const m; +}; + +class daAlinkHIO_wlGrab_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; +}; // Size: 0x64 + +class daAlinkHIO_wlGrab_c0 { +public: + static daAlinkHIO_wlGrab_c1 const m; +}; + +class daAlinkHIO_wlChain_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ s16 field_0x3C; + /* 0x3E */ s16 field_0x3E; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; +}; // Size: 0x5C + +class daAlinkHIO_wlChain_c0 { +public: + static daAlinkHIO_wlChain_c1 const m; +}; + +class daAlinkHIO_wlBall_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; +}; // Size: 0x38 + +class daAlinkHIO_wlBall_c0 { +public: + static daAlinkHIO_wlBall_c1 const m; +}; + +class daAlinkHIO_wlLie_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2A; + /* 0x2C */ s16 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; +}; // Size: 0x4C + +class daAlinkHIO_wlLie_c0 { +public: + static daAlinkHIO_wlLie_c1 const m; +}; + +class daAlinkHIO_wlLight_c1 { +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ s16 field_0x4; + /* 0x06 */ s16 field_0x6; + /* 0x08 */ s16 field_0x8; + /* 0x0A */ s16 field_0xA; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; // Size: 0x1C + +class daAlinkHIO_wlLight_c0 { +public: + static daAlinkHIO_wlLight_c1 const m; +}; + +class daAlinkHIO_wlAtWaTl_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; +}; // Size: 0x3C + +class daAlinkHIO_wlAtWaTl_c0 { +public: + static daAlinkHIO_wlAtWaTl_c1 const m; +}; + +class daAlinkHIO_wlAtWaSc_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; +}; // Size: 0x3C + +class daAlinkHIO_wlAtWaSc_c0 { +public: + static daAlinkHIO_wlAtWaSc_c1 const m; +}; + +class daAlinkHIO_wlAtWaLr_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; +}; // Size: 0x3C + +class daAlinkHIO_wlAtWaLr_c0 { +public: + static daAlinkHIO_wlAtWaLr_c1 const m; +}; + +class daAlinkHIO_wlAtRoll_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; +}; // Size: 0x20 + +class daAlinkHIO_wlAtRoll_c0 { +public: + static daAlinkHIO_wlAtRoll_c1 const m; +}; + +class daAlinkHIO_wlAtNjump_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ f32 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; +}; // Size: 0x3C + +class daAlinkHIO_wlAtNjump_c0 { +public: + static daAlinkHIO_wlAtNjump_c1 const m; +}; + +class daAlinkHIO_wlAtLock_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; +}; // Size: 0x54 + +class daAlinkHIO_wlAtLock_c0 { +public: + static daAlinkHIO_wlAtLock_c1 const m; +}; + +class daAlinkHIO_wlAtLand_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ f32 field_0x3C; +}; // Size: 0x40 + +class daAlinkHIO_wlAtLand_c0 { +public: + static daAlinkHIO_wlAtLand_c1 const m; +}; + +class daAlinkHIO_wlDamage_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ f32 field_0x28; +}; // Size: 0x2C + +class daAlinkHIO_wlDamage_c0 { +public: + static daAlinkHIO_wlDamage_c1 const m; +}; + +class daAlinkHIO_wlDamNormal_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; +}; // Size: 0x60 + +class daAlinkHIO_wlDamNormal_c0 { +public: + static daAlinkHIO_wlDamNormal_c1 const m; +}; + +class daAlinkHIO_wlDamLarge_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; +}; // Size: 0x6C + +class daAlinkHIO_wlDamLarge_c0 { +public: + static daAlinkHIO_wlDamLarge_c1 const m; +}; + +class daAlinkHIO_wlDamHuge_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ s16 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; +}; // Size: 0x6C + +class daAlinkHIO_wlDamHuge_c0 { +public: + static daAlinkHIO_wlDamHuge_c1 const m; +}; + +class daAlinkHIO_wlDamFall_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 field_0x2A; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; +}; // Size: 0x40 + +class daAlinkHIO_wlDamFall_c0 { +public: + static daAlinkHIO_wlDamFall_c1 const m; +}; + +class daAlinkHIO_wlDamCaught_c1 { +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xC; +}; // Size: 0x10 + +class daAlinkHIO_wlDamCaught_c0 { +public: + static daAlinkHIO_wlDamCaught_c1 const m; +}; + +class daAlinkHIO_zwLight_c1 { // may be wrong +public: + /* 0x00 */ s16 field_0x0; + /* 0x02 */ s16 field_0x2; + /* 0x04 */ s16 field_0x4; + /* 0x06 */ s16 field_0x6; + /* 0x08 */ s16 field_0x8; + /* 0x0A */ s16 field_0xA; + /* 0x0C */ f32 field_0xC; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; +}; // Size: 0x1C + +class daAlinkHIO_zwLight_c0 { +public: + static daAlinkHIO_zwLight_c1 const m; +}; + +class daAlinkHIO_board_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; + /* 0x70 */ f32 field_0x70; + /* 0x74 */ f32 field_0x74; + /* 0x78 */ f32 field_0x78; + /* 0x7C */ f32 field_0x7C; + /* 0x80 */ f32 field_0x80; + /* 0x84 */ f32 field_0x84; + /* 0x88 */ f32 field_0x88; + /* 0x8C */ f32 field_0x8C; + /* 0x90 */ f32 field_0x90; + /* 0x94 */ f32 field_0x94; + /* 0x98 */ f32 field_0x98; +}; // Size: 0x9C + +class daAlinkHIO_board_c0 { +public: + static daAlinkHIO_board_c1 const m; +}; + +class daAlinkHIO_item_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mOneHandEquipAnm; + /* 0x14 */ daAlinkHIO_anm_c mTwoHandEquipAnm; + /* 0x28 */ s16 mItemFPTransitionTimer; + /* 0x2A */ s16 mItemFPMaxUnk; + /* 0x2C */ s16 mItemFPUpMaxUnk; + /* 0x2E */ s16 mWiiItemFPDownMaxUnk; + /* 0x30 */ s16 mWiiItemFPUpMaxUnk; + /* 0x34 */ f32 mOneHandReleaseAnmSpeed; + /* 0x38 */ f32 mTwoHandReleaseAnmSpeed; +}; // Size: 0x3C + +class daAlinkHIO_item_c0 { +public: + static daAlinkHIO_item_c1 const m; +}; + +class daAlinkHIO_bottle_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ daAlinkHIO_anm_c field_0x3C; + /* 0x50 */ daAlinkHIO_anm_c field_0x50; + /* 0x64 */ daAlinkHIO_anm_c field_0x64; + /* 0x78 */ daAlinkHIO_anm_c field_0x78; + /* 0x8C */ daAlinkHIO_anm_c field_0x8C; + /* 0xA0 */ daAlinkHIO_anm_c field_0xA0; +}; // Size: 0xB4 + +class daAlinkHIO_bottle_c0 { +public: + static daAlinkHIO_bottle_c1 const m; +}; + +class daAlinkHIO_boom_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mThrowAnm; + /* 0x14 */ daAlinkHIO_anm_c mCatchAnm; + /* 0x28 */ s16 field_0x28; + /* 0x2A */ s16 mBgThroughTime; + /* 0x2C */ f32 field_0x2c; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3c; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 mCatchSpeed; +}; // Size: 0x4c + +class daAlinkHIO_boom_c0 { +public: + static daAlinkHIO_boom_c1 const m; +}; + +class daAlinkHIO_bow_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c val0; + /* 0x14 */ daAlinkHIO_anm_c val5; + /* 0x28 */ s16 vala; + /* 0x2A */ s16 valb; + /* 0x2C */ s16 valc; + /* 0x30 */ f32 vale; + /* 0x34 */ f32 valf; + /* 0x38 */ f32 val10; + /* 0x3C */ f32 val11; + /* 0x40 */ f32 val12; + /* 0x44 */ f32 val13; + /* 0x48 */ f32 val14; + /* 0x4C */ f32 val15; + /* 0x50 */ f32 val16; + /* 0x54 */ f32 val17; + /* 0x58 */ f32 val18; + /* 0x5C */ f32 val19; + /* 0x60 */ f32 val1a; + /* 0x64 */ f32 val1b; + /* 0x68 */ f32 val1c; + /* 0x6C */ f32 val1d; +}; // Size: 0x70 + +class daAlinkHIO_bow_c0 { +public: + static daAlinkHIO_bow_c1 const m; +}; + +class daAlinkHIO_copyRod_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mSwingAnm; + /* 0x14 */ daAlinkHIO_anm_c mBigSwingAnm; + /* 0x28 */ f32 mBallSpeed; + /* 0x2c */ f32 mBallMaxDistance; + /* 0x30 */ f32 mBallReturnSpeed; + /* 0x34 */ f32 mBossBallMaxDistance; +}; // Size: 0x38 + +class daAlinkHIO_copyRod_c0 { +public: + static daAlinkHIO_copyRod_c1 const m; +}; + +class daAlinkHIO_bomb_c1 { +public: + /* 0x00 */ s16 mExplodeTime; + /* 0x02 */ s16 mEnemyBombColorR; + /* 0x04 */ s16 mBombInsectLimitAngle; + /* 0x08 */ f32 mGravity; + /* 0x0C */ f32 mMaxFallSpeed; + /* 0x10 */ f32 mBoundRate; + /* 0x14 */ f32 mStopSpeedY; + /* 0x18 */ f32 mMaxSpeedY; + /* 0x1C */ f32 mEffScale; + /* 0x20 */ f32 mAtRadius; + /* 0x24 */ f32 mPokeBombTrackRate; + /* 0x28 */ f32 mWaterGravity; + /* 0x2C */ f32 mWaterMaxFallSpeed; + /* 0x30 */ f32 mThrowSpeedH; + /* 0x34 */ f32 mThrowSpeedV; + /* 0x38 */ f32 mWaterThrowSpeedH; + /* 0x3C */ f32 mWaterThrowSpeedV; + /* 0x40 */ f32 mWolfThrowSpeedH; + /* 0x44 */ f32 mWolfThrowSpeedV; + /* 0x48 */ f32 mExplodeWaterEffectLimit; +}; // Size: 0x4C + +class daAlinkHIO_bomb_c0 { +public: + static daAlinkHIO_bomb_c1 const m; +}; + +class daAlinkHIO_magneBoots_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c mEquipAnm; + /* 0x14 */ f32 mInputFactor; + /* 0x18 */ f32 mFeetPositionRatio; + /* 0x1C */ f32 mWalkAnmSpeedMax; + /* 0x20 */ f32 mWalkAnmSpeedMin; + /* 0x24 */ f32 mWaterInputFactor; + /* 0x28 */ f32 mWaterStartWalkAnmRate; + /* 0x2C */ f32 mWaterWalkAnmRate; + /* 0x30 */ f32 mMaxMagneFlySpeed; + /* 0x34 */ f32 mMagneFlyAccelRate; + /* 0x38 */ f32 mWaterVelocityY; + /* 0x3C */ f32 mWaterVelocityX; + /* 0x40 */ f32 mWaterVelRateSword; + /* 0x44 */ f32 mZoraWaterInputFactor; + /* 0x48 */ f32 mZoraWaterAnmSpeed; +}; // Size: 0x4C + +class daAlinkHIO_magneBoots_c0 { +public: + static daAlinkHIO_magneBoots_c1 const m; +}; + +class daAlinkHIO_spinner_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ s16 field_0x14; + /* 0x16 */ s16 field_0x16; + /* 0x18 */ s16 field_0x18; + /* 0x1A */ s16 field_0x1A; + /* 0x1C */ s16 field_0x1C; + /* 0x20 */ f32 field_0x20; + /* 0x24 */ f32 field_0x24; + /* 0x28 */ f32 field_0x28; + /* 0x2C */ f32 field_0x2C; + /* 0x30 */ f32 field_0x30; + /* 0x34 */ f32 field_0x34; + /* 0x38 */ f32 field_0x38; + /* 0x3C */ f32 field_0x3C; +}; // Size: 0x40 + +class daAlinkHIO_spinner_c0 { +public: + static daAlinkHIO_spinner_c1 const m; +}; + +class daAlinkHIO_hookshot_c1 { +public: + /* 0x00 */ daAlinkHIO_anm_c field_0x0; + /* 0x14 */ daAlinkHIO_anm_c field_0x14; + /* 0x28 */ daAlinkHIO_anm_c field_0x28; + /* 0x3C */ f32 field_0x3C; + /* 0x40 */ f32 field_0x40; + /* 0x44 */ f32 field_0x44; + /* 0x48 */ f32 field_0x48; + /* 0x4C */ f32 field_0x4C; + /* 0x50 */ f32 field_0x50; + /* 0x54 */ f32 field_0x54; + /* 0x58 */ f32 field_0x58; + /* 0x5C */ f32 field_0x5C; + /* 0x60 */ f32 field_0x60; + /* 0x64 */ f32 field_0x64; + /* 0x68 */ f32 field_0x68; + /* 0x6C */ f32 field_0x6C; +}; // Size: 0x70 + +class daAlinkHIO_hookshot_c0 { +public: + static daAlinkHIO_hookshot_c1 const m; +}; + class daHorseRein_c { private: /* 0x00 */ cXyz* field_0x0[2]; @@ -3402,31 +4446,169 @@ private: /* 0x17C4 */ cXyz mDemoPos0; }; -class daMidna_c { +class mDoExt_morf_c; + +class daMidna_c : public fopAc_ac_c { public: enum daMidna_ERFLG0 { NO_SERVICE_WAIT = 128, FORCE_PANIC = 8, }; + enum daMidna_FLG1 { FORCE_NORMAL_COLOR = 8, FORCE_TIRED_COLOR = 4 }; + enum daMidna_ANM {}; + void onForcePanic(); u32 checkForceNormalColor() const; u32 checkForceTiredColor() const; bool checkMidnaTired(); void onNoServiceWait(); + /* 804BC3E0 */ void modelCallBack(int); + /* 804BC5C4 */ void changeUpperBck(); + /* 804BC614 */ void changeFaceBck(); + /* 804BC670 */ void baseModelCallBack(int); + /* 804BC740 */ void initInvModel(u16, J3DModel**, mDoExt_invisibleModel*, u32); + /* 804BC7D4 */ void initDemoModel(J3DModel**, char const*, u32); + /* 804BC868 */ void createHeap(); + /* 804BD274 */ void create(); + /* 804BD93C */ void allAnimePlay(); + /* 804BDE04 */ void setMatrix(); + /* 804BE470 */ void setBodyPartMatrix(); + /* 804BED1C */ void setRoomInfo(); + /* 804BEDB8 */ void setBodyPartPos(); + /* 804BEFA0 */ void checkAppear(); + /* 804BF070 */ void checkMidnaPosState(); + /* 804BFF80 */ void setUpperAnime(u16, u16); + /* 804C0020 */ void setUpperAnimeAndSe(daMidna_c::daMidna_ANM); + /* 804C0094 */ void setFaceAnime(u16, u16); + /* 804C0134 */ void endHighModel(); + /* 804C0238 */ void setDemoAnm(); + /* 804C0BAC */ void setFaceBtp(u16, int); + /* 804C0C6C */ void setFaceBtk(u16, int); + /* 804C0D2C */ void setLeftHandShape(u16); + /* 804C0E18 */ void setRightHandShape(u16); + /* 804C0F04 */ void checkHairOnlyAnime(int) const; + /* 804C0F24 */ void setBckAnime(J3DAnmTransform*, int, f32); + /* 804C103C */ void setAnm(); + /* 804C287C */ void getNeckAimAngle(cXyz const*, s16*, s16*, s16*, s16*); + /* 804C2A68 */ void clearEyeMove(); + /* 804C2AB8 */ void setEyeMove(cXyz const*, s16, s16); + /* 804C2EBC */ void setNeckAngle(); + /* 804C3168 */ void initHairAngle(); + /* 804C3298 */ void setHairAngle(); + /* 804C3F04 */ void setDemoData(); + /* 804C4394 */ void setSimpleBrk(J3DModelData*, u16); + /* 804C4444 */ void setSimpleBtk(J3DModelData*, u16); + /* 804C44CC */ void initMidnaModel(); + /* 804C49B8 */ void setMidnaNoDrawFlg(); + /* 804C4AE8 */ void checkMetamorphoseEnableBase(); + /* 804C4B68 */ void checkNoDrawState(); + /* 804C4BC0 */ void setSound(); + /* 804C4FDC */ void execute(); + /* 804C5A08 */ void draw(); + /* 804C61A4 */ ~daMidna_c(); void onEndResetStateFlg0(daMidna_ERFLG0 pFlg) { mEndResetStateFlg0 |= pFlg; } u32 checkStateFlg1(daMidna_FLG1 pFlg) const { return mStateFlg1 & pFlg; } + static u8 const m_texDataTable[84]; + static u8 const m_anmDataTable[636]; + private: - /* 0x0000 */ fopAc_ac_c mActor; - /* 0x0568 */ u8 field_0x568[0x32C]; + /* 0x0568 */ request_of_phase_process_class* field_0x568; + /* 0x056C */ u8 field_0x56c[4]; + /* 0x0570 */ J3DModel* field_0x570; + /* 0x0574 */ J3DModel* field_0x574; + /* 0x0578 */ mDoExt_morf_c* field_0x578; + /* 0x057C */ mDoExt_McaMorfCallBack1_c* field_0x57c; + /* 0x0580 */ cXyz* field_0x580; + /* 0x0584 */ mDoExt_bckAnm field_0x584; + /* 0x05A0 */ mDoExt_bckAnm field_0x5a0; + /* 0x05BC */ u8 field_0x5bc[8]; + /* 0x05C4 */ mDoExt_invisibleModel field_0x5c4; + /* 0x05CC */ mDoExt_invisibleModel field_0x5cc; + /* 0x05D4 */ mDoExt_invisibleModel field_0x5d4; + /* 0x05DC */ mDoExt_invisibleModel field_0x5dc; + /* 0x05E4 */ daPy_anmHeap_c field_0x5e4[3]; + /* 0x0620 */ daPy_anmHeap_c field_0x620; + /* 0x0634 */ daPy_anmHeap_c field_0x634; + /* 0x0648 */ J3DAnmBase* field_0x648; + /* 0x064C */ J3DAnmBase* field_0x64c; + /* 0x0650 */ J3DAnmBase* field_0x650; + /* 0x0654 */ J3DAnmBase* field_0x654; + /* 0x0658 */ u8 field_0x658[0x10]; + /* 0x0668 */ J3DAnmBase* field_0x668; + /* 0x066C */ J3DAnmBase* field_0x66c; + /* 0x0670 */ u8 field_0x670[4]; + /* 0x0674 */ J3DModel* field_0x674; + /* 0x0678 */ u8 field_0x678[4]; + /* 0x067C */ J3DModel* field_0x67c; + /* 0x0680 */ u8 field_0x680[4]; + /* 0x0684 */ J3DModel* field_0x684; + /* 0x0688 */ J3DModel* field_0x688; + /* 0x068C */ J3DModel* field_0x68c; + /* 0x0690 */ J3DModel* field_0x690; + /* 0x0694 */ J3DModel* field_0x694; + /* 0x0698 */ J3DModel* field_0x698; + /* 0x069C */ u8 field_0x98c[0x10]; + /* 0x06AC */ J3DModel* field_0x6ac; + /* 0x06B0 */ J3DModel* field_0x6b0; + /* 0x06B4 */ u8 field_0x6b4[4]; + /* 0x06B8 */ mDoExt_bckAnm* field_0x6b8; + /* 0x06BC */ J3DDeformData* field_0x6bc; + /* 0x06C0 */ u8 field_0x6c0[4]; + /* 0x06C4 */ J3DFrameCtrl* field_0x6c4; + /* 0x06C8 */ J3DModel* field_0x6c8; + /* 0x06CC */ mDoExt_bckAnm* field_0x6cc; + /* 0x06D0 */ J3DModel* field_0x6d0; + /* 0x06D4 */ mDoExt_bckAnm* field_0x6d4; + /* 0x06D8 */ J3DModel* field_0x6d8; + /* 0x06DC */ mDoExt_bckAnm* field_0x6dc; + /* 0x06E0 */ s16 field_0x6e0; + /* 0x06E2 */ s16 field_0x6e2; + /* 0x06E4 */ s16 field_0x6e4; + /* 0x06E6 */ s16 field_0x6e6; + /* 0x06E8 */ u8 field_0x6e8; + /* 0x06E9 */ u8 field_0x6e9; + /* 0x06EA */ u8 field_0x6ea; + /* 0x06EB */ u8 field_0x6eb; + /* 0x06EC */ u8 field_0x6ec; + /* 0x06ED */ u8 field_0x6ed; + /* 0x06EE */ u8 field_0x6ee; + /* 0x06EF */ u8 field_0x6ef; + /* 0x06F0 */ u8 field_0x6f0[8]; + /* 0x06F8 */ void* field_0x6f8; + /* 0x06FC */ Z2Creature field_0x6fc; + /* 0x078C */ dMsgFlow_c field_0x78c; + /* 0x07D8 */ dBgS_LinkLinChk field_0x7d8; + /* 0x0848 */ u8 mMotionNum; + /* 0x0849 */ u8 mFaceNum; + /* 0x084A */ u8 field_0x84a[4]; + /* 0x084E */ u8 field_0x84e; + /* 0x084F */ u8 mDemoType; + /* 0x0850 */ u8 field_0x850[0xA]; + /* 0x085A */ s16 field_0x85a; + /* 0x085C */ u8 field_0x85c[0x22]; + /* 0x087E */ s16 field_0x87e; + /* 0x0880 */ u8 field_0x880[0x10]; + /* 0x0890 */ u32 mStateFlg0; /* 0x0894 */ u32 mStateFlg1; /* 0x0898 */ u32 mEndResetStateFlg0; + /* 0x089C */ u8 field_0x89c[0x24]; + /* 0x08C0 */ u32 mDemoMode; + /* 0x08C4 */ u8 field_0x8c4[4]; + /* 0x08C8 */ f32 field_0x8c8; + /* 0x08CC */ u8 field_0x8cc[0x14]; + /* 0x08E0 */ cXyz field_0x8e0[5]; + /* 0x091C */ cXyz field_0x91c[5]; + /* 0x0958 */ u8 field_0x958[0xC]; + /* 0x0964 */ cXyz field_0x964[5]; + /* 0x09A0 */ u8 field_0x9a0[0x14]; + /* 0x09C4 */ cXyz field_0x9c4; }; #endif /* D_A_D_A_ALINK_H */
\ No newline at end of file diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h index 786338348d..a2028b64e7 100644 --- a/include/d/a/d_a_player.h +++ b/include/d/a/d_a_player.h @@ -12,12 +12,15 @@ #include "f_op/f_op_actor.h" class daPy_sightPacket_c : public dDlst_base_c { +public: /* 8015F1A0 */ virtual void draw(); /* 80140CDC */ virtual ~daPy_sightPacket_c(); /* 8015F2FC */ void setSight(); /* 8015F384 */ void setSightImage(ResTIMG*); + bool getDrawFlg() { return mDrawFlag; } + private: /* 0x04 */ bool mDrawFlag; /* 0x05 */ u8 field_0x5[3]; @@ -54,12 +57,13 @@ public: J3DAnmBase* loadDataIdx(u16); J3DAnmBase* loadDataPriIdx(u16); J3DAnmBase* loadDataDemoRID(u16, u16); - void setAnimeHeap(); + JKRHeap* setAnimeHeap(); u16 getIdx() const { return mIdx; } void resetIdx() { mIdx = 0xffff; } void resetPriIdx() { mPriIdx = 0xffff; } void resetArcNo() { mArcNo = 0xffff; } + bool checkNoSetArcNo() const { return mArcNo == 0xFFFF; } private: /* 0x00 */ u16 mIdx; @@ -84,9 +88,9 @@ public: fopAc_ac_c* getActorConst() const { return mActor; } private: - u32 mID; - fopAc_ac_c* mActor; -}; + /* 0x0 */ u32 mID; + /* 0x4 */ fopAc_ac_c* mActor; +}; // Size: 0x8 class daPy_frameCtrl_c : public J3DFrameCtrl { public: @@ -122,6 +126,7 @@ public: u16 getDemoType() const { return mDemoType; } void setDemoMode(u32 mode) { mDemoMode = mode; } u32 getDemoMode() const { return mDemoMode; } + void i_setSpecialDemoType() { setDemoType(5); } private: /* 0x00 */ u16 mDemoType; @@ -135,6 +140,8 @@ private: /* 0x18 */ cXyz mDemoPos0; }; // Size: 0x24 +class daMidna_c; + class daPy_py_c : public fopAc_ac_c { public: /* 0x0568 */ u8 mCutType; @@ -142,7 +149,7 @@ public: /* 0x056A */ u8 mSpecialMode; // maybe needs better name /* 0x056B */ u8 field_0x56b; /* 0x056C */ s16 mDamageTimer; - /* 0x056E */ u8 field_0x56e[2]; + /* 0x056E */ u16 mSwordUpTimer; /* 0x0570 */ u32 mNoResetFlg0; /* 0x0574 */ u32 mNoResetFlg1; /* 0x0578 */ u32 mNoResetFlg2; @@ -168,22 +175,29 @@ public: public: enum daPy_FLG0 { + FLG0_UNK_40000000 = 0x40000000, EQUIP_HEAVY_BOOTS = 0x2000000, FLG0_UNK_8000000 = 0x8000000, FLG0_UNK_1000000 = 0x1000000, UNDER_WATER_MOVEMENT = 0x800000, FLG0_UNK_80000 = 0x80000, + FLG0_UNK_20000 = 0x20000, FLG0_UNK_8000 = 0x8000, MAGNE_BOOTS_ON = 0x1000, + FLG0_UNK_80 = 0x80, FLG0_UNK_40 = 0x40, + FLG0_UNK_20 = 0x20, UNK_F_ROLL_CRASH_2 = 0x10, - UNK_F_ROLL_CRASH_1 = 0x8 + UNK_F_ROLL_CRASH_1 = 0x8, + FLG0_UNK_4 = 4, + + HEAVY_STATE_BOOTS = FLG0_UNK_40000000 | EQUIP_HEAVY_BOOTS | FLG0_UNK_20000, }; - enum daPy_FLG1 { IS_WOLF = 0x2000000, THROW_DAMAGE = 0x4000 }; + enum daPy_FLG1 { IS_WOLF = 0x2000000, FLG1_UNK_10000 = 0x10000, THROW_DAMAGE = 0x4000 }; enum daPy_FLG2 { FLG2_UNK_4080000 = 0x4080000, FLG2_UNK_2080000 = 0x2080000, BOAR_SINGLE_BATTLE = 0x1800000, STATUS_WINDOW_DRAW = 0x400000, UNK_ARMOR = 0x80000, UNK_FLG2_2 = 2, UNK_DAPY_FLG2_1 = 1 }; - enum daPy_FLG3 { FLG3_UNK_100000 = 0x100000, COPY_ROD_THROW_AFTER = 0x40000 }; - enum daPy_ERFLG0 { ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_1000000 = 0x1000000, ERFLG0_UNK_100000 = 0x100000, }; - enum daPy_ERFLG1 { GANON_FINISH = 0x80000000, UNK_FORCE_PUT_POS = 0x2000 }; + enum daPy_FLG3 { FLG3_UNK_2000000 = 0x2000000, FLG3_UNK_100000 = 0x100000, COPY_ROD_THROW_AFTER = 0x40000 }; + enum daPy_ERFLG0 { ERFLG0_UNK_8000000 = 0x8000000, ERFLG0_UNK_1000000 = 0x1000000, ERFLG0_UNK_100000 = 0x100000, ERFLG0_UNK_1 = 1, }; + enum daPy_ERFLG1 { GANON_FINISH = 0x80000000, UNK_FORCE_PUT_POS = 0x2000, ERFLG1_UNK_1 = 1, }; enum daPy_ERFLG2 {}; enum daPy_RFLG0 { RFLG0_UNK_8000000 = 0x8000000, @@ -195,6 +209,7 @@ public: enum { /* 0x01 */ SMODE_SUMO_READY = 1, /* 0x25 */ SMODE_SUMO_LOSE = 37, + /* 0x27 */ SMODE_WOLF_PUZZLE = 39, /* 0x2A */ SMODE_GOAT_STOP = 42, /* 0x2B */ SMODE_GORON_THROW, /* 0x2C */ SMODE_CARGO_CARRY, @@ -225,7 +240,7 @@ public: /* 0x21 */ TYPE_CUT_STAB_COMBO, }; - void setParamData(int, int, int, int); + static u32 setParamData(int, int, int, int); int checkFishingRodItem(int); static BOOL checkBombItem(int); static BOOL checkBottleItem(int); @@ -445,7 +460,7 @@ public: virtual BOOL checkHorseStart(); virtual Z2WolfHowlMgr* getWolfHowlMgrP(); virtual BOOL checkWolfHowlSuccessAnime() const; - virtual bool checkCopyRodTopUse(); + virtual BOOL checkCopyRodTopUse(); virtual bool checkCopyRodEquip() const; virtual BOOL checkCutJumpMode() const; @@ -458,6 +473,8 @@ public: } bool checkStatusWindowDraw() { return i_checkNoResetFlg2(STATUS_WINDOW_DRAW); } + bool checkCargoCarry() const { return mSpecialMode == SMODE_CARGO_CARRY; } + bool getHeavyStateAndBoots() { return i_checkNoResetFlg0(HEAVY_STATE_BOOTS); } // some functions use these function as an inline // is there a better way to handle this? @@ -477,10 +494,12 @@ public: void i_onEndResetFlg0(int flag) { mEndResetFlg0 |= flag; } int i_checkResetFlg0(daPy_py_c::daPy_RFLG0 flag) const { return mResetFlg0 & flag; } int i_checkEndResetFlg0(daPy_py_c::daPy_ERFLG0 flag) const { return mEndResetFlg0 & flag; } + int i_checkEndResetFlg1(daPy_py_c::daPy_ERFLG1 flag) const { return mEndResetFlg1 & flag; } void i_onEndResetFlg1(daPy_ERFLG1 pFlg) { mEndResetFlg1 |= pFlg; } int i_checkWolf() const { return i_checkNoResetFlg1(IS_WOLF); } BOOL i_checkEquipHeavyBoots() const { return i_checkNoResetFlg0(EQUIP_HEAVY_BOOTS); } BOOL i_checkMagneBootsOn() const { return i_checkNoResetFlg0(MAGNE_BOOTS_ON); } + bool i_checkMidnaRide() const { return i_checkNoResetFlg0(FLG0_UNK_4); } inline u32 getLastSceneMode(); inline bool checkWoodSwordEquip(); @@ -489,7 +508,7 @@ public: inline BOOL checkNowWolf(); inline bool checkZoraWearFlg() const; - static u8 m_midnaActor[4]; + static daMidna_c* m_midnaActor; }; #endif /* D_A_D_A_PLAYER_H */ diff --git a/include/d/bg/d_bg_s_acch.h b/include/d/bg/d_bg_s_acch.h index a1d6f5dc10..13c2371255 100644 --- a/include/d/bg/d_bg_s_acch.h +++ b/include/d/bg/d_bg_s_acch.h @@ -137,6 +137,8 @@ public: void SetGroundHit() { m_flags |= GROUND_HIT; } void SetGroundLanding() { m_flags |= GROUND_LANDING; } void SetGroundAway() { m_flags |= GROUND_AWAY; } + u32 MaskWaterHit() { return m_flags & WATER_HIT; } + bool ChkWaterHit() { return MaskWaterHit(); } // inline dupe void i_ClrGroundHit() { m_flags &= ~GROUND_HIT; } diff --git a/include/d/cc/d_cc_d.h b/include/d/cc/d_cc_d.h index 447f8bee02..011835eb3b 100644 --- a/include/d/cc/d_cc_d.h +++ b/include/d/cc/d_cc_d.h @@ -83,11 +83,19 @@ public: }; // Size = 0x3C +enum dCcG_At_Spl { + /* 0x0 */ dCcG_At_Spl_UNK_0, + /* 0x1 */ dCcG_At_Spl_UNK_01, +}; + +class dCcD_GObjInf; +typedef void (*dCcD_AtHitCallback)(fopAc_ac_c*, dCcD_GObjInf*, fopAc_ac_c*, dCcD_GObjInf*); + class dCcD_GAtTgCoCommonBase { public: /* 0x00 */ u32 mGFlag; /* 0x04 */ u32 mRPrm; - /* 0x08 */ u32 field_0x08; + /* 0x08 */ dCcD_AtHitCallback mHitCallback; /* 0x0C */ u32 mApid; /* 0x10 */ fopAc_ac_c* mAc; /* 0x14 */ s8 mEffCounter; @@ -114,6 +122,7 @@ public: void OnSPrm(u32 flag) { mGFlag |= flag; } void OffSPrm(u32 flag) { mGFlag &= ~flag; } bool ChkRPrm(u32 flag) const { return MskRPrm(flag); } + void SetHitCallback(dCcD_AtHitCallback callback) { mHitCallback = callback; } }; // Size = 0x1C class dCcD_GObjAt : public dCcD_GAtTgCoCommonBase { @@ -122,9 +131,11 @@ public: /* 80083C44 */ virtual ~dCcD_GObjAt() {} void SetVec(cXyz& vec) { mVec = vec; } cXyz& GetVec() { return mVec; } + cXyz* GetVecP() { return &mVec; } void SetHitMark(u8 mark) { mHitMark = mark; } void SetSe(u8 se) { mSe = se; } void SetMtrl(u8 mtrl) { mMtrl = mtrl; } + void SetAtSpl(dCcG_At_Spl spl) { mSpl = spl; } // private: /* 0x1C */ u8 mSe; @@ -193,6 +204,9 @@ public: void SetAtMtrl(u8 mtrl) { mGObjAt.SetMtrl(mtrl); } fopAc_ac_c* GetAtHitAc() { return mGObjAt.GetAc(); } bool ChkAtShieldHit() { return mGObjAt.ChkRPrm(1); } + cXyz* GetAtVecP() { return mGObjAt.GetVecP(); } + void SetAtSpl(dCcG_At_Spl spl) { mGObjAt.SetAtSpl(spl); } + void SetAtHitCallback(dCcD_AtHitCallback callback) { mGObjAt.SetHitCallback(callback); } static u32 const m_hitSeID[24]; @@ -241,10 +255,6 @@ public: dCcD_Tri() {} }; -enum dCcG_At_Spl { - /* 0x1 */ dCcG_At_Spl_UNK_01 = 1, -}; - dCcD_GObjInf* dCcD_GetGObjInf(cCcD_Obj* param_0); #endif /* D_CC_D_CC_D_H */ diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 83b3fd5380..dbf41c1ad1 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -138,6 +138,14 @@ public: mAStatus = status; mASetFlag = flag; } + void setXStatus(u8 status, u8 flag) { + mXStatus = status; + mXSetFlag = flag; + } + void setYStatus(u8 status, u8 flag) { + mYStatus = status; + mYSetFlag = flag; + } void setBottleStatus(u8 status, u8 flag) { mBottleStatus = status; mBottleSetFlag = flag; @@ -178,8 +186,11 @@ public: J2DGrafContext* getCurrentGrafPort() { return mCurrentGrafPort; } dVibration_c& getVibration() { return mVibration; } void setPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] |= flag; } + void clearPlayerStatus(int param_0, int i, u32 flag) { mPlayerStatus[i] &= ~flag; } + bool checkPlayerStatus(int param_0, int i, u32 flag) { return flag & mPlayerStatus[i]; } BOOL checkCameraAttentionStatus(int i, u32 flag) { return mCameraInfo[i].mCameraAttentionStatus & flag; } s8 getPlayerCameraID(int i) { return mPlayerCameraID[i]; } + dPa_control_c* getParticle() { return mParticle; } void set3DStatus(u8 status, u8 direction, u8 flag) { m3DStatus = status; m3DDirection = direction; @@ -224,7 +235,7 @@ public: /* 0x04DBC */ JKRArchive* mMsgDtArchive[15]; /* 0x04DF8 */ JKRArchive* mMain2DArchive; /* 0x04DFC */ void* field_0x4dfc[2]; - /* 0x04E04 */ void* mParticle; + /* 0x04E04 */ dPa_control_c* mParticle; /* 0x04E08 */ void* mSimpleModel; /* 0x04E0C */ u8 mWindowNum; /* 0x04E0D */ u8 mLayerOld; @@ -326,7 +337,7 @@ public: /* 0x04F23 */ u8 mZSetFlagForce; /* 0x04F24 */ u8 mXStatus; /* 0x04F25 */ u8 mXStatusForce; - /* 0x04F26 */ u8 field_0x4fbe; // related to XStatus + /* 0x04F26 */ u8 mXSetFlag; /* 0x04F27 */ u8 mXSetFlagForce; /* 0x04F28 */ u8 mYStatus; /* 0x04F29 */ u8 mYStatusForce; @@ -462,6 +473,16 @@ void* dComIfG_getStageRes(char const*); void dComLbG_PhaseHandler(request_of_phase_process_class*, int (**param_1)(void*), void*); void dComIfGp_addSelectItemNum(int, s16); BOOL dComIfGs_isOneZoneSwitch(int, int); +u8 dComIfGp_getSelectItem(int); +u8 dComIfGp_TargetWarpPt_get(); +void dComIfGp_TargetWarpPt_set(u8); +BOOL dComIfGp_TransportWarp_check(); +void dComIfGp_setNextStage(char const*, s16, s8, s8, f32, u32, int, s8, s16, int, int); +cXyz& dComIfGs_getWarpPlayerPos(); +const char* dComIfGs_getWarpStageName(); +s16 dComIfGs_getWarpPlayerAngleY(); +s8 dComIfGs_getWarpRoomNo(); +char* dComIfG_getRoomArcName(int); inline void dComIfGp_setRStatus(u8 status, u8 flag) { g_dComIfG_gameInfo.play.setRStatus(status, flag); @@ -716,7 +737,7 @@ inline s16 dComIfGs_getLastWarpMarkPlayerAngleY() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getAngleY(); } -inline s8 dComIfGs_getLastWarpMarkRoomNo() { +inline u8 dComIfGs_getLastWarpMarkRoomNo() { return g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().getRoomNo(); } @@ -776,6 +797,10 @@ inline s8 dComIfGp_getStartStageLayer() { return g_dComIfG_gameInfo.play.getStartStageLayer(); } +/* inline dStage_stageDt_c& dComIfGp_getStage() { + return g_dComIfG_gameInfo.play.getStage(); +} */ + inline roomRead_class* dComIfGp_getStageRoom() { return g_dComIfG_gameInfo.play.getStage().getRoom(); } @@ -1066,4 +1091,76 @@ inline u8 dComIfGs_getLastSceneMode() { return g_dComIfG_gameInfo.info.getRestart().getLastMode(); } +inline u32 dComIfGp_particle_set(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, const csXyz* param_4, const cXyz* param_5, u8 param_6, dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9, const GXColor* param_10, const cXyz* param_11) { + return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, param_11, 1.0f); +} + +inline void dComIfGp_particle_levelEmitterOnEventMove(u32 param_0) { + g_dComIfG_gameInfo.play.getParticle()->forceOnEventMove(param_0); +} + +inline dPa_control_c::level_c::emitter_c* dComIfGp_particle_getEmitter(u32 param_0) { + return g_dComIfG_gameInfo.play.getParticle()->getEmitter(param_0); +} + +inline u32 dComIfGp_particle_setPolyColor(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2, const cXyz* param_3, const dKy_tevstr_c* param_4, const csXyz* param_5, const cXyz* param_6, int param_7, dPa_levelEcallBack* param_8, s8 param_9, const cXyz* param_10) { + return g_dComIfG_gameInfo.play.getParticle()->setPoly(param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10); +} + +inline dRes_info_c* dComIfG_getObjectResInfo(const char* arc_name) { + return g_dComIfG_gameInfo.mResControl.getObjectResInfo(arc_name); +} + +inline void dComIfGp_setXStatus(u8 status, u8 flag) { + g_dComIfG_gameInfo.play.setXStatus(status, flag); +} + +inline void dComIfGp_setYStatus(u8 status, u8 flag) { + g_dComIfG_gameInfo.play.setYStatus(status, flag); +} + +inline BOOL dComIfGp_event_compulsory(void* param_0, const char* param_1, u16 param_2) { + return g_dComIfG_gameInfo.play.getEvent().compulsory(param_0, param_1, param_2); +} + +inline void dComIfGs_setTurnRestart(const cXyz& param_0, s16 param_1, s8 param_2, u32 param_3) { + g_dComIfG_gameInfo.info.getTurnRestart().set(param_0, param_1, param_2, param_3); +} + +inline void dComIfGs_setRestartRoom(const cXyz& param_0, s16 param_1, s8 param_2) { + g_dComIfG_gameInfo.info.getRestart().setRoom(param_0, param_1, param_2); +} + +inline s8 dComIfGs_getRestartRoomNo() { + return g_dComIfG_gameInfo.info.getRestart().getRoomNo(); +} + +inline void dComIfGs_setRestartRoomParam(u32 param) { + g_dComIfG_gameInfo.info.getRestart().setRoomParam(param); +} + +inline void dComIfGp_clearPlayerStatus0(int param_0, u32 flag) { + g_dComIfG_gameInfo.play.clearPlayerStatus(param_0, 0, flag); +} + +inline int* dComIfGp_evmng_getMyIntegerP(int index, char* name) { + return (int*)dComIfGp_getPEvtManager()->getMySubstanceP(index, name, dEvDtData_c::TYPE_INT); +} + +inline char* dComIfGp_evmng_getMyStringP(int index, char* name) { + return (char*)dComIfGp_getPEvtManager()->getMySubstanceP(index, name, dEvDtData_c::TYPE_STRING); +} + +inline f32* dComIfGp_evmng_getMyFloatP(int index, char* name) { + return (f32*)dComIfGp_getPEvtManager()->getMySubstanceP(index, name, dEvDtData_c::TYPE_FLOAT); +} + +inline stage_scls_info_dummy_class* dComIfGp_getStageSclsInfo() { + return g_dComIfG_gameInfo.play.getStage().getSclsInfo(); +} + +inline dStage_roomStatus_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) { + return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_attention.h b/include/d/d_attention.h index ad270ddfb0..a281c1e780 100644 --- a/include/d/d_attention.h +++ b/include/d/d_attention.h @@ -200,12 +200,16 @@ public: dAttCatch_c& getCatghTarget() { return mCatghTarget; } bool chkFlag(u32 flag) { return mFlags & flag; } - bool Lockon() { + BOOL Lockon() { bool chk = true; - if (!LockonTruth() && !chkFlag(0x20000000)) { - chk = false; - } + if (!LockonTruth()) { + if (!chkFlag(0x20000000)) { + chk = false; + } + } return chk; + + //return !LockonTruth() && !chkFlag(0x20000000); } static u8 loc_type_tbl[12]; diff --git a/include/d/d_resorce.h b/include/d/d_resorce.h index 8c038fcdfb..67e81da529 100644 --- a/include/d/d_resorce.h +++ b/include/d/d_resorce.h @@ -91,6 +91,10 @@ public: return getRes(arcName, resName, &mStageInfo[0], ARRAY_SIZE(mStageInfo)); } + dRes_info_c* getObjectResInfo(const char* arcName) { + return getResInfo(arcName, &mObjectInfo[0], ARRAY_SIZE(mObjectInfo)); + } + /* 0x0000 */ dRes_info_c mObjectInfo[0x80]; /* 0x1200 */ dRes_info_c mStageInfo[0x40]; }; // Size: 0x1B00 diff --git a/include/d/d_stage.h b/include/d/d_stage.h index dffffcdc5b..56de78bac7 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -45,7 +45,19 @@ struct stage_stag_info_class { /* 0x2A */ u16 mStageTitleNo; }; // Size: Unknown -struct stage_scls_info_dummy_class {}; +struct stage_scls_info_class { + /* 0x0 */ char mStage[8]; + /* 0x8 */ u8 mStart; + /* 0x9 */ s8 mRoom; + /* 0xA */ s8 field_0xa; + /* 0xB */ s8 field_0xb; + /* 0xC */ s8 mWipe; +}; // Size: 0xD + +struct stage_scls_info_dummy_class { + /* 0x00 */ int numEntries; + /* 0x04 */ stage_scls_info_class* mEntries; +}; struct stage_pure_lightvec_info_class {}; @@ -647,6 +659,7 @@ static int dStage_fieldMapFiliInfo2Init(dStage_dt_c*, void*, int, void*); static int dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*); u8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); +void dStage_changeScene(int, f32, u32, s8, s16, int); inline u8 dStage_roomRead_dt_c_GetLoadRoomIndex(u8 param_0) { return param_0 & 0x3f; @@ -656,4 +669,24 @@ inline u32 dStage_stagInfo_GetSTType(stage_stag_info_class* pstag) { return pstag->field_0x0c >> 0x10 & 7; } +inline u32 dStage_stagInfo_GetEscapeWarp(stage_stag_info_class* pstag) { + return pstag->field_0x10 >> 0x18; +} + +inline s8 dStage_sclsInfo_getSceneLayer(stage_scls_info_class* p_info) { + return p_info->field_0xb & 0xF; +} + +inline s8 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) { + return p_info->mWipe; +} + +inline s8 dStage_sclsInfo_getWipeTime(stage_scls_info_class* p_info) { + return p_info->field_0xb >> 5; +} + +inline s8 dStage_sclsInfo_getTimeH(stage_scls_info_class* p_info) { + return (p_info->field_0xa >> 4) | (p_info->field_0xb & 16); +} + #endif /* D_D_STAGE_H */ diff --git a/include/d/event/d_event.h b/include/d/event/d_event.h index b541927041..6fdb8b79a4 100644 --- a/include/d/event/d_event.h +++ b/include/d/event/d_event.h @@ -60,7 +60,7 @@ public: void skipper(); void Step(); void moveApproval(void*); - bool compulsory(void*, char const*, u16); + BOOL compulsory(void*, char const*, u16); void remove(); void* getStageEventDt(); // ret type probably wrong, fix later void sceneChange(int); @@ -82,6 +82,7 @@ public: u16 chkFlag2(u16 flag) { return flag & mFlag2; } bool runCheck() { return field_0xe5 != 0; } u16 chkEventFlag(u16 flag) { return flag & mEventFlag; } + u8 getMode() const { return mMode; } public: /* 0x000 */ u8 field_0x0[4]; diff --git a/include/d/event/d_event_data.h b/include/d/event/d_event_data.h index 49f4aeea78..b1517d7bfa 100644 --- a/include/d/event/d_event_data.h +++ b/include/d/event/d_event_data.h @@ -5,25 +5,80 @@ #include "d/save/d_save.h" #include "dolphin/types.h" -struct event_binary_data_header {}; - -struct dEvDtData_c {}; +struct event_binary_data_header { + /* 0x00 */ u32 eventTop; // offset to Event chunk + /* 0x04 */ s32 eventNum; + /* 0x08 */ u32 staffTop; // offset to Staff chunk + /* 0x0C */ s32 staffNum; + /* 0x10 */ u32 cutTop; // offset to Cut chunk + /* 0x14 */ s32 cutNum; + /* 0x18 */ u32 dataTop; // offset to Data chunk + /* 0x1C */ s32 dataNum; + /* 0x20 */ u32 fDataTop; // offset to FData chunk + /* 0x24 */ s32 fDataNum; + /* 0x28 */ u32 iDataTop; // offset to IData chunk + /* 0x2C */ s32 iDataNum; + /* 0x30 */ u32 sDataTop; // offset to SData chunk + /* 0x34 */ s32 sDataNum; + /* 0x38 */ u8 unk[8]; +}; // Size: 0x40 + +class dEvDtData_c { +public: + enum DataType { + /* 0x0 */ TYPE_FLOAT, + /* 0x1 */ TYPE_VEC, + /* 0x3 */ TYPE_INT = 3, + /* 0x4 */ TYPE_STRING + }; + + int getIndex() { return mDataIndex; } + int getNumber() { return mNumber; } + int getType() { return mType; } + int getNext() { return mNext; } + char* getName() { return mName; } + + /* 0x00 */ char mName[32]; + /* 0x20 */ u32 mIndex; + /* 0x24 */ int mType; + /* 0x28 */ int mDataIndex; + /* 0x2C */ int mNumber; + /* 0x30 */ int mNext; + /* 0x34 */ u8 field_0x34[12]; +}; // Size: 0x40 class dEvDtCut_c { public: void startCheck(); + int getDataTop() { return mDataTop; } + private: - /* 0x00 */ u8 field_0x0[0x20]; + /* 0x00 */ char mName[32]; /* 0x20 */ u32 mTagID; - /* 0x28 */ int field_0x28[3]; + /* 0x24 */ u32 mIndex; + /* 0x28 */ int mFlags[3]; /* 0x34 */ u32 mFlagId; - /* 0x38 */ u32 mDataTop; - /* 0x3C */ u32 mNext; -}; + /* 0x38 */ int mDataTop; + /* 0x3C */ int mNext; + /* 0x40 */ u8 field_0x40[0x10]; +}; // Size: 0x50 class dEvDtStaff_c { public: + enum StaffType { + /* 0x0 */ TYPE_DEFAULT, + /* 0x1 */ TYPE_ALL, + /* 0x2 */ TYPE_CAMERA, + /* 0x4 */ TYPE_TIMEKEEPER = 4, + /* 0x6 */ TYPE_DIRECTOR = 6, + /* 0x7 */ TYPE_MESSAGE, + /* 0x8 */ TYPE_SOUND, + /* 0x9 */ TYPE_LIGHT, + /* 0xB */ TYPE_PACKAGE = 11, + /* 0xC */ TYPE_CREATE, + }; + void specialProc_WaitStart(int); void specialProc_WaitProc(int); void specialProc(); @@ -38,40 +93,52 @@ public: void specialProcTimekeeper(); void specialProcEffect(); + int getType() { return mType; } + char* getName() { return mName; } + int getCurrentCut() { return mCurrentCut; } + int getStartCut() { return mStartCut; } + private: - /* 0x00 */ u8 field_0x00[4]; - /* 0x04 */ void* field_0x04; - /* 0x08 */ u32 field_0x08; - /* 0x0C */ int field_0x0c; - /* 0x10 */ u32 field_0x10; - /* 0x14 */ u8 field_0x14[0xC]; + /* 0x00 */ char mName[32]; /* 0x20 */ u32 mTagID; - /* 0x24 */ u32 field_0x24; - /* 0x28 */ u8 field_0x28[4]; + /* 0x24 */ u32 mIndex; + /* 0x28 */ u32 mFlagID; /* 0x2C */ int mType; - /* 0x30 */ u32 mStartCut; + /* 0x30 */ int mStartCut; /* 0x34 */ u8 field_0x34[2]; /* 0x36 */ s16 field_0x36; /* 0x38 */ int mCurrentCut; /* 0x3C */ u32 field_0x3c; - /* 0x40 */ u8 field_0x40; - /* 0x41 */ u8 field_0x41; + /* 0x40 */ bool field_0x40; + /* 0x41 */ bool field_0x41; /* 0x42 */ s16 field_0x42; /* 0x44 */ s16 mSoundWait; - /* 0x46 */ u8 field_0x46[4]; - /* 0x4A */ int field_0x4a; -}; + /* 0x46 */ u8 field_0x46[10]; +}; // Size: 0x50 class dEvDtEvent_c { public: void finishCheck(); void forceFinish(); void specialStaffProc(dEvDtStaff_c*); - - /* 0x00 */ s32 mEventNum; - /* 0x04 */ u8 field_0x4[0xA0]; - /* 0xA4 */ int field_0xa4; -}; + int getNStaff() { return mNStaff; } + int getStaff(int idx) { return mStaff[idx]; } + + /* 0x00 */ char mName[32]; + /* 0x20 */ u32 mIndex; + /* 0x24 */ int field_0x24; + /* 0x28 */ int mPriority; + /* 0x2C */ int mStaff[20]; + /* 0x7C */ int mNStaff; + /* 0x80 */ u8 field_0x80[4]; + /* 0x84 */ int field_0x84; + /* 0x88 */ int field_0x88[2]; + /* 0x90 */ int field_0x90; + /* 0x94 */ bool mPlaySound; + /* 0x95 */ u8 field_0x95[0xF]; + /* 0xA4 */ int mEventState; + /* 0xA8 */ u8 field_0xa8[8]; +}; // Size: 0xB0 class dEvDtFlag_c { public: @@ -91,23 +158,56 @@ class dEvDtBase_c { public: dEvDtBase_c(); ~dEvDtBase_c() {} - void init(); - void init(char*, int); + int init(); + int init(char*, int); void advanceCut(dEvDtEvent_c*); void advanceCutLocal(dEvDtStaff_c*); event_binary_data_header* getHeaderP() { return mHeaderP; } - s32 getEventNum() { return mEventP->mEventNum; } + dEvDtStaff_c* getStaffP(int i) { return &mStaffP[i]; } + dEvDtEvent_c* getEventP(int i) { return &mEventP[i]; } + dEvDtData_c* getDataP(int i) { return &mDataP[i]; } + dEvDtCut_c* getCutP(int i) { return &mCutP[i]; } + int getStaffCurrentCut(int i) { return mStaffP[i].getCurrentCut(); } + dEvDtCut_c* getCutStaffCurrentCutP(int i) { return getCutP(getStaffCurrentCut(i)); } + int getStaffStartCut(int i) { return mStaffP[i].getStartCut(); } + dEvDtCut_c* getCutStaffStartCutP(int i) { return getCutP(getStaffStartCut(i)); } + int* getIDataP(int i) { return &mIDataP[i]; } + f32* getFDataP(int i) { return &mFDataP[i]; } + char* getSDataP(int i) { return &mSDataP[i]; } + u32 getEventTop() { return mHeaderP->eventTop; } + s32 getEventNum() { return mHeaderP->eventNum; } + u32 getStaffTop() { return mHeaderP->staffTop; } + s32 getStaffNum() { return mHeaderP->staffNum; } + u32 getCutTop() { return mHeaderP->cutTop; } + s32 getCutNum() { return mHeaderP->cutNum; } + u32 getDataTop() { return mHeaderP->dataTop; } + s32 getDataNum() { return mHeaderP->dataNum; } + u32 getFDataTop() { return mHeaderP->fDataTop; } + s32 getFDataNum() { return mHeaderP->fDataNum; } + u32 getIDataTop() { return mHeaderP->iDataTop; } + s32 getIDataNum() { return mHeaderP->iDataNum; } + u32 getSDataTop() { return mHeaderP->sDataTop; } + s32 getSDataNum() { return mHeaderP->sDataNum; } s32 roomNo() { return mRoomNo; } + void setHeaderP(event_binary_data_header* p_header) { mHeaderP = p_header; } + void setEventP(dEvDtEvent_c* p_event) { mEventP = p_event; } + void setStaffP(dEvDtStaff_c* p_staff) { mStaffP = p_staff; } + void setCutP(dEvDtCut_c* p_cut) { mCutP = p_cut; } + void setDataP(dEvDtData_c* p_data) { mDataP = p_data; } + void setFDataP(f32* p_fdata) { mFDataP = p_fdata; } + void setIDataP(int* p_idata) { mIDataP = p_idata; } + void setSDataP(char* p_sdata) { mSDataP = p_sdata; } + private: /* 0x00 */ event_binary_data_header* mHeaderP; /* 0x04 */ dEvDtEvent_c* mEventP; /* 0x08 */ dEvDtStaff_c* mStaffP; /* 0x0C */ dEvDtCut_c* mCutP; /* 0x10 */ dEvDtData_c* mDataP; - /* 0x14 */ float* mFDataP; - /* 0x18 */ s32* mIDataP; + /* 0x14 */ f32* mFDataP; + /* 0x18 */ int* mIDataP; /* 0x1C */ char* mSDataP; /* 0x20 */ s32 mRoomNo; }; // Size = 0x24 diff --git a/include/d/event/d_event_manager.h b/include/d/event/d_event_manager.h index 3e68b3a741..7427c80c4d 100644 --- a/include/d/event/d_event_manager.h +++ b/include/d/event/d_event_manager.h @@ -22,7 +22,7 @@ private: class dEvent_manager_c { public: - void getSubstance(dEvDtData_c*, int); + void* getSubstance(dEvDtData_c*, int); dEvent_manager_c(); ~dEvent_manager_c() {} int create(); @@ -52,8 +52,8 @@ public: void getIsAddvance(int); void getMyActIdx(int, char const* const*, int, int, int); void getMyNowCutName(int); - void getMyDataP(int, char const*, int); - void getMySubstanceP(int, char const*, int); + dEvDtData_c* getMyDataP(int, char const*, int); + void* getMySubstanceP(int, char const*, int); void getMySubstanceNum(int, char const*); void cutEnd(int); void getEventPrio(fopAc_ac_c*, s16); @@ -63,11 +63,13 @@ public: void getGoal(); void getRunEventName(); void specialCast_Shutter(s16, int); - void specialCast(char const*, int); + fopAc_ac_c* specialCast(char const*, int); void ChkPresentEnd(); void checkStartDemo(); void setStartDemo(int param_0) { mEventException.setStartDemo(param_0); } + void setCameraPlay(int status) { mCameraPlay = status; } + dEvDtBase_c& getBase() { return mEventList[field_0x1b4]; } private: /* 0x0000 */ dEvDtBase_c mEventList[11]; @@ -77,7 +79,7 @@ private: /* 0x01A8 */ u8 field_0x1a8[2]; /* 0x01AA */ s16 field_0x1aa; /* 0x01AC */ u8 field_0x1ac[4]; - /* 0x01B0 */ u32 field_0x1b0; + /* 0x01B0 */ int mRoomNo; /* 0x01B4 */ u32 field_0x1b4; /* 0x01B8 */ u32 field_0x1b8; /* 0x01BC */ dEvDtFlag_c mFlags; diff --git a/include/d/kankyo/d_kankyo.h b/include/d/kankyo/d_kankyo.h index 42c1e9ead2..1c747881a2 100644 --- a/include/d/kankyo/d_kankyo.h +++ b/include/d/kankyo/d_kankyo.h @@ -12,6 +12,7 @@ #include "m_Do/m_Do_ext.h" void dKankyo_DayProc(); +void dKy_set_nexttime(f32); struct LIGHT_INFLUENCE { /* 800CFC7C */ ~LIGHT_INFLUENCE(); @@ -663,5 +664,6 @@ public: STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880); bool dKy_darkworld_stage_check(char const*, int); +BOOL dKy_withwarp_capture_check(); #endif /* D_KANKYO_D_KANKYO_H */ diff --git a/include/d/meter/d_meter2_info.h b/include/d/meter/d_meter2_info.h index 1a4884dec7..95ca9ab707 100644 --- a/include/d/meter/d_meter2_info.h +++ b/include/d/meter/d_meter2_info.h @@ -132,6 +132,11 @@ public: dMw_c* getMenuWindowClass() { return mMenuWindowClass; } void offUseButton(int pButton) { mUseButton &= ~(u16)pButton; } u16 getOilGaugeBackUp() { return mOilGaugeBackUp; } + u8 getWarpStatus() { return mWarpStatus; } + u8 getWarpRoomNo() { return mWarpInfo.mRoomNo; } + u8 getWarpPlayerNo() { return mWarpInfo.mWarpPlayerNo; } + cXyz& getWarpPos() { return mWarpInfo.mPosition; } + const char* getWarpStageName() { return mWarpInfo.mStageName; } private: /* 0x04 */ u8 unk4[4]; @@ -252,4 +257,24 @@ inline void dMeter2Info_setSaveStageName(const char* name) { g_meter2_info.setSaveStageName(name); } +inline u8 dMeter2Info_getWarpStatus() { + return g_meter2_info.getWarpStatus(); +} + +inline u8 dMeter2Info_getWarpRoomNo() { + return g_meter2_info.getWarpRoomNo(); +} + +inline u8 dMeter2Info_getWarpPlayerNo() { + return g_meter2_info.getWarpPlayerNo(); +} + +inline cXyz& dMeter2Info_getWarpPos() { + return g_meter2_info.getWarpPos(); +} + +inline const char* dMeter2Info_getWarpStageName() { + return g_meter2_info.getWarpStageName(); +} + #endif /* D_METER_D_METER2_INFO_H */ diff --git a/include/d/particle/d_particle.h b/include/d/particle/d_particle.h index 5bb102e092..f6b5efdeb1 100644 --- a/include/d/particle/d_particle.h +++ b/include/d/particle/d_particle.h @@ -7,33 +7,177 @@ class JPAEmitterCallBack { public: - /* 80050368 */ void execute(JPABaseEmitter*); - /* 8005036C */ void draw(JPABaseEmitter*); - /* 80050370 */ void drawAfter(JPABaseEmitter*); - /* 80050374 */ void executeAfter(JPABaseEmitter*); - /* 8027E6A4 */ ~JPAEmitterCallBack(); + /* 8027E6A4 */ virtual ~JPAEmitterCallBack() = 0; + /* 80050368 */ virtual void execute(JPABaseEmitter*); + /* 80050374 */ virtual void executeAfter(JPABaseEmitter*); + /* 8005036C */ virtual void draw(JPABaseEmitter*); + /* 80050370 */ virtual void drawAfter(JPABaseEmitter*); +}; + +struct JPAResourceManager { + /* 80273E10 */ JPAResourceManager(void const*, JKRHeap*); + /* 80273EA8 */ void checkUserIndexDuplication(u16) const; + /* 80273EEC */ void swapTexture(ResTIMG const*, char const*); + /* 80273FCC */ void getResUserWork(u16) const; }; class dPa_levelEcallBack : public JPAEmitterCallBack { public: - /* 8004FB18 */ ~dPa_levelEcallBack(); - /* 8004FB8C */ void cleanup(); + /* 8004FB18 */ virtual ~dPa_levelEcallBack(); + /* 8004FB8C */ virtual void cleanup(); }; class dPa_hermiteEcallBack_c : public dPa_levelEcallBack { public: /* 8004F6B8 */ void setOldPosP(cXyz const*, cXyz const*); - /* 8004F6C4 */ void executeAfter(JPABaseEmitter*); - /* 8004FABC */ void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); - /* 8004FCC8 */ ~dPa_hermiteEcallBack_c(); + + /* 8004FCC8 */ virtual ~dPa_hermiteEcallBack_c(); + /* 8004F6C4 */ virtual void executeAfter(JPABaseEmitter*); + /* 8004FABC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); private: - /* 0x00 */ void* vtable; - /* 0x04 */ float mRate; + /* 0x04 */ f32 mRate; /* 0x08 */ int mMaxCnt; /* 0x0C */ cXyz* field_0xc; /* 0x10 */ cXyz* field_0x10; /* 0x14 */ cXyz* field_0x14; }; +class mDoDvdThd_toMainRam_c; +class cBgS_PolyInfo; +class JPAEmitterManager; +struct JPADrawInfo; + +class dPa_simpleEcallBack : public JPAEmitterCallBack { +public: + /* 8004ADF4 */ dPa_simpleEcallBack(); + /* 8004AF98 */ void create(JPAEmitterManager*, u16, u8); + /* 8004B064 */ void createEmitter(JPAEmitterManager*); + /* 8004B168 */ void set(cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, _GXColor const&, + int, f32); + + /* 8004FC08 */ virtual ~dPa_simpleEcallBack(); + /* 8004AE1C */ virtual void executeAfter(JPABaseEmitter*); + /* 8004AF94 */ virtual void draw(JPABaseEmitter*); + + /* 0x04 */ JPABaseEmitter* mEmitter; + /* 0x08 */ u16 mID; + /* 0x0A */ u8 field_0xa; + /* 0x0C */ s16 field_0xc; + /* 0x10 */ void* mData; +}; // Size: 0x14 + +class dPa_control_c { +public: + class level_c { + public: + class emitter_c { + public: + /* 8004B504 */ void onActive(); + /* 8004B544 */ void entry(u32, u16, JPABaseEmitter*, dPa_levelEcallBack*); + /* 8004B5AC */ void cleanup(); + /* 8004FBFC */ emitter_c(); + + private: + /* 0x00 */ u32 mId; + /* 0x04 */ u16 mNameId; + /* 0x06 */ u8 mStatus; + /* 0x08 */ JPABaseEmitter* mEmitter; + /* 0x0C */ dPa_levelEcallBack* mCallback; + /* 0x10 */ emitter_c* mPre; + /* 0x14 */ emitter_c* mNext; + }; // Size: 0x18 + + /* 8004B688 */ level_c(); + /* 8004B7A8 */ void execute(); + /* 8004B6F8 */ void execute(dPa_control_c::level_c::emitter_c*); + /* 8004B808 */ void cleanup(); + /* 8004B874 */ void get(u32); + /* 8004B8B4 */ void forceOnEventMove(u32); + /* 8004B8E8 */ void allForceOnEventMove(); + /* 8004B918 */ emitter_c* getEmitter(u32); + /* 8004B94C */ void entry(u16, JPABaseEmitter*, dPa_levelEcallBack*); + /* 8004BA40 */ void addTable(dPa_control_c::level_c::emitter_c*); + /* 8004BA74 */ void cutTable(dPa_control_c::level_c::emitter_c*); + + /* 0x000 */ u32 field_0x0; + /* 0x004 */ u8 field_0x4; + /* 0x005 */ u8 field_0x5; + /* 0x006 */ u8 field_0x6; + /* 0x008 */ emitter_c mEmitter[0x80]; + /* 0xC08 */ + }; + + /* 8004BACC */ dPa_control_c(); + /* 8004BB70 */ void getRM_ID(u16); + /* 8004BB78 */ void createCommon(void const*); + /* 8004BCDC */ void createRoomScene(); + /* 8004BDFC */ void readScene(u8, mDoDvdThd_toMainRam_c**); + /* 8004BEB0 */ void createScene(void const*); + /* 8004BF3C */ void removeRoomScene(bool); + /* 8004BFD4 */ void removeScene(bool); + /* 8004C054 */ void cleanup(); + /* 8004C078 */ void calc3D(); + /* 8004C0EC */ void calc2D(); + /* 8004C134 */ void calcMenu(); + /* 8004C188 */ void draw(JPADrawInfo*, u8); + /* 8004C218 */ void setHitMark(u16, fopAc_ac_c*, cXyz const*, csXyz const*, cXyz const*, u32); + /* 8004C838 */ void setWaterRipple(u32*, cBgS_PolyInfo&, cXyz const*, f32, dKy_tevstr_c const*, + cXyz const*, s8); + /* 8004CA90 */ void set(u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, cXyz const*, + u8, dPa_levelEcallBack*, s8, _GXColor const*, _GXColor const*, + cXyz const*, f32); + /* 8004D4CC */ u32 set(u32, u8, u16, cXyz const*, dKy_tevstr_c const*, csXyz const*, + cXyz const*, u8, dPa_levelEcallBack*, s8, _GXColor const*, + _GXColor const*, cXyz const*, f32); + /* 8004CF90 */ void getPolyColor(cBgS_PolyInfo&, int, _GXColor*, _GXColor*, u8*, f32*); + /* 8004D6A4 */ u32 setPoly(u32, u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, + csXyz const*, cXyz const*, int, dPa_levelEcallBack*, s8, + cXyz const*); + /* 8004D068 */ void setPoly(u16, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, csXyz const*, + cXyz const*, int, dPa_levelEcallBack*, s8, cXyz const*); + /* 8004D128 */ void newSimple(u16, u8, u32*); + /* 8004D1B8 */ void setSimple(u16, cXyz const*, dKy_tevstr_c const*, u8, _GXColor const&, + _GXColor const&, int, f32); + /* 8004D23C */ void getSimple(u16); + /* 8004D770 */ void setStopContinue(u32); + /* 8004D7C4 */ void setSimpleFoot(u32, u32*, cBgS_PolyInfo&, cXyz const*, dKy_tevstr_c const*, + int, csXyz const*, cXyz const*, dPa_levelEcallBack*, s8, + cXyz const*); + /* 8004D988 */ void setCommonPoly(u32*, cBgS_PolyInfo*, cXyz const*, cXyz const*, + dKy_tevstr_c const*, u32, u32, csXyz const*, cXyz const*, s8); + + void forceOnEventMove(u32 param_0) { field_0x210.forceOnEventMove(param_0); } + level_c::emitter_c* getEmitter(u32 param_0) { return field_0x210.getEmitter(param_0); } + u32 setNormal(u32 param_0, u16 param_1, const cXyz* param_2, const dKy_tevstr_c* param_3, const csXyz* param_4, const cXyz* param_5, u8 param_6, dPa_levelEcallBack* param_7, s8 param_8, const GXColor* param_9, const GXColor* param_10, const cXyz* param_11, f32 param_12) { + return set(param_0, 0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, param_10, param_11, param_12); + } + + static u8 mTsubo[64]; + static u8 mLifeBall[24]; + static u8 mWindViewMatrix[48]; + static u8 mEmitterMng[4]; + static u8 mWaterBubblePcallBack[4]; + static u8 mFsenthPcallBack[4]; + static u8 mLight8EcallBack[4]; + static u8 mLight8PcallBack[4]; + static u8 m_b_Light8EcallBack[4]; + static u8 m_b_Light8PcallBack[4]; + static u8 m_d_Light8EcallBack[4]; + static u8 m_d_Light8PcallBack[4]; + static u8 mParticleTracePCB[4 + 4 /* padding */]; + +private: + /* 0x000 */ JKRSolidHeap* mHeap; + /* 0x004 */ JPAResourceManager* mCommonResMng; + /* 0x008 */ JKRExpHeap* m_resHeap; + /* 0x00C */ JKRSolidHeap* m_sceneHeap; + /* 0x010 */ void* m_sceneRes; + /* 0x014 */ JPAResourceManager* mSceneResMng; + /* 0x018 */ u8 field_0x18; + /* 0x019 */ u8 field_0x19; + /* 0x01C */ dPa_simpleEcallBack field_0x1c[25]; + /* 0x210 */ level_c field_0x210; +}; + #endif /* D_PARTICLE_D_PARTICLE_H */ diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index 91977e0be3..217ba4c419 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -919,8 +919,10 @@ class dSv_restart_c { public: void setRoom(const cXyz&, s16, s8); + void setRoomParam(u32 param) { mRoomParam = param; } s16 getStartPoint() const { return mStartPoint; } u32 getLastMode() const { return mLastMode; } + s8 getRoomNo() const { return mRoomNo; } private: /* 0x00 */ s8 mRoomNo; @@ -1007,6 +1009,7 @@ public: dSv_player_c& getPlayer() { return mSavedata.getPlayer(); } dSv_event_c& getTmp() { return mTmp; } dSv_restart_c& getRestart() { return mRestart; } + dSv_turnRestart_c& getTurnRestart() { return mTurnRestart; } dSv_event_c& getEvent() { return mSavedata.getEvent(); } s64 getStartTime() { return mStartTime; } s64 getSaveTotalTime() { return mSaveTotalTime; } diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 92a42a42dc..dc72b471b2 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -102,6 +102,10 @@ inline u32 fopAcM_GetParam(const void* pActor) { return fpcM_GetParam(pActor); } +inline void fopAcM_SetParam(void* p_actor, u32 param) { + fpcM_SetParam(p_actor, param); +} + inline u8 fopAcM_GetGroup(const fopAc_ac_c* p_actor) { return p_actor->mGroup; } @@ -244,7 +248,7 @@ static const char* fopAcM_getProcNameString(const fopAc_ac_c*); // s32 fopAcM_findObjectCB(const fopAc_ac_c*, void*); s32 fopAcM_searchFromName(const char*, u32, u32); s32 fopAcM_findObject4EventCB(fopAc_ac_c*, void*); -s32 fopAcM_searchFromName4Event(const char*, s16); +fopAc_ac_c* fopAcM_searchFromName4Event(const char*, s16); s32 fopAcM_getWaterY(const cXyz*, f32*); void fpoAcM_relativePos(const fopAc_ac_c*, const cXyz*, cXyz*); s32 fopAcM_getWaterStream(const cXyz*, const cBgS_PolyInfo&, cXyz*, int*, int); diff --git a/include/f_pc/f_pc_manager.h b/include/f_pc/f_pc_manager.h index 1d13f495d3..772db2e504 100644 --- a/include/f_pc/f_pc_manager.h +++ b/include/f_pc/f_pc_manager.h @@ -22,6 +22,10 @@ inline u32 fpcM_GetParam(const void* pActor) { return ((base_process_class*)pActor)->mParameters; } +inline void fpcM_SetParam(void* p_actor, u32 param) { + ((base_process_class*)p_actor)->mParameters = param; +} + void fpcM_Draw(void* pProc); s32 fpcM_DrawIterater(fpcM_DrawIteraterFunc pFunc); void fpcM_Execute(void* pProc); diff --git a/include/m_Do/m_Do_ext.h b/include/m_Do/m_Do_ext.h index efb15dbf7a..504b3349ec 100644 --- a/include/m_Do/m_Do_ext.h +++ b/include/m_Do/m_Do_ext.h @@ -15,61 +15,57 @@ public: /* 8000D428 */ void play(); private: - J3DFrameCtrl frame_control; -}; + /* 0x0 */ J3DFrameCtrl mFrameCtrl; +}; // Size: 0x14 -class mDoExt_btkAnm { +class mDoExt_btkAnm : public mDoExt_baseAnm { public: - mDoExt_btkAnm(void) { field_0x14 = 0; } + mDoExt_btkAnm(void) { mBtkAnm = 0; } /* 8000D63C */ void init(J3DMaterialTable*, J3DAnmTextureSRTKey*, int, int, f32, s16, s16); /* 8000D6D8 */ void entry(J3DMaterialTable*, f32); private: - mDoExt_baseAnm base_anm; - u32 field_0x14; -}; + /* 0x14 */ u32 mBtkAnm; +}; // Size: 0x18 STATIC_ASSERT(sizeof(mDoExt_btkAnm) == 0x18); -class mDoExt_brkAnm { +class mDoExt_brkAnm : public mDoExt_baseAnm { public: - mDoExt_brkAnm(void) { field_0x14 = 0; } + mDoExt_brkAnm(void) { mBrkAnm = 0; } /* 8000D70C */ void init(J3DMaterialTable*, J3DAnmTevRegKey*, int, int, f32, s16, s16); /* 8000D7A8 */ void entry(J3DMaterialTable*, f32); private: - mDoExt_baseAnm mDoExt_baseAnm; - u32 field_0x14; -}; + /* 0x14 */ u32 mBrkAnm; +}; // Size: 0x18 STATIC_ASSERT(sizeof(mDoExt_brkAnm) == 0x18); -class mDoExt_bpkAnm { +class mDoExt_bpkAnm : public mDoExt_baseAnm { public: - mDoExt_bpkAnm(void) { field_0x14 = 0; } + mDoExt_bpkAnm(void) { mBpkAnm = 0; } /* 8000D47C */ void init(J3DMaterialTable*, J3DAnmColor*, int, int, f32, s16, s16); /* 8000D518 */ void entry(J3DMaterialTable*, f32); private: - mDoExt_baseAnm mDoExt_baseAnm; - u32 field_0x14; -}; + /* 0x14 */ u32 mBpkAnm; +}; // Size: 0x18 STATIC_ASSERT(sizeof(mDoExt_bpkAnm) == 0x18); -class mDoExt_bckAnm { +class mDoExt_bckAnm : public mDoExt_baseAnm { public: - mDoExt_bckAnm(void) { field_0x18 = 0; } + mDoExt_bckAnm(void) { mAnm = 0; } /* 8000D7DC */ void init(J3DAnmTransform*, int, int, f32, s16, s16, bool); /* 8000D990 */ void changeBckOnly(J3DAnmTransform*); /* 8000D9CC */ void entry(J3DModelData*, f32); /* 8000D9E8 */ void entryJoint(J3DModelData*, u16, f32); private: - mDoExt_baseAnm base_anm; - u8 field_0x14[4]; - u32 field_0x18; -}; // Size = 0x1C + /* 0x14 */ u32 mBckAnm; + /* 0x18 */ u32 mAnm; +}; // Size: 0x1C STATIC_ASSERT(sizeof(mDoExt_bckAnm) == 0x1C); @@ -77,8 +73,6 @@ class J3DTransformInfo; class mDoExt_McaMorfCallBack1_c { public: -private: - /*void* vtable;*/ virtual void execute(u16, J3DTransformInfo*) = 0; }; @@ -88,11 +82,69 @@ public: /* 80140E2C */ mDoExt_AnmRatioPack(); void setRatio(f32 ratio) { mRatio = ratio; } + J3DAnmTransform* getAnmTransform() { return mAnmTransform; } private: /* 0x0 */ f32 mRatio; /* 0x4 */ J3DAnmTransform* mAnmTransform; -}; // Size = 0x8 +}; // Size: 0x8 + +class mDoExt_invJntPacket : public J3DPacket { +public: + /* 8000E654 */ mDoExt_invJntPacket(); + + /* 80012220 */ virtual void draw(); + /* 8000E5F8 */ virtual ~mDoExt_invJntPacket(); + +private: + /* 0x10 */ J3DModel* field_0x10; + /* 0x14 */ u16 field_0x14; + /* 0x16 */ u8 field_0x16; +}; // Size: 0x18 + +class mDoExt_invisibleModel { +public: + /* 8000E53C */ void create(J3DModel*, u8); + /* 8000E6C8 */ void entryJoint(cXyz*); + /* 8000E7C0 */ void entryDL(cXyz*); + + /* 0x0 */ J3DModel* mModel; + /* 0x4 */ mDoExt_invJntPacket* field_0x4; +}; + +class mDoExt_morf_c : public J3DMtxCalcNoAnm<J3DMtxCalcCalcTransformMaya, J3DMtxCalcJ3DSysInitMaya> { +public: + /* 8000F950 */ mDoExt_morf_c(); + /* 8000FB7C */ void setMorf(f32); + /* 8000FBC0 */ void frameUpdate(); + + /* 8000FAE8 */ virtual ~mDoExt_morf_c(); + +private: + /* 0x04 */ u32 field_0x4; + /* 0x08 */ u32 mAnm; + /* 0x0C */ J3DFrameCtrl mFrameCtrl; + /* 0x20 */ u32 field_0x20; + /* 0x24 */ u32 field_0x24; +}; + +class mDoExt_MtxCalcOldFrame { +public: + /* 8000F848 */ void initOldFrameMorf(f32, u16, u16); + /* 8000F8CC */ void decOldFrameMorfCounter(); + +private: + /* 0x00 */ bool mOldFrameFlg; + /* 0x04 */ f32 mOldFrameMorfCounter; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 mOldFrameRate; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ u16 mOldFrameStartJoint; + /* 0x1A */ u16 mOldFrameEndJoint; + /* 0x1C */ J3DTransformInfo* mOldFrameTransInfo; + /* 0x20 */ Quaternion* mOldFrameQuaternion; +}; // Size: 0x24 JKRSolidHeap* mDoExt_createSolidHeapFromGame(u32, u32); void mDoExt_destroySolidHeap(JKRSolidHeap*); diff --git a/include/m_Do/m_Do_mtx.h b/include/m_Do/m_Do_mtx.h index 7eaa3aa2e2..79c09b2fbf 100644 --- a/include/m_Do/m_Do_mtx.h +++ b/include/m_Do/m_Do_mtx.h @@ -61,4 +61,10 @@ public: /* 0x118 */ mDoMtx_quatStack_c* field_0x118; }; // Size: 0x11C +inline void mDoMtx_multVecZero(MtxP param_0, Vec* param_1) { + param_1->x = param_0[0][3]; + param_1->y = param_0[1][3]; + param_1->z = param_0[2][3]; +} + #endif /* M_DO_M_DO_MTX_H */ diff --git a/include/rel/d/a/d_a_crod/d_a_crod.h b/include/rel/d/a/d_a_crod/d_a_crod.h index 4ef24817a3..47f72e02a4 100644 --- a/include/rel/d/a/d_a_crod/d_a_crod.h +++ b/include/rel/d/a/d_a_crod/d_a_crod.h @@ -3,9 +3,11 @@ #include "f_op/f_op_actor.h" #include "f_op/f_op_actor_mng.h" +#include "d/cc/d_cc_d.h" +#include "d/a/d_a_player.h" #include "dolphin/types.h" -class daCrod_c { +class daCrod_c : public fopAc_ac_c { public: /* 80141A94 */ void setControllActorData(); /* 804A2E38 */ void createHeap(); @@ -23,6 +25,31 @@ public: static fopAc_ac_c* makeIronBallDummy(fopAc_ac_c* p_actor) { return (fopAc_ac_c*)fopAcM_fastCreate(0x2F4, 6, &p_actor->mCurrent.mPosition, fopAcM_GetRoomNo(p_actor), NULL, NULL, -1, NULL, NULL); } -}; + + fopAc_ac_c* getControllActor() { + return mControllActor.getActor(); + } + + fopAc_ac_c* getCameraActor() { + return mCameraActor.getActor(); + } + + void setThrow() { fopAcM_SetParam(this, 2); } + +private: + /* 0x568 */ J3DModel* field_568; + /* 0x56C */ mDoExt_bckAnm field_0x56c; + /* 0x588 */ J3DAnmTevRegKey* field_0x588; + /* 0x58C */ J3DAnmTextureSRTKey* field_0x58c; + /* 0x590 */ dCcD_Stts field_0x590; + /* 0x5CC */ dCcD_Cps field_0x5cc; + /* 0x710 */ LIGHT_INFLUENCE field_0x710; + /* 0x730 */ u8 field_0x730; + /* 0x731 */ u8 field_0x731; + /* 0x732 */ u8 field_0x732; + /* 0x734 */ cXyz field_0x734; + /* 0x740 */ daPy_actorKeep_c mControllActor; + /* 0x748 */ daPy_actorKeep_c mCameraActor; +}; // Size: 0x750 #endif /* D_A_CROD_H */ diff --git a/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h b/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h index 25408550ad..49c654ce50 100644 --- a/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h +++ b/include/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h @@ -2,5 +2,14 @@ #define D_A_KYTAG05_H #include "dolphin/types.h" +#include "f_op/f_op_actor.h" + +class kytag05_class : public fopAc_ac_c { +public: + u8 getSceneListID() const { return mSceneListID; } + + /* 0x568 */ u8 field_0x568[5]; + /* 0x56D */ u8 mSceneListID; +}; #endif /* D_A_KYTAG05_H */ |
