From fd9c4cafc4d9aa3df4b2f43ee33f15152482fce9 Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Sat, 4 Dec 2021 05:10:59 -0800 Subject: [PATCH] wip --- include/JSystem/J2DGraph/J2DAnmLoader.h | 2 +- include/JSystem/J2DGraph/J2DPane.h | 3 + include/JSystem/J3DGraphAnimator/J3DJoint.h | 8 + include/JSystem/J3DGraphAnimator/J3DModel.h | 1 + include/SSystem/SComponent/c_m3d_g_cps.h | 1 + include/d/a/d_a_alink.h | 1510 +++++++- include/d/a/d_a_player.h | 45 +- include/d/bg/d_bg_s_acch.h | 2 + include/d/cc/d_cc_d.h | 20 +- include/d/com/d_com_inf_game.h | 103 +- include/d/d_attention.h | 12 +- include/d/d_resorce.h | 4 + include/d/d_stage.h | 35 +- include/d/event/d_event.h | 3 +- include/d/event/d_event_data.h | 160 +- include/d/event/d_event_manager.h | 12 +- include/d/kankyo/d_kankyo.h | 2 + include/d/meter/d_meter2_info.h | 25 + include/d/particle/d_particle.h | 168 +- include/d/save/d_save.h | 3 + include/f_op/f_op_actor_mng.h | 6 +- include/f_pc/f_pc_manager.h | 4 + include/m_Do/m_Do_ext.h | 104 +- include/m_Do/m_Do_mtx.h | 6 + include/rel/d/a/d_a_crod/d_a_crod.h | 31 +- .../rel/d/a/kytag/d_a_kytag05/d_a_kytag05.h | 9 + libs/JSystem/J2DGraph/J2DAnmLoader.cpp | 2 +- rel/d/a/d_a_crod/d_a_crod.cpp | 65 +- rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp | 10 - src/d/a/d_a_alink.cpp | 3260 ++++++++--------- src/d/a/d_a_player.cpp | 8 +- src/d/com/d_com_inf_game.cpp | 8 +- src/d/event/d_event.cpp | 2 +- src/d/event/d_event_data.cpp | 254 +- src/d/event/d_event_manager.cpp | 201 +- src/d/kankyo/d_kankyo.cpp | 8 +- src/d/particle/d_particle.cpp | 111 +- src/f_op/f_op_actor_mng.cpp | 2 +- src/m_Do/m_Do_ext.cpp | 39 +- 39 files changed, 3888 insertions(+), 2361 deletions(-) diff --git a/include/JSystem/J2DGraph/J2DAnmLoader.h b/include/JSystem/J2DGraph/J2DAnmLoader.h index 0c2f69d0079..b6867363da2 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 d73d42d1694..d6bb45c8ecb 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 9cbf745d439..25a21bad57b 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 +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 16bf6deacdb..02c71511b12 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 47acd885af9..14315a9fc3f 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 22e01aed977..e723b67db0f 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 786338348d8..a2028b64e7e 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 a1d6f5dc105..13c23712559 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 447f8bee029..011835eb3bd 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 83b3fd5380a..dbf41c1ad10 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 ad270ddfb09..a281c1e780f 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 8c038fcdfb1..67e81da529c 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 dffffcdc5bf..56de78bac70 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 b541927041a..6fdb8b79a4b 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 49f4aeea789..b1517d7bfaa 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 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 -struct dEvDtData_c {}; +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*); + int getNStaff() { return mNStaff; } + int getStaff(int idx) { return mStaff[idx]; } - /* 0x00 */ s32 mEventNum; - /* 0x04 */ u8 field_0x4[0xA0]; - /* 0xA4 */ int field_0xa4; -}; + /* 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 3e68b3a7417..7427c80c4dc 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 42c1e9ead28..1c747881a2e 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 1a4884dec71..95ca9ab7074 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 5bb102e0925..f6b5efdeb17 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 91977e0be34..217ba4c4190 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 92a42a42dc4..dc72b471b2d 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 1d13f495d3f..772db2e5049 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 efb15dbf7a8..504b3349ecf 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 { +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 7eaa3aa2e27..79c09b2fbff 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 4ef24817a3b..47f72e02a4f 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 25408550ad6..49c654ce508 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 */ diff --git a/libs/JSystem/J2DGraph/J2DAnmLoader.cpp b/libs/JSystem/J2DGraph/J2DAnmLoader.cpp index fb82f433efd..1463e95602e 100644 --- a/libs/JSystem/J2DGraph/J2DAnmLoader.cpp +++ b/libs/JSystem/J2DGraph/J2DAnmLoader.cpp @@ -177,7 +177,7 @@ SECTION_SDATA2 static f32 lit_1581[1 + 1 /* padding */] = { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void J2DAnmLoaderDataBase::load(void const* param_0) { +asm void* J2DAnmLoaderDataBase::load(void const* param_0) { nofralloc #include "asm/JSystem/J2DGraph/J2DAnmLoader/load__20J2DAnmLoaderDataBaseFPCv.s" } diff --git a/rel/d/a/d_a_crod/d_a_crod.cpp b/rel/d/a/d_a_crod/d_a_crod.cpp index 149ae46ce89..f748ef4e371 100644 --- a/rel/d/a/d_a_crod/d_a_crod.cpp +++ b/rel/d/a/d_a_crod/d_a_crod.cpp @@ -18,11 +18,6 @@ struct mDoMtx_stack_c { static u8 now[48]; }; -struct daPy_actorKeep_c { - /* 8015ECB8 */ void setData(fopAc_ac_c*); - /* 8015ECFC */ void clearData(); -}; - struct daAlink_c { /* 8009D884 */ void getAlinkArcName(); /* 800A9248 */ void simpleAnmPlay(J3DAnmBase*); @@ -31,61 +26,10 @@ struct daAlink_c { /* 800E1A30 */ void returnCopyRod(); }; -struct dRes_info_c {}; - -struct dRes_control_c { - /* 8003C2EC */ void getRes(char const*, s32, dRes_info_c*, int); -}; - -struct dCcD_Stts { - /* 80083860 */ void Init(int, int, fopAc_ac_c*); -}; - -struct dCcD_SrcCps {}; - -struct dCcD_GStts { - /* 80083760 */ dCcD_GStts(); - /* 804A3240 */ ~dCcD_GStts(); -}; - -struct dCcD_GObjInf { - /* 80083A28 */ dCcD_GObjInf(); - /* 800840E4 */ ~dCcD_GObjInf(); - /* 800842C0 */ void ChkAtHit(); - /* 80084318 */ void ResetAtHit(); -}; - -struct dCcD_GAtTgCoCommonBase { - /* 80083688 */ void GetAc(); -}; - -struct dCcD_Cps { - /* 800847D0 */ void Set(dCcD_SrcCps const&); -}; - -struct cM3dGLin { - /* 8026F2E8 */ void SetStartEnd(cXyz const&, cXyz const&); -}; - -struct cM3dGCps { - /* 8026EF88 */ cM3dGCps(); - /* 8026EFA4 */ ~cM3dGCps(); -}; - -struct cM3dGAab { - /* 804A31F8 */ ~cM3dGAab(); -}; - -struct cCcD_Obj {}; - struct cCcS { /* 80264BA8 */ void Set(cCcD_Obj*); }; -struct cCcD_GStts { - /* 804A409C */ ~cCcD_GStts(); -}; - struct JAISoundID {}; struct Z2SeMgr { @@ -318,7 +262,8 @@ asm void daCrod_c::create() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cM3dGAab::~cM3dGAab() { +// asm cM3dGAab::~cM3dGAab() { +extern "C" asm void __dt__8cM3dGAabFv() { nofralloc #include "asm/rel/d/a/d_a_crod/d_a_crod/__dt__8cM3dGAabFv.s" } @@ -328,7 +273,8 @@ asm cM3dGAab::~cM3dGAab() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dCcD_GStts::~dCcD_GStts() { +// asm dCcD_GStts::~dCcD_GStts() { +extern "C" asm void __dt__10dCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_crod/d_a_crod/__dt__10dCcD_GSttsFv.s" } @@ -554,7 +500,8 @@ static asm void daCrod_Draw(daCrod_c* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm cCcD_GStts::~cCcD_GStts() { +// asm cCcD_GStts::~cCcD_GStts() { +extern "C" asm void __dt__10cCcD_GSttsFv() { nofralloc #include "asm/rel/d/a/d_a_crod/d_a_crod/__dt__10cCcD_GSttsFv.s" } diff --git a/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp b/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp index 7cb0988b000..ba6a4722264 100644 --- a/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp +++ b/rel/d/a/kytag/d_a_kytag05/d_a_kytag05.cpp @@ -7,16 +7,6 @@ #include "dol2asm.h" #include "dolphin/types.h" -// -// Types: -// - -struct kytag05_class {}; - -struct fopAc_ac_c { - /* 80018B64 */ fopAc_ac_c(); -}; - // // Forward References: // diff --git a/src/d/a/d_a_alink.cpp b/src/d/a/d_a_alink.cpp index 4827466f51f..92ae636bce2 100644 --- a/src/d/a/d_a_alink.cpp +++ b/src/d/a/d_a_alink.cpp @@ -6,6 +6,7 @@ #include "d/a/d_a_alink.h" #include "d/d_bomb.h" #include "JSystem/J3DGraphLoader/J3DAnmLoader.h" +#include "JSystem/J2DGraph/J2DAnmLoader.h" #include "JSystem/JMath/JMath.h" #include "SSystem/SComponent/c_math.h" #include "Z2AudioLib/Z2AudioMgr.h" @@ -28,10 +29,6 @@ struct mDoExt_blkAnm { /* 8000DA08 */ void init(J3DDeformData*, J3DAnmCluster*, int, int, f32, s16, s16); }; -struct mDoExt_MtxCalcOldFrame { - /* 8000F848 */ void initOldFrameMorf(f32, u16, u16); -}; - struct mDoExt_MtxCalcAnmBlendTbl { /* 800D00BC */ void getAnm(int); }; @@ -81,138 +78,10 @@ struct dDemo_actor_c { /* 80038338 */ void getDemoIDData(int*, int*, int*, u16*, u8*); }; -struct daAlinkHIO_zwLight_c0 { - static u8 const m[28]; -}; - -struct daAlinkHIO_wolf_c0 { - static u8 const m[24]; -}; - struct daAlinkHIO_wolf_c { /* 80140B98 */ ~daAlinkHIO_wolf_c(); }; -struct daAlinkHIO_wlWallHang_c0 { - static u8 const m[156]; -}; - -struct daAlinkHIO_wlSwim_c0 { - static u8 const m[168]; -}; - -struct daAlinkHIO_wlSlide_c0 { - static u8 const m[124]; -}; - -struct daAlinkHIO_wlSideStep_c0 { - static u8 const m[104]; -}; - -struct daAlinkHIO_wlRope_c0 { - static u8 const m[56]; -}; - -struct daAlinkHIO_wlPush_c0 { - static u8 const m[20]; -}; - -struct daAlinkHIO_wlPoint_c0 { - static u8 const m[124]; -}; - -struct daAlinkHIO_wlMove_c0 { - static u8 const m[256]; -}; - -struct daAlinkHIO_wlMoveNoP_c0 { - static u8 const m[72]; -}; - -struct daAlinkHIO_wlLight_c0 { - static u8 const m[28]; -}; - -struct daAlinkHIO_wlLie_c0 { - static u8 const m[76]; -}; - -struct daAlinkHIO_wlHowl_c0 { - static u8 const m[96]; -}; - -struct daAlinkHIO_wlGrab_c0 { - static u8 const m[100]; -}; - -struct daAlinkHIO_wlDamage_c0 { - static u8 const m[44]; -}; - -struct daAlinkHIO_wlDamNormal_c0 { - static u8 const m[96]; -}; - -struct daAlinkHIO_wlDamLarge_c0 { - static u8 const m[108]; -}; - -struct daAlinkHIO_wlDamHuge_c0 { - static u8 const m[108]; -}; - -struct daAlinkHIO_wlDamFall_c0 { - static u8 const m[64]; -}; - -struct daAlinkHIO_wlDamCaught_c0 { - static u8 const m[16]; -}; - -struct daAlinkHIO_wlChain_c0 { - static u8 const m[92]; -}; - -struct daAlinkHIO_wlBall_c0 { - static u8 const m[56]; -}; - -struct daAlinkHIO_wlBackJump_c0 { - static u8 const m[56]; -}; - -struct daAlinkHIO_wlAtnMove_c0 { - static u8 const m[56]; -}; - -struct daAlinkHIO_wlAtWaTl_c0 { - static u8 const m[60]; -}; - -struct daAlinkHIO_wlAtWaSc_c0 { - static u8 const m[60]; -}; - -struct daAlinkHIO_wlAtWaLr_c0 { - static u8 const m[60]; -}; - -struct daAlinkHIO_wlAtRoll_c0 { - static u8 const m[32]; -}; - -struct daAlinkHIO_wlAtNjump_c0 { - static u8 const m[60]; -}; - -struct daAlinkHIO_wlAtLock_c0 { - static u8 const m[84]; -}; - -struct daAlinkHIO_wlAtLand_c0 { - static u8 const m[64]; -}; - struct daAlinkHIO_wlAtDown_c0 { static u8 const m[156]; }; @@ -237,14 +106,6 @@ struct daAlinkHIO_wallCatch_c0 { static u8 const m[84]; }; -struct daAlinkHIO_swim_c0 { - static u8 const m[252]; -}; - -struct daAlinkHIO_spinner_c0 { - static u8 const m[64]; -}; - struct daAlinkHIO_smallJump_c0 { static u8 const m[72]; }; @@ -265,18 +126,10 @@ struct daAlinkHIO_noActAtnMove_c0 { static u8 const m[84]; }; -struct daAlinkHIO_ladder_c0 { - static u8 const m[112]; -}; - struct daAlinkHIO_kandelaar_c0 { static u8 const m[80]; }; -struct daAlinkHIO_item_c0 { - static u8 const m[60]; -}; - struct daAlinkHIO_ironBall_c0 { static u8 const m[140]; }; @@ -285,14 +138,6 @@ struct daAlinkHIO_huLight_c0 { static u8 const m[28]; }; -struct daAlinkHIO_horse_c0 { - static u8 const m[108]; -}; - -struct daAlinkHIO_hookshot_c0 { - static u8 const m[112]; -}; - struct daAlinkHIO_hoCutRB_c0 { static u8 const m[32]; }; @@ -393,10 +238,6 @@ struct daAlinkHIO_cutNmL_c0 { static u8 const m[32]; }; -struct daAlinkHIO_cutLargeJump_c0 { - static u8 const m[116]; -}; - struct daAlinkHIO_cutHead_c0 { static u8 const m[96]; }; @@ -449,10 +290,6 @@ struct daAlinkHIO_crouch_c0 { static u8 const m[76]; }; -struct daAlinkHIO_copyRod_c0 { - static u8 const m[56]; -}; - struct daAlinkHIO_canoe_c0 { static u8 const m[72]; }; @@ -462,52 +299,6 @@ struct daAlinkHIO_c { /* 80140C10 */ ~daAlinkHIO_c(); }; -struct daAlinkHIO_bow_c0 { - static u8 const m[112]; -}; - -struct daAlinkHIO_bottle_c0 { - static u8 const m[180]; -}; - -struct daAlinkHIO_boom_c0 { - static u8 const m[76]; -}; - -struct daAlinkHIO_board_c0 { - static u8 const m[156]; -}; - -struct daAlinkHIO_backJump_c0 { - static u8 const m[56]; -}; - -struct dPa_control_c { - struct level_c { - /* 8004B8B4 */ void forceOnEventMove(u32); - /* 8004B918 */ void getEmitter(u32); - }; - - /* 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); - /* 8004D4CC */ void 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); - /* 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); - /* 8004CF90 */ void getPolyColor(cBgS_PolyInfo&, int, _GXColor*, _GXColor*, u8*, f32*); - /* 8004D6A4 */ void 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*); - - static u8 mWaterBubblePcallBack[4]; - static u8 mParticleTracePCB[4 + 4 /* padding */]; -}; - struct dPaPoF_c { /* 800512E8 */ void setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*, cXyz const*, cXyz const*, cXyz const*, cXyz const*, @@ -566,10 +357,6 @@ struct JAISeq { /* 802A0A8C */ JAISeq(JAISeqMgr*, JAISoundStrategyMgr*); }; -struct J2DAnmLoaderDataBase { - /* 80308A6C */ void load(void const*); -}; - // // Forward References: // @@ -3649,7 +3436,7 @@ static asm void daAlink_coHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1 /* ############################################################################################## */ /* 80450FC0-80450FC4 0004C0 0004+00 1/1 0/0 0/0 .sbss it$36766 */ -static u8 it[4]; +static int it; /* 80450FC4-80450FC8 -00001 0004+00 1/1 0/0 0/0 .sbss None */ /* 80450FC4 0001+00 data_80450FC4 None */ @@ -3759,15 +3546,26 @@ bool daAlink_c::checkStageName(const char* stage) { /* 8009DA98-8009DB64 0983D8 00CC+00 1/1 0/0 0/0 .text * tgHitCallback__9daAlink_cFP10fopAc_ac_cP12dCcD_GObjInfP12dCcD_GObjInf */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::tgHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, +void daAlink_c::tgHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1, dCcD_GObjInf* param_2) { - nofralloc -#include "asm/d/a/d_a_alink/tgHitCallback__9daAlink_cFP10fopAc_ac_cP12dCcD_GObjInfP12dCcD_GObjInf.s" + if (param_2->ChkAtType(0x40000)) { + field_0x369c = *param_2->GetAtVecP(); + for (int i = 0; i < 3; i++) { + if (param_1 == &field_0x850[i]) { + field_0x2fb8 |= (1 << i); + field_0x36b4 = param_0->mCurrent.mPosition; + return; + } + } + } else { + for (int i = 0; i < 3; i++) { + if (param_1 == &field_0x850[i]) { + field_0x2fb8 &= ~(1 << i); + return; + } + } + } } -#pragma pop /* 8009DB64-8009DC6C 0984A4 0108+00 1/1 0/0 0/0 .text * coHitCallback__9daAlink_cFP10fopAc_ac_cP12dCcD_GObjInf */ @@ -3782,15 +3580,28 @@ asm void daAlink_c::coHitCallback(fopAc_ac_c* param_0, dCcD_GObjInf* param_1) { /* 8009DC6C-8009DD90 0985AC 0124+00 5/5 0/0 0/0 .text * setMatrixWorldAxisRot__9daAlink_cFPA4_fsssiPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setMatrixWorldAxisRot(f32 (*param_0)[4], s16 param_1, s16 param_2, s16 param_3, +void daAlink_c::setMatrixWorldAxisRot(MtxP param_0, s16 param_1, s16 param_2, s16 param_3, int param_4, cXyz const* param_5) { - nofralloc -#include "asm/d/a/d_a_alink/setMatrixWorldAxisRot__9daAlink_cFPA4_fsssiPC4cXyz.s" + cXyz tmp; + mDoMtx_multVecZero(param_0, &tmp); + if (param_5 != NULL) { + mDoMtx_stack_c::transS(*param_5); + } else { + mDoMtx_stack_c::transS(tmp); + } + + concatMagneBootMtx(); + mDoMtx_stack_c::YrotM(mCollisionRot.y); + mDoMtx_stack_c::ZXYrotM(param_1, param_2, param_3); + mDoMtx_stack_c::YrotM(-mCollisionRot.y); + concatMagneBootInvMtx(); + mDoMtx_stack_c::transM(-tmp.x, -tmp.y, -tmp.z); + PSMTXConcat(*mDoMtx_stack_c::get(), param_0, *mDoMtx_stack_c::get()); + PSMTXCopy(*mDoMtx_stack_c::get(), param_0); + if (param_4 != 0) { + PSMTXCopy(*mDoMtx_stack_c::get(), J3DSys::mCurrentMtx); + } } -#pragma pop /* 8009DD90-8009E7B8 0986D0 0A28+00 2/2 0/0 0/0 .text jointControll__9daAlink_cFi */ #pragma push @@ -3823,24 +3634,43 @@ asm void daAlink_c::changeBlendRate(int param_0) { #pragma pop /* 8009EB18-8009EB58 099458 0040+00 1/1 0/0 0/0 .text resetRootMtx__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::resetRootMtx() { - nofralloc -#include "asm/d/a/d_a_alink/resetRootMtx__9daAlink_cFv.s" +void daAlink_c::resetRootMtx() { + PSMTXCopy(mRootMtx, J3DSys::mCurrentMtx); + field_0x2f90 = 0; } -#pragma pop /* 8009EB58-8009EC28 099498 00D0+00 1/1 0/0 0/0 .text modelCallBack__9daAlink_cFi */ +#ifdef NONMATCHING +bool daAlink_c::modelCallBack(int param_0) { + jointControll(param_0); + if (param_0 == 0) { + setUpperFront(); + } + else if (param_0 == 0x1A) { + bool check = false; + if (mSpecialMode == 0 || mSpecialMode < 0x26) { + check = true; + } + if (!check) { + setFootMatrix(); + } + setArmMatrix(); + } + if (field_0x2fb6 != 0 && (param_0 == 0 || param_0 == 10 || param_0 - 4 < 1 || param_0 == 13 || param_0 == 15)) { + changeBlendRate(param_0); + } + return true; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::modelCallBack(int param_0) { +asm bool daAlink_c::modelCallBack(int param_0) { nofralloc #include "asm/d/a/d_a_alink/modelCallBack__9daAlink_cFi.s" } #pragma pop +#endif /* 8009EC28-8009ECA0 099568 0078+00 1/1 0/0 0/0 .text daAlink_modelCallBack__FP8J3DJointi */ @@ -5089,13 +4919,11 @@ daAlinkHIO_frontRoll_c1 const daAlinkHIO_frontRoll_c0::m = { }; /* 8038D82C-8038D864 019E8C 0038+00 5/5 0/0 0/0 .rodata m__22daAlinkHIO_backJump_c0 */ -SECTION_RODATA u8 const daAlinkHIO_backJump_c0::m[56] = { - 0x00, 0x09, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xC0, - 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, +daAlinkHIO_backJump_c1 const daAlinkHIO_backJump_c0::m = { + { 9, 0.7f, 0.0f, 2.0f, 12.0f }, + { 17, 1.0f, 2.0f, 2.0f, 3.0f }, + 24.0f, 10.0f, 100.0f, 10.0f, }; -COMPILER_STRIP_GATE(0x8038D82C, &daAlinkHIO_backJump_c0::m); /* 8038D864-8038D8CC 019EC4 0068+00 3/3 0/0 0/0 .rodata m__22daAlinkHIO_sideStep_c0 */ daAlinkHIO_sideStep_c1 const daAlinkHIO_sideStep_c0::m = { @@ -5370,17 +5198,13 @@ SECTION_RODATA u8 const daAlinkHIO_cutHead_c0::m[96] = { COMPILER_STRIP_GATE(0x8038DDB8, &daAlinkHIO_cutHead_c0::m); /* 8038DE18-8038DE8C 01A478 0074+00 5/5 0/0 0/0 .rodata m__26daAlinkHIO_cutLargeJump_c0 */ -SECTION_RODATA u8 const daAlinkHIO_cutLargeJump_c0::m[116] = { - 0x00, 0x1D, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0xF0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x3F, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0x88, 0x00, 0x00, - 0x00, 0x23, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x41, 0xB0, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, - 0x20, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, +daAlinkHIO_cutLargeJump_c1 const daAlinkHIO_cutLargeJump_c0::m = { + { 29, 1.3f, 0.0f, 3.0f, 30.0f }, + { 6, 1.0f, 0.0f, 3.0f, 7.0f }, + { 16, 1.0f, 0.0f, 2.0f, 17.0f }, + { 35, 1.25f, 0.0f, 0.0f, 22.0f }, + 20.0f, 33.0f, 2.0f, 6.0f, 13.0f, 0.0f, 10.0f, 250.0f, 5.0f }; -COMPILER_STRIP_GATE(0x8038DE18, &daAlinkHIO_cutLargeJump_c0::m); /* 8038DE8C-8038DF28 01A4EC 009C+00 21/30 0/0 0/0 .rodata m__17daAlinkHIO_cut_c0 */ daAlinkHIO_cut_c1 const daAlinkHIO_cut_c0::m = { @@ -5623,16 +5447,13 @@ SECTION_RODATA u8 const daAlinkHIO_damage_c0::m[88] = { COMPILER_STRIP_GATE(0x8038E54C, &daAlinkHIO_damage_c0::m); /* 8038E5A4-8038E610 01AC04 006C+00 7/8 0/0 0/0 .rodata m__19daAlinkHIO_horse_c0 */ -SECTION_RODATA u8 const daAlinkHIO_horse_c0::m[108] = { - 0x00, 0x12, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x41, 0x98, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x00, 0x00, 0x2B, 0x00, 0x00, 0x3F, 0xB9, 0x99, 0x9A, - 0x40, 0x40, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x30, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, - 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x00, - 0x00, 0x64, 0x7F, 0xFF, 0x00, 0x1E, 0x00, 0x19, 0x15, 0x7C, 0xCD, 0x38, 0x3F, 0x99, 0x99, 0x9A, - 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, +daAlinkHIO_horse_c1 const daAlinkHIO_horse_c0::m = { + { 18, 1.2f, 0.0f, 5.0f, 19.0f }, + { 22, 1.2f, 0.0f, 3.0f, 23.0f }, + { 43, 1.45f, 3.0f, 3.0f, 44.0f }, + { 18, 1.2f, 0.0f, 3.0f, 23.0f }, + 100, 32767, 30, 25, 5500, -13000, 1.2f, 8.0f, 8.0f, 5.0f, }; -COMPILER_STRIP_GATE(0x8038E5A4, &daAlinkHIO_horse_c0::m); /* 800A07D8-800A0868 09B118 0090+00 2/2 0/0 0/0 .text checkAttentionPosAngle__9daAlink_cFP4cXyz */ #pragma push @@ -5678,26 +5499,18 @@ SECTION_RODATA u8 const daAlinkHIO_canoe_c0::m[72] = { COMPILER_STRIP_GATE(0x8038E610, &daAlinkHIO_canoe_c0::m); /* 8038E658-8038E6C8 01ACB8 0070+00 9/9 0/0 0/0 .rodata m__17daAlinkHIO_bow_c0 */ -SECTION_RODATA u8 const daAlinkHIO_bow_c0::m[112] = { - 0x00, 0x09, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x40, 0xA0, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x1E, 0x00, 0x46, 0x00, 0x00, - 0x40, 0xA0, 0x00, 0x00, 0x43, 0x96, 0x00, 0x00, 0x45, 0x9C, 0x40, 0x00, 0x44, 0x48, 0x00, 0x00, - 0x46, 0x0C, 0xA0, 0x00, 0x42, 0x48, 0x00, 0x00, 0x43, 0x48, 0x00, 0x00, 0x45, 0x3B, 0x80, 0x00, - 0x43, 0x66, 0x00, 0x00, 0x45, 0x5A, 0xC0, 0x00, 0x44, 0x16, 0x00, 0x00, 0x46, 0x0C, 0xA0, 0x00, - 0x44, 0x7A, 0x00, 0x00, 0x45, 0x7A, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x44, 0x48, 0x00, 0x00, +daAlinkHIO_bow_c1 const daAlinkHIO_bow_c0::m = { + { 9, 1.0f, 0.0f, 3.0f, 5.0f }, + { 6, 1.0f, 0.0f, 3.0f, 7.0f }, + 10, 30, 70, 5.0f, 300.0f, 5000.0f, 800.0f, 9000.0f, 50.0f, 200.0f, 3000.0f, 230.0f, 3500.0f, 600.0f, 9000.0f, 1000.0f, 4000.0f, 250.0f, 800.0f, }; -COMPILER_STRIP_GATE(0x8038E658, &daAlinkHIO_bow_c0::m); /* 8038E6C8-8038E714 01AD28 004C+00 22/23 0/0 0/0 .rodata m__18daAlinkHIO_boom_c0 */ -SECTION_RODATA u8 const daAlinkHIO_boom_c0::m[76] = { - 0x00, 0x15, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x40, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x41, 0xB0, 0x00, 0x00, 0x00, 0x19, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x28, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, - 0x45, 0x3B, 0x80, 0x00, 0x45, 0x3B, 0x80, 0x00, 0x42, 0x20, 0x00, 0x00, +daAlinkHIO_boom_c1 const daAlinkHIO_boom_c0::m = { + { 21, 0.9f, 3.0f, 2.0f, 22.0f }, + { 25, 1.0f, 3.0f, 1.0f, 10.0f }, + 40, 0, 1.0f, 3.0f, 60.0f, 60.0f, 2000.0f, 3000.0f, 3000.0f, 40.0f, }; -COMPILER_STRIP_GATE(0x8038E6C8, &daAlinkHIO_boom_c0::m); /* 8038E714-8038E760 01AD74 004C+00 14/14 0/0 0/0 .rodata m__18daAlinkHIO_bomb_c0 */ daAlinkHIO_bomb_c1 const daAlinkHIO_bomb_c0::m = { @@ -5748,57 +5561,40 @@ SECTION_RODATA u8 const daAlinkHIO_pickUp_c0::m[48] = { COMPILER_STRIP_GATE(0x8038E840, &daAlinkHIO_pickUp_c0::m); /* 8038E870-8038E90C 01AED0 009C+00 16/17 0/0 0/0 .rodata m__19daAlinkHIO_board_c0 */ -SECTION_RODATA u8 const daAlinkHIO_board_c0::m[156] = { - 0x00, 0x09, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x3F, 0xCC, 0xCC, 0xCD, - 0x40, 0xA0, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, - 0x3F, 0x4C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, - 0x42, 0x8C, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x41, 0xB0, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x42, 0x5C, 0x00, 0x00, - 0x40, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, - 0x41, 0xC0, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, +daAlinkHIO_board_c1 const daAlinkHIO_board_c0::m = { + { 9, 2.5f, 0.0f, 3.0f, 10.0f }, + { 14, 0.7f, 0.0f, 8.0f, 15.0f }, + { 24, 1.6f, 5.0f, 5.0f, 25.0f }, + { 24, 0.8f, 0.0f, 3.0f, 25.0f }, + 70.0f, 4.0f, 22.0f, 35.0f, 1.0f, 4.0f, 1.0f, 3.0f, 2.0f, 30.0f, 0.9f, 55.0f, 4.0f, 3.0f, 1.0f, 20.0f, 24.0f, 35.0f, 50.0f, }; -COMPILER_STRIP_GATE(0x8038E870, &daAlinkHIO_board_c0::m); /* 8038E90C-8038E9C0 01AF6C 00B4+00 12/12 0/0 0/0 .rodata m__20daAlinkHIO_bottle_c0 */ -SECTION_RODATA u8 const daAlinkHIO_bottle_c0::m[180] = { - 0x00, 0x38, 0x00, 0x00, 0x3F, 0x93, 0x33, 0x33, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x42, 0x64, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x00, 0x3F, - 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, - 0x00, 0x36, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x3F, - 0x19, 0x99, 0x9A, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x00, 0x2F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x42, 0x40, 0x00, 0x00, 0x00, 0x56, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0xAE, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, 0x3F, - 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, +daAlinkHIO_bottle_c1 const daAlinkHIO_bottle_c0::m = { + { 56, 1.15f, 0.0f, 3.0f, 57.0f }, + { 39, 1.2f, 0.0f, 3.0f, 40.0f }, + { 44, 1.2f, 0.0f, 3.0f, 50.0f }, + { 54, 1.1f, 0.0f, 3.0f, 55.0f }, + { 24, 1.0f, 0.0f, 3.0f, 25.0f }, + { 12, 0.6f, 1.0f, 3.0f, 10.0f }, + { 47, 1.0f, 0.0f, 3.0f, 48.0f }, + { 86, 1.0f, 0.0f, 3.0f, 87.0f }, + { 29, 1.2f, 0.0f, 3.0f, 30.0f }, }; -COMPILER_STRIP_GATE(0x8038E90C, &daAlinkHIO_bottle_c0::m); /* 8038E9C0-8038EA30 01B020 0070+00 15/16 0/0 0/0 .rodata m__22daAlinkHIO_hookshot_c0 */ -SECTION_RODATA u8 const daAlinkHIO_hookshot_c0::m[112] = { - 0x00, 0x0C, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x50, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x41, 0x30, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x43, 0x16, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0x50, 0x00, 0x00, - 0x45, 0x3B, 0x80, 0x00, 0x43, 0x16, 0x00, 0x00, 0x43, 0x61, 0x00, 0x00, 0x42, 0xB4, 0x00, 0x00, +daAlinkHIO_hookshot_c1 const daAlinkHIO_hookshot_c0::m = { + { 12, 1.0f, 0.0f, 0.0f, 13.0f }, + { 39, 1.0f, 0.0f, 1.0f, 11.0f }, + { 28, 1.0f, 0.0f, 2.0f, 7.0f }, + 0.0f, 1.0f, 3.0f, 2000.0f, 100.0f, 150.0f, 60.0f, 5.0f, 13.0f, 3000.0f, 150.0f, 225.0f, 90.0f, }; -COMPILER_STRIP_GATE(0x8038E9C0, &daAlinkHIO_hookshot_c0::m); /* 8038EA30-8038EA70 01B090 0040+00 10/10 0/0 0/0 .rodata m__21daAlinkHIO_spinner_c0 */ -SECTION_RODATA u8 const daAlinkHIO_spinner_c0::m[64] = { - 0x00, 0x15, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x50, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x0F, 0x01, 0x68, 0x01, 0x68, 0x00, 0x96, 0x00, 0x00, - 0xC0, 0x6C, 0xCC, 0xCD, 0xC2, 0x48, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x41, 0xD0, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x3D, 0xCC, 0xCC, 0xCD, 0x3C, 0x23, 0xD7, 0x0A, 0x42, 0x70, 0x00, 0x00, +daAlinkHIO_spinner_c1 const daAlinkHIO_spinner_c0::m = { + { 21, 0.8f, 0.0f, 3.0f, 13.0f }, + 30, 15, 360, 360, 150, -3.7f, -50.0f, 0.9f, 26.0f, 0.5f, 0.1f, 0.01f, 60.0f, }; -COMPILER_STRIP_GATE(0x8038EA30, &daAlinkHIO_spinner_c0::m); /* 8038EA70-8038EAFC 01B0D0 008C+00 10/12 0/0 0/0 .rodata m__22daAlinkHIO_ironBall_c0 */ SECTION_RODATA u8 const daAlinkHIO_ironBall_c0::m[140] = { @@ -5815,44 +5611,32 @@ SECTION_RODATA u8 const daAlinkHIO_ironBall_c0::m[140] = { COMPILER_STRIP_GATE(0x8038EA70, &daAlinkHIO_ironBall_c0::m); /* 8038EAFC-8038EB34 01B15C 0038+00 4/4 0/0 0/0 .rodata m__21daAlinkHIO_copyRod_c0 */ -SECTION_RODATA u8 const daAlinkHIO_copyRod_c0::m[56] = { - 0x00, 0x13, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, - 0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x42, 0xA0, - 0x00, 0x00, 0x44, 0xBB, 0x80, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x44, 0xFA, 0x00, 0x00, +daAlinkHIO_copyRod_c1 const daAlinkHIO_copyRod_c0::m = { + 19, 1.0f, 0.0f, 3.0f, 14.0f, 39, 1.0f, 0.0f, 3.0f, 30.0f, 80.0f, 1500.0f, 100.0f, 2000.0f, }; -COMPILER_STRIP_GATE(0x8038EAFC, &daAlinkHIO_copyRod_c0::m); /* 8038EB34-8038EB50 01B194 001C+00 0/0 0/0 0/0 .rodata m__21daAlinkHIO_zwLight_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_zwLight_c0::m[28] = { - 0x03, 0x03, 0x00, 0x00, 0x00, 0xB6, 0x00, 0xE1, 0x00, 0xF3, 0xFF, 0xA9, 0x3F, 0x80, - 0x00, 0x00, 0x42, 0x8D, 0x81, 0x00, 0x43, 0x03, 0xD6, 0x00, 0x00, 0x00, 0x00, 0x00, +daAlinkHIO_zwLight_c1 const daAlinkHIO_zwLight_c0::m = { + 771, 0, 182, 225, 243, -87, 1.0f, 70.75195f, 131.83594f, 0.0f, }; COMPILER_STRIP_GATE(0x8038EB34, &daAlinkHIO_zwLight_c0::m); #pragma pop /* 8038EB50-8038EB8C 01B1B0 003C+00 3/3 0/0 0/0 .rodata m__18daAlinkHIO_item_c0 */ -SECTION_RODATA u8 const daAlinkHIO_item_c0::m[60] = { - 0x00, 0x0C, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0x50, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x0F, 0x27, 0x10, 0xCD, - 0x38, 0x17, 0x70, 0xDC, 0xD8, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, 0x3F, 0xA6, 0x66, 0x66, +daAlinkHIO_item_c1 const daAlinkHIO_item_c0::m = { + { 12, 1.0f, 0.0f, 3.0f, 13.0f }, + { 14, 1.0f, 0.0f, 3.0f, 15.0f }, + 15, 10000, -13000, 6000, -9000, 1.3f, 1.3f }; -COMPILER_STRIP_GATE(0x8038EB50, &daAlinkHIO_item_c0::m); /* 8038EB8C-8038EBFC 01B1EC 0070+00 14/14 0/0 0/0 .rodata m__20daAlinkHIO_ladder_c0 */ -SECTION_RODATA u8 const daAlinkHIO_ladder_c0::m[112] = { - 0x00, 0x0D, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x42, 0x40, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0xA0, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x66, 0x66, 0x66, - 0x40, 0x00, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, - 0x3F, 0x93, 0x33, 0x33, 0x3F, 0x66, 0x66, 0x66, 0x3F, 0xAC, 0xCC, 0xCD, 0x42, 0xA0, 0x00, 0x00, +daAlinkHIO_ladder_c1 const daAlinkHIO_ladder_c0::m = { + { 13, 0.8f, 2.0f, 3.0f, 10.0f }, + { 47, 1.25f, 0.0f, 2.0f, 48.0f }, + 0.8f, 5.0f, 1.0f, 0.0f, 1.0f, 5.0f, 1.2f, 0.0f, 0.4f, 0.9f, 2.0f, 18.0f, 40.0f, 0.8f, 1.15f, 0.9f, 1.35f, 80.0f, }; -COMPILER_STRIP_GATE(0x8038EB8C, &daAlinkHIO_ladder_c0::m); /* 8038EBFC-8038EC48 01B25C 004C+00 11/11 0/0 0/0 .rodata m__22daAlinkHIO_roofHang_c0 */ SECTION_RODATA u8 const daAlinkHIO_roofHang_c0::m[76] = { @@ -5885,97 +5669,57 @@ SECTION_RODATA u8 const daAlinkHIO_grab_c0::m[228] = { COMPILER_STRIP_GATE(0x8038EC48, &daAlinkHIO_grab_c0::m); /* 8038ED2C-8038EE28 01B38C 00FC+00 21/30 0/0 0/0 .rodata m__18daAlinkHIO_swim_c0 */ -SECTION_RODATA u8 const daAlinkHIO_swim_c0::m[252] = { - 0x00, 0x19, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0xC0, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0xC0, 0x00, 0x00, 0x00, 0x25, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x42, 0x18, 0x00, 0x00, - 0x00, 0x0F, 0x03, 0x20, 0x13, 0x88, 0x00, 0x0F, 0x00, 0xC8, 0x13, 0x88, 0x00, 0x5A, 0x00, 0x32, - 0x43, 0x0C, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x40, 0xC0, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, - 0x3F, 0x4C, 0xCC, 0xCD, 0x41, 0x70, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, 0x3F, 0x00, 0x00, 0x00, - 0x3F, 0xA6, 0x66, 0x66, 0x3E, 0xCC, 0xCC, 0xCD, 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x70, 0x00, 0x00, - 0x42, 0x16, 0x00, 0x00, 0xC2, 0x16, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0xC0, 0x80, 0x00, 0x00, - 0xC1, 0xA0, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x3F, 0x66, 0x66, 0x66, 0xBF, 0x33, 0x33, 0x33, 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x50, 0x00, 0x00, - 0x3E, 0x99, 0x99, 0x9A, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, +daAlinkHIO_swim_c1 const daAlinkHIO_swim_c0::m = { + { 25, 1.0f, 0.0f, 3.0f, -1.0f }, + { 23, 1.0f, 0.0f, 3.0f, 24.0f }, + { 12, 2.0f, 0.0f, 10.0f, 24.0f }, + { 37, 1.0f, 3.0f, 5.0f, 38.0f }, + 15, 800, 5000, 15, 200, 5000, 90, 50, 140.0f, 50.0f, 8.0f, 8.0f, 6.0f, 12.0f, 8.0f, 5.0f, 0.5f, -7.0f, 6.0f, 0.2f, 0.8f, 15.0f, 3.5f, 0.5f, 1.0f, 0.5f, 1.3f, 0.5f, 1.3f, 0.4f, 0.6f, 15.0f, 37.5f, -37.5f, 3.0f, -4.0f, -20.0f, 250.0f, 0.0f, 10.0f, 0.9f, -0.7f, 0.6f, 13.0f, 0.3f, 0.5f, 1.3f, }; -COMPILER_STRIP_GATE(0x8038ED2C, &daAlinkHIO_swim_c0::m); /* 8038EE28-8038EF28 01B488 0100+00 32/41 0/0 0/0 .rodata m__20daAlinkHIO_wlMove_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlMove_c0::m[256] = { - 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x70, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x29, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, - 0x23, 0x28, 0x00, 0x64, 0x00, 0x05, 0x00, 0x5A, 0x00, 0x32, 0x00, 0x3C, 0x00, 0x32, 0x00, 0x2D, - 0x00, 0x32, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x3F, 0xCC, 0xCC, 0xCD, 0x3F, 0x8C, 0xCC, 0xCD, 0x40, 0x0C, 0xCC, 0xCD, 0x3F, 0x99, 0x99, 0x9A, - 0x3F, 0xA6, 0x66, 0x66, 0x3D, 0xCC, 0xCC, 0xCD, 0x3E, 0xCC, 0xCC, 0xCD, 0x3E, 0xCC, 0xCC, 0xCD, - 0x3F, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x3E, 0x99, 0x99, 0x9A, - 0x3F, 0x59, 0x99, 0x9A, 0x3F, 0x66, 0x66, 0x66, 0x40, 0x20, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, - 0x40, 0xA0, 0x00, 0x00, 0x41, 0xB0, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x42, 0xC8, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, - 0x40, 0xC0, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, - 0x42, 0x04, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x40, 0x40, 0x00, 0x00, - 0x41, 0xC8, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x3F, 0x00, 0x00, 0x00, +daAlinkHIO_wlMove_c1 const daAlinkHIO_wlMove_c0::m = { + { 14, 1.0f, 0.0f, 3.0f, 15.0f }, + { 14, 1.0f, 0.0f, 3.0f, 12.0f }, + { 8, 1.0f, 0.0f, 1.0f, 20.0f }, + { 41, 1.0f, 0.0f, 3.0f, 20.0f }, + 9000, 100, 5, 90, 50, 60, 50, 45, 50, 40.0f, 4.0f, 3.0f, 1.6f, 1.1f, 2.2f, 1.2f, 1.3f, 0.1f, 0.4f, 0.4f, 0.5f, 5.0f, 5.0f, 0.3f, 0.85f, 0.9f, 2.5f, 40.0f, 5.0f, 22.0f, 1.0f, 5.0f, 100.0f, 10.0f, 45.0f, 1.3f, 6.0f, 65.0f, 20.0f, 15.0f, 33.0f, 35.0f, 1.2f, 3.0f, 25.0f, 35.0f, 1.1f, 0.5f, }; -COMPILER_STRIP_GATE(0x8038EE28, &daAlinkHIO_wlMove_c0::m); /* 8038EF28-8038EF70 01B588 0048+00 19/27 0/0 0/0 .rodata m__23daAlinkHIO_wlMoveNoP_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlMoveNoP_c0::m[72] = { - 0x23, 0x28, 0x00, 0x64, 0x00, 0x05, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x3F, 0xE6, 0x66, 0x66, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0x0C, - 0xCC, 0xCD, 0x3F, 0x8C, 0xCC, 0xCD, 0x3D, 0xCC, 0xCC, 0xCD, 0x3F, 0x19, 0x99, 0x9A, 0x3F, - 0x19, 0x99, 0x9A, 0x40, 0xA0, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x59, 0x99, 0x9A, - 0x3F, 0x66, 0x66, 0x66, 0x40, 0x20, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, +daAlinkHIO_wlMoveNoP_c1 const daAlinkHIO_wlMoveNoP_c0::m = { + 9000, 100, 5, 25.0f, 3.0f, 1.8f, 1.0f, 0.8f, 2.2f, 1.1f, 0.1f, 0.6f, 0.6f, 5.0f, 0.5f, 0.85f, 0.9f, 2.5f, 30.0f, }; -COMPILER_STRIP_GATE(0x8038EF28, &daAlinkHIO_wlMoveNoP_c0::m); /* 8038EF70-8038EFA8 01B5D0 0038+00 3/6 0/0 0/0 .rodata m__23daAlinkHIO_wlAtnMove_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlAtnMove_c0::m[56] = { - 0x23, 0x28, 0x00, 0x64, 0x00, 0x03, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x3F, 0xE6, - 0x66, 0x66, 0x3E, 0x4C, 0xCC, 0xCD, 0x3F, 0x19, 0x99, 0x9A, 0x41, 0x90, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3F, 0xD9, 0x99, 0x9A, 0x3E, 0xCC, - 0xCC, 0xCD, 0x41, 0x40, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, +daAlinkHIO_wlAtnMove_c1 const daAlinkHIO_wlAtnMove_c0::m = { + 9000, 100, 3, 0.8f, 1.8f, 0.2f, 0.6f, 18.0f, 2.0f, 2.0f, 1.7f, 0.4f, 12.0f, 3.0f, 2.0f, }; -COMPILER_STRIP_GATE(0x8038EF70, &daAlinkHIO_wlAtnMove_c0::m); /* 8038EFA8-8038F010 01B608 0068+00 3/3 0/0 0/0 .rodata m__24daAlinkHIO_wlSideStep_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlSideStep_c0::m[104] = { - 0x00, 0x05, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x40, 0xC0, 0x00, 0x00, 0x00, 0x17, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x3F, - 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x00, 0x17, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, - 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x04, 0x00, 0x00, 0x41, 0xB8, 0x00, 0x00, 0x41, 0xF0, - 0x00, 0x00, 0x41, 0xB0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, +daAlinkHIO_wlSideStep_c1 const daAlinkHIO_wlSideStep_c0::m = { + { 5, 1.0f, 0.0f, 3.0f, 6.0f }, + { 23, 1.0f, 1.0f, 2.0f, 2.0f }, + { 4, 0.9f, 0.0f, 3.0f, 5.0f }, + { 23, 1.0f, 1.0f, 2.0f, 3.0f }, + 33.0f, 23.0f, 30.0f, 22.0f, 100.0f, 10.0f, }; -COMPILER_STRIP_GATE(0x8038EFA8, &daAlinkHIO_wlSideStep_c0::m); /* 8038F010-8038F048 01B670 0038+00 3/4 0/0 0/0 .rodata m__24daAlinkHIO_wlBackJump_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlBackJump_c0::m[56] = { - 0x00, 0x0B, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, - 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x41, 0xF0, - 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, +daAlinkHIO_wlBackJump_c1 const daAlinkHIO_wlBackJump_c0::m = { + { 11, 0.8f, 0.0f, 2.0f, 12.0f }, + { 28, 1.0f, 0.0f, 3.0f, 1.0f }, + 30.0f, 20.0f, 100.0f, 10.0f, }; -COMPILER_STRIP_GATE(0x8038F010, &daAlinkHIO_wlBackJump_c0::m); /* 8038F048-8038F0A8 01B6A8 0060+00 2/2 0/0 0/0 .rodata m__20daAlinkHIO_wlHowl_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlHowl_c0::m[96] = { - 0x00, 0x31, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x42, 0x20, 0x00, 0x00, 0x00, 0x47, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x42, 0x90, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, - 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x30, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, - 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0xD9, 0x99, 0x9A, 0x3F, 0x33, 0x33, 0x33, +daAlinkHIO_wlHowl_c1 const daAlinkHIO_wlHowl_c0::m = { + { 49, 1.0f, 0.0f, 3.0f, 40.0f }, + { 71, 1.0f, 0.0f, 3.0f, 72.0f }, + { 14, 1.3f, 1.0f, 3.0f, 11.0f }, + { 17, 0.9f, 0.0f, 3.0f, 18.0f }, + 3.0f, 8.0f, 1.7f, 0.7f, }; -COMPILER_STRIP_GATE(0x8038F048, &daAlinkHIO_wlHowl_c0::m); /* 8038F0A8-8038F124 01B708 007C+00 8/13 0/0 0/0 .rodata m__24daAlinkHIO_wlAutoJump_c0 */ daAlinkHIO_wlAutoJump_c1 const daAlinkHIO_wlAutoJump_c0::m = {{3, 1.2f, 1.0f, 2.0f, 4.0f}, @@ -6001,181 +5745,138 @@ daAlinkHIO_wlAutoJump_c1 const daAlinkHIO_wlAutoJump_c0::m = {{3, 1.2f, 1.0f, 2. 100.0f}; /* 8038F124-8038F138 01B784 0014+00 4/4 0/0 0/0 .rodata m__20daAlinkHIO_wlPush_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlPush_c0::m[20] = { - 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x40, 0x00, 0x00, +daAlinkHIO_wlPush_c1 const daAlinkHIO_wlPush_c0::m = { + 1.0f, 3.0f, 1.0f, 3.0f, 0.75f, }; -COMPILER_STRIP_GATE(0x8038F124, &daAlinkHIO_wlPush_c0::m); /* 8038F138-8038F184 01B798 004C+00 13/15 0/0 0/0 .rodata m__19daAlinkHIO_wlLie_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlLie_c0::m[76] = { - 0x00, 0x0E, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x05, 0x01, 0xF4, 0x00, 0x32, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3F, 0xD9, 0x99, 0x9A, 0x3F, 0x33, 0x33, 0x33, - 0x40, 0xA0, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0x40, 0x00, 0x00, +daAlinkHIO_wlLie_c1 const daAlinkHIO_wlLie_c0::m = { + { 14, 1.5f, 0.0f, 3.0f, 10.0f }, + { 11, 1.5f, 3.0f, 3.0f, 8.0f }, + 5, 500, 50, 3.0f, 8.0f, 1.7f, 0.7f, 5.0f, 0.8f, 3.0f, }; -COMPILER_STRIP_GATE(0x8038F138, &daAlinkHIO_wlLie_c0::m); /* 8038F184-8038F1A0 01B7E4 001C+00 0/1 0/0 0/0 .rodata m__21daAlinkHIO_wlLight_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_wlLight_c0::m[28] = { - 0x02, 0x03, 0x00, 0x00, 0x00, 0x78, 0x00, 0x78, 0x00, 0x78, 0xFF, 0xE2, 0x40, 0x40, - 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x44, 0x00, 0x00, 0x00, 0xC4, 0x1F, 0x80, 0x00, +daAlinkHIO_wlLight_c1 const daAlinkHIO_wlLight_c0::m = { + 515, 0, 120, 120, 120, -30, 3.0f, 20.0f, 512.0f, -638.0f, }; -COMPILER_STRIP_GATE(0x8038F184, &daAlinkHIO_wlLight_c0::m); #pragma pop /* 8038F1A0-8038F23C 01B800 009C+00 9/11 0/0 0/0 .rodata m__24daAlinkHIO_wlWallHang_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlWallHang_c0::m[156] = { - 0x00, 0x0D, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, 0x41, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x41, 0x60, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0xF8, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xC0, 0x00, 0x00, - 0x00, 0x06, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x40, 0xE0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, - 0x43, 0x48, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x41, 0x88, 0x00, 0x00, - 0x41, 0x70, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, +daAlinkHIO_wlWallHang_c1 const daAlinkHIO_wlWallHang_c0::m = { + { 13, 1.2f, 8.0f, 2.0f, 14.0f }, + { 39, 1.1f, 0.0f, 3.0f, 31.0f }, + { 39, 1.0f, 0.0f, 5.0f, 40.0f }, + { 5, 1.0f, 0.0f, 3.0f, 6.0f }, + { 6, 1.0f, 0.0f, 3.0f, 7.0f }, + { 16, 1.0f, 0.0f, 3.0f, 10.0f }, + 50.0f, 100.0f, 200.0f, 250.0f, 100.0f, 17.0f, 15.0f, 10.0f, 10.0f, }; -COMPILER_STRIP_GATE(0x8038F1A0, &daAlinkHIO_wlWallHang_c0::m); /* 8038F23C-8038F29C 01B89C 0060+00 2/3 0/0 0/0 .rodata m__25daAlinkHIO_wlDamNormal_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlDamNormal_c0::m[96] = { - 0x00, 0x09, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x41, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, - 0x41, 0x20, 0x00, 0x00, 0x3C, 0x23, 0xD7, 0x0A, 0x3F, 0x80, 0x00, 0x00, 0x3E, 0x80, 0x00, 0x00, +daAlinkHIO_wlDamNormal_c1 const daAlinkHIO_wlDamNormal_c0::m = { + { 9, 1.0f, 0.0f, 0.0f, 8.0f }, + { 9, 1.0f, 0.0f, 0.0f, 8.0f }, + { 9, 1.0f, 0.0f, 0.0f, 8.0f }, + { 9, 1.0f, 0.0f, 0.0f, 8.0f }, + 10.0f, 0.01f, 1.0f, 0.25f, }; -COMPILER_STRIP_GATE(0x8038F23C, &daAlinkHIO_wlDamNormal_c0::m); /* 8038F29C-8038F308 01B8FC 006C+00 2/4 0/0 0/0 .rodata m__24daAlinkHIO_wlDamLarge_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlDamLarge_c0::m[108] = { - 0x00, 0x31, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x42, 0x20, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, - 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, - 0x05, 0x14, 0x00, 0x00, 0xC0, 0xA6, 0x66, 0x66, 0x40, 0x40, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x41, 0x70, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, +daAlinkHIO_wlDamLarge_c1 const daAlinkHIO_wlDamLarge_c0::m = { + { 49, 1.0f, 0.0f, 3.0f, 40.0f }, + { 39, 1.0f, 0.0f, 3.0f, 35.0f }, + { 34, 1.1f, 0.0f, 3.0f, 32.0f }, + { 34, 1.1f, 0.0f, 3.0f, 32.0f }, + 1300, -5.2f, 3.0f, 10.0f, 15.0f, 15.0f, 0.5f, }; -COMPILER_STRIP_GATE(0x8038F29C, &daAlinkHIO_wlDamLarge_c0::m); /* 8038F308-8038F374 01B968 006C+00 0/2 0/0 0/0 .rodata m__23daAlinkHIO_wlDamHuge_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_wlDamHuge_c0::m[108] = { - 0x00, 0x31, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x42, 0x20, 0x00, 0x00, 0x00, 0x27, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, 0x3F, 0x99, 0x99, 0x9A, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00, - 0x3F, 0x99, 0x99, 0x9A, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, - 0x07, 0xD0, 0x00, 0x00, 0xC0, 0xF0, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0xAA, 0x00, 0x00, - 0x42, 0x34, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, +daAlinkHIO_wlDamHuge_c1 const daAlinkHIO_wlDamHuge_c0::m = { + { 49, 1.1f, 0.0f, 3.0f, 40.0f }, + { 39, 1.1f, 0.0f, 3.0f, 35.0f }, + { 34, 1.2f, 0.0f, 3.0f, 30.0f }, + { 34, 1.2f, 0.0f, 3.0f, 30.0f }, + 2000, -7.5f, 3.0f, 85.0f, 45.0f, 15.0f, 0.5f, }; -COMPILER_STRIP_GATE(0x8038F308, &daAlinkHIO_wlDamHuge_c0::m); #pragma pop /* 8038F374-8038F3B4 01B9D4 0040+00 6/6 0/0 0/0 .rodata m__23daAlinkHIO_wlDamFall_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlDamFall_c0::m[64] = { - 0x00, 0x0B, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x40, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x41, 0x40, 0x00, 0x00, 0x00, 0x0F, 0x00, 0x23, 0x42, 0x20, 0x00, 0x00, - 0x42, 0x70, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, +daAlinkHIO_wlDamFall_c1 const daAlinkHIO_wlDamFall_c0::m = { + { 11, 1.0f, 0.0f, 3.0f, 12.0f }, + { 17, 0.8f, 0.0f, 0.0f, 12.0f }, + 15, 35, 40.0f, 60.0f, 3.0f, 1.0f, 15.0f, }; -COMPILER_STRIP_GATE(0x8038F374, &daAlinkHIO_wlDamFall_c0::m); /* 8038F3B4-8038F3C4 01BA14 0010+00 1/1 0/0 0/0 .rodata m__25daAlinkHIO_wlDamCaught_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlDamCaught_c0::m[16] = { - 0x01, 0x2C, 0x00, 0x05, 0x3F, 0x99, 0x99, 0x9A, 0x40, 0x40, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, +daAlinkHIO_wlDamCaught_c1 const daAlinkHIO_wlDamCaught_c0::m = { + 300, 5, 1.2f, 3.0f, 1.5f, }; -COMPILER_STRIP_GATE(0x8038F3B4, &daAlinkHIO_wlDamCaught_c0::m); /* 8038F3C4-8038F3F0 01BA24 002C+00 3/4 0/0 0/0 .rodata m__22daAlinkHIO_wlDamage_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlDamage_c0::m[44] = { - 0x00, 0x09, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0x20, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, +daAlinkHIO_wlDamage_c1 const daAlinkHIO_wlDamage_c0::m = { + { 9, 1.1f, 0.0f, 3.0f, 10.0f }, + { 9, 1.1f, 0.0f, 3.0f, 7.0f }, + 0.7f, }; -COMPILER_STRIP_GATE(0x8038F3C4, &daAlinkHIO_wlDamage_c0::m); /* 8038F3F0-8038F46C 01BA50 007C+00 10/14 0/0 0/0 .rodata m__21daAlinkHIO_wlSlide_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlSlide_c0::m[124] = { - 0x00, 0x14, 0x00, 0x00, 0x3F, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0xC8, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x1D, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0xD8, 0x00, 0x00, - 0x02, 0x00, 0x00, 0x40, 0x42, 0x0C, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, - 0x42, 0x0C, 0x00, 0x00, 0x40, 0x26, 0x66, 0x66, 0x41, 0x90, 0x00, 0x00, 0x40, 0x06, 0x66, 0x66, - 0x41, 0x20, 0x00, 0x00, 0x3F, 0x33, 0x33, 0x33, 0x41, 0xF0, 0x00, 0x00, +daAlinkHIO_wlSlide_c1 const daAlinkHIO_wlSlide_c0::m = { + { 20, 1.25f, 0.0f, 3.0f, 25.0f }, + { 7, 1.0f, 0.0f, 3.0f, 8.0f }, + { 14, 1.0f, 0.0f, 3.0f, 15.0f }, + { 29, 1.0f, 0.0f, 3.0f, 27.0f }, + 512, 64, 35.0f, 3.0f, 50.0f, 35.0f, 2.6f, 18.0f, 2.1f, 10.0f, 0.7f, 30.0f, }; -COMPILER_STRIP_GATE(0x8038F3F0, &daAlinkHIO_wlSlide_c0::m); /* 8038F46C-8038F4A4 01BACC 0038+00 7/7 0/0 0/0 .rodata m__20daAlinkHIO_wlRope_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlRope_c0::m[56] = { - 0x00, 0x10, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, - 0x00, 0x00, 0x41, 0x88, 0x00, 0x00, 0x00, 0x5A, 0x00, 0x1E, 0x3F, 0x00, 0x00, 0x00, - 0x3F, 0x99, 0x99, 0x9A, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x3F, 0x80, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, +daAlinkHIO_wlRope_c1 const daAlinkHIO_wlRope_c0::m = { + { 16, 1.0f, 0.0f, 3.0f, 17.0f }, + 90, 30, 0.5f, 1.2f, 3.0f, 15.0f, 1.0f, 3.0f, 3.0f, 0.8f, }; -COMPILER_STRIP_GATE(0x8038F46C, &daAlinkHIO_wlRope_c0::m); /* 8038F4A4-8038F4E0 01BB04 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaLr_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_wlAtWaLr_c0::m[60] = { - 0x00, 0x29, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x40, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0x80, 0x00, 0x00, 0x00, 0x05, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x41, 0x20, - 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x41, 0x30, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, 0x40, - 0xA0, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, 0x42, 0x8C, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, +daAlinkHIO_wlAtWaLr_c1 const daAlinkHIO_wlAtWaLr_c0::m = { + { 41, 0.9f, 4.0f, 3.0f, 16.0f }, + 5, 3, 0.0f, 10.0f, 4.0f, 11.0f, 18.0f, 5.0f, 70.0f, 70.0f, 150.0f, }; -COMPILER_STRIP_GATE(0x8038F4A4, &daAlinkHIO_wlAtWaLr_c0::m); #pragma pop /* 8038F4E0-8038F51C 01BB40 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaSc_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_wlAtWaSc_c0::m[60] = { - 0x00, 0x0F, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x41, 0x20, 0x00, 0x00, 0x40, 0x40, - 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x41, 0x30, 0x00, 0x00, 0x41, 0x90, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x42, 0xAA, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, +daAlinkHIO_wlAtWaSc_c1 const daAlinkHIO_wlAtWaSc_c0::m = { + { 15, 0.9f, 0.0f, 3.0f, 15.0f }, + 5, 5, 10.0f, 3.0f, 5.0f, 11.0f, 18.0f, 0.0f, 100.0f, 85.0f, 150.0f, }; -COMPILER_STRIP_GATE(0x8038F4E0, &daAlinkHIO_wlAtWaSc_c0::m); #pragma pop /* 8038F51C-8038F558 01BB7C 003C+00 0/1 0/0 0/0 .rodata m__22daAlinkHIO_wlAtWaTl_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_wlAtWaTl_c0::m[60] = { - 0x00, 0x2A, 0x00, 0x00, 0x3F, 0x86, 0x66, 0x66, 0x40, 0x40, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x41, 0x20, 0x00, 0x00, 0x40, 0xA0, - 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, 0x41, 0x60, 0x00, 0x00, 0x41, 0xC8, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x43, 0x16, 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, +daAlinkHIO_wlAtWaTl_c1 const daAlinkHIO_wlAtWaTl_c0::m = { + { 42, 1.05f, 3.0f, 3.0f, 28.0f }, + 0, 3, 10.0f, 5.0f, 10.0f, 14.0f, 25.0f, 0.0f, 40.0f, 150.0f, 100.0f, }; -COMPILER_STRIP_GATE(0x8038F51C, &daAlinkHIO_wlAtWaTl_c0::m); #pragma pop /* 8038F558-8038F578 01BBB8 0020+00 2/2 0/0 0/0 .rodata m__22daAlinkHIO_wlAtRoll_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlAtRoll_c0::m[32] = { - 0x00, 0x28, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0xB8, 0x00, 0x00, 0x43, 0x7A, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, +daAlinkHIO_wlAtRoll_c1 const daAlinkHIO_wlAtRoll_c0::m = { + { 40, 1.0f, 4.0f, 3.0f, 23.0f }, + 250.0f, 20.0f, 0.0f, }; -COMPILER_STRIP_GATE(0x8038F558, &daAlinkHIO_wlAtRoll_c0::m); /* 8038F578-8038F5B4 01BBD8 003C+00 3/5 0/0 0/0 .rodata m__23daAlinkHIO_wlAtNjump_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlAtNjump_c0::m[60] = { - 0x00, 0x06, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x40, 0xE0, 0x00, 0x00, 0x41, 0xF0, 0x00, 0x00, 0x42, 0x20, 0x00, 0x00, 0x41, 0xB8, - 0x00, 0x00, 0x41, 0x88, 0x00, 0x00, 0x3F, 0x4C, 0xCC, 0xCD, 0x40, 0x00, 0x00, 0x00, 0x42, - 0xA0, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x42, 0xF0, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, +daAlinkHIO_wlAtNjump_c1 const daAlinkHIO_wlAtNjump_c0::m = { + { 6, 1.0f, 4.0f, 3.0f, 7.0f }, + 30.0f, 40.0f, 23.0f, 17.0f, 0.8f, 2.0f, 80.0f, 60.0f, 120.0f, 10.0f, }; -COMPILER_STRIP_GATE(0x8038F578, &daAlinkHIO_wlAtNjump_c0::m); /* 8038F5B4-8038F618 01BC14 0064+00 1/4 0/0 0/0 .rodata m__23daAlinkHIO_wlAtCjump_c0 */ SECTION_RODATA u8 const daAlinkHIO_wlAtCjump_c0::m[100] = { @@ -6190,13 +5891,12 @@ SECTION_RODATA u8 const daAlinkHIO_wlAtCjump_c0::m[100] = { COMPILER_STRIP_GATE(0x8038F5B4, &daAlinkHIO_wlAtCjump_c0::m); /* 8038F618-8038F658 01BC78 0040+00 4/4 0/0 0/0 .rodata m__22daAlinkHIO_wlAtLand_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlAtLand_c0::m[64] = { - 0x00, 0x13, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x40, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, +daAlinkHIO_wlAtLand_c1 const daAlinkHIO_wlAtLand_c0::m = { + { 19, 0.9f, 0.0f, 2.0f, 2.0f }, + { 14, 1.0f, 0.0f, 3.0f, 1.0f }, + { 19, 1.1f, 0.0f, 2.0f, 1.0f }, + 2.0f, }; -COMPILER_STRIP_GATE(0x8038F618, &daAlinkHIO_wlAtLand_c0::m); /* 8038F658-8038F6F4 01BCB8 009C+00 6/7 0/0 0/0 .rodata m__22daAlinkHIO_wlAtDown_c0 */ SECTION_RODATA u8 const daAlinkHIO_wlAtDown_c0::m[156] = { @@ -6214,15 +5914,12 @@ SECTION_RODATA u8 const daAlinkHIO_wlAtDown_c0::m[156] = { COMPILER_STRIP_GATE(0x8038F658, &daAlinkHIO_wlAtDown_c0::m); /* 8038F6F4-8038F748 01BD54 0054+00 6/6 0/0 0/0 .rodata m__22daAlinkHIO_wlAtLock_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlAtLock_c0::m[84] = { - 0x00, 0x06, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, - 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x78, - 0x00, 0x00, 0x42, 0xC8, 0x00, 0x00, 0x44, 0x09, 0x80, 0x00, 0x41, 0xC8, 0x00, 0x00, - 0x42, 0xAA, 0x00, 0x00, 0x42, 0xA0, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x42, 0xF0, - 0x00, 0x00, 0xC1, 0x00, 0x00, 0x00, 0x44, 0x2F, 0x00, 0x00, 0x44, 0x7A, 0x00, 0x00, +daAlinkHIO_wlAtLock_c1 const daAlinkHIO_wlAtLock_c0::m = { + { 6, 3.0f, 0.0f, 3.0f, 15.0f }, + { 6, 2.0f, 0.0f, 2.0f, 20.0f }, + { 120, 100.0f, 550.0f, 25.0f, 85.0f }, + 80.0f, 60.0f, 120.0f, -8.0f, 700.0f, 1000.0f, }; -COMPILER_STRIP_GATE(0x8038F6F4, &daAlinkHIO_wlAtLock_c0::m); /* 8038F748-8038F7A4 01BDA8 005C+00 5/5 0/0 0/0 .rodata m__22daAlinkHIO_wlAtBite_c0 */ SECTION_RODATA u8 const daAlinkHIO_wlAtBite_c0::m[92] = { @@ -6242,75 +5939,54 @@ daAlinkHIO_wlAttack_c1 const daAlinkHIO_wlAttack_c0::m = { }; /* 8038F7DC-8038F858 01BE3C 007C+00 5/5 0/0 0/0 .rodata m__21daAlinkHIO_wlPoint_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlPoint_c0::m[124] = { - 0x00, 0x06, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x40, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x40, 0xE0, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x00, 0x3F, 0x40, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, - 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x00, 0x14, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0x42, 0x48, 0x00, 0x00, 0x42, 0x34, 0x00, 0x00, 0x42, 0x82, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x3F, 0x00, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, +daAlinkHIO_wlPoint_c1 const daAlinkHIO_wlPoint_c0::m = { + { 6, 0.9f, 2.0f, 3.0f, 7.0f }, + { 7, 1.0f, 0.0f, 3.0f, 8.0f }, + { 11, 0.75f, 0.0f, 3.0f, 5.0f }, + { 14, 1.0f, 0.0f, 3.0f, 3.0f }, + { 20, 1.0f, 3.0f, 5.0f, 50.0f }, + 45.0f, 65.0f, 15.0f, 0.5f, 0.5f, 0.2f, }; -COMPILER_STRIP_GATE(0x8038F7DC, &daAlinkHIO_wlPoint_c0::m); /* 8038F858-8038F8B4 01BEB8 005C+00 6/6 0/0 0/0 .rodata m__21daAlinkHIO_wlChain_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlChain_c0::m[92] = { - 0x00, 0x27, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x42, 0x20, 0x00, 0x00, 0x00, 0x51, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x42, 0xA4, 0x00, 0x00, 0x00, 0x2F, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x40, 0x00, 0x00, 0x00, 0x14, 0x00, 0x05, - 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, - 0x41, 0x71, 0x99, 0x9A, 0x3F, 0x80, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, +daAlinkHIO_wlChain_c1 const daAlinkHIO_wlChain_c0::m = { + { 39, 1.0f, 0.0f, 3.0f, 40.0f }, + { 81, 1.0f, 0.0f, 3.0f, 82.0f }, + { 47, 1.0f, 0.0f, 0.0f, 48.0f }, + 20, 5, 1.0f, 3.0f, 1.0f, 3.0f, 15.1f, 1.0f, 5.0f, }; -COMPILER_STRIP_GATE(0x8038F858, &daAlinkHIO_wlChain_c0::m); /* 8038F8B4-8038F95C 01BF14 00A8+00 16/24 0/0 0/0 .rodata m__20daAlinkHIO_wlSwim_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlSwim_c0::m[168] = { - 0x00, 0x19, 0x00, 0x00, 0x3F, 0x66, 0x66, 0x66, 0x00, 0x00, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, - 0xBF, 0x80, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x40, 0x40, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x00, 0x3F, 0x8C, 0xCC, 0xCD, - 0x00, 0x00, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x00, 0x05, 0x03, 0xE8, - 0x06, 0x40, 0x00, 0x05, 0x09, 0xC4, 0x04, 0x00, 0x42, 0xB4, 0x00, 0x00, 0x42, 0x48, 0x00, 0x00, - 0x41, 0xA0, 0x00, 0x00, 0x3E, 0xB3, 0x33, 0x33, 0xC1, 0x20, 0x00, 0x00, 0x41, 0x20, 0x00, 0x00, - 0x3F, 0xC0, 0x00, 0x00, 0x3F, 0xB3, 0x33, 0x33, 0x41, 0x20, 0x00, 0x00, 0x40, 0x60, 0x00, 0x00, - 0x3F, 0x00, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x42, 0x16, 0x00, 0x00, - 0x41, 0x10, 0x00, 0x00, 0x3E, 0x80, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x3E, 0xCC, 0xCC, 0xCD, - 0x3F, 0x99, 0x99, 0x9A, 0xC2, 0x16, 0x00, 0x00, 0x41, 0x00, 0x00, 0x00, 0x3E, 0x4C, 0xCC, 0xCD, - 0xC0, 0xE0, 0x00, 0x00, 0x40, 0xE0, 0x00, 0x00, +daAlinkHIO_wlSwim_c1 const daAlinkHIO_wlSwim_c0::m = { + { 25, 0.9f, 0.0f, 5.0f, -1.0f }, + { 45, 1.0f, 0.0f, 3.0f, 20.0f }, + { 28, 1.1f, 0.0f, 1.0f, 32.0f }, + 5, 1000, 1600, 5, 2500, 1024, 90.0f, 50.0f, 20.0f, 0.35f, -10.0f, 10.0f, 1.5f, 1.4f, 10.0f, 3.5f, 0.5f, 1.5f, 5.0f, 37.5f, 9.0f, 0.25f, 1.0f, 0.4f, 1.2f, -37.5f, 8.0f, 0.2f, -7.0f, 7.0f, }; -COMPILER_STRIP_GATE(0x8038F8B4, &daAlinkHIO_wlSwim_c0::m); /* 8038F95C-8038F9C0 01BFBC 0064+00 6/6 0/0 0/0 .rodata m__20daAlinkHIO_wlGrab_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wlGrab_c0::m[100] = { - 0x00, 0x14, 0x00, 0x00, 0x3F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0x41, 0x70, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0xBF, 0xA6, 0x66, 0x66, 0x00, 0x00, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x40, 0xA0, 0x00, 0x00, 0x00, 0x0E, 0x00, 0x00, 0x3F, - 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, - 0x00, 0x0E, 0x00, 0x00, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, - 0x00, 0xBF, 0x80, 0x00, 0x00, 0x00, 0x13, 0x00, 0x00, 0x3F, 0xA6, 0x66, 0x66, 0x40, 0x80, - 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x41, 0x70, 0x00, 0x00, +daAlinkHIO_wlGrab_c1 const daAlinkHIO_wlGrab_c0::m = { + { 20, 1.5f, 0.0f, 3.0f, 15.0f }, + { 20, -1.3f, 0.0f, 3.0f, 5.0f }, + { 14, 1.0f, 0.0f, 3.0f, 15.0f }, + { 14, -1.0f, 0.0f, 3.0f, -1.0f }, + { 19, 1.3f, 4.0f, 3.0f, 15.0f }, }; -COMPILER_STRIP_GATE(0x8038F95C, &daAlinkHIO_wlGrab_c0::m); /* 8038F9C0-8038F9F8 01C020 0038+00 0/0 0/0 0/0 .rodata m__20daAlinkHIO_wlBall_c0 */ #pragma push #pragma force_active on -SECTION_RODATA u8 const daAlinkHIO_wlBall_c0::m[56] = { - 0x00, 0x40, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, - 0x00, 0x00, 0x42, 0x0C, 0x00, 0x00, 0x00, 0x36, 0x00, 0x00, 0x3F, 0x80, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x40, 0x40, 0x00, 0x00, 0x42, 0x5C, 0x00, 0x00, 0x00, 0x3C, - 0x00, 0x00, 0xC0, 0xA0, 0x00, 0x00, 0x42, 0x70, 0x00, 0x00, 0x41, 0xA0, 0x00, 0x00, +daAlinkHIO_wlBall_c1 const daAlinkHIO_wlBall_c0::m = { + { 64, 1.0f, 0.0f, 3.0f, 35.0f }, + { 54, 1.0f, 0.0f, 3.0f, 55.0f }, + 60, -5.0f, 60.0f, 20.0f, }; -COMPILER_STRIP_GATE(0x8038F9C0, &daAlinkHIO_wlBall_c0::m); #pragma pop /* 8038F9F8-8038FA10 01C058 0018+00 5/6 0/0 0/0 .rodata m__18daAlinkHIO_wolf_c0 */ -SECTION_RODATA u8 const daAlinkHIO_wolf_c0::m[24] = { - 0x32, 0xC8, 0xD8, 0xF0, 0x1F, 0x40, 0x0F, 0xA0, 0xF8, 0x30, 0x1F, 0x40, - 0x00, 0x96, 0x00, 0x05, 0x00, 0x23, 0x00, 0x3C, 0x3F, 0x33, 0x33, 0x33, +daAlinkHIO_wolf_c1 const daAlinkHIO_wolf_c0::m = { + 13000, -10000, 8000, 4000, -2000, 8000, 150, 5, 35, 60, 0.7f, }; -COMPILER_STRIP_GATE(0x8038F9F8, &daAlinkHIO_wolf_c0::m); /* 800A142C-800A1AEC 09BD6C 06C0+00 1/1 0/0 0/0 .text getNeckAimAngle__9daAlink_cFP4cXyzPsPsPsPs */ @@ -6676,619 +6352,573 @@ COMPILER_STRIP_GATE(0x8038FC38, &daAlink_c::m_mainBckFishing); #pragma pop /* 8038FCA8-80391010 01C308 1368+00 3/4 0/0 0/0 .rodata m_anmDataTable__9daAlink_c */ -SECTION_RODATA u8 const daAlink_c::m_anmDataTable[4968] = { - 0x00, 0x25, 0x00, 0x24, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x23, 0x00, 0x22, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x12, 0x00, 0x12, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x10, 0x00, 0x10, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x21, 0x00, 0x1F, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x1E, 0x00, 0x1D, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x3C, 0x00, 0x3B, 0x04, 0x0A, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x2C, 0x00, 0x2B, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x3E, 0x00, 0x3D, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x2E, 0x00, 0x2D, - 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x30, 0x00, 0x2F, 0x04, 0x0A, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x28, 0x00, 0x27, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x32, 0x00, 0x31, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x2A, 0x00, 0x29, - 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x74, 0x02, 0x74, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x20, 0x00, 0x1A, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x1A, 0x00, 0x0E, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x0E, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x77, 0x02, 0x77, 0x04, 0x0A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xCD, 0x00, 0xC5, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x02, 0x43, 0x02, 0x43, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x59, 0x00, 0x00, 0x02, 0x33, 0x02, 0x33, - 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x34, 0x02, 0x34, 0x04, 0x0A, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x33, 0x02, 0x5C, 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x34, 0x02, 0x5C, 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x6A, 0x02, 0x6A, - 0x04, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x56, 0x02, 0x56, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x02, 0x57, 0x02, 0x57, 0x01, 0x06, 0x00, 0x00, 0x01, 0x5F, 0x00, 0x00, - 0x00, 0xC6, 0x00, 0xC6, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x36, 0x00, 0x36, - 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x00, 0x38, 0x00, 0x38, 0xFE, 0xFE, 0x00, 0x00, - 0x01, 0x48, 0x00, 0x00, 0x00, 0x35, 0x00, 0x35, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x37, 0x00, 0x37, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x34, 0x00, 0x34, - 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, 0x00, 0x33, 0x00, 0x33, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x02, 0x07, 0x02, 0x07, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x48, 0x00, 0x00, - 0x02, 0x09, 0x02, 0x09, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x08, 0x02, 0x08, - 0x01, 0x06, 0x00, 0x26, 0x01, 0x4F, 0x00, 0x00, 0x02, 0x06, 0x02, 0x06, 0x04, 0x0A, 0x00, 0x00, - 0x01, 0x48, 0x00, 0x00, 0x02, 0x05, 0x02, 0x05, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x02, 0x2F, 0x02, 0x2F, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x7B, 0x00, 0x7B, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x7E, 0xFE, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x13, 0x00, 0x13, 0xFE, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x15, 0x00, 0x15, 0xFE, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x7C, - 0xFE, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x17, 0x00, 0x17, 0xFE, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0xFE, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x14, 0x00, 0x14, 0x01, 0x06, 0x00, 0x7D, 0x00, 0xE9, 0x00, 0x00, 0x01, 0xA5, 0x01, 0xA5, - 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x47, 0x00, 0x00, 0x01, 0xA3, 0x01, 0xA3, 0xFE, 0xFE, 0x00, 0x00, - 0x01, 0x47, 0x00, 0x00, 0x01, 0xA4, 0x01, 0xA4, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0xB4, 0x01, 0xB4, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xB5, 0x01, 0xB5, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x69, 0x02, 0x69, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0xF7, 0x01, 0xF7, 0xFE, 0xFE, 0x00, 0x0A, 0x01, 0x4D, 0x00, 0x00, - 0x01, 0xF6, 0x01, 0xF6, 0xFE, 0xFE, 0x00, 0x04, 0x00, 0xE8, 0x00, 0x00, 0x01, 0xF5, 0x01, 0xF5, - 0xFE, 0xFE, 0x00, 0x04, 0x00, 0xE8, 0x00, 0x00, 0x01, 0xF4, 0x01, 0xF4, 0x00, 0x05, 0x00, 0x0B, - 0x01, 0x4C, 0x00, 0x00, 0x01, 0xF3, 0x01, 0xF3, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0xF2, 0x01, 0xF2, 0x00, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0xFE, 0x01, 0xFE, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xFF, 0x01, 0xFF, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0xFD, 0x01, 0xFD, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x00, 0xE1, 0x00, 0xE1, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0xE2, 0x00, 0xE2, - 0x04, 0x0A, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x35, 0x02, 0x35, 0x04, 0x05, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x02, 0x36, 0x02, 0x36, 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x02, 0x32, 0x02, 0x32, 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0xA2, 0x01, 0xA2, - 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0xA0, 0x01, 0xA0, 0x04, 0x05, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0xA1, 0x01, 0xA1, 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x02, 0x66, 0x02, 0x66, 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x75, 0x02, 0x75, - 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x76, 0x02, 0x76, 0x04, 0x05, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xCA, 0x00, 0xCA, 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0xCB, 0x00, 0xCB, 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x03, 0x0D, 0x02, 0x66, - 0x04, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xDD, 0x00, 0xDD, 0x04, 0x05, 0x00, 0x00, - 0x01, 0x02, 0x00, 0x00, 0x01, 0xB3, 0x01, 0xB3, 0x04, 0x05, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, - 0x00, 0x95, 0x00, 0x95, 0x64, 0x05, 0x00, 0x24, 0x01, 0x10, 0x00, 0x00, 0x02, 0x38, 0x02, 0x38, - 0x04, 0x05, 0x00, 0x37, 0x01, 0x52, 0x00, 0x00, 0x02, 0x39, 0x02, 0x39, 0x04, 0x05, 0x00, 0x38, - 0x00, 0x00, 0x00, 0x00, 0x00, 0xD6, 0x00, 0xD6, 0x04, 0x0A, 0x00, 0x58, 0x01, 0x2C, 0x00, 0x00, - 0x02, 0x4B, 0x02, 0x4B, 0x04, 0x05, 0x00, 0x25, 0x00, 0x00, 0x00, 0x00, 0x02, 0x65, 0x02, 0x65, - 0x04, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x30, 0x02, 0x30, 0x04, 0x05, 0x00, 0x6D, - 0x01, 0x50, 0x00, 0x00, 0x02, 0x31, 0x02, 0x31, 0x04, 0x05, 0x00, 0x6D, 0x01, 0x50, 0x00, 0x00, - 0x01, 0x75, 0x01, 0x75, 0x04, 0x05, 0x00, 0x6E, 0x01, 0x41, 0x00, 0x00, 0x01, 0x76, 0x01, 0x76, - 0x04, 0x05, 0x00, 0x6E, 0x01, 0x41, 0x00, 0x00, 0x02, 0x4C, 0x02, 0x4C, 0x04, 0x05, 0x00, 0x72, - 0x00, 0x00, 0x00, 0x00, 0x02, 0x4D, 0x02, 0x4D, 0x04, 0x05, 0x00, 0x73, 0x00, 0x00, 0x00, 0x00, - 0x02, 0x00, 0x02, 0x00, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x01, 0x02, 0x01, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0xE3, 0x00, 0xE3, 0x04, 0x0A, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x00, 0xE4, 0x00, 0xE4, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x70, 0x02, 0x70, 0xFE, 0xFE, 0x00, 0x10, 0x01, 0x65, 0x00, 0x00, 0x02, 0x6F, 0x02, 0x6F, - 0x04, 0x05, 0x00, 0x11, 0x01, 0x64, 0x00, 0x00, 0x00, 0x7F, 0x00, 0x7F, 0x64, 0x06, 0x00, 0x2E, - 0x01, 0x03, 0x00, 0x00, 0x00, 0x99, 0x00, 0x99, 0x00, 0x06, 0x00, 0x2F, 0x01, 0x13, 0x00, 0x00, - 0x00, 0x9A, 0x00, 0x9A, 0x00, 0x06, 0x00, 0x30, 0x01, 0x14, 0x00, 0x00, 0x00, 0x8F, 0x00, 0x8F, - 0x64, 0x06, 0x00, 0x31, 0x01, 0x0B, 0x00, 0x00, 0x00, 0x90, 0x00, 0x90, 0x64, 0x06, 0x00, 0x31, - 0x01, 0x0B, 0x00, 0x00, 0x00, 0x84, 0x00, 0x84, 0x64, 0x06, 0x00, 0x32, 0x01, 0x06, 0x00, 0x00, - 0x00, 0x85, 0x00, 0x85, 0x64, 0x06, 0x00, 0x33, 0x01, 0x07, 0x00, 0x00, 0x00, 0x86, 0x00, 0x86, - 0x64, 0x05, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0x8A, 0x00, 0x8A, 0x00, 0x05, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x00, 0x89, 0x00, 0x89, 0x64, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x00, 0x8B, 0x00, 0x8B, 0x64, 0x05, 0x00, 0x34, 0x01, 0x08, 0x00, 0x00, 0x00, 0x88, 0x00, 0x88, - 0x00, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x87, 0x00, 0x87, 0x64, 0x05, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x00, 0x9B, 0x00, 0x9B, 0x00, 0x06, 0x00, 0x59, 0x01, 0x15, 0x00, 0x00, - 0x00, 0x9C, 0x00, 0x9C, 0x00, 0x06, 0x00, 0x59, 0x01, 0x15, 0x00, 0x00, 0x00, 0x98, 0x00, 0x98, - 0x64, 0x06, 0x00, 0x3C, 0x01, 0x12, 0x00, 0x00, 0x00, 0x97, 0x00, 0x97, 0x64, 0x06, 0x00, 0x3D, - 0x01, 0x11, 0x00, 0x00, 0x00, 0x9F, 0x00, 0x9F, 0x64, 0x06, 0x00, 0x3A, 0x01, 0x18, 0x00, 0x00, - 0x00, 0x9E, 0x00, 0x9E, 0x64, 0x06, 0x00, 0x3B, 0x01, 0x17, 0x00, 0x00, 0x00, 0xA4, 0x00, 0xA4, - 0x00, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0xA5, 0x00, 0xA5, 0x64, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0xA6, 0x00, 0xA6, 0x64, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0xAA, 0x00, 0xAA, 0x00, 0x05, 0x00, 0x00, 0x01, 0x05, 0x00, 0x00, 0x00, 0xA7, 0x00, 0xA7, - 0x00, 0x05, 0x00, 0x5A, 0x01, 0x1D, 0x00, 0x00, 0x00, 0xA8, 0x00, 0xA8, 0x00, 0x05, 0x00, 0x00, - 0x01, 0x1E, 0x00, 0x00, 0x00, 0xA9, 0x00, 0xA9, 0x64, 0x05, 0x00, 0x12, 0x01, 0x1F, 0x00, 0x00, - 0x00, 0x8E, 0x00, 0x8E, 0x00, 0x06, 0x00, 0x7F, 0x01, 0x0A, 0x00, 0x00, 0x00, 0x8C, 0x00, 0x8C, - 0x00, 0x06, 0x00, 0x80, 0x01, 0x09, 0x00, 0x00, 0x00, 0x8D, 0x00, 0x8D, 0x00, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0xAE, 0x00, 0xAE, 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, - 0x00, 0xAC, 0x00, 0xAC, 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xBD, 0x00, 0xBD, - 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xBE, 0x00, 0xBE, 0x01, 0x06, 0x00, 0x27, - 0x00, 0xEA, 0x00, 0x00, 0x00, 0xB2, 0x00, 0xB2, 0xFE, 0xFE, 0x00, 0x28, 0x00, 0xF8, 0x00, 0x00, - 0x00, 0xAF, 0x00, 0xAF, 0xFE, 0xFE, 0x00, 0x28, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xB4, 0x00, 0xB4, - 0xFE, 0xFE, 0x00, 0x28, 0x00, 0xF8, 0x00, 0x00, 0x00, 0xB6, 0x00, 0xB6, 0xFE, 0xFE, 0x00, 0x28, - 0x00, 0xF8, 0x00, 0x00, 0x00, 0xB3, 0x00, 0xB3, 0xFE, 0xFE, 0x00, 0x2A, 0x01, 0x24, 0x00, 0x00, - 0x00, 0xB0, 0x00, 0xB0, 0xFE, 0xFE, 0x00, 0x2B, 0x01, 0x22, 0x00, 0x00, 0x00, 0xB5, 0x00, 0xB5, - 0xFE, 0xFE, 0x00, 0x2C, 0x01, 0x25, 0x00, 0x00, 0x00, 0xB7, 0x00, 0xB7, 0xFE, 0xFE, 0x00, 0x2C, - 0x01, 0x25, 0x00, 0x00, 0x00, 0xAB, 0x00, 0xAB, 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, - 0x01, 0xAF, 0x01, 0xAF, 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, 0x01, 0xB0, 0x01, 0xB0, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0x44, 0x01, 0x44, 0x00, 0x06, 0x00, 0x06, - 0x01, 0x31, 0x00, 0x00, 0x01, 0x45, 0x01, 0x45, 0x00, 0x0A, 0x00, 0x07, 0x01, 0x32, 0x00, 0x00, - 0x02, 0x37, 0x02, 0x37, 0x04, 0x0A, 0x00, 0x1C, 0x01, 0x51, 0x00, 0x00, 0x02, 0x4F, 0x02, 0x4F, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x50, 0x02, 0x50, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x51, 0x02, 0x51, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x52, 0x02, 0x52, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0x74, 0x01, 0x74, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0x7A, 0x01, 0x7A, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0x78, 0x01, 0x78, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0x79, 0x01, 0x79, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xAE, 0x01, 0xAE, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xAC, 0x01, 0xAC, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0xAD, 0x01, 0xAD, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0xA9, 0x01, 0xA9, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xA7, 0x01, 0xA7, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xA8, 0x01, 0xA8, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0xAB, 0x01, 0xAB, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0xAA, 0x01, 0xAA, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x6A, 0x00, 0x6A, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x70, 0x00, 0x70, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x6C, 0x00, 0x6C, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x6D, 0x00, 0x6D, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x6E, 0x00, 0x6E, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x6F, 0x00, 0x6F, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x6B, 0x00, 0x6B, 0x03, 0x09, 0x00, 0x5C, 0x00, 0xFE, 0x00, 0x00, - 0x02, 0x0F, 0x02, 0x0F, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x10, 0x02, 0x10, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x0A, 0x02, 0x0A, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x02, 0x0C, 0x02, 0x0C, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x02, 0x0D, 0x02, 0x0D, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x0E, 0x02, 0x0E, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x0B, 0x02, 0x0B, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x6E, 0x01, 0x6E, 0xFE, 0xFE, 0x00, 0x18, 0x01, 0x39, 0x00, 0x00, - 0x01, 0x71, 0x01, 0x71, 0xFE, 0xFE, 0x00, 0x19, 0x01, 0x3C, 0x00, 0x00, 0x01, 0x70, 0x01, 0x70, - 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x3B, 0x00, 0x00, 0x01, 0x7B, 0x01, 0x7B, 0xFE, 0xFE, 0x00, 0x1A, - 0x01, 0x42, 0x00, 0x00, 0x01, 0x6D, 0x01, 0x6D, 0xFE, 0xFE, 0x00, 0x1B, 0x01, 0x38, 0x00, 0x00, - 0x01, 0x6F, 0x01, 0x6F, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x3A, 0x00, 0x00, 0x00, 0x5F, 0x00, 0x5F, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x5C, 0x02, 0x5C, 0x04, 0x0A, 0x00, 0x01, - 0x01, 0x60, 0x00, 0x00, 0x02, 0x54, 0x02, 0x54, 0x04, 0x0A, 0x00, 0x01, 0x01, 0x5D, 0x00, 0x00, - 0x02, 0x49, 0x02, 0x49, 0x04, 0x0A, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x6C, 0x02, 0x6C, - 0x01, 0x06, 0x00, 0x0C, 0x01, 0x63, 0x00, 0x00, 0x00, 0x9D, 0x00, 0x9D, 0x01, 0x06, 0x00, 0x0D, - 0x01, 0x16, 0x00, 0x00, 0x00, 0x52, 0x00, 0x52, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x02, 0x78, 0x02, 0x78, 0x01, 0x06, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x2D, 0x02, 0x2D, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x2B, 0x02, 0x2B, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x2E, 0x02, 0x2E, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x2C, 0x02, 0x2C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x3E, 0x02, 0x3E, - 0xFE, 0xFE, 0x00, 0x15, 0x01, 0x56, 0x00, 0x00, 0x02, 0x42, 0x02, 0x42, 0xFE, 0xFE, 0x00, 0x16, - 0x01, 0x58, 0x00, 0x00, 0x00, 0x39, 0x00, 0x39, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x3A, 0x00, 0x3A, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x11, 0x00, 0x11, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x3A, 0x02, 0x3A, 0xFE, 0xFE, 0x00, 0x03, - 0x00, 0xE8, 0x00, 0x00, 0x02, 0x3D, 0x02, 0x3D, 0xFE, 0xFE, 0x00, 0x17, 0x01, 0x55, 0x00, 0x00, - 0x02, 0x41, 0x02, 0x41, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x40, 0x02, 0x40, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0xC1, 0x00, 0xC1, 0x01, 0x06, 0x00, 0x27, - 0x00, 0xEA, 0x00, 0x00, 0x00, 0xC0, 0x00, 0xC0, 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, - 0x00, 0xC2, 0x00, 0xC2, 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xC3, 0x00, 0xC3, - 0x01, 0x06, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, 0x00, 0xC4, 0x00, 0xC4, 0x01, 0x06, 0x00, 0x27, - 0x00, 0xEA, 0x00, 0x00, 0x00, 0x57, 0x00, 0x57, 0xFE, 0xFE, 0x00, 0x4D, 0x00, 0xF7, 0x00, 0x00, - 0x00, 0x56, 0x00, 0x56, 0xFE, 0xFE, 0x00, 0x4E, 0x00, 0xF6, 0x00, 0x00, 0x00, 0x55, 0x00, 0x55, - 0xFE, 0xFE, 0x00, 0x4F, 0x00, 0xF5, 0x00, 0x00, 0x01, 0x69, 0x01, 0x69, 0xFE, 0xFE, 0x00, 0x00, - 0x01, 0x34, 0x00, 0x00, 0x01, 0x6A, 0x01, 0x6A, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, - 0x01, 0x6A, 0x02, 0x6A, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x33, 0x00, 0x00, 0x01, 0x6A, 0x01, 0x7D, - 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x33, 0x00, 0x00, 0x02, 0x4A, 0x02, 0x4A, 0x04, 0x0A, 0x00, 0x29, - 0x01, 0x5A, 0x00, 0x00, 0x02, 0x53, 0x02, 0x53, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x5C, 0x00, 0x00, - 0x02, 0x6B, 0x02, 0x6B, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x5B, 0x02, 0x5A, - 0xFE, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x5B, 0x02, 0x5B, 0x00, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x6B, 0x02, 0x15, 0xFE, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x6B, 0x02, 0x16, 0x00, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x6B, 0x02, 0x13, - 0xFE, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x6B, 0x02, 0x14, 0x00, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x6B, 0x00, 0x67, 0xFE, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x00, 0x5A, 0x00, 0x5A, 0x02, 0xFE, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x00, 0x5B, 0x00, 0x5B, - 0x02, 0xFE, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, 0x00, 0x5C, 0x00, 0x5C, 0x02, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x00, 0x5E, 0x00, 0x5E, 0x02, 0x05, 0x00, 0x78, 0x00, 0xF9, 0x00, 0x00, - 0x01, 0xEB, 0x01, 0xEB, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xFA, 0x01, 0xFA, - 0x02, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xFC, 0x01, 0xFC, 0x02, 0x05, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0xB2, 0x01, 0xB2, 0x02, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x00, 0xD9, 0x00, 0xD9, 0x04, 0x0A, 0x00, 0x1E, 0x01, 0x2D, 0x00, 0x00, 0x00, 0xDA, 0x00, 0xDA, - 0x04, 0x0A, 0x00, 0x1F, 0x01, 0x2E, 0x00, 0x00, 0x00, 0xD7, 0x00, 0xD7, 0x03, 0x0A, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x00, 0xD8, 0x00, 0xD8, 0x03, 0x0A, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x00, 0xDB, 0x00, 0xDB, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0xDC, 0x00, 0xDC, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xEC, 0x01, 0xEC, 0xFE, 0xFE, 0x00, 0x1D, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x11, 0x02, 0x11, 0x01, 0x06, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0xE4, 0x01, 0xE4, 0x01, 0x06, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xE5, 0x01, 0xE5, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x28, 0x02, 0x28, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x20, 0x02, 0x20, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x1F, 0x02, 0x1F, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x25, 0x02, 0x25, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x23, 0x02, 0x23, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x21, 0x02, 0x21, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x22, 0x02, 0x22, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x24, 0x02, 0x24, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x02, 0x27, 0x02, 0x27, 0x64, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x02, 0x26, 0x02, 0x26, 0x64, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x12, 0x02, 0x12, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x66, 0x00, 0x66, - 0xFE, 0xFE, 0x00, 0x35, 0x00, 0xFC, 0x00, 0x00, 0x00, 0x69, 0x00, 0x69, 0xFE, 0xFE, 0x00, 0x36, - 0x00, 0xFD, 0x00, 0x00, 0x02, 0x71, 0x02, 0x71, 0x04, 0x0A, 0x00, 0x00, 0x01, 0x66, 0x00, 0x00, - 0x00, 0x48, 0x00, 0x48, 0x03, 0xFE, 0x00, 0x3E, 0x00, 0xEE, 0x00, 0x00, 0x00, 0x46, 0x00, 0x46, - 0x03, 0xFE, 0x00, 0x3F, 0x00, 0xEC, 0x00, 0x00, 0x00, 0x47, 0x00, 0x47, 0x03, 0xFE, 0x00, 0x40, - 0x00, 0xED, 0x00, 0x00, 0x00, 0x45, 0x00, 0x45, 0x03, 0xFE, 0x00, 0x41, 0x00, 0xEB, 0x00, 0x00, - 0x00, 0x4B, 0x00, 0x4B, 0x03, 0xFE, 0x00, 0x42, 0x00, 0xF1, 0x00, 0x00, 0x00, 0x4C, 0x00, 0x4C, - 0x03, 0x05, 0x00, 0x43, 0x00, 0xF2, 0x00, 0x00, 0x00, 0x49, 0x00, 0x49, 0x03, 0x05, 0x00, 0x44, - 0x00, 0xEF, 0x00, 0x00, 0x00, 0x4E, 0x00, 0x4E, 0x03, 0xFE, 0x00, 0x45, 0x00, 0xF3, 0x00, 0x00, - 0x00, 0x4F, 0x00, 0x4F, 0x03, 0xFE, 0x00, 0x46, 0x00, 0xF4, 0x00, 0x00, 0x00, 0x4A, 0x00, 0x4A, - 0x03, 0xFE, 0x00, 0x47, 0x00, 0xF0, 0x00, 0x00, 0x00, 0x4D, 0x00, 0x4D, 0x03, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0xB6, 0x01, 0xB6, 0x00, 0x0A, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0xEF, 0x01, 0xEF, 0x00, 0x09, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xED, 0x01, 0xED, - 0x00, 0x09, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0xEE, 0x01, 0xEE, 0x00, 0x09, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0x73, 0x01, 0x73, 0x02, 0xFE, 0x00, 0x4A, 0x01, 0x3F, 0x00, 0x00, - 0x01, 0x72, 0x01, 0x72, 0x02, 0xFE, 0x00, 0x4C, 0x01, 0x3E, 0x00, 0x00, 0x00, 0x61, 0x00, 0x61, - 0x02, 0xFE, 0x00, 0x4B, 0x00, 0xFB, 0x00, 0x00, 0x02, 0x6D, 0x02, 0x6D, 0x02, 0xFE, 0x00, 0x4B, - 0x00, 0xFB, 0x00, 0x00, 0x02, 0x5D, 0x02, 0x5D, 0x01, 0x06, 0x00, 0x0E, 0x01, 0x63, 0x00, 0x00, - 0x02, 0x62, 0x02, 0x62, 0x01, 0x06, 0x00, 0x0F, 0x01, 0x61, 0x00, 0x00, 0x01, 0xE3, 0x01, 0xE3, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0xD4, 0x00, 0xD4, 0x04, 0x0A, 0x00, 0x50, - 0x01, 0x2A, 0x00, 0x00, 0x00, 0xD5, 0x00, 0xD5, 0x04, 0x0A, 0x00, 0x51, 0x01, 0x2B, 0x00, 0x00, - 0x02, 0x3B, 0x02, 0x3B, 0xFE, 0xFE, 0x00, 0x52, 0x01, 0x53, 0x00, 0x00, 0x02, 0x3C, 0x02, 0x3C, - 0xFE, 0xFE, 0x00, 0x53, 0x01, 0x54, 0x00, 0x00, 0x00, 0x72, 0x00, 0x72, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xFF, 0x00, 0x00, 0x00, 0x74, 0x00, 0x74, 0x03, 0x09, 0x00, 0x55, 0x01, 0x00, 0x00, 0x00, - 0x00, 0x73, 0x00, 0x73, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x71, 0x00, 0x71, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x75, 0x00, 0x75, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x77, 0x00, 0x77, 0x03, 0x09, 0x00, 0x56, 0x01, 0x01, 0x00, 0x00, - 0x00, 0x78, 0x00, 0x78, 0x03, 0x09, 0x00, 0x57, 0x01, 0x01, 0x00, 0x00, 0x00, 0x1C, 0x00, 0x79, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x00, 0x7A, 0x00, 0x7A, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x76, 0x00, 0x76, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x30, 0x00, 0x00, - 0x00, 0xDE, 0x00, 0xDE, 0x04, 0x0A, 0x00, 0x54, 0x01, 0x2F, 0x00, 0x00, 0x00, 0xE0, 0x00, 0xE0, - 0xFE, 0xFE, 0x00, 0x28, 0x00, 0xF8, 0x00, 0x00, 0x00, 0x08, 0x00, 0x08, 0x00, 0x05, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x02, 0x2A, 0x02, 0x2A, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x29, 0x02, 0x29, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x01, 0x8A, 0x01, 0x8A, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x8B, 0x01, 0x8B, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x8C, 0x01, 0x8C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0x80, 0x01, 0x80, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x81, 0x01, 0x81, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x82, 0x01, 0x82, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x84, 0x01, 0x84, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0x88, 0x01, 0x88, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x89, 0x01, 0x89, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x86, 0x01, 0x86, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x87, 0x01, 0x87, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0x83, 0x01, 0x83, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x85, 0x01, 0x85, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x8E, 0x01, 0x8E, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x8F, 0x01, 0x8F, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0x90, 0x01, 0x90, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x91, 0x01, 0x91, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x94, 0x01, 0x94, 0x01, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x95, 0x01, 0x95, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0x92, 0x01, 0x92, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x93, 0x01, 0x93, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0xF8, 0x01, 0xF8, 0xFE, 0xFE, 0x00, 0x00, - 0x01, 0x4E, 0x00, 0x00, 0x10, 0x2E, 0x10, 0x2E, 0x00, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x2D, 0x10, 0x2D, 0x00, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x0A, 0x10, 0x0A, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x08, 0x10, 0x08, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x10, 0x09, 0x10, 0x09, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x07, 0x10, 0x07, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x21, 0x10, 0x21, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x23, 0x10, 0x23, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x10, 0x22, 0x10, 0x22, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x24, 0x10, 0x24, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x25, 0x10, 0x25, - 0xFE, 0xFE, 0x00, 0x5E, 0x10, 0x11, 0x00, 0x00, 0x10, 0x28, 0x10, 0x28, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x10, 0x29, 0x10, 0x29, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x26, 0x10, 0x26, 0xFE, 0xFE, 0x00, 0x5F, 0x10, 0x12, 0x00, 0x00, 0x10, 0x27, 0x10, 0x27, - 0xFE, 0xFE, 0x00, 0x5F, 0x10, 0x12, 0x00, 0x00, 0x10, 0x2A, 0x10, 0x2A, 0xFE, 0xFE, 0x00, 0x63, - 0x10, 0x13, 0x00, 0x00, 0x10, 0x19, 0x10, 0x19, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x1B, 0x10, 0x1B, 0xFE, 0xFE, 0x00, 0x61, 0x10, 0x0E, 0x00, 0x00, 0x10, 0x1C, 0x10, 0x1C, - 0xFE, 0xFE, 0x00, 0x62, 0x10, 0x0F, 0x00, 0x00, 0x10, 0x1A, 0x10, 0x1A, 0xFE, 0xFE, 0x00, 0x60, - 0x10, 0x0D, 0x00, 0x00, 0x10, 0x20, 0x10, 0x20, 0xFE, 0xFE, 0x00, 0x5F, 0x10, 0x12, 0x00, 0x00, - 0x10, 0x1D, 0x10, 0x1D, 0xFE, 0xFE, 0x00, 0x65, 0x10, 0x10, 0x00, 0x00, 0x10, 0x17, 0x10, 0x17, - 0xFE, 0xFE, 0x00, 0x64, 0x10, 0x0C, 0x00, 0x00, 0x10, 0x18, 0x10, 0x18, 0xFE, 0xFE, 0x00, 0x64, - 0x10, 0x0C, 0x00, 0x00, 0x10, 0x2B, 0x10, 0x2B, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x2C, 0x10, 0x2C, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x15, 0x10, 0x15, - 0xFE, 0xFE, 0x00, 0x66, 0x10, 0x0B, 0x00, 0x00, 0x10, 0x16, 0x10, 0x16, 0xFE, 0xFE, 0x00, 0x66, - 0x10, 0x0B, 0x00, 0x00, 0x10, 0x06, 0x10, 0x06, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x10, 0x14, 0x10, 0x14, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x1E, 0x10, 0x1E, - 0x00, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x10, 0x1F, 0x10, 0x1F, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x00, 0xB1, 0x00, 0xB1, 0xFE, 0xFE, 0x00, 0x5D, 0x01, 0x23, 0x00, 0x00, - 0x01, 0x9C, 0x01, 0x9C, 0xFE, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x9D, 0x01, 0x9D, - 0xFE, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x96, 0x01, 0x96, 0x00, 0x05, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x9B, 0x01, 0x9B, 0x00, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x01, 0x9A, 0x01, 0x9A, 0x00, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x99, 0x01, 0x99, - 0x00, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x97, 0x01, 0x97, 0xFE, 0x05, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x01, 0x98, 0x01, 0x98, 0xFE, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x20, 0x0C, 0x20, 0x0C, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x20, 0x0D, 0x20, 0x0D, - 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x20, 0x0E, 0x20, 0x0E, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x20, 0x0F, 0x20, 0x0F, 0x64, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x20, 0x09, 0x20, 0x09, 0x64, 0x09, 0x00, 0x67, 0x00, 0xE8, 0x00, 0x00, 0x20, 0x0A, 0x20, 0x0A, - 0x64, 0x09, 0x00, 0x68, 0x00, 0xE8, 0x00, 0x00, 0x20, 0x0B, 0x20, 0x0B, 0x64, 0x0A, 0x00, 0x69, - 0x20, 0x08, 0x00, 0x00, 0x20, 0x10, 0x20, 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x50, 0x0D, 0x50, 0x0D, 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x50, 0x0E, 0x50, 0x0E, - 0x01, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x50, 0x0A, 0x50, 0x0A, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x50, 0x0B, 0x50, 0x0B, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x50, 0x0C, 0x50, 0x0C, 0x64, 0xFE, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x50, 0x07, 0x50, 0x07, - 0x64, 0x09, 0x00, 0x6A, 0x00, 0xE8, 0x00, 0x00, 0x50, 0x08, 0x50, 0x08, 0x64, 0x09, 0x00, 0x6B, - 0x00, 0xE8, 0x00, 0x00, 0x50, 0x09, 0x50, 0x09, 0x64, 0x0A, 0x00, 0x6C, 0x50, 0x0F, 0x00, 0x00, - 0x02, 0x03, 0x02, 0x03, 0x02, 0x05, 0x00, 0x6F, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x04, 0x02, 0x04, - 0x02, 0x05, 0x00, 0x70, 0x00, 0xE8, 0x00, 0x00, 0x01, 0x6B, 0x01, 0x6B, 0x02, 0x0A, 0x00, 0x71, - 0x01, 0x35, 0x00, 0x00, 0x02, 0x5E, 0x02, 0x5E, 0x03, 0x09, 0x00, 0x27, 0x00, 0xEA, 0x00, 0x00, - 0x01, 0xE6, 0x01, 0xE6, 0x03, 0x09, 0x00, 0x28, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xE7, 0x01, 0xE7, - 0x03, 0x09, 0x00, 0x28, 0x00, 0xF8, 0x00, 0x00, 0x01, 0xA6, 0x01, 0xA6, 0x04, 0x05, 0x00, 0x74, - 0x01, 0x4A, 0x00, 0x00, 0x02, 0x66, 0x01, 0x6A, 0xFE, 0xFE, 0x00, 0x00, 0x01, 0x36, 0x00, 0x00, - 0x30, 0x04, 0x30, 0x04, 0x01, 0x06, 0x00, 0x00, 0x30, 0x03, 0x00, 0x00, 0x00, 0x65, 0x00, 0x65, - 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, 0x00, 0x62, 0x00, 0x62, 0x03, 0x09, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0x64, 0x00, 0x64, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x00, 0x63, 0x00, 0x63, 0x03, 0x09, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x02, 0x67, 0x02, 0x67, - 0x04, 0x0A, 0x00, 0x79, 0x01, 0x62, 0x00, 0x00, 0x00, 0xD0, 0x00, 0xD0, 0x04, 0x0A, 0x00, 0x7E, - 0x01, 0x27, 0x00, 0x00, 0x01, 0x77, 0x01, 0x77, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x02, 0x79, 0x02, 0x79, 0x04, 0x0A, 0x00, 0x00, 0x01, 0x67, 0x00, 0x00, 0x02, 0x7A, 0x02, 0x7A, - 0x04, 0x0A, 0x00, 0x00, 0x01, 0x33, 0x00, 0x00, 0x00, 0xCF, 0x00, 0xCF, 0x00, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x00, 0xA2, 0x00, 0xA2, 0x64, 0x06, 0x00, 0x81, 0x01, 0x1B, 0x00, 0x00, - 0x00, 0xA3, 0x00, 0xA3, 0x64, 0x06, 0x00, 0x81, 0x00, 0xE8, 0x00, 0x00, 0x00, 0xA0, 0x00, 0xA0, - 0x64, 0x06, 0x00, 0x83, 0x01, 0x19, 0x00, 0x00, 0x00, 0xA1, 0x00, 0xA1, 0x64, 0x06, 0x00, 0x84, - 0x01, 0x1A, 0x00, 0x00, 0x60, 0x0B, 0x60, 0x0B, 0x00, 0x0A, 0x00, 0x85, 0x60, 0x09, 0x00, 0x00, - 0x60, 0x0C, 0x60, 0x0C, 0x00, 0x05, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x60, 0x0A, 0x60, 0x0A, - 0x64, 0x05, 0x00, 0x00, 0x60, 0x08, 0x00, 0x00, 0x70, 0x0A, 0x70, 0x0A, 0x00, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x70, 0x0B, 0x70, 0x0B, 0x00, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, - 0x70, 0x0C, 0x70, 0x0C, 0x00, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x70, 0x0E, 0x70, 0x0E, - 0x00, 0x06, 0x00, 0x00, 0x00, 0xE8, 0x00, 0x00, 0x70, 0x0D, 0x70, 0x0D, 0x00, 0x06, 0x00, 0x00, - 0x00, 0xE8, 0x00, 0x00, 0x70, 0x08, 0x70, 0x08, 0x00, 0x05, 0x00, 0x86, 0x70, 0x10, 0x00, 0x00, - 0x70, 0x09, 0x70, 0x09, 0x00, 0x05, 0x00, 0x00, 0x70, 0x11, 0x00, 0x00, 0x02, 0x66, 0x70, 0x0F, - 0x04, 0x05, 0x00, 0x87, 0x70, 0x12, 0x00, 0x00, 0x01, 0x9F, 0x01, 0x9F, 0xFE, 0xFE, 0x00, 0x00, - 0x00, 0xDF, 0x00, 0x00, 0x01, 0x9E, 0x01, 0x9E, 0xFE, 0xFE, 0x00, 0x00, 0x00, 0xDF, 0x00, 0x00, - 0x01, 0xEA, 0x01, 0xEA, 0xFE, 0xFE, 0x00, 0x88, 0x01, 0x4B, 0x00, 0x00, 0x00, 0x0B, 0x00, 0x0B, - 0xFE, 0xFE, 0x00, 0x89, 0x00, 0xE7, 0x00, 0x00, +daAlink_AnmData const daAlink_c::m_anmDataTable[414] = { + { 37, 36, 254, 254, 0, 232, 0 }, + { 35, 34, 254, 254, 0, 232, 0 }, + { 18, 18, 254, 254, 0, 232, 0 }, + { 16, 16, 254, 254, 0, 232, 0 }, + { 33, 31, 254, 254, 0, 232, 0 }, + { 30, 29, 254, 254, 0, 232, 0 }, + { 60, 59, 4, 10, 0, 232, 0 }, + { 44, 43, 4, 10, 0, 232, 0 }, + { 62, 61, 4, 10, 0, 232, 0 }, + { 46, 45, 4, 10, 0, 232, 0 }, + { 48, 47, 4, 10, 0, 232, 0 }, + { 40, 39, 4, 10, 0, 232, 0 }, + { 50, 49, 4, 10, 0, 232, 0 }, + { 42, 41, 4, 10, 0, 232, 0 }, + { 628, 628, 254, 254, 0, 232, 0 }, + { 32, 26, 254, 254, 0, 0, 0 }, + { 26, 14, 254, 254, 0, 232, 0 }, + { 28, 14, 254, 254, 0, 232, 0 }, + { 631, 631, 4, 10, 0, 0, 0 }, + { 205, 197, 4, 10, 0, 232, 0 }, + { 579, 579, 254, 254, 0, 345, 0 }, + { 563, 563, 4, 10, 0, 0, 0 }, + { 564, 564, 4, 10, 0, 0, 0 }, + { 563, 604, 4, 10, 0, 0, 0 }, + { 564, 604, 4, 10, 0, 0, 0 }, + { 618, 618, 4, 10, 0, 0, 0 }, + { 598, 598, 1, 6, 0, 232, 0 }, + { 599, 599, 1, 6, 0, 351, 0 }, + { 198, 198, 1, 6, 0, 232, 0 }, + { 54, 54, 254, 254, 0, 328, 0 }, + { 56, 56, 254, 254, 0, 328, 0 }, + { 53, 53, 1, 6, 0, 232, 0 }, + { 55, 55, 1, 6, 0, 232, 0 }, + { 52, 52, 254, 254, 0, 328, 0 }, + { 51, 51, 1, 6, 0, 232, 0 }, + { 519, 519, 254, 254, 0, 328, 0 }, + { 521, 521, 254, 254, 0, 223, 0 }, + { 520, 520, 1, 6, 38, 335, 0 }, + { 518, 518, 4, 10, 0, 328, 0 }, + { 517, 517, 4, 10, 0, 232, 0 }, + { 559, 559, 254, 254, 0, 232, 0 }, + { 123, 123, 254, 254, 0, 0, 0 }, + { 126, 126, 254, 6, 0, 232, 0 }, + { 19, 19, 254, 6, 0, 232, 0 }, + { 21, 21, 254, 6, 0, 232, 0 }, + { 124, 124, 254, 6, 0, 232, 0 }, + { 23, 23, 254, 6, 0, 232, 0 }, + { 24, 24, 254, 6, 0, 232, 0 }, + { 20, 20, 1, 6, 125, 233, 0 }, + { 421, 421, 254, 254, 0, 327, 0 }, + { 419, 419, 254, 254, 0, 327, 0 }, + { 420, 420, 254, 254, 0, 223, 0 }, + { 436, 436, 254, 254, 0, 223, 0 }, + { 437, 437, 254, 254, 0, 223, 0 }, + { 617, 617, 254, 254, 0, 223, 0 }, + { 503, 503, 254, 254, 10, 333, 0 }, + { 502, 502, 254, 254, 4, 232, 0 }, + { 501, 501, 254, 254, 4, 232, 0 }, + { 500, 500, 0, 5, 11, 332, 0 }, + { 499, 499, 254, 254, 0, 232, 0 }, + { 498, 498, 0, 5, 0, 232, 0 }, + { 510, 510, 254, 254, 0, 223, 0 }, + { 511, 511, 254, 254, 0, 223, 0 }, + { 509, 509, 254, 254, 0, 223, 0 }, + { 225, 225, 4, 10, 0, 223, 0 }, + { 226, 226, 4, 10, 0, 223, 0 }, + { 565, 565, 4, 5, 0, 232, 0 }, + { 566, 566, 4, 5, 0, 232, 0 }, + { 562, 562, 4, 5, 0, 232, 0 }, + { 418, 418, 4, 5, 0, 232, 0 }, + { 416, 416, 4, 5, 0, 232, 0 }, + { 417, 417, 4, 5, 0, 232, 0 }, + { 614, 614, 4, 5, 0, 0, 0 }, + { 629, 629, 4, 5, 0, 0, 0 }, + { 630, 630, 4, 5, 0, 0, 0 }, + { 202, 202, 4, 5, 0, 232, 0 }, + { 203, 203, 4, 5, 0, 232, 0 }, + { 781, 614, 4, 5, 0, 0, 0 }, + { 221, 221, 4, 5, 0, 258, 0 }, + { 435, 435, 4, 5, 0, 261, 0 }, + { 149, 149, 100, 5, 36, 272, 0 }, + { 568, 568, 4, 5, 55, 338, 0 }, + { 569, 569, 4, 5, 56, 0, 0 }, + { 214, 214, 4, 10, 88, 300, 0 }, + { 587, 587, 4, 5, 37, 0, 0 }, + { 613, 613, 4, 5, 0, 232, 0 }, + { 560, 560, 4, 5, 109, 336, 0 }, + { 561, 561, 4, 5, 109, 336, 0 }, + { 373, 373, 4, 5, 110, 321, 0 }, + { 374, 374, 4, 5, 110, 321, 0 }, + { 588, 588, 4, 5, 114, 0, 0 }, + { 589, 589, 4, 5, 115, 0, 0 }, + { 512, 512, 254, 254, 0, 223, 0 }, + { 513, 513, 254, 254, 0, 223, 0 }, + { 227, 227, 4, 10, 0, 223, 0 }, + { 228, 228, 4, 10, 0, 223, 0 }, + { 624, 624, 254, 254, 16, 357, 0 }, + { 623, 623, 4, 5, 17, 356, 0 }, + { 127, 127, 100, 6, 46, 259, 0 }, + { 153, 153, 0, 6, 47, 275, 0 }, + { 154, 154, 0, 6, 48, 276, 0 }, + { 143, 143, 100, 6, 49, 267, 0 }, + { 144, 144, 100, 6, 49, 267, 0 }, + { 132, 132, 100, 6, 50, 262, 0 }, + { 133, 133, 100, 6, 51, 263, 0 }, + { 134, 134, 100, 5, 0, 261, 0 }, + { 138, 138, 0, 5, 0, 223, 0 }, + { 137, 137, 100, 5, 0, 223, 0 }, + { 139, 139, 100, 5, 52, 264, 0 }, + { 136, 136, 0, 5, 0, 223, 0 }, + { 135, 135, 100, 5, 0, 223, 0 }, + { 155, 155, 0, 6, 89, 277, 0 }, + { 156, 156, 0, 6, 89, 277, 0 }, + { 152, 152, 100, 6, 60, 274, 0 }, + { 151, 151, 100, 6, 61, 273, 0 }, + { 159, 159, 100, 6, 58, 280, 0 }, + { 158, 158, 100, 6, 59, 279, 0 }, + { 164, 164, 0, 6, 0, 232, 0 }, + { 165, 165, 100, 6, 0, 232, 0 }, + { 166, 166, 100, 6, 0, 232, 0 }, + { 170, 170, 0, 5, 0, 261, 0 }, + { 167, 167, 0, 5, 90, 285, 0 }, + { 168, 168, 0, 5, 0, 286, 0 }, + { 169, 169, 100, 5, 18, 287, 0 }, + { 142, 142, 0, 6, 127, 266, 0 }, + { 140, 140, 0, 6, 128, 265, 0 }, + { 141, 141, 0, 6, 0, 232, 0 }, + { 174, 174, 1, 6, 39, 234, 0 }, + { 172, 172, 1, 6, 39, 234, 0 }, + { 189, 189, 1, 6, 39, 234, 0 }, + { 190, 190, 1, 6, 39, 234, 0 }, + { 178, 178, 254, 254, 40, 248, 0 }, + { 175, 175, 254, 254, 40, 248, 0 }, + { 180, 180, 254, 254, 40, 248, 0 }, + { 182, 182, 254, 254, 40, 248, 0 }, + { 179, 179, 254, 254, 42, 292, 0 }, + { 176, 176, 254, 254, 43, 290, 0 }, + { 181, 181, 254, 254, 44, 293, 0 }, + { 183, 183, 254, 254, 44, 293, 0 }, + { 171, 171, 1, 6, 39, 234, 0 }, + { 431, 431, 1, 6, 39, 234, 0 }, + { 432, 432, 254, 254, 0, 223, 0 }, + { 324, 324, 0, 6, 6, 305, 0 }, + { 325, 325, 0, 10, 7, 306, 0 }, + { 567, 567, 4, 10, 28, 337, 0 }, + { 591, 591, 254, 254, 0, 223, 0 }, + { 592, 592, 254, 254, 0, 223, 0 }, + { 593, 593, 254, 254, 0, 223, 0 }, + { 594, 594, 254, 254, 0, 223, 0 }, + { 372, 372, 254, 254, 0, 223, 0 }, + { 378, 378, 254, 254, 0, 223, 0 }, + { 376, 376, 254, 254, 0, 223, 0 }, + { 377, 377, 254, 254, 0, 223, 0 }, + { 430, 430, 254, 254, 0, 223, 0 }, + { 428, 428, 254, 254, 0, 223, 0 }, + { 429, 429, 254, 254, 0, 223, 0 }, + { 425, 425, 254, 254, 0, 223, 0 }, + { 423, 423, 254, 254, 0, 223, 0 }, + { 424, 424, 254, 254, 0, 223, 0 }, + { 427, 427, 254, 254, 0, 223, 0 }, + { 426, 426, 254, 254, 0, 223, 0 }, + { 106, 106, 3, 9, 0, 232, 0 }, + { 112, 112, 3, 9, 0, 232, 0 }, + { 108, 108, 3, 9, 0, 232, 0 }, + { 109, 109, 3, 9, 0, 232, 0 }, + { 110, 110, 3, 9, 0, 232, 0 }, + { 111, 111, 3, 9, 0, 232, 0 }, + { 107, 107, 3, 9, 92, 254, 0 }, + { 527, 527, 3, 9, 0, 232, 0 }, + { 528, 528, 3, 9, 0, 232, 0 }, + { 522, 522, 3, 9, 0, 232, 0 }, + { 524, 524, 3, 9, 0, 232, 0 }, + { 525, 525, 3, 9, 0, 232, 0 }, + { 526, 526, 3, 9, 0, 232, 0 }, + { 523, 523, 3, 9, 0, 232, 0 }, + { 366, 366, 254, 254, 24, 313, 0 }, + { 369, 369, 254, 254, 25, 316, 0 }, + { 368, 368, 254, 254, 0, 315, 0 }, + { 379, 379, 254, 254, 26, 322, 0 }, + { 365, 365, 254, 254, 27, 312, 0 }, + { 367, 367, 254, 254, 0, 314, 0 }, + { 95, 95, 254, 254, 0, 223, 0 }, + { 604, 604, 4, 10, 1, 352, 0 }, + { 596, 596, 4, 10, 1, 349, 0 }, + { 585, 585, 4, 10, 0, 223, 0 }, + { 620, 620, 1, 6, 12, 355, 0 }, + { 157, 157, 1, 6, 13, 278, 0 }, + { 82, 82, 254, 254, 0, 232, 0 }, + { 632, 632, 1, 6, 0, 223, 0 }, + { 557, 557, 254, 254, 0, 223, 0 }, + { 555, 555, 254, 254, 0, 223, 0 }, + { 558, 558, 254, 254, 0, 223, 0 }, + { 556, 556, 254, 254, 0, 223, 0 }, + { 574, 574, 254, 254, 21, 342, 0 }, + { 578, 578, 254, 254, 22, 344, 0 }, + { 57, 57, 254, 254, 0, 232, 0 }, + { 58, 58, 254, 254, 0, 232, 0 }, + { 17, 17, 254, 254, 0, 232, 0 }, + { 570, 570, 254, 254, 3, 232, 0 }, + { 573, 573, 254, 254, 23, 341, 0 }, + { 577, 577, 254, 254, 0, 232, 0 }, + { 576, 576, 254, 254, 0, 232, 0 }, + { 193, 193, 1, 6, 39, 234, 0 }, + { 192, 192, 1, 6, 39, 234, 0 }, + { 194, 194, 1, 6, 39, 234, 0 }, + { 195, 195, 1, 6, 39, 234, 0 }, + { 196, 196, 1, 6, 39, 234, 0 }, + { 87, 87, 254, 254, 77, 247, 0 }, + { 86, 86, 254, 254, 78, 246, 0 }, + { 85, 85, 254, 254, 79, 245, 0 }, + { 361, 361, 254, 254, 0, 308, 0 }, + { 362, 362, 254, 254, 0, 310, 0 }, + { 362, 618, 254, 254, 0, 307, 0 }, + { 362, 381, 254, 254, 0, 307, 0 }, + { 586, 586, 4, 10, 41, 346, 0 }, + { 595, 595, 254, 254, 0, 348, 0 }, + { 619, 619, 254, 254, 0, 223, 0 }, + { 603, 602, 254, 5, 0, 223, 0 }, + { 603, 603, 0, 254, 0, 223, 0 }, + { 619, 533, 254, 5, 0, 223, 0 }, + { 619, 534, 0, 254, 0, 223, 0 }, + { 619, 531, 254, 5, 0, 223, 0 }, + { 619, 532, 0, 254, 0, 223, 0 }, + { 619, 103, 254, 5, 0, 223, 0 }, + { 90, 90, 2, 254, 0, 304, 0 }, + { 91, 91, 2, 254, 0, 304, 0 }, + { 92, 92, 2, 254, 0, 223, 0 }, + { 94, 94, 2, 5, 120, 249, 0 }, + { 491, 491, 254, 254, 0, 223, 0 }, + { 506, 506, 2, 5, 0, 223, 0 }, + { 508, 508, 2, 5, 0, 223, 0 }, + { 434, 434, 2, 5, 0, 223, 0 }, + { 217, 217, 4, 10, 30, 301, 0 }, + { 218, 218, 4, 10, 31, 302, 0 }, + { 215, 215, 3, 10, 0, 223, 0 }, + { 216, 216, 3, 10, 0, 223, 0 }, + { 219, 219, 254, 254, 0, 223, 0 }, + { 220, 220, 254, 254, 0, 223, 0 }, + { 492, 492, 254, 254, 29, 223, 0 }, + { 529, 529, 1, 6, 0, 223, 0 }, + { 484, 484, 1, 6, 0, 223, 0 }, + { 485, 485, 1, 6, 0, 223, 0 }, + { 552, 552, 254, 254, 0, 223, 0 }, + { 544, 544, 254, 254, 0, 223, 0 }, + { 543, 543, 254, 254, 0, 223, 0 }, + { 549, 549, 254, 254, 0, 223, 0 }, + { 547, 547, 254, 254, 0, 223, 0 }, + { 545, 545, 254, 254, 0, 223, 0 }, + { 546, 546, 254, 254, 0, 223, 0 }, + { 548, 548, 254, 254, 0, 223, 0 }, + { 551, 551, 100, 254, 0, 223, 0 }, + { 550, 550, 100, 254, 0, 223, 0 }, + { 530, 530, 254, 254, 0, 223, 0 }, + { 102, 102, 254, 254, 53, 252, 0 }, + { 105, 105, 254, 254, 54, 253, 0 }, + { 625, 625, 4, 10, 0, 358, 0 }, + { 72, 72, 3, 254, 62, 238, 0 }, + { 70, 70, 3, 254, 63, 236, 0 }, + { 71, 71, 3, 254, 64, 237, 0 }, + { 69, 69, 3, 254, 65, 235, 0 }, + { 75, 75, 3, 254, 66, 241, 0 }, + { 76, 76, 3, 5, 67, 242, 0 }, + { 73, 73, 3, 5, 68, 239, 0 }, + { 78, 78, 3, 254, 69, 243, 0 }, + { 79, 79, 3, 254, 70, 244, 0 }, + { 74, 74, 3, 254, 71, 240, 0 }, + { 77, 77, 3, 254, 0, 223, 0 }, + { 438, 438, 0, 10, 0, 223, 0 }, + { 495, 495, 0, 9, 0, 223, 0 }, + { 493, 493, 0, 9, 0, 223, 0 }, + { 494, 494, 0, 9, 0, 223, 0 }, + { 371, 371, 2, 254, 74, 319, 0 }, + { 370, 370, 2, 254, 76, 318, 0 }, + { 97, 97, 2, 254, 75, 251, 0 }, + { 621, 621, 2, 254, 75, 251, 0 }, + { 605, 605, 1, 6, 14, 355, 0 }, + { 610, 610, 1, 6, 15, 353, 0 }, + { 483, 483, 254, 254, 0, 223, 0 }, + { 212, 212, 4, 10, 80, 298, 0 }, + { 213, 213, 4, 10, 81, 299, 0 }, + { 571, 571, 254, 254, 82, 339, 0 }, + { 572, 572, 254, 254, 83, 340, 0 }, + { 114, 114, 3, 9, 0, 255, 0 }, + { 116, 116, 3, 9, 85, 256, 0 }, + { 115, 115, 3, 9, 0, 232, 0 }, + { 113, 113, 3, 9, 0, 232, 0 }, + { 117, 117, 3, 9, 0, 232, 0 }, + { 119, 119, 3, 9, 86, 257, 0 }, + { 120, 120, 3, 9, 87, 257, 0 }, + { 28, 121, 3, 9, 0, 232, 0 }, + { 122, 122, 3, 9, 0, 232, 0 }, + { 118, 118, 254, 254, 0, 304, 0 }, + { 222, 222, 4, 10, 84, 303, 0 }, + { 224, 224, 254, 254, 40, 248, 0 }, + { 8, 8, 0, 5, 0, 232, 0 }, + { 554, 554, 254, 254, 0, 223, 0 }, + { 553, 553, 254, 254, 0, 223, 0 }, + { 394, 394, 1, 6, 0, 232, 0 }, + { 395, 395, 1, 6, 0, 232, 0 }, + { 396, 396, 254, 254, 0, 232, 0 }, + { 384, 384, 1, 6, 0, 232, 0 }, + { 385, 385, 1, 6, 0, 232, 0 }, + { 386, 386, 1, 6, 0, 232, 0 }, + { 388, 388, 1, 6, 0, 232, 0 }, + { 392, 392, 1, 6, 0, 232, 0 }, + { 393, 393, 1, 6, 0, 232, 0 }, + { 390, 390, 1, 6, 0, 232, 0 }, + { 391, 391, 1, 6, 0, 232, 0 }, + { 387, 387, 1, 6, 0, 232, 0 }, + { 389, 389, 1, 6, 0, 232, 0 }, + { 398, 398, 1, 6, 0, 232, 0 }, + { 399, 399, 1, 6, 0, 232, 0 }, + { 400, 400, 1, 6, 0, 232, 0 }, + { 401, 401, 1, 6, 0, 232, 0 }, + { 404, 404, 1, 6, 0, 232, 0 }, + { 405, 405, 1, 6, 0, 232, 0 }, + { 402, 402, 1, 6, 0, 232, 0 }, + { 403, 403, 1, 6, 0, 232, 0 }, + { 504, 504, 254, 254, 0, 334, 0 }, + { 4142, 4142, 0, 5, 0, 223, 0 }, + { 4141, 4141, 0, 5, 0, 223, 0 }, + { 4106, 4106, 254, 254, 0, 223, 0 }, + { 4104, 4104, 254, 254, 0, 223, 0 }, + { 4105, 4105, 254, 254, 0, 223, 0 }, + { 4103, 4103, 254, 254, 0, 223, 0 }, + { 4129, 4129, 254, 254, 0, 223, 0 }, + { 4131, 4131, 254, 254, 0, 223, 0 }, + { 4130, 4130, 254, 254, 0, 223, 0 }, + { 4132, 4132, 254, 254, 0, 223, 0 }, + { 4133, 4133, 254, 254, 94, 4113, 0 }, + { 4136, 4136, 254, 254, 0, 223, 0 }, + { 4137, 4137, 254, 254, 0, 223, 0 }, + { 4134, 4134, 254, 254, 95, 4114, 0 }, + { 4135, 4135, 254, 254, 95, 4114, 0 }, + { 4138, 4138, 254, 254, 99, 4115, 0 }, + { 4121, 4121, 254, 254, 0, 223, 0 }, + { 4123, 4123, 254, 254, 97, 4110, 0 }, + { 4124, 4124, 254, 254, 98, 4111, 0 }, + { 4122, 4122, 254, 254, 96, 4109, 0 }, + { 4128, 4128, 254, 254, 95, 4114, 0 }, + { 4125, 4125, 254, 254, 101, 4112, 0 }, + { 4119, 4119, 254, 254, 100, 4108, 0 }, + { 4120, 4120, 254, 254, 100, 4108, 0 }, + { 4139, 4139, 254, 254, 0, 223, 0 }, + { 4140, 4140, 254, 254, 0, 223, 0 }, + { 4117, 4117, 254, 254, 102, 4107, 0 }, + { 4118, 4118, 254, 254, 102, 4107, 0 }, + { 4102, 4102, 254, 254, 0, 223, 0 }, + { 4116, 4116, 254, 254, 0, 223, 0 }, + { 4126, 4126, 0, 5, 0, 223, 0 }, + { 4127, 4127, 254, 254, 0, 223, 0 }, + { 177, 177, 254, 254, 93, 291, 0 }, + { 412, 412, 254, 5, 0, 232, 0 }, + { 413, 413, 254, 5, 0, 232, 0 }, + { 406, 406, 0, 5, 0, 232, 0 }, + { 411, 411, 0, 5, 0, 232, 0 }, + { 410, 410, 0, 5, 0, 232, 0 }, + { 409, 409, 0, 5, 0, 232, 0 }, + { 407, 407, 254, 5, 0, 232, 0 }, + { 408, 408, 254, 5, 0, 232, 0 }, + { 8204, 8204, 3, 9, 0, 232, 0 }, + { 8205, 8205, 3, 9, 0, 232, 0 }, + { 8206, 8206, 3, 9, 0, 232, 0 }, + { 8207, 8207, 100, 254, 0, 232, 0 }, + { 8201, 8201, 100, 9, 103, 232, 0 }, + { 8202, 8202, 100, 9, 104, 232, 0 }, + { 8203, 8203, 100, 10, 105, 8200, 0 }, + { 8208, 8208, 0, 5, 0, 223, 0 }, + { 20493, 20493, 1, 6, 0, 232, 0 }, + { 20494, 20494, 1, 6, 0, 232, 0 }, + { 20490, 20490, 3, 9, 0, 232, 0 }, + { 20491, 20491, 3, 9, 0, 232, 0 }, + { 20492, 20492, 100, 254, 0, 232, 0 }, + { 20487, 20487, 100, 9, 106, 232, 0 }, + { 20488, 20488, 100, 9, 107, 232, 0 }, + { 20489, 20489, 100, 10, 108, 20495, 0 }, + { 515, 515, 2, 5, 111, 232, 0 }, + { 516, 516, 2, 5, 112, 232, 0 }, + { 363, 363, 2, 10, 113, 309, 0 }, + { 606, 606, 3, 9, 39, 234, 0 }, + { 486, 486, 3, 9, 40, 248, 0 }, + { 487, 487, 3, 9, 40, 248, 0 }, + { 422, 422, 4, 5, 116, 330, 0 }, + { 614, 362, 254, 254, 0, 310, 0 }, + { 12292, 12292, 1, 6, 0, 12291, 0 }, + { 101, 101, 254, 254, 0, 223, 0 }, + { 98, 98, 3, 9, 0, 232, 0 }, + { 100, 100, 3, 9, 0, 232, 0 }, + { 99, 99, 3, 9, 0, 232, 0 }, + { 615, 615, 4, 10, 121, 354, 0 }, + { 208, 208, 4, 10, 126, 295, 0 }, + { 375, 375, 254, 254, 0, 223, 0 }, + { 633, 633, 4, 10, 0, 359, 0 }, + { 634, 634, 4, 10, 0, 307, 0 }, + { 207, 207, 0, 6, 0, 232, 0 }, + { 162, 162, 100, 6, 129, 283, 0 }, + { 163, 163, 100, 6, 129, 232, 0 }, + { 160, 160, 100, 6, 131, 281, 0 }, + { 161, 161, 100, 6, 132, 282, 0 }, + { 24587, 24587, 0, 10, 133, 24585, 0 }, + { 24588, 24588, 0, 5, 0, 232, 0 }, + { 24586, 24586, 100, 5, 0, 24584, 0 }, + { 28682, 28682, 0, 6, 0, 232, 0 }, + { 28683, 28683, 0, 6, 0, 232, 0 }, + { 28684, 28684, 0, 6, 0, 232, 0 }, + { 28686, 28686, 0, 6, 0, 232, 0 }, + { 28685, 28685, 0, 6, 0, 232, 0 }, + { 28680, 28680, 0, 5, 134, 28688, 0 }, + { 28681, 28681, 0, 5, 0, 28689, 0 }, + { 614, 28687, 4, 5, 135, 28690, 0 }, + { 415, 415, 254, 254, 0, 223, 0 }, + { 414, 414, 254, 254, 0, 223, 0 }, + { 490, 490, 254, 254, 136, 331, 0 }, + { 11, 11, 254, 254, 137, 231, 0 }, }; -COMPILER_STRIP_GATE(0x8038FCA8, &daAlink_c::m_anmDataTable); /* 80391010-803914A8 -00001 0498+00 4/4 0/0 0/0 .rodata m_wlAnmDataTable__9daAlink_c */ -SECTION_RODATA void* const daAlink_c::m_wlAnmDataTable[294] = { - (void*)0x02FF0001, - (void*)0x0A28FFFF, - (void*)0x030A0002, - (void*)0x010EFFFF, - (void*)0x030B0002, - (void*)0x010EFFFF, - (void*)0x02B4000C, - (void*)0xFFFFFFFF, - (void*)0x02CC010C, - (void*)0xFFFFFFFF, - (void*)0x02CA010C, - (void*)0xFFFFFFFF, - (void*)0x02CB010C, - (void*)0xFFFFFFFF, - (void*)0x03050001, - (void*)0x0FFFFFFF, - (void*)0x02E00007, - (void*)0x02FFFFFF, - (void*)0x02DF0007, - (void*)0x0620FFFF, - (void*)0x02DE000C, - (void*)0xFFFFFFFF, - (void*)0x02E90100, - (void*)0x07FFFFFF, - (void*)0x02D4010C, - (void*)0xFFFFFFFF, - (void*)0x02D5020C, - (void*)0xFFFFFFFF, - (void*)0x03060100, - (void*)0x01FFFFFF, - (void*)0x029A0107, - (void*)0x09FFFFFF, - (void*)0x02FE0105, - (void*)0x09FFFFFF, - (void*)0x029C0105, - (void*)0x03FFFFFF, - (void*)0x029B010C, - (void*)0xFFFFFFFF, - (void*)0x02FD0106, - (void*)0x19FFFFFF, - (void*)0x02FC010C, - (void*)0xFFFFFFFF, - (void*)0x02FB0008, - (void*)0x03FFFFFF, - (void*)0x02A7000C, - (void*)0xFFFFFFFF, - (void*)0x03030003, - (void*)0x0A1E32FF, - (void*)0x03000003, - (void*)0x06FFFFFF, - (void*)0x02C20105, - (void*)0x06FFFFFF, - (void*)0x02EE010C, - (void*)0xFFFFFFFF, - (void*)0x02FA010C, - (void*)0xFFFFFFFF, - (void*)0x027E000C, - (void*)0xFFFFFFFF, - (void*)0x030C0102, - (void*)0x0112FFFF, - (void*)0x02EA010C, - (void*)0xFFFFFFFF, - (void*)0x02EB010C, - (void*)0xFFFFFFFF, - (void*)0x02EC020C, - (void*)0xFFFFFFFF, - (void*)0x02E70002, - (void*)0x010EFFFF, - (void*)0x02E30105, - (void*)0x14FFFFFF, - (void*)0x02E40105, - (void*)0x1AFFFFFF, - (void*)0x02E6000C, - (void*)0xFFFFFFFF, - (void*)0x02E80801, - (void*)0x1932FFFF, - (void*)0x02E50902, - (void*)0x010E1E2D, - (void*)0x02B5010C, - (void*)0xFFFFFFFF, - (void*)0x02AC020C, - (void*)0xFFFFFFFF, - (void*)0x02AA020C, - (void*)0xFFFFFFFF, - (void*)0x02AE020C, - (void*)0xFFFFFFFF, - (void*)0x02B0020C, - (void*)0xFFFFFFFF, - (void*)0x02AD020A, - (void*)0x20FFFFFF, - (void*)0x02AB020B, - (void*)0x14FFFFFF, - (void*)0x02AF020C, - (void*)0xFFFFFFFF, - (void*)0x02B1020C, - (void*)0xFFFFFFFF, - (void*)0x02F0000C, - (void*)0xFFFFFFFF, - (void*)0x03020001, - (void*)0x0A28FFFF, - (void*)0x02CF000C, - (void*)0xFFFFFFFF, - (void*)0x02D0000C, - (void*)0xFFFFFFFF, - (void*)0x02CD000C, - (void*)0xFFFFFFFF, - (void*)0x02CE000C, - (void*)0xFFFFFFFF, - (void*)0x02F7010C, - (void*)0xFFFFFFFF, - (void*)0x02F80001, - (void*)0x0DFFFFFF, - (void*)0x02F60002, - (void*)0x01FFFFFF, - (void*)0x02F30004, - (void*)0x03FFFFFF, - (void*)0x02F1010C, - (void*)0xFFFFFFFF, - (void*)0x0307000C, - (void*)0xFFFFFFFF, - (void*)0x02A9010C, - (void*)0xFFFFFFFF, - (void*)0x02A8010C, - (void*)0xFFFFFFFF, - (void*)0x02B2010C, - (void*)0xFFFFFFFF, - (void*)0x02B3010C, - (void*)0xFFFFFFFF, - (void*)0x028D010C, - (void*)0xFFFFFFFF, - (void*)0x028E010C, - (void*)0xFFFFFFFF, - (void*)0x028F000C, - (void*)0xFFFFFFFF, - (void*)0x0290010C, - (void*)0xFFFFFFFF, - (void*)0x027F000C, - (void*)0xFFFFFFFF, - (void*)0x0281000C, - (void*)0xFFFFFFFF, - (void*)0x0280000C, - (void*)0xFFFFFFFF, - (void*)0x02DA000C, - (void*)0xFFFFFFFF, - (void*)0x0285010C, - (void*)0xFFFFFFFF, - (void*)0x0284010C, - (void*)0xFFFFFFFF, - (void*)0x0287010C, - (void*)0xFFFFFFFF, - (void*)0x0286010C, - (void*)0xFFFFFFFF, - (void*)0x0283010C, - (void*)0xFFFFFFFF, - (void*)0x0282010C, - (void*)0xFFFFFFFF, - (void*)0x02DB000C, - (void*)0xFFFFFFFF, - (void*)0x02DC0009, - (void*)0x07FFFFFF, - (void*)0x028C010C, - (void*)0xFFFFFFFF, - (void*)0x0288010C, - (void*)0xFFFFFFFF, - (void*)0x0289010C, - (void*)0xFFFFFFFF, - (void*)0x028B010C, - (void*)0xFFFFFFFF, - (void*)0x028A010C, - (void*)0xFFFFFFFF, - (void*)0x0295020C, - (void*)0xFFFFFFFF, - (void*)0x0294020C, - (void*)0xFFFFFFFF, - (void*)0x02C3010C, - (void*)0xFFFFFFFF, - (void*)0x02C5010C, - (void*)0xFFFFFFFF, - (void*)0x02C4010C, - (void*)0xFFFFFFFF, - (void*)0x02A4000C, - (void*)0xFFFFFFFF, - (void*)0x02A6000C, - (void*)0xFFFFFFFF, - (void*)0x02C6000C, - (void*)0xFFFFFFFF, - (void*)0x02C7010C, - (void*)0xFFFFFFFF, - (void*)0x02C8010C, - (void*)0xFFFFFFFF, - (void*)0x02C90001, - (void*)0x1EFFFFFF, - (void*)0x02D2010C, - (void*)0xFFFFFFFF, - (void*)0x02D3010A, - (void*)0x04FFFFFF, - (void*)0x0299000C, - (void*)0xFFFFFFFF, - (void*)0x0296010C, - (void*)0xFFFFFFFF, - (void*)0x0297010C, - (void*)0xFFFFFFFF, - (void*)0x0298010B, - (void*)0x28FFFFFF, - (void*)0x02E2010C, - (void*)0xFFFFFFFF, - (void*)0x02E1010C, - (void*)0xFFFFFFFF, - (void*)0x02B9000B, - (void*)0x41FFFFFF, - (void*)0x02BA0D0C, - (void*)0xFFFFFFFF, - (void*)0x02F90005, - (void*)0x394655FF, - (void*)0x02ED0106, - (void*)0x01FFFFFF, - (void*)0x02D1010C, - (void*)0xFFFFFFFF, - (void*)0x02DD000C, - (void*)0xFFFFFFFF, - (void*)0x02A5000C, - (void*)0xFFFFFFFF, - (void*)0x02A2000C, - (void*)0xFFFFFFFF, - (void*)0x02A3000C, - (void*)0xFFFFFFFF, - (void*)0x0308010C, - (void*)0xFFFFFFFF, - (void*)0x02EF000C, - (void*)0xFFFFFFFF, - (void*)0x02B60204, - (void*)0x01FFFFFF, - (void*)0x0293010C, - (void*)0xFFFFFFFF, - (void*)0x0291010C, - (void*)0xFFFFFFFF, - (void*)0x02BC000C, - (void*)0xFFFFFFFF, - (void*)0x02BF000C, - (void*)0xFFFFFFFF, - (void*)0x029E020C, - (void*)0xFFFFFFFF, - (void*)0x029D020C, - (void*)0xFFFFFFFF, - (void*)0x02920105, - (void*)0x10FFFFFF, - (void*)0x02B8060C, - (void*)0xFFFFFFFF, - (void*)0x02F4070C, - (void*)0xFFFFFFFF, - (void*)0x02F5070C, - (void*)0xFFFFFFFF, - (void*)0x0304020C, - (void*)0xFFFFFFFF, - (void*)0x03010001, - (void*)0x0FFFFFFF, - (void*)0x02F20001, - (void*)0x0F2DFFFF, - (void*)0x02D7000C, - (void*)0xFFFFFFFF, - (void*)0x02BB030C, - (void*)0xFFFFFFFF, - (void*)0x02C1010C, - (void*)0xFFFFFFFF, - (void*)0x02C00100, - (void*)0x05FFFFFF, - (void*)0x03090001, - (void*)0x01FFFFFF, - (void*)0x029F050C, - (void*)0xFFFFFFFF, - (void*)0x02D8000C, - (void*)0xFFFFFFFF, - (void*)0x02D9020C, - (void*)0xFFFFFFFF, - (void*)0x4003000C, - (void*)0xFFFFFFFF, - (void*)0x02A0000C, - (void*)0xFFFFFFFF, - (void*)0x02A1000C, - (void*)0xFFFFFFFF, - (void*)0x02D60100, - (void*)0x143AFFFF, - (void*)(((char*)JPACalcKeyAnmValue__FfUsPCf) + 0x88), - (void*)0xFFFFFFFF, - (void*)(((char*)cLib_chasePosXZ__FP4cXyzRC4cXyzf) + 0x7C), - (void*)0xFFFFFFFF, - (void*)(((char*)func_802A0A8C) + 0x80), - (void*)0xFFFFFFFF, - (void*)(((char*)getAramHeap__9JASKernelFv) + 0x4), - (void*)0xFFFFFFFF, - (void*)(((char*)startCollisionSE__10Z2CreatureFUlUl) + 0x24), - (void*)0xFFFFFFFF, - (void*)(((char*)changeBgmStatus__8Z2SeqMgrFl) + 0xC80), - (void*)0xFFFFFFFF, +daAlink_WlAnmData const daAlink_c::m_wlAnmDataTable[147] = { + { 767, 0, 1, 2600, 255, 255 }, + { 778, 0, 2, 270, 255, 255 }, + { 779, 0, 2, 270, 255, 255 }, + { 692, 0, 12, 65535, 255, 255 }, + { 716, 1, 12, 65535, 255, 255 }, + { 714, 1, 12, 65535, 255, 255 }, + { 715, 1, 12, 65535, 255, 255 }, + { 773, 0, 1, 4095, 255, 255 }, + { 736, 0, 7, 767, 255, 255 }, + { 735, 0, 7, 1568, 255, 255 }, + { 734, 0, 12, 65535, 255, 255 }, + { 745, 1, 0, 2047, 255, 255 }, + { 724, 1, 12, 65535, 255, 255 }, + { 725, 2, 12, 65535, 255, 255 }, + { 774, 1, 0, 511, 255, 255 }, + { 666, 1, 7, 2559, 255, 255 }, + { 766, 1, 5, 2559, 255, 255 }, + { 668, 1, 5, 1023, 255, 255 }, + { 667, 1, 12, 65535, 255, 255 }, + { 765, 1, 6, 6655, 255, 255 }, + { 764, 1, 12, 65535, 255, 255 }, + { 763, 0, 8, 1023, 255, 255 }, + { 679, 0, 12, 65535, 255, 255 }, + { 771, 0, 3, 2590, 50, 255 }, + { 768, 0, 3, 1791, 255, 255 }, + { 706, 1, 5, 1791, 255, 255 }, + { 750, 1, 12, 65535, 255, 255 }, + { 762, 1, 12, 65535, 255, 255 }, + { 638, 0, 12, 65535, 255, 255 }, + { 780, 1, 2, 274, 255, 255 }, + { 746, 1, 12, 65535, 255, 255 }, + { 747, 1, 12, 65535, 255, 255 }, + { 748, 2, 12, 65535, 255, 255 }, + { 743, 0, 2, 270, 255, 255 }, + { 739, 1, 5, 5375, 255, 255 }, + { 740, 1, 5, 6911, 255, 255 }, + { 742, 0, 12, 65535, 255, 255 }, + { 744, 8, 1, 6450, 255, 255 }, + { 741, 9, 2, 270, 30, 45 }, + { 693, 1, 12, 65535, 255, 255 }, + { 684, 2, 12, 65535, 255, 255 }, + { 682, 2, 12, 65535, 255, 255 }, + { 686, 2, 12, 65535, 255, 255 }, + { 688, 2, 12, 65535, 255, 255 }, + { 685, 2, 10, 8447, 255, 255 }, + { 683, 2, 11, 5375, 255, 255 }, + { 687, 2, 12, 65535, 255, 255 }, + { 689, 2, 12, 65535, 255, 255 }, + { 752, 0, 12, 65535, 255, 255 }, + { 770, 0, 1, 2600, 255, 255 }, + { 719, 0, 12, 65535, 255, 255 }, + { 720, 0, 12, 65535, 255, 255 }, + { 717, 0, 12, 65535, 255, 255 }, + { 718, 0, 12, 65535, 255, 255 }, + { 759, 1, 12, 65535, 255, 255 }, + { 760, 0, 1, 3583, 255, 255 }, + { 758, 0, 2, 511, 255, 255 }, + { 755, 0, 4, 1023, 255, 255 }, + { 753, 1, 12, 65535, 255, 255 }, + { 775, 0, 12, 65535, 255, 255 }, + { 681, 1, 12, 65535, 255, 255 }, + { 680, 1, 12, 65535, 255, 255 }, + { 690, 1, 12, 65535, 255, 255 }, + { 691, 1, 12, 65535, 255, 255 }, + { 653, 1, 12, 65535, 255, 255 }, + { 654, 1, 12, 65535, 255, 255 }, + { 655, 0, 12, 65535, 255, 255 }, + { 656, 1, 12, 65535, 255, 255 }, + { 639, 0, 12, 65535, 255, 255 }, + { 641, 0, 12, 65535, 255, 255 }, + { 640, 0, 12, 65535, 255, 255 }, + { 730, 0, 12, 65535, 255, 255 }, + { 645, 1, 12, 65535, 255, 255 }, + { 644, 1, 12, 65535, 255, 255 }, + { 647, 1, 12, 65535, 255, 255 }, + { 646, 1, 12, 65535, 255, 255 }, + { 643, 1, 12, 65535, 255, 255 }, + { 642, 1, 12, 65535, 255, 255 }, + { 731, 0, 12, 65535, 255, 255 }, + { 732, 0, 9, 2047, 255, 255 }, + { 652, 1, 12, 65535, 255, 255 }, + { 648, 1, 12, 65535, 255, 255 }, + { 649, 1, 12, 65535, 255, 255 }, + { 651, 1, 12, 65535, 255, 255 }, + { 650, 1, 12, 65535, 255, 255 }, + { 661, 2, 12, 65535, 255, 255 }, + { 660, 2, 12, 65535, 255, 255 }, + { 707, 1, 12, 65535, 255, 255 }, + { 709, 1, 12, 65535, 255, 255 }, + { 708, 1, 12, 65535, 255, 255 }, + { 676, 0, 12, 65535, 255, 255 }, + { 678, 0, 12, 65535, 255, 255 }, + { 710, 0, 12, 65535, 255, 255 }, + { 711, 1, 12, 65535, 255, 255 }, + { 712, 1, 12, 65535, 255, 255 }, + { 713, 0, 1, 7935, 255, 255 }, + { 722, 1, 12, 65535, 255, 255 }, + { 723, 1, 10, 1279, 255, 255 }, + { 665, 0, 12, 65535, 255, 255 }, + { 662, 1, 12, 65535, 255, 255 }, + { 663, 1, 12, 65535, 255, 255 }, + { 664, 1, 11, 10495, 255, 255 }, + { 738, 1, 12, 65535, 255, 255 }, + { 737, 1, 12, 65535, 255, 255 }, + { 697, 0, 11, 16895, 255, 255 }, + { 698, 13, 12, 65535, 255, 255 }, + { 761, 0, 5, 14662, 85, 255 }, + { 749, 1, 6, 511, 255, 255 }, + { 721, 1, 12, 65535, 255, 255 }, + { 733, 0, 12, 65535, 255, 255 }, + { 677, 0, 12, 65535, 255, 255 }, + { 674, 0, 12, 65535, 255, 255 }, + { 675, 0, 12, 65535, 255, 255 }, + { 776, 1, 12, 65535, 255, 255 }, + { 751, 0, 12, 65535, 255, 255 }, + { 694, 2, 4, 511, 255, 255 }, + { 659, 1, 12, 65535, 255, 255 }, + { 657, 1, 12, 65535, 255, 255 }, + { 700, 0, 12, 65535, 255, 255 }, + { 703, 0, 12, 65535, 255, 255 }, + { 670, 2, 12, 65535, 255, 255 }, + { 669, 2, 12, 65535, 255, 255 }, + { 658, 1, 5, 4351, 255, 255 }, + { 696, 6, 12, 65535, 255, 255 }, + { 756, 7, 12, 65535, 255, 255 }, + { 757, 7, 12, 65535, 255, 255 }, + { 772, 2, 12, 65535, 255, 255 }, + { 769, 0, 1, 4095, 255, 255 }, + { 754, 0, 1, 3885, 255, 255 }, + { 727, 0, 12, 65535, 255, 255 }, + { 699, 3, 12, 65535, 255, 255 }, + { 705, 1, 12, 65535, 255, 255 }, + { 704, 1, 0, 1535, 255, 255 }, + { 777, 0, 1, 511, 255, 255 }, + { 671, 5, 12, 65535, 255, 255 }, + { 728, 0, 12, 65535, 255, 255 }, + { 729, 2, 12, 65535, 255, 255 }, + { 16387, 0, 12, 65535, 255, 255 }, + { 672, 0, 12, 65535, 255, 255 }, + { 673, 0, 12, 65535, 255, 255 }, + { 726, 1, 0, 5178, 255, 255 }, + { 32808, 10, 12, 65535, 255, 255 }, + { 32807, 10, 12, 65535, 255, 255 }, + { 32810, 11, 12, 65535, 255, 255 }, + { 32809, 11, 12, 65535, 255, 255 }, + { 32812, 12, 12, 65535, 255, 255 }, + { 32811, 12, 12, 65535, 255, 255 }, }; -COMPILER_STRIP_GATE(0x80391010, &daAlink_c::m_wlAnmDataTable); /* 803914A8-80391734 01DB08 028C+00 2/2 0/0 0/0 .rodata m_faceTexDataTable__9daAlink_c */ SECTION_RODATA u8 const daAlink_c::m_faceTexDataTable[652] = { @@ -7947,26 +7577,21 @@ SECTION_RODATA static u8 const getSeType[255 + 1 /* padding */] = { COMPILER_STRIP_GATE(0x80391A5C, &getSeType); /* 80391B5C-80391B7C 01E1BC 0020+00 1/1 0/0 0/0 .rodata bgmLabel$37391 */ -SECTION_RODATA static u8 const bgmLabel[32] = { - 0x01, 0x00, 0x00, 0x1C, 0x01, 0x00, 0x00, 0x0A, 0x01, 0x00, 0x00, 0x0B, 0x01, 0x00, 0x00, 0x14, - 0x01, 0x00, 0x00, 0x81, 0x01, 0x00, 0x00, 0x82, 0x01, 0x00, 0x00, 0x83, 0x01, 0x00, 0x00, 0xA0, +static u32 const bgmLabel[8] = { + 0x100001C, 0x100000A, 0x100000B, 0x1000014, 0x1000081, 0x1000082, 0x1000083, 0x10000A0 }; -COMPILER_STRIP_GATE(0x80391B5C, &bgmLabel); /* 80391B7C-80391B8C 01E1DC 0010+00 1/1 0/0 0/0 .rodata rupeeCount$37407 */ -SECTION_RODATA static u8 const rupeeCount[16] = { - 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00, 0x32, 0x00, 0x00, 0x00, 0x64, 0x00, 0x00, 0x00, 0xC8, +static int const rupeeCount[4] = { + 20, 50, 100, 200 }; -COMPILER_STRIP_GATE(0x80391B7C, &rupeeCount); /* 80391B8C-80391BA0 01E1EC 0014+00 0/1 0/0 0/0 .rodata heartPieceMessage$37580 */ #pragma push #pragma force_active on -SECTION_RODATA static u8 const heartPieceMessage[20] = { - 0x00, 0x00, 0x00, 0x86, 0x00, 0x00, 0x00, 0x9C, 0x00, 0x00, - 0x00, 0x9D, 0x00, 0x00, 0x00, 0x9E, 0x00, 0x00, 0x00, 0x9F, +static u32 const heartPieceMessage[5] = { + 0x86, 0x9C, 0x9D, 0x9E, 0x9F }; -COMPILER_STRIP_GATE(0x80391B8C, &heartPieceMessage); #pragma pop /* 80391BA0-80391BAC 01E200 000C+00 0/1 0/0 0/0 .rodata effName$39419 */ @@ -8191,10 +7816,10 @@ SECTION_RODATA static u8 const effName_41208[12] = { COMPILER_STRIP_GATE(0x80391D38, &effName_41208); /* 80391D44-80391D54 01E3A4 0010+00 1/1 0/0 0/0 .rodata swordUpColor$41733 */ -SECTION_RODATA static u8 const swordUpColor[16] = { - 0x00, 0x0D, 0x00, 0x0A, 0x00, 0x02, 0x00, 0xFF, 0x00, 0x1C, 0x00, 0x10, 0x00, 0x04, 0x00, 0xFF, +static GXColorS10 const swordUpColor[2] = { + { 13, 10, 2, 255 }, + { 28, 16, 4, 255 } }; -COMPILER_STRIP_GATE(0x80391D44, &swordUpColor); /* 80391D54-80391D60 01E3B4 000C+00 1/1 0/0 0/0 .rodata swordCutSplashScale$41755 */ SECTION_RODATA static u8 const swordCutSplashScale[12] = { @@ -8502,7 +8127,7 @@ asm void daAlink_c::handBgCheck() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::setItemHeap() { +asm JKRHeap* daAlink_c::setItemHeap() { nofralloc #include "asm/d/a/d_a_alink/setItemHeap__9daAlink_cFv.s" } @@ -8534,7 +8159,7 @@ asm void daAlink_c::getAnimeResource(daPy_anmHeap_c* param_0, u16 param_1, u32 p #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::initModel(J3DModelData* param_0, u32 param_1, u32 param_2) { +asm J3DModel* daAlink_c::initModel(J3DModelData* param_0, u32 param_1, u32 param_2) { nofralloc #include "asm/d/a/d_a_alink/initModel__9daAlink_cFP12J3DModelDataUlUl.s" } @@ -8701,21 +8326,7 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = { }; /* 803AF99C-803AF9A8 00CABC 000A+02 2/2 0/0 0/0 .data l_peepEventName */ -SECTION_DATA static u8 l_peepEventName[10 + 2 /* padding */] = { - 0x50, - 0x45, - 0x45, - 0x50, - 0x5F, - 0x48, - 0x4F, - 0x4C, - 0x45, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static const char l_peepEventName[10] = "PEEP_HOLE"; /* 803AF9A8-803AF9B4 -00001 000C+00 0/1 0/0 0/0 .data @4422 */ #pragma push @@ -13482,84 +13093,31 @@ SECTION_DATA static void* l_wolfJntColData[54] = { /* 803B2C40-803B2C50 00FD60 000D+03 0/1 0/0 0/0 .data defaultPortal$39238 */ #pragma push #pragma force_active on -SECTION_DATA static u8 defaultPortal[13 + 3 /* padding */] = { - 0x50, - 0x4F, - 0x54, - 0x41, - 0x4C, - 0x5F, - 0x57, - 0x41, - 0x52, - 0x50, - 0x49, - 0x4E, - 0x00, - /* padding */ - 0x00, - 0x00, - 0x00, -}; +SECTION_DATA static const char defaultPortal[13] = "POTAL_WARPIN"; #pragma pop /* 803B2C50-803B2C64 00FD70 0014+00 0/1 0/0 0/0 .data kBridgePortal$39239 */ #pragma push #pragma force_active on -SECTION_DATA static u8 kBridgePortal[20] = { - 0x50, 0x4F, 0x52, 0x54, 0x41, 0x4C, 0x5F, 0x57, 0x41, 0x52, - 0x50, 0x5F, 0x4B, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x00, -}; +SECTION_DATA static const char kBridgePortal[20] = "PORTAL_WARP_KBRIDGE"; #pragma pop /* 803B2C64-803B2C78 00FD84 0014+00 0/1 0/0 0/0 .data oBridgePortal$39240 */ #pragma push #pragma force_active on -SECTION_DATA static u8 oBridgePortal[20] = { - 0x50, 0x4F, 0x52, 0x54, 0x41, 0x4C, 0x5F, 0x57, 0x41, 0x52, - 0x50, 0x5F, 0x4F, 0x42, 0x52, 0x49, 0x44, 0x47, 0x45, 0x00, -}; +SECTION_DATA static const char oBridgePortal[20] = "PORTAL_WARP_OBRIDGE"; #pragma pop /* 803B2C78-803B2C8C 00FD98 0014+00 0/1 0/0 0/0 .data volcBomPortal$39241 */ #pragma push #pragma force_active on -SECTION_DATA static u8 volcBomPortal[20] = { - 0x50, 0x4F, 0x52, 0x54, 0x41, 0x4C, 0x5F, 0x57, 0x41, 0x52, - 0x50, 0x5F, 0x42, 0x49, 0x47, 0x56, 0x4F, 0x4C, 0x43, 0x00, -}; +SECTION_DATA static const char volcBomPortal[20] = "PORTAL_WARP_BIGVOLC"; #pragma pop /* 803B2C8C-803B2CA4 00FDAC 0016+02 0/1 0/0 0/0 .data cannonPortal$39242 */ #pragma push #pragma force_active on -SECTION_DATA static u8 cannonPortal[22 + 2 /* padding */] = { - 0x53, - 0x4B, - 0x59, - 0x5F, - 0x43, - 0x41, - 0x4E, - 0x4E, - 0x4F, - 0x4E, - 0x5F, - 0x57, - 0x41, - 0x52, - 0x50, - 0x5F, - 0x53, - 0x54, - 0x41, - 0x52, - 0x54, - 0x00, - /* padding */ - 0x00, - 0x00, -}; +SECTION_DATA static const char cannonPortal[22] = "SKY_CANNON_WARP_START"; #pragma pop /* 803B2CA4-803B2CB0 -00001 000C+00 0/1 0/0 0/0 .data @39610 */ @@ -15088,8 +14646,8 @@ void daAlink_c::setDoubleAnimeBlendRatio(f32 param_0) { f32 tmp = lit_6040; // remove later field_0x1f28[0].setRatio(tmp - param_0); field_0x1f28[1].setRatio(param_0); - field_0x1f40[0].setRatio(tmp - param_0); - field_0x1f40[1].setRatio(param_0); + mNowAnmPack[0].setRatio(tmp - param_0); + mNowAnmPack[1].setRatio(param_0); } /* 800AC754-800ACA14 0A7094 02C0+00 2/2 0/0 0/0 .text @@ -15589,24 +15147,25 @@ void dBgS_RoofChk::SetPos(cXyz const& pos) { } /* 800B1488-800B14B4 0ABDC8 002C+00 4/4 0/0 0/0 .text checkWaterPolygonUnder__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkWaterPolygonUnder() { - nofralloc -#include "asm/d/a/d_a_alink/checkWaterPolygonUnder__9daAlink_cFv.s" +BOOL daAlink_c::checkWaterPolygonUnder() { + return i_checkModeFlg(MODE_SWIMMING) || mCurrent.mPosition.y < mWaterY; } -#pragma pop /* 800B14B4-800B154C 0ABDF4 0098+00 2/2 0/0 0/0 .text setWaterY__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setWaterY() { - nofralloc -#include "asm/d/a/d_a_alink/setWaterY__9daAlink_cFv.s" +void daAlink_c::setWaterY() { + if (mLinkAcch.ChkWaterHit()) { + i_onNoResetFlg0(FLG0_UNK_80); + field_0x2fbc = dComIfG_Bgsp().GetPolyAtt0(mLinkAcch.m_wtr); + mWaterY = mLinkAcch.m_wtr.GetHeight(); + if (field_0x2fbc != 6) { + checkWaterInKandelaar(mWaterY); + } + } else { + i_offNoResetFlg0(FLG0_UNK_80); + field_0x2fbc = 16; + mWaterY = lit_9138; + } } -#pragma pop /* 800B154C-800B172C 0ABE8C 01E0+00 2/2 0/0 0/0 .text setHangWaterY__9daAlink_cFv */ #pragma push @@ -15656,25 +15215,15 @@ asm void daAlink_c::setBgCheckParam() { /* 800B1B28-800B1B68 0AC468 0040+00 4/4 0/0 0/0 .text checkNotJumpSinkLimit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNotJumpSinkLimit() { - nofralloc -#include "asm/d/a/d_a_alink/checkNotJumpSinkLimit__9daAlink_cFv.s" +BOOL daAlink_c::checkNotJumpSinkLimit() { + return mSinkShapeOffset < lit_14614 || field_0x2fbd == 3 || (field_0x2fbd == 4 && mSinkShapeOffset < lit_14624); } -#pragma pop /* 800B1B68-800B1BAC 0AC4A8 0044+00 2/2 0/0 0/0 .text checkNotItemSinkLimit__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkNotItemSinkLimit() { - nofralloc -#include "asm/d/a/d_a_alink/checkNotItemSinkLimit__9daAlink_cFv.s" +BOOL daAlink_c::checkNotItemSinkLimit() { + return mSinkShapeOffset < lit_28045 && (field_0x2fbd == 1 || field_0x2fbd == 2 || field_0x2fbd == 3 || field_0x2fbd == 4); } -#pragma pop /* ############################################################################################## */ /* 804532A8-804532AC 0018A8 0004+00 1/1 0/0 0/0 .sdata2 @64730 */ @@ -15694,27 +15243,9 @@ asm void daAlink_c::setSandShapeOffset() { #pragma pop /* 800B1FB8-800B1FD8 0AC8F8 0020+00 2/2 0/0 0/0 .text checkLv2MiddleBossBgRide__9daAlink_cFs */ -#ifdef NONMATCHING -bool daAlink_c::checkLv2MiddleBossBgRide(short param1) { - bool check = false; - - // beqlr needs to be beq - if (param1 != 0x7B && param1 == 0x7D) { - check = true; - } - - return check; +bool daAlink_c::checkLv2MiddleBossBgRide(short param_0) { + return param_0 == 0x7B || param_0 == 0x7D; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkLv2MiddleBossBgRide(s16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/checkLv2MiddleBossBgRide__9daAlink_cFs.s" -} -#pragma pop -#endif /* 800B1FD8-800B21EC 0AC918 0214+00 11/11 0/0 0/0 .text getSlidePolygon__9daAlink_cFP8cM3dGPla */ #pragma push @@ -15727,14 +15258,9 @@ asm void daAlink_c::getSlidePolygon(cM3dGPla* param_0) { #pragma pop /* 800B21EC-800B221C 0ACB2C 0030+00 4/4 0/0 0/0 .text checkSlope__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkSlope() const { - nofralloc -#include "asm/d/a/d_a_alink/checkSlope__9daAlink_cCFv.s" +BOOL daAlink_c::checkSlope() const { + return field_0x3174 != 8 && field_0x2ff0 < -field_0x3122; } -#pragma pop /* 800B221C-800B23FC 0ACB5C 01E0+00 1/0 0/0 0/0 .text setPlayerPosAndAngle__9daAlink_cFPC4cXyzsi */ @@ -15951,14 +15477,9 @@ asm void daAlink_c::initServiceWaitTime() { #pragma pop /* 800B3904-800B3924 0AE244 0020+00 50/50 0/0 0/0 .text checkZeroSpeedF__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkZeroSpeedF() const { - nofralloc -#include "asm/d/a/d_a_alink/checkZeroSpeedF__9daAlink_cCFv.s" +bool daAlink_c::checkZeroSpeedF() const { + return fabsf(mNormalSpeed) < lit_12328; } -#pragma pop /* 800B3924-800B3F2C 0AE264 0608+00 14/14 0/0 0/0 .text setNormalSpeedF__9daAlink_cFff */ #pragma push @@ -16026,9 +15547,9 @@ asm void daAlink_c::checkServiceWaitMode() { /* 800B48D0-800B4908 0AF210 0038+00 18/18 0/0 0/0 .text setJumpMode__9daAlink_cFv */ void daAlink_c::setJumpMode() { onModeFlg(MODE_JUMP); - field_0x34f8 = mCurrent.mPosition; - field_0x33c4 = field_0x34f8.y; - field_0x33c8 = field_0x34f8.y; + mLastJumpPos = mCurrent.mPosition; + mFallHeight = mLastJumpPos.y; + field_0x33c8 = mLastJumpPos.y; } /* 800B4908-800B4918 0AF248 0010+00 0/0 0/0 1/1 .text getMetamorphoseNearDis__9daAlink_cCFv */ @@ -16121,9 +15642,9 @@ asm BOOL daAlink_c::checkWaitAction() { /* 800B5BC0-800B5C34 0B0500 0074+00 3/3 0/0 0/0 .text setFallVoice__9daAlink_cFv */ void daAlink_c::setFallVoice() { - if (field_0x3014 == 0 && lit_8782 * (field_0x33c4 - mCurrent.mPosition.y) > lit_8676) { + if (mFallVoiceInit == 0 && lit_8782 * (mFallHeight - mCurrent.mPosition.y) > lit_8676) { voiceStart(Z2SE_AL_V_FALL); - field_0x3014 = 1; + mFallVoiceInit = 1; } } @@ -16178,7 +15699,7 @@ asm void daAlink_c::checkLandAction(int param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkSlideAction() { +asm BOOL daAlink_c::checkSlideAction() { nofralloc #include "asm/d/a/d_a_alink/checkSlideAction__9daAlink_cFv.s" } @@ -16237,15 +15758,16 @@ asm void daAlink_c::checkItemChangeAutoAction() { } #pragma pop -/* 800B7168-800B7190 0B1AA8 0028+00 7/7 0/0 0/0 .text setFastShotTimer__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setFastShotTimer() { - nofralloc -#include "asm/d/a/d_a_alink/setFastShotTimer__9daAlink_cFv.s" +inline bool i_dComIfGp_checkPlayerStatus0(int param_0, u32 flag) { + return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, flag); +} + +/* 800B7168-800B7190 0B1AA8 0028+00 7/7 0/0 0/0 .text setFastShotTimer__9daAlink_cFv */ +void daAlink_c::setFastShotTimer() { + if (!i_dComIfGp_checkPlayerStatus0(0, 0x2000)) { + mFastShotTime = daAlinkHIO_item_c0::m.mItemFPTransitionTimer; + } } -#pragma pop /* 800B7190-800B71EC 0B1AD0 005C+00 9/9 0/0 0/0 .text cancelItemUseQuake__9daAlink_cFi */ #pragma push @@ -16290,14 +15812,19 @@ asm bool daAlink_c::checkSwordTwirlAction() { #pragma pop /* 800B74B4-800B7528 0B1DF4 0074+00 3/3 0/0 0/0 .text checkUpperItemActionFly__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daAlink_c::checkUpperItemActionFly() { - nofralloc -#include "asm/d/a/d_a_alink/checkUpperItemActionFly__9daAlink_cFv.s" +BOOL daAlink_c::checkUpperItemActionFly() { + if (checkBowAndSlingItem(mEquipItem)) { + checkUpperItemActionBowFly(); + } + else if (mEquipItem == BOOMERANG) { + checkUpperItemActionBoomerangFly(); + } + else if (mEquipItem == COPY_ROD) { + checkUpperItemActionCopyRodFly(); + } + + return checkCanoeJumpRide(); } -#pragma pop /* 800B7528-800B75EC 0B1E68 00C4+00 1/1 0/0 0/0 .text checkItemButtonChange__9daAlink_cFv */ @@ -16322,22 +15849,21 @@ asm void daAlink_c::checkUpperItemAction() { #pragma pop /* 800B7B7C-800B7BF8 0B24BC 007C+00 1/1 0/0 0/0 .text orderPeep__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::orderPeep() { - nofralloc -#include "asm/d/a/d_a_alink/orderPeep__9daAlink_cFv.s" +void daAlink_c::orderPeep() { + field_0x2fad = field_0x27f4->getSceneListID(); + field_0x2ff2 = 20; + fopAcM_orderOtherEvent(this, field_0x27f4, l_peepEventName, 0xFFFF, 1, 0); + if (i_checkWolf()) { + procWolfWaitInit(); + } else { + procWaitInit(); + } } -#pragma pop /* ############################################################################################## */ /* 804532B0-804532B4 0018B0 0004+00 1/1 0/0 0/0 .sdata2 itemTalkType$67468 */ -SECTION_SDATA2 static u8 itemTalkType[4] = { - 0x00, - 0x06, - 0x00, - 0x07, +SECTION_SDATA2 static u16 itemTalkType[2] = { + 6, 7 }; /* 800B7BF8-800B7D4C 0B2538 0154+00 13/13 0/0 0/0 .text orderTalk__9daAlink_cFi */ @@ -16394,15 +15920,18 @@ asm void daAlink_c::checkNormalAction() { } #pragma pop -/* 800B8930-800B8988 0B3270 0058+00 11/11 0/0 0/0 .text checkReadyItem__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm bool daAlink_c::checkReadyItem() { - nofralloc -#include "asm/d/a/d_a_alink/checkReadyItem__9daAlink_cFv.s" +u16 daAlink_c::getReadyItem() { + return dComIfGp_getSelectItem(mSelectItemId); +} + +/* 800B8930-800B8988 0B3270 0058+00 11/11 0/0 0/0 .text checkReadyItem__9daAlink_cFv */ +bool daAlink_c::checkReadyItem() { + if (mEquipItem == NO_ITEM) { + return false; + } + + return getReadyItem() == mEquipItem; } -#pragma pop /* 800B8988-800B9010 0B32C8 0688+00 2/2 0/0 0/0 .text checkItemAction__9daAlink_cFv */ #pragma push @@ -16431,6 +15960,24 @@ asm void daAlink_c::checkMoveDoAction() { /* 800B9148-800B9254 0B3A88 010C+00 3/3 0/0 0/0 .text checkSideRollAction__9daAlink_cFi */ +#ifdef NONMATCHING +BOOL daAlink_c::checkSideRollAction(int param_0) { + if (checkNotJumpSinkLimit() || checkHeavyStateOn(1, 1) || checkInputOnR() || checkCutBackState()) { + return false; + } else { + if (mTargetedActor != NULL) { + if (checkEnemyGroup(mTargetedActor) && mTargetedActor->mCurrent.mPosition.abs2XZ(mCurrent.mPosition) <= lit_6237) { + return procSideRollInit(param_0); + } else { + return procTurnMoveInit(param_0); + } + } else { + return procSideRollInit(param_0); + } + } + return false; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -16439,6 +15986,7 @@ asm BOOL daAlink_c::checkSideRollAction(int param_0) { #include "asm/d/a/d_a_alink/checkSideRollAction__9daAlink_cFi.s" } #pragma pop +#endif /* 800B9254-800B92D0 0B3B94 007C+00 35/35 0/0 0/0 .text checkNoUpperAnime__9daAlink_cCFv */ @@ -16529,14 +16077,14 @@ asm void daAlink_c::swordUnequip() { #pragma pop /* 800B9640-800B96A4 0B3F80 0064+00 6/6 0/0 0/0 .text itemEquip__9daAlink_cFUs */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::itemEquip(u16 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/itemEquip__9daAlink_cFUs.s" +void daAlink_c::itemEquip(u16 item_id) { + if (mThrowBoomerangActor.getActor() == NULL || item_id != BOOMERANG) { + field_0x2fde = item_id; + dComIfGp_clearPlayerStatus0(0, 0x400000); + i_offNoResetFlg3(0x40000); + itemUnequip(field_0x2fde, lit_6041); + } } -#pragma pop /* 800B96A4-800B97EC 0B3FE4 0148+00 2/2 0/0 0/0 .text itemUnequip__9daAlink_cFUsf */ #pragma push @@ -16712,36 +16260,25 @@ inline u16 i_dComIfGs_getRupee() { /* 800BB408-800BB458 0B5D48 0050+00 6/6 0/0 0/0 .text checkMagicArmorHeavy__9daAlink_cCFv */ BOOL daAlink_c::checkMagicArmorHeavy() const { - bool check = false; - - if (checkMagicArmorWearAbility() && i_dComIfGs_getRupee() == 0) { - check = true; - } - - return check; + return checkMagicArmorWearAbility() && i_dComIfGs_getRupee() == 0; } /* 800BB458-800BB4B8 0B5D98 0060+00 1/0 0/0 0/0 .text checkBootsOrArmorHeavy__9daAlink_cCFv */ BOOL daAlink_c::checkBootsOrArmorHeavy() const { - bool check = false; - - if (i_checkEquipHeavyBoots() || checkMagicArmorHeavy() || checkIronBallWaitAnime()) { - check = true; - } - - return check; + return i_checkEquipHeavyBoots() || checkMagicArmorHeavy() || checkIronBallWaitAnime(); } /* 800BB4B8-800BB560 0B5DF8 00A8+00 29/29 0/0 0/0 .text checkHeavyStateOn__9daAlink_cFii */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daAlink_c::checkHeavyStateOn(int param_0, int param_1) { - nofralloc -#include "asm/d/a/d_a_alink/checkHeavyStateOn__9daAlink_cFii.s" +// param_0 something related to boots +BOOL daAlink_c::checkHeavyStateOn(int param_0, int param_1) { + if (!checkEventRun()) { + if ((param_1 != 0 && mSinkShapeOffset < lit_14614) || (param_0 != 0 && checkIronBallWaitAnime()) || checkIronBallAnime() || checkMagicArmorHeavy() || getHeavyStateAndBoots()) { + return true; + } + } + return false; } -#pragma pop /* 800BB560-800BB644 0B5EA0 00E4+00 1/0 0/0 0/0 .text setOutPower__9daAlink_cFfsi */ #pragma push @@ -17256,7 +16793,7 @@ asm BOOL daAlink_c::checkMagicArmorWearAbility() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::loadAramBmd(u16 param_0, u32 param_1) { +asm J3DModelData* daAlink_c::loadAramBmd(u16 param_0, u32 param_1) { nofralloc #include "asm/d/a/d_a_alink/loadAramBmd__9daAlink_cFUsUl.s" } @@ -17276,7 +16813,7 @@ asm void daAlink_c::loadAram(u16 param_0, u32 param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::loadAramItemBrk(u16 param_0, J3DModel* param_1) { +asm J3DAnmTevRegKey* daAlink_c::loadAramItemBrk(u16 param_0, J3DModel* param_1) { nofralloc #include "asm/d/a/d_a_alink/loadAramItemBrk__9daAlink_cFUsP8J3DModel.s" } @@ -17992,7 +17529,7 @@ bool daAlink_c::procSideStep() { else if (checkNoUpperAnime() && checkForceSwordSwing()) { setCutDash(1, 0); } - else if (mDemo.getDemoMode() != 16 && mCurrent.mPosition.y < field_0x34f8.y - daAlinkHIO_sideStep_c0::m.mFallHeight) { + else if (mDemo.getDemoMode() != 16 && mCurrent.mPosition.y < mLastJumpPos.y - daAlinkHIO_sideStep_c0::m.mFallHeight) { return procFallInit(2, daAlinkHIO_sideStep_c0::m.mFallInterpolation); } @@ -18290,7 +17827,7 @@ asm void daAlink_c::procFrontRollSuccess() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procSideRollInit(int param_0) { +asm bool daAlink_c::procSideRollInit(int param_0) { nofralloc #include "asm/d/a/d_a_alink/procSideRollInit__9daAlink_cFi.s" } @@ -18586,7 +18123,7 @@ static f32 l_wolfBaseAnime[3]; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procCoMetamorphoseInit() { +asm bool daAlink_c::procCoMetamorphoseInit() { nofralloc #include "asm/d/a/d_a_alink/procCoMetamorphoseInit__9daAlink_cFv.s" } @@ -20934,14 +20471,64 @@ asm void daAlink_c::procCutLargeJumpInit() { #pragma pop /* 800D6484-800D66C0 0D0DC4 023C+00 1/0 0/0 0/0 .text procCutLargeJump__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::procCutLargeJump() { - nofralloc -#include "asm/d/a/d_a_alink/procCutLargeJump__9daAlink_cFv.s" +bool daAlink_c::procCutLargeJump() { + daPy_frameCtrl_c* ctrl = &mFrameCtrl1[0]; + + if (field_0x3010 != 0) { + field_0x2f99 = 4; + } + + if (i_checkModeFlg(2) && checkCutTurnInput()) { + field_0x3198 = getCutTurnDirection(); + } + + if (mCommonCounter == 0) { + if (ctrl->checkAnmEnd()) { + field_0x2f99 = 12; + setSingleAnimeParam(ANM_CUT_JUMP_LARGE, &daAlinkHIO_cutLargeJump_c0::m.mCutAnm); + mCommonCounter = 1; + setSwordVoiceSe(Z2SE_AL_V_JUMP_ATTACK_L_2); + } else { + if (ctrl->getFrame() >= lit_7307) { + field_0x3010 = 1; + } + + if (!i_checkModeFlg(2) && ctrl->getFrame() >= lit_7808) { + setJumpMode(); + mNormalSpeed = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedH; + mSpeed.y = daAlinkHIO_cutLargeJump_c0::m.mCutSpeedV; + setCutJumpSpeed(0); + } + + if (ctrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mJumpAttackStartF && ctrl->getFrame() < daAlinkHIO_cutLargeJump_c0::m.mJumpAttackEndF) { + if (!i_checkNoResetFlg0(FLG0_UNK_40)) { + seStartSwordCut(Z2SE_AL_SWORD_SWING_S); + } + i_onResetFlg0(2); + } + } + } else { + if (field_0x300e != 0) { + field_0x300e--; + if (field_0x300e == 0) { + setSwordAtParam(dCcG_At_Spl_UNK_01, 3, 1, 4, daAlinkHIO_cut_c0::m.mSwordLength, daAlinkHIO_cut_c0::m.mSwordRadius); + setCutType(TYPE_CUT_LARGE_JUMP); + } + } + + if (mLinkAcch.ChkGroundHit()) { + procCutLargeJumpLandInit(field_0x3198); + } else { + if (ctrl->getFrame() >= daAlinkHIO_cutLargeJump_c0::m.mCutInitF) { + if (!i_checkNoResetFlg0(FLG0_UNK_40)) { + seStartSwordCut(Z2SE_AL_SWORD_SWING_S); + } + i_onResetFlg0(2); + } + } + } + return true; } -#pragma pop /* 800D66C0-800D67FC 0D1000 013C+00 1/1 0/0 0/0 .text procCutLargeJumpLandInit__9daAlink_cFi */ #pragma push @@ -21788,7 +21375,7 @@ asm void daAlink_c::procGuardBreak() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procTurnMoveInit(int param_0) { +asm bool daAlink_c::procTurnMoveInit(int param_0) { nofralloc #include "asm/d/a/d_a_alink/procTurnMoveInit__9daAlink_cFi.s" } @@ -22120,75 +21707,76 @@ asm void daAlink_c::procBowMove() { #pragma pop /* 800DFFE0-800E0010 0DA920 0030+00 0/0 0/0 1/1 .text checkBoomerangLockAccept__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkBoomerangLockAccept() { - nofralloc -#include "asm/d/a/d_a_alink/checkBoomerangLockAccept__9daAlink_cFv.s" +BOOL daAlink_c::checkBoomerangLockAccept() { + return mSight.getDrawFlg() && i_dComIfGp_checkPlayerStatus0(0, 0x80000); } -#pragma pop /* 800E0010-800E00B0 0DA950 00A0+00 0/0 0/0 1/1 .text getBoomSpeed__9daAlink_cFv */ +// small regalloc +#ifdef NONMATCHING +f32 daAlink_c::getBoomSpeed() { + f32 speed; + if (checkBoomerangChargeEndWait()) { + speed = daAlinkHIO_boom_c0::m.field_0x38; + } else { + speed = daAlinkHIO_boom_c0::m.field_0x34; + } + + if (i_checkModeFlg(0x400) && mRideActor.getActor() != NULL && mSpeedF > FLOAT_LABEL(lit_6108)) { + speed += mSpeedF; + } + + return speed; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::getBoomSpeed() { +asm f32 daAlink_c::getBoomSpeed() { nofralloc #include "asm/d/a/d_a_alink/getBoomSpeed__9daAlink_cFv.s" } #pragma pop +#endif /* 800E00B0-800E00C0 0DA9F0 0010+00 0/0 0/0 1/1 .text getBoomCatchSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBoomCatchSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getBoomCatchSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getBoomCatchSpeed() const { + return daAlinkHIO_boom_c0::m.mCatchSpeed; } -#pragma pop /* 800E00C0-800E011C 0DAA00 005C+00 1/1 0/0 1/1 .text getBoomFlyMax__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBoomFlyMax() const { - nofralloc -#include "asm/d/a/d_a_alink/getBoomFlyMax__9daAlink_cCFv.s" +f32 daAlink_c::getBoomFlyMax() const { + if (i_checkModeFlg(0x400) && !checkCanoeRide()) { + return daAlinkHIO_boom_c0::m.field_0x40; + } else { + return daAlinkHIO_boom_c0::m.field_0x3c; + } } -#pragma pop /* 800E011C-800E0190 0DAA5C 0074+00 1/1 0/0 2/2 .text getBoomLockMax__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBoomLockMax() { - nofralloc -#include "asm/d/a/d_a_alink/getBoomLockMax__9daAlink_cFv.s" +f32 daAlink_c::getBoomLockMax() { + f32 max = getBoomFlyMax(); + + if (checkBossBabaRoom()) { + return lit_12475; + } + else if (daAlinkHIO_boom_c0::m.field_0x44 > max) { + return daAlinkHIO_boom_c0::m.field_0x44; + } else { + return max; + } } -#pragma pop /* 800E0190-800E01A0 0DAAD0 0010+00 0/0 0/0 1/1 .text getBoomBgThroughTime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBoomBgThroughTime() const { - nofralloc -#include "asm/d/a/d_a_alink/getBoomBgThroughTime__9daAlink_cCFv.s" +s16 daAlink_c::getBoomBgThroughTime() const { + return daAlinkHIO_boom_c0::m.mBgThroughTime; } -#pragma pop /* 800E01A0-800E01CC 0DAAE0 002C+00 1/1 0/0 0/0 .text checkBossBabaRoom__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkBossBabaRoom() { - nofralloc -#include "asm/d/a/d_a_alink/checkBossBabaRoom__9daAlink_cFv.s" +bool daAlink_c::checkBossBabaRoom() { + return checkStageName("D_MN05A"); } -#pragma pop /* 800E01CC-800E0210 0DAB0C 0044+00 0/0 1/1 0/0 .text * cancelBoomerangLock__9daAlink_cFP10fopAc_ac_c */ @@ -22202,14 +21790,17 @@ asm void daAlink_c::cancelBoomerangLock(fopAc_ac_c* param_0) { #pragma pop /* 800E0210-800E0244 0DAB50 0034+00 2/2 0/0 0/0 .text getBoomerangActor__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getBoomerangActor() { - nofralloc -#include "asm/d/a/d_a_alink/getBoomerangActor__9daAlink_cFv.s" +fopAc_ac_c* daAlink_c::getBoomerangActor() { + if (mThrowBoomerangActor.getID() != 0xFFFFFFFF) { + return mThrowBoomerangActor.getActor(); + } + + if (mEquipItem == BOOMERANG) { + return mItemActor.getActor(); + } + + return NULL; } -#pragma pop /* 800E0244-800E02B8 0DAB84 0074+00 0/0 1/1 0/0 .text checkBoomerangChargeEnd__9daAlink_cFv */ #pragma push @@ -22234,31 +21825,30 @@ asm void daAlink_c::checkBoomerangCarry(fopAc_ac_c* param_0) { /* 800E03D0-800E0440 0DAD10 0070+00 6/6 0/0 0/0 .text initBoomerangUpperAnimeSpeed__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/initBoomerangUpperAnimeSpeed__9daAlink_cFi.s" +void daAlink_c::initBoomerangUpperAnimeSpeed(int param_0) { + if (!checkBoomerangThrowAnime()) { + if (param_0 != 0) { + f32 tmp = FLOAT_LABEL(lit_6108); + mFrameCtrl2[2].setRate(tmp); + mFrameCtrl2[2].setFrame(tmp); + getNowAnmPackUpper(UPPER_NOW)->setFrame(tmp); + } else { + mFrameCtrl2[2].setRate(daAlinkHIO_boom_c0::m.field_0x2c); + } + } } -#pragma pop /* 800E0440-800E04AC 0DAD80 006C+00 9/9 0/0 0/0 .text checkBoomerangAnime__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkBoomerangAnime() const { - nofralloc -#include "asm/d/a/d_a_alink/checkBoomerangAnime__9daAlink_cCFv.s" +BOOL daAlink_c::checkBoomerangAnime() const { + return checkBoomerangReadyAnime() || checkBoomerangThrowAnime(); } -#pragma pop /* 800E04AC-800E04E8 0DADEC 003C+00 13/13 0/0 0/0 .text checkBoomerangThrowAnime__9daAlink_cCFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkBoomerangThrowAnime() const { +asm BOOL daAlink_c::checkBoomerangThrowAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkBoomerangThrowAnime__9daAlink_cCFv.s" } @@ -22285,24 +21875,20 @@ asm void daAlink_c::setBoomerangReadyAnime() { #pragma pop /* 800E05E8-800E0630 0DAF28 0048+00 2/2 0/0 0/0 .text setThrowBoomerangAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setThrowBoomerangAnime() { - nofralloc -#include "asm/d/a/d_a_alink/setThrowBoomerangAnime__9daAlink_cFv.s" +void daAlink_c::setThrowBoomerangAnime() { + setUpperAnimeParam(0x53, UPPER_NOW, &daAlinkHIO_boom_c0::m.mThrowAnm); + cancelItemUseQuake(0); } -#pragma pop /* 800E0630-800E06B8 0DAF70 0088+00 2/2 0/0 0/0 .text setBoomerangCatchAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setBoomerangCatchAnime() { - nofralloc -#include "asm/d/a/d_a_alink/setBoomerangCatchAnime__9daAlink_cFv.s" +void daAlink_c::setBoomerangCatchAnime() { + setUpperAnimeParam(0x52, UPPER_NOW, &daAlinkHIO_boom_c0::m.mCatchAnm); + setFacePriBck(0xE8); + field_0x2f97 = 254; + if (mEquipItem != COPY_ROD) { + seStartOnlyReverb(JA_SE_LK_BOOM_CATCH); + } } -#pragma pop /* 800E06B8-800E08C4 0DAFF8 020C+00 1/1 0/0 0/0 .text throwBoomerang__9daAlink_cFv */ #pragma push @@ -22439,67 +22025,49 @@ asm void daAlink_c::procBoomerangCatch() { #pragma pop /* 800E12E0-800E1310 0DBC20 0030+00 1/1 0/0 0/0 .text checkLv6BossRoom__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkLv6BossRoom() { - nofralloc -#include "asm/d/a/d_a_alink/checkLv6BossRoom__9daAlink_cFv.s" +BOOL daAlink_c::checkLv6BossRoom() { + return checkStageName("D_MN06A"); } -#pragma pop /* 800E1310-800E1320 0DBC50 0010+00 0/0 0/0 1/1 .text getCopyRodBallSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getCopyRodBallSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getCopyRodBallSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getCopyRodBallSpeed() const { + return daAlinkHIO_copyRod_c0::m.mBallSpeed; } -#pragma pop /* 800E1320-800E1330 0DBC60 0010+00 0/0 0/0 1/1 .text getCopyRodBallReturnSpeed__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getCopyRodBallReturnSpeed() const { - nofralloc -#include "asm/d/a/d_a_alink/getCopyRodBallReturnSpeed__9daAlink_cCFv.s" +f32 daAlink_c::getCopyRodBallReturnSpeed() const { + return daAlinkHIO_copyRod_c0::m.mBallReturnSpeed; } -#pragma pop /* 800E1330-800E1374 0DBC70 0044+00 3/3 0/0 2/2 .text getCopyRodBallDisMax__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getCopyRodBallDisMax() const { - nofralloc -#include "asm/d/a/d_a_alink/getCopyRodBallDisMax__9daAlink_cCFv.s" +f32 daAlink_c::getCopyRodBallDisMax() const { + if (checkLv6BossRoom()) { + return daAlinkHIO_copyRod_c0::m.mBossBallMaxDistance; + } + + return daAlinkHIO_copyRod_c0::m.mBallMaxDistance; } -#pragma pop /* 800E1374-800E1390 0DBCB4 001C+00 6/6 0/0 7/7 .text getCopyRodControllActor__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getCopyRodControllActor() { - nofralloc -#include "asm/d/a/d_a_alink/getCopyRodControllActor__9daAlink_cFv.s" +fopAc_ac_c* daAlink_c::getCopyRodControllActor() { + if (mCopyRodAcKeep.getActor() != NULL) { + return static_cast(mCopyRodAcKeep.getActor())->getControllActor(); + } + + return NULL; } -#pragma pop /* 800E1390-800E13AC 0DBCD0 001C+00 0/0 4/4 1/1 .text getCopyRodCameraActor__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::getCopyRodCameraActor() { - nofralloc -#include "asm/d/a/d_a_alink/getCopyRodCameraActor__9daAlink_cFv.s" +fopAc_ac_c* daAlink_c::getCopyRodCameraActor() { + if (mCopyRodAcKeep.getActor() != NULL) { + return static_cast(mCopyRodAcKeep.getActor())->getCameraActor(); + } + + return NULL; } -#pragma pop /* 800E13AC-800E1408 0DBCEC 005C+00 2/2 0/0 0/0 .text initCopyRodUpperAnimeSpeed__9daAlink_cFi */ #pragma push @@ -22511,22 +22079,29 @@ asm void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) { } #pragma pop +/* void daAlink_c::initCopyRodUpperAnimeSpeed(int param_0) { + if (checkCopyRodThrowAnime()) { + if (param_1 == 0) { + mFrameCtrl2[2].setRate(); + } + f32 tmp = FLOAT_LABEL(lit_6108); + mFrameCtrl2[2].setRate(tmp); + mFrameCtrl2[2].setFrame(tmp); + + } +} */ + /* 800E1408-800E145C 0DBD48 0054+00 2/2 0/0 0/0 .text checkForestOldCentury__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkForestOldCentury() { - nofralloc -#include "asm/d/a/d_a_alink/checkForestOldCentury__9daAlink_cFv.s" +BOOL daAlink_c::checkForestOldCentury() { + return checkStageName("F_SP117") && dComIfGp_roomControl_getStayNo() == 2; } -#pragma pop /* 800E145C-800E1530 0DBD9C 00D4+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daAlink_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool daAlink_c::checkCopyRodTopUse() { +asm BOOL daAlink_c::checkCopyRodTopUse() { nofralloc #include "asm/d/a/d_a_alink/checkCopyRodTopUse__9daAlink_cFv.s" } @@ -22543,14 +22118,14 @@ asm void daAlink_c::checkCopyRodAnime() const { #pragma pop /* 800E158C-800E15FC 0DBECC 0070+00 2/2 0/0 0/0 .text setCopyRodControllAnime__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setCopyRodControllAnime() { - nofralloc -#include "asm/d/a/d_a_alink/setCopyRodControllAnime__9daAlink_cFv.s" +void daAlink_c::setCopyRodControllAnime() { + if (checkNoUpperAnime() && getCopyRodControllActor()) { + setUpperAnimeBaseSpeed(0x202, FLOAT_LABEL(lit_6108), lit_6109); + field_0x2f96 = 2; + field_0x2f97 = 5; + field_0x33e8 = FLOAT_LABEL(lit_6108); + } } -#pragma pop /* 800E15FC-800E1748 0DBF3C 014C+00 1/1 0/0 0/0 .text * setCopyRodControllUpperSpeedRate__9daAlink_cFv */ @@ -22564,17 +22139,48 @@ asm void daAlink_c::setCopyRodControllUpperSpeedRate() { #pragma pop /* 800E1748-800E1840 0DC088 00F8+00 2/2 0/0 0/0 .text setCopyRodModel__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setCopyRodModel() { - nofralloc -#include "asm/d/a/d_a_alink/setCopyRodModel__9daAlink_cFv.s" +void daAlink_c::setCopyRodModel() { + JKRHeap* heap = setItemHeap(); + J3DModelData* mdl_data = loadAramBmd(0x315, 0x5400); + mHeldItemModel = initModel(mdl_data, 0x80000, 0x1000000); + field_0x0724 = loadAramItemBrk(0x323, mHeldItemModel); + mDoExt_setCurrentHeap(heap); + field_0x0724->setFrame(FLOAT_LABEL(lit_6108)); + field_0x2f94 = 2; + field_0x122C[0].SetAtSpl(dCcG_At_Spl_UNK_0); + field_0x122C[0].SetAtAtp(0); + field_0x122C[0].SetAtSe(20); + field_0x122C[0].SetAtHitMark(1); + field_0x122C[0].OnAtSetBit(); + field_0x122C[0].SetAtHitCallback(NULL); + field_0x122C[0].SetAtMtrl(0); + mHeldItemModel->i_setBaseTRMtx(field_0x0650->i_getAnmMtx(field_0x30c0)); + mHeldItemModel->calc(); } -#pragma pop /* 800E1840-800E191C 0DC180 00DC+00 2/2 0/0 0/0 .text setCopyRodReadyAnime__9daAlink_cFv */ +// regalloc +#ifdef NONMATCHING +void daAlink_c::setCopyRodReadyAnime() { + f32 tmp; + if (i_checkAttentionLock()) { + tmp = daAlinkHIO_boom_c0::m.valc; + } else { + tmp = FLOAT_LABEL(lit_6108); + } + + setUpperAnimeBaseSpeed(0x54, tmp, lit_6109); + if (checkCopyRodTopUse()) { + seStartSwordCut(Z2SE_AL_COPYROD_READY); + } else { + seStartSwordCut(Z2SE_AL_COPYROD_READY_OFF); + } + field_0x122C[0].SetR(lit_8676); + field_0x122C[0].SetAtType(0x1000000); + initLockAt(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -22583,16 +22189,34 @@ asm void daAlink_c::setCopyRodReadyAnime() { #include "asm/d/a/d_a_alink/setCopyRodReadyAnime__9daAlink_cFv.s" } #pragma pop +#endif /* 800E191C-800E1A30 0DC25C 0114+00 1/1 0/0 0/0 .text throwCopyRod__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::throwCopyRod() { - nofralloc -#include "asm/d/a/d_a_alink/throwCopyRod__9daAlink_cFv.s" +void daAlink_c::throwCopyRod() { + daCrod_c* copy_rod = static_cast(mItemActor.getActor()); + i_onNoResetFlg1(FLG1_UNK_10000); + + if (checkCopyRodTopUse()) { + copy_rod->setThrow(); + mCopyRodAcKeep = mItemActor; + i_onNoResetFlg3(COPY_ROD_THROW_AFTER); + mItemActor.clearData(); + } + dComIfGp_clearPlayerStatus0(0, 0x80); + mFastShotTime = -1; + voiceStart(Z2SE_AL_V_ATTACK_S); + seStartSwordCut(Z2SE_AL_COPYROD_SWING); + + if (mLinkAcch.ChkGroundHit()) { + if (checkZeroSpeedF()) { + field_0x2f98 = 3; + procAtnActorWaitInit(); + } else { + procAtnActorMoveInit(); + } + field_0x2060->initOldFrameMorf(FLOAT_LABEL(lit_6108), 0, 35); + } } -#pragma pop /* 800E1A30-800E1ADC 0DC370 00AC+00 0/0 0/0 1/1 .text returnCopyRod__9daAlink_cFv */ #pragma push @@ -22604,6 +22228,18 @@ asm void daAlink_c::returnCopyRod() { } #pragma pop +/* void daAlink_c::returnCopyRod() { + i_offNoResetFlg3(COPY_ROD_THROW_AFTER); + + if (mEquipItem == 0x46) { + mItemActor = mCopyRodAcKeep; + i_onNoResetFlg0(FLG0_UNK_20); + cXyz tmp(0, 1, 0); + dComIfGp_getVibration().StartShock(1, 1, tmp); + } + mCopyRodAcKeep.clearData(); +} */ + /* 800E1ADC-800E1BB4 0DC41C 00D8+00 2/2 0/0 0/0 .text checkUpperItemActionCopyRod__9daAlink_cFv */ #pragma push #pragma optimization_level 0 @@ -25348,7 +24984,7 @@ asm void daAlink_c::initCanoeRide() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkCanoeJumpRide() { +asm BOOL daAlink_c::checkCanoeJumpRide() { nofralloc #include "asm/d/a/d_a_alink/checkCanoeJumpRide__9daAlink_cFv.s" } @@ -29429,7 +29065,7 @@ asm void daAlink_c::setIronBallPos() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkIronBallAnime() const { +asm BOOL daAlink_c::checkIronBallAnime() const { nofralloc #include "asm/d/a/d_a_alink/checkIronBallAnime__9daAlink_cCFv.s" } @@ -30829,35 +30465,85 @@ asm void daAlink_c::checkAcceptWarp() { } #pragma pop + /* 8011F7D8-8011F8B8 11A118 00E0+00 2/2 0/0 0/0 .text dungeonReturnWarp__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::dungeonReturnWarp() { - nofralloc -#include "asm/d/a/d_a_alink/dungeonReturnWarp__9daAlink_cFv.s" +void daAlink_c::dungeonReturnWarp() { + cXyz pos = dComIfGs_getWarpPlayerPos(); + s16 angle = dComIfGs_getWarpPlayerAngleY(); + s8 room = dComIfGs_getWarpRoomNo(); + char name[8]; + strcpy(name, dComIfGs_getWarpStageName()); + + dComIfGs_setRestartRoom(pos, angle, room); + dComIfGp_setNextStage(name, -1, dComIfGs_getRestartRoomNo(), -1, FLOAT_LABEL(lit_6108), 12, 0, 0, 0, 1, 0); + u32 data = setParamData(dComIfGs_getRestartRoomNo(), 0, 0xCA, 0); + dComIfGs_setRestartRoomParam(data); } -#pragma pop /* 8011F8B8-8011F9EC 11A1F8 0134+00 1/0 0/0 0/0 .text skipPortalObjWarp__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::skipPortalObjWarp() { - nofralloc -#include "asm/d/a/d_a_alink/skipPortalObjWarp__9daAlink_cFv.s" +void daAlink_c::skipPortalObjWarp() { + if (mActionID == WARP && field_0x300e <= 0) { + return; + } + + if (i_checkNoResetFlg3(FLG3_UNK_2000000) && (dComIfGp_TargetWarpPt_get() == 9 && dComIfGp_TransportWarp_check())) { + dStage_changeScene(2, FLOAT_LABEL(lit_6108), 0, fopAcM_GetRoomNo(this), mCollisionRot.y, -1); + } else { + u32 data = setParamData(dMeter2Info_getWarpRoomNo(), 0, 0xCA, 0); + dComIfGs_setTurnRestart(dMeter2Info_getWarpPos(), dMeter2Info_getWarpPlayerNo(), dMeter2Info_getWarpRoomNo(), data); + dComIfGp_setNextStage(dMeter2Info_getWarpStageName(), -4, dMeter2Info_getWarpRoomNo(), -1, FLOAT_LABEL(lit_6108), 0, 1, 0, mCollisionRot.y, 1, 0); + } + + if (mActionID == WARP) { + field_0x300e = -1; + } } -#pragma pop /* 8011F9EC-8011FBC0 11A32C 01D4+00 1/1 0/0 0/0 .text checkWarpStart__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkWarpStart() { - nofralloc -#include "asm/d/a/d_a_alink/checkWarpStart__9daAlink_cFv.s" +void daAlink_c::checkWarpStart() { + if (dMeter2Info_getWarpStatus() != 0) { + if (dMeter2Info_getWarpStatus() == 3 || dComIfGp_event_compulsory(this, 0, 0xFFFF)) { + i_onNoResetFlg0(0x4000); + if (dMeter2Info_getWarpStatus() == 3) { + const char* portal; + if (!i_checkMidnaRide()) { + if (dComIfGp_TargetWarpPt_get() == 3) { + mEvtInfo.setArchiveName("Obj_kbrg"); + portal = kBridgePortal; + } + else if (dComIfGp_TargetWarpPt_get() == 6) { + mEvtInfo.setArchiveName("Obj_obrg"); + portal = oBridgePortal; + } + else if (dComIfGp_TargetWarpPt_get() == 9) { + mEvtInfo.setArchiveName("M_VolcBom"); + portal = volcBomPortal; + } + else if (dComIfGp_TargetWarpPt_get() == 8) { + mEvtInfo.setArchiveName("SCanCrs"); + portal = cannonPortal; + } else { + portal = defaultPortal; + } + } else { + dComIfGp_TargetWarpPt_set(0xFF); + portal = defaultPortal; + } + fopAcM_orderOtherEvent(this, portal, 0xFFFF, 1, 1); + } else { + mDemo.i_setSpecialDemoType(); + if (dMeter2Info_getWarpStatus() == 1) { + stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); + u32 tmp = dStage_stagInfo_GetEscapeWarp(stag_info); + dStage_changeScene(tmp, FLOAT_LABEL(lit_6108), 0, -1, mCollisionRot.y, -1); + } else { + dungeonReturnWarp(); + } + } + } + g_meter2_info.resetWarpStatus(); + } } -#pragma pop /* 8011FBC0-8011FD4C 11A500 018C+00 3/3 0/0 0/0 .text warpModelTexScroll__9daAlink_cFv */ #pragma push @@ -30928,6 +30614,15 @@ void daAlink_c::commonFallInit(int param_0) { /* 80120580-80120634 11AEC0 00B4+00 21/21 0/0 0/0 .text * setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz */ +// matches with literal +#ifdef NONMATCHING +void daAlink_c::setEmitter(u32* param_0, u16 param_1, cXyz const* param_2, + csXyz const* param_3) { + *param_0 = dComIfGp_particle_set(*param_0, param_1, param_2, &mTevStr, param_3, NULL, 0xFF, NULL, 0xFF, NULL, NULL, NULL); + dComIfGp_particle_levelEmitterOnEventMove(*param_0); + dComIfGp_particle_getEmitter(*param_0); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -30937,18 +30632,16 @@ asm void daAlink_c::setEmitter(u32* param_0, u16 param_1, cXyz const* param_2, #include "asm/d/a/d_a_alink/setEmitter__9daAlink_cFPUlUsPC4cXyzPC5csXyz.s" } #pragma pop +#endif /* 80120634-801206C4 11AF74 0090+00 4/4 0/0 0/0 .text * setEmitterPolyColor__9daAlink_cFPUlUsR13cBgS_PolyInfoPC4cXyzPC5csXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setEmitterPolyColor(u32* param_0, u16 param_1, cBgS_PolyInfo& param_2, +void daAlink_c::setEmitterPolyColor(u32* param_0, u16 param_1, cBgS_PolyInfo& param_2, cXyz const* param_3, csXyz const* param_4) { - nofralloc -#include "asm/d/a/d_a_alink/setEmitterPolyColor__9daAlink_cFPUlUsR13cBgS_PolyInfoPC4cXyzPC5csXyz.s" + *param_0 = dComIfGp_particle_setPolyColor(*param_0, param_1, param_2, param_3, &mTevStr, param_4, NULL, 0, NULL, -1, NULL); + dComIfGp_particle_levelEmitterOnEventMove(*param_0); + dComIfGp_particle_getEmitter(*param_0); } -#pragma pop /* 801206C4-80120778 11B004 00B4+00 2/2 0/0 0/0 .text * setEmitterColor__9daAlink_cFPUlUsPC4cXyzPC5csXyz */ @@ -31280,6 +30973,24 @@ asm void daAlink_c::setWaterDropEffect() { /* 801244E4-801245EC 11EE24 0108+00 1/1 0/0 0/0 .text setSwordUpColorEffect__9daAlink_cFv */ +// matches with literals +#ifdef NONMATCHING +void daAlink_c::setSwordUpColorEffect() { + f32 max_intensity; + if (mSwordUpTimer != 0) { + max_intensity = 1.0f; + } else { + max_intensity = 0.0f; + } + cLib_chaseF(&mSwordUpColorIntensity, max_intensity, 0.1f); + + for (int i = 0; i < 2; i++) { + field_0x32b0[i].mColor.r = mSwordUpColorIntensity * swordUpColor[i].r; + field_0x32b0[i].mColor.g = mSwordUpColorIntensity * swordUpColor[i].g; + field_0x32b0[i].mColor.b = mSwordUpColorIntensity * swordUpColor[i].b; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -31288,6 +30999,7 @@ asm void daAlink_c::setSwordUpColorEffect() { #include "asm/d/a/d_a_alink/setSwordUpColorEffect__9daAlink_cFv.s" } #pragma pop +#endif /* 801245EC-80124738 11EF2C 014C+00 1/1 0/0 0/0 .text setSwordCutSplash__9daAlink_cFv */ #pragma push @@ -31301,14 +31013,11 @@ asm void daAlink_c::setSwordCutSplash() { /* 80124738-801247A8 11F078 0070+00 1/1 0/0 0/0 .text setMetamorphoseEffectStartLink__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setMetamorphoseEffectStartLink() { - nofralloc -#include "asm/d/a/d_a_alink/setMetamorphoseEffectStartLink__9daAlink_cFv.s" +void daAlink_c::setMetamorphoseEffectStartLink() { + setEmitter(&field_0x31f8, 0x24F, &field_0x37c8, NULL); + setEmitter(&field_0x31fc, 0x250, &field_0x37c8, NULL); + setEmitter(&field_0x3200, 0x6E8, &cXyz::Zero, NULL); } -#pragma pop /* 801247A8-801248A8 11F0E8 0100+00 1/1 0/0 0/0 .text setMetamorphoseEffect__9daAlink_cFv */ @@ -31345,14 +31054,10 @@ extern "C" asm void execute__29dAlink_bottleWaterPcallBack_cFP14JPABaseEmitterP1 #pragma pop /* 80124B68-80124BA4 11F4A8 003C+00 2/2 0/0 0/0 .text resetFairyEffect__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::resetFairyEffect() { - nofralloc -#include "asm/d/a/d_a_alink/resetFairyEffect__9daAlink_cFv.s" +void daAlink_c::resetFairyEffect() { + stopDrawParticle(field_0x3258); + stopDrawParticle(field_0x325c); } -#pragma pop /* 80124BA4-80124E28 11F4E4 0284+00 1/1 0/0 0/0 .text setBottleEffect__9daAlink_cFv */ #pragma push @@ -31365,14 +31070,16 @@ asm void daAlink_c::setBottleEffect() { #pragma pop /* 80124E28-80124EA8 11F768 0080+00 2/2 0/0 0/0 .text clearFirePointDamageEffect__9daAlink_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::clearFirePointDamageEffect(int param_0) { - nofralloc -#include "asm/d/a/d_a_alink/clearFirePointDamageEffect__9daAlink_cFi.s" +void daAlink_c::clearFirePointDamageEffect(int i) { + firePointEff_c* fire_eff = &field_0x32d8[i]; + + if (fire_eff->field_0x0 != 0) { + stopDrawParticle(fire_eff->field_0x4); + stopDrawParticle(fire_eff->field_0x8); + } + fire_eff->field_0x0 = 0; + fire_eff->field_0x24 = cXyz::Zero; } -#pragma pop /* 80124EA8-80124FA4 11F7E8 00FC+00 1/1 0/0 0/0 .text initFirePointDamageEffectAll__9daAlink_cFv */ @@ -31427,6 +31134,16 @@ asm void daAlink_c::setWoodShieldBurnEffect() { #pragma pop /* 801255BC-80125628 11FEFC 006C+00 3/3 0/0 0/0 .text clearWoodShieldBurnEffect__9daAlink_cFv */ +#ifdef NONMATCHING +void daAlink_c::clearWoodShieldBurnEffect() { + if (field_0x2fcb != 0) { + for (int i = 0; i < 2; i++) { + stopDrawParticle(field_0x3260[i].field_0x0); + } + field_0x2fcb = 0; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -31435,6 +31152,7 @@ asm void daAlink_c::clearWoodShieldBurnEffect() { #include "asm/d/a/d_a_alink/clearWoodShieldBurnEffect__9daAlink_cFv.s" } #pragma pop +#endif /* 80125628-801256EC 11FF68 00C4+00 1/1 0/0 0/0 .text setWoodShieldBurnOutEffect__9daAlink_cFv */ #pragma push @@ -31448,15 +31166,17 @@ asm void daAlink_c::setWoodShieldBurnOutEffect() { /* 801256EC-80125778 12002C 008C+00 2/2 0/0 0/0 .text * initBlur__14daAlink_blur_cFfiPC4cXyzPC4cXyzPC4cXyz */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_blur_c::initBlur(f32 param_0, int param_1, cXyz const* param_2, +void daAlink_blur_c::initBlur(f32 param_0, int param_1, cXyz const* param_2, cXyz const* param_3, cXyz const* param_4) { - nofralloc -#include "asm/d/a/d_a_alink/initBlur__14daAlink_blur_cFfiPC4cXyzPC4cXyzPC4cXyz.s" + field_0x24 = param_0; + field_0x1c = param_1; + field_0x2c = *param_4; + field_0x38[0] = *param_2; + field_0x308[0] = *param_3; + field_0x38[1] = field_0x38[0]; + field_0x308[1] = field_0x308[0]; + field_0x14 = 0; } -#pragma pop /* 80125778-8012589C 1200B8 0124+00 1/1 0/0 0/0 .text * setBezierPos__FPC4cXyzPC4cXyzPC4cXyzPC4cXyzfP4cXyz */ @@ -31516,14 +31236,82 @@ extern "C" asm void draw__14daAlink_blur_cFv() { #pragma pop /* 80125F14-80126350 120854 043C+00 1/1 0/0 0/0 .text create__20daAlink_lockCursor_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_lockCursor_c::create() { - nofralloc -#include "asm/d/a/d_a_alink/create__20daAlink_lockCursor_cFv.s" +BOOL daAlink_lockCursor_c::create() { + JKRArchive* arc = dComIfG_getObjectResInfo(l_arcName)->getArchive(); + + f32 tmp = FLOAT_LABEL(lit_6108); + field_0x2c = tmp; + field_0x4 = false; + field_0x30 = tmp; + + mScrn = new J2DScreen(); + if (mScrn == NULL) { + return false; + } + + mScrn->setPriority("zelda_v_cursor_new_yellow.blo", 0x100000, arc); + dPaneClass_showNullPane(mScrn); + + void* tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.bpk", arc); + field_0x24 = (J2DAnmColorKey*)J2DAnmLoaderDataBase::load(tmpData); + if (field_0x24 == NULL) { + return false; + } + + tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.bck", arc); + field_0x28 = (J2DAnmTransformKey*)J2DAnmLoaderDataBase::load(tmpData); + if (field_0x28 == NULL) { + return false; + } + + tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow_02.brk", arc); + field_0x1c = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(tmpData); + if (field_0x1c == NULL) { + return false; + } + + tmpData = JKRFileLoader::getGlbResource("zelda_v_cursor_new_yellow.brk", arc); + field_0x20 = (J2DAnmTevRegKey*)J2DAnmLoaderDataBase::load(tmpData); + if (field_0x20 == NULL) { + return false; + } + + field_0xc = mScrn->search('n_all'); + mCursor0 = mScrn->search('cursor0'); + mCursor1 = mScrn->search('cursor1'); + mCursor2 = mScrn->search('cursor2'); + + field_0x28->searchUpdateMaterialID(mScrn); + field_0xc->setAnimation(field_0x28); + mCursor0->setAnimation(field_0x28); + mCursor1->setAnimation(field_0x28); + mCursor2->setAnimation(field_0x28); + field_0x28->setFrame(FLOAT_LABEL(lit_6108)); + + field_0x24->searchUpdateMaterialID(mScrn); + mCursor0->setAnimation(field_0x24); + mCursor1->setAnimation(field_0x24); + mCursor2->setAnimation(field_0x24); + mScrn->search('flash')->setAnimation(field_0x24); + field_0x24->setFrame(FLOAT_LABEL(lit_6108)); + + field_0x1c->searchUpdateMaterialID(mScrn); + field_0x20->searchUpdateMaterialID(mScrn); + mCursor0->setAnimation(field_0x1c); + mCursor1->setAnimation(field_0x1c); + mCursor2->setAnimation(field_0x1c); + mCursor0->setAnimation(field_0x20); + mCursor1->setAnimation(field_0x20); + mCursor2->setAnimation(field_0x20); + f32 tmp2 = FLOAT_LABEL(lit_6108); + field_0x1c->setFrame(tmp2); + field_0x20->setFrame(tmp2); + + mScrn->animation(); + mScrn->setUserInfo('n_43'); + field_0xc->setUserInfo(0x20); + return true; } -#pragma pop /* 80126350-80126354 120C90 0004+00 0/0 4/0 0/0 .text setAnimation__7J2DPaneFP15J2DAnmTevRegKey */ void J2DPane::setAnimation(J2DAnmTevRegKey* param_0) { @@ -31557,14 +31345,14 @@ extern "C" asm void draw__20daAlink_lockCursor_cFv() { #pragma pop /* 80126650-801266C0 120F90 0070+00 1/1 0/0 0/0 .text create__15daAlink_sight_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_sight_c::create() { - nofralloc -#include "asm/d/a/d_a_alink/create__15daAlink_sight_cFv.s" +bool daAlink_sight_c::create() { + if (!mLockCursor.create()) { + return false; + } + ResTIMG* data = (ResTIMG*)dComIfG_getObjectRes(l_arcName, daAlink_c::getSightBti()); + setSightImage(data); + return true; } -#pragma pop /* 801266C0-80126710 121000 0050+00 1/0 0/0 0/0 .text draw__15daAlink_sight_cFv */ #pragma push @@ -31578,6 +31366,16 @@ extern "C" asm void draw__15daAlink_sight_cFv() { #pragma pop /* 80126710-80126740 121050 0030+00 2/2 0/0 0/0 .text onLockFlg__15daAlink_sight_cFv */ +// matches with literals +#ifdef NONMATCHING +void daAlink_sight_c::onLockFlg() { + if (mLockFlag) { + return; + } + mLockFlag = true; + mLockCursor.initFrame(); +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -31586,6 +31384,7 @@ asm void daAlink_sight_c::onLockFlg() { #include "asm/d/a/d_a_alink/onLockFlg__15daAlink_sight_cFv.s" } #pragma pop +#endif /* 80126740-80126928 121080 01E8+00 2/2 0/0 0/0 .text changeCommon__9daAlink_cFv */ #pragma push @@ -31618,40 +31417,33 @@ asm void daAlink_c::changeLink(int param_0) { #pragma pop /* 80127C54-80127CAC 122594 0058+00 2/2 0/0 0/0 .text onWolfEyeUp__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::onWolfEyeUp() { - nofralloc -#include "asm/d/a/d_a_alink/onWolfEyeUp__9daAlink_cFv.s" +void daAlink_c::onWolfEyeUp() { + if (mWolfEyeUp == 0) { + mZ2Link.setWolfEyeOpen(true); + mWolfEyeUp = daAlinkHIO_wolf_c0::m.mSensesLingerTime; + field_0x2fd2 = 20; + } } -#pragma pop /* 80127CAC-80127CF0 1225EC 0044+00 5/5 0/0 0/0 .text offWolfEyeUp__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::offWolfEyeUp() { - nofralloc -#include "asm/d/a/d_a_alink/offWolfEyeUp__9daAlink_cFv.s" +void daAlink_c::offWolfEyeUp() { + if (mWolfEyeUp != 0) { + mWolfEyeUp = 0; + field_0x2fd2 = 20; + mZ2Link.setWolfEyeOpen(false); + } } -#pragma pop /* 80127CF0-80127D14 122630 0024+00 1/1 0/0 0/0 .text wolfSenseTrigger__9daAlink_cFv */ -void daAlink_c::wolfSenseTrigger() { - itemTriggerCheck(1); +BOOL daAlink_c::wolfSenseTrigger() { + return itemTriggerCheck(1); } /* 80127D14-80127D2C 122654 0018+00 1/1 0/0 0/0 .text setWolfSenceStatus__9daAlink_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setWolfSenceStatus(u8 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setWolfSenceStatus__9daAlink_cFUc.s" +void daAlink_c::setWolfSenceStatus(u8 status) { + dComIfGp_setXStatus(status, 0); } -#pragma pop /* 80127D2C-80127D50 12266C 0024+00 1/1 0/0 0/0 .text wolfClawTrigger__9daAlink_cFv */ void daAlink_c::wolfClawTrigger() { @@ -31659,14 +31451,9 @@ void daAlink_c::wolfClawTrigger() { } /* 80127D50-80127D68 122690 0018+00 2/2 0/0 0/0 .text setWolfDigStatus__9daAlink_cFUc */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::setWolfDigStatus(u8 param_0) { - nofralloc -#include "asm/d/a/d_a_alink/setWolfDigStatus__9daAlink_cFUc.s" +void daAlink_c::setWolfDigStatus(u8 flag) { + dComIfGp_setYStatus(13, flag); } -#pragma pop /* 80127D68-80127DC4 1226A8 005C+00 4/4 0/0 0/0 .text checkWolfShapeReverse__9daAlink_cCFv */ #pragma push @@ -31679,14 +31466,9 @@ asm BOOL daAlink_c::checkWolfShapeReverse() const { #pragma pop /* 80127DC4-80127E08 122704 0044+00 1/1 0/0 0/0 .text checkWolfSideStep__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkWolfSideStep() const { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfSideStep__9daAlink_cCFv.s" +BOOL daAlink_c::checkWolfSideStep() const { + return field_0x2f98 != 0 && ((mActionID == WOLF_ATN_WAIT && !i_checkModeFlg(1)) || mActionID == WOLF_SIDESTEP_LAND || mActionID == WOLF_BACKFLIP_LAND); } -#pragma pop /* 80127E08-80127F20 122748 0118+00 1/1 0/0 0/0 .text setWolfTailAngle__9daAlink_cFv */ #pragma push @@ -31699,14 +31481,9 @@ asm void daAlink_c::setWolfTailAngle() { #pragma pop /* 80127F20-80127F50 122860 0030+00 5/5 0/0 0/0 .text checkWolfSlowDash__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkWolfSlowDash() { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfSlowDash__9daAlink_cFv.s" +BOOL daAlink_c::checkWolfSlowDash() { + return field_0x2fc7 == 1 || field_0x2fc7 == 3 || field_0x3174 == 11; } -#pragma pop /* 80127F50-80128478 122890 0528+00 1/1 0/0 0/0 .text setSpeedAndAngleWolf__9daAlink_cFv */ @@ -31739,16 +31516,15 @@ asm void daAlink_c::checkWolfAtnWait() { } #pragma pop +/* void daAlink_c::checkWolfAtnWait() { + return checkEnemyGroup(mTargetedActor) && mDemo.getDemoMode() == 0x17 || mTargetedActor != NULL || fopAcM_GetName(mTargetedActor) == 0x262 || +} */ + /* 8012880C-80128844 12314C 0038+00 27/27 0/0 0/0 .text * checkUnderMove0BckNoArcWolf__9daAlink_cCFQ29daAlink_c12daAlink_WANM */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM param_0) const { - nofralloc -#include "asm/d/a/d_a_alink/checkUnderMove0BckNoArcWolf__9daAlink_cCFQ29daAlink_c12daAlink_WANM.s" +BOOL daAlink_c::checkUnderMove0BckNoArcWolf(daAlink_c::daAlink_WANM anm_id) const { + return mUnderAnime[0].checkNoSetArcNo() && m_wlAnmDataTable[anm_id].field_0x0 == mUnderAnime[0].getIdx(); } -#pragma pop /* 80128844-80128F0C 123184 06C8+00 11/11 0/0 0/0 .text setBlendWolfMoveAnime__9daAlink_cFf */ #pragma push @@ -31884,38 +31660,56 @@ asm void daAlink_c::checkWolfLandAction(int param_0) { } #pragma pop +inline bool i_dComIfGp_checkPlayerStatus1(int param_0, u32 flag) { + return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 1, flag); +} + /* 80129958-801299A8 124298 0050+00 1/1 0/0 1/1 .text checkMidnaUseAbility__9daAlink_cCFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkMidnaUseAbility() const { - nofralloc -#include "asm/d/a/d_a_alink/checkMidnaUseAbility__9daAlink_cCFv.s" +BOOL daAlink_c::checkMidnaUseAbility() const { + return i_dComIfGp_checkPlayerStatus1(0, 0x800000) || dKy_withwarp_capture_check(); } -#pragma pop /* 801299A8-80129A80 1242E8 00D8+00 1/1 0/0 0/0 .text checkWolfUseAbility__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkWolfUseAbility() { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfUseAbility__9daAlink_cFv.s" +void daAlink_c::checkWolfUseAbility() { + if (mActionID == 0x137) { + return; + } + + if (checkMidnaLockJumpPoint() != NULL && !i_checkMidnaRide()) { + offWolfEyeUp(); + } else { + if (i_dComIfGs_isEventBit(0x4308) && field_0x2fd2 == 0 && !checkEventRun() && mWolfEyeUp < daAlinkHIO_wolf_c0::m.mSensesLingerTime && wolfSenseTrigger()) { + if (mWolfEyeUp == 0) { + onWolfEyeUp(); + } else { + offWolfEyeUp(); + } + } + } } -#pragma pop /* 80129A80-80129B44 1243C0 00C4+00 13/13 0/0 0/0 .text checkWolfGroundSpecialMode__9daAlink_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daAlink_c::checkWolfGroundSpecialMode() { - nofralloc -#include "asm/d/a/d_a_alink/checkWolfGroundSpecialMode__9daAlink_cFv.s" +bool daAlink_c::checkWolfGroundSpecialMode() { + if (mLinkAcch.ChkGroundHit() && !i_checkModeFlg(MODE_PLAYER_FLY) && i_checkEndResetFlg0(ERFLG0_UNK_1)) { + return procCoMetamorphoseInit(); + } + else if (mSpecialMode == SMODE_WOLF_PUZZLE || mSpecialMode == 0x28) { + return procWolfGiantPuzzleInit(); + } + else if (checkCargoCarry()) { + return procWolfCargoCarryInit(); + } + else if (checkSlideAction()) { + return true; + } + else if (i_checkEndResetFlg1(ERFLG1_UNK_1)) { + return procWolfScreamWaitInit(); + } + return false; } -#pragma pop /* 80129B44-8012A02C 124484 04E8+00 46/46 0/0 0/0 .text checkNextActionWolf__9daAlink_cFi */ @@ -32907,7 +32701,7 @@ asm void daAlink_c::getWolfTagJumpTime() const { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::checkMidnaLockJumpPoint() const { +asm cXyz* daAlink_c::checkMidnaLockJumpPoint() const { nofralloc #include "asm/d/a/d_a_alink/checkMidnaLockJumpPoint__9daAlink_cCFv.s" } @@ -32980,7 +32774,7 @@ static asm void daAlink_searchGiantTalk(fopAc_ac_c* param_0, void* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procWolfGiantPuzzleInit() { +asm bool daAlink_c::procWolfGiantPuzzleInit() { nofralloc #include "asm/d/a/d_a_alink/procWolfGiantPuzzleInit__9daAlink_cFv.s" } @@ -33169,7 +32963,7 @@ asm void daAlink_c::setWolfScreamWaitAnime() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procWolfScreamWaitInit() { +asm bool daAlink_c::procWolfScreamWaitInit() { nofralloc #include "asm/d/a/d_a_alink/procWolfScreamWaitInit__9daAlink_cFv.s" } @@ -34060,7 +33854,7 @@ static asm void daAlink_searchEnemyCargo(fopAc_ac_c* param_0, void* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daAlink_c::procWolfCargoCarryInit() { +asm bool daAlink_c::procWolfCargoCarryInit() { nofralloc #include "asm/d/a/d_a_alink/procWolfCargoCarryInit__9daAlink_cFv.s" } @@ -35718,7 +35512,7 @@ BOOL daPy_py_c::checkWolfHowlSuccessAnime() const { } /* 8014192C-80141934 13C26C 0008+00 1/0 0/0 0/0 .text checkCopyRodTopUse__9daPy_py_cFv */ -bool daPy_py_c::checkCopyRodTopUse() { +BOOL daPy_py_c::checkCopyRodTopUse() { return false; } diff --git a/src/d/a/d_a_player.cpp b/src/d/a/d_a_player.cpp index c625449590b..8c3743d800a 100644 --- a/src/d/a/d_a_player.cpp +++ b/src/d/a/d_a_player.cpp @@ -232,7 +232,7 @@ void daPy_boomerangMove_c::initOffset(cXyz const* param_0) { /* ############################################################################################## */ /* 80451018-8045101C 000518 0004+00 2/2 33/32 103/103 .sbss m_midnaActor__9daPy_py_c */ -u8 daPy_py_c::m_midnaActor[4]; +daMidna_c* daPy_py_c::m_midnaActor; /* 8045101C-80451020 -00001 0004+00 1/1 1/1 1/1 .sbss None */ /* 8045101C 0002+00 data_8045101C m_dropAngleY__20daPy_boomerangMove_c */ @@ -304,7 +304,7 @@ asm void daPy_boomerangMove_c::bgCheckAfterOffset(cXyz const* param_0) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) { +asm u32 daPy_py_c::setParamData(int param_0, int param_1, int param_2, int param_3) { nofralloc #include "asm/d/a/d_a_player/setParamData__9daPy_py_cFiiii.s" } @@ -574,9 +574,9 @@ J3DAnmBase* daPy_anmHeap_c::loadDataDemoRID(u16 pID, u16 pArcNo) { } /* 8015F168-8015F1A0 159AA8 0038+00 1/1 4/4 0/0 .text setAnimeHeap__14daPy_anmHeap_cFv */ -void daPy_anmHeap_c::setAnimeHeap() { +JKRHeap* daPy_anmHeap_c::setAnimeHeap() { mAnimeHeap->freeAll(); - mDoExt_setCurrentHeap(mAnimeHeap); + return mDoExt_setCurrentHeap(mAnimeHeap); } /* ############################################################################################## */ diff --git a/src/d/com/d_com_inf_game.cpp b/src/d/com/d_com_inf_game.cpp index 557b44267a0..9d5c67bea95 100644 --- a/src/d/com/d_com_inf_game.cpp +++ b/src/d/com/d_com_inf_game.cpp @@ -28,10 +28,6 @@ struct dSmplMdl_draw_c { /* 80049058 */ void removeModel(J3DModelData*, int); }; -struct dPa_control_c { - /* 8004BACC */ dPa_control_c(); -}; - struct dMapInfo_n { /* 8003EE5C */ void getMapPlayerPos(); }; @@ -2276,7 +2272,7 @@ cXyz dComIfGs_getWarpPlayerPos() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dComIfGs_getWarpPlayerPos() { +asm cXyz& dComIfGs_getWarpPlayerPos() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_getWarpPlayerPos__Fv.s" } @@ -2287,7 +2283,7 @@ s16 dComIfGs_getWarpPlayerAngleY() { return dComIfGs_getLastWarpMarkPlayerAngleY(); } -int dComIfGs_getWarpRoomNo() { +s8 dComIfGs_getWarpRoomNo() { return dComIfGs_getLastWarpMarkRoomNo(); } diff --git a/src/d/event/d_event.cpp b/src/d/event/d_event.cpp index c30bb716b95..a6fc85fd473 100644 --- a/src/d/event/d_event.cpp +++ b/src/d/event/d_event.cpp @@ -628,7 +628,7 @@ bool dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm bool dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) { +asm BOOL dEvt_control_c::compulsory(void* param_0, char const* param_1, u16 param_2) { nofralloc #include "asm/d/event/d_event/compulsory__14dEvt_control_cFPvPCcUs.s" } diff --git a/src/d/event/d_event_data.cpp b/src/d/event/d_event_data.cpp index 7c3b85a8397..ed12b409731 100644 --- a/src/d/event/d_event_data.cpp +++ b/src/d/event/d_event_data.cpp @@ -4,6 +4,7 @@ // #include "d/event/d_event_data.h" +#include "d/com/d_com_inf_game.h" #include "dol2asm.h" #include "dolphin/types.h" @@ -18,45 +19,6 @@ struct mDoGph_gInf_c { static f32 mFadeRate; }; -struct dVibration_c { - /* 8006FA24 */ void StartShock(int, int, cXyz); - /* 8006FB10 */ void StartQuake(int, int, cXyz); - /* 8006FC0C */ void StartQuake(u8 const*, int, int, cXyz); - /* 8006FD94 */ void StopQuake(int); -}; - -struct dMsgObject_c { - /* 8023806C */ void demoMessageGroup(); -}; - -struct dEvt_control_c { - /* 80042914 */ void setSkipProc(void*, int (*)(void*, int), int); - /* 80042958 */ void setSkipZev(void*, char*); - /* 80043278 */ void getStageEventDt(); - /* 800432EC */ void convPId(unsigned int); - /* 8004331C */ void getStbDemoData(char*); - /* 800434D8 */ void searchMapEventData(u8); - /* 8004365C */ void setPt2(void*); - /* 8004368C */ void setPtT(void*); - /* 800436BC */ void setPtI(void*); - /* 800436F4 */ void setPtD(void*); -}; - -struct dEvent_manager_c { - /* 80047B1C */ void getMyStaffId(char const*, fopAc_ac_c*, int); - /* 80047D4C */ void getIsAddvance(int); - /* 80047F5C */ void getMyNowCutName(int); - /* 800480EC */ void getMySubstanceP(int, char const*, int); - /* 80048144 */ void getMySubstanceNum(int, char const*); - /* 8004817C */ void cutEnd(int); -}; - -struct dDlst_list_c { - /* 800568D8 */ void wipeIn(f32); - - static f32 mWipeRate; -}; - struct dDemo_c { /* 80039B6C */ void start(u8 const*, cXyz*, f32); /* 80039CF8 */ void end(); @@ -75,8 +37,6 @@ struct Z2SeqMgr { /* 802AFE18 */ void bgmStreamPlay(); }; -struct JAISoundID {}; - struct Z2SeMgr { /* 802AB984 */ void seStart(JAISoundID, Vec const*, u32, s8, f32, f32, f32, f32, u8); }; @@ -189,7 +149,6 @@ extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" u8 const tempBitLabels__20dSv_event_tmp_flag_c[370 + 2 /* padding */]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; -extern "C" extern u8 g_dComIfG_gameInfo[122384]; extern "C" f32 mFadeRate__13mDoGph_gInf_c; extern "C" extern u8 struct_80450BE4[4]; extern "C" u8 m_control__7dDemo_c[4]; @@ -316,14 +275,116 @@ SECTION_SDATA2 static f32 lit_4265 = 15.0f; SECTION_SDATA2 static f64 lit_4267 = 4503601774854144.0 /* cast s32 to float */; /* 80043A14-80043D60 03E354 034C+00 1/1 0/0 0/0 .text dEvDt_Next_Stage__Fii */ +// bunch of issues with sclsInfo section. regalloc for the rest +#ifdef NONMATCHING +static int dEvDt_Next_Stage(int index, int wipe_type) { + char* stage; + s16 point; + s8 roomNo; + s8 layer; + u32 mode = 0; // uvar8 - retail + s8 wipe = wipe_type; // ivar10 + int noVisit = true; + int wipe_time = 0; // bvar9 + f32 speed = FLOAT_LABEL(lit_4264); // dvar12 + bool setHour = false; // bvar2 + f32 hour = speed; // set to 0.0f dvar13 + + int* p_id = dComIfGp_evmng_getMyIntegerP(index, "ID"); + if (p_id != NULL) { + int id = *p_id; + s8 room_no = dComIfGp_roomControl_getStayNo(); + stage_scls_info_dummy_class* info; + if (room_no == -1) { + info = dComIfGp_getStageSclsInfo(); + } else { + info = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getSclsInfo(); + } + + if (info != NULL && id >= 0 && id < info->numEntries) { + stage = info->mEntries[id].mStage; + point = info->mEntries[id].mStart; + roomNo = info->mEntries[id].mRoom; + layer = dStage_sclsInfo_getSceneLayer(&info->mEntries[id]); + wipe = dStage_sclsInfo_getWipe(&info->mEntries[id]); + wipe_time = dStage_sclsInfo_getWipeTime(&info->mEntries[id]); + + if (wipe == 15) { + wipe = 0; + } + + s8 timeH = dStage_sclsInfo_getTimeH(&info->mEntries[id]); + if (timeH >= 0 && timeH <= 23) { + setHour = true; + hour = timeH; + } + } + } + + char* stageP = dComIfGp_evmng_getMyStringP(index, "Stage"); + if (stageP != NULL) { + stage = stageP; + } + + int* pointP = dComIfGp_evmng_getMyIntegerP(index, "StartCode"); + if (pointP != NULL) { + point = *pointP; + } + + int* roomP = dComIfGp_evmng_getMyIntegerP(index, "RoomNo"); + if (roomP != NULL) { + roomNo = *roomP; + } + + int* layerP = dComIfGp_evmng_getMyIntegerP(index, "Layer"); + if (layerP != NULL) { + layer = *layerP; + } + + int* wipeP = dComIfGp_evmng_getMyIntegerP(index, "Wipe"); + if (wipeP != NULL) { + wipe = *wipeP; + } + + int* modeP = dComIfGp_evmng_getMyIntegerP(index, "Mode"); + if (modeP != NULL) { + mode = *modeP; + } + + f32* speedP = dComIfGp_evmng_getMyFloatP(index, "Speed"); + if (speedP != NULL) { + speed = *speedP; + } + + f32* hourP = dComIfGp_evmng_getMyFloatP(index, "Hour"); + if (hourP != NULL) { + hour = *hourP; + setHour = true; + } + + int* noVisitP = dComIfGp_evmng_getMyIntegerP(index, "NoVisit"); + if (noVisitP != NULL) { + noVisit = false; + } + + if (stage != NULL && point != -1) { + if (setHour) { + dKy_set_nexttime(15.0f * hour); + } + dComIfGp_setNextStage(stage, point, roomNo, layer, speed, mode, 1, wipe, 0, noVisit, wipe_time); + } + return 1; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -static asm void dEvDt_Next_Stage(int param_0, int param_1) { +static asm int dEvDt_Next_Stage(int param_0, int param_1) { nofralloc #include "asm/d/event/d_event_data/dEvDt_Next_Stage__Fii.s" } #pragma pop +#endif /* 80043D60-80043DC8 03E6A0 0068+00 3/3 0/0 0/0 .text flagCheck__11dEvDtFlag_cFi */ #pragma push @@ -447,25 +508,28 @@ asm void dEvDtStaff_c::specialProc() { } #pragma pop -/* 80044134-80044170 03EA74 003C+00 0/0 1/1 0/0 .text init__12dEvDtStaff_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvDtStaff_c::init() { - nofralloc -#include "asm/d/event/d_event_data/init__12dEvDtStaff_cFv.s" +inline dEvent_manager_c& dComIfGp_getEventManager() { + return g_dComIfG_gameInfo.play.getEvtManager(); +} + +/* 80044134-80044170 03EA74 003C+00 0/0 1/1 0/0 .text init__12dEvDtStaff_cFv */ +void dEvDtStaff_c::init() { + mCurrentCut = mStartCut; + field_0x40 = true; + field_0x41 = false; + field_0x3c = -1; + if (mType == TYPE_CAMERA) { + dComIfGp_getEventManager().setCameraPlay(1); + } } -#pragma pop /* 80044170-80044190 03EAB0 0020+00 1/1 0/0 0/0 .text advanceCut__12dEvDtStaff_cFi */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvDtStaff_c::advanceCut(int param_0) { - nofralloc -#include "asm/d/event/d_event_data/advanceCut__12dEvDtStaff_cFi.s" +void dEvDtStaff_c::advanceCut(int cut) { + mCurrentCut = cut; + field_0x40 = true; + field_0x41 = false; + field_0x3c = -1; } -#pragma pop /* ############################################################################################## */ /* 80379DD0-80379DD0 006430 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ @@ -676,34 +740,66 @@ asm void dEvDtCut_c::startCheck() { #pragma pop /* 80046138-8004616C 040A78 0034+00 1/1 7/7 0/0 .text init__11dEvDtBase_cFv */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvDtBase_c::init() { - nofralloc -#include "asm/d/event/d_event_data/init__11dEvDtBase_cFv.s" +int dEvDtBase_c::init() { + mHeaderP = NULL; + mEventP = NULL; + mStaffP = NULL; + mCutP = NULL; + mDataP = NULL; + mFDataP = NULL; + mIDataP = NULL; + mSDataP = NULL; + mRoomNo = -1; + return 0; } -#pragma pop /* 8004616C-8004628C 040AAC 0120+00 0/0 6/6 0/0 .text init__11dEvDtBase_cFPci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvDtBase_c::init(char* param_0, int param_1) { - nofralloc -#include "asm/d/event/d_event_data/init__11dEvDtBase_cFPci.s" +int dEvDtBase_c::init(char* p_data, int roomNo) { + init(); + if (p_data == NULL) { + return 0; + } else { + setHeaderP((event_binary_data_header*)p_data); + + if (getEventNum() > 0) { + setEventP((dEvDtEvent_c*)(p_data + getEventTop())); + } + + if (getStaffNum() > 0) { + setStaffP((dEvDtStaff_c*)(p_data + getStaffTop())); + } + + if (getCutNum() > 0) { + setCutP((dEvDtCut_c*)(p_data + getCutTop())); + } + + if (getDataNum() > 0) { + setDataP((dEvDtData_c*)(p_data + getDataTop())); + } + + if (getFDataNum() > 0) { + setFDataP((f32*)(p_data + getFDataTop())); + } + + if (getIDataNum() > 0) { + setIDataP((int*)(p_data + getIDataTop())); + } + + if (getSDataNum() > 0) { + setSDataP((char*)(p_data + getSDataTop())); + } + + mRoomNo = roomNo; + return getEventNum(); + } } -#pragma pop /* 8004628C-800462FC 040BCC 0070+00 0/0 1/1 0/0 .text advanceCut__11dEvDtBase_cFP12dEvDtEvent_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvDtBase_c::advanceCut(dEvDtEvent_c* param_0) { - nofralloc -#include "asm/d/event/d_event_data/advanceCut__11dEvDtBase_cFP12dEvDtEvent_c.s" +void dEvDtBase_c::advanceCut(dEvDtEvent_c* p_event) { + for (int i = 0; i < p_event->getNStaff(); i++) { + advanceCutLocal(mStaffP + p_event->getStaff(i)); + } } -#pragma pop /* 800462FC-800463DC 040C3C 00E0+00 1/1 0/0 0/0 .text * advanceCutLocal__11dEvDtBase_cFP12dEvDtStaff_c */ diff --git a/src/d/event/d_event_manager.cpp b/src/d/event/d_event_manager.cpp index bc3f611c13d..c44253c42d4 100644 --- a/src/d/event/d_event_manager.cpp +++ b/src/d/event/d_event_manager.cpp @@ -199,21 +199,21 @@ SECTION_DEAD static char const* const stringBase_8037A071 = "(!BAD DATA!)"; #pragma pop /* 803A8270-803A82A8 -00001 0038+00 1/1 0/0 0/0 .data soecial_names$3966 */ -SECTION_DATA static void* soecial_names[14] = { - (void*)&d_event_d_event_manager__stringBase0, - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x10), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x1E), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x2C), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x3F), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x50), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x63), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x6E), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x7B), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x89), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0x94), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0xA3), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0xB2), - (void*)(((char*)&d_event_d_event_manager__stringBase0) + 0xC3), +SECTION_DATA static char* soecial_names[14] = { + "NORMAL_COMEBACK", + "DEFAULT_START", + "SHUTTER_START", + "SHUTTER_START_STOP", + "BS_SHUTTER_START", + "BS_SHUTTER_START_B", + "KNOB_START", + "KNOB_START_B", + "FMASTER_START", + "FALL_START", + "CRAWLOUT_START", + "BOSSWARP_START", + "PORTALWARP_START", + "PORTALWARP_START_B", }; /* 80046480-800465E8 040DC0 0168+00 1/1 0/0 0/0 .text getEventName__18dEvent_exception_cFv */ @@ -228,14 +228,23 @@ asm void dEvent_exception_c::getEventName() { /* 800465E8-80046688 040F28 00A0+00 1/1 0/0 0/0 .text * getSubstance__16dEvent_manager_cFP11dEvDtData_ci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvent_manager_c::getSubstance(dEvDtData_c* param_0, int param_1) { - nofralloc -#include "asm/d/event/d_event_manager/getSubstance__16dEvent_manager_cFP11dEvDtData_ci.s" +void* dEvent_manager_c::getSubstance(dEvDtData_c* p_data, int type) { + if (p_data->getIndex() < 0 || p_data->getNumber() <= 0) { + return NULL; + } else { + switch(p_data->getType()) { + case dEvDtData_c::TYPE_FLOAT: + case dEvDtData_c::TYPE_VEC: + case 2: + return getBase().getFDataP(p_data->getIndex()); + case dEvDtData_c::TYPE_INT: + return getBase().getIDataP(p_data->getIndex()); + case dEvDtData_c::TYPE_STRING: + return getBase().getSDataP(p_data->getIndex()); + } + return NULL; + } } -#pragma pop dEvent_manager_c::dEvent_manager_c() { mDataLoaded = false; @@ -264,18 +273,16 @@ int dEvent_manager_c::create() { field_0x1b4 = 0; field_0x1aa = -1; field_0x1b8 = 0; - field_0x1b0 = -1; + mRoomNo = -1; mDataLoaded = 0; for (int i = 4; i <= 9; i++) { mEventList[i].init(); } - char* res = (char*)dComIfG_getStageRes(data_80379F50); - mEventList[3].init(res, -1); - mEventList[10].init(); - res = (char*)dComIfG_getObjectRes("Event", data_80379F50); - mEventList[1].init(res, -1); + mEventList[3].init((char*)dComIfG_getStageRes(data_80379F50), -1); + mEventList[10].init(); + mEventList[1].init((char*)dComIfG_getObjectRes("Event", data_80379F50), -1); mEventList[2].init(); return 1; } @@ -305,6 +312,35 @@ asm void dEvent_manager_c::demoInit() { #pragma pop /* 80046904-800469EC 041244 00E8+00 0/0 1/1 0/0 .text roomInit__16dEvent_manager_cFi */ +// reversed reg alloc +#ifdef NONMATCHING +void dEvent_manager_c::roomInit(int roomNo) { + if (roomNo == -1) { + roomNo = dComIfGp_roomControl_getStayNo(); + } + char arc_name[8]; + strcpy(arc_name, dComIfG_getRoomArcName(roomNo)); + char* data = (char*)dComIfG_getStageRes(arc_name, data_80379F50); + + int tmp = -1; + for (int i = 4; i <= 9; i++) { + if (mEventList[i].getHeaderP() == NULL) { + tmp = i; + continue; + } + + if (mEventList[i].roomNo() == roomNo) { + tmp = i; + break; + } + } + + if (tmp != -1) { + mEventList[tmp].init(data, roomNo); + } + mRoomNo = roomNo; +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off @@ -313,6 +349,7 @@ asm void dEvent_manager_c::roomInit(int param_0) { #include "asm/d/event/d_event_manager/roomInit__16dEvent_manager_cFi.s" } #pragma pop +#endif void dEvent_manager_c::roomFinish(int param_0) { for (int i = 4; i <= 9; i++) { @@ -369,19 +406,31 @@ static int allOffObjectCallBack(fopAc_ac_c* pActor, void* param_1) { /* 80046CB8-80046DA0 0415F8 00E8+00 1/1 0/0 0/0 .text * startProc__16dEvent_manager_cFP12dEvDtEvent_c */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvent_manager_c::startProc(dEvDtEvent_c* param_0) { - nofralloc -#include "asm/d/event/d_event_manager/startProc__16dEvent_manager_cFP12dEvDtEvent_c.s" +void dEvent_manager_c::startProc(dEvDtEvent_c* p_evnt) { + for (int i = 0; i < p_evnt->getNStaff(); i++) { + dEvDtStaff_c* staff = getBase().getStaffP(p_evnt->getStaff(i)); + if (staff->getType() == dEvDtStaff_c::TYPE_DEFAULT) { + fopAc_ac_c* ac = specialCast(staff->getName(), 1); + if (ac == NULL) { + ac = fopAcM_searchFromName4Event(staff->getName(), -1); + } + if (ac != NULL) { + fopAcM_OnStatus(ac, 0x8000); + } + } + if (staff->getType() == dEvDtStaff_c::TYPE_ALL) { + issueStaff(staff->getName()); + } + staff->init(); + } + p_evnt->mEventState = 1; + mFlags.init(); } -#pragma pop /* 80046DA0-80046DAC 0416E0 000C+00 2/2 0/0 0/0 .text * closeProc__16dEvent_manager_cFP12dEvDtEvent_c */ -void dEvent_manager_c::closeProc(dEvDtEvent_c* param_0) { - param_0->field_0xa4 = 2; +void dEvent_manager_c::closeProc(dEvDtEvent_c* p_evnt) { + p_evnt->mEventState = 2; } /* ############################################################################################## */ @@ -452,23 +501,21 @@ asm void dEvent_manager_c::Experts() { /* 80047454-800474BC 041D94 0068+00 1/1 0/0 0/0 .text getEventData__16dEvent_manager_cFsi */ #ifdef NONMATCHING -dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int param_1) { - dEvDtBase_c* baseptr; - dEvDtEvent_c* eventptr; - - if (param_1 < 1 || param_1 > 12) { - eventptr = NULL; +dEvDtEvent_c* dEvent_manager_c::getEventData(s16 param_0, int idx) { + if (idx <= 0 || idx > 11) { + return NULL; } else { - baseptr = &mEventList[param_1]; - if (baseptr == NULL || baseptr->getHeaderP() == NULL) { - eventptr = NULL; - } else if (param_0 < 0 || baseptr->getEventNum() <= param_0) { - eventptr = NULL; + dEvDtBase_c* base = &mEventList[idx]; + + if (base == NULL || base->getHeaderP() == NULL) { + return NULL; + } else if (param_0 < 0 || param_0 >= base->getEventNum()) { + return NULL; } else { - eventptr = baseptr->getEventP(param_1); + return base->getEventP(idx); } } - return eventptr; + return NULL; } #else #pragma push @@ -664,26 +711,62 @@ asm void dEvent_manager_c::getMyNowCutName(int param_0) { } #pragma pop +inline dEvt_control_c& dComIfGp_getEvent() { + return g_dComIfG_gameInfo.play.getEvent(); +} + /* 80047FC8-800480EC 042908 0124+00 2/2 0/0 0/0 .text getMyDataP__16dEvent_manager_cFiPCci */ +// instruction in wrong place +#ifdef NONMATCHING +dEvDtData_c* dEvent_manager_c::getMyDataP(int index, char const* name, int type) { + if (dComIfGp_getEvent().getMode() == 0) { + return NULL; + } + else if (index == -1) { + return NULL; + } + else if (field_0x1aa == -1) { + return NULL; + } else { + dEvDtCut_c* cut; + if (type != 0) { + cut = getBase().getCutStaffStartCutP(index); + } else { + cut = getBase().getCutStaffCurrentCutP(index); + } + + int top = cut->getDataTop(); + while (top != -1) { + dEvDtData_c* data = getBase().getDataP(index); + if (!strcmp(name, data->getName())) { + return data; + } + top = data->getNext(); + } + + return NULL; + } +} +#else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvent_manager_c::getMyDataP(int param_0, char const* param_1, int param_2) { +asm dEvDtData_c* dEvent_manager_c::getMyDataP(int param_0, char const* param_1, int param_2) { nofralloc #include "asm/d/event/d_event_manager/getMyDataP__16dEvent_manager_cFiPCci.s" } #pragma pop +#endif /* 800480EC-80048144 042A2C 0058+00 0/0 22/22 355/355 .text * getMySubstanceP__16dEvent_manager_cFiPCci */ -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void dEvent_manager_c::getMySubstanceP(int param_0, char const* param_1, int param_2) { - nofralloc -#include "asm/d/event/d_event_manager/getMySubstanceP__16dEvent_manager_cFiPCci.s" +void* dEvent_manager_c::getMySubstanceP(int index, char const* name, int type) { + dEvDtData_c* data = getMyDataP(index, name, 0); + if (data == NULL) { + return NULL; + } + return getSubstance(data, type); } -#pragma pop /* 80048144-8004817C 042A84 0038+00 0/0 12/12 0/0 .text getMySubstanceNum__16dEvent_manager_cFiPCc */ @@ -821,7 +904,7 @@ SECTION_DEAD static char const* const stringBase_8037A0DE = "SHUTTER_DOOR"; #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dEvent_manager_c::specialCast(char const* param_0, int param_1) { +asm fopAc_ac_c* dEvent_manager_c::specialCast(char const* param_0, int param_1) { nofralloc #include "asm/d/event/d_event_manager/specialCast__16dEvent_manager_cFPCci.s" } diff --git a/src/d/kankyo/d_kankyo.cpp b/src/d/kankyo/d_kankyo.cpp index e0f640af350..d760c2dfad1 100644 --- a/src/d/kankyo/d_kankyo.cpp +++ b/src/d/kankyo/d_kankyo.cpp @@ -26,12 +26,6 @@ struct mDoGph_gInf_c { static u8 m_bloom[20]; }; -struct dPa_control_c { - /* 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); -}; - struct color_RGB_class {}; struct Z2SeMgr { @@ -3152,7 +3146,7 @@ static asm void dKy_Indoor_check() { #pragma pop /* 801AC2E0-801AC2E8 1A6C20 0008+00 0/0 1/1 0/0 .text dKy_withwarp_capture_check__Fv */ -bool dKy_withwarp_capture_check() { +BOOL dKy_withwarp_capture_check() { return false; } diff --git a/src/d/particle/d_particle.cpp b/src/d/particle/d_particle.cpp index c677279916b..6687cdd8c65 100644 --- a/src/d/particle/d_particle.cpp +++ b/src/d/particle/d_particle.cpp @@ -11,6 +11,7 @@ // Types: // + struct mDoLib_clipper { static u8 mClipper[92]; }; @@ -50,13 +51,6 @@ struct dPa_wbPcallBack_c { struct JPADrawInfo {}; -struct JPAResourceManager { - /* 80273E10 */ JPAResourceManager(void const*, JKRHeap*); - /* 80273EA8 */ void checkUserIndexDuplication(u16) const; - /* 80273EEC */ void swapTexture(ResTIMG const*, char const*); - /* 80273FCC */ void getResUserWork(u16) const; -}; - struct JGeometry { template struct TVec3 {}; @@ -75,16 +69,6 @@ struct JPAEmitterManager { /* 8027E354 */ void clearResourceManager(u8); }; -struct dPa_simpleEcallBack { - /* 8004ADF4 */ dPa_simpleEcallBack(); - /* 8004AE1C */ void executeAfter(JPABaseEmitter*); - /* 8004AF94 */ void draw(JPABaseEmitter*); - /* 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 */ ~dPa_simpleEcallBack(); -}; struct dPa_simpleData_c { /* 8004B024 */ ~dPa_simpleData_c(); @@ -205,82 +189,6 @@ struct dPa_followEcallBack { struct cBgS_PolyInfo {}; -struct dPa_control_c { - struct level_c { - struct emitter_c { - /* 8004B504 */ void onActive(); - /* 8004B544 */ void entry(u32, u16, JPABaseEmitter*, dPa_levelEcallBack*); - /* 8004B5AC */ void cleanup(); - /* 8004FBFC */ emitter_c(); - }; - - /* 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 */ void 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*); - }; - - /* 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 */ void 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 */ void 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); - - 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 */]; -}; - struct dJntCol_c { /* 80036C44 */ void getHitmarkPosAndAngle(cXyz const*, csXyz const*, cXyz*, csXyz*, int) const; }; @@ -1628,7 +1536,7 @@ asm void dPa_control_c::level_c::allForceOnEventMove() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dPa_control_c::level_c::getEmitter(u32 param_0) { +asm dPa_control_c::level_c::emitter_c* dPa_control_c::level_c::getEmitter(u32 param_0) { nofralloc #include "asm/d/particle/d_particle/getEmitter__Q213dPa_control_c7level_cFUl.s" } @@ -2144,7 +2052,7 @@ static asm void dPa_kankyocolor_set(f32 param_0, JPABaseEmitter* param_1, #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dPa_control_c::set(u32 param_0, u8 param_1, u16 param_2, cXyz const* param_3, +asm u32 dPa_control_c::set(u32 param_0, u8 param_1, u16 param_2, cXyz const* param_3, dKy_tevstr_c const* param_4, csXyz const* param_5, cXyz const* param_6, u8 param_7, dPa_levelEcallBack* param_8, s8 param_9, _GXColor const* param_10, _GXColor const* param_11, @@ -2160,7 +2068,7 @@ asm void dPa_control_c::set(u32 param_0, u8 param_1, u16 param_2, cXyz const* pa #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void dPa_control_c::setPoly(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2, +asm u32 dPa_control_c::setPoly(u32 param_0, u16 param_1, cBgS_PolyInfo& param_2, cXyz const* param_3, dKy_tevstr_c const* param_4, csXyz const* param_5, cXyz const* param_6, int param_7, dPa_levelEcallBack* param_8, s8 param_9, cXyz const* param_10) { @@ -2379,7 +2287,8 @@ asm void dPa_particleTracePcallBack_c::execute(JPABaseEmitter* param_0, JPABaseP #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dPa_levelEcallBack::~dPa_levelEcallBack() { +// asm dPa_levelEcallBack::~dPa_levelEcallBack() { +extern "C" asm void __dt__18dPa_levelEcallBackFv() { nofralloc #include "asm/d/particle/d_particle/__dt__18dPa_levelEcallBackFv.s" } @@ -2415,7 +2324,8 @@ asm dPa_control_c::level_c::emitter_c::emitter_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dPa_simpleEcallBack::~dPa_simpleEcallBack() { +// asm dPa_simpleEcallBack::~dPa_simpleEcallBack() { +extern "C" asm void __dt__19dPa_simpleEcallBackFv() { nofralloc #include "asm/d/particle/d_particle/__dt__19dPa_simpleEcallBackFv.s" } @@ -2435,7 +2345,8 @@ asm dPa_particleTracePcallBack_c::~dPa_particleTracePcallBack_c() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm dPa_hermiteEcallBack_c::~dPa_hermiteEcallBack_c() { +// asm dPa_hermiteEcallBack_c::~dPa_hermiteEcallBack_c() { +extern "C" asm void __dt__22dPa_hermiteEcallBack_cFv() { nofralloc #include "asm/d/particle/d_particle/__dt__22dPa_hermiteEcallBack_cFv.s" } @@ -2666,7 +2577,7 @@ asm dPa_setColorEcallBack::~dPa_setColorEcallBack() { /* 80050368-8005036C 04ACA8 0004+00 10/0 0/0 0/0 .text * execute__18JPAEmitterCallBackFP14JPABaseEmitter */ -void JPAEmitterCallBack::execute(JPABaseEmitter* param_0) { +extern "C" void execute__18JPAEmitterCallBackFP14JPABaseEmitter() { /* empty function */ } diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index adcfc1be3a3..866b1d5dd8d 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -1948,7 +1948,7 @@ asm s32 fopAcM_findObject4EventCB(fopAc_ac_c* param_0, void* param_1) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm s32 fopAcM_searchFromName4Event(char const* param_0, s16 param_1) { +asm fopAc_ac_c* fopAcM_searchFromName4Event(char const* param_0, s16 param_1) { nofralloc #include "asm/f_op/f_op_actor_mng/fopAcM_searchFromName4Event__FPCcs.s" } diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 0e6f5a4dde0..e850d25c3ed 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -18,25 +18,6 @@ // Types: // -struct mDoExt_morf_c { - /* 8000F950 */ mDoExt_morf_c(); - /* 8000FAE8 */ ~mDoExt_morf_c(); - /* 8000FB7C */ void setMorf(f32); - /* 8000FBC0 */ void frameUpdate(); -}; - -struct mDoExt_invisibleModel { - /* 8000E53C */ void create(J3DModel*, u8); - /* 8000E6C8 */ void entryJoint(cXyz*); - /* 8000E7C0 */ void entryDL(cXyz*); -}; - -struct mDoExt_invJntPacket { - /* 8000E5F8 */ ~mDoExt_invJntPacket(); - /* 8000E654 */ mDoExt_invJntPacket(); - /* 80012220 */ void draw(); -}; - struct mDoExt_btpAnm { /* 8000D54C */ void init(J3DMaterialTable*, J3DAnmTexPattern*, int, int, f32, s16, s16); /* 8000D5E8 */ void entry(J3DMaterialTable*, s16); @@ -46,11 +27,6 @@ struct mDoExt_blkAnm { /* 8000DA08 */ void init(J3DDeformData*, J3DAnmCluster*, int, int, f32, s16, s16); }; -struct mDoExt_MtxCalcOldFrame { - /* 8000F848 */ void initOldFrameMorf(f32, u16, u16); - /* 8000F8CC */ void decOldFrameMorfCounter(); -}; - struct mDoExt_MtxCalcAnmBlendTblOld { /* 8000F4B0 */ void calc(); /* 80014EB0 */ ~mDoExt_MtxCalcAnmBlendTblOld(); @@ -203,12 +179,6 @@ struct JUTCacheFont { /* 802DD188 */ JUTCacheFont(ResFONT const*, u32, JKRHeap*); }; -struct J3DMtxCalcNoAnmBase { - /* 8000FA8C */ ~J3DMtxCalcNoAnmBase(); -}; - -template -struct J3DMtxCalcNoAnm {}; /* J3DMtxCalcNoAnm */ struct J3DMtxCalcNoAnm__template0 { /* 8000FA20 */ void func_8000FA20(void* _this); @@ -2518,7 +2488,8 @@ extern "C" asm void func_8000FA20(void* _this) { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm J3DMtxCalcNoAnmBase::~J3DMtxCalcNoAnmBase() { +// asm J3DMtxCalcNoAnmBase::~J3DMtxCalcNoAnmBase() { +extern "C" asm void __dt__19J3DMtxCalcNoAnmBaseFv() { nofralloc #include "asm/m_Do/m_Do_ext/__dt__19J3DMtxCalcNoAnmBaseFv.s" } @@ -2528,7 +2499,8 @@ asm J3DMtxCalcNoAnmBase::~J3DMtxCalcNoAnmBase() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm mDoExt_morf_c::~mDoExt_morf_c() { +// asm mDoExt_morf_c::~mDoExt_morf_c() { +extern "C" asm void __dt__13mDoExt_morf_cFv() { nofralloc #include "asm/m_Do/m_Do_ext/__dt__13mDoExt_morf_cFv.s" } @@ -2920,7 +2892,8 @@ asm void mDoExt_McaMorf2::stopZelAnime() { #pragma push #pragma optimization_level 0 #pragma optimizewithasm off -asm void mDoExt_invJntPacket::draw() { +// asm void mDoExt_invJntPacket::draw() { +extern "C" asm void draw__19mDoExt_invJntPacketFv() { nofralloc #include "asm/m_Do/m_Do_ext/draw__19mDoExt_invJntPacketFv.s" }