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 9fbbec4326
commit e0b1fe92b1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
114 changed files with 2680 additions and 1153 deletions

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);
}

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();

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;

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;
}

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;

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;

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];

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));
}
}

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]);
}

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]);
}

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(); }

View File

@ -240,7 +240,10 @@ void Z2EnvSeMgr::framework() {
int sceneNum = Z2GetSceneMgr()->getCurrentSceneNum();
if (field_0x64.getPosCount() >= 0) {
if (field_0x214 == 0x12 ||
(dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250])))
/* dSv_event_flag_c::M_071 - Cutscene - [cutscene: 20] Zant appears (during Midna's desperate hour) */
(dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104])
/* dSv_event_flag_c::F_0250 - Cutscene - [cutscene: 21] reunion with Zelda / Midna revived (Hyrule Castle barrier appears) */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250])))
{
int lVar12 = 0;
if (sceneNum == 0x17 || sceneNum == 0x18 || (sceneNum == 0x19)) {

View File

@ -333,7 +333,9 @@ JAISoundHandle* Z2CreatureLink::startLinkSoundLevel(JAISoundID i_soundID, u32 pa
break;
case Z2SE_AL_SNOBO_RIDE:
case Z2SE_AL_SNOBO_BREAK:
if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[266]) && Z2GetSeqMgr()->getSubBgmID() != Z2BGM_SNOW_BOARD) {
/* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[266])
&& Z2GetSeqMgr()->getSubBgmID() != Z2BGM_SNOW_BOARD) {
var_f31 = 0.0f;
var_r30 = 0;
} else if (mMoveSpeed == 0) {

View File

@ -316,10 +316,13 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
}
// fallthrough
case 4:
/* dSv_event_flag_c::F_0014 - Ordon Village - sword tutorial ends */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18])
/* dSv_event_flag_c::F_0625 - Faron Woods - Saved Talo and a monkey */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625]))
{
bgm_wave1 = 0x55;
/* dSv_event_flag_c::F_0094 - Ordon Village - Talo went after the monkey */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[194])) {
bgm_id = Z2BGM_EVENT05;
}
@ -346,6 +349,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
break;
case 1:
if (layer == 0) {
/* dSv_event_flag_c::F_0038 - Ordon Village - Opening (2nd day) cat returns home */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[136])) {
bgm_id = Z2BGM_SHOP01;
} else {
@ -353,6 +357,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
}
bgm_wave1 = 7;
} else if (layer == 2) {
/* dSv_event_flag_c::M_020 - Cutscene - [cutscene: ] Colin kidnapped : ON once watched */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) {
bgm_id = Z2BGM_SHOP01;
bgm_wave1 = 7;
@ -372,6 +377,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
bgm_wave1 = 6;
Z2GetSeqMgr()->changeBgmStatus(1);
} else if (layer == 2) {
/* dSv_event_flag_c::M_020 - Cutscene - [cutscene: ] Colin kidnapped : ON once watched */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) {
bgm_id = Z2BGM_INDOOR;
bgm_wave1 = 8;
@ -399,6 +405,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
bgm_wave1 = 8;
}
} else {
/* dSv_event_flag_c::M_020 - Cutscene - [cutscene: ] Colin kidnapped : ON once watched */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) {
bgm_id = Z2BGM_INDOOR;
bgm_wave1 = 8;
@ -448,7 +455,9 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
demo_wave = 0x5c;
break;
case 3:
/* dSv_event_flag_c::F_0014 - Ordon Village - sword tutorial ends */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18])
/* dSv_event_flag_c::F_0625 - Faron Woods - Saved Talo and a monkey */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625]))
{
bgm_id = Z2BGM_EVENT05;
@ -472,6 +481,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
} else if (layer == 7 || layer == 10) {
demo_wave = 0x67;
} else {
/* dSv_event_flag_c::M_009 - Cutscene - [cutscene: 6B] Prison escape - Midna rides on back */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[42])) {
bgm_id = Z2BGM_TWILIGHT;
bgm_wave1 = 0xe;
@ -562,7 +572,9 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
demo_wave = 0x5c;
break;
case 1:
/* dSv_event_flag_c::F_0014 - Ordon Village - sword tutorial ends */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[18])
/* dSv_event_flag_c::F_0625 - Faron Woods - Saved Talo and a monkey */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[625]))
{
bgm_id = Z2BGM_EVENT05;
@ -662,6 +674,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
} else {
switch (room) {
case 1:
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) {
bgm_id = Z2BGM_SHOP01;
} else {
@ -673,6 +686,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (layer == 13) {
demo_wave = 0x83;
} else {
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) {
bgm_id = Z2BGM_INDOOR;
bgm_wave1 = 8;
@ -680,9 +694,11 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
}
break;
case 3:
/* dSv_event_flag_c::M_076 - Misc. - First conversation with Castle Town Malo Mart shop clerk */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[109])) {
bgm_id = Z2BGM_SHOP_MARO;
bgm_wave1 = 0x33;
/* dSv_event_flag_c::M_052 - Main Event - Horseback battle clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[85])) {
bgm_id = Z2BGM_SHOP01;
bgm_wave1 = 7;
@ -937,6 +953,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
se_wave2 = 0;
demo_wave = 0x7f;
} else if (!(layer == 1 && room == 1
/* dSv_event_flag_c::F_0542 - Cutscene - [Cutscene] Hyrule Castle barrier disappears (Midna goes crazy) */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[542])))
{
bgm_id = Z2BGM_CASTLE_TOWN;
@ -1015,6 +1032,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
case SPOT_STAR_TENT:
se_wave1 = 0x42;
se_wave2 = 0x87;
/* dSv_event_flag_c::F_289 - Castle Town - Heard conversation about entering Star Game 1 */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[289])) {
bgm_id = Z2BGM_MINIGAME_ROOM;
}
@ -1317,6 +1335,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(2, 1)) {
bgm_id = Z2BGM_DUNGEON_FOREST;
bgm_wave1 = 0xa;
/* dSv_event_flag_c::M_022 - Forest Temple - Forest Temple clear (Midna creates warp hole) */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[55])) {
bgm_id = 0x200005b;
} else {
@ -1352,6 +1371,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(3, 0x7c)) {
bgm_id = Z2BGM_DUNGEON_LV2;
bgm_wave1 = 0x13;
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) {
bgm_id = 0x200005b;
} else {
@ -1385,6 +1405,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(4, 0xe)) {
bgm_id = Z2BGM_DUNGEON_LV3;
bgm_wave1 = 0x15;
/* dSv_event_flag_c::M_045 - Lakebed Temple - Lakebed Temple clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[78])) {
bgm_id = 0x200005b;
} else {
@ -1421,6 +1442,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(0xa, 0xa)) {
bgm_id = Z2BGM_DUNGEON_LV4;
bgm_wave1 = 0x1a;
/* dSv_event_flag_c::F_0265 - Arbiter's Grounds - Arbiter's Grounds clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[265])) {
bgm_id = 0x200005b;
} else {
@ -1457,6 +1479,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(8, 0x19)) {
bgm_id = Z2BGM_DUNGEON_LV5;
bgm_wave1 = 0x1d;
/* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266])) {
bgm_id = 0x200005b;
} else {
@ -1490,6 +1513,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(7, 0x18)) {
bgm_id = Z2BGM_DUNGEON_LV6;
bgm_wave1 = 0x26;
/* dSv_event_flag_c::F_0267 - Temple of Time - Temple of Time clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267])) {
bgm_id = 0x200005b;
} else {
@ -1527,6 +1551,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
if (dComIfGs_isStageSwitch(0x16, 0x25)) {
bgm_id = Z2BGM_DUNGEON_LV7;
bgm_wave1 = 0x27;
/* dSv_event_flag_c::F_0268 - City in the Sky - City in the Sky clear */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268])) {
bgm_id = 0x200005b;
} else {
@ -1575,6 +1600,7 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
} else if (dComIfGs_isStageSwitch(0x17, 0x16)) {
bgm_id = Z2BGM_DUNGEON_LV8;
bgm_wave1 = 0x28;
/* dSv_event_flag_c::F_0570 - Palace of Twilight - Cleared Palace of Twilight */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[570])) {
bgm_id = 0x200005b;
JSUList<JAIStream>* stream_list = Z2GetSoundMgr()->getStreamMgr()->getStreamList();
@ -1714,7 +1740,9 @@ void Z2SceneMgr::setSceneName(char* spotName, s32 room, s32 layer) {
break;
}
/*dSv_event_flag_c::M_071 - Cutscene - [cutscene: 20] Zant appears (during Midna's desperate hour) */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104])
/* dSv_event_flag_c::F_0250 - Cutscene - [cutscene: 21] reunion with Zelda / Midna revived (Hyrule Castle barrier appears) */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[250])
&& demo_wave == 0 && spot != SPOT_ELDIN_BRIDGE_BATTLE)
{
@ -1835,11 +1863,11 @@ void Z2SceneMgr::load1stDynamicWave() {
}
}
/* 802B9D98-802B9FC8 2B46D8 0230+00 2/2 0/0 0/0 .text _load1stWaveInner_1__10Z2SceneMgrFv
*/
/* 802B9D98-802B9FC8 2B46D8 0230+00 2/2 0/0 0/0 .text _load1stWaveInner_1__10Z2SceneMgrFv */
void Z2SceneMgr::_load1stWaveInner_1() {
Z2GetSeMgr()->seStopAll(0);
Z2GetEnvSeMgr()->resetSceneInner();
/* dSv_event_flag_c::M_071 - Cutscene - [cutscene: 20] Zant appears (during Midna's desperate hour) */
field_0x18 = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[104]) ? 0x59 : 0x58;
if (loadedSeWave_2 != 0 && requestSeWave_2 != loadedSeWave_2) {

View File

@ -183,6 +183,7 @@ static int daL7lowDr_Create(daL7lowDr_c* i_this) {
/* 805AAEA8-805AAF44 000928 009C+00 1/1 0/0 0/0 .text draw__11daL7lowDr_cFv */
int daL7lowDr_c::draw() {
/* dSv_event_flag_c::F_0510 - City in the Sky - Watched City in the Sky start cutscene */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[510])) {
return 1;
}

View File

@ -11238,7 +11238,16 @@ static void* daAlink_searchKolin(fopAc_ac_c* i_actor, void* i_data) {
/* 800B80C4-800B8374 0B2A04 02B0+00 2/2 0/0 0/0 .text orderZTalk__9daAlink_cFv */
int daAlink_c::orderZTalk() {
if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn() && (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL || dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda() || checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A") && ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0) || fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B") || !cBgW_CheckBGround(mMagneBootsTopVec.y))) || dComIfGs_isEventBit(0x6140)) {
if ((!checkReinRide() && !checkModeFlg(0x40000) && !checkMagneBootsOn()
&& (!mLinkAcch.ChkGroundHit() || checkModeFlg(0x70C52))) || mThrowBoomerangAcKeep.getActor() != NULL
|| dComIfGp_checkPlayerStatus0(0, 0x8000000) || mProcID == PROC_CRAWL_END || checkHorseZelda()
|| checkCloudSea() || checkStageName("D_MN08A") || (checkStageName("D_MN09A")
&& ((fopAcM_GetRoomNo(this) == 50 && dComIfG_play_c::getLayerNo(0) == 0)
|| fopAcM_GetRoomNo(this) == 51)) || (checkMagneBootsOn() && (!checkStageName("D_MN04B")
|| !cBgW_CheckBGround(mMagneBootsTopVec.y)))
/* dSv_event_flag_c::F_0800 - Cutscene - After returning to Ordon Woods, until Midna comes out of the shadows
(If 800 is ON, Midna can't be called) */
|| dComIfGs_isEventBit(0x6140)) {
return 0;
}
@ -11608,7 +11617,11 @@ BOOL daAlink_c::checkItemAction() {
}
}
if (((dComIfGs_isEventBit(0x2908) || checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime() && !checkModeFlg(0x70C52) && checkShieldGet() && !checkNotBattleStage()) && ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) {
/* dSv_event_flag_c::F_0338 - Secret techniques - Obtained 1 secret techinques - Shield attack */
if (((dComIfGs_isEventBit(0x2908)
|| checkNoResetFlg3(FLG3_UNK_8)) && checkGuardActionChange() && !checkUpperReadyThrowAnime()
&& !checkModeFlg(0x70C52) && checkShieldGet() && !checkNotBattleStage())
&& ((mLinkAcch.ChkGroundHit() || checkMagneBootsOn()) && dComIfGp_getRStatus() == 0)) {
setRStatus(0x3A);
if (spActionTrigger()) {
@ -17361,6 +17374,7 @@ int daAlink_c::procCoMetamorphose() {
mProcVar0.field_0x3008 = 1;
if (mProcVar4.field_0x3010 != 0) {
/* dSv_event_flag_c::F_0776 - Palace of Twilight - Link first turned to wolf due to fog in Palace of Twilight */
dComIfGs_onEventBit(0x5E40);
}
}
@ -18673,14 +18687,18 @@ void daAlink_c::setDrawHand() {
bool daAlink_c::checkSwordDraw() {
return ((checkSwordGet() && mSwordChangeWaitTimer == 0) &&
!checkNoResetFlg2(FLG2_UNK_2080000)) &&
(!checkWolf() || !dComIfGs_isEventBit(0x0C08));
(!checkWolf()
/* dSv_event_flag_c::M_068 - Main Event - when OFF, wolf carries sword and shield on back */
|| !dComIfGs_isEventBit(0x0C08));
}
/* 800CB53C-800CB5F8 0C5E7C 00BC+00 3/3 0/0 0/0 .text checkShieldDraw__9daAlink_cFv */
bool daAlink_c::checkShieldDraw() {
return ((checkShieldGet() && mShieldChangeWaitTimer == 0) &&
!checkNoResetFlg2(FLG2_UNK_4080000)) &&
(!checkWolf() || !dComIfGs_isEventBit(0x0C08));
(!checkWolf()
/* dSv_event_flag_c::M_068 - Main Event - when OFF, wolf carries sword and shield on back */
|| !dComIfGs_isEventBit(0x0C08));
}
/* 800CB5F8-800CB694 0C5F38 009C+00 2/2 0/0 0/0 .text checkItemDraw__9daAlink_cFv */
@ -19198,6 +19216,7 @@ int daAlink_c::draw() {
dComIfGd_setListDark();
modelDraw(mpLinkModel, temp_r30);
/* dSv_event_flag_c::M_011 - Inside Hyrule Castle - Midna removes wolf's chains in prison */
if (dComIfGs_isEventBit(0x510)) {
for (int i = 0; i < 4; i++) {
modelDraw(mpWlChainModels[i], temp_r30);

View File

@ -1939,6 +1939,7 @@ void daB_DR_c::executeWeekHit() {
break;
case 1000:
if (cLib_calcTimer<int>(&mTimer[0]) == 0) {
/* City in the Sky - City in the Sky clear */
dComIfGs_onEventBit(dSv_event_flag_c::F_0268);
dComIfGs_onStageBossEnemy(0x16);
fopAcM_onSwitch(this, 0x38);

View File

@ -4240,6 +4240,7 @@ void daB_DS_c::executeBattle2Dead() {
camera->mCamera.SetTrimSize(0);
dComIfGp_event_reset();
dComIfGs_onStageBossEnemy(0x13);
/* dSv_event_flag_c::F_0265 - Arbiter's Grounds - Arbiter's Grounds clear */
dComIfGs_onEventBit(0x2010);
fopAcM_delete(this);
}

View File

@ -358,6 +358,7 @@ int daBg_c::draw() {
field_0x5f0 = 0;
}
/* Main Event - Get shadow crystal (can now transform) */
if (dComIfGs_isEventBit(dSv_event_flag_c::M_077)) {
field_0x5f0 = 9;
}

View File

@ -100,10 +100,12 @@ int daCanoe_c::create() {
fopAcM_SetupActor(this, daCanoe_c);
if (strcmp(dComIfGp_getStartStageName(), "F_SP127") == 0) {
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[463])) {
return cPhs_ERROR_e;
}
/* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[464])) {
fopAcM_SetParam(this, 2);
} else {

View File

@ -86,7 +86,9 @@ int daCstaF_c::CreateHeap() {
/* 804DDB48-804DDBB4 000268 006C+00 2/2 0/0 0/0 .text checkCoverModel__9daCstaF_cFv */
BOOL daCstaF_c::checkCoverModel() {
return !dComIfGs_isEventBit(0x2540) && strcmp(dComIfGp_getStartStageName(), l_spStageName) == 0;
/* dSv_event_flag_c::F_0303 - Kakariko Village - Saw Shad's spell 2 */
return !dComIfGs_isEventBit(0x2540)
&& strcmp(dComIfGp_getStartStageName(), l_spStageName) == 0;
}
/* 804DF9A0-804DF9E4 000000 0044+00 1/1 0/0 0/0 .data l_cylSrc */
@ -508,7 +510,9 @@ int daCstaF_c::Execute(f32 (**param_0)[3][4]) {
fopAcM_seStartCurrentLevel(this, Z2SE_CSTATUE_SEAL_VANISH, 0);
}
if (hide_cover || dComIfGs_isEventBit(0x2540)) {
if (hide_cover
/* dSv_event_flag_c::F_0303 - Kakariko Village - Saw Shad's spell 2 */
|| dComIfGs_isEventBit(0x2540)) {
mp_coverModel = NULL;
m_coverVanishFlg = FALSE;
}

View File

@ -1122,6 +1122,7 @@ int daCstatue_c::execute() {
!fopAcM_CheckCondition(this, 4))
{
if (!fopAcM_lc_c::lineCheck(&eyePos, &link->eyePos, this)) {
/* dSv_event_flag_c::F_0684 - Temple of Time - Look at R00 statue using sense */
dComIfGs_onEventBit(0x5440);
}
}

View File

@ -1729,7 +1729,8 @@ static void demo_camera(e_fm_class* i_this) {
if (i_this->mDemoCamTimer == VREG_S(3) + 110) {
i_this->mDemoCamMode = 100;
dComIfGs_onStageBossEnemy();
dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[64]);
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[64]);
}
break;
}
@ -1810,10 +1811,12 @@ static s8 e_fm_down(e_fm_class* i_this) {
i_this->mMode = 2;
i_this->mTimers[0] = 33;
i_this->mTimers[1] = l_HIO.field_0x9c;
/* dSv_event_flag_c::F_0256 - For E3 2006 - Knocked down boss at leased once */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[256]);
}
break;
case 2:
/* dSv_event_flag_c::F_0257 - For E3 2006 - Only ON when boss is in hollow state (normally off, changes in real time) */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[257]);
if (i_this->mAnm == BCK_FM_DOWNDAMAGE && i_this->mpFmModelMorf->isStop()) {
@ -2142,9 +2145,11 @@ static void damage_check(e_fm_class* i_this) {
}
i_this->mSound.startCreatureVoice(Z2SE_EN_FM_V_DAMAGE, -1);
/* dSv_event_flag_c::F_0670 - Goron Mines - Hitting knocked-down Fyrus */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[670]);
} else {
i_this->field_0x804++;
/* dSv_event_flag_c::F_0254 - For E3 2006 - Hit boss's weak spot at least once */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[254]);
if (i_this->field_0x804 >= 10) {
@ -2508,6 +2513,7 @@ static void chain_control3(e_fm_class* i_this, chain_s* i_chain_s, int param_2)
}
i_chain_s->field_0x617e = 0;
/* dSv_event_flag_c::F_0669 - Goron Mines - Pulled on Fyrus chains at least once */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[669]);
}
}
@ -2579,8 +2585,10 @@ static void action(e_fm_class* i_this) {
i_this->field_0x1b07c = 1;
dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[255]);
dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[257]);
/* dSv_event_flag_c::F_0255 - For E3 2006 - Boss exhausted (grabbing chains) only on during state (normally off) */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[255]);
/* dSv_event_flag_c::F_0257 - For E3 2006 - Only ON when boss is in hollow state (normally off, changes in real time) */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[257]);
switch (i_this->mAction) {
case ACTION_NORMAL:
@ -2601,7 +2609,8 @@ static void action(e_fm_class* i_this) {
break;
case ACTION_DAMAGE_RUN:
e_fm_damage_run(i_this);
dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[255]);
/* dSv_event_flag_c::F_0255 - For E3 2006 - Boss exhausted (grabbing chains) only on during state (normally off) */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[255]);
break;
case ACTION_ANIMAL:
e_fm_animal(i_this);
@ -3460,7 +3469,8 @@ static int useHeapInit(fopAc_ac_c* i_this) {
J3DModelData* modelData;
e_fm_class* a_this = (e_fm_class*)i_this;
a_this->mpFmModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_FM), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_fm", BCK_FM_WAIT01), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
a_this->mpFmModelMorf = new mDoExt_McaMorf(static_cast<J3DModelData*>(dComIfG_getObjectRes("E_fm", BMDR_FM)), NULL, NULL,
static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("E_fm", BCK_FM_WAIT01)), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
if (a_this->mpFmModelMorf == NULL || a_this->mpFmModelMorf->getModel() == NULL) {
return 0;
}
@ -3491,7 +3501,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
BRK_FM, BRK_FM_ATTACK, BRK_FM_PUTOUT, BRK_FM_PUTOUTWAIT, BRK_FM_ANIMAL02,
BRK_FM_OPDEMO, BRK_FM_HANGWAIT, BRK_FM_DEMOEND01, BRK_FM_DEMOEND02
};
if (!a_this->mpFmBrk[i]->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", brk[i]), 1, anm_mode, 1.0f, 0, -1)) {
if (!a_this->mpFmBrk[i]->init(a_this->mpFmModelMorf->getModel()->getModelData(), static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes("E_fm", brk[i])), 1, anm_mode, 1.0f, 0, -1)) {
return 0;
}
@ -3504,12 +3514,13 @@ static int useHeapInit(fopAc_ac_c* i_this) {
BTK_FM, BTK_FM_ATTACK, BTK_FM_PUTOUT, BTK_FM_PUTOUTWAIT, BTK_FM_ANIMAL02,
BTK_FM_OPDEMO, BTK_FM_HANGWAIT, BTK_FM_DEMOEND01, BTK_FM_DEMOEND02
};
if (!a_this->mpFmBtk[i]->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", btk[i]), 1, anm_mode, 1.0f, 0, -1)) {
if (!a_this->mpFmBtk[i]->init(a_this->mpFmModelMorf->getModel()->getModelData(), static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes("E_fm", btk[i])), 1, anm_mode, 1.0f, 0, -1)) {
return 0;
}
}
a_this->mpDemoFmModelMorf = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_FM), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_fm", BCK_FM_DEMOEND03), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
a_this->mpDemoFmModelMorf = new mDoExt_McaMorf(static_cast<J3DModelData*>(dComIfG_getObjectRes("E_fm", BMDR_FM)), NULL, NULL,
static_cast<J3DAnmTransform*>(dComIfG_getObjectRes("E_fm", BCK_FM_DEMOEND03)), 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
if (a_this->mpDemoFmModelMorf == NULL || a_this->mpDemoFmModelMorf->getModel() == NULL) {
return 0;
}
@ -3519,11 +3530,11 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpDemoFmBrk->init(a_this->mpFmModelMorf->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", BRK_FM_DEMOEND03), 1, 0, 1.0f, 0, -1)) {
if (!a_this->mpDemoFmBrk->init(a_this->mpFmModelMorf->getModel()->getModelData(), static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes("E_fm", BRK_FM_DEMOEND03)), 1, 0, 1.0f, 0, -1)) {
return 0;
}
modelData = (J3DModelData*)dComIfG_getObjectRes("E_fm", BMDE_FM_CORE);
modelData = static_cast<J3DModelData*>(dComIfG_getObjectRes("E_fm", BMDE_FM_CORE));
JUT_ASSERT(7257, modelData != 0);
a_this->mpCoreModel = mDoExt_J3DModel__create(modelData, 0, 0x11020203);
if (a_this->mpCoreModel == NULL) {
@ -3535,7 +3546,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpCoreBrk->init(a_this->mpCoreModel->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", BRK_CORE_LIGHTON), 1, 2, 1.0f, 0, -1)) {
if (!a_this->mpCoreBrk->init(a_this->mpCoreModel->getModelData(), static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes("E_fm", BRK_CORE_LIGHTON)), 1, 2, 1.0f, 0, -1)) {
return 0;
}
@ -3544,7 +3555,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpCoreBtk->init(a_this->mpCoreModel->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", BTK_CORE_BEAT), 1, 0, 1.0f, 0, -1)) {
if (!a_this->mpCoreBtk->init(a_this->mpCoreModel->getModelData(), static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes("E_fm", BTK_CORE_BEAT)), 1, 0, 1.0f, 0, -1)) {
return 0;
}
@ -3552,7 +3563,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
for (int i = 0; i < 2; i++) {
static int eff_bmd[] = {BMDR_EF_FMATTACK_A, BMDR_EF_FMATTACK_B};
a_this->mpAttackEfModelMorf[i] = new mDoExt_McaMorf((J3DModelData*)dComIfG_getObjectRes("E_fm", eff_bmd[i]), NULL, NULL, NULL, 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
a_this->mpAttackEfModelMorf[i] = new mDoExt_McaMorf(static_cast<J3DModelData*>(dComIfG_getObjectRes("E_fm", eff_bmd[i])), NULL, NULL, NULL, 0, 1.0f, 0, -1, 1, NULL, 0x80000, 0x11000284);
if (a_this->mpAttackEfModelMorf[i] == NULL || a_this->mpAttackEfModelMorf[i]->getModel() == NULL) {
return 0;
}
@ -3563,7 +3574,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
return 0;
}
if (!a_this->mpAttackEfBrk->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), (J3DAnmTevRegKey*)dComIfG_getObjectRes("E_fm", BRK_EF_FMATTACK_B), 1, 2, 1.0f, 0, -1)) {
if (!a_this->mpAttackEfBrk->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), static_cast<J3DAnmTevRegKey*>(dComIfG_getObjectRes("E_fm", BRK_EF_FMATTACK_B)), 1, 2, 1.0f, 0, -1)) {
return 0;
}
}
@ -3574,7 +3585,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
}
static int eff_btk[] = {BTK_EF_FMATTACK_A, BTK_EF_FMATTACK_B};
if (!a_this->mpAttackEfBtk[i]->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), (J3DAnmTextureSRTKey*)dComIfG_getObjectRes("E_fm", eff_btk[i]), 1, 2, 1.0f, 0, -1)) {
if (!a_this->mpAttackEfBtk[i]->init(a_this->mpAttackEfModelMorf[i]->getModel()->getModelData(), static_cast<J3DAnmTextureSRTKey*>(dComIfG_getObjectRes("E_fm", eff_btk[i])), 1, 2, 1.0f, 0, -1)) {
return 0;
}
}
@ -3582,7 +3593,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
modelData = (J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_KUSARI);
JUT_ASSERT(7404, modelData != 0);
J3DModelData* modelData2 = (J3DModelData*)dComIfG_getObjectRes("E_fm", BMDR_HANDLE);
J3DModelData* modelData2 = static_cast<J3DModelData*>(dComIfG_getObjectRes("E_fm", BMDR_HANDLE));
JUT_ASSERT(7408, modelData2 != 0);
for (int i = 0; i < 4; i++) {
@ -3824,9 +3835,13 @@ static int daE_FM_Create(fopAc_ac_c* i_this) {
a_this->field_0x794 = 1.0f;
a_this->field_0x778 = 1.0f;
/* dSv_event_flag_c::F_0254 - For E3 2006 - Hit boss's weak spot at least once */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[254]);
/* dSv_event_flag_c::F_0256 - For E3 2006 - Knocked down boss at leased once */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[256]);
/* dSv_event_flag_c::F_0669 - Goron Mines - Pulled on Fyrus chains at least once */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[669]);
/* dSv_event_flag_c::F_0670 - Goron Mines - Hitting knocked-down Fyrus */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[670]);
demo_stop = 0;

