ChkBit comments and enum work (#2571)

* Jagar cleanup

* saru work

* e_fm work

* gob enum added

* gob cleanup

* gob anm enums

* dComIfGs_isEventBit comments added

* More bit work and besu enum work

* Maybe fixed the issue?
This commit is contained in:
Carco_21
2025-08-08 14:39:26 -04:00
committed by GitHub
parent 7df70ce3ca
commit 427643edd2
114 changed files with 2680 additions and 1153 deletions
+1
View File
@@ -363,6 +363,7 @@ public:
}
static bool checkMidnaTired() {
/* dSv_event_flag_c::F_0250 - Cutscene - [cutscene: 21] reunion with Zelda / Midna revived (Hyrule Castle barrier appears) */
return dComIfGs_isTransformLV(3) && !dComIfGs_isEventBit(0x1E08);
}
+4 -1
View File
@@ -125,7 +125,10 @@ public:
/* 8095CC8C */ BOOL drawDbgInfo();
s16 getMessageNo() { return shape_angle.x; }
bool isMap() { return !(daNpcF_chkEvtBit(0x10c) || !daNpcF_chkEvtBit(0x108)); }
/* dSv_event_flag_c::F_0268 - City in the Sky - City in the Sky clear */
bool isMap() { return !(daNpcF_chkEvtBit(0x10c)
/* dSv_event_flag_c::F_0264 - Cutscene - Get master sword */
|| !daNpcF_chkEvtBit(0x108)); }
inline void setExpressionTalkAfter() { setExpression(7, -1.0f); }
inline void setLookMode(int i_lookMode, fopAc_ac_c* i_talkPartner);
inline void searchActors();
+2 -2
View File
@@ -115,9 +115,9 @@ public:
static cutFunc mCutList[15];
private:
/* 0x0E40 */ mDoExt_McaMorfSO* mpBesuMorf;
/* 0x0E40 */ mDoExt_McaMorfSO* mpCupModelMorf;
/* 0x0E44 */ u8 field_0xe44[0x0E48 - 0xE44];
/* 0x0E48 */ J3DModel* mpModel[1];
/* 0x0E48 */ J3DModel* mpClothModel[1];
/* 0x0E4C */ dCcD_Cyl mCyl1;
/* 0x0F88 */ dCcD_Cyl mCyl2;
/* 0x10C4 */ u8 mType;
+2
View File
@@ -211,6 +211,7 @@ public:
rv = 0;
break;
}
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && rv == 9) {
rv = 0xb;
}
@@ -244,6 +245,7 @@ public:
rv = 0;
break;
}
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && rv == 10) {
rv = 12;
}
+47 -31
View File
@@ -67,29 +67,6 @@ class daNpc_Jagar_Param_c {
class daNpc_Jagar_c : public daNpcT_c {
public:
enum JAGAR2_RES_FILE_ID {
/* BCK */
/* 0x05 */ BCK_JAGA_F_SURPRISE = 5,
/* 0x06 */ BCK_JAGA_F_SURPRISE_WAIT,
/* 0x07 */ BCK_JAGA_F_WORRY_TALK,
/* 0x08 */ BCK_JAGA_RUN_A,
/* 0x09 */ BCK_JAGA_SURPRISE,
/* 0x0A */ BCK_JAGA_SURPRISE_WAIT,
/* 0x0B */ BCK_JAGA_UNADUKI,
/* 0x0C */ BCK_JAGA_WORRY_TALK,
/* 0x0D */ BCK_JAGA_WORRY_WAIT,
/* 0x0E */ BCK_JAGA_WORRY_WALK,
/* BTP */
/* 0x11 */ BTP_JAGA_BLINK = 0x11,
/* 0x12 */ BTP_JAGA_F_SURPRISE,
/* 0x13 */ BTP_JAGA_F_SURPRISE_WAIT,
/* 0x14 */ BTP_JAGA_F_WORRY_TALK,
/* EVT */
/* 0x17 */ EVT_EVENT_LIST = 0x17,
};
typedef int (daNpc_Jagar_c::*cutFunc)(int);
typedef int (daNpc_Jagar_c::*actionFunc)(void*);
@@ -100,6 +77,45 @@ public:
TYPE_3,
};
enum Joint {
/* 0x00 */ JNT_CENTER,
/* 0x01 */ JNT_BACKBONE1,
/* 0x02 */ JNT_BACKBONE2,
/* 0x03 */ JNT_NECK,
/* 0x04 */ JNT_HEAD,
/* 0x05 */ JNT_CHIN,
/* 0x06 */ JNT_MAYU_L,
/* 0x07 */ JNT_MAYU_R,
/* 0x08 */ JNT_MOUTH,
/* 0x09 */ JNT_SHOULDERL,
/* 0x0A */ JNT_ARML1,
/* 0x0B */ JNT_ARML2_1,
/* 0x0C */ JNT_HANDL_1,
/* 0x0D */ JNT_FINGERL,
/* 0x0E */ JNT_SHOULDERR,
/* 0x0F */ JNT_ARMR1,
/* 0x10 */ JNT_ARMR2_1,
/* 0x11 */ JNT_HANDR_1,
/* 0x12 */ JNT_FINGERR,
/* 0x13 */ JNT_WAIST,
/* 0x14 */ JNT_LEGL1,
/* 0x15 */ JNT_LEGL2,
/* 0x16 */ JNT_FOOTL,
/* 0x17 */ JNT_SKIRTL,
/* 0x18 */ JNT_LEGR1,
/* 0x19 */ JNT_LEGR2,
/* 0x1A */ JNT_FOOTR,
/* 0x1B */ JNT_SKIRTR,
/* 0x1C */ JNT_SKIRT1,
/* 0x1D */ JNT_SKIRT2,
};
enum Material {
/* 0x1 */ MAT_JAGA_EYEBALL = 0x1,
/* 0x2 */ MAT_JAGA_FACE_M,
/* 0x3 */ MAT_JAGA_M,
};
/* 80A1470C */ ~daNpc_Jagar_c();
/* 80A14858 */ int create();
/* 80A14B20 */ int CreateHeap();
@@ -146,14 +162,14 @@ public:
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
/* 80A1A274 */ u16 getEyeballMaterialNo() { return 1; }
/* 80A1A27C */ s32 getHeadJointNo() { return 4; }
/* 80A1A284 */ s32 getNeckJointNo() { return 3; }
/* 80A1A28C */ s32 getBackboneJointNo() { return 1; }
/* 80A1A294 */ BOOL checkChangeJoint(int param_1) { return param_1 == 4; }
/* 80A1A2A4 */ BOOL checkRemoveJoint(int param_1) { return param_1 == 8; }
/* 80A1A2B4 */ s32 getFootLJointNo() { return 22; }
/* 80A1A2BC */ s32 getFootRJointNo() { return 26; }
/* 80A1A274 */ u16 getEyeballMaterialNo() { return MAT_JAGA_EYEBALL; }
/* 80A1A27C */ s32 getHeadJointNo() { return JNT_HEAD; }
/* 80A1A284 */ s32 getNeckJointNo() { return JNT_NECK; }
/* 80A1A28C */ s32 getBackboneJointNo() { return JNT_BACKBONE1; }
/* 80A1A294 */ BOOL checkChangeJoint(int param_1) { return param_1 == JNT_HEAD; }
/* 80A1A2A4 */ BOOL checkRemoveJoint(int param_1) { return param_1 == JNT_MOUTH; }
/* 80A1A2B4 */ s32 getFootLJointNo() { return JNT_FOOTL; }
/* 80A1A2BC */ s32 getFootRJointNo() { return JNT_FOOTR; }
int getFlowNodeNo() {
u16 nodeNo = home.angle.x;
+67 -2
View File
@@ -16,6 +16,71 @@
*/
class npc_ks_class {
public:
enum Npc_ks_RES_File_ID {
/* BCK */
/* 0x05 */ BCK_SARU_BAKUCHU = 0x5,
/* 0x06 */ BCK_SARU_BIKKURI,
/* 0x07 */ BCK_SARU_CALL,
/* 0x08 */ BCK_SARU_CALLBACK,
/* 0x09 */ BCK_SARU_CALLBACK_K,
/* 0x0A */ BCK_SARU_CALL_K,
/* 0x0B */ BCK_SARU_CLAP_WAIT,
/* 0x0C */ BCK_SARU_CLIMB,
/* 0x0D */ BCK_SARU_FALL,
/* 0x0E */ BCK_SARU_FIRE_K,
/* 0x0F */ BCK_SARU_GODOWN,
/* 0x10 */ BCK_SARU_HANGCALL,
/* 0x11 */ BCK_SARU_HANGWAIT_A,
/* 0x12 */ BCK_SARU_HANGWAIT_B,
/* 0x13 */ BCK_SARU_HANGWAIT_C,
/* 0x14 */ BCK_SARU_HELP,
/* 0x15 */ BCK_SARU_HELP_B,
/* 0x16 */ BCK_SARU_HELP_C,
/* 0x17 */ BCK_SARU_HOLDING,
/* 0x18 */ BCK_SARU_HUNGING,
/* 0x19 */ BCK_SARU_INDICATE,
/* 0x1A */ BCK_SARU_JUMPRUN,
/* 0x1B */ BCK_SARU_JUMPRUN_K,
/* 0x1C */ BCK_SARU_JUMPWALK,
/* 0x1D */ BCK_SARU_JUMPWALK_K,
/* 0x1E */ BCK_SARU_JUMP_ATTN,
/* 0x1F */ BCK_SARU_JUMP_L,
/* 0x20 */ BCK_SARU_JUMP_S,
/* 0x21 */ BCK_SARU_JUMP_T,
/* 0x22 */ BCK_SARU_KAGO_JUMP,
/* 0x23 */ BCK_SARU_LAND,
/* 0x24 */ BCK_SARU_RECOVER,
/* 0x25 */ BCK_SARU_RELIEF,
/* 0x26 */ BCK_SARU_ROTATE,
/* 0x27 */ BCK_SARU_SCARED,
/* 0x28 */ BCK_SARU_SCAREDLOOK_K,
/* 0x29 */ BCK_SARU_SCARED_B,
/* 0x2A */ BCK_SARU_SCARED_K,
/* 0x2B */ BCK_SARU_SCARED_LOOK,
/* 0x2C */ BCK_SARU_SHAKE_K,
/* 0x2D */ BCK_SARU_STOPCALL,
/* 0x2E */ BCK_SARU_SURPRISE_K,
/* 0x2F */ BCK_SARU_SWIM,
/* 0x30 */ BCK_SARU_SWINGPOSE,
/* 0x31 */ BCK_SARU_TO_ROTATE,
/* 0x32 */ BCK_SARU_WAITSTAND,
/* 0x33 */ BCK_SARU_WAIT_A,
/* 0x34 */ BCK_SARU_WAIT_A_K,
/* 0x35 */ BCK_SARU_WAIT_B,
/* 0x36 */ BCK_SARU_WAIT_C,
/* 0x37 */ BCK_SARU_WALKCLAP,
/* 0x38 */ BCK_SARU_YOROKOBI,
/* BMDR */
/* 0x3B */ BMDR_SARU = 0x3B,
/* 0x3C */ BMDR_SARU_BARA,
/* 0x3D */ BMDR_SARU_STICK,
/* BTP */
/* 0x40 */ BTP_SARU = 0x40,
/* 0x41 */ BTP_SARU_RELIEF,
};
/* 0x000 */ fopEn_enemy_c actor;
/* 0x5AC */ request_of_phase_process_class mPhase;
/* 0x5B4 */ u8 mRoomMonkeyID;
@@ -124,8 +189,8 @@ public:
/* 0xBE4 */ u32 field_0xbe4[4];
/* 0xBF4 */ u32 field_0xbf4;
/* 0xBF8 */ u8 field_0xbf8[0xbfc - 0xbf8];
/* 0xBFC */ J3DModel* field_0xbfc;
/* 0xC00 */ J3DModel* field_0xc00;
/* 0xBFC */ J3DModel* mpRoseModel;
/* 0xC00 */ J3DModel* mpStickModel;
/* 0xC04 */ cXyz field_0xc04;
/* 0xC10 */ f32 field_0xc10;
/* 0xC14 */ s16 field_0xc14;
+45 -55
View File
@@ -12,60 +12,26 @@
*
*/
struct daNpc_Saru_HIO_c
#ifdef DEBUG
class daNpc_Saru_HIO_c : public mDoHIO_entry_c {
: public mDoHIO_entry_c
#endif
{
public:
/* 0x00 */ daNpcT_HIOParam common;
/* 0x8C */ s16 scared_time; // 怯える時間 - Scared Time
/* 0x8E */ s16 field_0x8e;
};
class daNpc_Saru_Param_c : public JORReflexible {
public:
/* 80AC448C */ virtual ~daNpc_Saru_Param_c() {}
#ifdef DEBUG
void genMessage(JORMContext*);
#endif
class daNpc_Saru_Param_c {
public:
/* 80AC448C */ virtual ~daNpc_Saru_Param_c() {};
struct Data {
/* 0x00 */ f32 field_0x00;
/* 0x04 */ f32 mGravity;
/* 0x08 */ f32 field_0x08;
/* 0x0C */ f32 field_0x0c;
/* 0x10 */ f32 mWeight;
/* 0x14 */ f32 mCylH;
/* 0x18 */ f32 mWallH;
/* 0x1C */ f32 mWallR;
/* 0x20 */ f32 mBodyDownAngle;
/* 0x24 */ f32 mBodyUpAngle;
/* 0x28 */ f32 mBodyRightAngle;
/* 0x2C */ f32 mBodyLeftAngle;
/* 0x30 */ f32 mHeadDownAngle;
/* 0x34 */ f32 mHeadUpAngle;
/* 0x38 */ f32 mHeadRightAngle;
/* 0x3C */ f32 mHeadLeftAngle;
/* 0x40 */ f32 field_0x40;
/* 0x44 */ f32 mMorfFrames;
/* 0x48 */ s16 field_0x48;
/* 0x4A */ s16 field_0x4a;
/* 0x4C */ s16 field_0x4c;
/* 0x4E */ s16 field_0x4e;
/* 0x50 */ f32 mAttnFovy;
/* 0x54 */ f32 field_0x54;
/* 0x58 */ f32 field_0x58;
/* 0x5C */ f32 field_0x5c;
/* 0x60 */ s16 field_0x60;
/* 0x62 */ s16 field_0x62;
/* 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 */ s16 field_0x8c;
/* 0x8E */ s16 field_0x8e;
};
static const Data m;
static const daNpc_Saru_HIO_c m;
};
class daNpc_Saru_c : public daNpcT_c {
@@ -80,6 +46,31 @@ public:
TYPE_3,
};
enum Joint {
/* 0x00 */ JNT_CENTER,
/* 0x01 */ JNT_BACKBONE_1,
/* 0x02 */ JNT_BACKBONE_2,
/* 0x03 */ JNT_NECK,
/* 0x04 */ JNT_HEAD,
/* 0x05 */ JNT_CHIN,
/* 0x06 */ JNT_MOUTH,
/* 0x07 */ JNT_SHOULDER_L,
/* 0x08 */ JNT_ARM_L_1,
/* 0x09 */ JNT_ARM_L_2,
/* 0x0A */ JNT_HAND_L,
/* 0x0B */ JNT_SHOULDER_R,
/* 0x0C */ JNT_ARM_R_1,
/* 0x0D */ JNT_ARM_R_2,
/* 0x0E */ JNT_HAND_R,
/* 0x0F */ JNT_WAIST,
/* 0x10 */ JNT_LEG_L_1,
/* 0x11 */ JNT_LEG_L_2,
/* 0x12 */ JNT_FOOT_L,
/* 0x13 */ JNT_LEG_R_1,
/* 0x14 */ JNT_LEG_R_2,
/* 0x15 */ JNT_FOOR_R,
};
/* 80AC042C */ ~daNpc_Saru_c();
/* 80AC0578 */ int create();
/* 80AC082C */ int CreateHeap();
@@ -120,9 +111,9 @@ public:
daNpcT_evtData_c const* param_7, char** param_8) :
daNpcT_c(param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8)
{}
/* 80AC4474 */ s32 getHeadJointNo();
/* 80AC447C */ s32 getNeckJointNo();
/* 80AC4484 */ s32 getBackboneJointNo();
/* 80AC4474 */ s32 getHeadJointNo() { return JNT_HEAD; }
/* 80AC447C */ s32 getNeckJointNo() { return JNT_NECK; }
/* 80AC4484 */ s32 getBackboneJointNo() { return JNT_BACKBONE_1; }
u32 getFlowNodeNo() {
u16 rv = home.angle.x;
@@ -137,13 +128,12 @@ public:
static char* mCutNameList[4];
static cutFunc mCutList[4];
private:
#ifdef DEBUG
/* 0xE90 */ daNpc_Saru_HIO_c* field_0xe90;
#endif
/* 0xE40 */ u8 field_0xe40[0xe44 - 0xe40];
/* 0xE44 */ J3DModel* field_0xe44[2];
/* 0xE44 */ J3DModel* mpRoseModels[2];
/* 0xE4C */ dCcD_Cyl field_0xe4c;
/* 0xF88 */ u8 mType;
/* 0xF8C */ daNpcT_ActorMngr_c mActrMngr[1];
+3 -1
View File
@@ -218,7 +218,9 @@ public:
if (mActorMngr[4].getActorP() == NULL) {
mActorMngr[4].entry(getEvtAreaTagP(17, 0));
}
} else if (mMode == 1 && daNpcF_chkEvtBit(0x12E) && mActorMngr[4].getActorP() == NULL) {
} else if (mMode == 1
/* dSv_event_flag_c::F_0302 - Kakariko Village - Saw cutscene of Shad casting spells underneat Kakariko Village */
&& daNpcF_chkEvtBit(0x12E) && mActorMngr[4].getActorP() == NULL) {
mActorMngr[4].entry(getEvtAreaTagP(18, 0));
}
}
+2
View File
@@ -44,7 +44,9 @@ public:
bool isSwitch() {
return fopAcM_isSwitch(this, getSwitchNo()) ||
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) ||
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]);
}
+2
View File
@@ -31,7 +31,9 @@ public:
bool isSwitch() {
return fopAcM_isSwitch(this, getSwitchNo()) ||
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) ||
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]);
}
+1
View File
@@ -1138,6 +1138,7 @@ public:
return dComIfGs_getSelectEquipClothes() == fpcNm_ITEM_ARMOR;
}
/* dSv_event_flag_c::M_067 - Main Event - Midna riding / not riding (ON == riding) */
static BOOL checkFirstMidnaDemo() { return dComIfGs_isEventBit(0xc10); }
static int checkNowWolfPowerUp() { return checkNowWolfEyeUp(); }