diff --git a/include/d/actor/d_a_agbsw0.h b/include/d/actor/d_a_agbsw0.h index 246454337..05f82e9f0 100644 --- a/include/d/actor/d_a_agbsw0.h +++ b/include/d/actor/d_a_agbsw0.h @@ -9,7 +9,7 @@ class daAgb_c; struct agb_mail_struct { /* 0x00 */ u16 msgID; /* 0x02 */ u8 swToSet; - /* 0x03 */ u8 stagInfo; + /* 0x03 */ u8 stageSaveTbl; /* 0x04 */ u8 roomNo; /* 0x05 */ u8 reactType; /* 0x06 */ u8 swToCheck; diff --git a/include/d/actor/d_a_obj_toripost.h b/include/d/actor/d_a_obj_toripost.h index 7e853e473..d44d6fe26 100644 --- a/include/d/actor/d_a_obj_toripost.h +++ b/include/d/actor/d_a_obj_toripost.h @@ -90,7 +90,7 @@ private: /* 0x8F0 */ u32 field_0x8F0; /* 0x8F4 */ u8 field_0x8F4; /* 0x8F5 */ u8 field_0x8F5; - /* 0x8F6 */ u8 field_0x8F6; + /* 0x8F6 */ u8 mPreItemNo; /* 0x8F7 */ s8 field_0x8F7; }; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index c2cac3e96..2641af427 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -9,6 +9,7 @@ #include "d/d_drawlist.h" #include "d/d_event.h" #include "d/d_event_manager.h" +#include "d/d_event_bit.h" #include "d/d_map.h" #include "d/d_particle.h" #include "d/d_resorce.h" diff --git a/include/d/d_event_bit.h b/include/d/d_event_bit.h new file mode 100644 index 000000000..5185f0575 --- /dev/null +++ b/include/d/d_event_bit.h @@ -0,0 +1,23 @@ +#ifndef D_EVENT_BIT_H +#define D_EVENT_BIT_H + +enum dEventBit_e { + dEvtBit_SHIP_RIDDEN_e = 0x2A08, + dEvtBit_BARRIER_BREAK_e = 0x2C02, + dEvtBit_LITHOGRAPH_1_e = 0x3508, + dEvtBit_LITHOGRAPH_2_e = 0x3504, + dEvtBit_LITHOGRAPH_3_e = 0x3502, + dEvtBit_LITHOGRAPH_4_e = 0x3501, + dEvtBit_LITHOGRAPH_5_e = 0x3680, + dEvtBit_LITHOGRAPH_6_e = 0x3640, + dEvtBit_LITHOGRAPH_7_e = 0x3620, + dEvtBit_LITHOGRAPH_8_e = 0x3610, + dEvtBit_LITHOGRAPH_9_e = 0x3608, + dEvtBit_LITHOGRAPH_10_e = 0x3604, +}; + +enum dEventReg_e { + dEvtReg_NOTE_TO_MOM_e = 0xAC03, +}; + +#endif /* D_EVENT_BIT_H */ diff --git a/include/d/d_save.h b/include/d/d_save.h index b3193e93e..a9c768cb5 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -477,7 +477,6 @@ public: /* 0x3 */ STAGE_BOSS_ENEMY, /* 0x4 */ STAGE_LIFE, /* 0x5 */ STAGE_BOSS_DEMO, - /* 0x7 */ STAGE_BOSS_ENEMY_2 = 7 }; void init(); @@ -492,21 +491,29 @@ public: void onVisitedRoom(int); BOOL isVisitedRoom(int); void onDungeonItem(int); + void offDungeonItem(int); BOOL isDungeonItem(int); u8 getKeyNum() { return mKeyNum; } void setKeyNum(u8 i_keyNum) { mKeyNum = i_keyNum; } void onDungeonItemMap() { onDungeonItem(MAP); } + void offDungeonItemMap() { offDungeonItem(MAP); } BOOL isDungeonItemMap() { return isDungeonItem(MAP); } void onDungeonItemCompass() { onDungeonItem(COMPASS); } + void offDungeonItemCompass() { offDungeonItem(COMPASS); } BOOL isDungeonItemCompass() { return isDungeonItem(COMPASS); } void onDungeonItemBossKey() { onDungeonItem(BOSS_KEY); } + void offDungeonItemBossKey() { offDungeonItem(BOSS_KEY); } BOOL isDungeonItemBossKey() { return isDungeonItem(BOSS_KEY); } void onStageBossEnemy() { onDungeonItem(STAGE_BOSS_ENEMY); } + void offStageBossEnemy() { offDungeonItem(STAGE_BOSS_ENEMY); } BOOL isStageBossEnemy() { return isDungeonItem(STAGE_BOSS_ENEMY); } - BOOL isStageBossEnemy2() { return isDungeonItem(STAGE_BOSS_ENEMY_2); } void onStageLife() { onDungeonItem(STAGE_LIFE); } + void offStageLife() { offDungeonItem(STAGE_LIFE); } BOOL isStageLife() { return isDungeonItem(STAGE_LIFE); } + void onStageBossDemo() { onDungeonItem(STAGE_BOSS_DEMO); } + void offStageBossDemo() { offDungeonItem(STAGE_BOSS_DEMO); } + BOOL isStageBossDemo() { return isDungeonItem(STAGE_BOSS_DEMO); } /* 0x00 */ u32 mTbox; /* 0x04 */ u32 mSwitch[4]; @@ -696,7 +703,25 @@ public: dSv_memory_c& getSave(int i_stageNo) { return mMemory[i_stageNo]; } void putSave(int i_stageNo, dSv_memory_c i_mem) { mMemory[i_stageNo] = i_mem; } - const static int STAGE_MAX = 16; + enum SaveStageTbl { + /* 0x00 */ STAGE_SEA, + /* 0x01 */ STAGE_SEA2, + /* 0x02 */ STAGE_FF, + /* 0x03 */ STAGE_DRC, + /* 0x04 */ STAGE_FW, + /* 0x05 */ STAGE_TOTG, + /* 0x06 */ STAGE_ET, + /* 0x07 */ STAGE_WT, + /* 0x08 */ STAGE_GT, + /* 0x09 */ STAGE_HYRULE, + /* 0x0A */ STAGE_SHIP, + /* 0x0B */ STAGE_MISC, // Mostly interior rooms but not all + /* 0x0C */ STAGE_SUBDUNGEON, // Name based on the debug map select entry サブダンジョン + /* 0x0D */ STAGE_SUBDUNGEON_NEW, // Name based on the debug map select entry サブダン新規追加 + /* 0x0E */ STAGE_BLUE_CHU_JELLY, + /* 0x0F */ STAGE_TEST, + /* 0x10 */ STAGE_MAX, + }; /* 0x000 */ dSv_player_c mPlayer; /* 0x380 */ dSv_memory_c mMemory[STAGE_MAX]; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 6ce31b5fe..89c710a1f 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -9,10 +9,22 @@ #include "global.h" #include "f_op/f_op_actor_mng.h" +class JKRExpHeap; + void dStage_SetErrorRoom(); void dStage_SetErrorStage(); -class JKRExpHeap; +enum StageType { + /* 0x00 */ dStageType_OUTDOORS_e, + /* 0x01 */ dStageType_DUNGEON_e, + /* 0x02 */ dStageType_MISC_e, // Mostly interior rooms but also some exceptions + /* 0x03 */ dStageType_BOSS_e, + /* 0x04 */ dStageType_SUBDUNGEON_e, // Name based on the debug map select entry サブダンジョン + /* 0x05 */ dStageType_FF1_e, + /* 0x06 */ dStageType_MINIBOSS_e, + /* 0x07 */ dStageType_SEA_e, + /* 0x08 */ dStageType_UNKNOWN_8_e, +}; class stage_vrbox_info_class { public: diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 3403904fe..bbc97c746 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -8,6 +8,7 @@ #include "f_pc/f_pc_searcher.h" #include "m_Do/m_Do_audio.h" #include "d/d_item_data.h" +#include "d/d_save.h" #define fopAcM_SetupActor(ptr,ClassName) \ if (!fopAcM_CheckCondition(ptr, fopAcCnd_INIT_e)) { \ @@ -327,7 +328,7 @@ inline BOOL dComIfGs_isSaveSwitch(int i_stageNo, int i_no); inline BOOL fopAcM_isItemForIb(int itemBitNo, u8 itemNo, s8 roomNo) { if (itemNo == BLUE_JELLY) { // Blue Chu Jelly uses itemBitNo as if it was a switch in stageNo 0xE. - return dComIfGs_isSaveSwitch(0xE, itemBitNo); + return dComIfGs_isSaveSwitch(dSv_save_c::STAGE_BLUE_CHU_JELLY, itemBitNo); } else { return dComIfGs_isItem(itemBitNo, roomNo); } @@ -337,7 +338,7 @@ inline void dComIfGs_onSaveSwitch(int i_stageNo, int i_no); inline void fopAcM_onItemForIb(int itemBitNo, u8 itemNo, s8 roomNo) { if (itemNo == BLUE_JELLY) { // Blue Chu Jelly uses itemBitNo as if it was a switch in stageNo 0xE. - dComIfGs_onSaveSwitch(0xE, itemBitNo); + dComIfGs_onSaveSwitch(dSv_save_c::STAGE_BLUE_CHU_JELLY, itemBitNo); } else { dComIfGs_onItem(itemBitNo, roomNo); } diff --git a/src/d/actor/d_a_agb.cpp b/src/d/actor/d_a_agb.cpp index 1fc37224f..bb0a8d962 100644 --- a/src/d/actor/d_a_agb.cpp +++ b/src/d/actor/d_a_agb.cpp @@ -139,7 +139,7 @@ int daAgb_c::uploadInitCheck() { dStage_FileList_dt_c* fili_p = dComIfGp_roomControl_getStatusRoomDt(roomNo)->getFileListInfo(); - if ((dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != 7 && !dMap_c::isEnableDispMap()) || + if ((dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_SEA_e && !dMap_c::isEnableDispMap()) || (fili_p != NULL && dStage_FileList_dt_CheckAgbCom(fili_p))) { l_msgCtrl.init(1); diff --git a/src/d/actor/d_a_agbsw0.cpp b/src/d/actor/d_a_agbsw0.cpp index 472606b16..1f20b286b 100644 --- a/src/d/actor/d_a_agbsw0.cpp +++ b/src/d/actor/d_a_agbsw0.cpp @@ -1687,31 +1687,31 @@ BOOL daAgbsw0_c::MoveCheck(s16 param_1) { break; case 9: - if(dComIfGs_isStageTbox(3, 0xF)) { + if(dComIfGs_isStageTbox(dSv_save_c::STAGE_DRC, 0xF)) { return 0; } break; case 0xA: - if(dComIfGs_isStageTbox(4, 0xF)) { + if(dComIfGs_isStageTbox(dSv_save_c::STAGE_FW, 0xF)) { return 0; } break; case 0xB: - if(dComIfGs_isStageTbox(5, 0xF)) { + if(dComIfGs_isStageTbox(dSv_save_c::STAGE_TOTG, 0xF)) { return 0; } break; case 0xC: - if(dComIfGs_isStageTbox(7, 0xF)) { + if(dComIfGs_isStageTbox(dSv_save_c::STAGE_WT, 0xF)) { return 0; } break; case 0xD: - if(dComIfGs_isStageTbox(6, 0xF)) { + if(dComIfGs_isStageTbox(dSv_save_c::STAGE_ET, 0xF)) { return 0; } @@ -2445,7 +2445,7 @@ void daAgbsw0_c::MailSend(u16 msgID, u8 reactType, u8 toCheck, u8 toSet, u8 sfx) mMail.msgID = msgID; mMail.swToSet = toSet; mMail.swToCheck = toCheck; - mMail.stagInfo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); + mMail.stageSaveTbl = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); mMail.roomNo = fopAcM_GetHomeRoomNo(this); mMail.reactType = reactType; mMail.sfx = sfx; @@ -2502,7 +2502,7 @@ static BOOL daAgbsw0_Delete(daAgbsw0_c* i_this) { info.msgID = 0xFFFF; info.swToSet = 0xFF; info.swToCheck = 0xFF; - info.stagInfo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); + info.stageSaveTbl = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); info.roomNo = fopAcM_GetHomeRoomNo(i_this); info.reactType = 0; info.sfx = 0; diff --git a/src/d/actor/d_a_dr.cpp b/src/d/actor/d_a_dr.cpp index f8e535d70..7d2d03a3c 100644 --- a/src/d/actor/d_a_dr.cpp +++ b/src/d/actor/d_a_dr.cpp @@ -180,7 +180,7 @@ static void move(dr_class* i_this) { break; } - if (!dComIfGs_isStageBossEnemy(3)) { + if (!dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_DRC)) { if ((isIdle && (l_HIO.m0C || dComIfGp_getVibration().CheckQuake())) || i_this->m2C8 != 0) { l_HIO.m0C = false; i_this->m2C8 = 0; diff --git a/src/d/actor/d_a_mmusic.cpp b/src/d/actor/d_a_mmusic.cpp index b6c0e0cf8..22a7ef468 100644 --- a/src/d/actor/d_a_mmusic.cpp +++ b/src/d/actor/d_a_mmusic.cpp @@ -36,7 +36,7 @@ bool daMmusic::Act_c::create_heap() { /* 000000A4-0000013C .text Macore_is_playing__Q28daMmusic5Act_cFv */ BOOL daMmusic::Act_c::Macore_is_playing() { - if (dComIfGs_isStageBossEnemy(7) || + if (dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_WT) || g_dComIfG_gameInfo.save.mSavedata.mEvent.isEventBit(0x2910) || g_dComIfG_gameInfo.save.mSavedata.mEvent.isEventBit(0x2e02) || g_dComIfG_gameInfo.save.mSavedata.mEvent.isEventBit(0x1610) || diff --git a/src/d/actor/d_a_npc_md.cpp b/src/d/actor/d_a_npc_md.cpp index a21a2e38e..ee3062f11 100644 --- a/src/d/actor/d_a_npc_md.cpp +++ b/src/d/actor/d_a_npc_md.cpp @@ -391,7 +391,9 @@ s32 daNpc_Md_c::create() { setTypeM_DaiB(); } } else if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) { - if (dComIfGs_isEventBit(0x2E04) || !dComIfGs_isEventBit(0x1820) || !dComIfGs_isStageBossEnemy(3)) { + if (dComIfGs_isEventBit(0x2E04) || !dComIfGs_isEventBit(0x1820) || + !dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_DRC)) + { return cPhs_ERROR_e; } } else if (strcmp(dComIfGp_getStartStageName(), "Atorizk") == 0) { diff --git a/src/d/actor/d_a_obj_barrier.cpp b/src/d/actor/d_a_obj_barrier.cpp index f61c984ee..cfb60e9c5 100644 --- a/src/d/actor/d_a_obj_barrier.cpp +++ b/src/d/actor/d_a_obj_barrier.cpp @@ -242,8 +242,7 @@ void daObjBarrier_c::break_start_wait_proc() { case 8: case 9: case 10: - // 0x2C02: Destroyed Hyrule Barrier - dComIfGs_onEventBit(0x2C02); + dComIfGs_onEventBit(dEvtBit_BARRIER_BREAK_e); mEventID = dComIfGp_evmng_getEventIdx("seal", 0xFF); mBarrierProc = PROC_BREAK_ORDER; break; @@ -485,7 +484,7 @@ int daObjBarrier_c::_create() { mMoya = param_get_moya(); if (mMoya != 0) { mBarrierActive = true; - } else if (dComIfGs_isEventBit(0x2C02) == true) { // 0x2C02: Destroyed Hyrule Barrier + } else if (dComIfGs_isEventBit(dEvtBit_BARRIER_BREAK_e) == true) { mBarrierActive = false; } else { mBarrierActive = true; diff --git a/src/d/actor/d_a_obj_toripost.cpp b/src/d/actor/d_a_obj_toripost.cpp index 2169bb8d5..d599b8315 100644 --- a/src/d/actor/d_a_obj_toripost.cpp +++ b/src/d/actor/d_a_obj_toripost.cpp @@ -20,8 +20,9 @@ extern dScnPly_reg_HIO_c g_regHIO; const char daObjTpost_c::m_arc_name[] = "Toripost"; + const daObjTpost_c__letter_data daObjTpost_c::m_letter[] = { - {false, 0x1AAF, 0x07, 0xAC03}, + {false, 0x1AAF, 0x07, dEvtReg_NOTE_TO_MOM_e}, {false, 0x0CF9, 0x07, 0xB503}, {false, 0x0CFA, 0xC3, 0x7D03}, {false, 0x0CFC, 0x04, 0x7B03}, @@ -29,12 +30,13 @@ const daObjTpost_c__letter_data daObjTpost_c::m_letter[] = { {false, 0x0CFD, 0x01, 0x7A03}, {true, 0x0DB6, 0xCB, 0xB203}, {false, 0x1148, 0x04, 0x8B03}, - {false, 0x1AAF, 0x07, 0xAC03}, + {false, 0x1AAF, 0x07, dEvtReg_NOTE_TO_MOM_e}, {true, 0x0F76, 0x9D, 0xB003}, {false, 0x19A6, 0x3F, 0xAE03}, {true, 0x0CFB, 0x04, 0x7C03}, {true, 0x0F77, 0x9E, 0xAF03} }; + const dCcD_SrcCyl daObjTpost_c::m_cyl_src = { // dCcD_SrcGObjInf { @@ -227,12 +229,12 @@ void daObjTpost_c::cutDispLetterProc(int staffIdx) { } void daObjTpost_c::deliverLetter() { - switch(field_0x8F6) { - case 0x9A: + switch(mPreItemNo) { + case MAGYS_LETTER: dComIfGs_onEventBit(0x1220); break; - case 0x99: - dLetter_send(0xAC03); + case MAGIC_SEED: + dLetter_send(dEvtReg_NOTE_TO_MOM_e); break; } } @@ -334,9 +336,9 @@ int daObjTpost_c::getMsgXY() { cXyz pos(g_regHIO.mChild[12].mFloatRegs[0], g_regHIO.mChild[12].mFloatRegs[1], g_regHIO.mChild[12].mFloatRegs[2]); cXyz scale(2.0f, 2.0f, 2.0f); - switch(field_0x8F6) { - case 0x99: - case 0x9A: + switch(mPreItemNo) { + case MAGIC_SEED: + case MAGYS_LETTER: msgId = 0xCE8; col.r = g_regHIO.mChild[12].mShortRegs[0] + 0x80; col.g = g_regHIO.mChild[12].mShortRegs[1] + 0x80; @@ -346,8 +348,8 @@ int daObjTpost_c::getMsgXY() { dComIfGp_particle_set(0x57, &pos, &shape_angle, &scale, 0xFF, NULL, -1, &col); break; - case 0x98: - case 0x9B: + case LETTER00: + case MO_LETTER: setAnm(3, false); field_0x8EA = 1; msgId = 0xCEA; @@ -695,7 +697,7 @@ void daObjTpost_c::modeTalk() { void daObjTpost_c::modeTalkXYInit() { setAnm(1, false); - field_0x8F6 = dComIfGp_event_getPreItemNo(); + mPreItemNo = dComIfGp_event_getPreItemNo(); field_0x8DC = l_HIO.field_0x14; field_0x8E0 = l_HIO.field_0x16; } @@ -893,7 +895,7 @@ void daObjTpost_c::createInit() { dLetter_autoStock(0x7D03); } - if(dLetter_isDelivery(0xAC03) && dComIfGs_isStageBossEnemy(6)) { + if(dLetter_isDelivery(dEvtReg_NOTE_TO_MOM_e) && dComIfGs_isStageBossEnemy(dSv_save_c::STAGE_ET)) { dLetter_autoStock(0x7C03); } diff --git a/src/d/actor/d_a_player_main.cpp b/src/d/actor/d_a_player_main.cpp index b99a133de..3df97f00d 100644 --- a/src/d/actor/d_a_player_main.cpp +++ b/src/d/actor/d_a_player_main.cpp @@ -3520,7 +3520,9 @@ BOOL daPy_lk_c::draw() { hideHatAndBackle(link_root_joint->getMesh()); } bool r4 = dComIfGs_getSelectEquip(0) == SWORD || dComIfGp_getMiniGameType() == 2; // TODO this may be an inline - if (!r4 && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != 5 || checkCaughtShapeHide() || checkDemoShieldNoDraw()) { + if (!r4 && dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_FF1_e || + checkCaughtShapeHide() || checkDemoShieldNoDraw()) + { mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->hide(); // cl_podA joint } else { mpCLModelData->getJointNodePointer(0x0D)->getMesh()->getShape()->show(); // cl_podA joint @@ -4213,8 +4215,7 @@ BOOL daPy_lk_c::checkSubjectEnd(int) { /* 80112280-80112330 .text checkGuardAccept__9daPy_lk_cFv */ BOOL daPy_lk_c::checkGuardAccept() { if (checkModeFlg(0x40) && !checkBowAnime()) { - u32 stageType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()); - if (stageType != 2 || + if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) != dStageType_MISC_e || strcmp(dComIfGp_getStartStageName(), "Ojhous") == 0 || strcmp(dComIfGp_getStartStageName(), "Orichh") == 0) { @@ -5130,7 +5131,9 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int eventInfoIdx, f32 param_3, int setDamagePoint(param_3); mTinkleShieldTimer = 0; - if (stageType == 7 && !dComIfGs_isEventBit(0x2A08) && (current.roomNo == 11 || current.roomNo == 44) && dStage_chkPlayerId(0x80, current.roomNo)) { + if (stageType == dStageType_SEA_e && !dComIfGs_isEventBit(dEvtBit_SHIP_RIDDEN_e) && + (current.roomNo == 11 || current.roomNo == 44) && dStage_chkPlayerId(0x80, current.roomNo)) + { dComIfGp_setNextStage(dComIfGp_getStartStageName(), 0x80, current.roomNo, -1, 0.0f, param_1); u32 roomParam = setParamData(-1, 0, eventInfoIdx, 0); dComIfGs_setRestartRoomParam(roomParam); @@ -5148,7 +5151,7 @@ BOOL daPy_lk_c::startRestartRoom(u32 param_1, int eventInfoIdx, f32 param_3, int } if (i_point == 0xFF) { - if (stageType == 7) { + if (stageType == dStageType_SEA_e) { cXyz* pos; if (dComIfGp_getShipActor()) { pos = &dComIfGp_getShipActor()->current.pos; diff --git a/src/d/actor/d_a_player_tact.inc b/src/d/actor/d_a_player_tact.inc index 40295ad5e..f1c9769ce 100644 --- a/src/d/actor/d_a_player_tact.inc +++ b/src/d/actor/d_a_player_tact.inc @@ -13,6 +13,10 @@ #include "d/actor/d_a_player_main.h" #include "f_op/f_op_camera.h" #include "JSystem/J3DGraphLoader/J3DAnmLoader.h" +#include "d/d_procname.h" +#include "d/actor/d_a_ship.h" +#include "d/actor/d_a_player_HIO.h" +#include "JSystem/JKernel/JKRHeap.h" extern const Vec l_tact_top; @@ -337,7 +341,7 @@ BOOL daPy_lk_c::procTactPlay_init(s32 r27, int r30, int r31) { if (r28 != 0 && m3570 == 1) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (dStage_stagInfo_GetSTType(stag_info) == 7 && m34CC != 1 && r30 != 0) { + if (dStage_stagInfo_GetSTType(stag_info) == dStageType_SEA_e && m34CC != 1 && r30 != 0) { daShip_c* ship = dComIfGp_getShipActor(); u32 warpID = fopAcM_create(PROC_TORNADO, 1, ¤t.pos, current.roomNo); ship->setTactWarpID(warpID); diff --git a/src/d/actor/d_a_sea.cpp b/src/d/actor/d_a_sea.cpp index ba9d4cf3e..211fb6efb 100644 --- a/src/d/actor/d_a_sea.cpp +++ b/src/d/actor/d_a_sea.cpp @@ -90,7 +90,7 @@ u32 daSea_WaterHeightInfo_Mng::GetHeight(int x, int z) { if (x < 0 || 9 <= x || z < 0 || 9 <= z) return 10; - if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 7) { + if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e) { return mHeight[z][x]; } else { return get_wave_max(dComIfGp_roomControl_getStayNo()); diff --git a/src/d/actor/d_a_tbox.cpp b/src/d/actor/d_a_tbox.cpp index 7741c9a6d..fd841dfa4 100644 --- a/src/d/actor/d_a_tbox.cpp +++ b/src/d/actor/d_a_tbox.cpp @@ -369,7 +369,7 @@ BOOL daTbox_c::checkEnv() { /* 00000CD8-00000D48 .text checkOpen__8daTbox_cFv */ BOOL daTbox_c::checkOpen() { if (getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO || getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO_SPAWN) { - int stageNo = 1; + int stageNo = dSv_save_c::STAGE_SEA2; u8 tBoxNo = getTboxNo(); return dComIfGs_isStageTbox(stageNo, tBoxNo); @@ -903,7 +903,7 @@ void daTbox_c::OpenInit_com() { mOpenAnm.setPlaySpeed(1.0f); if (getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO || getFuncType() == FUNC_TYPE_EXTRA_SAVE_INFO_SPAWN) { - dComIfGs_onStageTbox(1, getTboxNo()); + dComIfGs_onStageTbox(dSv_save_c::STAGE_SEA2, getTboxNo()); } else { u8 tboxNo = getTboxNo(); diff --git a/src/d/actor/d_a_vrbox2.cpp b/src/d/actor/d_a_vrbox2.cpp index 2a02e586f..3f57ba812 100644 --- a/src/d/actor/d_a_vrbox2.cpp +++ b/src/d/actor/d_a_vrbox2.cpp @@ -116,7 +116,7 @@ BOOL daVrbox2_color_set(vrbox2_class* i_this) { windPow = dKyw_get_wind_pow(); windNrmVec = *windVec; - if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 2) { + if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MISC_e) { s16 stageWindY = 0; if (strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0) stageWindY = 0x4000; diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index d070bec4b..e3b01f025 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -1123,9 +1123,12 @@ void dComIfGs_setGameStartStage() { }; static check_data l_checkData[] = { - {true, 0x2A08, "", 0, 0}, {true, 0xF80, "sea", 11, 128}, - {true, 0x801, "MajyuE", 0, 0}, {true, 0x808, "MajyuE", 0, 18}, - {true, 0x2401, "A_umikz", 0, 204}, {false, 0, "sea", 44, 128}, + {true, dEvtBit_SHIP_RIDDEN_e, "", 0, 0}, + {true, 0xF80, "sea", 11, 128}, + {true, 0x801, "MajyuE", 0, 0}, + {true, 0x808, "MajyuE", 0, 18}, + {true, 0x2401, "A_umikz", 0, 204}, + {false, 0, "sea", 44, 128}, }; check_data* data_p = l_checkData; @@ -1155,7 +1158,7 @@ void dComIfGs_setGameStartStage() { room_no = dComIfGs_getEventReg(0xC3FF); point = dComIfGs_getEventReg(0x85FF); dKy_set_nexttime(120.0f); - } else if (stage_type == 7) { + } else if (stage_type == dStageType_SEA_e) { daPy_lk_c* player_p = daPy_getPlayerLinkActorClass(); point = player_p->mRestartPoint; @@ -1176,12 +1179,15 @@ void dComIfGs_setGameStartStage() { room_no = scls_p->mRoom; point = scls_p->mStart; } - } else if (stage_type == 1 || stage_type == 6 || stage_type == 3 || stage_type == 8 || save_tbl == 9) { + } else if (stage_type == dStageType_DUNGEON_e || stage_type == dStageType_MINIBOSS_e || + stage_type == dStageType_BOSS_e || stage_type == dStageType_UNKNOWN_8_e || + save_tbl == dSv_save_c::STAGE_HYRULE) + { stage_scls_info_class* scls_p = getSceneList(0); strcpy(stage_name, scls_p->mStage); room_no = scls_p->mRoom; point = scls_p->mStart; - } else if (save_tbl == 10) { + } else if (save_tbl == dSv_save_c::STAGE_SHIP) { cXyz ikada_pos; dComIfGp_getIkadaShipBeforePos(&ikada_pos); @@ -1189,7 +1195,9 @@ void dComIfGs_setGameStartStage() { strcpy(stage_name, scls_p->mStage); room_no = scls_p->mRoom; point = scls_p->mStart; - } else if (save_tbl == 11 || save_tbl == 12 || save_tbl == 13) { + } else if (save_tbl == dSv_save_c::STAGE_MISC || save_tbl == dSv_save_c::STAGE_SUBDUNGEON || + save_tbl == dSv_save_c::STAGE_SUBDUNGEON_NEW) + { strcpy(stage_name, "sea"); stage_map_info_class* mapInfo = dComIfGp_getStage().getMapInfo(); @@ -1222,14 +1230,14 @@ void dComIfGs_copyPlayerRecollectionData() { s32 tbl; dSv_player_status_c_c stts; - if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 3) { - if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 3) + if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_BOSS_e) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_DRC) tbl = 0; - else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 4) + else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_FW) tbl = 1; - else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 6) + else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_ET) tbl = 2; - else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 7) + else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == dSv_save_c::STAGE_WT) tbl = 3; else return; diff --git a/src/d/d_event_manager.cpp b/src/d/d_event_manager.cpp index b81d6537d..c27e6219c 100644 --- a/src/d/d_event_manager.cpp +++ b/src/d/d_event_manager.cpp @@ -67,7 +67,7 @@ const char* dEvent_exception_c::getEventName() { if (mEventInfoIdx == 207) { JUT_ASSERT(0x9b, stage_info); - if (dStage_stagInfo_GetSTType(stage_info) == 3) + if (dStage_stagInfo_GetSTType(stage_info) == dStageType_BOSS_e) return "BS_SHUTTER_START"; } diff --git a/src/d/d_item.cpp b/src/d/d_item.cpp index 727f4b469..db7d9fc45 100644 --- a/src/d/d_item.cpp +++ b/src/d/d_item.cpp @@ -589,10 +589,10 @@ void item_func_utuwa_heart() { dComIfGp_setItemLifeCount(dComIfGs_getMaxLife()); stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (dStage_stagInfo_GetSaveTbl(stag_info) == 0) { + if (dStage_stagInfo_GetSaveTbl(stag_info) == dSv_save_c::STAGE_SEA) { // Didn't get the Heart Container immediately after defeating Helmaroc King. // Instead got it from outside Forsaken Fortress, on the sea stage. - dComIfGs_onStageLife(2); + dComIfGs_onStageLife(dSv_save_c::STAGE_FF); } else { dComIfGs_onStageLife(); } @@ -1424,47 +1424,47 @@ void item_func_tincle_rupee6() { /* 800C4DB4-800C4DE4 .text item_func_lithograph1__Fv */ void item_func_lithograph1() { - dComIfGs_onEventBit(0x3508); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_1_e); } /* 800C4DE4-800C4E14 .text item_func_lithograph2__Fv */ void item_func_lithograph2() { - dComIfGs_onEventBit(0x3504); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_2_e); } /* 800C4E14-800C4E44 .text item_func_lithograph3__Fv */ void item_func_lithograph3() { - dComIfGs_onEventBit(0x3502); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_3_e); } /* 800C4E44-800C4E74 .text item_func_lithograph4__Fv */ void item_func_lithograph4() { - dComIfGs_onEventBit(0x3501); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_4_e); } /* 800C4E74-800C4EA4 .text item_func_lithograph5__Fv */ void item_func_lithograph5() { - dComIfGs_onEventBit(0x3680); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_5_e); } /* 800C4EA4-800C4ED4 .text item_func_lithograph6__Fv */ void item_func_lithograph6() { - dComIfGs_onEventBit(0x3640); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_6_e); } /* 800C4ED4-800C4F04 .text item_func_collectmap64__Fv */ void item_func_collectmap64() { - dComIfGs_onEventBit(0x3620); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_7_e); } /* 800C4F04-800C4F34 .text item_func_collectmap63__Fv */ void item_func_collectmap63() { - dComIfGs_onEventBit(0x3610); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_8_e); } /* 800C4F34-800C4F64 .text item_func_collectmap62__Fv */ void item_func_collectmap62() { - dComIfGs_onEventBit(0x3608); + dComIfGs_onEventBit(dEvtBit_LITHOGRAPH_9_e); } /* 800C4F64-800C4FB8 .text item_func_collectmap61__Fv */ @@ -2531,52 +2531,52 @@ int item_getcheck_func_xxx_039() { /* 800C77E4-800C7814 .text item_getcheck_func_lithograph1__Fv */ int item_getcheck_func_lithograph1() { - return dComIfGs_isEventBit(0x3508); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_1_e); } /* 800C7814-800C7844 .text item_getcheck_func_lithograph2__Fv */ int item_getcheck_func_lithograph2() { - return dComIfGs_isEventBit(0x3504); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_2_e); } /* 800C7844-800C7874 .text item_getcheck_func_lithograph3__Fv */ int item_getcheck_func_lithograph3() { - return dComIfGs_isEventBit(0x3502); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_3_e); } /* 800C7874-800C78A4 .text item_getcheck_func_lithograph4__Fv */ int item_getcheck_func_lithograph4() { - return dComIfGs_isEventBit(0x3501); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_4_e); } /* 800C78A4-800C78D4 .text item_getcheck_func_lithograph5__Fv */ int item_getcheck_func_lithograph5() { - return dComIfGs_isEventBit(0x3680); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_5_e); } /* 800C78D4-800C7904 .text item_getcheck_func_lithograph6__Fv */ int item_getcheck_func_lithograph6() { - return dComIfGs_isEventBit(0x3640); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_6_e); } /* 800C7904-800C7934 .text item_getcheck_func_lithograph7__Fv */ int item_getcheck_func_lithograph7() { - return dComIfGs_isEventBit(0x3620); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_7_e); } /* 800C7934-800C7964 .text item_getcheck_func_lithograph8__Fv */ int item_getcheck_func_lithograph8() { - return dComIfGs_isEventBit(0x3610); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_8_e); } /* 800C7964-800C7994 .text item_getcheck_func_lithograph9__Fv */ int item_getcheck_func_lithograph9() { - return dComIfGs_isEventBit(0x3608); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_9_e); } /* 800C7994-800C79C4 .text item_getcheck_func_lithograph10__Fv */ int item_getcheck_func_lithograph10() { - return dComIfGs_isEventBit(0x3604); + return dComIfGs_isEventBit(dEvtBit_LITHOGRAPH_10_e); } /* 800C79C4-800C79F4 .text item_getcheck_func_lithograph11__Fv */ diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index e9bbc8604..6e74f8ec4 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -392,7 +392,7 @@ void envcolor_init() { g_env_light.field_0xc98 = 0; g_env_light.mbDayNightTactStop = false; - if (dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()) == 3) { + if (dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()) == dStageType_BOSS_e) { g_env_light.mpSchejule = dKyd_schejule_boss_getp(); } else { g_env_light.mpSchejule = dKyd_schejule_getp(); diff --git a/src/d/d_kankyo_rain.cpp b/src/d/d_kankyo_rain.cpp index d85cb80dc..394eafc19 100644 --- a/src/d/d_kankyo_rain.cpp +++ b/src/d/d_kankyo_rain.cpp @@ -193,7 +193,7 @@ void dKyr_sun_move() { u8 numPointsVisible = 0, numCenterPointsVisible = 0; u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()); cXyz lightDir; - if (g_env_light.mBaseLightInfluence.mColor.r == 0 && stType != 2) { + if (g_env_light.mBaseLightInfluence.mColor.r == 0 && stType != dStageType_MISC_e) { dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mBaseLightInfluence.mPos, &lightDir); } else { dKyr_get_vectle_calc(&pCamera->mLookat.mEye, &g_env_light.mSunPos2, &lightDir); @@ -302,7 +302,7 @@ void dKyr_sun_move() { numPointsVisible = 0; } - if (stType == 2) { + if (stType == dStageType_MISC_e) { numCenterPointsVisible = 0; numPointsVisible = 0; } @@ -556,7 +556,7 @@ void wave_move() { windPow = dKyw_get_wind_pow(); windPowVec2 = *windVecP; - if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == 2) { + if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MISC_e) { stageWindY = 0; if (strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0) @@ -894,7 +894,7 @@ void dKyr_drawSun(Mtx drawMtx, cXyz* pPos, GXColor& reg0, u8** pImg) { sunPos = *pPos; u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()); - if (dKy_getEnvlight().mBaseLightInfluence.mColor.r == 0 && stType != 2) { + if (dKy_getEnvlight().mBaseLightInfluence.mColor.r == 0 && stType != dStageType_MISC_e) { if (dKy_getEnvlight().mCurTime > 285.0f || dKy_getEnvlight().mCurTime < 105.0f) bDrawMoon = false; diff --git a/src/d/d_kyeff.cpp b/src/d/d_kyeff.cpp index 0c86175be..c4bab4610 100644 --- a/src/d/d_kyeff.cpp +++ b/src/d/d_kyeff.cpp @@ -147,10 +147,10 @@ s32 dKyeff_Create(kankyo_class* i_ky) { g_env_light.mCurTime = 15.0f * cal.hours; } else if (dKy_checkEventNightStop()) { u32 stType = dStage_stagInfo_GetSTType(dComIfGp_getStage().getStagInfo()); - if (stType == 0 || stType == 7) { + if (stType == dStageType_OUTDOORS_e || stType == dStageType_SEA_e) { dKyw_rain_set(250); g_env_light.mThunderEff.mMode = 1; - } else if (stType == 2) { + } else if (stType == dStageType_MISC_e) { if (strcmp(dComIfGp_getStartStageName(), "Ocrogh") == 0 || strcmp(dComIfGp_getStartStageName(), "Omori") == 0 || strcmp(dComIfGp_getStartStageName(), "Orichh") == 0 || strcmp(dComIfGp_getStartStageName(), "Atorizk") == 0 || strcmp(dComIfGp_getStartStageName(), "LinkRM") == 0 || strcmp(dComIfGp_getStartStageName(), "Ojhous2") == 0 || diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index ccfa1e6d4..cb5efeacf 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -60,8 +60,7 @@ void dStage_KeepTresureInfoProc(dStage_dt_c* i_stage, stage_tresure_class* i_tre return; } u32 stageType = dStage_stagInfo_GetSTType(stagInfo); - if (stageType == 3 || stageType == 6) { - // Boss or miniboss room. + if (stageType == dStageType_BOSS_e || stageType == dStageType_MINIBOSS_e) { return; } if (i_tresure == NULL) { @@ -90,8 +89,7 @@ void dStage_KeepDoorInfoProc(dStage_dt_c* i_stage, stage_tgsc_class* i_drtg) { return; } u32 stageType = dStage_stagInfo_GetSTType(stagInfo); - if (stageType == 3 || stageType == 6) { - // Boss or miniboss room. + if (stageType == dStageType_BOSS_e || stageType == dStageType_MINIBOSS_e) { return; } if (i_drtg == NULL) { @@ -1890,7 +1888,7 @@ int dStage_shipInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { s32 roomId = dComIfGp_getShipRoomId(); if (dStage_chkTaura(roomId)) { - if (!dComIfGs_isEventBit(0x2A08) && dStage_setShipPos(0x80, roomId)) { + if (!dComIfGs_isEventBit(dEvtBit_SHIP_RIDDEN_e) && dStage_setShipPos(0x80, roomId)) { shipId = 0xFF; roomId = 0xFF; dComIfGp_setShipId(0xFF);