View File

@ -738,6 +738,7 @@ static cPhs__Step daE_Fs_Create(fopAc_ac_c* i_this) {
_this->field_0x5b5 = (fopAcM_GetParam(_this) >> 8) & 0xff;
_this->field_0x5b7 = (fopAcM_GetParam(_this) >> 0x18) & 0xff;
/* dSv_event_flag_c::F_0522 - Faron Woods - Heard about Sacred Grove from saved monkey girl */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[522])
&& !strcmp("F_SP108", dComIfGp_getStartStageName()))
{

View File

@ -14,6 +14,90 @@
#include "c/c_damagereaction.h"
#include "Z2AudioLib/Z2Instances.h"
enum E_gob_RES_file_ID {
/* BCK */
/* 0x04 */ BCK_MG_ATTACK_A_A = 0x4,
/* 0x05 */ BCK_MG_ATTACK_A_B,
/* 0x06 */ BCK_MG_ATTACK_A_C,
/* 0x07 */ BCK_MG_ATTACK_B_A,
/* 0x08 */ BCK_MG_ATTACK_B_B,
/* 0x09 */ BCK_MG_ATTACK_B_C,
/* 0x0A */ BCK_MG_BALL,
/* 0x0B */ BCK_MG_CUR,
/* 0x0C */ BCK_MG_DAMAGE_L,
/* 0x0D */ BCK_MG_DAMAGE_R,
/* 0x0E */ BCK_MG_DEFENSE_A,
/* 0x0F */ BCK_MG_DEFENSE_B,
/* 0x10 */ BCK_MG_DEFENSE_C,
/* 0x11 */ BCK_MG_DE_GETUP,
/* 0x12 */ BCK_MG_DE_GETUPWAIT,
/* 0x13 */ BCK_MG_DE_JUMP_A,
/* 0x14 */ BCK_MG_DE_JUMP_B,
/* 0x15 */ BCK_MG_DE_LANDING,
/* 0x16 */ BCK_MG_DE_SITWAIT,
/* 0x17 */ BCK_MG_DE_STANDUP_ED,
/* 0x18 */ BCK_MG_DE_STANDUP_ST,
/* 0x19 */ BCK_MG_DE_TALK_ST,
/* 0x1A */ BCK_MG_EXCITE,
/* 0x1B */ BCK_MG_FIRE,
/* 0x1C */ BCK_MG_HOLD,
/* 0x1D */ BCK_MG_LANDING,
/* 0x1E */ BCK_MG_N_STEP,
/* 0x1F */ BCK_MG_N_TALK,
/* 0x20 */ BCK_MG_N_WAIT,
/* 0x21 */ BCK_MG_SHIELD,
/* 0x22 */ BCK_MG_STAND,
/* 0x23 */ BCK_MG_ST_WAIT,
/* 0x24 */ BCK_MG_ST_WALK,
/* 0x25 */ BCK_MG_WAIT,
/* 0x26 */ BCK_MG_WALK,
/* BMDR */
/* 0x29 */ BMDR_MG = 0x29,
/* 0x2A */ BMDR_MG_MET,
};
enum Joint {
/* 0x00 */ JNT_WORLD_ROOT,
/* 0x01 */ JNT_BACK_BONE1,
/* 0x02 */ JNT_BACK_BONE2,
/* 0x03 */ JNT_BACK_BONE3,
/* 0x04 */ JNT_ARM_L1,
/* 0x05 */ JNT_ARM_L2,
/* 0x06 */ JNT_ARM_L3,
/* 0x07 */ JNT_ARM_L4,
/* 0x08 */ JNT_FINGER_L1,
/* 0x09 */ JNT_FINGER_L2,
/* 0x0A */ JNT_FINGER_L3,
/* 0x0B */ JNT_THUMB_L1,
/* 0x0C */ JNT_THUMB_L2,
/* 0x0D */ JNT_ARM_R1,
/* 0x0E */ JNT_ARM_R2,
/* 0x0F */ JNT_ARM_R3,
/* 0x10 */ JNT_ARM_R4,
/* 0x11 */ JNT_FINGER_R1,
/* 0x12 */ JNT_FINGER_R2,
/* 0x13 */ JNT_FINGER_R3,
/* 0x14 */ JNT_THUMB_R1,
/* 0x15 */ JNT_THUMB_R2,
/* 0x16 */ JNT_BACK_BONE4,
/* 0x17 */ JNT_NECK,
/* 0x18 */ JNT_HEAD,
/* 0x19 */ JNT_JAW,
/* 0x1A */ JNT_LIP,
/* 0x1B */ JNT_BUST,
/* 0x1C */ JNT_BODY_1,
/* 0x1D */ JNT_WAIST,
/* 0x1E */ JNT_LEG_L1,
/* 0x1F */ JNT_LEG_L2,
/* 0x20 */ JNT_LEG_L3,
/* 0x21 */ JNT_LEG_L4,
/* 0x22 */ JNT_LEG_R1,
/* 0x23 */ JNT_LEG_R2,
/* 0x24 */ JNT_LEG_R3,
/* 0x25 */ JNT_LEG_R4,
};
enum daE_GOB_ACTION {
ACTION_S_SET,
ACTION_START,
@ -42,20 +126,20 @@ daE_GOB_HIO_c::daE_GOB_HIO_c() {
}
/* 806D80E0-806D842C 000140 034C+00 1/1 0/0 0/0 .text nodeCallBack__FP8J3DJointi */
static int nodeCallBack(J3DJoint* i_joint, int param_1) {
if (param_1 == 0) {
static int nodeCallBack(J3DJoint* i_joint, int param_2) {
if (param_2 == 0) {
int jnt_no = i_joint->getJntNo();
J3DModel* model = j3dSys.getModel();
e_gob_class* enemy = (e_gob_class*)model->getUserArea();
if (enemy != NULL) {
if (jnt_no == 22 || jnt_no == 23) {
if (jnt_no == JNT_BACK_BONE4 || jnt_no == JNT_NECK) {
MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx);
cMtx_YrotM(*calc_mtx, enemy->mHeadRotY);
cMtx_ZrotM(*calc_mtx, enemy->mHeadRotZ);
model->setAnmMtx(jnt_no, *calc_mtx);
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
} else if (jnt_no == 1 || jnt_no == 2) {
} else if (jnt_no == JNT_BACK_BONE1 || jnt_no == JNT_BACK_BONE2) {
MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx);
cMtx_YrotM(*calc_mtx, enemy->mBodyRotY);
cMtx_ZrotM(*calc_mtx, enemy->mBodyRotZ);
@ -63,7 +147,8 @@ static int nodeCallBack(J3DJoint* i_joint, int param_1) {
MTXCopy(*calc_mtx, J3DSys::mCurrentMtx);
}
if (jnt_no == 1 || jnt_no == 2 || jnt_no == 3 || jnt_no == 4 || jnt_no == 5 || jnt_no == 6 || jnt_no == 13 || jnt_no == 14 || jnt_no == 15) {
if (jnt_no == JNT_BACK_BONE1 || jnt_no == JNT_BACK_BONE2 || jnt_no == JNT_BACK_BONE3 || jnt_no == JNT_ARM_L1
|| jnt_no == JNT_ARM_L2 || jnt_no == JNT_ARM_L3 || jnt_no == JNT_ARM_R1 || jnt_no == JNT_ARM_R2 || jnt_no == JNT_ARM_R3) {
int sp10 = jnt_no & 3;
MTXCopy(model->getAnmMtx(jnt_no), *calc_mtx);
cMtx_YrotM(*calc_mtx, enemy->field_0x6c6[sp10]);
@ -169,7 +254,7 @@ static void damage_check(e_gob_class* i_this) {
}
cXyz sp24;
MTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(0x1C), mDoMtx_stack_c::get());
MTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(JNT_BODY_1), mDoMtx_stack_c::get());
cXyz sp18(50.0f + VREG_F(17), VREG_F(18), VREG_F(19));
mDoMtx_stack_c::multVec(&sp18, &sp24);
dComIfGp_setHitMark(hitmark, actor, &sp24, &actor->shape_angle, NULL, 0);
@ -210,17 +295,18 @@ static void fight(e_gob_class* i_this) {
actor->home.pos.y = actor->current.pos.y;
/* fallthrough */
case 0:
anm_init(i_this, 0x26, 10.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_WALK, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 1;
i_this->mTimers[0] = 20.0f + cM_rndF(20.0f);
actor->home.pos.y = actor->current.pos.y;
break;
case 1:
speed_target = l_HIO.normal_walk_speed;
if (i_this->mPlayerDist > 600.0f) {
if (i_this->mTimers[2] == 0) {
anm_init(i_this, 0x1A, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_EXCITE, 10.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_PROVOKE_A, -1);
i_this->mMode = 5;
}
@ -228,6 +314,7 @@ static void fight(e_gob_class* i_this) {
i_this->mMode = 2;
}
break;
case 2:
i_this->mTimers[2] = 200.0f + cM_rndF(70.0f);
@ -240,11 +327,11 @@ static void fight(e_gob_class* i_this) {
}
if (0.0f != speed_target) {
if (i_this->mAnm != 0x24) {
anm_init(i_this, 0x24, 10.0f, 2, 1.0f);
if (i_this->mAnm != BCK_MG_ST_WALK) {
anm_init(i_this, BCK_MG_ST_WALK, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
} else if (i_this->mAnm != 0x23 && anm_frame == 0) {
anm_init(i_this, 0x23, 10.0f, 2, 1.0f);
} else if (i_this->mAnm != BCK_MG_ST_WAIT && anm_frame == 0) {
anm_init(i_this, BCK_MG_ST_WAIT, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
if (speed_target <= 0.0f) {
@ -264,6 +351,7 @@ static void fight(e_gob_class* i_this) {
i_this->mTimers[0] = 20.0f + cM_rndF(20.0f);
break;
case 5:
if (anm_frame == 102) {
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_PROVOKE_B, -1);
@ -279,22 +367,24 @@ static void fight(e_gob_class* i_this) {
i_this->mTimers[2] = 200.0f + cM_rndF(70.0f);
}
break;
case 10:
speed_target = l_HIO.normal_walk_speed;
angle_target = i_this->field_0x668;
if (i_this->mTimers[0] == 0) {
anm_init(i_this, 0x25, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_WAIT, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 11;
i_this->mTimers[0] = 60.0f + cM_rndF(30.0f);
}
break;
case 11:
angle_target = i_this->field_0x668;
angle_step = 0;
if (i_this->mTimers[0] == 0) {
anm_init(i_this, 0x26, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_WALK, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 10;
i_this->mTimers[0] = 90.0f + cM_rndF(30.0f);
@ -330,24 +420,26 @@ static u8 attack(e_gob_class* i_this) {
switch (i_this->mMode) {
case 0:
if (i_this->field_0xd1f == 0) {
anm_init(i_this, 4, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_ATTACK_A_A, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 1;
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_ATK_A_READY, -1);
} else {
anm_init(i_this, 7, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_ATTACK_B_A, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 11;
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_ATK_B_READY, -1);
}
break;
case 1:
var_r28 = 1;
if (i_this->mpModelMorf->isStop()) {
i_this->mMode = 2;
anm_init(i_this, 5, 1.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_ATTACK_A_B, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mTimers[0] = l_HIO.swing_time_a;
}
break;
case 2:
var_r28 = 1;
if (anm_frame == 1) {
@ -357,7 +449,7 @@ static u8 attack(e_gob_class* i_this) {
i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_GOB_V_ATK_A_WAIT, -1);
if (i_this->mTimers[0] == 0) {
anm_init(i_this, 6, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_ATTACK_A_C, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mSound.startCreatureExtraSound(Z2SE_EN_GOB_ARM_SWING_ATTACK, 0, -1);
dComIfGp_particle_set(0x8422, &actor->current.pos, &actor->shape_angle, &base_sc);
dComIfGp_particle_set(0x8423, &actor->current.pos, &actor->shape_angle, &base_sc);
@ -365,6 +457,7 @@ static u8 attack(e_gob_class* i_this) {
i_this->mMode = 3;
}
break;
case 3:
var_r25 = 0;
i_this->field_0x6a8 = 0x400;
@ -377,28 +470,31 @@ static u8 attack(e_gob_class* i_this) {
var_r26 = 1;
}
break;
case 11:
var_r28 = 1;
if (i_this->mpModelMorf->isStop()) {
i_this->mMode = 12;
anm_init(i_this, 8, 1.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_ATTACK_B_B, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mTimers[0] = l_HIO.swing_time_b;
}
break;
case 12:
var_r28 = 1;
i_this->mSound.startCreatureVoiceLevel(Z2SE_EN_GOB_V_ATK_B_WAIT, -1);
if (i_this->mTimers[0] == 0) {
i_this->mSound.startCreatureExtraSound(Z2SE_EN_GOB_ARM_DOWN_WIND, 0, -1);
anm_init(i_this, 9, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_ATTACK_B_C, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
dComIfGp_particle_set(0x8424, &actor->current.pos, &actor->shape_angle, &base_sc);
dComIfGp_particle_set(0x8425, &actor->current.pos, &actor->shape_angle, &base_sc);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_ATK_B, -1);
i_this->mMode = 13;
}
break;
case 13:
var_r25 = 0;
i_this->field_0x6a8 = 0x400;
@ -449,16 +545,17 @@ static void defence(e_gob_class* i_this) {
switch (i_this->mMode) {
case 0:
if (i_this->mPlayerCutLRC == 0) {
anm_init(i_this, 0xE, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DEFENSE_A, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
} else if (i_this->mPlayerCutLRC == 1) {
anm_init(i_this, 0xF, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DEFENSE_B, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
} else {
anm_init(i_this, 0x10, 3.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DEFENSE_C, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
}
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_GUARD, -1);
i_this->mMode = 1;
break;
case 1:
if (i_this->mpModelMorf->isStop()) {
anm_finished = TRUE;
@ -491,7 +588,7 @@ static u8 ball(e_gob_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0xB, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_CUR, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 1;
i_this->field_0xd1c = 0;
/* fallthrough */
@ -510,7 +607,7 @@ static u8 ball(e_gob_class* i_this) {
speed_step = 2.0f + TREG_F(11);
if (i_this->mpModelMorf->isStop()) {
anm_init(i_this, 0xA, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_BALL, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 2;
i_this->mTimers[0] = 60;
i_this->mTimers[2] = 300.0f + cM_rndF(100.0f);
@ -525,6 +622,7 @@ static u8 ball(e_gob_class* i_this) {
}
}
break;
case 3:
i_this->field_0x6b4 = l_HIO.rotation_speed;
speed_target = l_HIO.roll_speed;
@ -539,19 +637,21 @@ static u8 ball(e_gob_class* i_this) {
i_this->mMode = 4;
}
break;
case 4:
speed_step = 2.0f;
cLib_addCalcAngleS2(&i_this->field_0x6b2, 0, 1, 0x800);
cLib_addCalcAngleS2(&actor->current.angle.y, i_this->mPlayerAngleDist, 2, 0x700);
if (i_this->field_0x6b2 == 0) {
anm_init(i_this, 0x22, 2.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_STAND, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 5;
dComIfGp_particle_set(0x8429, &actor->current.pos, &actor->shape_angle, &base_sc);
dComIfGp_particle_set(0x842A, &actor->current.pos, &actor->shape_angle, &base_sc);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_RECOVER, -1);
}
break;
case 5:
if (anm_frame == 16) {
i_this->mSound.startCreatureSound(Z2SE_EN_GOB_KNUCKLE_GROUND, 0, -1);
@ -630,7 +730,7 @@ static void s_damage(e_gob_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x21, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_SHIELD, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 1;
/* fallthrough */
case 1:
@ -658,6 +758,7 @@ static void damage(e_gob_class* i_this) {
i_this->mAction = ACTION_BALL;
i_this->mMode = 0;
i_this->mDamageInvulnerabilityTimer = 30;
/* dSv_event_flag_c::F_0672 - Goron Mines - First time seeing magnet goron tumbling */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[672]);
}
@ -705,8 +806,9 @@ static u8 glab(e_gob_class* i_this) {
i_this->mMode = 1;
spA = 1;
actor->speedF = 0.0f;
anm_init(i_this, 0x1C, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_HOLD, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
break;
case 1:
if (enemy->checkThrowMode(8)) {
enemy->offThrowMode(8);
@ -725,6 +827,7 @@ static u8 glab(e_gob_class* i_this) {
spA = 1;
actor->speed.y = 0.0f;
break;
case 2:
if (anm_frame == 1) {
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_CATCHED_ANNOY, -1);
@ -754,6 +857,7 @@ static u8 glab(e_gob_class* i_this) {
i_this->speed.y = 0.0f;
}
break;
case 3:
case 4:
if (i_this->field_0x6d8 >= 2) {
@ -791,6 +895,7 @@ static u8 glab(e_gob_class* i_this) {
}
}
break;
case 5: {
actor->speed.y = 0.0f;
cLib_addCalcAngleS2(&i_this->field_0x6b2, 0, 1, 0x800);
@ -827,7 +932,7 @@ static u8 glab(e_gob_class* i_this) {
i_this->mAction = ACTION_END;
i_this->mMode = 0;
} else {
anm_init(i_this, 0x1D, 2.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_LANDING, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_RECOVER, -1);
i_this->mMode = 6;
@ -859,6 +964,7 @@ static u8 glab(e_gob_class* i_this) {
cLib_addCalcAngleS2(&actor->current.angle.y, i_this->mPlayerAngleDist, 1, 0x200);
break;
}
// fallthrough
case 6:
spB = 1;
cLib_addCalcAngleS2(&actor->current.angle.y, i_this->mPlayerAngleDist, 1, 0x200);
@ -920,7 +1026,7 @@ static void jump(e_gob_class* i_this) {
sp8 = 1;
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_MAGMA, -1);
anm_init(i_this, 0x1B, 3.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_FIRE, 3.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 1;
actor->speed.y = 110.0f + KREG_F(2);
i_this->field_0x6b6 = cM_rndFX(2000.0f);
@ -950,6 +1056,7 @@ static void jump(e_gob_class* i_this) {
}
}
break;
case 1:
actor->current.pos.x += i_this->field_0x6b8.x;
actor->current.pos.z += i_this->field_0x6b8.z;
@ -1004,9 +1111,10 @@ static void start(e_gob_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x16, 0.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_DE_SITWAIT, 0.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 1;
break;
case 1:
if (!dComIfGp_checkPlayerStatus0(0, 0x100) && ms != NULL && ms->field_0x5c4[0] != 0) {
i_this->mDemoCamMode = 1;
@ -1014,23 +1122,26 @@ static void start(e_gob_class* i_this) {
i_this->mTimers[0] = 120;
}
break;
case 2:
if (i_this->mTimers[0] == 1) {
anm_init(i_this, 0x18, 10.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DE_STANDUP_ST, 10.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
}
if (i_this->mAnm == 0x18 && i_this->mpModelMorf->isStop()) {
anm_init(i_this, 0x19, 10.0f, 2, 1.0f);
if (i_this->mAnm == BCK_MG_DE_STANDUP_ST && i_this->mpModelMorf->isStop()) {
anm_init(i_this, BCK_MG_DE_TALK_ST, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
break;
case 3:
if (i_this->mAnm == 0x13 && i_this->mpModelMorf->isStop()) {
if (i_this->mAnm == BCK_MG_DE_JUMP_A && i_this->mpModelMorf->isStop()) {
actor->speed.y = 150.0f;
i_this->mMode = 4;
anm_init(i_this, 0x14, 1.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DE_JUMP_B, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_JUMP, -1);
}
break;
case 4:
if (actor->speed.y <= 0.0f) {
actor->current.pos.z = 0.0f;
@ -1039,19 +1150,21 @@ static void start(e_gob_class* i_this) {
i_this->mMode = 5;
dComIfGp_getVibration().StartShock(VIBMODE_S_POWER8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
anm_init(i_this, 0x1D, 0.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_LANDING, 0.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->field_0xd8c = 15.0f + BREG_F(7);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_RECOVER, -1);
}
}
break;
case 5:
if (i_this->mpModelMorf->isStop()) {
anm_init(i_this, 0x23, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_ST_WAIT, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mMode = 6;
}
break;
case 6:
break;
}
@ -1067,30 +1180,35 @@ static void end(e_gob_class* i_this) {
switch (i_this->mMode) {
case 0:
anm_init(i_this, 0x15, 0.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DE_LANDING, 0.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_FALL_LAST, -1);
i_this->mSound.startCreatureSound(Z2SE_EN_GOB_HIP_DOWN, 0, -1);
i_this->mMode = 1;
break;
case 1:
break;
case 2:
anm_init(i_this, 0x11, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DE_GETUP, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mSound.startCreatureVoice(Z2SE_EN_GOB_V_GETUP_LAST, -1);
i_this->mMode = 3;
break;
case 3:
if (i_this->mpModelMorf->isStop()) {
anm_init(i_this, 0x12, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_DE_GETUPWAIT, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
break;
case 4:
anm_init(i_this, 0x17, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DE_STANDUP_ED, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mMode = 5;
break;
case 5:
if (i_this->mpModelMorf->isStop()) {
anm_init(i_this, 0x25, 5.0f, 2, 1.0f);
anm_init(i_this, BCK_MG_WAIT, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
}
}
@ -1113,8 +1231,8 @@ static void message(e_gob_class* i_this) {
i_this->field_0xd90 = 0;
}
if (i_this->mAnm != 0x1F) {
anm_init(i_this, 0x1F, 5.0f, 2, 1.0f);
if (i_this->mAnm != BCK_MG_N_TALK) {
anm_init(i_this, BCK_MG_N_TALK, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
return;
}
@ -1134,16 +1252,16 @@ static void message(e_gob_class* i_this) {
s16 temp_r0 = i_this->current.angle.y - i_this->mPlayerAngleDist;
if (temp_r0 > 0x800 || temp_r0 < -0x800) {
if (i_this->mAnm != 0x1E) {
anm_init(i_this, 0x1E, 5.0f, 2, 1.0f);
if (i_this->mAnm != BCK_MG_N_STEP) {
anm_init(i_this, BCK_MG_N_STEP, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
i_this->mTimers[1] = 15;
}
cLib_addCalcAngleS2(&i_this->current.angle.y, i_this->mPlayerAngleDist, 2, 0x200);
} else if (i_this->mTimers[1] == 0 && i_this->mAnm != 0x20) {
anm_init(i_this, 0x20, 10.0f, 2, 1.0f);
} else if (i_this->mTimers[1] == 0 && i_this->mAnm != BCK_MG_N_WAIT) {
anm_init(i_this, BCK_MG_N_WAIT, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
} else if (i_this->mAnm != 0x20) {
anm_init(i_this, 0x20, 10.0f, 2, 1.0f);
} else if (i_this->mAnm != BCK_MG_N_WAIT) {
anm_init(i_this, BCK_MG_N_WAIT, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f);
}
if (i_this->mTimers[3] != 0 && dComIfGp_event_runCheck()) {
@ -1193,6 +1311,7 @@ static void action(e_gob_class* i_this) {
stop_subbgm = FALSE;
sp28 = 0;
break;
case 1:
start(i_this);
on_attention = FALSE;
@ -1200,31 +1319,38 @@ static void action(e_gob_class* i_this) {
stop_subbgm = FALSE;
sp28 = 0;
break;
case 2:
fight(i_this);
i_this->field_0x6ac = 1;
spD = 1;
break;
case 3:
spB = attack(i_this);
i_this->field_0x6ac = 1;
break;
case 4:
defence(i_this);
i_this->field_0x6ac = 1;
spD = 1;
break;
case 5:
spC = ball(i_this);
spF = 1;
sp2C = 1;
break;
case 6:
s_damage(i_this);
break;
case 7:
damage(i_this);
break;
case 8:
sp10 = glab(i_this);
on_co_bit = FALSE;
@ -1236,6 +1362,7 @@ static void action(e_gob_class* i_this) {
spA = 0;
}
break;
case 9:
jump(i_this);
on_attention = FALSE;
@ -1246,12 +1373,14 @@ static void action(e_gob_class* i_this) {
spA = 0;
sp9 = 0;
break;
case 10:
end(i_this);
on_attention = FALSE;
spA = 0;
sp9 = 0;
break;
case 11:
spA = 0;
sp9 = 0;
@ -1358,7 +1487,8 @@ static void action(e_gob_class* i_this) {
i_this->mAction = ACTION_JUMP;
i_this->mMode = 0;
i_this->field_0x6d6 = 0;
dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[671]);
/* dSv_event_flag_c::F_0671 - Goron Mines - Through magnet goron into lava once */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[671]);
i_this->field_0x6d8++;
OS_REPORT("//////////////E_GOB DOWN CT %d\n", i_this->field_0x6d8);
@ -1409,6 +1539,7 @@ static void action(e_gob_class* i_this) {
} else if (sp1E < -6000) {
sp1E = -6000;
}
if (sp1C > 6000) {
sp1C = 6000;
} else if (sp1C < -6000) {
@ -1527,6 +1658,7 @@ static void demo_camera(e_gob_class* i_this) {
switch (i_this->mDemoCamMode) {
case 0:
break;
case 1:
if (!actor->eventInfo.checkCommandDemoAccrpt()) {
fopAcM_orderPotentialEvent(actor, 2, 0xFFFF, 0);
@ -1547,6 +1679,7 @@ static void demo_camera(e_gob_class* i_this) {
player->changeOriginalDemo();
Z2GetAudioMgr()->subBgmStart(Z2BGM_MAGNE_GORON_D01);
dComIfGp_getEvent().startCheckSkipEdge(i_this);
// fallthrough
case 2:
if (i_this->mDemoCamTimer < 20) {
sp88.set(0.0f, player->current.pos.y, 1100.0f);
@ -1566,6 +1699,7 @@ static void demo_camera(e_gob_class* i_this) {
i_this->mDemoCamCenterSpd.z = fabsf(i_this->mDemoCamCenterTarget.z - i_this->mDemoCamCenter.z);
}
break;
case 3:
cam_3d_morf(i_this, 0.2f);
cLib_addCalc2(&i_this->field_0xd88, 0.1f + VREG_F(1), 1.0f, 0.002f + VREG_F(2));
@ -1580,13 +1714,14 @@ static void demo_camera(e_gob_class* i_this) {
}
if (i_this->mMsgFlow.doFlow(i_this, NULL, 0)) {
anm_init(i_this, 0x13, 5.0f, 0, 1.0f);
anm_init(i_this, BCK_MG_DE_JUMP_A, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f);
i_this->mDemoCamMode = 4;
i_this->mDemoCamTimer = 0;
i_this->mMode = 3;
}
}
break;
case 4:
if (i_this->mDemoCamTimer > 36) {
i_this->mDemoCamMode = 5;
@ -1596,6 +1731,7 @@ static void demo_camera(e_gob_class* i_this) {
Z2GetAudioMgr()->subBgmStart(Z2BGM_MAGNE_GORON_D02);
}
break;
case 5:
if (i_this->mDemoCamTimer == 10) {
player->changeDemoMode(1, 1, 2, 0);
@ -1641,6 +1777,7 @@ static void demo_camera(e_gob_class* i_this) {
i_this->mDemoCamEye.set(-341.0f, 24.0f, 2223.0f);
}
break;
case 6:
if (i_this->mDemoCamTimer == 30) {
dComIfGp_getVibration().StartShock(VIBMODE_S_POWER8, 0x1F, cXyz(0.0f, 1.0f, 0.0f));
@ -1665,6 +1802,7 @@ static void demo_camera(e_gob_class* i_this) {
ms->field_0x584 = 0;
}
break;
case 7:
cam_3d_morf(i_this, 0.2f);
cLib_addCalc2(&i_this->field_0xd88, 0.05f + VREG_F(1), 1.0f, 0.001f + VREG_F(2));
@ -1676,9 +1814,11 @@ static void demo_camera(e_gob_class* i_this) {
Z2GetAudioMgr()->subBgmStart(Z2BGM_MAGNE_GORON);
}
break;
case 10:
player->cancelGoronThrowEvent();
i_this->mDemoCamMode = 11;
// fallthrough
case 11:
if (!actor->eventInfo.checkCommandDemoAccrpt()) {
fopAcM_orderPotentialEvent(actor, 2, 0xFFFF, 0);
@ -1702,6 +1842,7 @@ static void demo_camera(e_gob_class* i_this) {
camera->mCamera.SetTrimSize(3);
sp88.set(0.0f, 500.0f + player->current.pos.y, -400.0f);
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp88, 0, 0);
// fallthrough
case 12:
if (i_this->mDemoCamTimer == 2) {
daPy_getPlayerActorClass()->changeDemoMode(0x17, 1, 2, 0);
@ -1745,6 +1886,7 @@ static void demo_camera(e_gob_class* i_this) {
i_this->mDemoCamTimer = 0;
i_this->mDemoCamEye.set(306.0f, 1187.0f, -372.0f);
i_this->mDemoCamCenter = actor->eyePos;
// fallthrough
case 13:
sp88.set(0.0f, player->current.pos.y, -200.0f);
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp88, 0, 0);
@ -1772,6 +1914,7 @@ static void demo_camera(e_gob_class* i_this) {
i_this->mDemoCamTimer = 0;
}
}
// fallthrough
case 14:
cLib_addCalc2(&i_this->mDemoCamCenter.x, actor->eyePos.x + NREG_F(7), 0.1f, 50.0f);
cLib_addCalc2(&i_this->mDemoCamCenter.y, actor->eyePos.y + NREG_F(8), 0.1f, 50.0f);
@ -1793,6 +1936,7 @@ static void demo_camera(e_gob_class* i_this) {
actor->shape_angle = player->shape_angle;
my->current.pos.y = 1000.0f + (ms->field_0x58c - 700.0f) + YREG_F(1);
dComIfGp_getVibration().StartQuake(VIBMODE_Q_POWER2, 1, cXyz(0.0f, 1.0f, 0.0f));
// fallthrough
case 15:
if (i_this->mDemoCamTimer == 2) {
i_this->mDemoCamFovy = 60.0f;
@ -1827,6 +1971,7 @@ static void demo_camera(e_gob_class* i_this) {
fopAcM_onSwitch(actor, 14);
}
break;
case 100:
camera->mCamera.Reset(i_this->mDemoCamCenter, i_this->mDemoCamEye, i_this->mDemoCamFovy, 0);
camera->mCamera.Start();
@ -1834,6 +1979,7 @@ static void demo_camera(e_gob_class* i_this) {
dComIfGp_event_reset();
daPy_getPlayerActorClass()->cancelOriginalDemo();
i_this->mDemoCamMode = 0;
break;
}
if (i_this->mDemoCamMode != 0) {
@ -1915,30 +2061,30 @@ static int daE_GOB_Execute(e_gob_class* i_this) {
i_this->mpModelMorf->play(0, dComIfGp_getReverb(fopAcM_GetRoomNo(i_this)));
if (i_this->mAnm == 0x1B) {
if (i_this->mAnm == BCK_MG_FIRE) {
i_this->field_0xd30 = dComIfGp_particle_set(i_this->field_0xd30, 0x8459, &i_this->current.pos, &i_this->shape_angle, &base_sc);
i_this->field_0xd34 = dComIfGp_particle_set(i_this->field_0xd34, 0x845A, &i_this->current.pos, &i_this->shape_angle, &base_sc);
dComIfGp_particle_levelEmitterOnEventMove(i_this->field_0xd30);
dComIfGp_particle_levelEmitterOnEventMove(i_this->field_0xd34);
}
if (i_this->mAnm == 0x26) {
if (i_this->mAnm == BCK_MG_WALK) {
if (i_this->mpModelMorf->checkFrame(21.0f) || i_this->mpModelMorf->checkFrame(44.0f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_WALK, 0, -1);
}
} else if (i_this->mAnm == 0x22) {
} else if (i_this->mAnm == BCK_MG_STAND) {
if (i_this->mpModelMorf->checkFrame(27.0f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_WALK, 0, -1);
}
} else if (i_this->mAnm == 4) {
} else if (i_this->mAnm == BCK_MG_ATTACK_A_A) {
if (i_this->mpModelMorf->checkFrame(9.0f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_WALK, 0, -1);
}
} else if (i_this->mAnm == 0x13) {
} else if (i_this->mAnm == BCK_MG_DE_JUMP_A) {
if (i_this->mpModelMorf->checkFrame(18.0f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_WALK, 0, -1);
}
} else if (i_this->mAnm == 0x11) {
} else if (i_this->mAnm == BCK_MG_DE_GETUP) {
if (i_this->mpModelMorf->checkFrame(32.5f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_WALK, 0, -1);
}
@ -1946,30 +2092,30 @@ static int daE_GOB_Execute(e_gob_class* i_this) {
if (i_this->mpModelMorf->checkFrame(10.0f) || i_this->mpModelMorf->checkFrame(24.0f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_STEP, 0, -1);
}
} else if (i_this->mAnm == 0x24) {
} else if (i_this->mAnm == BCK_MG_ST_WALK) {
if (i_this->mpModelMorf->checkFrame(7.5f) || i_this->mpModelMorf->checkFrame(15.0f) || i_this->mpModelMorf->checkFrame(22.5f) || i_this->mpModelMorf->checkFrame(29.5f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_STEP, 0, -1);
}
} else if (i_this->mAnm == 0x18 || i_this->mAnm == 0x17) {
} else if (i_this->mAnm == BCK_MG_DE_STANDUP_ST || i_this->mAnm == BCK_MG_DE_STANDUP_ED) {
if (i_this->mpModelMorf->checkFrame(24.5f) || i_this->mpModelMorf->checkFrame(41.0f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_STEP, 0, -1);
}
} else if (i_this->mAnm == 0x1D) {
} else if (i_this->mAnm == BCK_MG_LANDING) {
if (i_this->mpModelMorf->checkFrame(2.5f)) {
i_this->mSound.startCreatureSound(Z2SE_FN_GOB_JUMP, 0, -1);
}
} else if (i_this->mAnm == 0x19) {
} else if (i_this->mAnm == BCK_MG_DE_TALK_ST) {
if (i_this->mpModelMorf->checkFrame(16.0f)) {
i_this->mSound.startCreatureSound(Z2SE_EN_GOB_KNUCKLES_FRICTION, 0, -1);
}
} else if (i_this->mAnm == 0x1A && i_this->mpModelMorf->checkFrame(60.0f)) {
} else if (i_this->mAnm == BCK_MG_EXCITE && i_this->mpModelMorf->checkFrame(60.0f)) {
i_this->mSound.startCreatureSound(Z2SE_EN_GOB_KNUCKLES_FRICTION, 0, -1);
}
i_this->mpModelMorf->modelCalc();
if (i_this->field_0x6da == 0) {
MTXCopy(sp34->getAnmMtx(0x17), mDoMtx_stack_c::get());
MTXCopy(sp34->getAnmMtx(JNT_NECK), mDoMtx_stack_c::get());
mDoMtx_stack_c::multVecZero(&i_this->field_0x6dc);
} else {
i_this->field_0x6dc += i_this->field_0x6e8;
@ -2017,14 +2163,14 @@ static int daE_GOB_Execute(e_gob_class* i_this) {
i_this->attention_info.position = i_this->eyePos;
i_this->attention_info.position.y += 170.0f + JREG_F(2);
} else {
MTXCopy(sp34->getAnmMtx(0x18), *calc_mtx);
MTXCopy(sp34->getAnmMtx(JNT_HEAD), *calc_mtx);
sp48.set(0.0f, 0.0f, 0.0f);
MtxPosition(&sp48, &i_this->eyePos);
i_this->attention_info.position = i_this->eyePos;
i_this->attention_info.position.y += 120.0f + JREG_F(0);
}
MTXCopy(sp34->getAnmMtx(1), *calc_mtx);
MTXCopy(sp34->getAnmMtx(JNT_BACK_BONE1), *calc_mtx);
sp48.set(50.0f + JREG_F(1), JREG_F(2), JREG_F(3));
MtxPosition(&sp48, &sp3C);
if (i_this->mDamageInvulnerabilityTimer != 0) {
@ -2043,7 +2189,7 @@ static int daE_GOB_Execute(e_gob_class* i_this) {
i_this->mCcSph.SetTgHitMark((CcG_Tg_HitMark)0);
}
MTXCopy(sp34->getAnmMtx(0x10), *calc_mtx);
MTXCopy(sp34->getAnmMtx(JNT_ARM_R4), *calc_mtx);
sp48.set(0.0f, 0.0f, 0.0f);
MtxPosition(&sp48, &i_this->field_0xd24);
@ -2057,7 +2203,7 @@ static int daE_GOB_Execute(e_gob_class* i_this) {
}
i_this->mAtSph.SetR((100.0f + TREG_F(8)) * l_HIO.size);
} else {
MTXCopy(sp34->getAnmMtx(1), *calc_mtx);
MTXCopy(sp34->getAnmMtx(JNT_BACK_BONE1), *calc_mtx);
sp48.set(70.0f + NREG_F(1), 50.0f + NREG_F(2), NREG_F(3));
MtxPosition(&sp48, &sp3C);
i_this->mAtSph.SetC(sp3C);
@ -2111,7 +2257,7 @@ static int daE_GOB_Delete(e_gob_class* i_this) {
static int useHeapInit(fopAc_ac_c* i_this) {
e_gob_class* a_this = (e_gob_class*)i_this;
a_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("E_gob", 0x29), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_gob", 0x25), 2, 1.0f, 0, -1, &a_this->mSound, 0x80000, 0x11000084);
a_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes("E_gob", BMDR_MG), NULL, NULL, (J3DAnmTransform*)dComIfG_getObjectRes("E_gob", BCK_MG_WAIT), 2, 1.0f, 0, -1, &a_this->mSound, 0x80000, 0x11000084);
if (a_this->mpModelMorf == NULL || a_this->mpModelMorf->getModel() == NULL) {
return 0;
}
@ -2123,7 +2269,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
model->getModelData()->getJointNodePointer(i)->setCallBack(nodeCallBack);
}
void* modelData = dComIfG_getObjectRes("E_gob", 0x2A);
void* modelData = dComIfG_getObjectRes("E_gob", BMDR_MG_MET);
JUT_ASSERT(3631, modelData != 0);
a_this->mpArmorModel = mDoExt_J3DModel__create((J3DModelData*)modelData, 0x80000, 0x11000084);
if (a_this->mpArmorModel == NULL) {
@ -2250,7 +2396,9 @@ static int daE_GOB_Create(fopAc_ac_c* i_this) {
}
dComIfGs_onZoneSwitch(5, -1);
/* dSv_event_flag_c::F_0671 - Goron Mines - Through magnet goron into lava once */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[671]);
/* dSv_event_flag_c::F_0672 - Goron Mines - First time seeing magnet goron tumbling */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[672]);
daE_GOB_Execute(a_this);
}

View File

@ -309,6 +309,7 @@ static void e_nest_normal(e_nest_class* i_this) {
i_this->mHitActorID = fopAcM_GetID(daPy_getPlayerActorClass());
if (!strcmp(dComIfGp_getStartStageName(), "F_SP103")) {
i_this->mDemoStage = 1;
/* dSv_event_flag_c::F_0084 - Ordon Village - Opening days 2&3: knocked down a beehive with slingshot */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[183]);
}
}
@ -318,12 +319,14 @@ static void e_nest_normal(e_nest_class* i_this) {
|| i_this->mAtInfo.mHitType == HIT_TYPE_BOOMERANG
|| i_this->mAtInfo.mHitType == HIT_TYPE_STUN) {
i_this->mHitActorID = fopAcM_GetID(daPy_getPlayerActorClass());
/* dSv_event_flag_c::F_0073 - Ordon Village - Attacked after charging at large beehive */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[172]);
} else if (fopAcM_GetName(actor) == PROC_NPC_TK) {
daNPC_TK_c* hawk = static_cast<daNPC_TK_c*>(actor);
hawk->setBump();
i_this->mHitActorID = fopAcM_GetID(hawk);
i_this->mKnockDown = 1;
/* dSv_event_flag_c::F_0072 - Ordon Village - Knocked down large beehive with hawk */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[171]);
i_this->mHitTimer = 20;
i_this->mHawkHit = true;

View File

@ -1131,6 +1131,7 @@ static void e_po_dead(e_po_class* i_this) {
dComIfGp_event_reset();
dComIfGs_addPohSpiritNum();
if (g_dComIfG_gameInfo.info.getPlayer().getCollect().getPohNum() == 0x14) {
/* dSv_event_flag_c::F_0457 - Castle Town - Revived cat */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[457]);
}
daPy_getPlayerActorClass()->cancelOriginalDemo();

View File

@ -4225,6 +4225,7 @@ static void damage_check(e_rd_class* i_this) {
bullbo->field_0x79e++;
if (bullbo->field_0x79e == 1) {
a_this->health = 0;
/* dSv_event_flag_c::M_055 - Main Event - Did damage at least once during joust/one-on-one battle */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x58]);
part_break(i_this);
bullbo->field_0x169e = 20;

View File

@ -348,7 +348,9 @@ static int nodeCallBack_bow(J3DJoint* i_joint, int param_1) {
/* 8076C54C-8076C9D0 00086C 0484+00 1/0 0/0 0/0 .text daE_RDY_Draw__FP11e_rdy_class */
static int daE_RDY_Draw(e_rdy_class* i_this) {
fopAc_ac_c* a_this = &i_this->actor;
if (i_this->field_0x5b8 == 12 && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[239])) {
if (i_this->field_0x5b8 == 12
/* dSv_event_flag_c::T_0239 - Lake Hylia - Spoke with Fyer (start dark carge) */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[239])) {
return 1;
}
@ -4911,6 +4913,8 @@ static cPhs__Step daE_RDY_Create(fopAc_ac_c* i_this) {
} else if (_this->field_0x5b8 == 11) {
_this->mAction = ACT_BOW_IKKI2;
} else if (_this->field_0x5b8 == 12) {
/* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete
(Horse grass appears in various places) */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[84])) {
return cPhs_ERROR_e;
}

View File

@ -2272,8 +2272,9 @@ static int daE_S1_Create(fopAc_ac_c* i_this) {
a_this->field_0x6aa = 30;
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[83]) &&
strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0 && a_this->mPrm1 == 0xFE)
/* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[83])
&& strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0 && a_this->mPrm1 == 0xFE)
{
i_this->current.pos.y += 50000.0f;
i_this->current.pos.x += 50000.0f;

View File

@ -216,8 +216,9 @@ static void action(e_warpappear_class* i_this) {
fpcM_Search(s_s1entry_sub, i_this);
}
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x40]) &&
dComIfGs_isSwitch(18, fopAcM_GetRoomNo(a_this)))
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x40])
&& dComIfGs_isSwitch(18, fopAcM_GetRoomNo(a_this)))
{
i_this->field_0x596 = 1;
i_this->field_0x59e = 20;
@ -510,6 +511,7 @@ static void demo_camera(e_warpappear_class* i_this) {
daPy_getPlayerActorClass()->cancelOriginalDemo();
fopAcM_delete(i_this);
fpcM_Search(s_s1fight_sub, i_this);
/* dSv_event_flag_c::F_0053 - Faron Woods - Saw night stalker appearance cutscene */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[151]);
}
break;
@ -881,6 +883,7 @@ static int daE_Warpappear_Create(fopAc_ac_c* actor) {
i_this->field_0x570 = fopAcM_GetParam(i_this);
if (i_this->field_0x570 != 53) {
if (i_this->field_0x570 == 0xff) {
/* dSv_event_flag_c::F_0053 - Faron Woods - Saw night stalker appearance cutscene */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x97])) {
return cPhs_ERROR_e;
}

View File

@ -2290,6 +2290,7 @@ void daE_YMB_c::executeLakeDemo() {
field_0x82c[1].OffTgSetBit();
field_0xa9c.OffTgSetBit();
/* dSv_event_flag_c::F_0005 - Misc. - Gathered 14 Tears of Light in area 4 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[9])) {
return;
}
@ -2345,6 +2346,7 @@ void daE_YMB_c::executeLakeDemo() {
field_0x6e4 = 0x7FFF;
field_0x710 = 0;
dComIfGs_onSaveSwitch(15);
/* dSv_event_flag_c::M_086 - Twilight Hyrule Field - Show Boss Bug's Tear of Light on the map */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x77]);
break;

View File

@ -1529,16 +1529,26 @@ void daE_ZH_c::executeCatchFlyMove() {
dComIfGs_offOneZoneSwitch(5, fopAcM_GetRoomNo(this));
if (bitSw == 16) {
/* dSv_event_flag_c::F_0311 - Palace of Twilight - Palace of Twilight use 1 */
dComIfGs_offEventBit(0x2640);
/* dSv_event_flag_c::F_0313 - Palace of Twilight - Palace of Twilight use 3 */
dComIfGs_offEventBit(0x2610);
/* dSv_event_flag_c::F_0315 - Palace of Twilight - Palace of Twilight use 5 */
dComIfGs_offEventBit(0x2604);
/* dSv_event_flag_c::F_0317 - Palace of Twilight - Palace of Twilight use 7 */
dComIfGs_offEventBit(0x2601);
/* dSv_event_flag_c::F_0319 - Palace of Twilight - Palace of Twilight use 9 */
dComIfGs_offEventBit(0x2740);
} else {
/* dSv_event_flag_c::F_0312 - Palace of Twilight - Palace of Twilight use 2 */
dComIfGs_offEventBit(0x2620);
/* dSv_event_flag_c::F_0314 - Palace of Twilight - Palace of Twilight use 4 */
dComIfGs_offEventBit(0x2608);
/* dSv_event_flag_c::F_0316 - Palace of Twilight - Palace of Twilight use 6 */
dComIfGs_offEventBit(0x2602);
/* dSv_event_flag_c::F_0318 - Palace of Twilight - Palace of Twilight use 8 */
dComIfGs_offEventBit(0x2780);
/* dSv_event_flag_c::F_0320 - Palace of Twilight - Palace of Twilight use 10 */
dComIfGs_offEventBit(0x2720);
}

View File

@ -593,9 +593,15 @@ int daHorse_c::create() {
}
if (!checkStateFlg0(FLG0_UNK_8000) &&
(((dComIfGs_isEventBit(dSv_event_flag_c::M_008) && !dComIfGs_isEventBit(dSv_event_flag_c::M_023)) &&
(!daAlink_c::checkStageName("F_SP109") || !dComIfGs_isEventBit(dSv_event_flag_c::F_0066))) ||
dComIfGs_isTmpBit(dSv_event_tmp_flag_c::NO_TELOP)))
/* Cutscene - Cutscene - attacked by monsters at Ordon spring */
(((dComIfGs_isEventBit(dSv_event_flag_c::M_008)
/* Main Event - Epona rescued flag */
&& !dComIfGs_isEventBit(dSv_event_flag_c::M_023))
&& (!daAlink_c::checkStageName("F_SP109")
/* Death Mountain - First saw Goron cutscene on mountain path */
|| !dComIfGs_isEventBit(dSv_event_flag_c::F_0066)))
/* General use - When on (while changing scenes) stage name is not shown */
|| dComIfGs_isTmpBit(dSv_event_tmp_flag_c::NO_TELOP)))
{
return cPhs_ERROR_e;
}
@ -626,7 +632,11 @@ int daHorse_c::create() {
m_offRideFlg = &daHorse_c::offRideFlgSubstance;
if (!daAlink_getAlinkActorClass()->checkHorseStart() && !checkStateFlg0(FLG0_UNK_8000)) {
if (strcmp(dComIfGs_getHorseRestartStageName(), "") != 0 && (!dComIfGs_isEventBit(0x1580) || dComIfGs_isEventBit(0x601))) {
if (strcmp(dComIfGs_getHorseRestartStageName(), "") != 0
/* dSv_event_flag_c::M_002 - Cutscene - [cutscene: 2] Met with Ilia (brings horse to spring) */
&& (!dComIfGs_isEventBit(0x1580)
/* dSv_event_flag_c::M_023 - Main Event - Epona rescued flag */
|| dComIfGs_isEventBit(0x601))) {
if (daAlink_c::checkStageName(dComIfGs_getHorseRestartStageName()) && (room_no == -1 || fopAcM_GetRoomNo(this) == dComIfGs_getHorseRestartRoomNo())) {
current.pos = dComIfGs_getHorseRestartPos();
old.pos = current.pos;

View File

@ -503,6 +503,7 @@ void daKago_c::demo_skip(int param_0) {
setMidnaRideOn();
setPlayerRideOn();
field_0x718 = field_0x71a = 0;
/* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete (Horse grass appears in various places) */
dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[84]);
field_0x748 = 7;
field_0x74c = NULL;

View File

@ -795,15 +795,13 @@ static void daKytag06_type_08_Execute(kytag06_class* i_this) {
daKytag06_lv7_boss_wether_proc(i_this, env_light->field_0x12cc);
}
/* 80858D00-80858D2C 001580 002C+00 1/1 0/0 0/0 .text daKytag06_type_09_Execute__FP13kytag06_class
*/
/* 80858D00-80858D2C 001580 002C+00 1/1 0/0 0/0 .text daKytag06_type_09_Execute__FP13kytag06_class */
static void daKytag06_type_09_Execute(kytag06_class* i_this) {
dScnKy_env_light_c* env_light = dKy_getEnvlight();
daKytag06_Ganon_wether_proc(i_this, env_light->field_0x12cc);
}
/* 80858D2C-8085912C 0015AC 0400+00 1/1 0/0 0/0 .text daKytag06_type_10_Execute__FP13kytag06_class
*/
/* 80858D2C-8085912C 0015AC 0400+00 1/1 0/0 0/0 .text daKytag06_type_10_Execute__FP13kytag06_class */
static void daKytag06_type_10_Execute(kytag06_class* i_this) {
u8 tmp = 0;
if (dComIfGs_isEventBit(dSv_event_flag_c::F_0266)) {

View File

@ -2949,7 +2949,9 @@ void daMidna_c::setMidnaNoDrawFlg() {
BOOL daMidna_c::checkMetamorphoseEnableBase() {
BOOL tmp;
if (!daAlink_getAlinkActorClass()->checkMidnaRide() || (g_env_light.mEvilInitialized & 0x80)
|| !dComIfGs_isEventBit(0xd04) || fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &tmp))
/* dSv_event_flag_c::M_077 - Main Event - Get shadow crystal (can now transform) */
|| !dComIfGs_isEventBit(0xD04)
|| fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &tmp))
{
return FALSE;
}

View File

@ -607,6 +607,7 @@ void daMyna_c::greet_talk_init() {
void daMyna_c::greet_talk_move() {
if (eventInfo.checkCommandTalk() && mMsgFlow.doFlow(this, NULL, 0) != 0) {
dComIfGp_event_reset();
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[802])) {
field_0x937 = 20;
field_0x92C = 19;
@ -624,6 +625,7 @@ void daMyna_c::shopping_wait_init() {
/* 809471E8-809475B4 001668 03CC+00 1/0 0/0 0/0 .text shopping_wait_move__8daMyna_cFv */
void daMyna_c::shopping_wait_move() {
if (!daPy_py_c::checkNowWolf()) {
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[802])) {
field_0x92C = 17;
field_0x937 = 20;
@ -663,8 +665,9 @@ void daMyna_c::shopping_wait_move() {
}
}
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[203]) &&
daMyna_evtTagActor1 != NULL)
/* dSv_event_flag_c::F_0203 - Shop - First tried to steal from unnmaned shop (Havent checked donation box) */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[203])
&& daMyna_evtTagActor1 != NULL)
{
cXyz stack_2c(1.0f, 1.0f, 1.0f);
if (chkPlayerInEvtArea(daMyna_evtTagActor1, stack_2c)) {
@ -806,6 +809,7 @@ void daMyna_c::byebye_talk_move() {
}
dComIfGp_event_reset();
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[802])) {
field_0x92C = 0x11;
field_0x937 = 0x14;
@ -969,6 +973,7 @@ void daMyna_c::attack_wait2_move() {
if (daMyna_evtTagActor0 != NULL) {
cXyz stack_1c(1.0f, 1.0f, 1.0f);
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[802])) {
if (chkPlayerInEvtArea(daMyna_evtTagActor0, stack_1c)) {
field_0x937 = 20;
@ -1025,6 +1030,7 @@ void daMyna_c::attack_fly2_move() {
if (dMsgObject_getTotalPayment() > field_0x922) {
field_0x937 = 0;
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[802]);
field_0x939 = 1;
}
@ -1038,6 +1044,7 @@ void daMyna_c::attack_fly2_move() {
}
} else if (fly_return_move()) {
if (field_0x937 == 0) {
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[802]);
}
field_0x92C = 17;
@ -1064,6 +1071,7 @@ void daMyna_c::attack2_move() {
if (field_0x937 != 0) {
field_0x937--;
if (dComIfGs_getLife() <= 1) {
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[802]);
field_0x937 = 0;
}
@ -1289,6 +1297,7 @@ void daMyna_c::initiate() {
field_0x920 = 0;
field_0x922 = 0;
/* dSv_event_flag_c::F_0802 - Faron Woods - Trill attacks when stealing */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[802])) {
field_0x932 = 0;
field_0x938 = 0;
@ -1585,6 +1594,7 @@ void daMyna_c::checkDead() {
if (daMyna_evtTagActor0 == NULL ||
(daMyna_evtTagActor0 != NULL && !chkPlayerInEvtArea(daMyna_evtTagActor0, var1)))
{
/* dSv_event_flag_c::F_0203 - Shop - First tried to steal from unnmaned shop (Havent checked donation box) */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[203])) {
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[203]);
}

View File

@ -2301,6 +2301,7 @@ static int daNi_Create(fopAc_ac_c* i_this) {
}
if (strcmp(dComIfGp_getStartStageName(), "F_SP108") == 0 &&
/* dSv_event_flag_c::F_0528 - Faron Woods - Resistance Rusl summoned golden cucco */
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[528]))
{
a_this->mAction = ACTION_DEMO0_e;

View File

@ -1886,8 +1886,7 @@ void daNpcF_offTmpBit(u32 i_no) {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[i_no]);
}
/* 80155774-80155854 1500B4 00E0+00 0/0 2/2 5/5 .text
* daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz */
/* 80155774-80155854 1500B4 00E0+00 0/0 2/2 5/5 .text daNpcF_getPlayerInfoFromPlayerList__FiiR4cXyzR5csXyz */
int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, csXyz& param_3) {
int rv = 0;

View File

@ -473,7 +473,10 @@ cPhs__Step daNpcAsh_c::Create() {
fopAcM_SetupActor(this, daNpcAsh_c);
if (!strcmp(dComIfGp_getStartStageName(), "R_SP116") && dComIfG_play_c::getLayerNo(0) == 4) {
if (daNpcF_chkEvtBit(0x169) && !daNpcF_chkEvtBit(0x10a)) {
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
if (daNpcF_chkEvtBit(0x169)
/* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
&& !daNpcF_chkEvtBit(0x10A)) {
return cPhs_ERROR_e;
}
if (dComIfGs_isStageSwitch(0x18, 0x4b)) {
@ -1563,8 +1566,14 @@ void daNpcAsh_c::setAttnPos() {
mCcCyl[0].SetR(daNpcAsh_Param_c::m.mWallR);
dComIfG_Ccsp()->Set(&mCcCyl[0]);
if (mType == TYPE_BAR && (!daNpcF_chkEvtBit(0x169) || !daNpcF_chkEvtBit(0x10a)
|| !daNpcF_chkEvtBit(0x10b) || daNpcF_chkEvtBit(0x10c))) {
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
if (mType == TYPE_BAR && (!daNpcF_chkEvtBit(0x169)
/* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
|| !daNpcF_chkEvtBit(0x10A)
/* dSv_event_flag_c::F_0267 - Temple of Time - Temple of Time clear */
|| !daNpcF_chkEvtBit(0x10B)
/* dSv_event_flag_c::F_0268 - City in the Sky - City in the Sky clear */
|| daNpcF_chkEvtBit(0x10C))) {
center.set(3070.0f, -1150.0f, 2446.0f);
mCcCyl[1].SetC(center);
mCcCyl[1].SetH(170.0f);

View File

@ -353,7 +353,10 @@ cPhs__Step daNpcAshB_c::Create() {
fopAcM_SetupActor(this, daNpcAshB_c);
if (!daNpcF_chkEvtBit(0x169) || daNpcF_chkEvtBit(0x14f)) {
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
if (!daNpcF_chkEvtBit(0x169)
/* dSv_event_flag_c::F_0335 - Snowpeak mountain - Obtained scribble from Ashei at mountain pass */
|| daNpcF_chkEvtBit(0x14F)) {
return cPhs_ERROR_e;
} else {
mFlowID = getMessageNo();
@ -836,8 +839,9 @@ bool daNpcAshB_c::wait(void* param_0) {
}
}
}
if (!daNpcF_chkEvtBit(0x14f) && field_0xded == 0 && !daPy_py_c::checkNowWolf()) {
/* dSv_event_flag_c::F_0335 - Snowpeak mountain - Obtained scribble from Ashei at mountain pass */
if (!daNpcF_chkEvtBit(0x14F)
&& field_0xded == 0 && !daPy_py_c::checkNowWolf()) {
f32 res = pow(600.0f, 2.0f);
if (fopAcM_searchPlayerDistanceXZ2(this) <= res) {
daNpcF_offTmpBit(0xb);
@ -881,7 +885,8 @@ bool daNpcAshB_c::wait(void* param_0) {
orderEvent(field_0xdec,l_evtNames[mOrderEvtNo*1],-1, 40, -1, 1);
if (daNpcF_chkEvtBit(0x14f)) {
/* dSv_event_flag_c::F_0335 - Snowpeak mountain - Obtained scribble from Ashei at mountain pass */
if (daNpcF_chkEvtBit(0x14F)) {
eventInfo.onCondition(0x20);
}

File diff suppressed because it is too large Load Diff

View File

@ -156,6 +156,8 @@ static int daNpc_Fish_Create(fopAc_ac_c* i_this) {
fopAcM_create(PROC_FR, 0, &pos, fopAcM_GetRoomNo(i_this), &angle, NULL, -1);
}
}
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[463])) {
fish_set(i_this, fish_d127);
} else {

View File

@ -366,7 +366,9 @@ static void henna_shop(npc_henna_class* i_this) {
i_this->field_0x618 = cM_atan2s(dX, dZ);
}
cLib_addCalcAngleS2(&i_this->actor.current.angle.y, i_this->field_0x618, 2, unkInt1);
if ((!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[461]) || data_80450C9C != 0) &&
/* dSv_event_flag_c::F_0461 - Fishing Pond - First time entered fishing house */
if ((!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[461])
|| data_80450C9C != 0) &&
i_this->field_0x7d7 == 0 && i_this->field_0x6a0 == 56 + TREG_S(7))
{
dComIfGp_event_reset();
@ -374,6 +376,7 @@ static void henna_shop(npc_henna_class* i_this) {
data_80450C9C = 0;
i_this->field_0x752 = 60;
} else {
/* dSv_event_flag_c::F_0461 - Fishing Pond - First time entered fishing house */
dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[461]);
i_this->field_0x752 = 1;
}
@ -878,6 +881,7 @@ static void demo_camera(npc_henna_class* i_this) {
dComIfGp_event_reset();
daPy_py_c* player = daPy_getPlayerActorClass();
player->cancelOriginalDemo();
/* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d0])) {
i_this->field_0x70a = 10;
i_this->field_0x70b = 0;
@ -885,7 +889,9 @@ static void demo_camera(npc_henna_class* i_this) {
} else {
i_this->field_0x752 = 0;
}
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf]);
/* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */
dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d0]);
}
}
@ -988,8 +994,9 @@ static void demo_camera_shop(npc_henna_class* i_this) {
u32 unkIntArr2[1];
s8 unkBool1 = FALSE;
if (dComIfGp_event_runCheck() == FALSE &&
dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d1]) == FALSE)
if (!dComIfGp_event_runCheck()
/* dSv_event_flag_c::F_0465 - Fishing Pond - Reserved for fishing */
&& !dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d1]))
{
i_this->field_0x756++;
if (i_this->field_0x756 < 200) {
@ -1178,12 +1185,14 @@ static void demo_camera_shop(npc_henna_class* i_this) {
anm_init(i_this, 18, -10.0f, 2, 1.0f);
i_this->field_0x5bc++;
} else {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1ce]) == 0) {
/* dSv_event_flag_c::F_0462 - Fishing Pond - Reserved for fishing */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1ce])) {
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1ce]);
i_this->field_0x752 = 19;
break;
}
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d1]) != 0) {
/* dSv_event_flag_c::F_0465 - Fishing Pond - Reserved for fishing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d1])) {
if (i_this->field_0x709 != 0) {
i_this->mMsgFlow.init(actor, 0x327, 0, NULL);
i_this->field_0x6ba = 90;
@ -1237,15 +1246,19 @@ static void demo_camera_shop(npc_henna_class* i_this) {
if (i_this->field_0x754 == 1) {
if (i_this->field_0x752 == 12) {
if (dComIfGs_getRupee() >= 20) {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d1]) == 0) {
/* dSv_event_flag_c::F_0465 - Fishing Pond - Reserved for fishing */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d1])) {
i_this->mMsgFlow.init(actor, 0x32e, 0, NULL);
/* dSv_event_flag_c::F_0465 - Fishing Pond - Reserved for fishing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1d1]);
/* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1d0]);
data_80450CA0 = 1;
} else {
i_this->mMsgFlow.init(actor, 0x32f, 0, NULL);
}
dComIfGp_setItemRupeeCount(0xffffffec);
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1cf]);
i_this->field_0x5b6 = 1;
} else {
@ -1296,7 +1309,9 @@ static void demo_camera_shop(npc_henna_class* i_this) {
if (dComIfGs_getRupee() >= 100) {
i_this->mMsgFlow.init(actor, 0x330, 0, NULL);
dComIfGp_setItemRupeeCount(-100);
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1cf]);
/* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1d0]);
data_80450CA0 = 1;
i_this->field_0x5b6 = 1;
@ -1455,7 +1470,8 @@ static void demo_camera_shop(npc_henna_class* i_this) {
}
break;
case 2:
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d5]) != 0) {
/* dSv_event_flag_c::F_0469 - Fishing Pond - Reserved for fishing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d5])) {
i_this->mMsgFlow.init(actor, 0x338, 0, NULL);
} else {
i_this->mMsgFlow.init(actor, 0x337, 0, NULL);
@ -1515,7 +1531,8 @@ static void demo_camera_shop(npc_henna_class* i_this) {
i_this->mMsgFlow.init(actor, 0x33c, 0, NULL);
break;
case 0x13:
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335]) != 0) {
/* dSv_event_flag_c::KORO2_ALLCLEAR - Fishing - After all stages (8-8) of roll goal game cleared */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335])) {
i_this->mMsgFlow.init(actor, 0x366, 0, NULL);
} else {
dComIfGp_event_offHindFlag(0x80);
@ -1534,7 +1551,8 @@ static void demo_camera_shop(npc_henna_class* i_this) {
if (i_this->mMsgFlow.doFlow(actor, NULL, 0) != 0) {
if (i_this->field_0x7b4 == 19) {
if (dMsgObject_getSelectCursorPos() == 0) {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335]) != 0) {
/* dSv_event_flag_c::KORO2_ALLCLEAR - Fishing - After all stages (8-8) of roll goal game cleared */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335])) {
i_this->field_0x752 = 0x4d;
i_this->field_0x754 = 0;
mDoGph_gInf_c::fadeOut(0.1f, g_blackColor);
@ -1872,7 +1890,8 @@ static void demo_camera_shop(npc_henna_class* i_this) {
case 74: {
if (i_this->mMsgFlow.doFlow(actor, NULL, 0) != 0) {
if (dMsgObject_getSelectCursorPos() == 0) {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335]) != 0) {
/* dSv_event_flag_c::KORO2_ALLCLEAR - Fishing - After all stages (8-8) of roll goal game cleared */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335])) {
i_this->field_0x754 = 0;
i_this->field_0x752 = 0x4d;
mDoGph_gInf_c::fadeOut(0.1f, g_blackColor);
@ -1923,16 +1942,19 @@ static void demo_camera_shop(npc_henna_class* i_this) {
Z2GetAudioMgr()->subBgmStop();
}
if (i_this->field_0x754 == 10) {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335]) != 0) {
/* dSv_event_flag_c::KORO2_ALLCLEAR - Fishing - After all stages (8-8) of roll goal game cleared */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x335])) {
i_this->mMsgFlow.init(actor, 0x36f, 0, NULL);
} else {
if ((lbl_82_bss_91 & 7) == 0x7) {
if (lbl_82_bss_91 == 0x3f) {
i_this->mMsgFlow.init(actor, 0x365, 0, NULL);
/* dSv_event_flag_c::KORO2_ALLCLEAR - Fishing - After all stages (8-8) of roll goal game cleared */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x335]);
dComIfGp_setItemRupeeCount(1000);
} else if ((lbl_82_bss_91 & 0x38) == 0) {
i_this->mMsgFlow.init(actor, 0x34f, 0, NULL);
/* dSv_event_flag_c::F_0469 - Fishing Pond - Reserved for fishing */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1d5]);
} else {
i_this->mMsgFlow.init(actor, 0x34f, 0, NULL);
@ -2713,7 +2735,9 @@ static int daNpc_Henna_Create(fopAc_ac_c* i_this) {
}
}
}
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf]);
/* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */
dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d0]);
a_this->field_0x618 = i_this->shape_angle.y = i_this->current.angle.y = newAngle;
lbl_82_bss_91 = dComIfGs_getEventReg(0xf63f);
@ -2758,6 +2782,7 @@ static int daNpc_Henna_Create(fopAc_ac_c* i_this) {
fopAcM_create(PROC_NPC_TK, 0xffffffff, &npcDfPos, fopAcM_GetRoomNo(i_this), NULL,
NULL, -1);
data_80450C99 = 0;
/* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */
if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf])) {
a_this->field_0x70a = 4;
a_this->field_0x734 = 1;

File diff suppressed because it is too large Load Diff

View File

@ -220,13 +220,13 @@ static int daNpc_Ks_Draw(npc_ks_class* npc_ks) {
npc_ks->mpModelMorf->entryDL();
if (npc_ks->field_0xc17 != 0) {
g_env_light.setLightTevColorType_MAJI(npc_ks->field_0xc00, &a_this->tevStr);
mDoExt_modelUpdateDL(npc_ks->field_0xc00);
g_env_light.setLightTevColorType_MAJI(npc_ks->mpStickModel, &a_this->tevStr);
mDoExt_modelUpdateDL(npc_ks->mpStickModel);
}
if (npc_ks->field_0xbfc != NULL) {
g_env_light.setLightTevColorType_MAJI(npc_ks->field_0xbfc, &a_this->tevStr);
mDoExt_modelUpdateDL(npc_ks->field_0xbfc);
if (npc_ks->mpRoseModel != NULL) {
g_env_light.setLightTevColorType_MAJI(npc_ks->mpRoseModel, &a_this->tevStr);
mDoExt_modelUpdateDL(npc_ks->mpRoseModel);
}
cXyz sp28;
@ -235,7 +235,7 @@ static int daNpc_Ks_Draw(npc_ks_class* npc_ks) {
npc_ks->mObjAcch.GetGroundH(), npc_ks->mObjAcch.m_gnd, &a_this->tevStr,
0, 1.0f, dDlst_shadowControl_c::getSimpleTex());
if (npc_ks->field_0xc17 != 0) {
dComIfGd_addRealShadow(npc_ks->mShadowKey, npc_ks->field_0xc00);
dComIfGd_addRealShadow(npc_ks->mShadowKey, npc_ks->mpStickModel);
}
return 1;
@ -3052,6 +3052,7 @@ static void demo_camera(npc_ks_class* i_this) {
i_this->field_0xb84.y = std::fabsf(i_this->field_0xb6c.y - i_this->field_0xb60.y);
i_this->field_0xb84.z = std::fabsf(i_this->field_0xb6c.z - i_this->field_0xb60.z);
i_this->field_0xbc4 = 0.0f;
/* dSv_event_flag_c::F_0224 - Faron Woods - Flag for lantern guide monkey cutscene */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE0]);
// fallthrough
case 201:
@ -3208,7 +3209,8 @@ static void demo_camera(npc_ks_class* i_this) {
i_this->field_0xb42 = 100;
i_this->mMode = 302;
anm_init(i_this, 51, 5.0f, 2, 1.0f);
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xe1]);
/* dSv_event_flag_c::F_0225 - Faron Woods - Lanter guide monkey doesn't come out a second time */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE1]);
dComIfGs_offSwitch(61, fopAcM_GetRoomNo(a_this));
}
break;
@ -3283,6 +3285,7 @@ static void demo_camera(npc_ks_class* i_this) {
if (i_this->field_0xb44 == 230) {
i_this->field_0xb42 = 100;
fpcM_Search(s_fsdown_sub, i_this);
/* dSv_event_flag_c::F_0544 - Faron Woods - Watched cutscene of monkey girl running away after being attacked by puppet */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x220]);
}
break;
@ -5465,7 +5468,9 @@ static int npc_ks_mori(npc_ks_class* i_this) {
switch (i_this->mMode) {
case 0:
/* dSv_event_flag_c::F_0225 - Faron Woods - Lanter guide monkey doesn't come out a second time */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[225])) {
/* dSv_event_flag_c::F_0226 - Faron Woods - Get lantern back from monkey */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[226])) {
i_this->mMode = 302;
i_this->field_0xc17 = 3;
@ -5473,6 +5478,7 @@ static int npc_ks_mori(npc_ks_class* i_this) {
}
} else {
i_this->field_0xaec = 1;
/* dSv_event_flag_c::F_0224 - Faron Woods - Flag for lantern guide monkey cutscene */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[224])) {
i_this->mMode = 3;
call_pt = 0;
@ -5996,6 +6002,7 @@ static void npc_ks_kago(npc_ks_class* i_this) {
cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x5c8, 2, 0x2000);
i_this->field_0xaec = 0;
/* dSv_event_flag_c::F_0577 - Ordon Village - 2nd Day - Retrieved basket from monkey (hit hawk) */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241])) {
fopAcM_delete(a_this);
}
@ -6568,7 +6575,7 @@ static void* s_kago_sub(void* i_actor, void* i_data) {
static void kantera_sub(npc_ks_class* i_this) {
fopAc_ac_c* a_this = &i_this->actor;
MTXCopy(i_this->mpModelMorf->getModel()->getAnmMtx(14), mDoMtx_stack_c::get());
i_this->field_0xc00->setBaseTRMtx(mDoMtx_stack_c::get());
i_this->mpStickModel->setBaseTRMtx(mDoMtx_stack_c::get());
#if VERSION == VERSION_SHIELD_DEBUG
#define KANTERA_SUB_BIT 0x80UL
@ -6730,8 +6737,8 @@ static int daNpc_Ks_Execute(npc_ks_class* i_this) {
}
}
if (i_this->field_0xbfc != NULL) {
i_this->field_0xbfc->setBaseTRMtx(i_this->mpModelMorf->getModel()->getAnmMtx(4));
if (i_this->mpRoseModel != NULL) {
i_this->mpRoseModel->setBaseTRMtx(i_this->mpModelMorf->getModel()->getAnmMtx(4));
}
kantera_sub(i_this);
@ -6856,8 +6863,8 @@ static int daNpc_Ks_Delete(npc_ks_class* i_this) {
static int useHeapInit(fopAc_ac_c* a_this) {
npc_ks_class* i_this = (npc_ks_class*)a_this;
i_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes(i_this->mResName, 59), NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes(i_this->mResName, 51), 0, 1.0f, 0, -1,
i_this->mpModelMorf = new mDoExt_McaMorfSO((J3DModelData*)dComIfG_getObjectRes(i_this->mResName, npc_ks_class::BMDR_SARU), NULL, NULL,
(J3DAnmTransform*)dComIfG_getObjectRes(i_this->mResName, npc_ks_class::BCK_SARU_WAIT_A), 0, 1.0f, 0, -1,
&i_this->mSound, 0x80000, 0x11020084);
if (i_this->mpModelMorf == NULL || i_this->mpModelMorf->getModel() == NULL) {
return 0;
@ -6874,7 +6881,7 @@ static int useHeapInit(fopAc_ac_c* a_this) {
return 0;
}
if (i_this->mBtp1->init(i_this->mpModelMorf->getModel()->getModelData(),
(J3DAnmTexPattern*)dComIfG_getObjectRes(i_this->mResName, 64), 1, 0, 1.0f, 0, -1) == 0) {
(J3DAnmTexPattern*)dComIfG_getObjectRes(i_this->mResName, npc_ks_class::BTP_SARU), 1, 0, 1.0f, 0, -1) == 0) {
return 0;
}
@ -6883,22 +6890,22 @@ static int useHeapInit(fopAc_ac_c* a_this) {
return 0;
}
if (i_this->mBtp2->init(i_this->mpModelMorf->getModel()->getModelData(),
(J3DAnmTexPattern*)dComIfG_getObjectRes(i_this->mResName, 65), 1, 2, 1.0f, 0, -1) == 0) {
(J3DAnmTexPattern*)dComIfG_getObjectRes(i_this->mResName, npc_ks_class::BTP_SARU_RELIEF), 1, 2, 1.0f, 0, -1) == 0) {
return 0;
}
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mResName, 61);
J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mResName, npc_ks_class::BMDR_SARU_STICK);
JUT_ASSERT(10232, modelData != 0);
i_this->field_0xc00 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (i_this->field_0xc00 == NULL) {
i_this->mpStickModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (i_this->mpStickModel == NULL) {
return 0;
}
if (i_this->mRoomMonkeyID == 0 || i_this->mRoomMonkeyID == 10 || i_this->mRoomMonkeyID == 20 || i_this->mRoomMonkeyID == 21 || i_this->mRoomMonkeyID == 22) {
modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mResName, 60);
modelData = (J3DModelData*)dComIfG_getObjectRes(i_this->mResName, npc_ks_class::BMDR_SARU_BARA);
JUT_ASSERT(10249, modelData != 0);
i_this->field_0xbfc = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (i_this->field_0xbfc == NULL) {
i_this->mpRoseModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
if (i_this->mpRoseModel == NULL) {
return 0;
}
}
@ -7321,7 +7328,11 @@ static int daNpc_Ks_Create(fopAc_ac_c* a_this) {
i_this->mRoomMonkeyID = 0;
}
if (i_this->mRoomMonkeyID == 20 && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0xE1]) && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0xE2])) {
if (i_this->mRoomMonkeyID == 20
/* dSv_event_flag_c::F_0225 - Faron Woods - Lanter guide monkey doesn't come out a second time */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0xE1])
/* dSv_event_flag_c::F_0226 - Faron Woods - Get lantern back from monkey */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0xE2])) {
return cPhs_ERROR_e;
}

View File

@ -811,6 +811,8 @@ void daNpc_Moi_c::action() {
}
if (mSph.ChkAtHit() && fopAcM_GetProfName(mSph.GetAtHitAc()) == PROC_ALINK) {
/* dSv_event_tmp_flag_c::T_0047 - Ordon Village - Right after wrestling with Bo
(Used to connect with conversation after wearing clothes) */
daNpcF_onTmpBit(0x47);
}
}
@ -1108,6 +1110,7 @@ BOOL daNpc_Moi_c::chkPlayerGetWoodShield() {
/* 80A766DC-80A76888 00287C 01AC+00 2/2 0/0 0/0 .text setSSlash__11daNpc_Moi_cFi */
void daNpc_Moi_c::setSSlash(int param_1) {
mMotionSeqMngr.setNo(43, 0.0f, 1, 0);
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
if (dComIfGs_isTmpBit(0x1308)) {
mSound.startCreatureVoice(JAISoundID(Z2SE_MOI_V_GUARD_SWING), -1);
} else {
@ -1125,6 +1128,8 @@ void daNpc_Moi_c::setSSlash(int param_1) {
field_0x1658 = 0;
field_0x166b = 1;
field_0x166c = 1;
/* dSv_event_tmp_flag_c::T_0047 - Ordon Village - Right after wrestling with Bo
(Used to connect with conversation after wearing clothes) */
daNpcT_onTmpBit(0x47);
}
@ -1282,6 +1287,7 @@ int daNpc_Moi_c::injuryTurn(cXyz param_1) {
/* 80A76F3C-80A770FC 0030DC 01C0+00 1/1 0/0 0/0 .text injuryWalk__11daNpc_Moi_cFv */
int daNpc_Moi_c::injuryWalk() {
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
dComIfGs_offTmpBit(0x1308);
cXyz cStack_40;
@ -1367,6 +1373,7 @@ int daNpc_Moi_c::poise() {
field_0x1648 = cLib_getRndValue(iVar13 * 0.5f, iVar13 * 1.5f);
} else if (!cLib_calcTimer(&field_0x1648)) {
mMotionSeqMngr.setNo(43, 0.0f, 1, 0);
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
if (dComIfGs_isTmpBit(0x1308)) {
mSound.startCreatureVoice(JAISoundID(Z2SE_MOI_V_GUARD_SWING), -1);
} else {

View File

@ -1055,6 +1055,7 @@ static void npc_ne_tame(npc_ne_class* i_this) {
i_this->mpMorf->setPlaySpeed(i_this->mAnmSpeed);
/* dSv_event_flag_c::F_0470 - Fishing Pond - Reserved for fishing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[470])) {
if (fpcEx_Search(s_fish_sub, _this) != NULL) {
i_this->mAction = npc_ne_class::ACT_HOME;
@ -1715,6 +1716,7 @@ static BOOL npc_ne_home(npc_ne_class* i_this) {
i_this->current.pos.set(236.0f, 93.3f, -777.5f);
i_this->current.angle.y = 0x5f94;
i_this->mAngleYStep = 5000.0f;
/* dSv_event_flag_c::F_0038 - Ordon Village - Opening (2nd day) cat returns home */
dComIfGs_onEventBit(0x1001);
} else {
i_this->mMode = 13;
@ -2269,6 +2271,7 @@ static void npc_ne_dish(npc_ne_class* i_this) {
case 1:
default:
/* dSv_event_flag_c::F_0038 - Ordon Village - Opening (2nd day) cat returns home */
if (!dComIfGs_isEventBit(0x1001)) {
i_this->current.pos.y = 20000.0f;
i_this->speed.y = 0.0f;
@ -3032,6 +3035,7 @@ static int daNpc_Ne_Execute(npc_ne_class* i_this) {
i_this->mCounter++;
if (i_this->mWantsFish && (i_this->mCounter & 0xf) == 0) {
/* dSv_event_flag_c::F_0470 - Fishing Pond - Reserved for fishing */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[470])
&& i_this->mDistToTarget < 1500.0f) {
if (fopAcM_SearchByName(PROC_MG_ROD) != NULL) {
@ -3221,6 +3225,7 @@ static int useHeapInit(fopAc_ac_c* i_this) {
if (_this->mBehavior == npc_ne_class::BHV_DISH) {
static int dish_bck[2] = {npc_ne_class::ANM_EMPTY_DISH, npc_ne_class::ANM_DRINK_DISH};
/* dSv_event_flag_c::F_0038 - Ordon Village - Opening (2nd day) cat returns home */
s32 dish_flag = dComIfGs_isEventBit(0x1001) ? 1 : 0;
_this->mpDishMorf = new mDoExt_McaMorf(
static_cast<J3DModelData*>(dComIfG_getObjectRes(_this->mResName, 29)), NULL, NULL,
@ -3254,8 +3259,9 @@ static cPhs__Step daNpc_Ne_Create(fopAc_ac_c* i_this) {
_this->mPathIndex = (u8)(fopAcM_GetParam(_this) >> 0x10);
_this->mIsGengle = (u8)(fopAcM_GetParam(_this) >> 0x18);
if (_this->mIsGengle == 1 &&
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[457])) {
if (_this->mIsGengle == 1
/* dSv_event_flag_c::F_0457 - Castle Town - Revived cat */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[457])) {
return cPhs_ERROR_e;
}
@ -3279,6 +3285,7 @@ static cPhs__Step daNpc_Ne_Create(fopAc_ac_c* i_this) {
if (_this->mBehavior == npc_ne_class::BHV_TAME) {
_this->mAction = npc_ne_class::ACT_TAME;
} else if (_this->mBehavior == npc_ne_class::BHV_PIER) {
/* dSv_event_flag_c::F_0038 - Ordon Village - Opening (2nd day) cat returns home */
if (dComIfGs_isEventBit(0x1001)) {
_this->mAction = npc_ne_class::ACT_ROOF;
i_this->current.pos.set(1005.0f, 766.0f, -1423.0f);

View File

@ -4,14 +4,64 @@
*/
#include "d/actor/d_a_npc_saru.h"
#include "d/actor/d_a_npc_ks.h"
#include "d/actor/d_a_obj_so.h"
#include "d/actor/d_a_e_ym.h"
enum saru_TW_RES_File_ID {
/* BMDR */
/* 0x4 */ BMDR_SARU_BARA_TW = 0x4,
/* 0x5 */ BMDR_SARU_TW,
/* EVT */
/* 0x8 */ EVT_SARU_TW_EVENT_LIST = 0x8,
};
enum saru_RES_File_ID {
/* BCK */
/* 0x3 */ BCK_SARU_HELP_E = 0x3,
};
enum RES_Name {
/* 0x1 */ NPC_KS = 0x1,
/* 0x2 */ SARU_TW,
/* 0x3 */ SARU,
};
enum FaceMotion {
/* 0x0 */ FACE_NONE,
};
enum Motion {
/* 0x0 */ MOT_WAIT_A,
/* 0x1 */ MOT_WAIT_B,
/* 0x2 */ MOT_WAIT_C,
/* 0x3 */ MOT_WAITSTAND,
/* 0x4 */ MOT_SCARED,
/* 0x5 */ MOT_SCARED_LOOK,
/* 0x6 */ MOT_RELIEF,
/* 0x7 */ MOT_JUMPRUN,
/* 0x8 */ MOT_HELP_E,
/* 0x9 */ MOT_HELP_C,
/* 0xA */ MOT_CLAP_WAIT,
};
enum Event {
/* 0x0 */ EVENT_NONE,
/* 0x1 */ EVENT_NO_RESPONSE,
/* 0x2 */ EVENT_YM_LOOK,
};
enum Material {
/* 0x1 */ MAT_SARU_BODY_M = 0x1,
/* 0x2 */ MAT_SARU_FACE_M,
};
UNK_REL_DATA;
/* 80AC46C4-80AC46E4 000020 0020+00 1/1 0/0 0/0 .data l_bmdData */
static int l_bmdData[4][2] = {
{ 0x0000003B, 1 }, { 5, 2 }, { 0x0000003C, 1 }, { 4, 2 },
{ npc_ks_class::BMDR_SARU, 1 }, { BMDR_SARU_TW, 2 }, { npc_ks_class::BMDR_SARU_BARA, 1 }, { BMDR_SARU_BARA_TW, 2 },
};
/* 80AC46E4-80AC46FC -00001 0018+00 1/2 0/0 0/0 .data l_evtList */
@ -28,7 +78,7 @@ static char* l_resNameList[4] = {
/* 80AC470C-80AC4710 000068 0004+00 1/0 0/0 0/0 .data l_loadResPtrn0 */
static s8 l_loadResPtrn0[4] = {
1, 2, 3, 0xFF,
NPC_KS, SARU_TW, SARU, -1,
};
/* 80AC4710-80AC4720 -00001 0010+00 1/2 0/0 0/0 .data l_loadResPtrnList */
@ -41,62 +91,114 @@ static s8* l_loadResPtrnList[4] = {
/* 80AC4720-80AC473C 00007C 001C+00 0/1 0/0 0/0 .data l_faceMotionAnmData */
static daNpcT_faceMotionAnmData_c l_faceMotionAnmData[1] = {
{-1, 0, 0, 64, 2, 1, 1},
{-1, J3DFrameCtrl::EMode_NONE, 0,
npc_ks_class::BTP_SARU, J3DFrameCtrl::EMode_LOOP, NPC_KS, 1},
};
/* 80AC473C-80AC4CD0 000098 0594+00 1/2 0/0 0/0 .data l_motionAnmData */
static daNpcT_motionAnmData_c l_motionAnmData[51] = {
{51, 2, 1, -1, 0, 0, 0, 0},
{53, 2, 1, -1, 0, 0, 0, 0},
{54, 2, 1, -1, 0, 0, 0, 0},
{11, 2, 1, -1, 0, 0, 0, 0},
{56, 2, 1, -1, 0, 0, 0, 0},
{50, 2, 1, -1, 0, 0, 0, 0},
{7, 2, 1, -1, 0, 0, 0, 0},
{8, 2, 1, -1, 0, 0, 0, 0},
{45, 0, 1, -1, 0, 0, 0, 0},
{39, 2, 1, -1, 0, 0, 0, 0},
{43, 0, 1, -1, 0, 0, 0, 0},
{41, 2, 1, -1, 0, 0, 0, 0},
{24, 2, 1, -1, 0, 0, 0, 0},
{17, 0, 1, -1, 0, 0, 0, 0},
{18, 0, 1, -1, 0, 0, 0, 0},
{19, 0, 1, -1, 0, 0, 0, 0},
{16, 2, 1, -1, 0, 0, 0, 0},
{48, 2, 1, -1, 0, 0, 0, 0},
{30, 2, 1, -1, 0, 0, 0, 0},
{32, 0, 1, -1, 0, 0, 0, 0},
{33, 0, 1, -1, 0, 0, 0, 0},
{31, 0, 1, -1, 0, 0, 0, 0},
{31, 2, 1, -1, 0, 0, 0, 0},
{5, 2, 1, -1, 0, 0, 0, 0},
{28, 2, 1, -1, 0, 0, 0, 0},
{26, 2, 1, -1, 0, 0, 0, 0},
{55, 2, 1, -1, 0, 0, 0, 0},
{12, 2, 1, -1, 0, 0, 0, 0},
{15, 2, 1, -1, 0, 0, 0, 0},
{47, 2, 1, -1, 0, 0, 0, 0},
{49, 0, 1, -1, 0, 0, 0, 0},
{38, 2, 1, -1, 0, 0, 0, 0},
{6, 0, 1, -1, 0, 0, 0, 0},
{13, 2, 1, -1, 0, 0, 0, 0},
{35, 0, 1, -1, 0, 0, 0, 0},
{36, 0, 1, -1, 0, 0, 0, 0},
{3, 2, 3, -1, 0, 0, 0, 0},
{23, 2, 1, -1, 0, 0, 0, 0},
{22, 2, 1, -1, 0, 0, 0, 0},
{21, 2, 1, -1, 0, 0, 0, 0},
{37, 0, 1, -1, 0, 0, 0, 0},
{29, 2, 1, -1, 0, 0, 0, 0},
{27, 2, 1, -1, 0, 0, 0, 0},
{52, 2, 1, -1, 0, 0, 0, 0},
{10, 2, 1, -1, 0, 0, 0, 0},
{9, 2, 1, -1, 0, 0, 0, 0},
{14, 0, 1, -1, 0, 0, 0, 0},
{44, 2, 1, -1, 0, 0, 0, 0},
{42, 2, 1, -1, 0, 0, 0, 0},
{40, 0, 1, -1, 0, 0, 0, 0},
{46, 0, 1, -1, 0, 0, 0, 0},
{npc_ks_class::BCK_SARU_WAIT_A, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_WAIT_B, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_WAIT_C, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_CLAP_WAIT, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_YOROKOBI, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_WAITSTAND, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_CALL, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_CALLBACK, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_STOPCALL, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SCARED, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SCARED_LOOK, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SCARED_B, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HUNGING, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HANGWAIT_A, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HANGWAIT_B, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HANGWAIT_C, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HANGCALL, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SWINGPOSE, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMP_ATTN, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMP_S, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMP_T, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMP_L, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMP_L, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_BAKUCHU, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMPWALK, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMPRUN, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_WALKCLAP, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_CLIMB, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_GODOWN, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SWIM, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_TO_ROTATE, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_ROTATE, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_BIKKURI, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_FALL, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_LAND, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_RECOVER, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{BCK_SARU_HELP_E, J3DFrameCtrl::EMode_LOOP, SARU,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HOLDING, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HELP_C, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_HELP_B, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_RELIEF, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMPWALK_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_JUMPRUN_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_WAIT_A_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_CALL_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_CALLBACK_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_FIRE_K, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SHAKE_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SCARED_K, J3DFrameCtrl::EMode_LOOP, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SCAREDLOOK_K, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
{npc_ks_class::BCK_SARU_SURPRISE_K, J3DFrameCtrl::EMode_NONE, NPC_KS,
-1, J3DFrameCtrl::EMode_NONE, 0, 0, 0},
};
/* 80AC4CD0-80AC4CE0 00062C 0010+00 0/1 0/0 0/0 .data l_faceMotionSequenceData */
@ -106,11 +208,16 @@ static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_faceMotionSequenceData[4] =
/* 80AC4CE0-80AC4D90 00063C 00B0+00 0/1 0/0 0/0 .data l_motionSequenceData */
static daNpcT_MotionSeqMngr_c::sequenceStepData_c l_motionSequenceData[44] = {
{0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {1, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{2, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{9, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {10, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{40, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {25, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{36, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0}, {38, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{0, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{1, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{2, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{5, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{9, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{10, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{40, -1, 1}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{25, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{36, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{38, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
{3, -1, 0}, {-1, 0, 0}, {-1, 0, 0}, {-1, 0, 0},
};
@ -141,7 +248,7 @@ daNpc_Saru_c::~daNpc_Saru_c() {
/* ############################################################################################## */
/* 80AC44F8-80AC4588 000000 0090+00 9/9 0/0 0/0 .rodata m__18daNpc_Saru_Param_c */
daNpc_Saru_Param_c::Data const daNpc_Saru_Param_c::m = {
daNpc_Saru_HIO_c const daNpc_Saru_Param_c::m = {
140.0f,
-3.0f,
1.0f,
@ -170,8 +277,11 @@ daNpc_Saru_Param_c::Data const daNpc_Saru_Param_c::m = {
0.0f,
60,
8,
0.0f,
0.0f,
0,
0,
0,
false,
false,
4.0f,
-20.0f,
0.0f,
@ -223,7 +333,7 @@ int daNpc_Saru_c::create() {
mAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir,
fopAcM_GetSpeed_p(this), fopAcM_GetAngle_p(this), fopAcM_GetShapeAngle_p(this));
mCcStts.Init(daNpc_Saru_Param_c::m.mWeight, 0, this);
mCcStts.Init(daNpc_Saru_Param_c::m.common.weight, 0, this);
field_0xe4c.Set(mCcDCyl);
field_0xe4c.SetStts(&mCcStts);
field_0xe4c.SetTgHitCallback(tgHitCallBack);
@ -276,9 +386,9 @@ int daNpc_Saru_c::CreateHeap() {
}
if (modelData != NULL) {
field_0xe44[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
mpRoseModels[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084);
} else {
field_0xe44[i] = NULL;
mpRoseModels[i] = NULL;
}
}
@ -359,7 +469,8 @@ int daNpc_Saru_c::isDelete() {
case 1:
rv = 0;
if (!daNpcT_chkEvtBit(0x12) || daNpcT_chkEvtBit(0x25C)) {
if (!daNpcT_chkEvtBit(0x12) /* dSv_event_flag_c::F_0014 - Ordon Village - sword tutorial ends */
|| daNpcT_chkEvtBit(0x25C) /* dSv_event_flag_c::F_0701 - N/A - Talo discovers monkey in Link's house garden */) {
rv = 1;
}
@ -419,7 +530,7 @@ BOOL daNpc_Saru_c::checkChangeEvt() {
mPreItemNo = 0;
if (dComIfGp_event_chkTalkXY()) {
if (dComIfGp_evmng_ChkPresentEnd()) {
mEvtNo = 1;
mEvtNo = EVENT_NO_RESPONSE;
evtChange();
}
@ -436,10 +547,10 @@ void daNpc_Saru_c::setParam() {
srchActors();
u32 uVar1 = 10;
s16 sVar1 = daNpc_Saru_Param_c::m.field_0x48;
s16 sVar2 = daNpc_Saru_Param_c::m.field_0x4a;
s16 sVar3 = daNpc_Saru_Param_c::m.field_0x4c;
s16 sVar4 = daNpc_Saru_Param_c::m.field_0x4e;
s16 sVar1 = daNpc_Saru_Param_c::m.common.talk_distance;
s16 sVar2 = daNpc_Saru_Param_c::m.common.talk_angle;
s16 sVar3 = daNpc_Saru_Param_c::m.common.attention_distance;
s16 sVar4 = daNpc_Saru_Param_c::m.common.attention_angle;
attention_info.distances[0] = daNpcT_getDistTableIdx(sVar3, sVar4);
attention_info.distances[1] = attention_info.distances[0];
@ -451,22 +562,22 @@ void daNpc_Saru_c::setParam() {
attention_info.flags = uVar1;
scale.set(daNpc_Saru_Param_c::m.field_0x08, daNpc_Saru_Param_c::m.field_0x08, daNpc_Saru_Param_c::m.field_0x08);
scale.set(daNpc_Saru_Param_c::m.common.scale, daNpc_Saru_Param_c::m.common.scale, daNpc_Saru_Param_c::m.common.scale);
if (mType != 0) {
scale.setall(0.8f);
}
mCcStts.SetWeight(daNpc_Saru_Param_c::m.mWeight);
mCylH = daNpc_Saru_Param_c::m.mCylH;
mWallR = daNpc_Saru_Param_c::m.mWallR;
mAttnFovY = daNpc_Saru_Param_c::m.mAttnFovy;
mCcStts.SetWeight(daNpc_Saru_Param_c::m.common.weight);
mCylH = daNpc_Saru_Param_c::m.common.height;
mWallR = daNpc_Saru_Param_c::m.common.width;
mAttnFovY = daNpc_Saru_Param_c::m.common.fov;
mAcchCir.SetWallR(mWallR);
mAcchCir.SetWallH(daNpc_Saru_Param_c::m.mWallH);
mRealShadowSize = daNpc_Saru_Param_c::m.field_0x0c;
mExpressionMorfFrame = daNpc_Saru_Param_c::m.field_0x6c;
mMorfFrames = daNpc_Saru_Param_c::m.mMorfFrames;
gravity = daNpc_Saru_Param_c::m.mGravity;
mAcchCir.SetWallH(daNpc_Saru_Param_c::m.common.knee_length);
mRealShadowSize = daNpc_Saru_Param_c::m.common.real_shadow_size;
mExpressionMorfFrame = daNpc_Saru_Param_c::m.common.expression_morf_frame;
mMorfFrames = daNpc_Saru_Param_c::m.common.morf_frame;
gravity = daNpc_Saru_Param_c::m.common.gravity;
}
/* 80AC1110-80AC1170 000DD0 0060+00 1/0 0/0 0/0 .text setAfterTalkMotion__12daNpc_Saru_cFv */
@ -474,7 +585,7 @@ void daNpc_Saru_c::setAfterTalkMotion() {
#ifdef DEBUG
mFaceMotionSeqMngr.getNo();
#endif
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
}
/* 80AC1170-80AC11D4 000E30 0064+00 1/1 0/0 0/0 .text srchActors__12daNpc_Saru_cFv */
@ -570,11 +681,11 @@ void daNpc_Saru_c::setAttnPos() {
mStagger.calc(FALSE);
f32 fVar1 = cM_s2rad(mCurAngle.y - field_0xd7e.y);
mJntAnm.setParam(this, mpMorf[0]->getModel(), &sp3c, getBackboneJointNo(), getNeckJointNo(),
getHeadJointNo(), daNpc_Saru_Param_c::m.mBodyUpAngle, daNpc_Saru_Param_c::m.mBodyDownAngle,
daNpc_Saru_Param_c::m.mBodyLeftAngle, daNpc_Saru_Param_c::m.mBodyRightAngle,
daNpc_Saru_Param_c::m.mHeadUpAngle, daNpc_Saru_Param_c::m.mHeadDownAngle,
daNpc_Saru_Param_c::m.mHeadLeftAngle, daNpc_Saru_Param_c::m.mHeadRightAngle,
daNpc_Saru_Param_c::m.field_0x40, fVar1, NULL);
getHeadJointNo(), daNpc_Saru_Param_c::m.common.body_angleX_min, daNpc_Saru_Param_c::m.common.body_angleX_max,
daNpc_Saru_Param_c::m.common.body_angleY_min, daNpc_Saru_Param_c::m.common.body_angleY_max,
daNpc_Saru_Param_c::m.common.head_angleX_min, daNpc_Saru_Param_c::m.common.head_angleX_max,
daNpc_Saru_Param_c::m.common.head_angleY_min, daNpc_Saru_Param_c::m.common.head_angleY_max,
daNpc_Saru_Param_c::m.common.neck_rotation_ratio, fVar1, NULL);
mJntAnm.calcJntRad(0.2f, 1.0f, fVar1);
setMtx();
@ -588,7 +699,7 @@ void daNpc_Saru_c::setAttnPos() {
mJntAnm.setEyeAngleY(eyePos, mCurAngle.y, 0, 1.0f, 0);
sp3c.set(0.0f, 0.0f, 60.0f);
sp3c.y = daNpc_Saru_Param_c::m.field_0x00;
sp3c.y = daNpc_Saru_Param_c::m.common.attention_offset;
mDoMtx_stack_c::YrotS(mCurAngle.y);
mDoMtx_stack_c::multVec(&sp3c, &sp3c);
attention_info.position = sp3c + current.pos;
@ -648,13 +759,13 @@ void daNpc_Saru_c::drawOtherMdl() {
Mtx mtx;
J3DModel* model = mpMorf[0]->getModel();
for (int i = 0; i < 2; i++) {
if (field_0xe44[i] != NULL && ((i == 0 && mTwilight == false) || (i == 1 && mTwilight != false))) {
g_env_light.setLightTevColorType_MAJI(field_0xe44[i], &tevStr);
if (mpRoseModels[i] != NULL && ((i == 0 && mTwilight == false) || (i == 1 && mTwilight != false))) {
g_env_light.setLightTevColorType_MAJI(mpRoseModels[i], &tevStr);
mDoMtx_stack_c::copy(model->getAnmMtx(jointNo[i]));
cMtx_copy(mDoMtx_stack_c::get(), mtx);
field_0xe44[i]->setBaseTRMtx(mtx);
mDoExt_modelUpdateDL(field_0xe44[i]);
dComIfGd_addRealShadow(mShadowKey, field_0xe44[i]);
mpRoseModels[i]->setBaseTRMtx(mtx);
mDoExt_modelUpdateDL(mpRoseModels[i]);
dComIfGd_addRealShadow(mShadowKey, mpRoseModels[i]);
}
}
}
@ -767,7 +878,7 @@ int daNpc_Saru_c::cutFindMonkey(int param_1) {
break;
case 1:
mMotionSeqMngr.setNo(7, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_JUMPRUN, -1.0f, 0, 0);
mEventTimer = iVar2;
break;
@ -818,13 +929,13 @@ int daNpc_Saru_c::cutHelpMe(int param_1) {
if (dComIfGp_getEventManager().getIsAddvance(param_1) != 0) {
switch (iVar1) {
case 0:
mFaceMotionSeqMngr.setNo(0, 0.0f, 0, 0);
mMotionSeqMngr.setNo(9, 0.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, 0.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_HELP_C, 0.0f, 0, 0);
break;
case 1:
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(10, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_CLAP_WAIT, -1.0f, 0, 0);
mPlayerAngle = home.angle.y + 0x8000;
break;
}
@ -879,7 +990,7 @@ int daNpc_Saru_c::cutYmLook(int param_1) {
break;
case 2:
mMotionSeqMngr.setNo(2, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_WAIT_C, -1.0f, 0, 0);
break;
case 3:
@ -887,14 +998,14 @@ int daNpc_Saru_c::cutYmLook(int param_1) {
break;
case 4:
mMotionSeqMngr.setNo(6, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_RELIEF, -1.0f, 0, 0);
break;
case 5:
break;
case 99:
daNpcT_onEvtBit(0x16C);
daNpcT_onEvtBit(0x16C); // dSv_event_flag_c::F_0364 - Faron Woods - Listened to monkey girl's laments (Twilight)
mFlow.remove();
}
}
@ -940,6 +1051,7 @@ int daNpc_Saru_c::cutYmLook(int param_1) {
case 99:
rv = 1;
break;
}
return rv;
@ -955,48 +1067,48 @@ int daNpc_Saru_c::wait(void* param_1) {
switch (mType) {
case 0:
if (field_0xfd9 != 0) {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_WAIT_A, -1.0f, 0, 0);
} else {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(4, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_SCARED, -1.0f, 0, 0);
}
break;
case 2:
cage_p = (obj_so_class*)mActrMngr[0].getActorP();
if (cage_p != NULL) {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(8, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_HELP_E, -1.0f, 0, 0);
if (cage_p->partBreak() == 1) {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0 ,0);
mMotionSeqMngr.setNo(9, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0 ,0);
mMotionSeqMngr.setNo(MOT_HELP_C, -1.0f, 0, 0);
}
} else {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_WAIT_A, -1.0f, 0, 0);
}
break;
default:
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_WAIT_A, -1.0f, 0, 0);
}
mMode = 2;
}
// fallthrough
case 2:
if (mType == 1 && daNpcT_chkEvtBit(0x25C)) {
if (mType == 1 && daNpcT_chkEvtBit(0x25C) /* dSv_event_flag_c::F_0701 - N/A - Talo discovers monkey in Link's house garden */) {
fopAcM_delete(this);
return 1;
} else {
if (mStagger.checkStagger() == 0) {
if (mType == 2 && mMotionSeqMngr.getNo() == 8) {
if (mType == 2 && mMotionSeqMngr.getNo() == MOT_HELP_E) {
cage_p = (obj_so_class*)mActrMngr[0].getActorP();
if (cage_p != NULL && cage_p->partBreak() == 1) {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(9, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_HELP_C, -1.0f, 0, 0);
}
}
@ -1024,17 +1136,17 @@ int daNpc_Saru_c::wait(void* param_1) {
attention_info.flags = 0;
} else {
if (mType == 0) {
if (mMotionSeqMngr.getNo() == 5) {
if (mMotionSeqMngr.getNo() == MOT_SCARED_LOOK) {
if (mMotionSeqMngr.checkEndSequence() != 0) {
mMode = 1;
}
} else if (field_0xfd4 != 0 && cLib_calcTimer(&field_0xfd4) == 0 && mType == 0 && field_0xfd9 == 0) {
mFaceMotionSeqMngr.setNo(0, -1.0f, 0, 0);
mMotionSeqMngr.setNo(5, -1.0f, 0, 0);
mFaceMotionSeqMngr.setNo(FACE_NONE, -1.0f, 0, 0);
mMotionSeqMngr.setNo(MOT_SCARED_LOOK, -1.0f, 0, 0);
}
}
if (mTwilight == false) {
if (!mTwilight) {
srchPlayerActor();
}
}
@ -1055,7 +1167,7 @@ int daNpc_Saru_c::wait(void* param_1) {
}
if (mFindCount != 0 && iVar1 == 0) {
mEvtNo = 2;
mEvtNo = EVENT_YM_LOOK;
field_0xfd8 = 1;
}
} else {
@ -1138,23 +1250,6 @@ static int daNpc_Saru_IsDelete(void* param_1) {
/* 80AC4FF4-80AC4FF8 000014 0004+00 1/1 0/0 0/0 .bss l_HIO */
static daNpc_Saru_Param_c l_HIO;
/* 80AC4474-80AC447C 004134 0008+00 1/0 0/0 0/0 .text getHeadJointNo__12daNpc_Saru_cFv */
s32 daNpc_Saru_c::getHeadJointNo() {
return 4;
}
/* 80AC447C-80AC4484 00413C 0008+00 1/0 0/0 0/0 .text getNeckJointNo__12daNpc_Saru_cFv */
s32 daNpc_Saru_c::getNeckJointNo() {
return 3;
}
/* 80AC4484-80AC448C 004144 0008+00 1/0 0/0 0/0 .text getBackboneJointNo__12daNpc_Saru_cFv */
s32 daNpc_Saru_c::getBackboneJointNo() {
return 1;
}
/* 80AC4654-80AC4654 00015C 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
/* 80AC4E24-80AC4E44 -00001 0020+00 1/0 0/0 0/0 .data daNpc_Saru_MethodTable */
static actor_method_class daNpc_Saru_MethodTable = {
(process_method_func)daNpc_Saru_Create,

View File

@ -336,6 +336,7 @@ static cPhs__Step daNpc_Sq_Create(fopAc_ac_c* i_this) {
cPhs__Step step = (cPhs__Step)dComIfG_resLoad(&_this->mPhaseReq, "Sq");
if (step == cPhs_COMPLEATE_e) {
/* dSv_event_flag_c::D_0001 - Ordon Village - Stopped by squirrel in front of house at night */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[25])) {
return cPhs_ERROR_e;
}

View File

@ -1183,8 +1183,11 @@ cPhs__Step daNpcThe_c::create() {
mFlowID = -1;
}
if (mType == TYPE_KAKARIKO && (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[68])
|| dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[78]))) {
if (mType == TYPE_KAKARIKO
/* dSv_event_flag_c::M_035 - Cutscene - [cutscene: 35] after carriage guarding event */
&& (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[68])
/* dSv_event_flag_c::M_045 - Lakebed Temple - Lakebed Temple clear */
|| dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[78]))) {
return cPhs_ERROR_e;
}
@ -1431,6 +1434,7 @@ BOOL daNpcThe_c::doEvent() {
dEvent_manager_c& event_manager = dComIfGp_getEventManager();
if (eventInfo.checkCommandTalk()) {
if (mTwilight) {
/* dSv_event_flag_c::F_0277 - Castle Town - Hear conversation between Telma and Ilia in Telma's shop (Twilight) */
if (daNpcF_chkEvtBit(0x115)) {
mOrderEvtNo = 2;
} else {

View File

@ -352,7 +352,10 @@ void daNPC_TK_c::executeFly() {
mpMaster = NULL;
}
}
if (mpMaster != NULL && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0xcf]) != 0) {
if (mpMaster != NULL
/* dSv_event_flag_c::F_0207 - Ordon Village - Viewed Hanch, the Hawker cutscene */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0xCF])) {
setActionMode(6);
mSphere.OffCoSetBit();
}
@ -1271,6 +1274,7 @@ void daNPC_TK_c::executeBack() {
}
if (fopAcM_GetName(field_0x634) == PROC_OBJ_KAGO &&
/* dSv_event_flag_c::F_0577 - Ordon Village - 2nd Day - Retrieved basket from monkey (hit hawk) */
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241]))
{
Z2GetAudioMgr()->changeBgmStatus(1);
@ -1375,10 +1379,12 @@ void daNPC_TK_c::executeBack() {
if (current.pos.absXZ(playerPos) < 200.0f) {
field_0x6b4 = 0;
if (fopAcM_GetName(field_0x634) == PROC_OBJ_KAGO &&
/* dSv_event_flag_c::F_0577 - Ordon Village - 2nd Day - Retrieved basket from monkey (hit hawk) */
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241]))
{
Z2GetAudioMgr()->changeBgmStatus(0);
/* dSv_event_flag_c::F_0577 - Ordon Village - 2nd Day - Retrieved basket from monkey (hit hawk) */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x241]);
field_0x6b8 = 0x46;

View File

@ -433,6 +433,7 @@ void daNpc_Uri_c::reset() {
field_0xfd8 = cStack_44;
field_0xfe4.setall(0);
field_0xfe4.y = cLib_targetAngleY(&acStack_38, &field_0xfd8);
/* dSv_event_flag_c::F_0032 - Ordon Ranch - 3rd day - First convo with fado (before forced goat chase) */
if (daNpcT_chkEvtBit(0x25)) {
setPos(cStack_44);
cStack_a0.y = cLib_targetAngleY(&acStack_38, &cStack_44);
@ -445,15 +446,23 @@ void daNpc_Uri_c::reset() {
cStack_a0.y = cLib_targetAngleY(&acStack_38, &cStack_44);
mPath.setNextIdx(mPath.getNumPnts());
}
if (daNpcT_chkEvtBit(0x20) != 0 || daNpcT_chkEvtBit(0x1e) != 0 ||
daNpcT_chkEvtBit(0x92) != 0)
/* dSv_event_flag_c::F_0027 - Ordon Village - Uli tutorial ends (same whether pass or fail) */
if (daNpcT_chkEvtBit(0x20)
/* dSv_event_flag_c::F_0025 - Ordon Village - Pass Uli's pick-up tutorial */
|| daNpcT_chkEvtBit(0x1E)
/* dSv_event_flag_c::F_0048 - Ordon Village - Uli's pick-up tutorial <fail> */
|| daNpcT_chkEvtBit(0x92) )
{
setPos(home.pos);
if (daNpcT_chkEvtBit(0x20) != 0) {
/* dSv_event_flag_c::F_0027 - Ordon Village - Uli tutorial ends (same whether pass or fail) */
if (daNpcT_chkEvtBit(0x20)) {
field_0x100d = 1;
} else {
if (daNpcT_chkEvtBit(0x1e) != 0 || daNpcT_chkEvtBit(0x92) != 0) {
/* dSv_event_flag_c::F_0025 - Ordon Village - Pass Uli's pick-up tutorial */
if (daNpcT_chkEvtBit(0x1E)
/* dSv_event_flag_c::F_0048 - Ordon Village - Uli's pick-up tutorial <fail> */
|| daNpcT_chkEvtBit(0x92)) {
field_0x100f = 1;
}
}
@ -469,7 +478,9 @@ void daNpc_Uri_c::reset() {
break;
}
/* T_0007 - Ordon Village - During Uli's pick-up tutorial */
daNpcT_offTmpBit(7);
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
dComIfGs_offTmpBit(0x1308);
setAngle(cStack_a0);
}
@ -551,8 +562,13 @@ BOOL daNpc_Uri_c::checkChangeEvt() {
switch (mType) {
case TYPE_1:
if (!daNpcT_chkEvtBit(0x1E) && !daNpcT_chkEvtBit(0x92)) {
/* dSv_event_flag_c::F_0025 - Ordon Village - Pass Uli's pick-up tutorial */
if (!daNpcT_chkEvtBit(0x1E)
/* dSv_event_flag_c::F_0048 - Ordon Village - Uli's pick-up tutorial <fail> */
&& !daNpcT_chkEvtBit(0x92)) {
/* T_0007 - Ordon Village - During Uli's pick-up tutorial */
if (!daNpcT_chkTmpBit(0x7)) {
/* dSv_event_flag_c::F_0031 - Ordon Village - 2nd day - Spoke to Uli bfore finding basket */
if (daNpcT_chkEvtBit(0x24)) {
mEvtNo = 4;
} else {
@ -561,6 +577,7 @@ BOOL daNpc_Uri_c::checkChangeEvt() {
evtChange();
return TRUE;
}
/* dSv_event_flag_c::F_0027 - Ordon Village - Uli tutorial ends (same whether pass or fail) */
} else if (!daNpcT_chkEvtBit(0x20) && field_0x100b == 0) {
mEvtNo = 7;
evtChange();
@ -568,7 +585,10 @@ BOOL daNpc_Uri_c::checkChangeEvt() {
}
break;
case TYPE_4:
if (daNpcT_chkEvtBit(0x3D) && !daNpcT_chkEvtBit(0x14A)) {
/* dSv_event_flag_c::M_028 - Cutscene - [cutscene: 14] restore mountain spirit - Reuinion with Colin et al. */
if (daNpcT_chkEvtBit(0x3D)
/* dSv_event_flag_c::F_0330 - Ordon Village - Meet again with Uli for the first time (first forced conversation) */
&& !daNpcT_chkEvtBit(0x14A)) {
mEvtNo = 10;
evtChange();
return TRUE;
@ -889,6 +909,7 @@ int daNpc_Uri_c::selectAction() {
field_0xfc0[0] = &daNpc_Uri_c::sitWait;
} else {
if (field_0x100e != NULL) {
/* T_0007 - Ordon Village - During Uli's pick-up tutorial */
if (daNpcT_chkTmpBit(7) && field_0x100f == NULL) {
field_0xfc0[0] = &daNpc_Uri_c::walk;
} else {
@ -1159,8 +1180,11 @@ int daNpc_Uri_c::cutEndCarryTutorial(int param_1) {
fopAcM_createItemForPresentDemo(&current.pos, local_48, 0, -1, -1, NULL, NULL);
}
if (fopAcM_IsExecuting(mItemPartnerId)) {
/* T_0007 - Ordon Village - During Uli's pick-up tutorial */
daNpcT_offTmpBit(7);
/* dSv_event_tmp_flag_c::T_0009 - Ordon Village - Walked a bit during Uli's pick-up tutorial */
daNpcT_offTmpBit(10);
/* dSv_event_tmp_flag_c::T_0031 - Ordon Village - Borrow Rusl's sword */
daNpcT_offTmpBit(0x20);
field_0x100b = 1;
mEvtNo = 1;
@ -1255,7 +1279,7 @@ int daNpc_Uri_c::cutFindWolf(int param_1) {
mGndChk.SetPos(&cStack_2c);
cStack_2c.y = dComIfG_Bgsp().GroundCross(&mGndChk);
daPy_getPlayerActorClass()->setPlayerPosAndAngle(&cStack_2c, sVar9 - (s16)0x8000, 0);
// GUARD_URI
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
dComIfGs_onTmpBit(0x1308);
break;
case 1:
@ -1310,6 +1334,7 @@ int daNpc_Uri_c::cutMeetingAgain(int param_1) {
switch (iVar10) {
case 0:
mJntAnm.lookPlayer(0);
/* dSv_event_tmp_flag_c::T_0010 - General use - General use temporary flag (flow control) A */
daNpcT_offTmpBit(0xB);
initTalk(mFlowNodeNo, NULL);
break;
@ -1432,7 +1457,10 @@ int daNpc_Uri_c::wait(void* param_0) {
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
} else {
if (field_0x100f) {
if (!daNpcT_chkEvtBit(0x1e) && !daNpcT_chkEvtBit(0x92)) {
/* dSv_event_flag_c::F_0025 - Ordon Village - Pass Uli's pick-up tutorial */
if (!daNpcT_chkEvtBit(0x1E)
/* dSv_event_flag_c::F_0048 - Ordon Village - Uli's pick-up tutorial <fail> */
&& !daNpcT_chkEvtBit(0x92)) {
mFaceMotionSeqMngr.setNo(17, -1.0f, 0, 0);
mMotionSeqMngr.setNo(8, -1.0f, 0, 0);
} else {
@ -1440,6 +1468,7 @@ int daNpc_Uri_c::wait(void* param_0) {
mMotionSeqMngr.setNo(0, -1.0f, 0, 0);
}
} else {
/* dSv_event_flag_c::F_0031 - Ordon Village - 2nd day - Spoke to Uli bfore finding basket */
if (daNpcT_chkEvtBit(0x24)) {
mFaceMotionSeqMngr.setNo(5, -1.0f, 0, 0);
mMotionSeqMngr.setNo(12, -1.0f, 0, 0);
@ -1451,6 +1480,7 @@ int daNpc_Uri_c::wait(void* param_0) {
}
break;
case TYPE_3:
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
if (dComIfGs_isTmpBit(0x1308)) {
mFaceMotionSeqMngr.setNo(12, -1.0f, 0, 0);
mMotionSeqMngr.setNo(22, -1.0f, 0, 0);
@ -1468,6 +1498,7 @@ int daNpc_Uri_c::wait(void* param_0) {
case MODE_RUN:
switch (mType) {
case TYPE_1:
/* T_0007 - Ordon Village - During Uli's pick-up tutorial */
if (daNpcT_chkTmpBit(0x7)) {
if (chkPlayerCarryBasket()) {
switch (getTutorialCond(daPy_getPlayerActorClass()->current.pos)) {
@ -1483,7 +1514,10 @@ int daNpc_Uri_c::wait(void* param_0) {
}
}
} else {
if (!daNpcT_chkEvtBit(0x1e) && !daNpcT_chkEvtBit(0x92)) {
/* dSv_event_flag_c::F_0025 - Ordon Village - Pass Uli's pick-up tutorial */
if (!daNpcT_chkEvtBit(0x1E)
/* dSv_event_flag_c::F_0048 - Ordon Village - Uli's pick-up tutorial <fail> */
&& !daNpcT_chkEvtBit(0x92)) {
cXyz acStack_70 = getAttnPos(daPy_getPlayerActorClass());
int dist_index = attention_info.distances[1];
f32 fVar2 = dComIfGp_getAttention()->getDistTable(dist_index).mLowerY * -1.0f;
@ -1504,7 +1538,8 @@ int daNpc_Uri_c::wait(void* param_0) {
case TYPE_2:
break;
case TYPE_3:
if (daNpcT_chkEvtBit(0xcd)) {
/* dSv_event_flag_c::F_0205 - Ordon Village - Heard Rusl and Uli talking in Ordon village at night */
if (daNpcT_chkEvtBit(0xCD)) {
cXyz cStack_7c = getAttnPos(daPy_getPlayerActorClass());
if (chkPointInArea(cStack_7c, attention_info.position,
daNpc_Uri_Param_c::m.field_0x54, daNpc_Uri_Param_c::m.field_0x58,
@ -1531,6 +1566,7 @@ int daNpc_Uri_c::wait(void* param_0) {
mSpeakEvent = true;
field_0xe33 = true;
}
/* dSv_event_tmp_flag_c::GUARD_URI - Ordon Village - Rusl is guarding Uli, Ordon village night */
if (dComIfGs_isTmpBit(0x1308)) {
mPlayerActorMngr.entry(daPy_getPlayerActorClass());
mJntAnm.lookPlayer(0);
@ -1729,7 +1765,13 @@ int daNpc_Uri_c::sitWait(void* param_0) {
}
break;
case TYPE_4:
if (daNpcT_chkEvtBit(0x3D) && (daNpcT_chkEvtBit(0x14a) || daNpcT_chkEvtBit(0x204)))
/* dSv_event_flag_c::M_028 - Cutscene - [cutscene: 14] restore mountain spirit - Reuinion with Colin et al. */
if (daNpcT_chkEvtBit(0x3D)
/* dSv_event_flag_c::F_0330 - Ordon Village - Meet again with Uli for the first time
(first forced conversation) */
&& (daNpcT_chkEvtBit(0x14A)
/* dSv_event_flag_c::F_0516 - Ordon Village - Told Uli directly about having found kids */
|| daNpcT_chkEvtBit(0x204)))
{
mFaceMotionSeqMngr.setNo(17, -1.0f, 0, 0);
mMotionSeqMngr.setNo(3, -1.0f, 0, 0);
@ -1742,7 +1784,9 @@ int daNpc_Uri_c::sitWait(void* param_0) {
mMode = MODE_RUN;
}
case MODE_RUN:
if (mType == TYPE_4 && !daNpcT_chkEvtBit(0x14a)) {
/* dSv_event_flag_c::F_0330 - Ordon Village - Meet again with Uli for the first time
(first forced conversation) */
if (mType == TYPE_4 && !daNpcT_chkEvtBit(0x14A)) {
mSpeakEvent = true;
field_0xe33 = true;
}

View File

@ -592,7 +592,11 @@ static int daObjARI_Execute(daObjARI_c* i_this) {
}
/* 80BA54F8-80BA54FC 0000F0 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x01A5, 0x01A6};
static u16 const l_musiya_num[2] = {
0x01A5, /* dSv_event_flag_c::F_0421 - Misc. - Ant (M) */
0x01A6, /* dSv_event_flag_c::F_0422 - Misc. - Ant (F) */
};
/* 80BA483C-80BA49E8 00229C 01AC+00 1/1 0/0 0/0 .text CreateChk__10daObjARI_cFv */
bool daObjARI_c::CreateChk() {

View File

@ -600,7 +600,10 @@ static int daObjBATTA_Execute(daObjBATTA_c* i_this) {
/* ############################################################################################## */
/* 80BACA5C-80BACA60 0000EC 0004+00 0/1 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = { 0x197, 0x198 };
static u16 const l_musiya_num[2] = {
0x197, /* dSv_event_flag_c::F_0407 - Misc. - Grasshopper (M) */
0x198, /* dSv_event_flag_c::F_0408 - Misc. - Grasshopper (F) */
};
/* 80BAC194-80BAC6A0 002454 050C+00 1/1 0/0 0/0 .text create__12daObjBATTA_cFv */
int daObjBATTA_c::create() {

View File

@ -67,6 +67,7 @@ static Vec const l_roll_crash_check_areaR[] = {
/* 80578E14-80578EA0 000174 008C+00 1/0 0/0 0/0 .text Create__13daObjBkDoor_cFv */
int daObjBkDoor_c::Create() {
/* dSv_event_flag_c::F_0011 - Ordon Ranch - Fence jumping complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[15])) {
shape_angle.y -= 0x8000;
}
@ -120,16 +121,16 @@ void daObjBkDoor_c::openCheck() {
}
}
/* 8057902C-805792E4 00038C 02B8+00 1/0 0/0 0/0 .text Execute__13daObjBkDoor_cFPPA3_A4_f
*/
/* 8057902C-805792E4 00038C 02B8+00 1/0 0/0 0/0 .text Execute__13daObjBkDoor_cFPPA3_A4_f */
int daObjBkDoor_c::Execute(Mtx** i_mtxP) {
daPy_py_c* player = dComIfGp_getLinkPlayer();
BOOL unk_event = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[15]);
/* dSv_event_flag_c::F_0011 - Ordon Ranch - Fence jumping complete */
BOOL fence_jumping_complete = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[15]);
mFrameCounter++;
openCheck();
if (player->checkFrontRollCrash() && !unk_event) {
if (player->checkFrontRollCrash() && !fence_jumping_complete) {
cXyz check_area_posA;
cXyz check_area_posB;

View File

@ -699,7 +699,15 @@ int daObjBossWarp_c::demoProc() {
};
static int const l_dangeon_clr_bitNo[9] = {
0x37, 0x40, 0x4E, 0x109, 0x10A, 0x10B, 0x10C, -1, -1
0x37, /* dSv_event_flag_c::M_022 - Forest Temple - Forest Temple clear (Midna creates warp hole) */
0x40, /* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
0x4E, /* dSv_event_flag_c::M_045 - Lakebed Temple - Lakebed Temple clear */
0x109, /* dSv_event_flag_c::F_0265 - Arbiter's Grounds - Arbiter's Grounds clear */
0x10A, /* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
0x10B, /* dSv_event_flag_c::F_0267 - Temple of Time - Temple of Time clear */
0x10C,
-1,
-1
};
daPy_py_c* player = (daPy_py_c*)daPy_getPlayerActorClass();

View File

@ -1389,21 +1389,31 @@ int daObjCarry_c::checkCreate_LightBallA() {
fopAc_ac_c* var_r29 = NULL;
if (daPy_py_c::checkCarryStartLightBallA()) {
/* Palace of Twilight - Palace of Twilight use 1 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0311);
/* Palace of Twilight - Palace of Twilight use 3 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0313);
/* Palace of Twilight - Palace of Twilight use 5 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0315);
/* Palace of Twilight - Palace of Twilight use 7 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0317);
/* Palace of Twilight - Palace of Twilight use 9 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0319);
if (dComIfGp_roomControl_getStayNo() == 51) {
/* Palace of Twilight - Palace of Twilight use 5 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0315);
} else if (dComIfGp_roomControl_getStayNo() == 52) {
/* Palace of Twilight - Palace of Twilight use 9 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0319);
} else if (dComIfGp_roomControl_getStayNo() == 0) {
/* Palace of Twilight - Palace of Twilight use 1 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0311);
} else if (dComIfGp_roomControl_getStayNo() == 1 || dComIfGp_roomControl_getStayNo() == 2) {
/* Palace of Twilight - Palace of Twilight use 3 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0313);
} else {
/* Palace of Twilight - Palace of Twilight use 7 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0317);
}
@ -1415,13 +1425,19 @@ int daObjCarry_c::checkCreate_LightBallA() {
return cPhs_INIT_e;
}
}
} else if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0313) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0315) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0317) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0319))
/* Palace of Twilight - Palace of Twilight use 1 */
} else if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311)
/* Palace of Twilight - Palace of Twilight use 3 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0313)
/* Palace of Twilight - Palace of Twilight use 5 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0315)
/* Palace of Twilight - Palace of Twilight use 7 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0317)
/* Palace of Twilight - Palace of Twilight use 9 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0319))
{
if (dComIfGp_roomControl_getStayNo() != 51) {
/* Palace of Twilight - Palace of Twilight use 1 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311)) {
resetIconPosForLightBallA();
}
@ -1430,12 +1446,23 @@ int daObjCarry_c::checkCreate_LightBallA() {
OS_REPORT("\x1B[33m光球玉とリンクの位置が違うので消します<0>\n\x1B[m");
return cPhs_ERROR_e;
}
} else if ((dComIfGs_isEventBit(dSv_event_flag_c::F_0311) && dComIfGp_roomControl_getStayNo()) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0313) && dComIfGp_roomControl_getStayNo() != 1 && dComIfGp_roomControl_getStayNo() != 2) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0315) && dComIfGp_roomControl_getStayNo() != 51) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0319) && dComIfGp_roomControl_getStayNo() != 52) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0317) && dComIfGp_roomControl_getStayNo() != 4 && dComIfGp_roomControl_getStayNo() != 5))
/* Palace of Twilight - Palace of Twilight use 1 */
} else if ((dComIfGs_isEventBit(dSv_event_flag_c::F_0311)
&& dComIfGp_roomControl_getStayNo()) ||
/* Palace of Twilight - Palace of Twilight use 3 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0313)
&& dComIfGp_roomControl_getStayNo() != 1 && dComIfGp_roomControl_getStayNo() != 2) ||
/* Palace of Twilight - Palace of Twilight use 5 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0315)
&& dComIfGp_roomControl_getStayNo() != 51) ||
/* Palace of Twilight - Palace of Twilight use 9 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0319)
&& dComIfGp_roomControl_getStayNo() != 52) ||
/* Palace of Twilight - Palace of Twilight use 7 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0317)
&& dComIfGp_roomControl_getStayNo() != 4 && dComIfGp_roomControl_getStayNo() != 5))
{
/* Palace of Twilight - Palace of Twilight use 1 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311)) {
resetIconPosForLightBallA();
} else {
@ -1455,12 +1482,12 @@ int daObjCarry_c::checkCreate_LightBallA() {
for (int i = 0; i < 6; i++) {
static const u16 l_event_bitA[] = {
dSv_event_flag_c::F_0551,
dSv_event_flag_c::F_0552,
dSv_event_flag_c::F_0553,
dSv_event_flag_c::F_0554,
dSv_event_flag_c::F_0555,
dSv_event_flag_c::F_0556
dSv_event_flag_c::F_0551, /* Palace of Twilight - Palace of Twilight control use 1 */
dSv_event_flag_c::F_0552, /* Palace of Twilight - Palace of Twilight control use 2 */
dSv_event_flag_c::F_0553, /* Palace of Twilight - Palace of Twilight control use 3 */
dSv_event_flag_c::F_0554, /* Palace of Twilight - Palace of Twilight control use 4 */
dSv_event_flag_c::F_0555, /* Palace of Twilight - Palace of Twilight control use 5 */
dSv_event_flag_c::F_0556, /* Palace of Twilight - Palace of Twilight control use 6 */
};
if (dComIfGs_isEventBit(l_event_bitA[i])) {
@ -1506,21 +1533,31 @@ BOOL daObjCarry_c::checkCreate_LightBallB() {
fopAc_ac_c* var_r29 = NULL;
if (daPy_py_c::checkCarryStartLightBallB()) {
/* Palace of Twilight - Palace of Twilight use 2 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0312);
/* Palace of Twilight - Palace of Twilight use 4 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0314);
/* Palace of Twilight - Palace of Twilight use 6 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0316);
/* Palace of Twilight - Palace of Twilight use 8 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0318);
/* Palace of Twilight - Palace of Twilight use 10 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0320);
if (dComIfGp_roomControl_getStayNo() == 51) {
/* Palace of Twilight - Palace of Twilight use 6 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0316);
} else if (dComIfGp_roomControl_getStayNo() == 52) {
/* Palace of Twilight - Palace of Twilight use 10 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0320);
} else if (dComIfGp_roomControl_getStayNo() == 0) {
/* Palace of Twilight - Palace of Twilight use 2 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0312);
} else if (dComIfGp_roomControl_getStayNo() == 1 || dComIfGp_roomControl_getStayNo() == 2) {
/* Palace of Twilight - Palace of Twilight use 4 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0314);
} else {
/* Palace of Twilight - Palace of Twilight use 8 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0318);
}
@ -1532,13 +1569,19 @@ BOOL daObjCarry_c::checkCreate_LightBallB() {
return cPhs_INIT_e;
}
}
} else if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0314) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0316) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0318) &&
!dComIfGs_isEventBit(dSv_event_flag_c::F_0320))
/* Palace of Twilight - Palace of Twilight use 2 */
} else if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312)
/* Palace of Twilight - Palace of Twilight use 4 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0314)
/* Palace of Twilight - Palace of Twilight use 6 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0316)
/* Palace of Twilight - Palace of Twilight use 8 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0318)
/* Palace of Twilight - Palace of Twilight use 10 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0320))
{
if (dComIfGp_roomControl_getStayNo() != 52) {
/* Castle Town - Showed reciept to town doctor */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0321)) {
resetIconPosForLightBallB();
}
@ -1547,12 +1590,23 @@ BOOL daObjCarry_c::checkCreate_LightBallB() {
OS_REPORT("\x1B[33m光球玉とリンクの位置が違うので消します<2>\n\x1B[m");
return cPhs_ERROR_e;
}
} else if ((dComIfGs_isEventBit(dSv_event_flag_c::F_0312) && dComIfGp_roomControl_getStayNo()) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0314) && dComIfGp_roomControl_getStayNo() != 1 && dComIfGp_roomControl_getStayNo() != 2) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0316) && dComIfGp_roomControl_getStayNo() != 51) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0320) && dComIfGp_roomControl_getStayNo() != 52) ||
(dComIfGs_isEventBit(dSv_event_flag_c::F_0318) && dComIfGp_roomControl_getStayNo() != 4 && dComIfGp_roomControl_getStayNo() != 5))
/* Palace of Twilight - Palace of Twilight use 2 */
} else if ((dComIfGs_isEventBit(dSv_event_flag_c::F_0312)
&& dComIfGp_roomControl_getStayNo()) ||
/* Palace of Twilight - Palace of Twilight use 4 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0314)
&& dComIfGp_roomControl_getStayNo() != 1 && dComIfGp_roomControl_getStayNo() != 2) ||
/* Palace of Twilight - Palace of Twilight use 6 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0316)
&& dComIfGp_roomControl_getStayNo() != 51) ||
/* Palace of Twilight - Palace of Twilight use 10 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0320)
&& dComIfGp_roomControl_getStayNo() != 52) ||
/* Palace of Twilight - Palace of Twilight use 8 */
(dComIfGs_isEventBit(dSv_event_flag_c::F_0318)
&& dComIfGp_roomControl_getStayNo() != 4 && dComIfGp_roomControl_getStayNo() != 5))
{
/* Palace of Twilight - Palace of Twilight use 2 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312)) {
resetIconPosForLightBallB();
} else {
@ -1572,12 +1626,12 @@ BOOL daObjCarry_c::checkCreate_LightBallB() {
for (int i = 0; i < 6; i++) {
static const u16 l_event_bitB[] = {
dSv_event_flag_c::F_0557,
dSv_event_flag_c::F_0558,
dSv_event_flag_c::F_0559,
dSv_event_flag_c::F_0560,
dSv_event_flag_c::F_0561,
dSv_event_flag_c::F_0562,
dSv_event_flag_c::F_0557, /* Palace of Twilight - Palace of Twilight control use 7 */
dSv_event_flag_c::F_0558, /* Palace of Twilight - Palace of Twilight control use 8 */
dSv_event_flag_c::F_0559, /* Palace of Twilight - Palace of Twilight control use 9 */
dSv_event_flag_c::F_0560, /* Palace of Twilight - Palace of Twilight control use 10 */
dSv_event_flag_c::F_0561, /* Palace of Twilight - Palace of Twilight control use 11 */
dSv_event_flag_c::F_0562, /* Palace of Twilight - Palace of Twilight control use 12 */
};
if (dComIfGs_isEventBit(l_event_bitB[i])) {
@ -1636,15 +1690,13 @@ BOOL daObjCarry_c::checkCreate_Lv8Ball() {
return cPhs_NEXT_e;
}
/* 80471680-804716D4 002700 0054+00 1/1 0/0 0/0 .text resetIconPosForLightBallA__12daObjCarry_cFv
*/
/* 80471680-804716D4 002700 0054+00 1/1 0/0 0/0 .text resetIconPosForLightBallA__12daObjCarry_cFv */
void daObjCarry_c::resetIconPosForLightBallA() {
cXyz pos(0.0f, 100.0f, -3930.0f);
dTres_c::setIconPositionOfCarryLight(getTrboxBit(), &pos, 51);
}
/* 804716D4-804717B4 002754 00E0+00 1/1 0/0 0/0 .text
* setIconPosForLightBallAAtR00__12daObjCarry_cFv */
/* 804716D4-804717B4 002754 00E0+00 1/1 0/0 0/0 .text setIconPosForLightBallAAtR00__12daObjCarry_cFv */
void daObjCarry_c::setIconPosForLightBallAAtR00() {
cXyz pos;
@ -1659,8 +1711,7 @@ void daObjCarry_c::setIconPosForLightBallAAtR00() {
dTres_c::setIconPositionOfCarryLight(getTrboxBit(), &pos, 0);
}
/* 804717B4-80471894 002834 00E0+00 1/1 0/0 0/0 .text
* setIconPosForLightBallBAtR00__12daObjCarry_cFv */
/* 804717B4-80471894 002834 00E0+00 1/1 0/0 0/0 .text setIconPosForLightBallBAtR00__12daObjCarry_cFv */
void daObjCarry_c::setIconPosForLightBallBAtR00() {
cXyz pos;
@ -1675,8 +1726,7 @@ void daObjCarry_c::setIconPosForLightBallBAtR00() {
dTres_c::setIconPositionOfCarryLight(getTrboxBit(), &pos, 0);
}
/* 80471894-804718E8 002914 0054+00 1/1 0/0 0/0 .text resetIconPosForLightBallB__12daObjCarry_cFv
*/
/* 80471894-804718E8 002914 0054+00 1/1 0/0 0/0 .text resetIconPosForLightBallB__12daObjCarry_cFv */
void daObjCarry_c::resetIconPosForLightBallB() {
cXyz pos(0.0f, 100.0f, -3930.0f);
dTres_c::setIconPositionOfCarryLight(getTrboxBit(), &pos, 52);
@ -2068,31 +2118,48 @@ int daObjCarry_c::_delete() {
}
if (mType == TYPE_BALL_S) {
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311) || (player != NULL && player->getGrabActorID() != fopAcM_GetID(this))) {
/* Palace of Twilight - Palace of Twilight use 1 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311)
|| (player != NULL && player->getGrabActorID() != fopAcM_GetID(this))) {
/* Palace of Twilight - Palace of Twilight use 3 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0313);
/* Palace of Twilight - Palace of Twilight use 5 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0315);
/* Palace of Twilight - Palace of Twilight use 7 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0317);
/* Palace of Twilight - Palace of Twilight use 9 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0319);
/* Palace of Twilight - Palace of Twilight use 1 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311)) {
cXyz pos(0.0f, 100.0f, -3930.0f);
dTres_c::setIconPositionOfCarryLight(getTrboxBit(), &pos, 51);
}
}
if (fopAcM_isSwitch(this, 90) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0311) && player != NULL) {
if (fopAcM_isSwitch(this, 90)
/* Palace of Twilight - Palace of Twilight use 1 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0311)
&& player != NULL) {
if (player->getGrabActorID() != fopAcM_GetID(this)) {
fopAcM_onSwitch(this, 170);
// "Midna Hint Switch set!\n"
OSReport_Error("ミドナヒント用スイッチ立てました!\n");
}
}
} else if (mType == TYPE_BALL_S_2 && (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312) || (player != NULL && player->getGrabActorID() != fopAcM_GetID(this)))) {
/* Palace of Twilight - Palace of Twilight use 2 */
} else if (mType == TYPE_BALL_S_2 && (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312)
|| (player != NULL && player->getGrabActorID() != fopAcM_GetID(this)))) {
/* Palace of Twilight - Palace of Twilight use 4 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0314);
/* Palace of Twilight - Palace of Twilight use 6 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0316);
/* Palace of Twilight - Palace of Twilight use 8 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0318);
/* Palace of Twilight - Palace of Twilight use 10 */
dComIfGs_offEventBit(dSv_event_flag_c::F_0320);
/* Palace of Twilight - Palace of Twilight use 2 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312)) {
cXyz pos(0.0f, 100.0f, -3930.0f);
dTres_c::setIconPositionOfCarryLight(getTrboxBit(), &pos, 52);
@ -2321,8 +2388,7 @@ void daObjCarry_c::mode_proc_call() {
}
}
/* 804733E8-804734B0 004468 00C8+00 15/15 0/0 0/0 .text mode_init_wait__12daObjCarry_cFv
*/
/* 804733E8-804734B0 004468 00C8+00 15/15 0/0 0/0 .text mode_init_wait__12daObjCarry_cFv */
void daObjCarry_c::mode_init_wait() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -2392,8 +2458,7 @@ int daObjCarry_c::mode_proc_wait() {
return 1;
}
/* 80473718-804737CC 004798 00B4+00 5/5 0/0 0/0 .text mode_init_walk__12daObjCarry_cFUc
*/
/* 80473718-804737CC 004798 00B4+00 5/5 0/0 0/0 .text mode_init_walk__12daObjCarry_cFUc */
void daObjCarry_c::mode_init_walk(u8 unused) {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -2517,8 +2582,7 @@ int daObjCarry_c::mode_proc_walk() {
return 1;
}
/* 80473ED8-804741A8 004F58 02D0+00 2/2 0/0 0/0 .text mode_init_carry__12daObjCarry_cFv
*/
/* 80473ED8-804741A8 004F58 02D0+00 2/2 0/0 0/0 .text mode_init_carry__12daObjCarry_cFv */
void daObjCarry_c::mode_init_carry() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -2561,10 +2625,30 @@ void daObjCarry_c::mode_init_carry() {
daPy_py_c* player = daPy_getPlayerActorClass();
if (player->getGrabActorID() == fopAcM_GetID(this)) {
if (mType == TYPE_BALL_S) {
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0313) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0315) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0317) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0319)) {
/* Palace of Twilight - Palace of Twilight use 1 */
if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0311)
/* Palace of Twilight - Palace of Twilight use 3 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0313)
/* Palace of Twilight - Palace of Twilight use 5 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0315)
/* Palace of Twilight - Palace of Twilight use 7 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0317)
/* Palace of Twilight - Palace of Twilight use 9 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0319)) {
/* Palace of Twilight - Palace of Twilight use 5 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0315);
}
} else if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0314) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0316) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0318) && !dComIfGs_isEventBit(dSv_event_flag_c::F_0320)) {
/* Palace of Twilight - Palace of Twilight use 2 */
} else if (!dComIfGs_isEventBit(dSv_event_flag_c::F_0312)
/* Palace of Twilight - Palace of Twilight use 4 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0314)
/* Palace of Twilight - Palace of Twilight use 6 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0316)
/* Palace of Twilight - Palace of Twilight use 8 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0318)
/* Palace of Twilight - Palace of Twilight use 10 */
&& !dComIfGs_isEventBit(dSv_event_flag_c::F_0320)) {
/* Palace of Twilight - Palace of Twilight use 10 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0320);
}
}
@ -2646,8 +2730,7 @@ int daObjCarry_c::mode_proc_carry() {
return 1;
}
/* 80474448-80474540 0054C8 00F8+00 3/3 0/0 1/1 .text mode_init_drop__12daObjCarry_cFUc
*/
/* 80474448-80474540 0054C8 00F8+00 3/3 0/0 1/1 .text mode_init_drop__12daObjCarry_cFUc */
void daObjCarry_c::mode_init_drop(u8 param_0) {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -2700,8 +2783,7 @@ int daObjCarry_c::mode_proc_drop() {
return 1;
}
/* 80474618-80474734 005698 011C+00 2/2 0/0 0/0 .text mode_init_float__12daObjCarry_cFv
*/
/* 80474618-80474734 005698 011C+00 2/2 0/0 0/0 .text mode_init_float__12daObjCarry_cFv */
void daObjCarry_c::mode_init_float() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -2873,8 +2955,7 @@ int daObjCarry_c::mode_proc_sink() {
return 1;
}
/* 80474D64-80474E08 005DE4 00A4+00 1/1 0/0 0/0 .text mode_init_yogan__12daObjCarry_cFv
*/
/* 80474D64-80474E08 005DE4 00A4+00 1/1 0/0 0/0 .text mode_init_yogan__12daObjCarry_cFv */
void daObjCarry_c::mode_init_yogan() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -2969,8 +3050,7 @@ int daObjCarry_c::mode_proc_boomCarry() {
return 1;
}
/* 80475014-804750C8 006094 00B4+00 1/1 0/0 0/0 .text mode_init_growth__12daObjCarry_cFv
*/
/* 80475014-804750C8 006094 00B4+00 1/1 0/0 0/0 .text mode_init_growth__12daObjCarry_cFv */
void daObjCarry_c::mode_init_growth() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -3010,8 +3090,7 @@ int daObjCarry_c::mode_proc_end() {
return 1;
}
/* 80475164-80475210 0061E4 00AC+00 1/1 0/0 0/0 .text mode_init_dbDrop__12daObjCarry_cFUc
*/
/* 80475164-80475210 0061E4 00AC+00 1/1 0/0 0/0 .text mode_init_dbDrop__12daObjCarry_cFUc */
void daObjCarry_c::mode_init_dbDrop(u8 param_0) {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -3031,14 +3110,13 @@ void daObjCarry_c::mode_init_dbDrop(u8 param_0) {
mMode = MODE_DB_DROP;
}
/* 80475210-80475238 006290 0028+00 1/0 0/0 0/0 .text mode_proc_dbDrop__12daObjCarry_cFv
*/
/* 80475210-80475238 006290 0028+00 1/0 0/0 0/0 .text mode_proc_dbDrop__12daObjCarry_cFv */
int daObjCarry_c::mode_proc_dbDrop() {
fopAcM_posMoveF(this, mStts.GetCCMoveP());
return 1;
}
/* 80475238-80475354 0062B8 011C+00 1/1 0/0 0/0 .text mode_init_hookCarry__12daObjCarry_cFv */
/* 80475238-80475354 0062B8 011C+00 1/1 0/0 0/0 .text mode_init_hookCarry__12daObjCarry_cFv */
void daObjCarry_c::mode_init_hookCarry() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -3067,7 +3145,7 @@ void daObjCarry_c::mode_init_hookCarry() {
mMode = MODE_HOOK_CARRY;
}
/* 80475354-80475384 0063D4 0030+00 1/0 0/0 0/0 .text mode_proc_hookCarry__12daObjCarry_cFv */
/* 80475354-80475384 0063D4 0030+00 1/0 0/0 0/0 .text mode_proc_hookCarry__12daObjCarry_cFv */
int daObjCarry_c::mode_proc_hookCarry() {
if (!fopAcM_checkHookCarryNow(this)) {
mode_init_wait();
@ -3107,7 +3185,7 @@ int daObjCarry_c::mode_proc_fit() {
return 1;
}
/* 80475478-804754D0 0064F8 0058+00 1/0 0/0 0/0 .text mode_proc_controled__12daObjCarry_cFv */
/* 80475478-804754D0 0064F8 0058+00 1/0 0/0 0/0 .text mode_proc_controled__12daObjCarry_cFv */
int daObjCarry_c::mode_proc_controled() {
calc_rot_call();
setBaseMtx();
@ -3116,8 +3194,7 @@ int daObjCarry_c::mode_proc_controled() {
return 1;
}
/* 804754D0-80475598 006550 00C8+00 1/1 0/0 0/0 .text mode_init_resetLightBall__12daObjCarry_cFv
*/
/* 804754D0-80475598 006550 00C8+00 1/1 0/0 0/0 .text mode_init_resetLightBall__12daObjCarry_cFv */
void daObjCarry_c::mode_init_resetLightBall() {
mAcch.ClrMoveBGOnly();
mAcch.ClrGrndNone();
@ -3496,13 +3573,13 @@ bool daObjCarry_c::bg_damage_proc_bokkuri() {
return rt;
}
/* 80476930-80476938 0079B0 0008+00 2/0 0/0 0/0 .text bg_damage_proc_LightBall__12daObjCarry_cFv
/* 80476930-80476938 0079B0 0008+00 2/0 0/0 0/0 .text bg_damage_proc_LightBall__12daObjCarry_cFv
*/
bool daObjCarry_c::bg_damage_proc_LightBall() {
return false;
}
/* 80476938-80476940 0079B8 0008+00 1/0 0/0 0/0 .text bg_damage_proc_Lv8Ball__12daObjCarry_cFv */
/* 80476938-80476940 0079B8 0008+00 1/0 0/0 0/0 .text bg_damage_proc_Lv8Ball__12daObjCarry_cFv */
bool daObjCarry_c::bg_damage_proc_Lv8Ball() {
return false;
}

View File

@ -515,7 +515,10 @@ static int daObjCHO_Execute(daObjCHO_c* i_this) {
}
/* 80BCC670-80BCC674 0000F8 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x0193, 0x0194};
static u16 const l_musiya_num[2] = {
0x0193, /* dSv_event_flag_c::F_0403 - Misc. - Butterfly (M) */
0x0194, /* dSv_event_flag_c::F_0404 - Misc. - Butterfly (F) */
};
/* 80BCBE70-80BCC01C 001C50 01AC+00 1/1 0/0 0/0 .text CreateChk__10daObjCHO_cFv */
bool daObjCHO_c::CreateChk() {

View File

@ -490,7 +490,10 @@ static int daObjDAN_Execute(daObjDAN_c* i_this) {
}
/* 80BDC460-80BDC464 0000B0 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x019B, 0x019C};
static u16 const l_musiya_num[2] = {
0x019B, /* dSv_event_flag_c::F_0411 - Misc. - Pill bug (M) */
0x019C, /* dSv_event_flag_c::F_0412 - Misc. - Pill bug (F) */
};
/* 80BDBB0C-80BDBCB8 00166C 01AC+00 1/1 0/0 0/0 .text CreateChk__10daObjDAN_cFv */
bool daObjDAN_c::CreateChk() {

View File

@ -124,6 +124,7 @@ void daObjDrop_c::dropGet() {
if (dComIfGp_getStartStageDarkArea() == 2 &&
dComIfGs_getLightDropNum(dComIfGp_getStartStageDarkArea()) == 15)
{
/* dSv_event_flag_c::F_0005 - Misc. - Gathered 14 Tears of Light in area 4 */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[9]);
}

View File

@ -154,6 +154,7 @@ int daObjFchain_c::execute() {
for (i = 0; i < 22; i++, var_r28++, sp_30++) {
sp_12c = (*var_r28 - *sp_38) + *sp_30;
sp_12c.y += -1.5f;
/* dSv_event_flag_c::M_011 - Inside Hyrule Castle - Midna removes wolf's chains in prison */
if (dComIfGs_isEventBit(0x510)) {
if (isWolf) {
checkPlayerFoot(var_r28, player->getLeftHandPosP(), &sp_12c);
@ -171,6 +172,7 @@ int daObjFchain_c::execute() {
}
sp_38 = var_r28;
}
/* dSv_event_flag_c::M_011 - Inside Hyrule Castle - Midna removes wolf's chains in prison */
if (isWolf && !dComIfGs_isEventBit(0x510)) {
mDoMtx_multVec(
player->getModelJointMtx(17), &wolfChainBaseOffset,
@ -284,6 +286,7 @@ void daObjFchain_shape_c::draw() {
dKy_GxFog_tevstr_set(tevStr);
GXLoadLightObjImm(&tevStr->mLightObj.mLightObj, GX_LIGHT0);
int local_30;
/* dSv_event_flag_c::M_011 - Inside Hyrule Castle - Midna removes wolf's chains in prison */
if (dComIfGs_isEventBit(0x510)) {
local_30 = 17;
} else {

View File

@ -16,7 +16,8 @@ int daObjGraWall_c::Create() {
return cPhs_ERROR_e;
}
} else {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[62]) != 0) {
/* dSv_event_flag_c::M_029 - Death Mountain (room) - Win wrestle match against Gor Coron */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[62])) {
return cPhs_ERROR_e;
}
}
@ -33,7 +34,8 @@ int daObjGraWall_c::Execute() {
return 1;
}
} else {
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[62]) != 0) {
/* dSv_event_flag_c::M_029 - Death Mountain (room) - Win wrestle match against Gor Coron */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[62])) {
fopAcM_delete(this);
return 1;
}

View File

@ -27,6 +27,7 @@ void daObjFuta_c::setBaseMtx() {
/* 80C1DE94-80C1DF2C 0001F4 0098+00 1/0 0/0 0/0 .text Create__11daObjFuta_cFv */
int daObjFuta_c::Create() {
/* dSv_event_flag_c::F_0070 - Ordon Woods - Colin went deep into the woods */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[168])) {
setMode(MODE_2);
mode_end();

View File

@ -242,6 +242,7 @@ void daObjIceLeaf_c::action() {
void daObjIceLeaf_c::modeDropWait() {
daPy_py_c* player = daPy_getPlayerActorClass();
/* dSv_event_flag_c::F_0308 - Snowpeak mountain - Watched first meeting event with Yeto at top of mountain (human) */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x134])) {
bool start_drop = false;
if (player->current.pos.abs(current.pos) < 250.0f &&

View File

@ -75,6 +75,7 @@ static int daObj_Ihasi_Execute(obj_ihasi_class* i_this) {
dComIfG_Bgsp().Release(i_this->mpBgW);
i_this->mpBgW = NULL;
/* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x53]);
}
@ -153,7 +154,8 @@ static int daObj_Ihasi_Create(fopAc_ac_c* i_actor) {
csXyz angle;
cXyz pos;
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x53]) != 0) {
/* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x53])) {
angle.set(0x0, -0x8000, 0x0);
pos.set(34750.0f, -300.0f, -44000.0f);

View File

@ -712,7 +712,10 @@ static int daObjKABUTO_Execute(daObjKABUTO_c* i_this) {
}
/* 80C2E200-80C2E204 0000F0 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x0191, 0x0192};
static u16 const l_musiya_num[2] = {
0x0191, /* dSv_event_flag_c::F_0401 - Misc. - Beetle (M) */
0x0192, /* dSv_event_flag_c::F_0402 - Misc. - Beetle (F) */
};
/* 80C2D578-80C2D724 0027F8 01AC+00 1/1 0/0 0/0 .text CreateChk__13daObjKABUTO_cFv */
bool daObjKABUTO_c::CreateChk() {

View File

@ -747,7 +747,10 @@ static int daObjKAM_Execute(daObjKAM_c* i_this) {
/* ############################################################################################## */
/* 80C384E4-80C384E8 0000DC 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x019D, 0x019E};
static u16 const l_musiya_num[2] = {
0x019D, /* dSv_event_flag_c::F_0413 - Misc. - Mantis (M) */
0x019E, /* dSv_event_flag_c::F_0414 - Misc. - Mantis (F) */
};
/* 80C378F4-80C37AA0 002854 01AC+00 1/1 0/0 0/0 .text CreateChk__10daObjKAM_cFv */
u8 daObjKAM_c::CreateChk() {

View File

@ -676,7 +676,10 @@ static int daObjKAT_Execute(daObjKAT_c* i_this) {
return i_this->Execute();
}
static u16 const l_musiya_num[2] = { 0x01A1, 0x01A2 };
static u16 const l_musiya_num[2] = {
0x01A1, /* dSv_event_flag_c::F_0417 - Misc. - Snail (M) */
0x01A2, /* dSv_event_flag_c::F_0418 - Misc. - Snail (F) */
};
/* 80C3BAAC-80C3BC58 00222C 01AC+00 1/1 0/0 0/0 .text CreateChk__10daObjKAT_cFv */
bool daObjKAT_c::CreateChk() {

View File

@ -208,6 +208,7 @@ extern void* __vt__12J3DFrameCtrl[3];
*/
int daObjMirrorChain_c::createHeap() {
J3DModelData* model_data;
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 16);
mpModel = mDoExt_J3DModel__create(model_data, 0x80000, 0x11000284);
@ -226,6 +227,7 @@ int daObjMirrorChain_c::createHeap() {
return 0;
}
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
J3DModelData* portal_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 12);
mpPortalModel = mDoExt_J3DModel__create(portal_model_data, 0, 0x11000084);
@ -260,6 +262,7 @@ int daObjMirrorChain_c::createHeap() {
J3DAnmTransform* bck_anm = (J3DAnmTransform*)dComIfG_getObjectRes(l_arcName, 8);
mpBckAnm = new mDoExt_bckAnm();
bool b = 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]);
f32 rate = b ? 1.0f : 0.0f;
if (mpBckAnm == NULL
@ -268,6 +271,7 @@ int daObjMirrorChain_c::createHeap() {
return 0;
}
if (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]))
{
mpBckAnm->setFrame(bck_anm->getFrameMax());
@ -339,6 +343,7 @@ int daObjMirrorChain_c::draw() {
static f32 const SCISSOR_SIZE = 984.0f;
g_env_light.settingTevStruct(0x10, &current.pos, &tevStr);
g_env_light.setLightTevColorType_MAJI(mpModel, &tevStr);
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
g_env_light.setLightTevColorType_MAJI(mpPortalModel, &tevStr);
if (mpBckAnm != NULL) {
@ -474,6 +479,7 @@ int daObjMirrorChain_c::execute() {
mpPortalBrkAnm->play();
}
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])
&& mpBckAnm != NULL && mpBckAnm->getPlaySpeed() > 0.0f) {
if (mpActiveBgW == &mBgW[0]) {
@ -526,7 +532,9 @@ static int daObjMirrorChain_Delete(daObjMirrorChain_c* i_this) {
}
void daObjMirrorChain_c::create_init() {
if (mpBckAnm != NULL && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
if (mpBckAnm != NULL
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
mpBckAnm->setPlaySpeed(FLOAT_LABEL(lit_3917));
}
mpEmitter = NULL;
@ -535,6 +543,7 @@ void daObjMirrorChain_c::create_init() {
mBgW[1].SetCrrFunc(NULL);
mBgW[1].SetRoomId(fopAcM_GetRoomNo(this));
bool b = 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]);
mpActiveBgW = b ? &mBgW[1] : &mBgW[0];
dComIfG_Bgsp().Regist(mpActiveBgW, this);

View File

@ -76,6 +76,7 @@ void daObjMirrorScrew_c::initDown() {
speedF = 0.0f;
mSpinCount = M_attr.mResetSpinCount;
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[361]);
dComIfGp_getVibration().StartShock(8, 0xf, cXyz(0.0f, 1.0f, 0.0f));
@ -177,8 +178,10 @@ static int daObjMirrorScrew_Delete(daObjMirrorScrew_c* i_this) {
cPhs__Step daObjMirrorScrew_c::create() {
fopAcM_SetupActor(this, daObjMirrorScrew_c);
if (fopAcM_isSwitch(this, getSwitchNo()) ||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) ||
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]))
/* 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]))
{
return cPhs_ERROR_e;
}

View File

@ -33,6 +33,7 @@ int daObjMirrorTable_c::createHeap() {
return 0;
}
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
int mirror_res_id = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]) ? 13 : 14;
J3DModelData* mirror_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, mirror_res_id);
mpMirrorModel = mDoExt_J3DModel__create(mirror_model_data, 0, 0x11000084);
@ -55,6 +56,7 @@ int daObjMirrorTable_c::createHeap() {
return 0;
}
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
int mirror_dzb_id = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]) ? 31 : 32;
cBgD_t* mirror_dzb = (cBgD_t*)dComIfG_getObjectRes(l_arcName, mirror_dzb_id);
if (mBgW[1].Set(mirror_dzb, 1, &mMtx[1])) {
@ -70,6 +72,7 @@ int daObjMirrorTable_c::createHeap() {
mpMSquareBckAnm = NULL;
mpLightBtkAnm = NULL;
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
J3DModelData* stair_model_data = (J3DModelData*)dComIfG_getObjectRes(l_arcName, 20);
mpStairModel = mDoExt_J3DModel__create(stair_model_data, 0x80000, 0x11000084);
@ -127,7 +130,9 @@ int daObjMirrorTable_c::createHeap() {
/* 80C99F7C-80C9A040 0006DC 00C4+00 1/1 0/0 0/0 .text isSwitch__18daObjMirrorTable_cFv */
bool daObjMirrorTable_c::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 : 0;
}
@ -306,6 +311,7 @@ int daObjMirrorTable_c::execute() {
Z2GetAudioMgr()->seStartLevel(Z2SE_OBJ_MR_TBLE, &pos, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0);
}
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
if (!mBgW[0].ChkUsed() && mpTableUpBckAnm->getPlaySpeed() > 0.0f) {
dComIfG_Bgsp().Regist(&mBgW[0], this);
@ -395,6 +401,7 @@ cPhs__Step daObjMirrorTable_c::create() {
/* 80C9ABFC-80C9AFD0 00135C 03D4+00 1/1 0/0 0/0 .text create_init__18daObjMirrorTable_cFv
*/
void daObjMirrorTable_c::create_init() {
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
bool mirror_complete_flag = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354]);
mpTableUpBckAnm->setPlaySpeed(0.0f);
@ -435,7 +442,9 @@ void daObjMirrorTable_c::create_init() {
field_0x874 = false;
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]))
{
cXyz pos(1760.0f, 4714.3f, -20624.0f);

View File

@ -655,7 +655,10 @@ static int daObjNAN_Execute(daObjNAN_c* i_this) {
/* ############################################################################################## */
/* 80CA3294-80CA3298 0000D8 0004+00 0/1 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x0199, 0x019A};
static u16 const l_musiya_num[2] = {
0x0199, /* dSv_event_flag_c::F_0409 - Misc. - Phasmid (M) */
0x019A, /* dSv_event_flag_c::F_0410 - Misc. - Phasmid (F) */
};
/* 80CA3298-80CA329C 0000DC 0004+00 0/1 0/0 0/0 .rodata l_heapsize */
static u16 const l_heapsize[2] = {0x0EE0, 0x0EC0};

View File

@ -9,7 +9,8 @@
/* 80CA8278-80CA82F4 000078 007C+00 1/1 0/0 0/0 .text create__16daObjOnsenFire_cFv */
int daObjOnsenFire_c::create() {
fopAcM_SetupActor(this, daObjOnsenFire_c);
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[377]) == 0) {
/* dSv_event_flag_c::F_0377 - Castle Town - Goron spring water shop open! */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[377])) {
return cPhs_ERROR_e;
}
return cPhs_COMPLEATE_e;

View File

@ -213,23 +213,7 @@ void daObjRgate_c::setBaseMtx() {
}
}
/* 80CBC4A0-80CBC4AC 000000 000C+00 1/1 0/0 0/0 .data cNullVec__6Z2Calc */
static u8 cNullVec__6Z2Calc[12] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80CBC4AC-80CBC4C0 00000C 0004+10 0/0 0/0 0/0 .data @1787 */
#pragma push
#pragma force_active on
static u32 lit_1787[1 + 4 /* padding */] = {
0x02000201,
/* padding */
0x40080000,
0x00000000,
0x3FE00000,
0x00000000,
};
#pragma pop
UNK_REL_DATA;
/* 80CBC4C0-80CBC4C4 -00001 0004+00 4/4 0/0 0/0 .data l_arcName */
static char* l_arcName = "M_RGate00";
@ -240,8 +224,9 @@ int daObjRgate_c::Create() {
u8 sw_no = getSwNo();
if (sw_no != 0xFF && !fopAcM_isSwitch(this, sw_no) &&
/* dSv_event_flag_c::M_035 - Cutscene - [cutscene: 35] after carriage guarding event */
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[68]))
{
{\
eventInfo.setArchiveName(l_arcName);
mEventID = dComIfGp_getEventManager().getEventIdx(this, l_evName, 0xFF);
@ -567,6 +552,7 @@ void daObjRgate_c::setCrkSE() {
/* 80CBB308-80CBB370 0016E8 0068+00 1/1 0/0 0/0 .text action__12daObjRgate_cFv */
void daObjRgate_c::action() {
/* dSv_event_flag_c::M_035 - Cutscene - [cutscene: 35] after carriage guarding event */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[68])) {
mGateLAngle = 0x4000;
mGateRAngle = -0x4000;

View File

@ -90,6 +90,7 @@ static u32 l_dzbFileIdx = 7;
/* 80CC0F40-80CC1038 000460 00F8+00 1/1 0/0 0/0 .text create__13daObj_Roten_cFv */
int daObj_Roten_c::create() {
fopAcM_SetupActor(this, daObj_Roten_c);
/* dSv_event_flag_c::M_031 - Goron Mines - Goron Mines clear */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x40])) {
return cPhs_ERROR_e;
}

View File

@ -91,6 +91,7 @@ int daObjSnowSoup_c::execute() {
mDoAud_seStartLevel(Z2SE_OBJ_FIREWOOD_BURNING, &mFirewoodPos, 0, dComIfGp_getReverb(fopAcM_GetRoomNo(this)));
switch (mState) {
case 0:
/* dSv_event_flag_c::F_0003 - Snowpeak Ruins - Handed over tomato puree and left room */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[7])) {
deleteSmkEmtChange(mState);
mState = 1;
@ -101,6 +102,7 @@ int daObjSnowSoup_c::execute() {
}
break;
case 1:
/* dSv_event_flag_c::F_0004 - Snowpeak Ruins - Handed over secret ingredient and left room */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[8])) {
deleteSmkEmtChange(mState);
mState = 2;
@ -120,8 +122,10 @@ int daObjSnowSoup_c::execute() {
/* 80CDFE14-80CDFEA4 000634 0090+00 1/1 0/0 0/0 .text init__15daObjSnowSoup_cFv */
void daObjSnowSoup_c::init() {
mState = 0;
/* dSv_event_flag_c::F_0004 - Snowpeak Ruins - Handed over secret ingredient and left room */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[8])) {
mState = 2;
/* dSv_event_flag_c::F_0003 - Snowpeak Ruins - Handed over tomato puree and left room */
} else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[7])) {
mState = 1;
}

View File

@ -42,16 +42,25 @@ static GXColor const l_color = {0x03, 0x96, 0xFF, 0xFF};
/* 80CF59D4-80CF59E0 000004 000C+00 0/1 0/0 0/0 .rodata l_event_bitA */
static u16 const l_event_bitA[6] = {
0x4304, 0x4302, 0x4301, 0x4480, 0x4440, 0x4420,
0x4304, /* dSv_event_flag_c::F_0551 - Palace of Twilight - Palace of Twilight control use 1 */
0x4302, /* dSv_event_flag_c::F_0552 - Palace of Twilight - Palace of Twilight control use 2 */
0x4301, /* dSv_event_flag_c::F_0553 - Palace of Twilight - Palace of Twilight control use 3 */
0x4480, /* dSv_event_flag_c::F_0554 - Palace of Twilight - Palace of Twilight control use 4 */
0x4440, /* dSv_event_flag_c::F_0555 - Palace of Twilight - Palace of Twilight control use 5 */
0x4420, /* dSv_event_flag_c::F_0556 - Palace of Twilight - Palace of Twilight control use 6 */
};
/* 80CF59E0-80CF59EC 000010 000C+00 0/1 0/0 0/0 .rodata l_event_bitB */
static u16 const l_event_bitB[6] = {
0x4410, 0x4408, 0x4404, 0x4402, 0x4401, 0x4580,
0x4410, /* dSv_event_flag_c::F_0557 - Palace of Twilight - Palace of Twilight control use 7 */
0x4408, /* dSv_event_flag_c::F_0558 - Palace of Twilight - Palace of Twilight control use 8 */
0x4404, /* dSv_event_flag_c::F_0559 - Palace of Twilight - Palace of Twilight control use 9 */
0x4402, /* dSv_event_flag_c::F_0560 - Palace of Twilight - Palace of Twilight control use 10 */
0x4401, /* dSv_event_flag_c::F_0561 - Palace of Twilight - Palace of Twilight control use 11 */
0x4580, /* dSv_event_flag_c::F_0562 - Palace of Twilight - Palace of Twilight control use 12 */
};
/* 80CF466C-80CF47BC 00012C 0150+00 1/1 0/0 0/0 .text
* checkArea_sub__14daObjSwBallB_cFP10fopAc_ac_c */
/* 80CF466C-80CF47BC 00012C 0150+00 1/1 0/0 0/0 .text checkArea_sub__14daObjSwBallB_cFP10fopAc_ac_c */
int daObjSwBallB_c::checkArea_sub(fopAc_ac_c* param_1) {
if (param_1 == NULL) {
return 0;

View File

@ -89,19 +89,27 @@ int daObjTable_c::Create() {
mpModel->getModelData()->getMaterialNodePointer(2)->getShape()->hide();
} else {
if (dComIfG_play_c::getLayerNo(0) == 4) {
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])) {
mpModel->getModelData()->getMaterialNodePointer(0)->getShape()->hide();
}
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) &&
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266]) &&
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267]))
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])
/* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266])
/* dSv_event_flag_c::F_0267 - Temple of Time - Temple of Time clear */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267]))
{
mpModel->getModelData()->getMaterialNodePointer(1)->getShape()->hide();
}
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361]) &&
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266]) &&
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267]) &&
!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268]))
/* dSv_event_flag_c::F_0361 - Arbiter's Grounds - Spun the spinning pillars */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[361])
/* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266])
/* dSv_event_flag_c::F_0267 - Temple of Time - Temple of Time clear */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[267])
/* dSv_event_flag_c::F_0268 - City in the Sky - City in the Sky clear */
&& !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268]))
{
mpModel->getModelData()->getMaterialNodePointer(2)->getShape()->hide();
}
@ -110,9 +118,12 @@ int daObjTable_c::Create() {
}
}
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[103]) &&
!(!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268]) &&
dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[264])))
/* dSv_event_flag_c::M_070 - Cutscene - [cutscene: 18] Lanayru spirit restored */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[103])
/* dSv_event_flag_c::F_0268 - City in the Sky - City in the Sky clear */
&& !(!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[268])
/* dSv_event_flag_c::F_0264 - Cutscene - Get master sword */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[264])))
{
mpModel->getModelData()->getMaterialNodePointer(4)->getShape()->hide();
attention_info.flags = 0;

View File

@ -686,7 +686,10 @@ static int daObjTEN_Execute(daObjTEN_c* i_this) {
/* ############################################################################################## */
/* 80D0B9D0-80D0B9D4 0000E0 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = { 0x19F, 0x1A0};
static u16 const l_musiya_num[2] = {
0x19F, /* dSv_event_flag_c::F_0415 - Misc. - Ladybug (M) */
0x1A0, /* dSv_event_flag_c::F_0416 - Misc. - Ladybug (F) */
};
/* 80D0AD9C-80D0AF48 0026BC 01AC+00 1/1 0/0 0/0 .text CreateChk__10daObjTEN_cFv */
bool daObjTEN_c::CreateChk() {

View File

@ -378,6 +378,7 @@ void daObjTobyHouse_c::demoProc() {
mActiveBck->setPlaySpeed(1.0f);
mActiveBck->setFrame(0.0f);
fopAcM_seStart(this, Z2SE_OBJ_THOUSE_CLOSE, 0);
/* dSv_event_flag_c::F_0063 - Lake Hylia - Used Fyer's cannon for first time */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[161]);
break;
case 2:

View File

@ -607,7 +607,10 @@ static int daObjTOMBO_Execute(daObjTOMBO_c* i_this) {
}
/* 80D1B7E0-80D1B7E4 000108 0004+00 1/2 0/0 0/0 .rodata l_musiya_num */
static u16 const l_musiya_num[2] = {0x01A3, 0x01A4};
static u16 const l_musiya_num[2] = {
0x01A3, /* dSv_event_flag_c::F_0419 - Misc. - Dragonfly (M) */
0x01A4, /* dSv_event_flag_c::F_0420 - Misc. - Dragonfly (F) */
};
/* 80D1AFC8-80D1B174 001EE8 01AC+00 1/1 0/0 0/0 .text CreateChk__12daObjTOMBO_cFv */
bool daObjTOMBO_c::CreateChk() {

View File

@ -77,6 +77,7 @@ int daObjVGnd_c::create() {
/* 80D217A8-80D21878 000448 00D0+00 2/2 0/0 0/0 .text execute__11daObjVGnd_cFv */
int daObjVGnd_c::execute() {
/* dSv_event_flag_c::M_032 - Main Event - Melted Zora river ice with magma rock */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[65])) {
mpBrk->setFrame(2.0f);
mpBtk->setFrame(2.0f);

View File

@ -206,6 +206,7 @@ int daObjVolcBom_c::CreateHeap() {
/* 80D248F4-80D249D0 0007D4 00DC+00 1/1 0/0 0/0 .text create1st__14daObjVolcBom_cFv */
int daObjVolcBom_c::create1st() {
/* dSv_event_flag_c::M_032 - Main Event - Melted Zora river ice with magma rock */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[65])) {
return cPhs_ERROR_e;
}
@ -640,7 +641,10 @@ void daObjVolcBom_c::orderZHintEvent() {
/* 80D25A08-80D25B04 0018E8 00FC+00 1/0 0/0 0/0 .text actionWait__14daObjVolcBom_cFv */
void daObjVolcBom_c::actionWait() {
if (checkTalkDistance() && dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[84])) {
if (checkTalkDistance()
/* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete
(Horse grass appears in various places) */
&& dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[84])) {
setAction(ACTION_ORDER_EVENT);
actionOrderEvent();
}

View File

@ -51,6 +51,7 @@ static int eventCallBack(void* i_proc, int param_1) {
if (i_proc != NULL) {
player_p->skipPortalObjWarp();
if (dComIfGp_TransportWarp_check()) {
/* dSv_event_flag_c::M_018 - Main Event - Brought Kakariko bridge back to original location */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[51]);
// "Kakariko Bridge: Warp destination is correct"
OS_REPORT("\x1B[43;30mカカリコ橋ワープ先正解です\n\x1B[m");
@ -242,6 +243,7 @@ int daObjWarpKBrg_c::create1st() {
switch (getNameArg()) {
case 0:
/* dSv_event_flag_c::M_018 - Main Event - Brought Kakariko bridge back to original location */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[51])) {
// "Kakariko Bridge: already warped so creation cancelled!"
OS_REPORT("\x1B[43;30mカカリコ橋ワープさせたので発生取り消し\n\x1B[m");
@ -249,6 +251,7 @@ int daObjWarpKBrg_c::create1st() {
}
break;
case 1:
/* dSv_event_flag_c::M_018 - Main Event - Brought Kakariko bridge back to original location */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[51])) {
// "Kakariko Bridge: not warped so creation cancelled!"
OS_REPORT("\x1B[43;30mカカリコ橋ワープさせてないので発生取り消し\n\x1B[m");
@ -345,7 +348,9 @@ void daObjWarpKBrg_c::actionWait() {
daMidna_c* midna_p = (daMidna_c*)daPy_py_c::getMidnaActor();
daPy_py_c* player_p = daPy_getPlayerActorClass();
if (fopAcM_isSwitch(this, getSwbit2()) && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[54])) {
if (fopAcM_isSwitch(this, getSwbit2())
/* dSv_event_flag_c::M_021 - Main Event - First portal warp */
&& dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[54])) {
setAction(ACTION_ORDER_EVENT_e);
actionOrderEvent();
}
@ -509,6 +514,7 @@ void daObjWarpKBrg_c::demoProc() {
}
if (dComIfGp_TransportWarp_check()) {
/* dSv_event_flag_c::M_018 - Main Event - Brought Kakariko bridge back to original location */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[51]);
// "Kakariko Bridge: Warp destination is correct"
OS_REPORT("\x1B[43;30mカカリコ橋ワープ先正解です\n\x1B[m");

View File

@ -151,6 +151,7 @@ int daObjWarpOBrg_c::create1st() {
switch (getNameArg()) {
case 0:
/* dSv_event_flag_c::M_092 - Hyrule Field - Warped Eldin Bridge */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[125])) {
// "Eldin Bridge: already warped so creation cancelled!"
OS_REPORT("\x1B[43;30mオルディン大橋ワープさせたので発生取り消し\n\x1B[m");
@ -158,6 +159,7 @@ int daObjWarpOBrg_c::create1st() {
}
break;
case 1:
/* dSv_event_flag_c::M_092 - Hyrule Field - Warped Eldin Bridge */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[125])) {
// "Eldin Bridge: not warped so creation cancelled!"
OS_REPORT("\x1B[43;30mオルディン大橋ワープさせてないので発生取り消し\n\x1B[m");
@ -316,19 +318,30 @@ void daObjWarpOBrg_c::actionWarpEvent() {
demoProc();
if (dComIfGp_getEvent().checkSkipEdge()) {
/* dSv_event_tmp_flag_c::T_0010 - General use - General use temporary flag (flow control) A */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[11]);
/* dSv_event_tmp_flag_c::T_0011 - General use - General use temporary flag (flow control) B */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[12]);
/* dSv_event_tmp_flag_c::T_0012 - General use - General use temporary flag (flow control) C */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[13]);
/* dSv_event_tmp_flag_c::T_0013 - General use - General use temporary flag (flow control) D */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[14]);
/* dSv_event_tmp_flag_c::T_0014 - General use - General use temporary flag (flow control) E */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[15]);
/* dSv_event_tmp_flag_c::T_0051 - General use - General use temporary flag (flow control) F */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[51]);
/* dSv_event_tmp_flag_c::T_0052 - General use - General use temporary flag (flow control) G */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[52]);
/* dSv_event_tmp_flag_c::T_0053 - General use - General use temporary flag (flow control) H */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[53]);
/* dSv_event_tmp_flag_c::T_0054 - General use - General use temporary flag (flow control) I */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[54]);
/* dSv_event_tmp_flag_c::T_0055 - General use - General use temporary flag (flow control) J */
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[55]);
daPy_getPlayerActorClass()->skipPortalObjWarp();
if (dComIfGp_TransportWarp_check()) {
/* dSv_event_flag_c::M_092 - Hyrule Field - Warped Eldin Bridge */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[125]);
// "Eldin Bridge: Warp destination is correct"
OS_REPORT("\x1B[43;30mオルディン大橋ワープ先正解です\n\x1B[m");
@ -388,6 +401,7 @@ void daObjWarpOBrg_c::demoProc() {
}
if (dComIfGp_TransportWarp_check()) {
/* dSv_event_flag_c::M_092 - Hyrule Field - Warped Eldin Bridge */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[125]);
// "Eldin Bridge: Warp destination is correct"
OS_REPORT("\x1B[43;30mオルディン大橋ワープ先正解です\n\x1B[m");

View File

@ -816,6 +816,7 @@ int daObjYOUSEI_c::create() {
mPrm = 0;
break;
case 1:
/* dSv_event_flag_c::F_0501 - sub-dungeon - Cave of Ordeals - B10 first arrival */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[501])) {
return cPhs_ERROR_e;
}
@ -823,18 +824,21 @@ int daObjYOUSEI_c::create() {
break;
case 2:
mPrm = 2;
/* dSv_event_flag_c::F_0502 - sub-dungeon - Cave of Ordeals - B20 first arrival */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[502])) {
return cPhs_ERROR_e;
}
break;
case 3:
mPrm = 3;
/* dSv_event_flag_c::F_0503 - sub-dungeon - Cave of Ordeals - B30 first arrival */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[503])) {
return cPhs_ERROR_e;
}
break;
case 4:
mPrm = 4;
/* dSv_event_flag_c::F_0504 - sub-dungeon - Cave of Ordeals - B40 first arrival */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[504])) {
return cPhs_ERROR_e;
}

View File

@ -136,6 +136,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
case 9:
case 10:
case 0xf:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 4)) {
case 0:
@ -167,6 +168,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 3:
case 0xb:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 3)) {
case 0:
@ -194,6 +196,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
case 5:
case 0xc:
case 0xd:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 4)) {
case 0:
@ -228,6 +231,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 6:
case 0xe:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 3)) {
case 0:
@ -252,6 +256,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
}
break;
case 7:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 3)) {
case 0:
@ -277,6 +282,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x10:
case 0x17:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 4)) {
case 0:
@ -311,6 +317,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x11:
case 0x18:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 4)) {
case 0:
@ -342,6 +349,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x12:
case 0x19:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 5)) {
case 0:
@ -379,6 +387,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x13:
case 0x1a:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 3)) {
case 0:
@ -404,6 +413,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x14:
case 0x1b:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 3)) {
case 0:
@ -429,6 +439,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x15:
case 0x1c:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 3)) {
case 0:
@ -457,6 +468,7 @@ int daPasserMng_c::getLuggageParamHigh(u32 param_1) {
break;
case 0x16:
case 0x1d:
/* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x119])) {
switch(cLib_getRndValue(0, 4)) {
case 0:

View File

@ -51,6 +51,7 @@ inline int daTagLv8Gate_c::create() {
fopAcM_SetupActor(this, daTagLv8Gate_c);
cPhs__Step step;
/* dSv_event_flag_c::F_0354 - Cutscene - [cutscene] Mirror complete */
if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[354])) {
step = cPhs_ERROR_e;
} else {

View File

@ -688,6 +688,7 @@ void daTagTWGate_c::initDemoRanail3() {
dComIfGp_getEventManager().getEventIdx(this, l_zevParamTbl[mType].mInEventName, -1);
dComIfGp_getEvent().reset(this);
fopAcM_orderChangeEventId(this, mEventID, 1, -1);
/* dSv_event_flag_c::F_0071 - Twilight Hyrule Field - Cannot warp to Lanayru */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[170]);
}

View File

@ -147,11 +147,15 @@ s32 daTag_BottleItem_c::orderEvent() {
/* 80D56418-80D564A0 0004B8 0088+00 2/2 0/0 0/0 .text makeSoup__18daTag_BottleItem_cFv */
void daTag_BottleItem_c::makeSoup() {
if (mBottleItemType == fpcNm_ITEM_LV1_SOUP && dComIfGs_isEventBit(2)) {
if (mBottleItemType == fpcNm_ITEM_LV1_SOUP
/* dSv_event_flag_c::F_0003 - Snowpeak Ruins - Handed over tomato puree and left room */
&& dComIfGs_isEventBit(2)) {
mBottleItemType = fpcNm_ITEM_LV2_SOUP;
}
if (mBottleItemType == fpcNm_ITEM_LV2_SOUP && dComIfGs_isEventBit(1)) {
if (mBottleItemType == fpcNm_ITEM_LV2_SOUP
/* dSv_event_flag_c::F_0004 - Snowpeak Ruins - Handed over secret ingredient and left room */
&& dComIfGs_isEventBit(1)) {
mBottleItemType = fpcNm_ITEM_LV3_SOUP;
}
}

View File

@ -131,6 +131,7 @@ int daTag_Event_c::create() {
scale.z *= 100.0f;
if (horseRodeo()) {
/* Main Event - Epona rescued flag */
if (dComIfGs_isEventBit(dSv_event_flag_c::M_023)) {
return cPhs_ERROR_e;
}

View File

@ -31,8 +31,12 @@ void daTagStatue_c::initBaseMtx() {
/* ############################################################################################## */
/* 805A8104-805A8110 000000 000C+00 4/4 0/0 0/0 .rodata l_event_bit */
static const u16 l_event_bit[6] = {
dSv_event_flag_c::F_0791, dSv_event_flag_c::F_0792, dSv_event_flag_c::F_0793,
dSv_event_flag_c::F_0794, dSv_event_flag_c::F_0795, dSv_event_flag_c::F_0812
dSv_event_flag_c::F_0791, /* Sky character - Sky character 1 */
dSv_event_flag_c::F_0792, /* Sky character - Sky character 2 */
dSv_event_flag_c::F_0793, /* Sky character - Sky character 3 */
dSv_event_flag_c::F_0794, /* Sky character - Sky character 4 */
dSv_event_flag_c::F_0795, /* Sky character - Sky character 5 */
dSv_event_flag_c::F_0812, /* N/A - N/A */
};
/* 805A7000-805A7068 000120 0068+00 2/2 0/0 0/0 .text setBaseMtx__13daTagStatue_cFv */
@ -331,6 +335,7 @@ int daTagStatue_c::demoProc() {
int item;
if(getLetterCount() == 5) {
item = fpcNm_ITEM_ANCIENT_DOCUMENT2;
/* Sky character - Sky character 6 */
dComIfGs_onEventBit(dSv_event_flag_c::F_0796);
}
else {
@ -436,9 +441,8 @@ BOOL daTagStatue_c::checkOnEffect() {
return FALSE;
}
/* 805A7E94-805A7F0C 000FB4 0078+00 1/1 0/0 0/0 .text getLetterCount__13daTagStatue_cFv
*/
s32 daTagStatue_c::getLetterCount() {
/* 805A7E94-805A7F0C 000FB4 0078+00 1/1 0/0 0/0 .text getLetterCount__13daTagStatue_cFv */
s32 daTagStatue_c::getLetterCount() {
s32 numLetters = 0;
for(int i = 0; i < 6; i++) {
if(dComIfGs_isEventBit(l_event_bit[i])) {
@ -446,8 +450,8 @@ BOOL daTagStatue_c::checkOnEffect() {
}
}
return numLetters;
}
return numLetters;
}
/* 805A7F0C-805A7FF8 00102C 00EC+00 1/1 0/0 0/0 .text draw__13daTagStatue_cFv */
int daTagStatue_c::draw() {

View File

@ -26,6 +26,7 @@ const static dCcD_SrcCyl l_sph_src = {
int daTagYami_c::create() {
fopAcM_SetupActor(this, daTagYami_c);
/* dSv_event_flag_c::F_0570 - Palace of Twilight - Cleared Palace of Twilight */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[570])) {
return cPhs_ERROR_e;
}

View File

@ -247,14 +247,17 @@ u8 daNpcKakashi_getSwdTutorialStep() {
/* 80031718-80031754 02C058 003C+00 0/0 1/1 0/0 .text daNpcKakashi_getSwdTutorialResult__Fv */
bool daNpcKakashi_getSwdTutorialResult() {
/* dSv_event_tmp_flag_c::T_0004 - Ordon Village - sword tutorial - outcome */
return dComIfGs_isTmpBit(0x40);
}
/* 80031754-800317A4 02C094 0050+00 0/0 0/0 1/1 .text daNpcKakashi_setSwdTutorialResult__Fb */
void daNpcKakashi_setSwdTutorialResult(bool param_0) {
if (param_0) {
/* dSv_event_tmp_flag_c::T_0004 - Ordon Village - sword tutorial - outcome */
dComIfGs_onTmpBit(0x40);
} else {
/* dSv_event_tmp_flag_c::T_0004 - Ordon Village - sword tutorial - outcome */
dComIfGs_offTmpBit(0x40);
}
}

View File

@ -14,15 +14,13 @@
#include "d/actor/d_a_tag_mstop.h"
#include "d/d_event_debug.h"
/* 80041480-80041488 03BDC0 0008+00 1/1 0/0 0/0 .text event_debug_evnt__21@unnamed@d_event_cpp@Fv
*/
/* 80041480-80041488 03BDC0 0008+00 1/1 0/0 0/0 .text event_debug_evnt__21@unnamed@d_event_cpp@Fv */
namespace {
static bool event_debug_evnt() {
return false;
}
/* 80041488-80041580 03BDC8 00F8+00 1/1 0/0 0/0 .text
* clear_tmpflag_for_message__21@unnamed@d_event_cpp@Fv */
/* 80041488-80041580 03BDC8 00F8+00 1/1 0/0 0/0 .text clear_tmpflag_for_message__21@unnamed@d_event_cpp@Fv */
static void clear_tmpflag_for_message() {
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[11]);
dComIfGs_offTmpBit(dSv_event_tmp_flag_c::tempBitLabels[12]);
@ -43,15 +41,14 @@ dEvt_control_c::dEvt_control_c() {
dEvt_order_c::dEvt_order_c() {}
/* 800415D8-80041668 03BF18 0090+00 1/1 0/0 0/0 .text orderOld__14dEvt_control_cFUsUsUsUsPvPvPCv
*/
/* 800415D8-80041668 03BF18 0090+00 1/1 0/0 0/0 .text orderOld__14dEvt_control_cFUsUsUsUsPvPvPCv */
s32 dEvt_control_c::orderOld(u16 eventType, u16 priority, u16 flag, u16 hind, void* param_4,
void* param_5, void const* eventName) {
int eventIdx = dComIfGp_getEventManager().getEventIdx((char*)eventName, -1, -1);
return order(eventType, priority, flag, hind, param_4, param_5, eventIdx, -1);
}
/* 80041668-80041804 03BFA8 019C+00 3/3 13/13 0/0 .text order__14dEvt_control_cFUsUsUsUsPvPvsUc */
/* 80041668-80041804 03BFA8 019C+00 3/3 13/13 0/0 .text order__14dEvt_control_cFUsUsUsUsPvPvsUc */
s32 dEvt_control_c::order(u16 eventType, u16 priority, u16 flag, u16 hind, void* param_4,
void* param_5, s16 eventID, u8 infoIdx) {
if (!(flag & 0x400) && infoIdx != 0xFF) {

View File

@ -883,11 +883,16 @@ void dEvDtStaff_c::specialProcDirector() {
if (specTypeP != NULL) {
switch (*specTypeP) {
case 8:
/* dSv_event_flag_c::F_0506 - N/A - Only met Ooccoo Sr. - not yet son (shared Forest - Snowpeak) */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[506])) {
/* dSv_event_flag_c::F_0566 - Ooccoo Sr. stuff - Letter from Ooccoo Sr. came in OK (no son) */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[566]);
}
/* dSv_event_flag_c::F_0507 - N/A - Also met the son in dungeon with first Ooccoo Sr. meeting -
turns 506 OFF (shared Forest - Snowpeak) */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[507])) {
/* dSv_event_flag_c::F_0567 - Ooccoo Sr. stuff - Letter from Ooccoo Sr. came in OK (yes son) */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[567]);
}
}

View File

@ -1030,6 +1030,7 @@ void item_func_BILL() {
}
void item_func_WOOD_STATUE() {
/* dSv_event_flag_c::F_283 - Hyrule Field - Get wood carving */
dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[283]);
dComIfGs_setItem(SLOT_21, fpcNm_ITEM_WOOD_STATUE);
}

View File

@ -480,6 +480,7 @@ bool renderingAmap_c::isDrawIconSingle2(dTres_c::data_s const* i_data, bool para
if (dComIfGp_getStartStageDarkArea() == 2) {
int temp_r3 = i_data->mNo;
if (temp_r3 == 0x33 || temp_r3 == 0x34 || temp_r3 == 0x35) {
/* dSv_event_flag_c::M_086 - Twilight Hyrule Field - Show Boss Bug's Tear of Light on the map */
if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[119])) {
temp_r23_2 = true;
}

Some files were not shown because too many files have changed in this diff Show More