Add enums for island room numbers and indexes

This commit is contained in:
LagoLunatic
2025-01-06 00:47:29 -05:00
parent 37dbfd75de
commit b18a1e448a
13 changed files with 176 additions and 59 deletions
+114 -3
View File
@@ -283,6 +283,115 @@ public:
STATIC_ASSERT(sizeof(dSv_player_collect_c) == 0xD);
enum dIslandRoomNo_e {
// Room 0 on the sea is not an island, it's the sea floor, used to load islands as you sail.
dIsleRoom_SeaFloor_e = 0,
/* 0x01 */ dIsleRoom_ForsakenFortress_e = 1,
/* 0x02 */ dIsleRoom_StarIsland_e = 2,
/* 0x03 */ dIsleRoom_NorthernFairyIsland_e = 3,
/* 0x04 */ dIsleRoom_GaleIsle_e = 4,
/* 0x05 */ dIsleRoom_CrescentMoonIsland_e = 5,
/* 0x06 */ dIsleRoom_SevenStarIsles_e = 6,
/* 0x07 */ dIsleRoom_OverlookIsland_e = 7,
/* 0x08 */ dIsleRoom_FourEyeReef_e = 8,
/* 0x09 */ dIsleRoom_MotherandChildIsles_e = 9,
/* 0x0A */ dIsleRoom_SpectacleIsland_e = 10,
/* 0x0B */ dIsleRoom_WindfallIsland_e = 11,
/* 0x0C */ dIsleRoom_PawprintIsle_e = 12,
/* 0x0D */ dIsleRoom_DragonRoostIsland_e = 13,
/* 0x0E */ dIsleRoom_FlightControlPlatform_e = 14,
/* 0x0F */ dIsleRoom_WesternFairyIsland_e = 15,
/* 0x10 */ dIsleRoom_RockSpireIsle_e = 16,
/* 0x11 */ dIsleRoom_TingleIsland_e = 17,
/* 0x12 */ dIsleRoom_NorthernTriangleIsland_e = 18,
/* 0x13 */ dIsleRoom_EasternFairyIsland_e = 19,
/* 0x14 */ dIsleRoom_FireMountain_e = 20,
/* 0x15 */ dIsleRoom_StarBeltArchipelago_e = 21,
/* 0x16 */ dIsleRoom_ThreeEyeReef_e = 22,
/* 0x17 */ dIsleRoom_GreatfishIsle_e = 23,
/* 0x18 */ dIsleRoom_CyclopsReef_e = 24,
/* 0x19 */ dIsleRoom_SixEyeReef_e = 25,
/* 0x1A */ dIsleRoom_ToweroftheGods_e = 26,
/* 0x1B */ dIsleRoom_EasternTriangleIsland_e = 27,
/* 0x1C */ dIsleRoom_ThornedFairyIsland_e = 28,
/* 0x1D */ dIsleRoom_NeedleRockIsle_e = 29,
/* 0x1E */ dIsleRoom_IsletofSteel_e = 30,
/* 0x1F */ dIsleRoom_StoneWatcherIsland_e = 31,
/* 0x20 */ dIsleRoom_SouthernTriangleIsland_e = 32,
/* 0x21 */ dIsleRoom_PrivateOasis_e = 33,
/* 0x22 */ dIsleRoom_BombIsland_e = 34,
/* 0x23 */ dIsleRoom_BirdsPeakRock_e = 35,
/* 0x24 */ dIsleRoom_DiamondSteppeIsland_e = 36,
/* 0x25 */ dIsleRoom_FiveEyeReef_e = 37,
/* 0x26 */ dIsleRoom_SharkIsland_e = 38,
/* 0x27 */ dIsleRoom_SouthernFairyIsland_e = 39,
/* 0x28 */ dIsleRoom_IceRingIsle_e = 40,
/* 0x29 */ dIsleRoom_ForestHaven_e = 41,
/* 0x2A */ dIsleRoom_CliffPlateauIsles_e = 42,
/* 0x2B */ dIsleRoom_HorseshoeIsland_e = 43,
/* 0x2C */ dIsleRoom_OutsetIsland_e = 44,
/* 0x2D */ dIsleRoom_HeadstoneIsland_e = 45,
/* 0x2E */ dIsleRoom_TwoEyeReef_e = 46,
/* 0x2F */ dIsleRoom_AngularIsles_e = 47,
/* 0x30 */ dIsleRoom_BoatingCourse_e = 48,
/* 0x31 */ dIsleRoom_FiveStarIsles_e = 49,
};
enum dIslandIndex_e {
dIsleIdx_ForsakenFortress_e = 0,
dIsleIdx_StarIsland_e = 1,
dIsleIdx_NorthernFairyIsland_e = 2,
dIsleIdx_GaleIsle_e = 3,
dIsleIdx_CrescentMoonIsland_e = 4,
dIsleIdx_SevenStarIsles_e = 5,
dIsleIdx_OverlookIsland_e = 6,
dIsleIdx_FourEyeReef_e = 7,
dIsleIdx_MotherandChildIsles_e = 8,
dIsleIdx_SpectacleIsland_e = 9,
dIsleIdx_WindfallIsland_e = 10,
dIsleIdx_PawprintIsle_e = 11,
dIsleIdx_DragonRoostIsland_e = 12,
dIsleIdx_FlightControlPlatform_e = 13,
dIsleIdx_WesternFairyIsland_e = 14,
dIsleIdx_RockSpireIsle_e = 15,
dIsleIdx_TingleIsland_e = 16,
dIsleIdx_NorthernTriangleIsland_e = 17,
dIsleIdx_EasternFairyIsland_e = 18,
dIsleIdx_FireMountain_e = 19,
dIsleIdx_StarBeltArchipelago_e = 20,
dIsleIdx_ThreeEyeReef_e = 21,
dIsleIdx_GreatfishIsle_e = 22,
dIsleIdx_CyclopsReef_e = 23,
dIsleIdx_SixEyeReef_e = 24,
dIsleIdx_ToweroftheGods_e = 25,
dIsleIdx_EasternTriangleIsland_e = 26,
dIsleIdx_ThornedFairyIsland_e = 27,
dIsleIdx_NeedleRockIsle_e = 28,
dIsleIdx_IsletofSteel_e = 29,
dIsleIdx_StoneWatcherIsland_e = 30,
dIsleIdx_SouthernTriangleIsland_e = 31,
dIsleIdx_PrivateOasis_e = 32,
dIsleIdx_BombIsland_e = 33,
dIsleIdx_BirdsPeakRock_e = 34,
dIsleIdx_DiamondSteppeIsland_e = 35,
dIsleIdx_FiveEyeReef_e = 36,
dIsleIdx_SharkIsland_e = 37,
dIsleIdx_SouthernFairyIsland_e = 38,
dIsleIdx_IceRingIsle_e = 39,
dIsleIdx_ForestHaven_e = 40,
dIsleIdx_CliffPlateauIsles_e = 41,
dIsleIdx_HorseshoeIsland_e = 42,
dIsleIdx_OutsetIsland_e = 43,
dIsleIdx_HeadstoneIsland_e = 44,
dIsleIdx_TwoEyeReef_e = 45,
dIsleIdx_AngularIsles_e = 46,
dIsleIdx_BoatingCourse_e = 47,
dIsleIdx_FiveStarIsles_e = 48,
dIsleIdx_COUNT_e = 49,
};
class dSv_player_map_c {
public:
void init();
@@ -306,7 +415,7 @@ public:
BOOL isSaveArriveGridForAgb(int);
/* 0x00 */ u32 field_0x0[4][4];
/* 0x40 */ u8 field_0x40[49];
/* 0x40 */ u8 mFmapBits[dIsleIdx_COUNT_e];
/* 0x71 */ u8 field_0x71[16];
/* 0x81 */ u8 field_0x81;
/* 0x82 */ u8 field_0x82[0x84 - 0x82];
@@ -454,6 +563,8 @@ public:
dSv_player_status_c_c* getpPlayerStatusC(int i_idx) { return &mStatusC[i_idx]; }
static const int PLAYER_STATUS_C_COUNT = 4;
static const int PACKED_STRUCT_SIZE =
sizeof(dSv_player_status_a_c) +
sizeof(dSv_player_status_b_c) +
@@ -470,7 +581,7 @@ public:
sizeof(dSv_player_info_c) +
sizeof(dSv_player_config_c) +
sizeof(dSv_player_priest_c) +
sizeof(dSv_player_status_c_c) * 4;
sizeof(dSv_player_status_c_c) * PLAYER_STATUS_C_COUNT;
/* 0x000 */ dSv_player_status_a_c mPlayerStatusA;
/* 0x018 */ dSv_player_status_b_c mPlayerStatusB;
@@ -490,7 +601,7 @@ public:
/* 0x1A4 */ dSv_player_config_c mConfig;
/* 0x1A9 */ /* 3 bytes of alignment padding */
/* 0x1AC */ dSv_player_priest_c mPriest;
/* 0x1BC */ dSv_player_status_c_c mStatusC[4];
/* 0x1BC */ dSv_player_status_c_c mStatusC[PLAYER_STATUS_C_COUNT];
/* 0x37C */ /* 4 bytes of alignment padding */
}; // Size: 0x380
+13 -13
View File
@@ -110,7 +110,7 @@ JAIZelBasic::JAIZelBasic() {
field_0x00c9 = 0;
field_0x00ca = 0;
mCameraSeaFloorGroupInfo = 0;
mIslandRoomNo = 0;
mIslandRoomNo = dIsleRoom_SeaFloor_e;
mLinkSeaFloorGroupInfo = 0;
field_0x021e = 0;
field_0x00cb = -1;
@@ -222,7 +222,7 @@ void JAIZelBasic::resetRecover() {
data->field_0x48->stop(0);
}
}
setScene(0, 0, 0, -1);
setScene(0, dIsleRoom_SeaFloor_e, 0, -1);
load1stDynamicWave();
sceneBgmStart();
load2ndDynamicWave();
@@ -1022,7 +1022,7 @@ void JAIZelBasic::setCameraGroupInfo(u8 param_1) {
}
} else if (mCameraSeaFloorGroupInfo & 0x80) {
OSReport("[JAIZelBasic::setCameraGroupInfo] Outer Edge -> Outer Sea\n");
mIslandRoomNo = 0;
mIslandRoomNo = dIsleRoom_SeaFloor_e;
} else if ((mCameraSeaFloorGroupInfo & 0x40) == 0 && mCameraSeaFloorGroupInfo) {
OSReport("[JAIZelBasic::setCameraGroupInfo] Inner Edge -> Inner Sea\n");
}
@@ -1034,7 +1034,7 @@ void JAIZelBasic::setCameraGroupInfo(u8 param_1) {
/* 802A9F60-802AA2B8 .text changeSeaBgm__11JAIZelBasicFv */
void JAIZelBasic::changeSeaBgm() {
if (field_0x0224 != 0x12) { return; }
if (mIslandRoomNo == 0) { return; }
if (mIslandRoomNo == dIsleRoom_SeaFloor_e) { return; }
if (mMainBgmNum == JA_BGM_DIE_LINK) { return; }
if (!checkEventBit(dSv_evtBit_c::MET_KORL)) { return; }
if (mAudioCamera->field_0x0 == NULL) { return; }
@@ -1099,7 +1099,7 @@ void JAIZelBasic::startIsleBgm() {
return;
}
u32 bgmNum;
if (mIslandRoomNo == 44 && checkEventBit(0xe20) == 1) {
if (mIslandRoomNo == dIsleRoom_OutsetIsland_e && checkEventBit(0xe20) == 1) {
bgmNum = JA_BGM_ISLAND_LINK_3;
} else {
bgmNum = m_isle_info[mIslandRoomNo].bgmNum;
@@ -1113,7 +1113,7 @@ void JAIZelBasic::setLinkGroupInfo(u8 param_1) {
if (field_0x0224 != 0x12) {
return;
}
if (mIslandRoomNo == 0) {
if (mIslandRoomNo == dIsleRoom_SeaFloor_e) {
return;
}
if (param_1 == mLinkSeaFloorGroupInfo) {
@@ -1159,7 +1159,7 @@ void JAIZelBasic::setScene(s32 sceneNum, s32 roomNo, s32 param_3, s32 layerNo) {
}
OSReport(" --- Isle = %d\n", mIslandRoomNo);
if (param_3 != 1) {
if (mIslandRoomNo == 44) {
if (mIslandRoomNo == dIsleRoom_OutsetIsland_e) {
if (layerNo == 10) {
bgmNum = 0;
} else if (checkEventBit(0x3510) == 0) {
@@ -1174,21 +1174,21 @@ void JAIZelBasic::setScene(s32 sceneNum, s32 roomNo, s32 param_3, s32 layerNo) {
bgmNum = m_isle_info[mIslandRoomNo].bgmNum;
bgmNum = expandSceneBgmNum(bgmNum);
}
} else if (mIslandRoomNo == 11) {
} else if (mIslandRoomNo == dIsleRoom_WindfallIsland_e) {
if (checkEventBit(0x2e01) == 0) {
bgmNum = 0;
} else {
bgmNum = m_isle_info[mIslandRoomNo].bgmNum;
bgmNum = expandSceneBgmNum(bgmNum);
}
} else if (mIslandRoomNo == 13) {
} else if (mIslandRoomNo == dIsleRoom_DragonRoostIsland_e) {
if (layerNo == 8 || layerNo == 10 || layerNo == 11) {
bgmNum = 0;
} else {
bgmNum = m_isle_info[mIslandRoomNo].bgmNum;
bgmNum = expandSceneBgmNum(bgmNum);
}
} else if (mIslandRoomNo == 14) {
} else if (mIslandRoomNo == dIsleRoom_FlightControlPlatform_e) {
if (layerNo == 2 || layerNo == 3) {
bgmNum = 0;
field_0x00bd = 1;
@@ -1204,7 +1204,7 @@ void JAIZelBasic::setScene(s32 sceneNum, s32 roomNo, s32 param_3, s32 layerNo) {
var1 = m_isle_info[mIslandRoomNo].field_0x2;
var2 = m_isle_info[mIslandRoomNo].field_0x3;
} else {
mIslandRoomNo = 0;
mIslandRoomNo = dIsleRoom_SeaFloor_e;
if (sceneNum == 16 && checkEventBit(0x280) == 0) {
bgmNum = JA_BGM_FIND_TETRA;
} else if (sceneNum == 19 && checkEventBit(0x801) == 0) {
@@ -1372,7 +1372,7 @@ u32 JAIZelBasic::expandSceneBgmNum(u32 bgmNum) {
/* 802AAD0C-802AAD48 .text checkLinkOnSea__11JAIZelBasicFv */
BOOL JAIZelBasic::checkLinkOnSea() {
if (field_0x0224 == 0x12) {
if (mIslandRoomNo == 0) {
if (mIslandRoomNo == dIsleRoom_SeaFloor_e) {
return TRUE;
} else if (mLinkSeaFloorGroupInfo != 0) {
return TRUE;
@@ -1643,7 +1643,7 @@ int JAIZelBasic::checkOnOuterSea(f32* r4) {
if (field_0x0224 != 0x12) {
return -1;
}
if (mIslandRoomNo == 0) {
if (mIslandRoomNo == dIsleRoom_SeaFloor_e) {
return 4;
}
isle_area_s sp0C = mIsleArea[mIslandRoomNo];
+6 -6
View File
@@ -907,7 +907,7 @@ u32 daAgbsw0_c::TriforceCheck(daAgb_c* agb)
#else
int roomNo = agb->field_0x66d;
#endif
return roomNo == 0x21 ? 0x30A : 0x30B;
return roomNo == dIsleRoom_PrivateOasis_e ? 0x30A : 0x30B;
}
else {
u8 num = dComIfGs_checkGetItemNum(dItem_JOY_PENDANT_e);
@@ -922,7 +922,7 @@ u32 daAgbsw0_c::TriforceCheck(daAgb_c* agb)
#else
int roomNo = agb->field_0x66d;
#endif
return roomNo == 0x23 ? 0x311 : 0x310;
return roomNo == dIsleRoom_BirdsPeakRock_e ? 0x311 : 0x310;
}
else {
return 0x30F;
@@ -1021,7 +1021,7 @@ u32 daAgbsw0_c::TriforceCheck(daAgb_c* agb)
#else
int roomNo = agb->field_0x66d;
#endif
return roomNo == 0x1D ? 0x31C : 0x31D;
return roomNo == dIsleRoom_NeedleRockIsle_e ? 0x31C : 0x31D;
}
}
if(!dComIfGs_isCollect(2, 0)) {
@@ -1039,7 +1039,7 @@ u32 daAgbsw0_c::TriforceCheck(daAgb_c* agb)
#else
int roomNo = agb->field_0x66d;
#endif
return roomNo == 0x2C ? 0x325 : 0x324;
return roomNo == dIsleRoom_OutsetIsland_e ? 0x325 : 0x324;
}
if(!dComIfGs_isGetCollectMap(7)) {
#if VERSION == VERSION_JPN
@@ -1047,7 +1047,7 @@ u32 daAgbsw0_c::TriforceCheck(daAgb_c* agb)
#else
int roomNo = agb->field_0x66d;
#endif
return roomNo == 0x1F ? 0x327 : 0x326;
return roomNo == dIsleRoom_StoneWatcherIsland_e ? 0x327 : 0x326;
}
if(dComIfGs_checkGetItem(dItem_HOOKSHOT_e)) {
#if VERSION == VERSION_JPN
@@ -1055,7 +1055,7 @@ u32 daAgbsw0_c::TriforceCheck(daAgb_c* agb)
#else
int roomNo = agb->field_0x66d;
#endif
return roomNo == 0x7 ? 0x32C : 0x32D;
return roomNo == dIsleRoom_OverlookIsland_e ? 0x32C : 0x32D;
}
return 0x32B;
+9 -9
View File
@@ -153,10 +153,10 @@ BOOL daLodbg_c::createModelData() {
if (!loadModelData(resPath, mModelData, mDataHeap, mDataSize))
return FALSE;
if (getRoomNo() == 11) { // windfall
if (getRoomNo() == dIsleRoom_WindfallIsland_e) {
if (!loadModelData("/lod11/bdl/shikari.bdl", mModelData2, mDataHeap2, mDataSize2))
return FALSE;
} else if (getRoomNo() == 1 && !dComIfGs_isEventBit(0x1820)) { // forsaken
} else if (getRoomNo() == dIsleRoom_ForsakenFortress_e && !dComIfGs_isEventBit(0x1820)) {
if (!loadModelData("/lod01/bdl/model1.bdl", mModelData2, mDataHeap2, mDataSize2))
return FALSE;
}
@@ -170,7 +170,7 @@ BOOL daLodbg_c::createHeap() {
mModel = mDoExt_J3DModel__create(mModelData, 0x80000, 0x11000022);
if (mModel == NULL)
return FALSE;
if (getRoomNo() == 11) { // windfall
if (getRoomNo() == dIsleRoom_WindfallIsland_e) {
JUT_ASSERT(0x1bf, mModelData2 != NULL);
for (s32 i = 0; i < 2; i++) {
mModel2[i] = mDoExt_J3DModel__create(mModelData2, 0x80000, 0x11000022);
@@ -180,7 +180,7 @@ BOOL daLodbg_c::createHeap() {
return FALSE;
}
}
} else if (getRoomNo() == 1 && mModelData2 != NULL) { // forsaken
} else if (getRoomNo() == dIsleRoom_ForsakenFortress_e && mModelData2 != NULL) {
mModel2[0] = mDoExt_J3DModel__create(mModelData2, 0x80000, 0x11000022);
if (mModel2[0] == NULL) {
mModel = NULL;
@@ -267,7 +267,7 @@ BOOL daLodbg_c::execDeleteWait() {
mDoMtx_stack_c::YrotM(shape_angle.y);
mModel->setBaseTRMtx(mDoMtx_stack_c::get());
if (mModel2[0] != NULL) {
if (roomNo == 11) { // windfall
if (roomNo == dIsleRoom_WindfallIsland_e) {
mDrawModel2 = daObjLight::Act_c::renew_light_angle();
if (mDrawModel2) {
mDoMtx_stack_c::transS(630.46338f, y + 4044.508f, -202724.0f);
@@ -276,7 +276,7 @@ BOOL daLodbg_c::execDeleteWait() {
mDoMtx_stack_c::YrotM(-0x8000);
mModel2[1]->setBaseTRMtx(mDoMtx_stack_c::get());
}
} else if (roomNo == 1) { // forsaken
} else if (roomNo == dIsleRoom_ForsakenFortress_e) {
mModel2[0]->setBaseTRMtx(mDoMtx_stack_c::get());
mDrawModel2 = true;
}
@@ -303,7 +303,7 @@ BOOL daLodbg_c::draw() {
return TRUE;
s32 roomNo = getRoomNo();
if (roomNo == 26 && !dComIfGs_isEventBit(0x1e40)) // totg
if (roomNo == dIsleRoom_ToweroftheGods_e && !dComIfGs_isEventBit(0x1e40))
return TRUE;
g_env_light.settingTevStruct(TEV_TYPE_BG0, NULL, &tevStr);
@@ -317,7 +317,7 @@ BOOL daLodbg_c::draw() {
mDoExt_modelEntryDL(mModel);
if (mModel2[0] != NULL && mDrawModel2) {
if (roomNo == 11) { // windfall
if (roomNo == dIsleRoom_WindfallIsland_e) {
J3DModelData* modelData = mModel2[0]->getModelData();
for (u16 i = 0; i < modelData->getMaterialNum(); i++)
modelData->getMaterialNodePointer(i)->getTevKColor(3)->mColor.a = mAlpha;
@@ -327,7 +327,7 @@ BOOL daLodbg_c::draw() {
mDoLib_clipper::clip(mModel2[i]);
mDoExt_modelEntryDL(mModel2[i]);
}
} else if (roomNo == 1) { // forsaken
} else if (roomNo == dIsleRoom_ForsakenFortress_e) {
g_env_light.setLightTevColorType(mModel2[0], &tevStr);
J3DModelData* modelData = mModel2[0]->getModelData(); // ??? was this supposed to modify mModel2?
for (u16 i = 0; i < modelData->getMaterialNum(); i++)
+1 -1
View File
@@ -261,7 +261,7 @@ s32 daObjTpost_c::getReadableLetterNum() {
/* 00000750-000007B8 .text checkSendPrice__12daObjTpost_cFv */
u8 daObjTpost_c::checkSendPrice() {
static const u8 pay_type[49] = {
static const u8 pay_type[dIsleIdx_COUNT_e] = {
02,
01,
01,
+2 -1
View File
@@ -3135,7 +3135,8 @@ BOOL daPy_lk_c::startRestartRoom(u32 mode, int eventInfoIdx, f32 param_3, int i_
mTinkleShieldTimer = 0;
if (stageType == dStageType_SEA_e && !dComIfGs_isEventBit(dSv_evtBit_c::RODE_KORL) &&
(current.roomNo == 11 || current.roomNo == 44) && dStage_chkPlayerId(0x80, current.roomNo))
(current.roomNo == dIsleRoom_WindfallIsland_e || current.roomNo == dIsleRoom_OutsetIsland_e) &&
dStage_chkPlayerId(0x80, current.roomNo))
{
dComIfGp_setNextStage(dComIfGp_getStartStageName(), 0x80, current.roomNo, -1, 0.0f, mode);
u32 roomParam = setParamData(-1, 0, eventInfoIdx, 0);
+2 -2
View File
@@ -31,7 +31,7 @@ s32 daTagvolcano::Act_c::_create() {
field_0x2a0 = 0;
if (mType == 0) {
if (current.roomNo == 20) {
if (current.roomNo == dIsleRoom_FireMountain_e) {
if (dComIfGs_isEventBit(0x1902)) {
fopAcM_onSwitch(this, prm_get_swSave());
} else if (dComIfGs_getStartPoint() == 2 && current.roomNo == dComIfGs_getRestartRoomNo()) {
@@ -113,7 +113,7 @@ bool daTagvolcano::Act_c::_execute() {
}
} else {
u16 timer = prm_get_timer() * 10;
if (current.roomNo == 20) {
if (current.roomNo == dIsleRoom_FireMountain_e) {
if (dComIfGp_evmng_endCheck("FREEZE_VOLCANO")) {
dTimer_createTimer(3, timer, 1, 0, 221.0f, 439.0f, 32.0f, 419.0f);
field_0x298 = 1;
+4 -4
View File
@@ -193,7 +193,7 @@ int dComIfG_play_c::getLayerNo(int i_roomNo) {
}
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0) {
if (i_roomNo == 44) {
if (i_roomNo == dIsleRoom_OutsetIsland_e) {
if (dComIfGs_isEventBit(0x520)) {
return layer | 4;
} else if (dComIfGs_isEventBit(0xE20)) {
@@ -201,13 +201,13 @@ int dComIfG_play_c::getLayerNo(int i_roomNo) {
} else if (dComIfGs_isEventBit(0x101)) {
return 9;
}
} else if (i_roomNo == 11) {
} else if (i_roomNo == dIsleRoom_WindfallIsland_e) {
if (dComIfGs_isEventBit(0x2D01)) {
return layer | 4;
} else if (dKy_checkEventNightStop()) {
return layer | 2;
}
} else if (i_roomNo == 1) {
} else if (i_roomNo == dIsleRoom_ForsakenFortress_e) {
return dComIfGs_isEventBit(0x1820) ? 3 : 1;
}
} else if (strcmp(dComIfGp_getStartStageName(), "A_mori") == 0) {
@@ -1211,7 +1211,7 @@ void dComIfGs_setGameStartStage() {
point = 0;
} else {
strcpy(stage_name, "sea");
room_no = 11;
room_no = dIsleRoom_WindfallIsland_e;
point = 0;
}
}
+7 -4
View File
@@ -2065,10 +2065,13 @@ BOOL phantomship_wether() {
if (cur_time > 285.0f || cur_time < 90.0f) {
s32 roomNo = dComIfGp_roomControl_getStayNo();
if ((roomNo == 5 && weekday == 0) || (roomNo == 36 && weekday == 1) ||
(roomNo == 34 && weekday == 2) || (roomNo == 10 && weekday == 3) ||
(roomNo == 49 && weekday == 4) || (roomNo == 21 && weekday == 5) ||
(roomNo == 23 && weekday == 6))
if ((roomNo == dIsleRoom_CrescentMoonIsland_e && weekday == 0) ||
(roomNo == dIsleRoom_DiamondSteppeIsland_e && weekday == 1) ||
(roomNo == dIsleRoom_BombIsland_e && weekday == 2) ||
(roomNo == dIsleRoom_SpectacleIsland_e && weekday == 3) ||
(roomNo == dIsleRoom_FiveStarIsles_e && weekday == 4) ||
(roomNo == dIsleRoom_StarBeltArchipelago_e && weekday == 5) ||
(roomNo == dIsleRoom_GreatfishIsle_e && weekday == 6))
{
rt = true;
}
+3 -1
View File
@@ -275,7 +275,9 @@ s32 phase_4(room_of_scene_class* i_this) {
if (strcmp(dComIfGp_getStartStageName(), "Omori") == 0 && dComIfGs_checkGetItem(dItem_PEARL_FARORE_e))
i_this->field_0x1dc = 2;
if (roomNo == 13) {
// Bug? The game seems to set these flags for DRI even when you're not on the sea stage.
// TODO: Look into this more.
if (roomNo == dIsleRoom_DragonRoostIsland_e) {
dComIfGs_setEventReg(0xb8ff, 0);
if (dComIfGs_isEventBit(0x3f02))
dComIfGs_onEventBit(0x1580);
+11 -11
View File
@@ -56,7 +56,7 @@ void dSv_player_status_b_c::init() {
/* 80058B84-80058BC8 .text init__25dSv_player_return_place_cFv */
void dSv_player_return_place_c::init() {
strcpy(mName, "sea");
mRoomNo = 44;
mRoomNo = dIsleRoom_OutsetIsland_e;
mPoint = 206;
}
@@ -793,23 +793,23 @@ int dSv_player_collect_c::getTriforceNum() {
/* 8005B290-8005B320 .text init__16dSv_player_map_cFv */
void dSv_player_map_c::init() {
for (int i = 0; i < 4; i++) {
for (int i = 0; i < ARRAY_SIZE(field_0x0[0]); i++) {
field_0x0[0][i] = 0;
field_0x0[1][i] = 0;
field_0x0[2][i] = 0;
field_0x0[3][i] = 0;
}
for (int i = 0; i < 49; i++) {
field_0x40[i] = 0;
for (int i = 0; i < ARRAY_SIZE(mFmapBits); i++) {
mFmapBits[i] = 0;
}
field_0x81 = 0;
field_0x40[0] = 3;
field_0x40[43] = 3;
field_0x40[10] = 3;
mFmapBits[dIsleIdx_ForsakenFortress_e] = 1 | 2;
mFmapBits[dIsleIdx_OutsetIsland_e] = 1 | 2;
mFmapBits[dIsleIdx_WindfallIsland_e] = 1 | 2;
for (int i = 0; i < 16; i++) {
for (int i = 0; i < ARRAY_SIZE(field_0x71); i++) {
field_0x71[i] = 0;
}
}
@@ -895,13 +895,13 @@ int dSv_player_map_c::getCollectMapNum() {
/* 8005BAE8-8005BB84 .text onFmapBit__16dSv_player_map_cFiUc */
void dSv_player_map_c::onFmapBit(int i_idx, u8 i_no) {
JUT_ASSERT(1957, 0 <= i_no && i_no < 8);
field_0x40[i_idx] |= (u8)(1 << i_no);
mFmapBits[i_idx] |= (u8)(1 << i_no);
}
/* 8005BB84-8005BC24 .text isFmapBit__16dSv_player_map_cFiUc */
BOOL dSv_player_map_c::isFmapBit(int i_idx, u8 i_no) {
JUT_ASSERT(1987, 0 <= i_no && i_no < 8);
return field_0x40[i_idx] & (u8)(1 << i_no) ? TRUE : FALSE;
return mFmapBits[i_idx] & (u8)(1 << i_no) ? TRUE : FALSE;
}
/* 8005BC24-8005BCBC .text onSaveArriveGrid__16dSv_player_map_cFi */
@@ -1693,7 +1693,7 @@ int dSv_info_c::memory_to_card(char* i_cardPtr, int i_dataNum) {
memcpy(buffer, dComIfGs_getpPriest(), sizeof(dSv_player_priest_c));
buffer += sizeof(dSv_player_priest_c);
for (int i = 0; i < 4; i++) {
for (int i = 0; i < dSv_player_c::PLAYER_STATUS_C_COUNT; i++) {
memcpy(buffer, dComIfGs_getpPlayerStatusC(i), sizeof(dSv_player_status_c_c));
buffer += sizeof(dSv_player_status_c_c);
}
+2 -2
View File
@@ -1866,8 +1866,8 @@ bool dStage_setShipPos(int param_0, int i_roomNo) {
}
/* 80042B10-80042B70 .text dStage_chkTaura__Fi */
bool dStage_chkTaura(int param_0) {
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && param_0 == 11) {
bool dStage_chkTaura(int i_roomNo) {
if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && i_roomNo == dIsleRoom_WindfallIsland_e) {
return true;
}
+2 -2
View File
@@ -219,9 +219,9 @@ int mDoAud_getTactDirection(int stick, int ret) {
}
/* 800073D8-80007424 .text mDoAud_setSceneName__FPCcll */
void mDoAud_setSceneName(const char* i_name, s32 i_point, s32 i_layer) {
void mDoAud_setSceneName(const char* i_name, s32 i_roomNo, s32 i_layer) {
if (mDoAud_zelAudio_c::getLoadTimer() == 0) {
mDoAud_zelAudio_c::getInterface()->setSceneName((char*)i_name, i_point, i_layer);
mDoAud_zelAudio_c::getInterface()->setSceneName((char*)i_name, i_roomNo, i_layer);
mDoAud_zelAudio_c::setLoadTimer(36);
}
}