d_camera / m_Do_ext / d_particle + minor various wip (#210)

This commit is contained in:
TakaRikka
2022-10-03 15:26:26 -07:00
committed by GitHub
parent 0309490521
commit 4913395dbd
267 changed files with 5153 additions and 8112 deletions
+214 -68
View File
@@ -174,33 +174,154 @@ struct daAlink_WlAnmData {
/* 0x7 */ u8 field_0x7;
}; // Size: 0x8
class daAlinkHIO_wolf_c {
public:
/* 80140B98 */ ~daAlinkHIO_wolf_c();
};
class daAlinkHIO_cut_c {
public:
/* 80140BD4 */ ~daAlinkHIO_cut_c();
};
class daAlinkHIO_c {
public:
/* 80140B88 */ daAlinkHIO_c();
/* 80140C10 */ ~daAlinkHIO_c();
};
class daAlink_c;
typedef int (daAlink_c::*daAlink_procFunc)();
class daAlink_c : public daPy_py_c {
public:
enum daAlink_ANM {
/* 0x013 */ ANM_DASH = 19,
/* 0x001 */ ANM_ATN_L_WALK_FORWARD = 1,
/* 0x003 */ ANM_ATN_WALK_BACK = 3,
/* 0x005 */ ANM_ATN_L_WALK_BACK = 5,
/* 0x006 */ ANM_ATN_HEAVY_WALK_LEFT,
/* 0x007 */ ANM_ATN_READY_LEFT,
/* 0x008 */ ANM_ATN_HEAVY_WALK_RIGHT,
/* 0x009 */ ANM_ATN_READY_RIGHT,
/* 0x00A */ ANM_ATN_WALK_LEFT,
/* 0x00B */ ANM_ATN_L_WALK_LEFT,
/* 0x00C */ ANM_ATN_WALK_RIGHT,
/* 0x00D */ ANM_ATN_L_WALK_RIGHT,
/* 0x00E */ ANM_HEAVY_WALK,
/* 0x00F */ ANM_ATN_HEAVY_WALK_BACK,
/* 0x010 */ ANM_HOOKSHOT_AIM,
/* 0x011 */ ANM_BOW_AIM,
/* 0x013 */ ANM_RUN = 19,
/* 0x015 */ ANM_WAIT_TURN = 0x15,
/* 0x019 */ ANM_IDLE = 0x19, // name might be inaccurate
/* 0x019 */ ANM_IDLE = 0x19, // name might be inaccurate, subjectivity
/* 0x01B */ ANM_WAIT_INIT = 0x1B,
/* 0x01D */ ANM_SIDE_STEP_LEFT = 0x1D,
/* 0x01E */ ANM_SIDE_STEP_RIGHT,
/* 0x01F */ ANM_SIDE_STEP_LEFT_LAND,
/* 0x020 */ ANM_SIDE_STEP_RIGHT_LAND,
/* 0x021 */ ANM_BACK_JUMP = 0x21,
/* 0x021 */ ANM_BACK_JUMP,
/* 0x022 */ ANM_BACK_JUMP_LAND,
/* 0x023 */ ANM_FRONT_ROLL,
/* 0x024 */ ANM_ROLL_CRASH,
/* 0x071 */ ANM_CUT_JUMP = 0x71,
/* 0x025 */ ANM_BARRIER_RECOIL,
/* 0x026 */ ANM_BACKFLIP,
/* 0x027 */ ANM_BACKFLIP_LAND,
/* 0x02C */ ANM_SHIELD_GUARD = 0x2C,
/* 0x02E */ ANM_SHIELD_ATTACK = 0x2E,
/* 0x02F */ ANM_SHIELD_ATTACK_RECOIL,
/* 0x033 */ ANM_FALL_LAND = 0x33, // ?
/* 0x036 */ ANM_PUSH_PULL_READY = 0x36,
/* 0x037 */ ANM_PUSH,
/* 0x03A */ ANM_PULL = 0x3A,
/* 0x062 */ ANM_CUT_NM_VERTICAL = 0x62,
/* 0x063 */ ANM_CUT_NM_LEFT,
/* 0x064 */ ANM_CUT_NM_RIGHT,
/* 0x065 */ ANM_CUT_COMBO_STAB,
/* 0x066 */ ANM_CUT_NM_STAB,
/* 0x067 */ ANM_CUT_FINISH_LEFT,
/* 0x068 */ ANM_CUT_FINISH_VERTICAL,
/* 0x069 */ ANM_CUT_FINISH_STAB,
/* 0x06C */ ANM_CUT_FINISH_RIGHT = 0x6C,
/* 0x06D */ ANM_CUT_TWIRL,
/* 0x06E */ ANM_CUT_TWIRL_LAND,
/* 0x06F */ ANM_CUT_RECOIL_1,
/* 0x070 */ ANM_CUT_RECOIL_2,
/* 0x071 */ ANM_CUT_JUMP,
/* 0x072 */ ANM_CUT_JUMP_LAND,
/* 0x073 */ ANM_CUT_TURN_LEFT,
/* 0x074 */ ANM_CUT_TURN_RIGHT,
/* 0x075 */ ANM_CUT_TURN_CHARGE_INIT,
/* 0x076 */ ANM_CUT_TURN_CHARGE,
/* 0x078 */ ANM_CUT_FINISHING_BLOW_JUMP = 0x78,
/* 0x079 */ ANM_CUT_FINISHING_BLOW_FALL,
/* 0x07A */ ANM_CUT_FINISHING_BLOW_STAB,
/* 0x07C */ ANM_CUT_HEAD_JUMP = 0x7C,
/* 0x07D */ ANM_CUT_HEAD,
/* 0x07E */ ANM_CUT_HEAD_LAND,
/* 0x07F */ ANM_DMG_SMALL,
/* 0x083 */ ANM_DMG_AIR = 0x83,
/* 0x084 */ ANM_DMG_LARGE,
/* 0x087 */ ANM_DMG_AIR_LAND = 0x87,
/* 0x088 */ ANM_DMG_LARGE_LAND,
/* 0x08C */ ANM_DMG_LARGE_UP_INIT = 0x8C,
/* 0x08D */ ANM_DMG_LARGE_UP,
/* 0x090 */ ANM_SERVICE_WAIT = 0x90,
/* 0x091 */ ANM_CLIMB_JUMP,
/* 0x092 */ ANM_HANG_READY,
/* 0x093 */ ANM_CLIMB_TOP_SMALL,
/* 0x094 */ ANM_HANG_CLIMB_TOP,
/* 0x095 */ ANM_HANG_ONE_HAND,
/* 0x096 */ ANM_HANG_ONE_HAND_MOVE,
/* 0x097 */ ANM_HANG_MOVE_LEFT,
/* 0x098 */ ANM_HANG_MOVE_RIGHT,
/* 0x0A2 */ ANM_CLIMB_READY = 0xA2,
/* 0x0A3 */ ANM_CLIMB_UP_RIGHT,
/* 0x0A4 */ ANM_CLIMB_UP_LEFT,
/* 0x0A5 */ ANM_CLIMB_MOVE_LEFT,
/* 0x0A6 */ ANM_CLIMB_MOVE_RIGHT,
/* 0x0A7 */ ANM_FALL_ONE_HAND_GRAB,
/* 0x0AF */ ANM_PICK_UP_INIT = 0xAF,
/* 0x0B0 */ ANM_PICK_UP,
/* 0x0B1 */ ANM_THROW_SMALL,
/* 0x0B2 */ ANM_THROW_LARGE,
/* 0x0B3 */ ANM_PICK_UP_LARGE_INIT,
/* 0x0B4 */ ANM_PICK_UP_LARGE,
/* 0x0B6 */ ANM_TIRED_WAIT = 0xB6,
/* 0x0B7 */ ANM_TIRED_WAIT_INIT,
/* 0x0B8 */ ANM_NPC_SPEAK,
/* 0x0BB */ ANM_BOOMERANG_CATCH = 0xBB,
/* 0x0BD */ ANM_FORWARD_SLIDE = 0xBD,
/* 0x0BE */ ANM_BACKWARD_SLIDE,
/* 0x0BF */ ANM_BACKWARD_SLIDE_LAND,
/* 0x0C0 */ ANM_FORWARD_SLIDE_LAND,
/* 0x0CE */ ANM_SWIM_FREEZE = 0xCE,
/* 0x0D7 */ ANM_BOARD_SPINNER = 0xD7,
/* 0x0F2 */ ANM_SPINNER_STAND = 0xF2,
@@ -213,12 +334,41 @@ public:
/* 0x0FD */ ANM_TRANSFORM_WOLF = 0xFD, // verify
/* 0x100 */ ANM_BOTTLE_DRINK_OPEN = 0x100,
/* 0x101 */ ANM_BOTTLE_DRINK,
/* 0x102 */ ANM_BOTTLE_DRINK_END,
/* 0x107 */ ANM_BOTTLE_SWING = 0x107,
/* 0x108 */ ANM_GRASS_WHISTLE_GRAB,
/* 0x10B */ ANM_LANTERN_SWING = 0x10B,
/* 0x10C */ ANM_OIL_BOTTLE_POUR_INIT,
/* 0x10D */ ANM_OIL_BOTTLE_POUR,
/* 0x10E */ ANM_OIL_BOTTLE_POUR_END,
/* 0x110 */ ANM_GRASS_WHISTLE_PLAY = 0x110,
/* 0x111 */ ANM_HAWK_CATCH,
/* 0x112 */ ANM_HAWK_SUBJECT,
/* 0x129 */ ANM_HOOKSHOT_PULL_TO = 0x129,
/* 0x12B */ ANM_HOOKSHOT_SHOOT = 0x12B,
/* 0x13E */ ANM_BOOTS_EQUIP = 0x13E,
/* 0x181 */ ANM_CHAIN_PICK_UP = 0x181,
/* 0x182 */ ANM_CHAIN_PULL,
/* 0x188 */ ANM_DUNGEON_WARP_READY_INIT = 0x188,
/* 0x18D */ ANM_CUT_JUMP_LARGE = 0x18D, // verify
/* 0x18F */ ANM_MASTER_SWORD_STICK_INIT = 0x18F,
/* 0x18B */ ANM_CUT_JUMP_LARGE_CHARGE = 0x18B,
/* 0x18C */ ANM_CUT_JUMP_LARGE_INIT,
/* 0x18D */ ANM_CUT_JUMP_LARGE,
/* 0x18E */ ANM_CUT_JUMP_LARGE_LAND,
/* 0x18F */ ANM_MASTER_SWORD_STICK_INIT,
/* 0x190 */ ANM_MASTER_SWORD_STICK,
/* 0x191 */ ANM_MASTER_SWORD_PULL_INIT,
/* 0x198 */ ANM_GANON_FINISH = 408, // name probably wrong, fix later
};
@@ -690,7 +840,7 @@ public:
/* 8009FFF8 */ void calcHairAngle(s16*);
/* 800A002C */ void setHairAngle(cXyz*, f32, f32);
/* 800A0744 */ void setLookPosFromOut(cXyz*);
/* 800A07D8 */ void checkAttentionPosAngle(cXyz*);
/* 800A07D8 */ bool checkAttentionPosAngle(cXyz*);
/* 800A0868 */ void checkActorPosAngle(fopAc_ac_c*, cXyz**);
/* 800A093C */ void getNeckAimPos(cXyz*, int*, int);
/* 800A142C */ void getNeckAimAngle(cXyz*, s16*, s16*, s16*, s16*);
@@ -710,10 +860,10 @@ public:
/* 800A3CE4 */ void setIdxMask(u16*, u16*);
/* 800A3D0C */ void* getAnimeResource(daPy_anmHeap_c*, u16, u32);
/* 800A3D7C */ J3DModel* initModel(J3DModelData*, u32, u32);
/* 800A3E30 */ void initModel(u16, u32);
/* 800A3E98 */ void initModelEnv(u16, u32);
/* 800A3F00 */ void initDemoModel(J3DModel**, char const*, u32);
/* 800A3F98 */ void initDemoBck(mDoExt_bckAnm**, char const*);
/* 800A3E30 */ J3DModel* initModel(u16, u32);
/* 800A3E98 */ J3DModel* initModelEnv(u16, u32);
/* 800A3F00 */ int initDemoModel(J3DModel**, char const*, u32);
/* 800A3F98 */ static int initDemoBck(mDoExt_bckAnm**, char const*);
/* 800A4068 */ int createHeap();
/* 800A4910 */ void setSelectEquipItem(int);
/* 800A4BC8 */ BOOL checkBoarStart();
@@ -971,13 +1121,13 @@ public:
/* 800C0678 */ static bool checkCastleTownUseItem(u16);
/* 800C077C */ void changeItemTriggerKeepProc(u8, int);
/* 800C0A9C */ void checkNewItemChange(u8);
/* 800C12DC */ void deleteEquipItem(int, int);
/* 800C12DC */ void deleteEquipItem(int playSound, int deleteKantera);
/* 800C1704 */ void setLight();
/* 800C1CEC */ void setFrontRollCrashShock(u8);
/* 800C1E0C */ void changeWarpMaterial(daAlink_c::daAlink_WARP_MAT_MODE);
/* 800C1F6C */ void commonProcInit(daAlink_c::daAlink_PROC);
/* 800C2DA4 */ BOOL commonProcInitNotSameProc(daAlink_PROC);
/* 800C2DDC */ void procPreActionUnequipInit(int, fopAc_ac_c*);
/* 800C1F6C */ void commonProcInit(daAlink_c::daAlink_PROC procID);
/* 800C2DA4 */ BOOL commonProcInitNotSameProc(daAlink_PROC procID);
/* 800C2DDC */ int procPreActionUnequipInit(int, fopAc_ac_c*);
/* 800C2EAC */ void procPreActionUnequip();
/* 800C3098 */ int procServiceWaitInit();
/* 800C30F0 */ int procServiceWait();
@@ -1910,8 +2060,8 @@ public:
/* 80111724 */ void procKandelaarPour();
/* 80111784 */ void setGrassWhistleModel(int);
/* 8011181C */ void setHorseWhistleModel();
/* 80111894 */ void procGrassWhistleGetInit();
/* 801119D8 */ void procGrassWhistleGet();
/* 80111894 */ int procGrassWhistleGetInit();
/* 801119D8 */ int procGrassWhistleGet();
/* 80111A9C */ void procGrassWhistleWaitInit(int, int, int, s16, cXyz*);
/* 80111CA4 */ void procGrassWhistleWait();
/* 80111FF0 */ void procCoHorseCallWaitInit(int);
@@ -2590,6 +2740,7 @@ public:
const daAlink_AnmData* getAnmData(daAlink_ANM anmID) const { return &m_anmDataTable[anmID]; }
BOOL i_checkReinRide() const { return mRideStatus == 1 || mRideStatus == 2; }
int getGrassHowlEventActor() const { return field_0x3198; }
bool checkFishingCastMode() const {
bool var_r5;
@@ -2627,8 +2778,14 @@ public:
return initModel(p_modelData, 0x80000, param_1);
}
J3DModel* initModelEnv(J3DModelData* p_modelData, u32 param_1) {
return initModel(p_modelData, 0, param_1);
}
bool checkWindSpeedOnXZ() const { return field_0x35b8.abs2XZ() > 1.0f; }
bool checkResetRootMtx(int param_0) const { return field_0x2f90 != 0 && param_0 == 1; }
inline void startRestartRoomFromOut(int, u32, int);
inline u16 getReadyItem();
@@ -2654,34 +2811,34 @@ private:
/* 0x00644 */ char* mShieldArcName;
/* 0x00648 */ JKRExpHeap* field_0x0648;
/* 0x0064C */ J3DModelData* field_0x064C;
/* 0x00650 */ J3DModel* field_0x0650;
/* 0x00654 */ J3DModel* field_0x0654;
/* 0x00658 */ J3DModel* field_0x0658;
/* 0x00650 */ J3DModel* mpLinkModel;
/* 0x00654 */ J3DModel* mpLinkFaceModel;
/* 0x00658 */ J3DModel* mpLinkHatModel;
/* 0x0065C */ J3DModel* field_0x065c;
/* 0x00660 */ J3DModel* field_0x0660;
/* 0x00664 */ J3DModel* field_0x0664;
/* 0x00668 */ J3DModel* field_0x0668;
/* 0x0066C */ J3DModel* field_0x066c;
/* 0x00670 */ J3DModel* field_0x0670;
/* 0x00674 */ J3DModel* field_0x0674;
/* 0x00660 */ J3DModel* mpSwAModel; // Ordon Sword model
/* 0x00664 */ J3DModel* mpSwASheathModel; // Ordon Sword sheath model
/* 0x00668 */ J3DModel* mpSwMModel; // Master Sword model
/* 0x0066C */ J3DModel* mpSwMSheathModel; // Master Sword sheath model
/* 0x00670 */ J3DModel* mWoodSwordModel;
/* 0x00674 */ J3DModel* mpWlChangeModel;
/* 0x00678 */ J3DModel* mShieldModel;
/* 0x0067C */ J3DAnmBase* field_0x067c;
/* 0x00680 */ J3DAnmBase* field_0x0680;
/* 0x00684 */ J3DModel* field_0x0684;
/* 0x00688 */ J3DModel* field_0x0688;
/* 0x00684 */ J3DModel* mpDemoFCBlendModel;
/* 0x00688 */ J3DModel* mpDemoFCTongueModel;
/* 0x0068C */ J3DAnmBase* field_0x068c;
/* 0x00690 */ mDoExt_baseAnm** field_0x0690;
/* 0x00694 */ J3DDeformData* field_0x0694;
/* 0x00690 */ mDoExt_bckAnm* mpDemoFCTmpBck;
/* 0x00694 */ J3DDeformData* mpDemoFCTmpBls;
/* 0x00698 */ void* field_0x0698;
/* 0x0069C */ void* field_0x069c;
/* 0x006A0 */ J3DModel* field_0x06a0;
/* 0x006A4 */ mDoExt_bckAnm* field_0x06a4;
/* 0x006A8 */ J3DModel* field_0x06a8;
/* 0x006AC */ mDoExt_bckAnm* field_0x06ac;
/* 0x006B0 */ mDoExt_bckAnm* field_0x06b0;
/* 0x006A0 */ J3DModel* mpDemoHLTmpModel;
/* 0x006A4 */ mDoExt_bckAnm* mpDemoHLTmpBck;
/* 0x006A8 */ J3DModel* mpDemoHRTmpModel;
/* 0x006AC */ mDoExt_bckAnm* mpDemoHRTmpBck;
/* 0x006B0 */ mDoExt_bckAnm* mpDemoHDTmpBck;
/* 0x006B4 */ J3DAnmTransform* field_0x06b4;
/* 0x006B8 */ J3DModel* mSwordModel;
/* 0x006BC */ J3DModel* field_0x06bc;
/* 0x006BC */ J3DModel* mSheathModel;
/* 0x006C0 */ J3DModelData* field_0x06c0;
/* 0x006C4 */ J3DAnmTextureSRTKey* m_nSwordBtk;
/* 0x006C8 */ J3DAnmTextureSRTKey* m_mSwordBtk;
@@ -2697,13 +2854,13 @@ private:
/* 0x006F0 */ J3DShape* field_0x06f0;
/* 0x006F4 */ J3DAnmBase* field_0x06f4;
/* 0x006F8 */ J3DAnmBase* field_0x06f8;
/* 0x006FC */ J3DModel* field_0x06fc;
/* 0x006FC */ J3DModel* field_0x06fc; // related to human link
/* 0x00700 */ J3DModel* field_0x0700;
/* 0x00704 */ J3DAnmBase* field_0x0704;
/* 0x00708 */ J3DModel* mHeldItemModel;
/* 0x0070C */ J3DModel* field_0x070c;
/* 0x00710 */ J3DModel* field_0x0710;
/* 0x00714 */ J3DModel* field_0x0714;
/* 0x0070C */ J3DModel* field_0x070c; // related to held item
/* 0x00710 */ J3DModel* field_0x0710; // related to held item
/* 0x00714 */ J3DModel* field_0x0714; // related to held item
/* 0x00718 */ J3DAnmBase* field_0x0718;
/* 0x0071C */ J3DAnmBase* field_0x071c;
/* 0x00720 */ J3DAnmBase* field_0x0720;
@@ -2719,14 +2876,17 @@ private:
/* 0x0077C */ dBgS_ObjLinChk* mpHookshotLinChk;
/* 0x00780 */ u8 field_0x780[4];
/* 0x00784 */ J3DModel* field_0x784[2];
/* 0x0078C */ u8 field_0x78c[0x10];
/* 0x0079C */ u32 field_0x79c;
/* 0x007A0 */ u32 field_0x7a0;
/* 0x007A4 */ u32 field_0x7a4;
/* 0x007A8 */ u32 field_0x7a8;
/* 0x0078C */ J3DModel* mpWlChain1Model;
/* 0x00790 */ J3DModel* mpWlChain2Model;
/* 0x00794 */ J3DModel* mpWlChain3Model;
/* 0x00798 */ J3DModel* mpWlChain4Model;
/* 0x0079C */ J3DModel* field_0x79c; // related to wolf
/* 0x007A0 */ J3DModel* mpWlMidnaHatModel;
/* 0x007A4 */ J3DModel* field_0x7a4; // related to wolf
/* 0x007A8 */ J3DModel* mpWlMidnaHairModel;
/* 0x007AC */ u8 field_0x7ac[0x10];
/* 0x007BC */ mDoExt_bckAnm* m_sWindowBck;
/* 0x007C0 */ u8 field_0x7c0[4];
/* 0x007C0 */ u32 mpWarpTexData;
/* 0x007C4 */ daPy_actorKeep_c mWolfLockAcKeep[10];
/* 0x00814 */ dCcD_Stts field_0x814;
/* 0x00850 */ dCcD_Cyl field_0x850[3];
@@ -2734,8 +2894,8 @@ private:
/* 0x00FB8 */ dCcD_Sph field_0xFB8;
/* 0x010F0 */ dCcD_Cyl field_0x10F0;
/* 0x0122C */ dCcD_Cps field_0x122C[3];
/* 0x015F8 */ dCcD_Cps field_0x15F8;
/* 0x0173C */ dCcD_Stts field_0x173c;
/* 0x015F8 */ dCcD_Cps mGuardAttackAtCps;
/* 0x0173C */ dCcD_Stts field_0x173c; // related to ball and chain
/* 0x01778 */ dCcD_Sph field_0x1778;
/* 0x018B0 */ dBgS_AcchCir field_0x18B0[3];
/* 0x01970 */ dBgS_LinkAcch mLinkAcch;
@@ -2752,7 +2912,8 @@ private:
/* 0x01E4C */ cBgS_PolyInfo mPolyInfo4;
/* 0x01E5C */ dBgS_ObjLinChk mObjLinChk;
/* 0x01ECC */ dBgS_ObjGndChk mObjGndChk;
/* 0x01F20 */ u8 field_0x1f20[8];
/* 0x01F20 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x1f20;
/* 0x01F24 */ mDoExt_MtxCalcAnmBlendTblOld* field_0x1f24;
/* 0x01F28 */ mDoExt_AnmRatioPack field_0x1f28[3];
/* 0x01F40 */ mDoExt_AnmRatioPack mNowAnmPack[3];
/* 0x01F58 */ daPy_anmHeap_c mUnderAnime[3];
@@ -2767,12 +2928,13 @@ private:
/* 0x0212C */ daPy_anmHeap_c mAnmHeap6;
/* 0x02140 */ daPy_anmHeap_c mAnmHeap7;
/* 0x02154 */ mDoExt_bckAnm field_0x2154;
/* 0x02170 */ u8 field_0x2170[0x18];
/* 0x02170 */ u8 field_0x2170[0x10];
/* 0x02180 */ daAlink_matAnm_c* field_0x2180[2];
/* 0x02188 */ dEyeHL_c mEyeHL1;
/* 0x0219C */ dEyeHL_c mEyeHL2;
/* 0x021B0 */ daPy_anmHeap_c mItemHeap[2];
/* 0x021D8 */ daPy_anmHeap_c mAnmHeap9;
/* 0x021EC */ u8 field_0x21ec[4];
/* 0x021EC */ daAlinkHIO_c* mpHIO;
/* 0x021F0 */ daAlink_blur_c m_swordBlur;
/* 0x027C8 */ dAlink_bottleWaterPcallBack_c field_0x27c8;
/* 0x027E0 */ dAttention_c* mAttention;
@@ -2780,7 +2942,7 @@ private:
/* 0x027E8 */ dAttList_c* mAttList2;
/* 0x027EC */ fopAc_ac_c* mTargetedActor;
/* 0x027F0 */ fopAc_ac_c* field_0x27f0;
/* 0x027F4 */ kytag05_class* field_0x27f4;
/* 0x027F4 */ fopAc_ac_c* field_0x27f4;
/* 0x027F8 */ fopAc_ac_c* field_0x27f8;
/* 0x027FC */ fopAc_ac_c* field_0x27fc;
/* 0x02800 */ daTagMmsg_c* mMidnaMsg;
@@ -3300,22 +3462,6 @@ struct daAlinkHIO_basic_c1 {
/* 0x54 */ f32 mTransformBlockFarDis;
};
class daAlinkHIO_wolf_c {
public:
/* 80140B98 */ ~daAlinkHIO_wolf_c();
};
class daAlinkHIO_cut_c {
public:
/* 80140BD4 */ ~daAlinkHIO_cut_c();
};
class daAlinkHIO_c {
public:
/* 80140B88 */ daAlinkHIO_c();
/* 80140C10 */ ~daAlinkHIO_c();
};
class daAlinkHIO_basic_c0 {
public:
static daAlinkHIO_basic_c1 const m;
+3 -1
View File
@@ -213,7 +213,7 @@ public:
HEAVY_STATE_BOOTS = FLG0_UNK_40000000 | EQUIP_HEAVY_BOOTS | FLG0_UNK_20000,
};
enum daPy_FLG1 { IS_WOLF = 0x2000000, FLG1_UNK_10000 = 0x10000, THROW_DAMAGE = 0x4000 };
enum daPy_FLG1 { IS_WOLF = 0x2000000, FLG1_UNK_10000 = 0x10000, THROW_DAMAGE = 0x4000, FLG1_UNK_4 = 4, };
enum daPy_FLG2 {
FLG2_UNK_20000000 = 0x20000000,
FLG2_UNK_4080000 = 0x4080000,
@@ -238,6 +238,8 @@ public:
ERFLG0_UNK_1000000 = 0x1000000,
ERFLG0_UNK_800000 = 0x800000,
ERFLG0_UNK_100000 = 0x100000,
ERFLG0_UNK_400 = 0x400,
ERFLG0_UNK_4 = 4,
ERFLG0_UNK_2 = 2,
ERFLG0_UNK_1 = 1,
};
+2
View File
@@ -41,6 +41,8 @@ public:
class dBgS_ObjGndChk_All : public dBgS_ObjGndChk {
public:
/* 800778E8 */ virtual ~dBgS_ObjGndChk_All();
dBgS_ObjGndChk_All() { OnAll(); }
};
class dBgS_CamGndChk : public dBgS_GndChk {
+1
View File
@@ -21,6 +21,7 @@ public:
void OnNormalGrp() { mGrp |= NORMAL_GRP; }
void OffNormalGrp() { mGrp &= ~NORMAL_GRP; }
void OffFullGrp() { mGrp &= ~FULL_GRP; }
void OnAll() { mGrp |= FULL_GRP; }
private:
/* 0x4 */ u32 mGrp;
+1 -1
View File
@@ -9,7 +9,7 @@
class dBgS_LinChk : public cBgS_LinChk, public dBgS_Chk {
public:
/* 80077C68 */ dBgS_LinChk();
/* 80077D64 */ void Set(cXyz const*, cXyz const*, fopAc_ac_c const*);
/* 80077D64 */ void Set(cXyz const* pi_start, cXyz const* pi_end, fopAc_ac_c const*);
/* 80077CDC */ virtual ~dBgS_LinChk();
+3 -3
View File
@@ -146,10 +146,10 @@ public:
/* 8007B0DC */ virtual bool ChkGrpThrough(int, cBgS_GrpPassChk*, int);
u32 GetOldInvMtx(Mtx m) { return PSMTXInverse(m_inv_mtx, m); }
MtxP GetBaseMtxP() { return pm_base_mtx; }
MtxP GetBaseMtxP() { return pm_base; }
public:
/* 0x18 */ MtxP pm_base_mtx;
/* 0x18 */ MtxP pm_base;
/* 0x1C */ Mtx m_inv_mtx;
/* 0x4C */ Mtx field_0x4c;
/* 0x7C */ cXyz field_0x7c;
@@ -177,7 +177,7 @@ class dBgW : public cBgW {
public:
/* 8007B970 */ dBgW();
/* 8007B9C0 */ void Move();
/* 8007B9EC */ void positionWallCorrect(dBgS_Acch*, f32, cM3dGPla&, cXyz*, f32);
/* 8007B9EC */ void positionWallCorrect(dBgS_Acch*, f32, cM3dGPla&, cXyz* pupper_pos, f32);
/* 8007BA40 */ void RwgWallCorrect(dBgS_Acch*, u16);
/* 8007C234 */ void WallCorrectRp(dBgS_Acch*, int);
/* 8007C360 */ void WallCorrectGrpRp(dBgS_Acch*, int, int);
+21 -13
View File
@@ -129,7 +129,7 @@ public:
dVibration_c& getVibration() { return mVibration; }
camera_class* getCamera(int idx) { return mCameraInfo[idx].mCamera; }
void* getPlayerPtr(int ptrIdx) { return mPlayerPtr[ptrIdx]; }
void* getPlayer(int idx) { return mPlayer[idx]; }
fopAc_ac_c* getPlayer(int idx) { return (fopAc_ac_c*)mPlayer[idx]; }
dPa_control_c* getParticle() { return mParticle; }
dEvent_manager_c& getEvtManager() { return mEvtManager; }
dAttention_c& getAttention() { return mAttention; }
@@ -460,7 +460,7 @@ public:
/* 0x04E10 */ dDlst_window_c mWindow[1];
/* 0x04E3C */ dComIfG_camera_info_class mCameraInfo[1];
/* 0x04E74 */ daAlink_c* mPlayer[1];
/* 0x04E78 */ s8 mPlayerCameraID[4];
/* 0x04E78 */ s8 mPlayerCameraID[1];
/* 0x04E7C */ fopAc_ac_c* mPlayerPtr[2]; // 0: Player, 1: Horse ; type may be wrong
/* 0x04E84 */ dMsgObject_c* mMsgObjectClass;
/* 0x04E88 */ f32 mItemLifeCount;
@@ -625,8 +625,8 @@ public:
/* 0x04FE8 */ u8 field_0x4fe8[0x10];
/* 0x04FF8 */ __d_timer_info_c mTimerInfo;
/* 0x0500C */ dDlst_window_c* mCurrentWindow;
/* 0x05010 */ void* mCurrentView;
/* 0x05014 */ void* mCurrentViewport;
/* 0x05010 */ view_class* mCurrentView;
/* 0x05014 */ view_port_class* mCurrentViewport;
/* 0x05018 */ J2DGrafContext* mCurrentGrafPort;
/* 0x0501C */ void* mItemTable;
/* 0x0501D */ u8 field_0x501d[4];
@@ -1540,7 +1540,7 @@ inline daPy_py_c* dComIfGp_getLinkPlayer() {
return (daPy_py_c*)g_dComIfG_gameInfo.play.getPlayerPtr(LINK_PTR);
}
inline void* dComIfGp_getPlayer(int idx) {
inline fopAc_ac_c* dComIfGp_getPlayer(int idx) {
return g_dComIfG_gameInfo.play.getPlayer(idx);
}
@@ -1744,6 +1744,14 @@ inline void dComIfGp_setLastPlayStageName(char* name) {
g_dComIfG_gameInfo.play.setLastPlayStageName(name);
}
inline char* dComIfGp_getLastPlayStageName() {
return g_dComIfG_gameInfo.play.getLastPlayStageName();
}
inline u8 dComIfGp_getGameoverStatus() {
return g_dComIfG_gameInfo.play.getGameoverStatus();
}
inline u32 dComIfGp_getNowVibration() {
return g_dComIfG_gameInfo.play.getNowVibration();
}
@@ -2295,6 +2303,10 @@ inline BOOL dComIfGp_evmng_endCheck(const char* event) {
return g_dComIfG_gameInfo.play.getEvtManager().endCheckOld(event);
}
inline BOOL dComIfGp_evmng_endCheck(s16 eventID) {
return g_dComIfG_gameInfo.play.getEvtManager().endCheck(eventID);
}
inline void dComIfGp_event_setItemPartnerId(unsigned int id) {
g_dComIfG_gameInfo.play.getEvent().setPtI_Id(id);
}
@@ -2583,6 +2595,10 @@ inline void dComIfGd_setViewport(view_port_class* port) {
g_dComIfG_gameInfo.drawlist.setViewport(port);
}
inline void dComIfGd_entryZSortListZxlu(J3DPacket* i_packet, cXyz& param_1) {
g_dComIfG_gameInfo.drawlist.entryZSortListZxlu(i_packet, param_1);
}
inline daPy_py_c* daPy_getLinkPlayerActorClass() {
return dComIfGp_getLinkPlayer();
}
@@ -2595,12 +2611,4 @@ inline daAlink_c* daAlink_getAlinkActorClass() {
return (daAlink_c*)g_dComIfG_gameInfo.play.getPlayerPtr(LINK_PTR);
}
inline char* dComIfGp_getLastPlayStageName() {
return g_dComIfG_gameInfo.play.getLastPlayStageName();
}
inline u8 dComIfGp_getGameoverStatus() {
return g_dComIfG_gameInfo.play.getGameoverStatus();
}
#endif /* D_COM_D_COM_INF_GAME_H */
+175 -1
View File
@@ -1,6 +1,180 @@
#ifndef D_D_CAM_PARAM_H
#define D_D_CAM_PARAM_H
#include "dolphin/types.h"
#include "SSystem/SComponent/c_angle.h"
#include "SSystem/SComponent/c_xyz.h"
struct dCamMath {
/* 8008813C */ void rationalBezierRatio(f32, f32);
/* 80088284 */ void zoomFovy(f32, f32);
/* 8008831C */ void xyzRotateX(cXyz&, cSAngle);
/* 80088384 */ void xyzRotateY(cXyz&, cSAngle);
/* 800883EC */ void xyzHorizontalDistance(cXyz&, cXyz&);
};
class dCstick_c {
public:
/* 80088434 */ dCstick_c();
/* 8008845C */ bool Shift(u32);
/* 0x0 */ f32 mThresholdLow;
/* 0x4 */ f32 mThresholdHigh;
/* 0x8 */ int mInputSpeed;
/* 0xC */ u8 field_0xc[4];
/* 800889B0 */ virtual ~dCstick_c();
};
class dCamBGChk_c {
public:
/* 80088464 */ dCamBGChk_c();
/* 0x00 */ f32 field_0x0;
/* 0x04 */ f32 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;
};
class dCamParam_c {
public:
/* 800884F0 */ dCamParam_c(s32);
/* 800885D4 */ void Change(s32);
/* 80088620 */ void SearchStyle(u32);
/* 80182C60 */ void Arg2(s16);
/* 80182C3C */ void Arg2();
/* 80182C48 */ void Arg1();
/* 80182C6C */ void Arg1(u8);
/* 80182C50 */ void Arg0();
/* 80182C74 */ void Arg0(u8);
/* 80182C7C */ void Fovy(u8);
/* 80182C58 */ void Fovy();
/* 80182C8C */ void Flag(s32, u16);
/* 80182CB4 */ void CheckFlag(u16);
/* 80182CD0 */ void Val(s32, int);
/* 0x00 */ u8 mMapToolFovy;
/* 0x01 */ u8 mMapToolArg0;
/* 0x02 */ u8 mMapToolArg1;
/* 0x04 */ int mMapToolArg2;
/* 0x08 */ u8* mCamStyleData;
/* 0x0C */ int field_0xc;
/* 0x10 */ u8* field_0x10;
/* 0x14 */ int mStyleID;
/* 0x18 */ u8 field_0x18[4];
/* 8008858C */ virtual ~dCamParam_c();
};
class dCamSetup_c {
public:
/* 80088668 */ dCamSetup_c();
/* 80088918 */ void CheckLatitudeRange(s16*);
/* 80088988 */ void PlayerHideDist();
/* 80182BB8 */ void CheckFlag2(u16);
/* 80182BD0 */ void CheckFlag(u16);
/* 80182BE8 */ void WaitRollSpeed();
/* 80182BF0 */ void WaitRollTimer();
/* 80182C1C */ void ThrowTimer();
/* 80182C24 */ void ThrowCushion();
/* 80182C2C */ void ThrowVAngle();
/* 80182C34 */ void ThrowCtrAdjust();
/* 80182CEC */ void ChargeBRatio();
/* 80182CF4 */ void ChargeTimer();
/* 80182CFC */ void ChargeLatitude();
/* 0x000 */ f32 mDrawNear;
/* 0x004 */ f32 mDrawFar;
/* 0x008 */ u16 mDebugFlags;
/* 0x00A */ u16 field_0xa;
/* 0x00C */ int field_0xc;
/* 0x010 */ int mModeSwitchType;
/* 0x014 */ void* mTypeTable;
/* 0x018 */ int mTypeNum;
/* 0x01C */ int mForceType;
/* 0x020 */ f32 mCusCus;
/* 0x024 */ f32 field_0x24;
/* 0x028 */ f32 field_0x28;
/* 0x02C */ f32 field_0x2c;
/* 0x030 */ f32 field_0x30;
/* 0x034 */ f32 field_0x34;
/* 0x038 */ f32 mBaseCushion;
/* 0x03C */ f32 mJumpCushion;
/* 0x040 */ f32 mParallelDist;
/* 0x044 */ f32 field_0x44;
/* 0x048 */ f32 mSubjLinkCullDist;
/* 0x04C */ f32 mCurveWeight;
/* 0x050 */ f32 field_0x50;
/* 0x054 */ f32 field_0x54;
/* 0x058 */ f32 field_0x58;
/* 0x05C */ f32 field_0x5c;
/* 0x060 */ f32 field_0x60;
/* 0x064 */ f32 mTrimVistaHeight;
/* 0x068 */ f32 mTrimCineScopeHeight;
/* 0x06C */ f32 field_0x6c;
/* 0x070 */ f32 mForceLockOffDist;
/* 0x074 */ int mForceLockOffTimer;
/* 0x078 */ f32 field_0x78;
/* 0x07C */ f32 field_0x7c;
/* 0x080 */ f32 field_0x80;
/* 0x084 */ f32 field_0x84;
/* 0x088 */ f32 mThrowVAngle;
/* 0x08C */ f32 mThrowCtrOffset;
/* 0x090 */ f32 mThrowCushion;
/* 0x094 */ int mThrowTimer;
/* 0x098 */ f32 mWindShakeCtr;
/* 0x09C */ f32 field_0x9c;
/* 0x0A0 */ f32 mWindShakeFvy;
/* 0x0A4 */ f32 mFalseValue;
/* 0x0A8 */ f32 mFalseAngle;
/* 0x0AC */ f32 field_0xac;
/* 0x0B0 */ int field_0xb0;
/* 0x0B4 */ f32 field_0xb4;
/* 0x0B8 */ f32 mManualStartCThreshold;
/* 0x0BC */ f32 mManualEndVal;
/* 0x0C0 */ f32 mChargeLatitude;
/* 0x0C4 */ int mChargeTimer;
/* 0x0C8 */ f32 mChargeBRatio;
/* 0x0CC */ int mLockonChangeTimer;
/* 0x0D0 */ f32 mLockonChangeCushion;
/* 0x0D4 */ f32 field_0xd4;
/* 0x0D8 */ f32 field_0xd8;
/* 0x0DC */ u16 mMapToolCamShortTimer;
/* 0x0DE */ u16 mMapToolCamLongTimer;
/* 0x0E0 */ f32 field_0xe0;
/* 0x0E4 */ f32 field_0xe4;
/* 0x0E8 */ f32 field_0xe8;
/* 0x0EC */ int field_0xec;
/* 0x0F0 */ int field_0xf0;
/* 0x0F4 */ f32 field_0xf4;
/* 0x0F8 */ f32 field_0xf8;
/* 0x0FC vtable */
/* 800888B8 */ virtual ~dCamSetup_c();
/* 0x100 */ dCstick_c mCStick;
/* 0x114 */ dCamBGChk_c mBGChk;
/* 0x15C */ f32 field_0x15c;
/* 0x160 */ f32 field_0x160;
/* 0x164 */ f32 mWaitRollTimer;
/* 0x168 */ f32 mWaitRollSpeed;
/* 0x16C */ f32 field_0x16c;
/* 0x170 */ int mScreensaverFirstWaitTimer;
/* 0x174 */ int mScreensaverWaitTimer;
/* 0x178 */ int mScreensaverExecTimer;
};
#endif /* D_D_CAM_PARAM_H */
+298 -16
View File
@@ -4,16 +4,97 @@
#include "SSystem/SComponent/c_angle.h"
#include "SSystem/SComponent/c_xyz.h"
#include "d/bg/d_bg_s_lin_chk.h"
#include "d/bg/d_bg_s_gnd_chk.h"
#include "d/d_stage.h"
#include "dolphin/types.h"
#include "f_op/f_op_camera_mng.h"
#include "d/d_drawlist.h"
#include "d/d_cam_param.h"
class fopAc_ac_c;
struct dCamMapToolData {
/* 8015FEB8 */ void Set(s32, s32, fopAc_ac_c*, u16, u8);
/* 0x00 */ stage_camera2_data_class field_0x0;
/* 0x18 */ stage_arrow_class field_0x18;
/* 0x2C */ u32 field_0x2c;
/* 0x30 */ s32 field_0x30;
/* 0x34 */ fopAc_ac_c* field_0x34;
/* 0x38 */ u16 field_0x38;
/* 0x3A */ u8 field_0x3a;
/* 0x3B */ u8 field_0x3b;
};
struct dCamForcusLine : public dDlst_effectLine_c {
/* 801824C8 */ void Init();
/* 80182560 */ void Draw();
/* 801825E4 */ void Off();
/* 0x38 */ cXyz field_0x38;
/* 0x44 */ GXColor field_0x44;
/* 0x48 */ u8 field_0x48;
/* 0x49 */ u8 field_0x49;
/* 0x4C */ int field_0x4c;
/* 0x50 */ int field_0x50;
/* 0x54 */ int field_0x54;
/* 0x58 */ u16 field_0x58;
/* 0x5A */ u16 field_0x5a;
/* 0x5C */ u16 field_0x5c;
/* 0x5E */ u16 field_0x5e;
/* 0x60 */ f32 field_0x60;
/* 0x64 */ f32 field_0x64;
/* 0x68 */ f32 field_0x68;
/* 0x6C */ f32 field_0x6c;
};
struct dCamera_FakeAngle_system {
/* 0x0 */ u8 field_0x0;
/* 0x2 */ cSAngle field_0x2;
/* 0x4 */ cSAngle field_0x4;
};
struct dCamera_monitoring_things {
/* 0x00 */ cXyz field_0x0;
/* 0x0C */ u8 field_0xc[8];
/* 0x14 */ cXyz field_0x14;
};
struct d2DBSplinePath {
/* 0x00 */ s32 field_0x0;
/* 0x04 */ s32 field_0x4;
/* 0x08 */ s32 field_0x8;
/* 0x0C */ s32 field_0xc;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ u32 field_0x20;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ u32 field_0x28;
/* 0x2C */ u32 field_0x2c;
/* 80097878 */ void Init(s32, s32);
/* 80097B68 */ void Spot(f32*, f32);
/* 801828D4 */ virtual ~d2DBSplinePath();
};
struct dCamera_event_data {
/* 0x000 */ u8 field_0x0;
/* 0x004 */ int field_0x4;
/* 0x008 */ u8 field_0x8[4];
/* 0x00C */ int field_0xc;
/* 0x010 */ u8 field_0x10;
/* 0x014 */ int field_0x14;
/* 0x018 */ int field_0x18;
/* 0x01C */ int field_0x1c;
/* 0x020 */ int field_0x20;
/* 0x024 */ u8 field_0x24[0xEC - 0x24];
/* 0x0EC */ dStage_MapEvent_dt_c* field_0xec;
/* 0x0F0 */ d2DBSplinePath field_0xf0;
}; // Size: 0x124
class camera_class;
class dCamera_c {
public:
class dCamInfo_c {
@@ -29,6 +110,60 @@ public:
/* 0x1E */ s16 field_0x1e;
}; // Size: 0x20
struct dCamera_pad_info {
struct _stick {
/* 0x00 */ f32 mLastPosX;
/* 0x04 */ f32 mLastPosY;
/* 0x08 */ f32 mLastValue;
/* 0x0C */ f32 mPosXDelta;
/* 0x10 */ f32 mPosYDelta;
/* 0x14 */ f32 mValueDelta;
/* 0x18 */ cSAngle field_0x18;
};
/* 0x00 */ _stick mMainStick;
/* 0x1C */ _stick mCStick;
};
struct BG {
/* 0x000 */ u8 field_0x0;
/* 0x004 */ dBgS_CamGndChk field_0x4;
/* 0x058 */ f32 field_0x58;
/* 0x05C */ u8 field_0x5c;
/* 0x060 */ dBgS_CamGndChk field_0x60;
/* 0x0B4 */ f32 field_0xb4;
/* 0x0B8 */ u8 field_0xb8[0xC0 - 0xB8];
/* 0x0C0 */ u8 field_0xc0;
/* 0x0C1 */ u8 field_0xc1;
/* 0x0C4 */ cXyz field_0xc4;
/* 0x0D0 */ cXyz field_0xd0;
/* 0x0DC */ cSAngle field_0xdc;
/* 0x0DE */ cSAngle field_0xde;
/* 0x0E0 */ cSGlobe field_0xe0;
/* 0x0E8 */ cSGlobe field_0xe8;
/* 0x0F0 */ u8 field_0xf0[4];
/* 0x0F4 */ int field_0xf4;
/* 0x0F8 */ f32 field_0xf8;
/* 0x0FC */ int field_0xfc;
/* 0x100 */ int field_0x100;
/* 0x104 */ u8 field_0x104[4];
/* 0x108 */ int field_0x108;
/* 0x10C */ f32 field_0x10c;
/* 0x110 */ cXyz field_0x110;
};
struct Shake {
/* 0x00 */ u8 field_0x0[12];
/* 0x0C */ int field_0xc;
/* 0x10 */ int field_0x10;
/* 0x14 */ u8 field_0x14[4];
/* 0x18 */ cXyz field_0x18;
/* 0x24 */ cXyz field_0x24;
/* 0x30 */ cXyz field_0x30;
/* 0x3C */ f32 field_0x3c;
/* 0x40 */ cSAngle field_0x40;
}; // Size: 0x44
/* 8008908C */ void getEvIntData(int*, char*, int);
/* 80088CB0 */ void getEvIntData(int*, char*);
/* 80089154 */ void getEvFloatData(f32*, char*, f32);
@@ -198,21 +333,21 @@ public:
static u8 engine_tbl[240];
/* 0x000 */ cXyz field_0x0;
/* 0x00C */ cXyz field_0xc;
/* 0x018 */ f32 field_0x18;
/* 0x01C */ cSAngle field_0x1c;
/* 0x01E */ s16 field_0x1e;
/* 0x000 */ camera_class* field_0x0;
/* 0x004 */ int mRoomNo;
/* 0x008 */ u8 field_0x8[0x20 - 0x8];
/* 0x020 */ u8 field_0x20;
/* 0x021 */ u8 field_0x21;
/* 0x022 */ u8 field_0x22[0x24 - 0x22];
/* 0x022 */ u8 field_0x22[2];
/* 0x024 */ int field_0x24;
/* 0x028 */ u8 field_0x28[0x30 - 0x28];
/* 0x030 */ cXyz field_0x30;
/* 0x03C */ cXyz field_0x3c;
/* 0x048 */ cXyz field_0x48;
/* 0x054 */ cSAngle field_0x54;
/* 0x058 */ f32 field_0x58;
/* 0x028 */ f32 field_0x28;
/* 0x02C */ s16 field_0x2c;
/* 0x02E */ s16 field_0x2e;
/* 0x030 */ cXyz mCenter;
/* 0x03C */ cXyz mEye;
/* 0x048 */ cXyz mUp;
/* 0x054 */ cSAngle mBank;
/* 0x058 */ f32 mFovY;
class {
public:
/* 0x00 */ cSGlobe field_0x0;
@@ -221,20 +356,167 @@ public:
/* 0x20 */ cSAngle field_0x20;
}
/* 0x05C */ field_0x5c;
/* 0x07C */ u8 field_0x7c[0x8C - 0x7C];
/* 0x080 */ f32 field_0x80;
/* 0x084 */ f32 field_0x84;
/* 0x088 */ u32 field_0x88;
/* 0x08C */ cSAngle field_0x8c;
/* 0x090 */ cXyz field_0x90;
/* 0x09C */ cXyz field_0x9c;
/* 0x0A8 */ u8 field_0xa8[0xB0 - 0xA8];
/* 0x0A8 */ int field_0xa8;
/* 0x0AC */ u32 field_0xac;
/* 0x0B0 */ dCamInfo_c field_0xb0;
/* 0x0D0 */ dCamInfo_c field_0xd0[2];
class {
public:
/* 0x00 */ u8 field_0x0[8];
/* 0x00 */ int field_0x0;
/* 0x04 */ u16 field_0x4;
/* 0x08 */ dCamInfo_c field_0x8;
/* 0x28 */ cXyz field_0x28;
}
/* 0x110 */ field_0x110;
class {
public:
/* 0x0 */ cXyz field_0x0;
/* 0xC */ csXyz field_0xc;
}
/* 0x144 */ field_0x144;
class {
public:
/* 0x0 */ u8 field_0x0;
/* 0x2 */ cSAngle field_0x2;
/* 0x4 */ cSAngle field_0x4;
}
/* 0x158 */ field_0x158;
/* 0x160 */ int field_0x160;
/* 0x164 */ u8 field_0x164[0x170 - 0x164];
/* 0x170 */ int field_0x170;
/* 0x174 */ u32 field_0x174;
/* 0x178 */ u32 mCameraID;
/* 0x17C */ u32 mPadID;
/* 0x180 */ fopAc_ac_c* mpPlayerActor;
/* 0x184 */ fopAc_ac_c* mpLockonTarget;
/* 0x188 */ u8 field_0x188[0x190 - 0x188];
/* 0x190 */ int field_0x190;
/* 0x194 */ u8 field_0x194;
/* 0x198 */ u32 field_0x198;
/* 0x19C */ u32 field_0x19c;
/* 0x1A0 */ int mCurMode;
/* 0x1A4 */ int mNextMode;
/* 0x1A8 */ int field_0x1a8;
/* 0x1B0 */ cSAngle field_0x1b0;
/* 0x1B4 */ f32 field_0x1b4;
/* 0x1B8 */ u8 field_0x1b8[4];
/* 0x1BC */ dCamera_pad_info mPadInfo;
/* 0x1F4 */ u8 field_0x1f4[0x200 - 0x1F4];
/* 0x200 */ f32 mTriggerLeftLast;
/* 0x204 */ f32 mTriggerLeftDelta;
/* 0x208 */ u8 field_0x208;
/* 0x209 */ u8 field_0x209;
/* 0x20A */ u8 field_0x20a;
/* 0x20B */ u8 field_0x20b;
/* 0x20C */ f32 mTriggerRightLast;
/* 0x210 */ f32 mTriggerRightDelta;
/* 0x214 */ u8 field_0x214;
/* 0x215 */ u8 field_0x215;
/* 0x216 */ u8 field_0x216;
/* 0x217 */ u8 field_0x217;
/* 0x218 */ u8 mHoldX;
/* 0x219 */ u8 mTrigX;
/* 0x21A */ u8 mHoldY;
/* 0x21B */ u8 mTrigY;
/* 0x21C */ u8 mHoldZ;
/* 0x21D */ u8 mTrigZ;
/* 0x21E */ u8 field_0x21e;
/* 0x21F */ u8 field_0x21f;
/* 0x220 */ u8 mHoldB;
/* 0x221 */ u8 mTrigB;
/* 0x222 */ u8 field_0x222;
/* 0x223 */ u8 field_0x223;
/* 0x224 */ u8 field_0x224;
/* 0x228 */ dCamForcusLine mFocusLine;
/* 0x298 */ dCamera_FakeAngle_system mFakeAngleSys;
/* 0x2A0 */ dCamera_monitoring_things mMonitor;
/* 0x2C0 */ f32 field_0x2c0;
/* 0x2C4 */ int field_0x2c4;
/* 0x2C8 */ f32 field_0x2c8;
/* 0x2CC */ BG mBG;
/* 0x3E8 */ u8 field_0x3e8;
/* 0x3E9 */ u8 field_0x3e9[0x4e8 - 0x3e9];
/* 0x4E8 */ dCamera_event_data mEventData;
/* 0x60C */ u32 mEventFlags;
/* 0x610 */ u8 field_0x610;
/* 0x611 */ u8 field_0x611;
/* 0x612 */ u8 field_0x612[2];
class {
public:
/* 0x00 */ u8 field_0x0[8];
/* 0x08 */ cSAngle field_0x8;
/* 0x10 */ u8 field_0x10[4];
}
/* 0x614 */ field_0x614[4];
/* 0x664 */ u8 field_0x664[4];
/* 0x668 */ int field_0x668;
/* 0x66C */ int field_0x66c;
/* 0x670 */ int field_0x670;
/* 0x674 */ int field_0x674;
/* 0x678 */ int field_0x678;
/* 0x67C */ int mCamStyle;
/* 0x680 */ int field_0x684;
/* 0x684 */ u8* mCamTypeData;
/* 0x688 */ int field_0x688;
/* 0x68C */ int mCurType;
/* 0x690 */ int mNextType;
/* 0x694 */ int mMapToolType;
/* 0x698 */ int field_0x698;
/* 0x69C */ int field_0x69c;
/* 0x6A0 */ u8 field_0x6a0[0x6b8 - 0x6a0];
/* 0x6B8 */ Shake mShake;
/* 0x6FC */ int field_0x6fc;
class {
public:
/* 0x00 */ u8 field_0x0[4];
/* 0x04 */ int field_0x4;
/* 0x08 */ csXyz field_0x8;
/* 0x10 */ fopAc_ac_c* field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ cXyz mBlurePosition;
/* 0x24 */ cXyz mBlureScale;
}
/* 0x700 */ field_0x700;
/* 0x730 */ f32 mBlureAlpha;
/* 0x734 */ f32 field_0x734;
/* 0x738 */ f32 field_0x738;
/* 0x73C */ f32 field_0x73c;
class {
public:
/* 0x00 */ cXyz field_0x0;
/* 0x0C */ cXyz field_0xc;
/* 0x18 */ cXyz field_0x18;
/* 0x24 */ cSGlobe field_0x24;
}
/* 0x740 */ field_0x740;
/* 0x76C */ u8 field_0x76c[0x79c - 0x76c];
class {
public:
/* 0x0 */ u8 field_0x0[4];
/* 0x4 */ cXyz field_0x4;
}
/* 0x79C */ field_0x79c;
/* 0x7AC */ dCamMapToolData field_0x7ac;
/* 0x7E8 */ dCamMapToolData field_0x7e8;
/* 0x824 */ dCamMapToolData field_0x824;
/* 0x860 */ dCamMapToolData field_0x860;
/* 0x89C */ dCamMapToolData field_0x89c;
/* 0x8D8 */ dCamMapToolData field_0x8d8;
/* 0x914 */ u8 field_0x914[0x91c - 0x914];
/* 0x91C */ f32 field_0x91c;
/* 0x920 */ f32 mTrimHeight;
/* 0x924 */ int mTrimSize;
/* 0x928 */ int mTrimTypeForce;
/* 0x92C */ u8 field_0x92c[0x970 - 0x92c];
/* 0x970 */ dCamSetup_c mCamSetup;
/* 0xAEC */ dCamParam_c mCamParam;
/* 0xB0C */
};
dCamera_c* dCam_getBody();
+24 -11
View File
@@ -13,6 +13,7 @@
#include "dolphin/mtx/mtx44.h"
#include "dolphin/mtx/mtxvec.h"
#include "dolphin/types.h"
#include "f_op/f_op_view.h"
class cM_rnd_c {
public:
@@ -33,6 +34,25 @@ public:
virtual void draw();
};
class dDlst_effectLine_c : public dDlst_base_c {
public:
/* 80053E9C */ virtual void draw();
/* 800541F4 */ void update(cXyz&, _GXColor&, u16, u16, u16, u16, f32, f32, f32, f32);
private:
/* 0x04 */ cM_rnd_c mRnd;
/* 0x10 */ cXyz field_0x10;
/* 0x1C */ GXColor mLineColor;
/* 0x20 */ u16 field_0x20;
/* 0x22 */ u16 field_0x22;
/* 0x24 */ u16 field_0x24;
/* 0x26 */ u16 field_0x26;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
/* 0x30 */ f32 field_0x30;
/* 0x34 */ f32 field_0x34;
}; // Size: 0x38
class dDlst_FileInfo_c : public dDlst_base_c {
public:
dDlst_FileInfo_c() {}
@@ -198,7 +218,7 @@ private:
/* 0x15EF4 */ void* field_0x15ef4;
};
class dDlst_window_c {
class dDlst_window_c : public view_port_class {
public:
dDlst_window_c() {}
~dDlst_window_c() {}
@@ -210,16 +230,6 @@ public:
f32 getViewPort() { return mXOrig; }
private:
/* 0x00 */ f32 mXOrig;
/* 0x04 */ f32 mYOrig;
/* 0x08 */ f32 mWidth;
/* 0x0C */ f32 mHeight;
/* 0x10 */ f32 mNearZ;
/* 0x14 */ f32 mFarZ;
/* 0x18 */ f32 mScissorXOrig;
/* 0x1C */ f32 mScissorYOrig;
/* 0x20 */ f32 mScissorWidth;
/* 0x24 */ f32 mScissorHeight;
/* 0x28 */ s8 mCameraID;
/* 0x29 */ s8 mMode;
};
@@ -296,6 +306,9 @@ public:
void setXluList2DScreen() { setXluDrawList(mDrawBuffers[DB_LIST_2D_SCREEN]); }
void peekZdata() { mPeekZ.peekData(); }
void entryZSortListZxlu(J3DPacket* i_packet, cXyz& param_1) {
entryZSortXluDrawList(mDrawBuffers[DB_LIST_Z_XLU], i_packet, param_1);
}
int setSimpleShadow(cXyz* param_0, f32 param_1, f32 param_2, cXyz* param_3, s16 param_4,
f32 param_5, _GXTexObj* param_6) {
+1
View File
@@ -2,6 +2,7 @@
#define D_D_KYEFF2_H
#include "dolphin/types.h"
#include "SSystem/SComponent/c_phase.h"
class dKyeff2_c {
public:
+12 -1
View File
@@ -3,6 +3,17 @@
#include "dolphin/types.h"
u16* dPath_GetRoomPath(int param_0, int param_1);
class dStage_dPnt_c;
struct dPath {
/* 0x0 */ u16 m_num;
/* 0x2 */ u16 m_nextID;
/* 0x4 */ u8 field_0x4;
/* 0x5 */ u8 m_closed;
/* 0x6 */ u8 field_0x6;
/* 0x8 */ dStage_dPnt_c* m_points;
};
dPath* dPath_GetRoomPath(int path_index, int room_no);
#endif /* D_D_PATH_H */
+2 -2
View File
@@ -13,8 +13,8 @@ public:
/* 8003A260 */ dRes_info_c();
/* 8003A280 */ ~dRes_info_c();
/* 8003A348 */ int set(char const*, char const*, u8, JKRHeap*);
/* 8003AB30 */ void onWarpMaterial(J3DModelData*);
/* 8003AC1C */ void offWarpMaterial(J3DModelData*);
/* 8003AB30 */ static void onWarpMaterial(J3DModelData*);
/* 8003AC1C */ static void offWarpMaterial(J3DModelData*);
/* 8003AD08 */ void setWarpSRT(J3DModelData*, cXyz const&, f32, f32);
/* 8003AE14 */ void loaderBasicBmd(u32, void*);
/* 8003B30C */ int loadResource();
+41 -9
View File
@@ -4,6 +4,7 @@
#include "JSystem/JKernel/JKRExpHeap.h"
#include "SSystem/SComponent/c_lib.h"
#include "d/kankyo/d_kankyo.h"
#include "d/kankyo/d_kankyo_data.h"
#include "d/save/d_save.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
@@ -12,9 +13,15 @@ struct stage_vrboxcol_info_class {
// VRB
}; // Size: 0x18
// Virt
struct stage_vrbox_info_class {
// Virt
};
/* 0x00 */ GXColor field_0x0;
/* 0x04 */ GXColor field_0x4;
/* 0x08 */ color_RGB_class field_0x8;
/* 0x0B */ color_RGB_class field_0xb;
/* 0x0E */ color_RGB_class field_0xe;
/* 0x11 */ color_RGB_class field_0x11;
}; // Size: 0x15
class stage_tresure_class {
public:
@@ -80,17 +87,36 @@ struct stage_pure_lightvec_info_class {
// LGT
};
// Col
struct stage_pselect_info_class {
// Col
};
/* 0x0 */ u8 mPalIdx[8];
/* 0x8 */ f32 mChangeRate;
}; // Size: 0xC
struct stage_plight_info_class {
// LGHT
};
// PALE
struct stage_palette_info_class {
// PAL
};
/* 0x00 */ color_RGB_class mActor_C0;
/* 0x03 */ color_RGB_class mActor_K0;
/* 0x06 */ color_RGB_class mBG0_C0;
/* 0x09 */ color_RGB_class mBG0_K0;
/* 0x0C */ color_RGB_class mBG1_C0;
/* 0x0F */ color_RGB_class mBG1_K0;
/* 0x12 */ color_RGB_class mBG2_C0;
/* 0x15 */ color_RGB_class mBG2_K0;
/* 0x18 */ color_RGB_class mBG3_C0;
/* 0x1B */ color_RGB_class mBG3_K0;
/* 0x1E */ color_RGB_class mFog;
/* 0x21 */ u8 mVirtIdx;
/* 0x22 */ u8 field_0x22;
/* 0x23 */ u8 field_0x23;
/* 0x24 */ f32 mFogStartZ;
/* 0x28 */ f32 mFogEndZ;
/* 0x2C */ u8 field_0x2c[8];
}; // Size: 0x34
struct stage_map_info_class {
/* 0x00 */ u8 field_0x0[0x35];
@@ -191,7 +217,11 @@ public:
struct dStage_MemoryMap_c {};
struct dStage_dPath_c {};
struct dPath;
struct dStage_dPath_c {
/* 0x0 */ int m_num;
/* 0x4 */ dPath* m_path;
};
struct dStage_Mult_info {
/* 0x0 */ f32 mTransX;
@@ -222,9 +252,11 @@ public:
/* 0x1C */ u16 mMsg;
}; // Size: 0x20
// PPNT
struct dStage_dPnt_c {
// PPNT
};
/* 0x0 */ int field_0x0;
/* 0xC */ cXyz m_position;
}; // Size: 0x10
struct dStage_FloorInfo_c {
// FLOR
+15 -8
View File
@@ -32,6 +32,9 @@ static void dKy_set_vrboxkumocol_ratio(f32 ratio);
void dKy_actor_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3);
void dKy_fog_startendz_set(f32 param_0, f32 param_1, f32 param_2);
static void dKy_vrbox_addcol_set(s16 param_0, s16 param_1, s16 param_2, f32 param_3);
void dKy_GxFog_set();
static void GxFog_set();
static void GxXFog_set();
struct LIGHT_INFLUENCE {
@@ -46,7 +49,7 @@ struct LIGHT_INFLUENCE {
};
struct WIND_INFLUENCE {
/* 0x00 */ cXyz mPosition;
/* 0x00 */ cXyz position;
/* 0x0C */ cXyz mDirection;
/* 0x18 */ f32 mRadius;
/* 0x1C */ f32 mStrength;
@@ -106,13 +109,13 @@ struct BOSS_LIGHT {
/* 8019F438 */ ~BOSS_LIGHT();
/* 8019F474 */ BOSS_LIGHT();
/* 0x00 */ cXyz field_0x0;
/* 0x0C */ int field_0xc;
/* 0x10 */ int field_0x10;
/* 0x14 */ int field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1C */ int field_0x1c;
/* 0x20 */ int field_0x20;
/* 0x00 */ cXyz mPos;
/* 0x0C */ GXColor mColor;
/* 0x10 */ f32 field_0x10;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ u8 field_0x24;
/* 0x25 */ u8 field_0x25;
/* 0x26 */ u8 field_0x26;
@@ -533,6 +536,10 @@ extern dScnKy_env_light_c g_env_light;
STATIC_ASSERT(sizeof(dScnKy_env_light_c) == 4880);
inline dScnKy_env_light_c* i_dKy_getEnvlight() {
return &g_env_light;
}
BOOL dKy_darkworld_stage_check(char const*, int);
BOOL dKy_withwarp_capture_check();
bool dKy_darkworld_check();
+6
View File
@@ -3,6 +3,12 @@
#include "dolphin/types.h"
struct color_RGB_class {
u8 r;
u8 g;
u8 b;
};
// Invented name; Used as u8 `darkLv` in dKydata_darkworldInfo_c.
enum dKyd_DARKLV {
FARON = 0,
+15 -12
View File
@@ -21,6 +21,7 @@ f32 dKyw_get_wind_pow();
static void squal_proc();
void dKyw_rain_set(int count);
void dKyw_wind_set();
cXyz dKyw_get_wind_vecpow();
class dKankyo_sun_Packet : public J3DPacket {
public:
@@ -92,7 +93,6 @@ public:
virtual void draw();
virtual ~dKankyo_rain_Packet();
private:
/* 0x0010 */ u8* mpTex;
/* 0x0014 */ u8* mpTex2;
/* 0x0018 */ RAIN_EFF mRainEff[250];
@@ -145,7 +145,9 @@ struct STAR_EFF {
/* 0x00 */ u8 field_0x0[4];
/* 0x04 */ cXyz field_0x04;
/* 0x10 */ cXyz field_0x10;
/* 0x1C */ u8 field_0x1c[0x18];
/* 0x1C */ u8 field_0x1c[12];
/* 0x28 */ f32 field_0x28;
/* 0x2C */ u8 field_0x2c[8];
}; // Size: 0x34
class dKankyo_star_Packet : public J3DPacket {
@@ -153,9 +155,9 @@ public:
virtual void draw();
virtual ~dKankyo_star_Packet();
private:
/* 0x10 */ u8* field_0x10;
/* 0x14 */ STAR_EFF field_0x14[1];
/* 0x14 */ STAR_EFF mEffect[1];
/* 0x48 */ s16 mEffectNum;
};
struct HOUSI_EFF {
@@ -273,10 +275,11 @@ public:
virtual void draw();
virtual ~dKankyo_mud_Packet();
/* 0x0010 */ int field_0x10;
/* 0x0014 */ u8* field_0x14;
/* 0x0018 */ EF_MUD_EFF field_0x18[100];
/* 0x13C8 */ u8 field_0x13c8[8];
/* 0x0010 */ int mEffectNum;
/* 0x0014 */ u8* mpMoyaRes;
/* 0x0018 */ EF_MUD_EFF mEffect[100];
/* 0x1C38 */ u8 field_0x1c38[4];
/* 0x1C3C */ f32 field_0x1c3c;
};
struct EF_EVIL_EFF {
@@ -295,10 +298,10 @@ public:
virtual void draw();
virtual ~dKankyo_evil_Packet();
/* 0x00010 */ int field_0x10;
/* 0x00014 */ u8* field_0x14;
/* 0x00018 */ u8 field_0x18[4];
/* 0x0001C */ EF_EVIL_EFF field_0x1c[2000];
/* 0x00010 */ int mEffectNum;
/* 0x00014 */ u8* mpMoyaRes;
/* 0x00018 */ u8* mpKumoLightRes;
/* 0x0001C */ EF_EVIL_EFF mEffect[2000];
/* 0x2135C */ u8 field_0x2135c[8];
};
+6
View File
@@ -9,6 +9,12 @@
#include "d/pane/d_pane_class.h"
#include "dolphin/types.h"
enum dMeter2Draw_actionFlag {
/* 0x0 */ ACTION_FLG_DEFAULT,
/* 0x2 */ ACTION_FLG_EMPHASIS = 2,
/* 0x4 */ ACTION_FLG_CONTINUATION = 4,
};
enum dMeter2Draw_actionID {
/* 0x00 */ ACTION_STR_NONE,
/* 0x01 */ ACTION_STR_LET_GO,
+1
View File
@@ -159,6 +159,7 @@ public:
u8 isSelectMessage() { return mSelectMessage; }
void onNonStopJunpFlowFlag() { mNonStopJunpFlowFlag = 1; }
int getSelectNum() { return query005(NULL, NULL, 0); }
s16 getChoiceNo() { return mChoiceNo; }
static queryFunc mQueryList[53];
static eventFunc mEventList[43];
+171 -13
View File
@@ -4,10 +4,12 @@
#include "JSystem/JParticle/JPAParticle.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "d/particle/d_particle_name.h"
class dPa_levelEcallBack : public JPAEmitterCallBack {
public:
/* 8004FB18 */ virtual ~dPa_levelEcallBack();
virtual void setup(JPABaseEmitter*, const cXyz*, const csXyz*, s8) = 0;
/* 8004FB8C */ virtual void cleanup();
};
@@ -67,15 +69,154 @@ public:
void remove() { end(); }
/* 0x04 */ JPABaseEmitter* mpEmitter;
/* 0x08 */ cXyz* field_0x8;
/* 0x0C */ csXyz* field_0xc;
/* 0x08 */ const cXyz* field_0x8;
/* 0x0C */ const csXyz* field_0xc;
/* 0x10 */ u8 field_0x10;
/* 0x11 */ u8 field_0x11;
/* 0x12 */ u8 field_0x12;
/* 0x13 */ u8 field_0x13;
};
extern u8 data_80450EC4;
class dPa_windPcallBack : public JPAParticleCallBack {
public:
/* 8004FF2C */ virtual ~dPa_windPcallBack();
/* 8004B4E0 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_wbPcallBack_c : public JPAParticleCallBack {
public:
/* 8004FECC */ virtual ~dPa_wbPcallBack_c();
/* 8004DC28 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_setColorEcallBack : public dPa_levelEcallBack {
public:
dPa_setColorEcallBack(const GXColor& color) { mColor = color; }
/* 800502E4 */ virtual ~dPa_setColorEcallBack();
/* 800502B0 */ virtual void draw(JPABaseEmitter*);
/* 800502E0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
/* 0x4 */ GXColor mColor;
};
class dPa_selectTexEcallBack : public dPa_levelEcallBack {
public:
dPa_selectTexEcallBack(u8 param_0) { field_0x4 = param_0; }
/* 8004FF8C */ virtual ~dPa_selectTexEcallBack();
/* 8004ADC4 */ virtual void draw(JPABaseEmitter*);
/* 80050010 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
/* 0x4 */ u8 field_0x4;
};
class dPa_particleTracePcallBack_c : public JPAParticleCallBack {
public:
/* 8004FC68 */ virtual ~dPa_particleTracePcallBack_c();
/* 8004FAD4 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_modelPcallBack : public JPAParticleCallBack {
public:
/* 80050038 */ virtual ~dPa_modelPcallBack();
/* 8004A460 */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_modelEcallBack : public dPa_levelEcallBack {
public:
struct model_c {
/* 8004A608 */ void set(J3DModelData*, dKy_tevstr_c const&, u8, void*, u8, u8);
/* 8004A7AC */ void setup();
/* 8004A88C */ void cleanup();
/* 8004A8DC */ void draw(f32 (*)[4]);
/* 8004AB88 */ ~model_c();
/* 8004FB90 */ model_c();
};
dPa_modelEcallBack() { mModel = NULL; }
/* 8004AB1C */ void create(u8);
/* 8004ABC4 */ void remove();
/* 8004AC00 */ void setModel(JPABaseEmitter*, J3DModelData*, dKy_tevstr_c const&, u8, void*, u8,
u8);
/* 8004AC90 */ void resetModel(JPABaseEmitter*);
/* 8004ACC0 */ void setupModel(JPABaseEmitter*);
/* 8004ACEC */ void drawModel(JPABaseEmitter*, f32 (*)[4]);
/* 8004AD28 */ void cleanupModel(JPABaseEmitter*);
/* 8004AD58 */ void getModel(JPABaseEmitter*);
/* 8004AD90 */ void getRotAxis(JPABaseEmitter*);
/* 80050378 */ virtual ~dPa_modelEcallBack();
/* 8004AA34 */ virtual void draw(JPABaseEmitter*);
/* 80050014 */ virtual void drawAfter(JPABaseEmitter*);
/* 8004AAA8 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
static u8 mEcallback[4];
static u8 mPcallback[4];
static J3DModel* mModel;
};
class dPa_light8PcallBack : public JPAParticleCallBack {
public:
/* 8004FE0C */ virtual ~dPa_light8PcallBack();
/* 8004DD10 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
/* 8004DD1C */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_light8EcallBack : public dPa_levelEcallBack {
public:
/* 8005015C */ virtual ~dPa_light8EcallBack();
/* 8004A340 */ virtual void draw(JPABaseEmitter*);
/* 800501E0 */ virtual void drawAfter(JPABaseEmitter*);
/* 8004979C */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
};
class dPa_gen_d_light8PcallBack : public JPAParticleCallBack {
public:
/* 8004FD4C */ virtual ~dPa_gen_d_light8PcallBack();
/* 8004DD18 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
/* 8004ED44 */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_gen_d_light8EcallBack : public dPa_levelEcallBack {
public:
/* 800503FC */ virtual ~dPa_gen_d_light8EcallBack();
/* 8004A388 */ virtual void draw(JPABaseEmitter*);
/* 80050098 */ virtual void drawAfter(JPABaseEmitter*);
/* 800497CC */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
};
class dPa_gen_b_light8PcallBack : public JPAParticleCallBack {
public:
/* 8004FDAC */ virtual ~dPa_gen_b_light8PcallBack();
/* 8004DD14 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
/* 8004E6A8 */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_gen_b_light8EcallBack : public dPa_levelEcallBack {
public:
/* 800500B8 */ virtual ~dPa_gen_b_light8EcallBack();
/* 8004A364 */ virtual void draw(JPABaseEmitter*);
/* 8005013C */ virtual void drawAfter(JPABaseEmitter*);
/* 800497B0 */ virtual void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8);
};
class dPa_fsenthPcallBack : public JPAParticleCallBack {
public:
/* 8004FE6C */ virtual ~dPa_fsenthPcallBack();
/* 8004DCA0 */ virtual void execute(JPABaseEmitter*, JPABaseParticle*);
/* 8004DD0C */ virtual void draw(JPABaseEmitter*, JPABaseParticle*);
};
class dPa_simpleData_c {
public:
/* 8004B024 */ ~dPa_simpleData_c();
/* 8004B060 */ dPa_simpleData_c();
u8 field_0x0[20];
};
class dPa_control_c {
public:
@@ -89,7 +230,21 @@ public:
/* 8004FBFC */ emitter_c();
JPABaseEmitter* getEmitter() { return mEmitter; }
emitter_c* getPre() { return mPre; }
emitter_c* getNext() { return mNext; }
void setPre(emitter_c* pre) { mPre = pre; }
void setNext(emitter_c* next) { mNext = next; }
u32 getId() { return mId; }
void clearStatus() { mStatus = 0; }
void onEventMove() { mStatus |= 2; }
void offEventMove() { mStatus &= ~2; }
bool isEventMove() { return mStatus & 2; }
void offActive() { mStatus &= ~1; }
bool isActive() { return mStatus & 1; }
private:
/* 0x00 */ u32 mId;
/* 0x04 */ u16 mNameId;
@@ -104,24 +259,26 @@ public:
/* 8004B7A8 */ void execute();
/* 8004B6F8 */ void execute(dPa_control_c::level_c::emitter_c*);
/* 8004B808 */ void cleanup();
/* 8004B874 */ void get(u32);
/* 8004B874 */ emitter_c* get(u32);
/* 8004B8B4 */ void forceOnEventMove(u32);
/* 8004B8E8 */ void allForceOnEventMove();
/* 8004B918 */ JPABaseEmitter* getEmitter(u32);
/* 8004B94C */ void entry(u16, JPABaseEmitter*, dPa_levelEcallBack*);
/* 8004B94C */ u32 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*);
static const int EMITTER_MAX = 0x80;
/* 0x000 */ u32 field_0x0;
/* 0x004 */ u8 field_0x4;
/* 0x004 */ u8 mFreeNo;
/* 0x005 */ u8 field_0x5;
/* 0x006 */ u8 field_0x6;
/* 0x008 */ emitter_c mEmitter[0x80];
/* 0xC08 */ emitter_c* field_0xc08[0x100];
/* 0xC08 */ emitter_c* mTable[0x100];
}; // Size: 0x1008
/* 8004BACC */ dPa_control_c();
/* 8004BB70 */ void getRM_ID(u16);
/* 8004BB70 */ static bool getRM_ID(u16);
/* 8004BB78 */ void createCommon(void const*);
/* 8004BCDC */ void createRoomScene();
/* 8004BDFC */ void readScene(u8, mDoDvdThd_toMainRam_c**);
@@ -180,14 +337,14 @@ public:
JKRExpHeap* getResHeap() { return m_resHeap; }
static void onStatus(u8 status) { data_80450EC4 |= status; }
static void offStatus(u8 status) { data_80450EC4 &= ~status; }
static bool isStatus(u8 status) { return data_80450EC4 & status; }
static void onStatus(u8 status) { mStatus |= status; }
static void offStatus(u8 status) { mStatus &= ~status; }
static bool isStatus(u8 status) { return mStatus & status; }
static u8 mTsubo[64];
static u8 mLifeBall[24];
static u8 mWindViewMatrix[48];
static u8 mEmitterMng[4];
static Mtx mWindViewMatrix;
static JPAEmitterManager* mEmitterMng;
static u8 mWaterBubblePcallBack[4];
static u8 mFsenthPcallBack[4];
static u8 mLight8EcallBack[4];
@@ -197,6 +354,7 @@ public:
static u8 m_d_Light8EcallBack[4];
static u8 m_d_Light8PcallBack[4];
static u8 mParticleTracePCB[4 + 4 /* padding */];
static u8 mStatus;
private:
/* 0x000 */ JKRSolidHeap* mHeap;
+5
View File
@@ -3,4 +3,9 @@
#include "dolphin/types.h"
struct dPa_name {
static u16 j_o_id[5];
static u16 s_o_id[14];
};
#endif /* D_PARTICLE_D_PARTICLE_NAME_H */