// // Generated by dtk // Translation Unit: d_stage.cpp // #include "d/dolzel.h" // IWYU pragma: keep #include "d/d_stage.h" #include "JSystem/JKernel/JKRExpHeap.h" #include "JSystem/JUtility/JUTAssert.h" #include "string.h" #include "SSystem/SComponent/c_malloc.h" #include "d/actor/d_a_player_main.h" #include "d/actor/d_a_ship.h" #include "d/d_bg_s.h" #include "d/d_com_inf_game.h" #include "d/d_path.h" #include "f_op/f_op_actor_mng.h" #include "f_op/f_op_camera_mng.h" #include "f_op/f_op_kankyo_mng.h" #include "f_op/f_op_msg_mng.h" #include "f_op/f_op_scene_mng.h" #include "m_Do/m_Do_mtx.h" #include "d/actor/d_a_sea.h" /* 80040900-80040938 .text set__18dStage_nextStage_cFPCcScsScSc */ void dStage_nextStage_c::set(const char* i_stage, s8 i_roomId, s16 i_point, s8 i_layer, s8 i_wipe) { if (!mEnable) { mEnable = true; mWipe = i_wipe; dStage_startStage_c::set(i_stage, i_roomId, i_point, i_layer); } } /* 80040938-8004093C .text dStage_SetErrorRoom__Fv */ void dStage_SetErrorRoom() {} /* 8004093C-80040940 .text dStage_SetErrorStage__Fv */ void dStage_SetErrorStage() {} dStage_KeepTresureInfo TresureInfo; dStage_KeepDoorInfo DoorInfo; /* 80040940-8004094C .text dStage_GetKeepTresureInfo__Fv */ dStage_KeepTresureInfo * dStage_GetKeepTresureInfo() { return &TresureInfo; } /* 8004094C-80040958 .text dStage_GetKeepDoorInfo__Fv */ dStage_KeepDoorInfo * dStage_GetKeepDoorInfo() { return &DoorInfo; } /* 80040958-80040A78 .text dStage_KeepTresureInfoProc__FP11dStage_dt_cP19stage_tresure_class */ void dStage_KeepTresureInfoProc(dStage_dt_c* i_stage, stage_tresure_class* i_tresure) { stage_stag_info_class* stagInfo = i_stage->getStagInfo(); if (stagInfo == NULL) { return; } u32 stageType = dStage_stagInfo_GetSTType(stagInfo); if (stageType == dStageType_BOSS_e || stageType == dStageType_MINIBOSS_e) { return; } if (i_tresure == NULL) { TresureInfo.num = 0; return; } if (i_tresure->num >= (int)ARRAY_SIZE(TresureInfo.mTresureData) || i_tresure->num < 0) { TresureInfo.num = 0; return; } TresureInfo.num = i_tresure->num; if (TresureInfo.num == 0) { return; } stage_tresure_data_class* pSrcEntry = i_tresure->m_entries; stage_tresure_data_class* pDstEntry = TresureInfo.mTresureData; for (int i = 0; i < TresureInfo.num; pDstEntry++, pSrcEntry++, i++) { *pDstEntry = *pSrcEntry; } } /* 80040A78-80040BA8 .text dStage_KeepDoorInfoProc__FP11dStage_dt_cP16stage_tgsc_class */ void dStage_KeepDoorInfoProc(dStage_dt_c* i_stage, stage_tgsc_class* i_drtg) { stage_stag_info_class* stagInfo = i_stage->getStagInfo(); if (stagInfo == NULL) { return; } u32 stageType = dStage_stagInfo_GetSTType(stagInfo); if (stageType == dStageType_BOSS_e || stageType == dStageType_MINIBOSS_e) { return; } if (i_drtg == NULL) { DoorInfo.num = 0; return; } if (i_drtg->num >= (int)ARRAY_SIZE(DoorInfo.mDrTgData) || i_drtg->num < 0) { DoorInfo.num = 0; return; } DoorInfo.num = i_drtg->num; if (DoorInfo.num == 0) { return; } stage_tgsc_data_class* pSrcEntry = i_drtg->m_entries; stage_tgsc_data_class* pDstEntry = DoorInfo.mDrTgData; for (int i = 0; i < DoorInfo.num; pDstEntry++, pSrcEntry++, i++) { *pDstEntry = *pSrcEntry; } } /* 80040BA8-80040BF4 .text set__19dStage_startStage_cFPCcScsSc */ void dStage_startStage_c::set(const char* i_name, s8 i_roomNo, s16 i_point, s8 i_layer) { strcpy(mName, i_name); mRoomNo = i_roomNo; mPoint = i_point; mLayer = i_layer; } /* 80040BF4-80040D0C .text init__20dStage_roomControl_cFv */ void dStage_roomControl_c::init() { mStayNo = -1; mOldStayNo = -1; if (dComIfGp_getStartStagePoint() >= 0) { dComIfGs_initZone(); } dStage_roomStatus_c* status = mStatus; for (int i = 0; i < 64; i++) { status->mRoomDt.init(); setStatusFlag(i, 0); status->mDraw = false; if (dComIfGp_getStartStagePoint() >= 0) { status->mZoneNo = -1; } else if (status->mZoneNo >= 0) { dComIfGs_clearRoomSwitch(status->mZoneNo); } status->mMemBlockID = -1; status->mpBgW = NULL; status++; } mDarkRatio = 0xFF; for (int i = 0; i < MEMORY_BLOCK_MAX; i++) { mMemoryBlock[i] = NULL; } } /* 80040D0C-80040D38 .text getStatusRoomDt__20dStage_roomControl_cFi */ dStage_roomDt_c* dStage_roomControl_c::getStatusRoomDt(int i_statusIdx) { if (i_statusIdx < 0 || i_statusIdx >= 0x40) { return NULL; } return &mStatus[i_statusIdx].mRoomDt; } /* 80040D38-80040D70 .text getMemoryBlock__20dStage_roomControl_cFi */ JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int i_roomNo) { int blockId = getMemoryBlockID(i_roomNo); if (blockId < 0) { return NULL; } return mMemoryBlock[blockId]; } /* 80040D70-80040DA8 .text setStayNo__20dStage_roomControl_cFi */ void dStage_roomControl_c::setStayNo(int i_roomNo) { mOldStayNo = mStayNo; mStayNo = i_roomNo; if (mStayNo == 0xFF) { // Bug: Comparing s8 to 0xFF is always false. return; } onStatusDraw(mStayNo); } /* 80040DA8-80040DDC .text stayRoomCheck__FiPUci */ int stayRoomCheck(int roomCount, u8* rooms, int roomNo) { for (; roomCount > 0; roomCount--) { if (roomNo == dStage_roomRead_dt_c_GetLoadRoomIndex(*rooms)) { return 1; } rooms++; } return 0; } /* 80040DDC-80040E38 .text createRoomScene__Fi */ int createRoomScene(int param_0) { int* ptr = (int*)JKRAlloc(4, -4); if (ptr == NULL) { return 0; } *ptr = param_0; return fopScnM_CreateReq(fpcNm_ROOM_SCENE_e, fpcNm_INVALID_e, 0, (u32)ptr); } /* 80040E38-80040E6C .text checkRoomDisp__20dStage_roomControl_cCFi */ BOOL dStage_roomControl_c::checkRoomDisp(int i_roomNo) const { if (checkStatusFlag(i_roomNo, 8)) { return FALSE; } return checkStatusFlag(i_roomNo, 16) ? TRUE : FALSE; } /* 80040E6C-80040FD8 .text loadRoom__20dStage_roomControl_cFiPUc */ int dStage_roomControl_c::loadRoom(int roomCount, u8* rooms) { for (int roomNo = 0; roomNo < ARRAY_SIZE(mStatus); roomNo++) { if (checkStatusFlag(roomNo, 0x02 | 0x04)) { return 0; } } BOOL r26 = TRUE; for (int roomNo = 0; roomNo < (int)ARRAY_SIZE(mStatus); roomNo++) { if (dStage_roomControl_c::checkStatusFlag(roomNo, 0x01)) { if (!stayRoomCheck(roomCount, rooms, roomNo)) { onStatusFlag(roomNo, 0x04); r26 = FALSE; } } } if (!r26) { return FALSE; } for (int i = 0; i < roomCount; i++) { u8 roomNo = dStage_roomRead_dt_c_GetLoadRoomIndex(rooms[i]); dStage_roomControl_c::setZoneCount(roomNo, 2); if (!checkStatusFlag(roomNo, 0x01)) { if (createRoomScene(roomNo)) { u8 flag = dStage_roomRead_dt_c_ChkBg(rooms[i]) ? 0x02 : 0x0A; onStatusFlag(roomNo, flag); } return TRUE; } } return TRUE; } /* 80040FD8-800410AC .text zoneCountCheck__20dStage_roomControl_cCFi */ void dStage_roomControl_c::zoneCountCheck(int i_roomNo) const { dStage_roomStatus_c* status = mStatus; for (int i = 0; i < 64; i++) { if (status->mZoneNo >= 0 && status->mZoneCount > 0) { dComIfGs_clearRoomSwitch(status->mZoneNo); if (i_roomNo != mOldStayNo) { if (--status->mZoneCount == 0) { dComIfGs_removeZone(status->mZoneNo); status->mZoneNo = -1; } } } status++; } setStayNo(i_roomNo); } /* 800410AC-800412EC .text checkDrawArea__20dStage_roomControl_cCFv */ void dStage_roomControl_c::checkDrawArea() const { if (mStayNo < 0) { return; } fopAc_ac_c* player = dComIfGp_getPlayer(0); if (player == NULL) { return; } dStage_roomStatus_c * pRoomStatus = &mStatus[mStayNo]; dStage_FileList_dt_c* plist_p = pRoomStatus->mRoomDt.mpFileList; BOOL darkOn; u8 targetRatio = 0xFF; if (plist_p == NULL) { return; } dStage_darkStatus_c& darkStatus = dStage_roomControl_c::getDarkStatus(dStage_FileList_dt_DarkNo(plist_p)); darkOn = dStage_FileList_dt_CheckDarkOn(plist_p); if (darkOn) { targetRatio = darkStatus.getEnvAlpha(); } cLib_chaseUC(dStage_roomControl_c::getDarkRatio_p(), targetRatio, 8); u8 darkRatio = dStage_roomControl_c::getDarkRatio(); if (darkRatio == 0xFF) { return; } f32 ratio = darkRatio / 128.0f; if (ratio > 1.0f) { ratio = 1.0f; } if (darkOn) { if (targetRatio == darkRatio) { dKy_change_colset(0, 4, 1.0f - ratio); } } else { dKy_change_colset(4, 0, ratio); } cXyz bokoFlamePos; if (daPy_getPlayerActorClass()->getBokoFlamePos(&bokoFlamePos)) { return; } static cXyz l_offset(0.0f, 60.0f, 0.0f); static GXColor l_spotColor = {0x00, 0x00, 0x00, 0xFF}; l_spotColor.a = dStage_roomControl_c::getDarkRatio(); dComIfGd_setSpotModelColor(l_spotColor); cXyz pos; cLib_offsetPos(&pos, &player->current.pos, player->shape_angle.y, &l_offset); static Mtx l_m[2]; for (int i = 0; i < 2; i++) { mDoMtx_stack_c::transS(pos); f32 scale = darkStatus.getNonScale(i); mDoMtx_stack_c::scaleM(scale, scale, scale); cMtx_copy(mDoMtx_stack_c::get(), l_m[i]); dComIfGd_setSpotModel(0, l_m[i], darkStatus.getNonAlpha(i)); } } /* 800412EC-80041330 .text getDarkStatus__20dStage_roomControl_cFv */ dStage_darkStatus_c* dStage_roomControl_c::getDarkStatus() { dStage_roomStatus_c * pRoomStatus = &mStatus[mStayNo]; dStage_FileList_dt_c* plist_p = pRoomStatus->mRoomDt.mpFileList; if (plist_p == NULL) return NULL; int idx = dStage_FileList_dt_DarkNo(plist_p); return &mDarkStatus[idx]; } /* 80041330-80041370 .text getDarkMode__20dStage_roomControl_cFv */ s32 dStage_roomControl_c::getDarkMode() { dStage_roomStatus_c * pRoomStatus = &mStatus[mStayNo]; dStage_FileList_dt_c* plist_p = pRoomStatus->mRoomDt.mpFileList; u8 mode = 0; if (plist_p != NULL && dStage_FileList_dt_CheckDarkOn(plist_p) != 0) mode = 1; return mode; } /* 80041370-800413D4 .text createMemoryBlock__20dStage_roomControl_cFiUl */ JKRExpHeap* dStage_roomControl_c::createMemoryBlock(int i_blockIdx, u32 i_heapSize) { #if VERSION > VERSION_DEMO archiveHeap->getCurrentGroupId(); #endif mMemoryBlock[i_blockIdx] = JKRExpHeap::create(i_heapSize, mDoExt_getArchiveHeap(), false); return mMemoryBlock[i_blockIdx]; } /* 800413D4-80041430 .text destroyMemoryBlock__20dStage_roomControl_cFv */ void dStage_roomControl_c::destroyMemoryBlock() { for (int i = 0; i < MEMORY_BLOCK_MAX; i++) { if (mMemoryBlock[i] != NULL) { mMemoryBlock[i]->destroy(); } } } /* 80041430-800414A4 .text init__16dStage_stageDt_cFv */ void dStage_stageDt_c::init() { mpCamera = NULL; mpArrow = NULL; mpPlayer = NULL; mpRoomReads = NULL; mpMapInfo = NULL; mpMapInfoBase = NULL; mpPaletInfo = NULL; mpPselectInfo = NULL; mpEnvrInfo = NULL; mpVrboxInfo = NULL; mpPlightInfo = NULL; mPlightInfoNum = 0; mpStagInfo = NULL; mpScls = NULL; mpPnt = NULL; mpPath = NULL; mpPnt2 = NULL; mpPath2 = NULL; mpSoundInfo = NULL; mpEventInfo = NULL; mpFloorInfo = NULL; mpMemoryConfig = NULL; mpMemoryMap = NULL; mpMulti = NULL; mpTresure = NULL; mpDMap = NULL; mpDrTg = NULL; } /* 800414A4-800414F4 .text init__15dStage_roomDt_cFv */ void dStage_roomDt_c::init() { mpLightVecInfo = NULL; mLightVecInfoNum = 0; mpMapInfo = NULL; mpMapInfoBase = NULL; mpVrbox = NULL; mpFileList = NULL; mpShip = NULL; mpPlayer = NULL; mpPoint2 = NULL; mpPath2 = NULL; mpCamera = NULL; mpArrow = NULL; mpSound = NULL; mpScls = NULL; mpLbnk = NULL; mpTresure = NULL; mpDrTg = NULL; mpFloor = NULL; } /* 800414F4-80041544 .text dStage_roomInit__Fi */ int dStage_roomInit(int i_roomNo) { dComIfGp_roomControl_setStatusFlag(i_roomNo, 2); createRoomScene(i_roomNo); dComIfGp_roomControl_setStayNo(i_roomNo); return 1; } #define OBJNAME(name, proc, sub, gba) \ { \ name, proc, sub, gba \ } static dStage_objectNameInf l_objectName[] = { OBJNAME("kusax1", fpcNm_GRASS_e, 255, 0), OBJNAME("kusax7", fpcNm_GRASS_e, 255, 0), OBJNAME("kusax21", fpcNm_GRASS_e, 255, 0), OBJNAME("flower", fpcNm_GRASS_e, 255, 0), OBJNAME("flwr7", fpcNm_GRASS_e, 255, 0), OBJNAME("flwr17", fpcNm_GRASS_e, 255, 0), OBJNAME("pflower", fpcNm_GRASS_e, 255, 0), OBJNAME("pflwrx7", fpcNm_GRASS_e, 255, 0), OBJNAME("swood", fpcNm_GRASS_e, 255, 0), OBJNAME("swood3", fpcNm_GRASS_e, 255, 0), OBJNAME("swood5", fpcNm_GRASS_e, 255, 0), OBJNAME("woodb", fpcNm_Obj_Wood_e, 255, 0), OBJNAME("woodbx", fpcNm_Obj_Wood_e, 255, 0), OBJNAME("door10", fpcNm_DOOR10_e, 255, 0), OBJNAME("door11", fpcNm_DOOR10_e, 255, 0), OBJNAME("door20", fpcNm_DOOR10_e, 255, 0), OBJNAME("door21", fpcNm_DOOR10_e, 255, 0), OBJNAME("Zenshut", fpcNm_DOOR10_e, 255, 0), OBJNAME("keyshut", fpcNm_DOOR10_e, 255, 0), OBJNAME("K_Zshut", fpcNm_DOOR10_e, 255, 0), OBJNAME("ATdoor", fpcNm_ATDOOR_e, 255, 0), OBJNAME("Mori1", fpcNm_MDOOR_e, 255, 0), OBJNAME("doorKD", fpcNm_KDDOOR_e, 255, 0), OBJNAME("ZenshKD", fpcNm_KDDOOR_e, 255, 0), OBJNAME("K_ZshKD", fpcNm_KDDOOR_e, 255, 0), OBJNAME("doorSH", fpcNm_KDDOOR_e, 255, 0), OBJNAME("doorSZ", fpcNm_KDDOOR_e, 255, 0), OBJNAME("KNOB00", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB01", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB02", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB03", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB00D", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB01D", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB02D", fpcNm_KNOB00_e, 255, 0), OBJNAME("KNOB03D", fpcNm_KNOB00_e, 255, 0), OBJNAME("door12", fpcNm_DOOR12_e, 0, 0), OBJNAME("door12M", fpcNm_DOOR12_e, 1, 0), OBJNAME("door12B", fpcNm_DOOR12_e, 2, 0), OBJNAME("door13", fpcNm_DOOR12_e, 3, 0), OBJNAME("door13M", fpcNm_DOOR12_e, 4, 0), OBJNAME("door13B", fpcNm_DOOR12_e, 5, 0), OBJNAME("keyS12", fpcNm_DOOR12_e, 1, 0), OBJNAME("ZenS12", fpcNm_DOOR12_e, 2, 0), OBJNAME("bonbori", fpcNm_EP_e, 255, 0), OBJNAME("SW_C00", fpcNm_SWC00_e, 255, 0), OBJNAME("takara", fpcNm_TBOX_e, 255, 62), OBJNAME("takara2", fpcNm_TBOX_e, 255, 62), OBJNAME("takara3", fpcNm_TBOX_e, 255, 62), OBJNAME("takara4", fpcNm_TBOX_e, 255, 62), OBJNAME("takara5", fpcNm_TBOX_e, 255, 62), OBJNAME("takara6", fpcNm_TBOX_e, 255, 62), OBJNAME("takara7", fpcNm_TBOX_e, 255, 62), OBJNAME("takara8", fpcNm_TBOX_e, 255, 62), OBJNAME("takaraK", fpcNm_TBOX_e, 255, 62), OBJNAME("takaraI", fpcNm_TBOX_e, 255, 62), OBJNAME("takaraM", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrASw", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrAGc", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrAKd", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrAIk", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrBMs", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrCTf", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrAOc", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrAOs", fpcNm_TBOX_e, 255, 62), OBJNAME("tkrSlv", fpcNm_SBOX_e, 255, 62), OBJNAME("agbA", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbAT", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbA2", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbF", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbF2", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbMARK", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbMW", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbCSW", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbTBOX", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbR", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbB", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbD", fpcNm_AGBSW0_e, 255, 0), OBJNAME("agbFA", fpcNm_AGBSW0_e, 255, 0), OBJNAME("NoneCam", fpcNm_CAMERA_e, 255, 0), OBJNAME("NormCam", fpcNm_CAMERA_e, 255, 0), OBJNAME("Link", fpcNm_PLAYER_e, 255, 0), OBJNAME("kotubo", fpcNm_TSUBO_e, 0, 0), OBJNAME("ootubo1", fpcNm_TSUBO_e, 1, 0), OBJNAME("Kmtub", fpcNm_TSUBO_e, 2, 0), OBJNAME("Ktaru", fpcNm_TSUBO_e, 3, 0), OBJNAME("Ostool", fpcNm_TSUBO_e, 4, 0), OBJNAME("Odokuro", fpcNm_TSUBO_e, 5, 0), OBJNAME("Okioke", fpcNm_TSUBO_e, 6, 0), OBJNAME("Kmi02", fpcNm_TSUBO_e, 7, 0), OBJNAME("Ptubo", fpcNm_TSUBO_e, 8, 0), OBJNAME("KkibaB", fpcNm_TSUBO_e, 9, 0), OBJNAME("Kmi00", fpcNm_TSUBO_e, 10, 0), OBJNAME("Hbox2S", fpcNm_TSUBO_e, 11, 0), OBJNAME("SW_HIT0", fpcNm_SWHIT0_e, 255, 0), OBJNAME("koisi1", fpcNm_STONE_e, 0, 0), OBJNAME("koisi2", fpcNm_STONE_e, 1, 0), OBJNAME("Aygr", fpcNm_Obj_Aygr_e, 255, 0), OBJNAME("Salvage", fpcNm_Salvage_e, 255, 0), OBJNAME("SwSlvg", fpcNm_Salvage_e, 255, 63), OBJNAME("Salvag2", fpcNm_Salvage_e, 255, 63), OBJNAME("SalvagN", fpcNm_Salvage_e, 255, 63), OBJNAME("SalvagE", fpcNm_Salvage_e, 255, 63), OBJNAME("SalvFM", fpcNm_Salvage_e, 255, 63), OBJNAME("osiBLK0", fpcNm_Obj_Movebox_e, 0, 61), OBJNAME("osiBLK1", fpcNm_Obj_Movebox_e, 1, 61), OBJNAME("Kkiba", fpcNm_Obj_Movebox_e, 2, 61), OBJNAME("Hseki2", fpcNm_Obj_Movebox_e, 3, 61), OBJNAME("Hseki7", fpcNm_Obj_Movebox_e, 4, 61), OBJNAME("Mmrr", fpcNm_Obj_Movebox_e, 5, 61), OBJNAME("MkieBB", fpcNm_Obj_Movebox_e, 6, 61), OBJNAME("Ecube", fpcNm_Obj_Movebox_e, 7, 61), OBJNAME("Hjump1", fpcNm_Obj_Movebox_e, 8, 61), OBJNAME("Hbox1", fpcNm_Obj_Movebox_e, 9, 61), OBJNAME("MpwrB", fpcNm_Obj_Movebox_e, 10, 61), OBJNAME("DBLK0", fpcNm_Obj_Movebox_e, 11, 61), OBJNAME("DBLK1", fpcNm_Obj_Movebox_e, 12, 61), OBJNAME("DKkiba", fpcNm_Obj_Movebox_e, 13, 61), OBJNAME("Hbox2", fpcNm_Obj_Movebox_e, 14, 61), OBJNAME("BLK_CR", fpcNm_Obj_Correct_e, 0, 0), OBJNAME("CrTrS3", fpcNm_Obj_Correct_e, 1, 0), OBJNAME("CrTrS4", fpcNm_Obj_Correct_e, 2, 0), OBJNAME("CrTrS5", fpcNm_Obj_Correct_e, 3, 0), OBJNAME("CrTrM1", fpcNm_Obj_Correct_e, 4, 0), OBJNAME("CrTrM2", fpcNm_Obj_Correct_e, 5, 0), OBJNAME("CrTrGr", fpcNm_Obj_Correct_e, 6, 61), OBJNAME("CrTrBl", fpcNm_Obj_Correct_e, 7, 61), OBJNAME("Kbota_A", fpcNm_Obj_Swpush_e, 0, 0), OBJNAME("Kbota_B", fpcNm_Obj_Swpush_e, 1, 0), OBJNAME("KbotaC", fpcNm_Obj_Swpush_e, 2, 0), OBJNAME("Hhbot1", fpcNm_Obj_Swheavy_e, 0, 0), OBJNAME("Hhbot1N", fpcNm_Obj_Swheavy_e, 1, 0), OBJNAME("MhmrSW0", fpcNm_Obj_Swhammer_e, 255, 0), OBJNAME("TagSo", fpcNm_TAG_SO_e, 0, 0), OBJNAME("TagMSo", fpcNm_TAG_SO_e, 1, 0), OBJNAME("PScnChg", fpcNm_TAG_GSHIP_e, 255, 0), OBJNAME("ALLdie", fpcNm_ALLDIE_e, 255, 0), OBJNAME("TagEv", fpcNm_TAG_EVENT_e, 255, 0), OBJNAME("TagHt", fpcNm_TAG_HINT_e, 0, 0), OBJNAME("TagHt2", fpcNm_TAG_HINT_e, 1, 0), OBJNAME("TagMsg", fpcNm_TAG_MSG_e, 0, 0), OBJNAME("TagMsg2", fpcNm_TAG_MSG_e, 1, 0), OBJNAME("TagIsl", fpcNm_TAG_ISLAND_e, 0, 0), OBJNAME("TagMd", fpcNm_TAG_ETC_e, 0, 0), OBJNAME("TagKf1", fpcNm_TAG_KF1_e, 255, 0), OBJNAME("TagKk1", fpcNm_TAG_KK1_e, 255, 0), OBJNAME("TagKb", fpcNm_TAG_KB_ITEM_e, 255, 0), OBJNAME("TagMk", fpcNm_TAG_MK_e, 0, 0), OBJNAME("TagWp", fpcNm_TAG_MK_e, 1, 0), OBJNAME("TagDM", fpcNm_TAG_MK_e, 2, 0), OBJNAME("TagTy", fpcNm_TAG_MK_e, 3, 0), OBJNAME("TagMd1", fpcNm_TAG_MDCB_e, 0, 0), OBJNAME("TagCb1", fpcNm_TAG_MDCB_e, 1, 0), OBJNAME("TagMd11", fpcNm_TAG_MDCB_e, 2, 0), OBJNAME("TagMd12", fpcNm_TAG_MDCB_e, 3, 0), OBJNAME("TagMd13", fpcNm_TAG_MDCB_e, 4, 0), OBJNAME("TagMd14", fpcNm_TAG_MDCB_e, 5, 0), OBJNAME("TagMd15", fpcNm_TAG_MDCB_e, 6, 0), OBJNAME("TagMd16", fpcNm_TAG_MDCB_e, 7, 0), OBJNAME("TagCb11", fpcNm_TAG_MDCB_e, 8, 0), OBJNAME("TagCb12", fpcNm_TAG_MDCB_e, 9, 0), OBJNAME("TagCb13", fpcNm_TAG_MDCB_e, 10, 0), OBJNAME("TagCb14", fpcNm_TAG_MDCB_e, 11, 0), OBJNAME("TagBa1", fpcNm_TAG_BA1_e, 1, 0), OBJNAME("Evsw", fpcNm_TAG_EVSW_e, 255, 0), OBJNAME("Search", fpcNm_OBJ_SEARCH_e, 255, 0), OBJNAME("Otble", fpcNm_OBJ_OTBLE_e, 0, 0), OBJNAME("OtbleL", fpcNm_OBJ_OTBLE_e, 1, 0), OBJNAME("Warpt", fpcNm_OBJ_WARPT_e, 0, 49), OBJNAME("Warpnt", fpcNm_OBJ_WARPT_e, 1, 49), OBJNAME("Warpts1", fpcNm_OBJ_WARPT_e, 2, 49), OBJNAME("Warpts2", fpcNm_OBJ_WARPT_e, 3, 49), OBJNAME("Warpts3", fpcNm_OBJ_WARPT_e, 4, 49), OBJNAME("Seatag", fpcNm_SEATAG_e, 255, 0), OBJNAME("Warpf", fpcNm_WARPFLOWER_e, 255, 0), OBJNAME("Hys", fpcNm_Hys_e, 255, 0), OBJNAME("Hys2", fpcNm_Hys_e, 255, 0), OBJNAME("Hsen1", fpcNm_FAN_e, 255, 0), OBJNAME("Hsen2", fpcNm_FAN_e, 255, 0), OBJNAME("Hsen3", fpcNm_FAN_e, 255, 0), OBJNAME("Olift", fpcNm_LEAF_LIFT_e, 255, 0), OBJNAME("Ylsic", fpcNm_ICE_LIFT_e, 255, 0), OBJNAME("Yllic", fpcNm_ICE_LIFT_e, 255, 0), OBJNAME("Ylkic", fpcNm_ICE_LIFT_e, 255, 0), OBJNAME("Hpbot1", fpcNm_SW_PROPELLER_e, 255, 0), OBJNAME("Vpbot", fpcNm_SW_PROPELLER_e, 255, 0), OBJNAME("Hami1", fpcNm_AMI_PROP_e, 255, 0), OBJNAME("HamiY", fpcNm_AMI_PROP_e, 255, 0), OBJNAME("LTag0", fpcNm_Tag_Light_e, 0, 0), OBJNAME("LTag1", fpcNm_Tag_Light_e, 1, 0), OBJNAME("LTagR0", fpcNm_Tag_Light_e, 2, 0), OBJNAME("AttTag", fpcNm_Tag_Attention_e, 0, 0), OBJNAME("AttTagB", fpcNm_Tag_Attention_e, 1, 0), OBJNAME("Ikori", fpcNm_Obj_Ice_e, 255, 0), OBJNAME("MsuSW", fpcNm_Obj_Swlight_e, 0, 0), OBJNAME("MsuSWB", fpcNm_Obj_Swlight_e, 1, 0), OBJNAME("SWat00", fpcNm_SW_ATTACK_e, 255, 0), OBJNAME("ITat00", fpcNm_SW_ITEM_e, 255, 0), OBJNAME("SWtact", fpcNm_SW_TACT_e, 255, 0), OBJNAME("SWtactB", fpcNm_SW_TACT_e, 255, 0), OBJNAME("Hhyu1", fpcNm_FLOOR_e, 255, 0), OBJNAME("Oyashi", fpcNm_Obj_Lpalm_e, 255, 0), OBJNAME("Kanban", fpcNm_KANBAN_e, 255, 52), OBJNAME("kt", fpcNm_KT_e, 255, 0), OBJNAME("ho", fpcNm_FF_e, 255, 0), OBJNAME("mo2", fpcNm_MO2_e, 255, 2), OBJNAME("moZOU", fpcNm_MOZO_e, 255, 0), OBJNAME("hotest", fpcNm_RECTANGLE_e, 255, 0), OBJNAME("Kui", fpcNm_KUI_e, 255, 0), OBJNAME("Kamome", fpcNm_KAMOME_e, 255, 0), OBJNAME("item", fpcNm_ITEM_e, 255, 0), OBJNAME("itemFLY", fpcNm_ITEM_e, 255, 0), OBJNAME("itemDek", fpcNm_DEKU_ITEM_e, 255, 0), OBJNAME("Ship", fpcNm_SHIP_e, 255, 0), OBJNAME("AND_SW0", fpcNm_ANDSW0_e, 255, 0), OBJNAME("AND_SW2", fpcNm_ANDSW2_e, 255, 0), OBJNAME("Bb", fpcNm_BB_e, 255, 26), OBJNAME("Ebrock", fpcNm_Stone2_e, 0, 0), OBJNAME("Ekao", fpcNm_Stone2_e, 1, 0), OBJNAME("Ebrock2", fpcNm_Stone2_e, 2, 0), OBJNAME("ky_tag0", fpcNm_KYTAG00_e, 255, 0), OBJNAME("kytag00", fpcNm_KYTAG00_e, 255, 0), OBJNAME("ky00you", fpcNm_KYTAG00_e, 255, 0), OBJNAME("ky_tag1", fpcNm_KYTAG01_e, 255, 0), OBJNAME("ky_tag2", fpcNm_KYTAG02_e, 255, 0), OBJNAME("ky_tag3", fpcNm_KYTAG03_e, 255, 0), OBJNAME("kytag4", fpcNm_KYTAG04_e, 255, 0), OBJNAME("kytag5", fpcNm_KYTAG05_e, 255, 0), OBJNAME("kytag6", fpcNm_KYTAG06_e, 255, 0), OBJNAME("kytag7", fpcNm_KYTAG07_e, 255, 0), OBJNAME("sea", fpcNm_SEA_e, 255, 0), OBJNAME("nezumi", fpcNm_NZ_e, 255, 24), OBJNAME("nezuana", fpcNm_NZG_e, 255, 0), OBJNAME("kani", fpcNm_KN_e, 255, 0), OBJNAME("Demo_Dk", fpcNm_DEMO_DK_e, 255, 0), OBJNAME("DmKmm", fpcNm_DEMO_KMM_e, 0, 0), OBJNAME("DmKmm2", fpcNm_DEMO_KMM_e, 1, 0), OBJNAME("amos", fpcNm_AM_e, 255, 12), OBJNAME("amos2", fpcNm_AM2_e, 255, 11), OBJNAME("gmos", fpcNm_GM_e, 255, 9), OBJNAME("gmos_g", fpcNm_GM_e, 255, 9), OBJNAME("gmos_f", fpcNm_GM_e, 255, 9), OBJNAME("kuro_s", fpcNm_KS_e, 255, 20), OBJNAME("kuro_t", fpcNm_KS_e, 255, 0), OBJNAME("c_green", fpcNm_CC_e, 255, 22), OBJNAME("c_red", fpcNm_CC_e, 255, 21), OBJNAME("c_blue", fpcNm_CC_e, 255, 30), OBJNAME("c_black", fpcNm_CC_e, 255, 16), OBJNAME("c_kiiro", fpcNm_CC_e, 255, 10), OBJNAME("bable", fpcNm_BL_e, 255, 15), OBJNAME("bable_r", fpcNm_BL_e, 255, 14), OBJNAME("wiz_r", fpcNm_WZ_e, 255, 17), OBJNAME("wiz_s", fpcNm_WZ_e, 255, 17), OBJNAME("wiz_m", fpcNm_WZ_e, 255, 17), OBJNAME("wiz_o", fpcNm_WZ_e, 255, 17), OBJNAME("p_hat", fpcNm_PH_e, 255, 8), OBJNAME("p_zelda", fpcNm_PZ_e, 255, 60), OBJNAME("big_pow", fpcNm_BPW_e, 255, 0), OBJNAME("pow", fpcNm_PW_e, 255, 13), OBJNAME("sea_hat", fpcNm_PH_e, 255, 31), OBJNAME("jbaba", fpcNm_JBO_e, 255, 33), OBJNAME("bbaba", fpcNm_BO_e, 255, 7), OBJNAME("bridge", fpcNm_BRIDGE_e, 255, 0), OBJNAME("dragon", fpcNm_DR_e, 255, 0), OBJNAME("Nh", fpcNm_NH_e, 255, 0), OBJNAME("NpcSo", fpcNm_NPC_SO_e, 255, 0), OBJNAME("NpcNz", fpcNm_NPC_NZ_e, 255, 0), OBJNAME("Os", fpcNm_NPC_OS_e, 0, 0), OBJNAME("Os1", fpcNm_NPC_OS_e, 1, 0), OBJNAME("Os2", fpcNm_NPC_OS_e, 2, 0), OBJNAME("Ym1", fpcNm_NPC_YM1_e, 255, 59), OBJNAME("Ym2", fpcNm_NPC_YM2_e, 255, 59), OBJNAME("Yw1", fpcNm_NPC_YW1_e, 255, 60), OBJNAME("Ji1", fpcNm_NPC_JI1_e, 255, 59), OBJNAME("Ko1", fpcNm_NPC_KO1_e, 255, 59), OBJNAME("Ko2", fpcNm_NPC_KO2_e, 255, 59), OBJNAME("Ls1", fpcNm_NPC_LS1_e, 255, 60), OBJNAME("Bm1", fpcNm_NPC_BM1_e, 255, 59), OBJNAME("Bm2", fpcNm_NPC_BM2_e, 255, 59), OBJNAME("Bm3", fpcNm_NPC_BM3_e, 255, 59), OBJNAME("Bm4", fpcNm_NPC_BM4_e, 255, 59), OBJNAME("Bm5", fpcNm_NPC_BM5_e, 255, 59), OBJNAME("Bmcon1", fpcNm_NPC_BMCON1_e, 0, 0), OBJNAME("Bmcon2", fpcNm_NPC_BMCON1_e, 1, 0), OBJNAME("Bmsw", fpcNm_NPC_BMSW_e, 255, 0), OBJNAME("Btsw", fpcNm_NPC_BTSW_e, 255, 0), OBJNAME("Btsw2", fpcNm_NPC_BTSW2_e, 255, DEMO_SELECT(0, 59)), OBJNAME("Zk1", fpcNm_NPC_ZK1_e, 255, 59), OBJNAME("Zl1", fpcNm_NPC_ZL1_e, 255, 60), OBJNAME("Ob1", fpcNm_NPC_OB1_e, 255, 60), OBJNAME("Aj1", fpcNm_NPC_AJ1_e, 255, 59), OBJNAME("Km1", fpcNm_NPC_KM1_e, 255, 60), OBJNAME("Cb1", fpcNm_NPC_CB1_e, 255, 59), OBJNAME("Ba1", fpcNm_NPC_BA1_e, 255, 60), OBJNAME("Bj1", fpcNm_NPC_BJ1_e, 255, 59), OBJNAME("Bj2", fpcNm_NPC_BJ2_e, 255, 59), OBJNAME("Bj3", fpcNm_NPC_BJ3_e, 255, 59), OBJNAME("Bj4", fpcNm_NPC_BJ4_e, 255, 59), OBJNAME("Bj5", fpcNm_NPC_BJ5_e, 255, 59), OBJNAME("Bj6", fpcNm_NPC_BJ6_e, 255, 59), OBJNAME("Bj7", fpcNm_NPC_BJ7_e, 255, 59), OBJNAME("Bj8", fpcNm_NPC_BJ8_e, 255, 59), OBJNAME("Bj9", fpcNm_NPC_BJ9_e, 255, 59), OBJNAME("Bs1", fpcNm_NPC_BS1_e, 0, 59), OBJNAME("Bs2", fpcNm_NPC_BS1_e, 1, 0), OBJNAME("Bms1", fpcNm_NPC_BMS1_e, 0, 0), OBJNAME("Bms2", fpcNm_NPC_BMS1_e, 1, 0), OBJNAME("Ds1", fpcNm_NPC_DS1_e, 255, 59), OBJNAME("Rsh1", fpcNm_NPC_RSH1_e, 255, 59), OBJNAME("Kk1", fpcNm_NPC_KK1_e, 255, 60), OBJNAME("Pm1", fpcNm_NPC_PM1_e, 255, 60), OBJNAME("Kp1", fpcNm_NPC_KP1_e, 255, 60), OBJNAME("Pf1", fpcNm_NPC_PF1_e, 255, 59), OBJNAME("Gp1", fpcNm_NPC_GP1_e, 255, 59), OBJNAME("Jb1", fpcNm_NPC_JB1_e, 255, 0), OBJNAME("Kf1", fpcNm_NPC_KF1_e, 255, 59), OBJNAME("De1", fpcNm_NPC_DE1_e, 255, 59), OBJNAME("Sfairy", fpcNm_NPC_FA1_e, 255, 0), OBJNAME("Md1", fpcNm_NPC_MD_e, 255, 60), OBJNAME("Uo1", fpcNm_NPC_PEOPLE_e, 0, 59), OBJNAME("Uo2", fpcNm_NPC_PEOPLE_e, 1, 59), OBJNAME("Uo3", fpcNm_NPC_PEOPLE_e, 2, 59), OBJNAME("Ub1", fpcNm_NPC_PEOPLE_e, 3, 0), OBJNAME("Ub2", fpcNm_NPC_PEOPLE_e, 4, 0), OBJNAME("Ub3", fpcNm_NPC_PEOPLE_e, 5, 0), OBJNAME("Ub4", fpcNm_NPC_PEOPLE_e, 6, 0), OBJNAME("Uw1", fpcNm_NPC_PEOPLE_e, 7, 0), OBJNAME("Uw2", fpcNm_NPC_PEOPLE_e, 8, 0), OBJNAME("Um1", fpcNm_NPC_PEOPLE_e, 9, 0), OBJNAME("Um2", fpcNm_NPC_PEOPLE_e, 10, 0), OBJNAME("Um3", fpcNm_NPC_PEOPLE_e, 11, 0), OBJNAME("Sa1", fpcNm_NPC_PEOPLE_e, 12, 0), OBJNAME("Sa2", fpcNm_NPC_PEOPLE_e, 13, 0), OBJNAME("Sa3", fpcNm_NPC_PEOPLE_e, 14, 0), OBJNAME("Sa4", fpcNm_NPC_PEOPLE_e, 15, 0), OBJNAME("Sa5", fpcNm_NPC_PEOPLE_e, 16, 0), OBJNAME("Ug1", fpcNm_NPC_PEOPLE_e, 17, 0), OBJNAME("Ug2", fpcNm_NPC_PEOPLE_e, 18, 0), OBJNAME("Gk1", fpcNm_NPC_GK1_e, 255, 59), OBJNAME("Ac1", fpcNm_NPC_AC1_e, 255, 59), OBJNAME("Hi1", fpcNm_NPC_HI1_e, 255, 59), OBJNAME("Pirates", fpcNm_Obj_Pirateship_e, 255, 0), OBJNAME("keeth", fpcNm_KI_e, 255, 23), OBJNAME("Fkeeth", fpcNm_KI_e, 255, 6), OBJNAME("yg_awa", fpcNm_YOUGAN_e, 255, 0), OBJNAME("magtail", fpcNm_MT_e, 255, 5), OBJNAME("RopeR", fpcNm_HIMO3_e, 255, 0), OBJNAME("Ktarur", fpcNm_Obj_Barrel2_e, 255, 61), OBJNAME("Ktarux", fpcNm_Obj_Barrel_e, 255, 0), OBJNAME("Magrock", fpcNm_Obj_Magmarock_e, 255, 0), OBJNAME("Quake", fpcNm_Obj_Quake_e, 255, 0), OBJNAME("Yfire00", fpcNm_Obj_Flame_e, 255, 0), OBJNAME("Turu", fpcNm_SK_e, 0, 0), OBJNAME("Turu2", fpcNm_SK2_e, 0, 0), OBJNAME("Turu3", fpcNm_SK2_e, 1, 0), OBJNAME("Kanat", fpcNm_Obj_Kanat_e, 255, 0), OBJNAME("s_turu", fpcNm_SSK_e, 255, 0), OBJNAME("spotbox", fpcNm_SPOTBOX_e, 255, 0), OBJNAME("Ksaku", fpcNm_SAKU_e, 255, 0), OBJNAME("spotbx1", fpcNm_SPOTBOX_e, 255, 0), OBJNAME("Mswing", fpcNm_MSW_e, 255, 0), OBJNAME("Pig", fpcNm_KB_e, 255, 0), OBJNAME("Rdead1", fpcNm_RD_e, 0, 18), OBJNAME("Rdead2", fpcNm_RD_e, 1, 18), OBJNAME("Fmaster", fpcNm_FM_e, 0, 25), OBJNAME("Fmastr1", fpcNm_FM_e, 1, 25), OBJNAME("Fmastr2", fpcNm_FM_e, 2, 25), OBJNAME("Daiocta", fpcNm_DAIOCTA_e, 255, 28), OBJNAME("Daioeye", fpcNm_DAIOCTA_EYE_e, 255, 0), OBJNAME("Oq", fpcNm_OQ_e, 0, 27), OBJNAME("Oqw", fpcNm_OQ_e, 1, 65), OBJNAME("Gy", fpcNm_GY_e, 255, 29), OBJNAME("GyCtrl", fpcNm_GY_CTRL_e, 255, 0), OBJNAME("GyCtrlB", fpcNm_GY_CTRLB_e, 255, 0), OBJNAME("Bk", fpcNm_BK_e, 255, 1), OBJNAME("Ypit00", fpcNm_OBJ_HOLE_e, 0, 0), OBJNAME("Pitfall", fpcNm_OBJ_HOLE_e, 1, 0), OBJNAME("Nzfall", fpcNm_OBJ_PFALL_e, 255, 0), OBJNAME("ScnChg", fpcNm_SCENECHG_e, 255, 0), OBJNAME("Oship", fpcNm_OSHIP_e, 255, 56), OBJNAME("Ayush", fpcNm_AYUSH_e, 255, 57), OBJNAME("Tpost", fpcNm_OBJ_TORIPOST_e, 255, 53), OBJNAME("Ocanon", fpcNm_OBJ_CANON_e, 255, 0), OBJNAME("Ikada", fpcNm_OBJ_IKADA_e, 0, 61), OBJNAME("ikada_h", fpcNm_OBJ_IKADA_e, 1, 61), OBJNAME("ikadaS", fpcNm_OBJ_IKADA_e, 2, 61), OBJNAME("ikada_u", fpcNm_OBJ_IKADA_e, 3, 61), OBJNAME("Svsp", fpcNm_OBJ_IKADA_e, 4, 61), OBJNAME("Sv0", fpcNm_NPC_SV_e, 0, 0), OBJNAME("Sv1", fpcNm_NPC_SV_e, 1, 0), OBJNAME("Sv2", fpcNm_NPC_SV_e, 2, 0), OBJNAME("Sv3", fpcNm_NPC_SV_e, 3, 0), OBJNAME("MjDoor", fpcNm_OBJ_MJDOOR_e, 255, 0), OBJNAME("Ikari", fpcNm_IKARI_e, 255, 0), OBJNAME("MjFlag", fpcNm_MAJUU_FLAG_e, 0, 0), OBJNAME("MtFlag", fpcNm_MAJUU_FLAG_e, 1, 0), OBJNAME("HcFlag", fpcNm_MAJUU_FLAG_e, 3, 0), OBJNAME("TrFlag", fpcNm_Tori_Flag_e, 0, 0), OBJNAME("SieFlag", fpcNm_Sie_Flag_e, 0, 0), OBJNAME("lwood", fpcNm_Lwood_e, 255, 0), OBJNAME("Ktaruo", fpcNm_Obj_Demo_Barrel_e, 255, 0), OBJNAME("Touseki", fpcNm_Obj_Tousekiki_e, 255, 0), OBJNAME("frock", fpcNm_TagRock_e, 255, 0), OBJNAME("fallrck", fpcNm_FallRock_e, 255, 0), OBJNAME("Dr2", fpcNm_DR2_e, 255, 0), OBJNAME("Mkdan1", fpcNm_Obj_Stair_e, 255, 0), OBJNAME("Btd", fpcNm_BTD_e, 255, 0), OBJNAME("Dk", fpcNm_DK_e, 255, 0), OBJNAME("Ystm0", fpcNm_SteamTag_e, 255, 0), OBJNAME("Ystm1", fpcNm_SteamTag_e, 255, 0), OBJNAME("Gflag", fpcNm_Goal_Flag_e, 255, 0), OBJNAME("Branch", fpcNm_BRANCH_e, 255, 0), OBJNAME("P1a", fpcNm_NPC_P1_e, 0, 59), OBJNAME("P1b", fpcNm_NPC_P1_e, 1, 59), OBJNAME("P1c", fpcNm_NPC_P1_e, 2, 59), OBJNAME("P2a", fpcNm_NPC_P2_e, 0, 59), OBJNAME("P2b", fpcNm_NPC_P2_e, 1, 59), OBJNAME("P2c", fpcNm_NPC_P2_e, 2, 59), OBJNAME("Tc", fpcNm_NPC_TC_e, 255, 59), OBJNAME("Throck", fpcNm_THROWSTONE_e, 255, 0), OBJNAME("magma", fpcNm_MAGMA_e, 255, 0), OBJNAME("Bita", fpcNm_BITA_e, 255, 0), OBJNAME("YkgrON", fpcNm_Ykgr_e, 255, 0), OBJNAME("YkgrOFF", fpcNm_Ykgr_e, 255, 0), OBJNAME("Dsaku", fpcNm_SAKU_e, 255, 0), OBJNAME("Otana", fpcNm_Obj_Shelf_e, 0, 0), OBJNAME("OtanaG", fpcNm_Obj_Shelf_e, 1, 0), OBJNAME("Bdk", fpcNm_BDK_e, 255, 0), OBJNAME("Bdkobj", fpcNm_BDKOBJ_e, 255, 0), OBJNAME("SWTdoor", fpcNm_SWTDOOR_e, 255, 0), OBJNAME("Canon", fpcNm_Canon_e, 255, 0), OBJNAME("GBoard", fpcNm_MGBOARD_e, 255, 0), OBJNAME("Hlift", fpcNm_Obj_Hlift_e, 0, 0), OBJNAME("Hliftb", fpcNm_Obj_Hlift_e, 1, 0), OBJNAME("Hami2", fpcNm_Obj_Hami2_e, 255, 0), OBJNAME("Hami3", fpcNm_Obj_Hami3_e, 255, 0), OBJNAME("Hami4", fpcNm_Obj_Hami4_e, 255, 0), OBJNAME("Hbrf1", fpcNm_Obj_Hbrf1_e, 255, 0), OBJNAME("Mflft", fpcNm_MFLFT_e, 255, 0), OBJNAME("ObjTime", fpcNm_Obj_Timer_e, 255, 0), OBJNAME("Klft", fpcNm_KLFT_e, 255, 0), OBJNAME("Kita", fpcNm_KITA_e, 255, 0), OBJNAME("Humi0z", fpcNm_Obj_Tide_e, 0, 0), OBJNAME("Humi4z", fpcNm_Obj_Tide_e, 1, 0), OBJNAME("Humi5z", fpcNm_Obj_Tide_e, 2, 0), OBJNAME("Tide3", fpcNm_Obj_Tide_e, 3, 0), OBJNAME("Humi2z", fpcNm_Obj_Tide_e, 4, 0), OBJNAME("Humi3z", fpcNm_Obj_Tide_e, 5, 0), OBJNAME("WLvTag", fpcNm_Tag_Waterlevel_e, 255, 0), OBJNAME("Fire", fpcNm_Fire_e, 255, 0), OBJNAME("Zenfire", fpcNm_Fire_e, 255, 0), OBJNAME("Kokiie", fpcNm_KOKIIE_e, 255, 0), OBJNAME("Paper", fpcNm_Obj_Paper_e, 0, 0), OBJNAME("Ppos", fpcNm_Obj_Paper_e, 1, 0), OBJNAME("Piwa", fpcNm_Obj_Paper_e, 2, 54), OBJNAME("Ss", fpcNm_SS_e, 255, 0), OBJNAME("WindTag", fpcNm_WindTag_e, 255, 0), OBJNAME("Kryu00", fpcNm_Obj_Drift_e, 255, 0), OBJNAME("Mcube", fpcNm_Obj_Mtest_e, 0, 0), OBJNAME("Mcyln", fpcNm_Obj_Mtest_e, 1, 0), OBJNAME("Mcube10", fpcNm_Obj_Mtest_e, 2, 0), OBJNAME("Mcyln10", fpcNm_Obj_Mtest_e, 3, 0), OBJNAME("MwtrSB", fpcNm_Obj_Mtest_e, 4, 0), OBJNAME("MygnSB", fpcNm_Obj_Mtest_e, 5, 0), OBJNAME("Owater", fpcNm_Obj_Mtest_e, 6, 0), OBJNAME("Astop", fpcNm_Obj_Mtest_e, 7, 0), OBJNAME("Ojtree", fpcNm_Obj_Ojtree_e, 255, 0), OBJNAME("Ospbox", fpcNm_Obj_Ospbox_e, 255, 0), OBJNAME("Hmlif", fpcNm_Hmlif_e, 255, 61), OBJNAME("Ywarp00", fpcNm_WARPLIGHT_e, 255, 0), OBJNAME("Ysdls00", fpcNm_WARPLIGHT_e, 255, 0), OBJNAME("Yswtr00", fpcNm_WATERFALL_e, 255, 0), OBJNAME("Gbrg00", fpcNm_LIGHTBRIDGE_e, 255, 0), OBJNAME("Mhsg6", fpcNm_Obj_Ladder_e, 0, 0), OBJNAME("Mhsg9", fpcNm_Obj_Ladder_e, 1, 0), OBJNAME("Mhsg12", fpcNm_Obj_Ladder_e, 2, 0), OBJNAME("Mhsg15", fpcNm_Obj_Ladder_e, 3, 0), OBJNAME("Mhsg4h", fpcNm_Obj_Ladder_e, 4, 0), OBJNAME("Sss", fpcNm_SSS_e, 255, 0), OBJNAME("Wall", fpcNm_WALL_e, 255, 0), OBJNAME("Blift", fpcNm_Balancelift_e, 255, 0), OBJNAME("MtoriSU", fpcNm_Obj_Nest_e, 255, 0), OBJNAME("Lamp", fpcNm_LAMP_e, 255, 0), OBJNAME("Sitem", fpcNm_SITEM_e, 255, 0), OBJNAME("Hmos1", fpcNm_Bemos_e, 0, 35), OBJNAME("Hmos2", fpcNm_Bemos_e, 1, 35), OBJNAME("Hmos3", fpcNm_Bemos_e, 2, 35), OBJNAME("Ylesr00", fpcNm_Beam_e, 255, 0), OBJNAME("Hseki1", fpcNm_Obj_Try_e, 0, 61), OBJNAME("Hseki6", fpcNm_Obj_Try_e, 1, 61), OBJNAME("Hseki3", fpcNm_Obj_Try_e, 2, 61), OBJNAME("Hseki4", fpcNm_Obj_Try_e, 3, 61), OBJNAME("Hseki5", fpcNm_Obj_Try_e, 4, 61), OBJNAME("Hmon1", fpcNm_Obj_Try_e, 5, 61), OBJNAME("Hmon1d", fpcNm_Obj_Try_e, 6, 61), OBJNAME("Hmon2", fpcNm_Obj_Try_e, 7, 61), OBJNAME("Hmon2d", fpcNm_Obj_Try_e, 8, 61), OBJNAME("Hseki31", fpcNm_Obj_Try_e, 9, 61), OBJNAME("Hseki41", fpcNm_Obj_Try_e, 10, 61), OBJNAME("Hseki51", fpcNm_Obj_Try_e, 11, 61), OBJNAME("Hseki32", fpcNm_Obj_Try_e, 12, 61), OBJNAME("Hseki42", fpcNm_Obj_Try_e, 13, 61), OBJNAME("Hseki52", fpcNm_Obj_Try_e, 14, 61), OBJNAME("Com_A", fpcNm_Obj_Coming_e, 255, 0), OBJNAME("WBird", fpcNm_WBIRD_e, 255, 0), OBJNAME("SMtoge", fpcNm_MTOGE_e, 255, 0), OBJNAME("SMBdor", fpcNm_MBDOOR_e, 0, 0), OBJNAME("KGBdor", fpcNm_MBDOOR_e, 1, 0), OBJNAME("BFlower", fpcNm_BOMB_FLOWER_e, 255, 0), OBJNAME("VbakH", fpcNm_BOMB_FLOWER_e, 255, 0), OBJNAME("VigaH", fpcNm_ACORN_LEAF_e, 255, 0), OBJNAME("Stal", fpcNm_ST_e, 255, 4), OBJNAME("MkieBA", fpcNm_Obj_Mkie_e, 0, 61), OBJNAME("MkieBAB", fpcNm_Obj_Mkie_e, 1, 61), OBJNAME("MkieK", fpcNm_Obj_Mkiek_e, 255, 0), OBJNAME("MknjD", fpcNm_Obj_MknjD_e, 255, 0), OBJNAME("Msdan", fpcNm_Obj_Msdan_e, 255, 0), OBJNAME("MsdanSb", fpcNm_Obj_MsdanSub_e, 255, 0), OBJNAME("Msdan2", fpcNm_Obj_Msdan2_e, 255, 0), OBJNAME("MsdanS2", fpcNm_Obj_MsdanSub2_e, 255, 0), OBJNAME("Htobi1", fpcNm_SHUTTER_e, 255, 0), OBJNAME("Htobi2", fpcNm_SHUTTER_e, 255, 0), OBJNAME("Htobi3", fpcNm_SHUTTER2_e, 255, 0), OBJNAME("Hfbot1A", fpcNm_Obj_Swflat_e, 0, 0), OBJNAME("Hfbot1B", fpcNm_Obj_Swflat_e, 1, 0), OBJNAME("Hfbot1C", fpcNm_Obj_Swflat_e, 2, 0), OBJNAME("Ykzyg", fpcNm_Obj_Volcano_e, 255, 0), OBJNAME("GiceL", fpcNm_Obj_Iceisland_e, 255, 0), OBJNAME("Qdghd", fpcNm_Obj_Dragonhead_e, 255, 0), OBJNAME("dmgroom", fpcNm_Obj_Dmgroom_e, 255, 0), OBJNAME("Doguu", fpcNm_Obj_Doguu_e, 0, 0), OBJNAME("MegamiD", fpcNm_Obj_Doguu_e, 1, 0), OBJNAME("MegamiF", fpcNm_Obj_Doguu_e, 2, 0), OBJNAME("MegamiN", fpcNm_Obj_Doguu_e, 3, 0), OBJNAME("DoguuD", fpcNm_Obj_DoguuD_e, 255, 0), OBJNAME("ReTag0", fpcNm_Tag_Ret_e, 255, 0), OBJNAME("VolTag", fpcNm_Tag_Volcano_e, 255, 0), OBJNAME("Auc7", fpcNm_NPC_AUCTION_e, 0, 0), OBJNAME("Auc1", fpcNm_NPC_AUCTION_e, 1, 0), OBJNAME("Auc2", fpcNm_NPC_AUCTION_e, 2, 0), OBJNAME("Auc3", fpcNm_NPC_AUCTION_e, 3, 0), OBJNAME("Auc4", fpcNm_NPC_AUCTION_e, 4, 0), OBJNAME("Auc5", fpcNm_NPC_AUCTION_e, 5, 0), OBJNAME("Auc6", fpcNm_NPC_AUCTION_e, 6, 0), OBJNAME("Auc0", fpcNm_NPC_AUCTION_e, 7, 59), OBJNAME("RotenA", fpcNm_NPC_ROTEN_e, 0, 59), OBJNAME("RotenB", fpcNm_NPC_ROTEN_e, 1, 59), OBJNAME("RotenC", fpcNm_NPC_ROTEN_e, 2, 59), OBJNAME("Tn", fpcNm_TN_e, 255, 3), OBJNAME("Fdai", fpcNm_DAI_e, 255, 0), OBJNAME("Ytrnd00", fpcNm_TORNADO_e, 255, 58), OBJNAME("Plant", fpcNm_Obj_Plant_e, 255, 0), OBJNAME("Rflw", fpcNm_Obj_Rflw_e, 255, 0), OBJNAME("Table", fpcNm_Obj_Table_e, 255, 0), OBJNAME("Gtaki", fpcNm_Obj_Gtaki_e, 255, 0), OBJNAME("Tenmado", fpcNm_Obj_Tenmado_e, 255, 0), OBJNAME("X_tower", fpcNm_Obj_Tower_e, 255, 0), OBJNAME("Eskban", fpcNm_Obj_Eskban_e, 255, 0), OBJNAME("Ekskz", fpcNm_Obj_Ekskz_e, 255, 0), OBJNAME("Pbka", fpcNm_Obj_Pbka_e, 255, 0), OBJNAME("Yboil00", fpcNm_Obj_Yboil_e, 255, 0), OBJNAME("Cafelmp", fpcNm_Obj_Cafelmp_e, 255, 0), OBJNAME("MKanoke", fpcNm_Obj_Kanoke_e, 0, 61), OBJNAME("MKanok2", fpcNm_Obj_Kanoke_e, 1, 61), OBJNAME("Kg1", fpcNm_NPC_KG1_e, 255, 59), OBJNAME("Kg2", fpcNm_NPC_KG2_e, 255, 0), OBJNAME("Tt", fpcNm_NPC_TT_e, 255, 59), OBJNAME("Hr", fpcNm_NPC_HR_e, 0, 0), OBJNAME("Hr2", fpcNm_NPC_HR_e, 1, 0), OBJNAME("BigElf", fpcNm_BIGELF_e, 0, 0), OBJNAME("Ho", fpcNm_NPC_HO_e, 0, 0), OBJNAME("Gkai00", fpcNm_LIGHTSTAIR_e, 255, 0), OBJNAME("Mk", fpcNm_NPC_MK_e, 0, 59), OBJNAME("UkB", fpcNm_NPC_UK_e, 1, 59), OBJNAME("UkC", fpcNm_NPC_UK_e, 2, 59), OBJNAME("UkD", fpcNm_NPC_UK_e, 3, 59), OBJNAME("Mk2", fpcNm_NPC_MK_e, 4, 0), OBJNAME("UkB2", fpcNm_NPC_UK_e, 5, 0), OBJNAME("UkC2", fpcNm_NPC_UK_e, 6, 0), OBJNAME("UkD2", fpcNm_NPC_UK_e, 7, 0), OBJNAME("Co1", fpcNm_NPC_CO1_e, 255, 59), OBJNAME("Mt", fpcNm_NPC_MT_e, 255, 0), OBJNAME("Mn", fpcNm_NPC_MN_e, 255, DEMO_SELECT(0, 59)), OBJNAME("Ah", fpcNm_NPC_AH_e, 255, 0), OBJNAME("Hyuf1", fpcNm_Hmlif_e, 255, 61), OBJNAME("Hyuf2", fpcNm_Hmlif_e, 255, 61), OBJNAME("Hdai1", fpcNm_PEDESTAL_e, 0, 61), OBJNAME("Hdai2", fpcNm_PEDESTAL_e, 1, 61), OBJNAME("Hdai3", fpcNm_PEDESTAL_e, 2, 61), OBJNAME("Auction", fpcNm_AUCTION_e, 255, 0), OBJNAME("Auzu", fpcNm_Obj_Auzu_e, 255, 58), OBJNAME("Hpu1", fpcNm_WINDMILL_e, 255, 0), OBJNAME("Hpu2", fpcNm_WINDMILL_e, 255, 0), OBJNAME("Hkikai1", fpcNm_MACHINE_e, 255, 0), OBJNAME("Ybgaf00", fpcNm_WindTag_e, 255, 0), OBJNAME("LOD01", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD02", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD03", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD04", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD05", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD06", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD07", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD08", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD09", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD10", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD11", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD12", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD13", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD14", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD15", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD16", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD17", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD18", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD19", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD20", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD21", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD22", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD23", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD24", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD25", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD26", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD27", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD28", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD29", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD30", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD31", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD32", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD33", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD34", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD35", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD36", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD37", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD38", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD39", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD40", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD41", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD42", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD43", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD44", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD45", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD46", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD47", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD48", fpcNm_LODBG_e, 255, 0), OBJNAME("LOD49", fpcNm_LODBG_e, 255, 0), OBJNAME("MtryB", fpcNm_Obj_Tribox_e, 0, 0), OBJNAME("MtryBCr", fpcNm_Obj_Tribox_e, 1, 0), OBJNAME("Vdora", fpcNm_Obj_Gong_e, 255, 0), OBJNAME("Roten2", fpcNm_Obj_Roten_e, 0, 0), OBJNAME("Roten3", fpcNm_Obj_Roten_e, 1, 0), OBJNAME("Roten4", fpcNm_Obj_Roten_e, 2, 0), OBJNAME("Qtkhd", fpcNm_Obj_Smplbg_e, 255, 0), OBJNAME("Akabe", fpcNm_Obj_Akabe_e, 0, 0), OBJNAME("Akabe10", fpcNm_Obj_Akabe_e, 1, 0), OBJNAME("NBOX", fpcNm_Obj_Akabe_e, 2, 0), OBJNAME("NBOX10", fpcNm_Obj_Akabe_e, 3, 0), OBJNAME("Ashut", fpcNm_Obj_Ashut_e, 255, 0), OBJNAME("Mcrtn", fpcNm_Obj_Tapestry_e, 255, 0), OBJNAME("VmcBS", fpcNm_Obj_Vmc_e, 255, 0), OBJNAME("Usovmc", fpcNm_Obj_Usovmc_e, 255, 0), OBJNAME("Vfan", fpcNm_Obj_Vfan_e, 255, 0), OBJNAME("Apzl", fpcNm_Obj_Apzl_e, 255, 0), OBJNAME("Adnno", fpcNm_Obj_Adnno_e, 255, 0), OBJNAME("Ycage00", fpcNm_Obj_Barrier_e, 255, 0), OBJNAME("Yswdr00", fpcNm_Obj_Firewall_e, 255, 0), OBJNAME("TnTrap", fpcNm_Obj_TnTrap_e, 255, 0), OBJNAME("FgTrap", fpcNm_Obj_TnTrap_e, 255, 0), OBJNAME("CmTrap", fpcNm_Obj_TnTrap_e, 255, 0), OBJNAME("Hjump2", fpcNm_Obj_Jump_e, 255, 61), OBJNAME("Esekh", fpcNm_Obj_Monument_e, 0, 55), OBJNAME("Esekh2", fpcNm_Obj_Monument_e, 1, 55), OBJNAME("Po", fpcNm_NPC_PHOTO_e, 255, 59), OBJNAME("TagPo", fpcNm_TAG_PHOTO_e, 255, 0), OBJNAME("Htoge1", fpcNm_TOGE_e, 255, 50), OBJNAME("Skanran", fpcNm_Obj_Ferris_e, 255, 0), OBJNAME("Ajav", fpcNm_Obj_Ajav_e, 255, 0), OBJNAME("Trap", fpcNm_Obj_Trap_e, 255, 51), OBJNAME("Hha", fpcNm_Obj_Hha_e, 255, 0), OBJNAME("Htetu1", fpcNm_Obj_Htetu1_e, 255, 0), OBJNAME("Tpota", fpcNm_Tpota_e, 255, 0), OBJNAME("Stoudai", fpcNm_Obj_Light_e, 255, 0), OBJNAME("Pbco", fpcNm_Obj_Pbco_e, 255, 0), OBJNAME("Ebomzo", fpcNm_Obj_Ebomzo_e, 255, 0), OBJNAME("Psail", fpcNm_SAIL_e, 0, 0), OBJNAME("Homen1", fpcNm_Obj_Homen_e, 0, 0), OBJNAME("Homen2", fpcNm_Obj_Homen_e, 1, 0), OBJNAME("Xfuta", fpcNm_Obj_Xfuta_e, 1, 0), OBJNAME("Vochi", fpcNm_Obj_Leaves_e, 0, 0), OBJNAME("Hfuck1", fpcNm_Obj_Hfuck1_e, 0, 0), OBJNAME("YLzou", fpcNm_Obj_YLzou_e, 0, 0), OBJNAME("Gbed", fpcNm_Obj_Gbed_e, 0, 0), OBJNAME("Vteng", fpcNm_Obj_Vteng_e, 0, 0), OBJNAME("Ohatch", fpcNm_Obj_Ohatch_e, 255, 0), OBJNAME("Rcloud", fpcNm_Obj_Rcloud_e, 0, 0), OBJNAME("Ocloud", fpcNm_Obj_Rcloud_e, 1, 0), OBJNAME("MPot", fpcNm_Obj_Mshokki_e, 0, 0), OBJNAME("MOsara", fpcNm_Obj_Mshokki_e, 1, 0), OBJNAME("MKoppu", fpcNm_Obj_Mshokki_e, 2, 0), OBJNAME("Ptco", fpcNm_Obj_Bscurtain_e, 0, 0), OBJNAME("Ptcu", fpcNm_Obj_Bscurtain_e, 1, 0), OBJNAME("Kmon", fpcNm_Kmon_e, 0, 0), OBJNAME("Sarace", fpcNm_NPC_SARACE_e, 0, 0), OBJNAME("Hsh", fpcNm_Obj_HSH_e, 0, 54), OBJNAME("Hsh2", fpcNm_Obj_HSH_e, 1, 54), OBJNAME("Mmusic", fpcNm_Mmusic_e, 255, 0), OBJNAME("Gryw00", fpcNm_Obj_Gryw00_e, 255, 0), OBJNAME("AjavW", fpcNm_Obj_AjavW_e, 0, 0), OBJNAME("Omensmk", fpcNm_Obj_Homensmk_e, 255, 0), OBJNAME("Itnak", fpcNm_Obj_Itnak_e, 255, 0), OBJNAME("Yfrlt00", fpcNm_Komore_e, 255, 0), OBJNAME("FTree", fpcNm_Obj_Ftree_e, 255, 0), OBJNAME("Vyasi", fpcNm_Obj_Vyasi_e, 255, 0), OBJNAME("Vds", fpcNm_Obj_Vds_e, 255, 0), OBJNAME("Rforce", fpcNm_Obj_Rforce_e, 255, 0), OBJNAME("zouK", fpcNm_Obj_Zouk_e, 0, 0), OBJNAME("zouK1", fpcNm_Obj_Zouk_e, 1, 0), OBJNAME("zouK2", fpcNm_Obj_Zouk_e, 2, 0), OBJNAME("zouK3", fpcNm_Obj_Zouk_e, 3, 0), OBJNAME("zouK4", fpcNm_Obj_Zouk_e, 4, 0), OBJNAME("Gaship1", fpcNm_Obj_Gaship_e, 255, 0), OBJNAME("Gaship2", fpcNm_Obj_Gaship2_e, 255, 0), OBJNAME("Ghrwp", fpcNm_WARPHYRULE_e, 255, 0), OBJNAME("Gdemo20", fpcNm_WARPDEMO20_e, 255, 0), OBJNAME("Warpgn", fpcNm_WARPGANON_e, 255, 0), OBJNAME("Warpmj", fpcNm_WARPMAJYUU_e, 255, 0), OBJNAME("Warpfo", fpcNm_WARPFOUT_e, 255, 0), OBJNAME("Ygush00", fpcNm_Obj_Ygush00_e, 255, 0), OBJNAME("Ygush01", fpcNm_Obj_Ygush00_e, 255, 0), OBJNAME("Ygstp00", fpcNm_Obj_Ygush00_e, 255, 0), OBJNAME("Ygush02", fpcNm_Obj_Ygush00_e, 255, 0), OBJNAME("Hcbh", fpcNm_Obj_Hcbh_e, 0, 0), OBJNAME("Com_B", fpcNm_Coming2_e, 255, 0), OBJNAME("Com_C", fpcNm_Coming3_e, 255, 0), OBJNAME("SPitem", fpcNm_SPC_ITEM01_e, 255, 0), OBJNAME("HyoiKam", fpcNm_NPC_KAM_e, 255, 0), OBJNAME("Shmrgrd", fpcNm_Obj_Shmrgrd_e, 255, 0), OBJNAME("Vtil1", fpcNm_Obj_Vtil_e, 0, 0), OBJNAME("Vtil2", fpcNm_Obj_Vtil_e, 1, 0), OBJNAME("Vtil3", fpcNm_Obj_Vtil_e, 2, 0), OBJNAME("Vtil4", fpcNm_Obj_Vtil_e, 3, 0), OBJNAME("Vtil5", fpcNm_Obj_Vtil_e, 4, 0), OBJNAME("Eayogn", fpcNm_Obj_Eayogn_e, 255, 0), OBJNAME("VmsMS", fpcNm_Obj_Vmsms_e, 255, 0), OBJNAME("VmsDZ", fpcNm_Obj_Vmsdz_e, 255, 0), OBJNAME("VgnFD", fpcNm_Obj_Vgnfd_e, 255, 0), OBJNAME("Ygcwp", fpcNm_Ygcwp_e, 255, 0), OBJNAME("Figure", fpcNm_OBJ_FIGURE_e, 255, 0), OBJNAME("RoHat", fpcNm_OBJ_HAT_e, 255, 0), OBJNAME("Gntakis", fpcNm_Obj_Gnntakis_e, 255, 0), OBJNAME("Gntakie", fpcNm_Obj_Gnntakie_e, 255, 0), OBJNAME("Gnbtaki", fpcNm_Obj_Gnnbtaki_e, 255, 0), OBJNAME("Bkm", fpcNm_BMD_e, 255, 0), OBJNAME("Bst", fpcNm_BST_e, 255, 0), OBJNAME("Bitem", fpcNm_BOSSITEM_e, 255, 0), OBJNAME("Fganon", fpcNm_FGANON_e, 255, 0), OBJNAME("Bwd", fpcNm_BWD_e, 255, 0), OBJNAME("Bwds", fpcNm_BWDS_e, 255, 0), OBJNAME("Bgn", fpcNm_BGN_e, 255, 0), OBJNAME("Gnd", fpcNm_GND_e, 255, 0), OBJNAME("Puti", fpcNm_PT_e, 255, 0), OBJNAME("d_act0", fpcNm_DEMO00_e, 0, 0), OBJNAME("d_act1", fpcNm_DEMO00_e, 1, 0), OBJNAME("d_act2", fpcNm_DEMO00_e, 2, 0), OBJNAME("d_act3", fpcNm_DEMO00_e, 3, 0), OBJNAME("d_act4", fpcNm_DEMO00_e, 4, 0), OBJNAME("d_act5", fpcNm_DEMO00_e, 5, 0), OBJNAME("d_act6", fpcNm_DEMO00_e, 6, 0), OBJNAME("d_act7", fpcNm_DEMO00_e, 7, 0), OBJNAME("d_act8", fpcNm_DEMO00_e, 8, 0), OBJNAME("d_act9", fpcNm_DEMO00_e, 9, 0), OBJNAME("d_act10", fpcNm_DEMO00_e, 10, 0), OBJNAME("d_act11", fpcNm_DEMO00_e, 11, 0), OBJNAME("d_act12", fpcNm_DEMO00_e, 12, 0), OBJNAME("d_act13", fpcNm_DEMO00_e, 13, 0), OBJNAME("d_act14", fpcNm_DEMO00_e, 14, 0), OBJNAME("d_act15", fpcNm_DEMO00_e, 15, 0), OBJNAME("d_act16", fpcNm_DEMO00_e, 16, 0), OBJNAME("d_act17", fpcNm_DEMO00_e, 17, 0), OBJNAME("d_act18", fpcNm_DEMO00_e, 18, 0), OBJNAME("d_act19", fpcNm_DEMO00_e, 19, 0), OBJNAME("d_act20", fpcNm_DEMO00_e, 20, 0), OBJNAME("d_act21", fpcNm_DEMO00_e, 21, 0), OBJNAME("d_act22", fpcNm_DEMO00_e, 22, 0), OBJNAME("d_act23", fpcNm_DEMO00_e, 23, 0), OBJNAME("d_act24", fpcNm_DEMO00_e, 24, 0), OBJNAME("d_act25", fpcNm_DEMO00_e, 25, 0), OBJNAME("d_act26", fpcNm_DEMO00_e, 26, 0), OBJNAME("d_act27", fpcNm_DEMO00_e, 27, 0), OBJNAME("d_act28", fpcNm_DEMO00_e, 28, 0), OBJNAME("d_act29", fpcNm_DEMO00_e, 29, 0), OBJNAME("d_act30", fpcNm_DEMO00_e, 30, 0), OBJNAME("d_act31", fpcNm_DEMO00_e, 31, 0), OBJNAME("SYAN", fpcNm_SYAN_e, 255, 0), OBJNAME("TagD1", fpcNm_Dummy_e, 0, 0), OBJNAME("TagD2", fpcNm_Dummy_e, 1, 0), OBJNAME("TagD3", fpcNm_Dummy_e, 2, 0), OBJNAME("TagD4", fpcNm_Dummy_e, 3, 0), OBJNAME("mp", fpcNm_MP_e, 255, 0), OBJNAME("STBox", fpcNm_SALVAGE_TBOX_e, 255, 0), OBJNAME("Fobj00", fpcNm_STANDITEM_e, 255, 0), OBJNAME("Tama", fpcNm_TAMA_e, 255, 0), OBJNAME("Agb", fpcNm_AGB_e, 255, 0), OBJNAME("Bg", fpcNm_BG_e, 255, 0), OBJNAME("Himo2", fpcNm_HIMO2_e, 255, 0), OBJNAME("Esa", fpcNm_ESA_e, 255, 0), OBJNAME("Boko", fpcNm_BOKO_e, 255, 0), OBJNAME("Kantera", fpcNm_KANTERA_e, 255, 0), OBJNAME("HShot", fpcNm_HOOKSHOT_e, 255, 0), OBJNAME("Boom", fpcNm_BOOMERANG_e, 255, 0), OBJNAME("Bomb", fpcNm_BOMB_e, 255, 0), OBJNAME("Bomb2", fpcNm_Bomb2_e, 255, 0), OBJNAME("Boko", fpcNm_BOKO_e, 255, 0), OBJNAME("Arrow", fpcNm_ARROW_e, 255, 0), OBJNAME("Arrow_i", fpcNm_ARROW_ICEEFF_e, 255, 0), OBJNAME("Arrow_l", fpcNm_ARROW_LIGHTEFF_e, 255, 0), OBJNAME("Grid", fpcNm_GRID_e, 255, 0), OBJNAME("Kaji", fpcNm_Kaji_e, 255, 0), OBJNAME("HFloor", fpcNm_Hot_Floor_e, 255, 0), OBJNAME("Buoyr", fpcNm_Obj_Buoyrace_e, 255, 0), OBJNAME("Ritem", fpcNm_RACEITEM_e, 255, 0), OBJNAME("Sitem", fpcNm_ShopItem_e, 255, 0), OBJNAME("Ditem", fpcNm_Demo_Item_e, 255, 0), OBJNAME("Iball", fpcNm_Iball_e, 255, 0), OBJNAME("Grass", fpcNm_GRASS_e, 255, 0), OBJNAME("Vrbox", fpcNm_VRBOX_e, 255, 0), OBJNAME("Vrbox2", fpcNm_VRBOX2_e, 255, 0), OBJNAME("EndCode", fpcNm_PLAY_SCENE_e, 255, 0), }; /* 80041544-800415B4 .text dStage_searchName__FPCc */ dStage_objectNameInf* dStage_searchName(const char* i_name) { dStage_objectNameInf* obj = l_objectName; for (u32 i = 0; i < ARRAY_SIZE(l_objectName); i++) { if (!strcmp(obj->name, i_name)) { return obj; } obj++; } return NULL; } /* 800415B4-80041608 .text dStage_getName__FsSc */ const char* dStage_getName(s16 i_procName, s8 i_argument) { dStage_objectNameInf* obj = l_objectName; for (int i = 0; i < ARRAY_SIZE(l_objectName); i++) { if (obj->procname == i_procName && obj->argument == i_argument) { return obj->name; } obj++; } // "Who?" return "誰?"; } /* 80041608-80041628 .text dStage_getName2__FsSc */ const char* dStage_getName2(s16 i_procName, s8 i_argument) { return dStage_getName(i_procName, i_argument); } /* 80041628-8004169C .text dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class */ void dStage_actorCreate(stage_actor_data_class* i_actorData, fopAcM_prm_class* i_actorPrm) { dStage_objectNameInf* nameinf_p = dStage_searchName(i_actorData->name); if (nameinf_p == NULL) { JKRHeap::free(i_actorPrm, NULL); } else { i_actorPrm->argument = nameinf_p->argument; i_actorPrm->gbaName = nameinf_p->gbaName; fopAcM_Create(nameinf_p->procname, NULL, i_actorPrm); } } /* 8004169C-80041708 .text dStage_cameraCreate__FP24stage_camera2_data_classii */ int dStage_cameraCreate(stage_camera2_data_class* i_cameraData, int i_cameraIdx, int param_2) { s16 procname = fpcNm_CAMERA_e; if (procname < 0) { return 0; } fopCamM_prm_class* params = (fopCamM_prm_class*)cMl::memalignB(-4, sizeof(fopCamM_prm_class)); if (params != NULL) { params->base.position.x = 0.0f; params->base.position.y = 0.0f; params->base.position.x = 0.0f; params->base.parameters = param_2; fopCamM_Create(i_cameraIdx, procname, params); } return 1; } /* 80041708-8004184C .text dStage_decodeSearchIkada__FPvi */ stage_actor_data_class* dStage_decodeSearchIkada(void* i_file, int ikadaShipId) { char actor_node_names[][8] = { "ACTR", "ACT0", "ACT1", "ACT2", "ACT3", "ACT4", "ACT5", "ACT6", "ACT7", "ACT8", "ACT9", "ACTa", "ACTb", }; if (i_file != NULL) { dStage_fileHeader* file = (dStage_fileHeader*)i_file; dStage_nodeHeader* p_tno; for (int i = 0; i < ARRAY_SIZE(actor_node_names); i++) { p_tno = file->m_nodes; for (int j = 0; j < file->m_chunkCount; j++) { if ((s32)p_tno->m_tag == *(s32*)actor_node_names[i]) { stage_actor_data_class* actor_data = (stage_actor_data_class*)p_tno->m_offset; for (int k = 0; k < p_tno->m_entryNum; k++) { if (strcmp(actor_data->name, "ikada_h") == 0 || strcmp(actor_data->name, "ikada_u") == 0 || strcmp(actor_data->name, "ikadaS") == 0) { if (IkadaGetIkadaIdArgPrm(actor_data->base.parameters) == ikadaShipId) { return actor_data; } } actor_data++; } break; } p_tno++; } } } return NULL; } /* 8004184C-800419D0 .text dStage_playerInitIkada__FP16fopAcM_prm_classPv */ void dStage_playerInitIkada(fopAcM_prm_class* player_prm, void* i_file) { stage_actor_data_class* ikada_data = dStage_decodeSearchIkada(i_file, dComIfGp_getIkadaShipId()); JUT_ASSERT(DEMO_SELECT(1560, 1590), ikada_data != NULL); u8 roomNo = dComIfGp_getIkadaShipBeforeRoomId(); player_prm->base.parameters = 0xFF000000 | roomNo; player_prm->base.parameters |= 0x80; mDoMtx_stack_c::transS(ikada_data->base.position); mDoMtx_stack_c::YrotM(ikada_data->base.angle.y); cXyz offset(0.0f, 87.0f, 550.0f); cXyz pos; mDoMtx_stack_c::multVec(&offset, &pos); daSea_execute(pos); f32 seaHeight = 0.0f; if (daSea_ChkArea(ikada_data->base.position.x, ikada_data->base.position.z)) { seaHeight = daSea_calcWave(ikada_data->base.position.x, ikada_data->base.position.z); } pos.y += seaHeight; pos.y += 500.0f; player_prm->base.position.set(pos); s16 angleZ = (ikada_data->base.angle.x & 0xFF) << 8; player_prm->base.angle.set(0, ikada_data->base.angle.y, angleZ); } /* 800419D0-80041AEC .text dStage_chkPlayerId__Fii */ bool dStage_chkPlayerId(int playerId, int room_no) { stage_actor_class * player; if (room_no == -1) { player = dComIfGp_getStage().getPlayer(); } else { JUT_ASSERT(DEMO_SELECT(1643, 1673), 0 <= room_no && room_no < 64); player = dComIfGp_roomControl_getStatusRoomDt(room_no)->getPlayer(); } if (player == NULL) return false; stage_actor_data_class * actor = player->m_entries; for (int i = 0; i < player->num; i++, actor++) if ((u8)actor->base.angle.z == playerId) return true; return false; } /* 80041AF4-80041E84 .text dStage_playerInit__FP11dStage_dt_cPviPv */ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* i_file) { stage_actor_class* player = (stage_actor_class*)((int*)i_data + 1); stage_actor_data_class* player_data = player->m_entries; if (dComIfGp_getPlayer(0) != NULL) { return 1; } i_stage->setPlayer(player); i_stage->setPlayerNum(num); fopAcM_prm_class* appen = fopAcM_CreateAppend(); JUT_ASSERT(DEMO_SELECT(1705, 1735), appen != NULL); int point = dComIfGp_getStartStagePoint(); u32 roomParam = dComIfGs_getRestartRoomParam(); if (point == -2) { dStage_playerInitIkada(appen, i_file); } else if (point == -3) { appen->base.parameters = dComIfGs_getTurnRestartParam(); appen->base.position = dComIfGs_getTurnRestartPos(); appen->base.angle.set(0, dComIfGs_getTurnRestartAngleY(), -0x100); } else if (point == -1) { appen->base.parameters = dComIfGs_getRestartRoomParam(); appen->base.position = dComIfGs_getRestartRoomPos(); appen->base.angle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); } else { int i; for (i = 0; i < num; i++) { if ((u8)player_data->base.angle.z == point) { break; } player_data++; } JUT_ASSERT(DEMO_SELECT(1757, 1787), i != num); appen->base.parameters = player_data->base.parameters; appen->base.position = player_data->base.position; appen->base.angle = player_data->base.angle; appen->base.setID = player_data->base.setID; if (roomParam != 0 && daPy_lk_c::getStartModeFromParam(appen->base.parameters) != 2) { appen->base.parameters = (roomParam & 0xFFFFFFC0) | (appen->base.parameters & 0x3F); } } dComIfGs_setRestartRoomParam(0); appen->base.setID = 0xFFFF; appen->room_no = -1; dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->base.parameters & 0x3F, dComIfGp_getStartStagePoint(), dComIfGp_getStartStageLayer()); dComIfGp_setShipId((appen->base.angle.z >> 8) & 0xFF); dComIfGp_setShipRoomId(appen->base.parameters & 0x3F); dStage_actorCreate(player_data, appen); scene_class* stageProc = fopScnM_SearchByID(dStage_roomControl_c::getProcID()); JUT_ASSERT(DEMO_SELECT(1812, 1842), stageProc != NULL); if (stageProc->base.base.mProcName != fpcNm_PLAY_SCENE_e) { fopAcM_create(fpcNm_TITLE_e, 0); } #if VERSION == VERSION_DEMO else #endif { fopMsgM_Create(fpcNm_METER_e, NULL, NULL); cXyz agb_pos(appen->base.position.x, appen->base.position.y + 10.0f, appen->base.position.z); fopAcM_create(fpcNm_AGB_e, 0, &agb_pos); } dComIfGp_setAgb(NULL); return 1; } /* 80041E84-80041ED4 .text dStage_cameraInit__FP11dStage_dt_cPviPv */ int dStage_cameraInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4); int entryIdx = 0; i_stage->setCamera(camera); dStage_cameraCreate(&camera->m_entries[entryIdx], 0, 0); return 1; } /* 80041ED4-80041F08 .text dStage_RoomCameraInit__FP11dStage_dt_cPviPv */ int dStage_RoomCameraInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4); i_stage->setCamera(camera); return 1; } /* 80041F08-80041F3C .text dStage_arrowInit__FP11dStage_dt_cPviPv */ int dStage_arrowInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_arrow_class* arrow = (stage_arrow_class*)((char*)i_data + 4); i_stage->setArrow(arrow); return 1; } /* 80041F3C-80041F54 .text dStage_mapInfo_GetOceanX__FP20stage_map_info_class */ int dStage_mapInfo_GetOceanX(stage_map_info_class* i_mapInfo) { int rt = (i_mapInfo->mOceanXZ & 0xF); if (rt & 8) return rt - 0x10; else return rt; } /* 80041F54-80041F6C .text dStage_mapInfo_GetOceanZ__FP20stage_map_info_class */ int dStage_mapInfo_GetOceanZ(stage_map_info_class* i_mapInfo) { int rt = (i_mapInfo->mOceanXZ >> 4) & 0x0F; if (rt & 8) return rt - 0x10; else return rt; } /* 80041F6C-80041FD0 .text dStage_mapInfoInit__FP11dStage_dt_cPviPv */ int dStage_mapInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_map_info_dummy_class* mapInfo = (stage_map_info_dummy_class*)((char*)i_data + 4); i_stage->setMapInfo(mapInfo->m_entries); i_stage->setMapInfoBase(mapInfo); return 1; } /* 80041FD0-8004205C .text getMapInfo2__15dStage_roomDt_cCFi */ stage_map_info_class* dStage_roomDt_c::getMapInfo2(int param_0) const { stage_map_info_dummy_class* map_info_p = getMapInfoBase(); if (map_info_p == NULL || map_info_p->num == 0 || map_info_p->m_entries == NULL) { return NULL; } stage_map_info_class* data_p = map_info_p->m_entries; for (int i = 0; i < map_info_p->num; i++) { if (param_0 == data_p->field_0x35) { return data_p; } data_p++; } return NULL; } /* 8004205C-80042064 .text getMapInfoBase__15dStage_roomDt_cCFv */ stage_map_info_dummy_class* dStage_roomDt_c::getMapInfoBase() const { return mpMapInfoBase; } /* 80042064-800420F0 .text getMapInfo2__16dStage_stageDt_cCFi */ stage_map_info_class* dStage_stageDt_c::getMapInfo2(int param_0) const { stage_map_info_dummy_class* map_info_p = getMapInfoBase(); if (map_info_p == NULL || map_info_p->num == 0 || map_info_p->m_entries == NULL) { return NULL; } stage_map_info_class* data_p = map_info_p->m_entries; for (int i = 0; i < map_info_p->num; i++) { if (param_0 == data_p->field_0x35) { return data_p; } data_p++; } return NULL; } /* 800420F0-800420F8 .text getMapInfoBase__16dStage_stageDt_cCFv */ stage_map_info_dummy_class* dStage_stageDt_c::getMapInfoBase() const { return mpMapInfoBase; } /* 800420F8-8004212C .text dStage_paletInfoInit__FP11dStage_dt_cPviPv */ int dStage_paletInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_nodeHeader* pal_info = (dStage_nodeHeader*)(i_data); i_stage->setPaletInfo((stage_palet_info_class*)pal_info->m_offset); return 1; } /* 8004212C-80042160 .text dStage_pselectInfoInit__FP11dStage_dt_cPviPv */ int dStage_pselectInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_nodeHeader* psel_info = (dStage_nodeHeader*)(i_data); i_stage->setPselectInfo((stage_pselect_info_class*)psel_info->m_offset); return 1; } /* 80042160-80042194 .text dStage_envrInfoInit__FP11dStage_dt_cPviPv */ int dStage_envrInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_nodeHeader* envr_info = (dStage_nodeHeader*)(i_data); i_stage->setEnvrInfo((stage_envr_info_class*)envr_info->m_offset); return 1; } /* 80042194-800421E8 .text dStage_filiInfoInit__FP11dStage_dt_cPviPv */ int dStage_filiInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { if (i_num == 0) { i_stage->setFileListInfo(NULL); } else { dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); i_stage->setFileListInfo((dStage_FileList_dt_c*)fili_info->m_offset); } return 1; } /* 800421E8-8004221C .text dStage_vrboxInfoInit__FP11dStage_dt_cPviPv */ int dStage_vrboxInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_nodeHeader* vrbox_info = (dStage_nodeHeader*)(i_data); i_stage->setVrboxInfo((stage_vrbox_info_class*)vrbox_info->m_offset); return 1; } /* 8004221C-80042280 .text dStage_plightInfoInit__FP11dStage_dt_cPviPv */ int dStage_plightInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_nodeHeader* plight_info = (dStage_nodeHeader*)(i_data); i_stage->setPlightInfo((stage_plight_info_class*)plight_info->m_offset); i_stage->setPlightNumInfo(i_num); return 1; } /* 80042280-8004230C .text dStage_lgtvInfoInit__FP11dStage_dt_cPviPv */ int dStage_lgtvInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { i_stage->setLightVecInfoNum(i_num); if (i_num == 0) { i_stage->setLightVecInfo(NULL); } else { dStage_nodeHeader* lgtv_info = (dStage_nodeHeader*)(i_data); i_stage->setLightVecInfo((stage_lightvec_info_class*)lgtv_info->m_offset); } return 1; } /* 8004230C-8004238C .text dStage_stagInfoInit__FP11dStage_dt_cPviPv */ int dStage_stagInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_nodeHeader* stag_info = (dStage_nodeHeader*)(i_data); i_stage->setStagInfo((stage_stag_info_class*)stag_info->m_offset); int stageNo = dStage_stagInfo_GetSaveTbl(i_stage->getStagInfo()); dComIfGs_getSave(stageNo); dComIfGs_initDan(stageNo); return 1; } /* 8004238C-800423C0 .text dStage_sclsInfoInit__FP11dStage_dt_cPviPv */ int dStage_sclsInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_scls_info_dummy_class* scls_info = (stage_scls_info_dummy_class*)((char*)i_data + 4); i_stage->setSclsInfo(scls_info); return 1; } /* 800423C0-800424BC .text dStage_actorInit__FP11dStage_dt_cPviPv */ int dStage_actorInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); stage_actor_data_class* actor_data = actor->m_entries; for (int i = 0; i < actor->num; i++) { if (!dComIfGs_isActor(actor_data->base.setID, i_stage->getRoomNo())) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { appen->base.parameters = actor_data->base.parameters; appen->base.position = actor_data->base.position; appen->base.angle = actor_data->base.angle; appen->base.setID = actor_data->base.setID; appen->room_no = i_stage->getRoomNo(); dStage_actorCreate(actor_data, appen); } } actor_data++; } return 1; } /* 800424BC-8004259C .text dStage_tgscInfoInit__FP11dStage_dt_cPviPv */ int dStage_tgscInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_tgsc_class* tgsc = (stage_tgsc_class*)((int*)i_data + 1); stage_tgsc_data_class* tgsc_data = tgsc->m_entries; for (int i = 0; i < tgsc->num; i++) { stage_actor_data_class* actor_data = (stage_actor_data_class*)tgsc_data; fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { appen->base = actor_data->base; appen->room_no = i_stage->getRoomNo(); appen->scale = tgsc_data->scale; dStage_actorCreate(actor_data, appen); } tgsc_data++; } return 1; } /* 8004259C-80042628 .text dStage_roomReadInit__FP11dStage_dt_cPviPv */ int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* i_file) { roomRead_class* rtbl = (roomRead_class*)((int*)i_data + 1); roomRead_data_class** rtbl_entries = rtbl->m_entries; i_stage->setRoom(rtbl); for (int i = 0; i < rtbl->num; i++) { rtbl_entries[i] = (roomRead_data_class*)((u32)i_file + (u32)rtbl_entries[i]); rtbl_entries[i]->m_rooms = (u8*)((u32)i_file + (u32)rtbl_entries[i]->m_rooms); } return 1; } /* 80042628-80042658 .text dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */ s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& room, int index) { if (index < 0 || index >= room.num) { index = 0; } return dStage_roomRead_dt_c_GetReverb(*room.m_entries[index]); } /* 80042658-8004268C .text dStage_ppntInfoInit__FP11dStage_dt_cPviPv */ int dStage_ppntInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_dPnt_c* pStagePnt = (dStage_dPnt_c*)((char*)i_data + 4); i_stage->setPntInfo(pStagePnt); return 1; } /* 8004268C-8004271C .text dStage_pathInfoInit__FP11dStage_dt_cPviPv */ int dStage_pathInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_dPath_c* pStagePath = (dStage_dPath_c*)((char*)i_data + 4); dPath* pPath = pStagePath->m_path; i_stage->setPathInfo(pStagePath); for (s32 i = 0; i < pStagePath->num; pPath++, i++) pPath->m_points = (dPnt*)((u32)pPath->m_points + i_stage->getPntInf()->m_pnt_offset); return 1; } /* 8004271C-80042750 .text dStage_rppnInfoInit__FP11dStage_dt_cPviPv */ int dStage_rppnInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_dPnt_c* pStagePnt = (dStage_dPnt_c*)((char*)i_data + 4); i_stage->setPnt2Info(pStagePnt); return 1; } /* 80042750-800427E0 .text dStage_rpatInfoInit__FP11dStage_dt_cPviPv */ int dStage_rpatInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_dPath_c* pStagePath = (dStage_dPath_c*)((char*)i_data + 4); dPath* pPath = pStagePath->m_path; i_stage->setPath2Info(pStagePath); for (s32 i = 0; i < pStagePath->num; pPath++, i++) pPath->m_points = (dPnt*)((u32)pPath->m_points + i_stage->getPnt2Inf()->m_pnt_offset); return 1; } /* 800427E0-80042814 .text dStage_soundInfoInit__FP11dStage_dt_cPviPv */ int dStage_soundInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_SoundInfo_c* soundInfo = (dStage_SoundInfo_c*)((char*)i_data + 4); i_stage->setSoundInfo(soundInfo); return 1; } /* 80042814-80042848 .text dStage_eventInfoInit__FP11dStage_dt_cPviPv */ int dStage_eventInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_EventInfo_c* eventInfo = (dStage_EventInfo_c*)((char*)i_data + 4); i_stage->setEventInfo(eventInfo); return 1; } /* 80042848-8004287C .text dStage_floorInfoInit__FP11dStage_dt_cPviPv */ int dStage_floorInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_FloorInfo_c* floorInfo = (dStage_FloorInfo_c*)((char*)i_data + 4); i_stage->setFloorInfo(floorInfo); return 1; } /* 8004287C-8004293C .text dStage_memaInfoInit__FP11dStage_dt_cPviPv */ int dStage_memaInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_MemoryMap_c* pd = (dStage_MemoryMap_c*)((char*)i_data + 4); i_stage->setMemoryMap(pd); if (pd != NULL) { u32* entry_p = pd->m_entries; for (int i = 0; i < pd->num; i++) { JKRExpHeap* heap = dStage_roomControl_c::createMemoryBlock(i, *entry_p + 0x300); JUT_ASSERT(DEMO_SELECT(2903, 2932), heap != NULL); entry_p++; } } return 1; } /* 8004293C-800429C0 .text dStage_mecoInfoInit__FP11dStage_dt_cPviPv */ int dStage_mecoInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_MemoryConfig_c* pd = (dStage_MemoryConfig_c*)((char*)i_data + 4); i_stage->setMemoryConfig(pd); if (pd != NULL) { dStage_MemoryConfig_data* entry_p = pd->m_entries; for (int i = 0; i < pd->num; i++) { dStage_roomControl_c::setMemoryBlockID(entry_p->m_roomNo, entry_p->m_blockID); entry_p++; } } return 1; } #if VERSION == VERSION_DEMO bool dStage_setShipPos(int param_0, int i_roomNo) { int roomNo; if (i_roomNo == 0xFF) { roomNo = dComIfGp_roomControl_getStayNo(); } else { roomNo = i_roomNo; } if (param_0 != 0xFF) { dStage_Ship_dt_c* ship_data_p = dComIfGp_getShip(roomNo, param_0); if (ship_data_p != NULL) { daShip_c* ship_p = (daShip_c*)fopAcM_SearchByName(fpcNm_SHIP_e); if (ship_p != NULL) { if (dComIfGp_getStartStagePoint() == -3 ) { if (dComIfGs_getTurnRestartParam() & 0x100) { ship_p = (daShip_c*)fopAcM_SearchByName(fpcNm_SHIP_e); if (ship_p != NULL) { ship_p->initStartPos(&dComIfGs_getTurnRestartShipPos(), dComIfGs_getTurnRestartShipAngleY()); } } } else { ship_p->initStartPos(&ship_data_p->m_pos, ship_data_p->m_angle); } return true; } } } return false; } #else /* 800429C0-80042B10 .text dStage_setShipPos__Fii */ bool dStage_setShipPos(int param_0, int i_roomNo) { if (strcmp(dComIfGp_getStartStageName(), "GanonM") == 0 && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3D02)) { param_0 = 0xFF; i_roomNo = 0xFF; dComIfGp_setShipId(0xFF); dComIfGp_setShipRoomId(0xFF); } if (dComIfGp_getStartStagePoint() == -3 && dComIfGs_getTurnRestartHasShip()) { daShip_c* ship_p = (daShip_c*)fopAcM_SearchByName(fpcNm_SHIP_e); if (ship_p != NULL) { ship_p->initStartPos(&dComIfGs_getTurnRestartShipPos(), dComIfGs_getTurnRestartShipAngleY()); } dComIfGs_setTurnRestartHasShip(FALSE); } if (param_0 != 0xFF) { int roomNo; if (i_roomNo == 0xFF) { roomNo = dComIfGp_roomControl_getStayNo(); } else { roomNo = i_roomNo; } dStage_Ship_dt_c* ship_data_p = dComIfGp_getShip(roomNo, param_0); if (ship_data_p != NULL) { daShip_c* ship_p = (daShip_c*)fopAcM_SearchByName(fpcNm_SHIP_e); if (ship_p != NULL) { ship_p->initStartPos(&ship_data_p->m_pos, ship_data_p->m_angle); return true; } } } return false; } #endif /* 80042B10-80042B70 .text dStage_chkTaura__Fi */ bool dStage_chkTaura(int i_roomNo) { if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && i_roomNo == dIsleRoom_WindfallIsland_e) { return true; } return false; } /* 80042B70-80042C38 .text dStage_shipInfoInit__FP11dStage_dt_cPviPv */ int dStage_shipInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_Ship_c* ship_p = (dStage_Ship_c*)((char*)i_data + 4); i_stage->setShip(ship_p); int shipId = dComIfGp_getShipId(); int roomId = dComIfGp_getShipRoomId(); if (dStage_chkTaura(roomId) && !dComIfGs_isEventBit(dSv_event_flag_c::RODE_KORL)) { if (dStage_setShipPos(0x80, roomId)) { shipId = 0xFF; roomId = 0xFF; dComIfGp_setShipId(0xFF); dComIfGp_setShipRoomId(0xFF); } } #if VERSION == VERSION_DEMO else if (strcmp(dComIfGp_getStartStageName(), "GanonM") == 0 && !dComIfGs_isEventBit(dSv_event_flag_c::UNK_3D02)) { shipId = 0xFF; roomId = 0xFF; dComIfGp_setShipId(0xFF); dComIfGp_setShipRoomId(0xFF); } #endif if (dStage_setShipPos(shipId, roomId)) { dComIfGp_setShipId(0xFF); dComIfGp_setShipRoomId(0xFF); } return 1; } /* 80042C38-80042C6C .text dStage_multInfoInit__FP11dStage_dt_cPviPv */ int dStage_multInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_Multi_c* multi = (dStage_Multi_c*)((char*)i_data + 4); i_stage->setMulti(multi); return 1; } /* 80042C6C-80042CA0 .text dStage_lbnkInfoInit__FP11dStage_dt_cPviPv */ int dStage_lbnkInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_Lbnk_c* lbnk = (dStage_Lbnk_c*)((char*)i_data + 4); i_stage->setLbnk(lbnk); return 1; } /* 80042CA0-80042D18 .text dStage_stageTresureInit__FP11dStage_dt_cPviPv */ int dStage_stageTresureInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { i_stage->setTresure((stage_tresure_class*)((char*)i_data + 4)); dStage_actorInit(i_stage, i_data, i_num, param_3); dStage_KeepTresureInfoProc(i_stage, (stage_tresure_class*)((char*)i_data + 4)); return 1; } /* 80042D18-80042D80 .text dStage_roomTresureInit__FP11dStage_dt_cPviPv */ int dStage_roomTresureInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { i_stage->setTresure((stage_tresure_class*)((char*)i_data + 4)); dStage_actorInit(i_stage, i_data, i_num, param_3); return 1; } /* 80042D80-80042DA4 .text dStage_layerTresureInit__FP11dStage_dt_cPviPv */ int dStage_layerTresureInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { dStage_actorInit(i_stage, i_data, i_num, param_3); return 1; } /* 80042DA4-80042DD8 .text dStage_dmapInfoInit__FP11dStage_dt_cPviPv */ int dStage_dmapInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { dStage_DMap_c* dmap = (dStage_DMap_c*)((char*)i_data + 4); i_stage->setDMap(dmap); return 1; } /* 80042DD8-80042E50 .text dStage_stageDrtgInfoInit__FP11dStage_dt_cPviPv */ int dStage_stageDrtgInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { i_stage->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); dStage_tgscInfoInit(i_stage, i_data, i_num, param_3); dStage_KeepDoorInfoProc(i_stage, (stage_tgsc_class*)((char*)i_data + 4)); return 1; } /* 80042E50-80042EB8 .text dStage_roomDrtgInfoInit__FP11dStage_dt_cPviPv */ int dStage_roomDrtgInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { i_stage->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); dStage_tgscInfoInit(i_stage, i_data, i_num, param_3); return 1; } /* 80042EB8-80042F14 .text dKankyo_create__Fv */ void dKankyo_create() { fopKyM_Create(fpcNm_KANKYO_e); fopKyM_Create(fpcNm_KYEFF_e); fopKyM_Create(fpcNm_KYEFF2_e); fopKyM_Create(fpcNm_ENVSE_e); } /* 80042F14-80042FC4 .text dStage_dt_c_decode__FPvP11dStage_dt_cP9FuncTablei */ void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* i_funcTbl, int i_tblSize) { if (i_data != NULL) { for (int i = 0; i < i_tblSize; i++) { dStage_fileHeader* file = (dStage_fileHeader*)i_data; dStage_nodeHeader* p_tno = file->m_nodes; FuncTable* nodeFunc = i_funcTbl + i; for (int j = 0; j < file->m_chunkCount; j++) { if ((int)p_tno->m_tag == *(int*)nodeFunc->identifier) { if (nodeFunc->function != NULL) { nodeFunc->function(i_stage, p_tno, p_tno->m_entryNum, i_data); } break; } p_tno++; } } } } /* 80042FC4-80042FFC .text dStage_dt_c_offsetToPtr__FPv */ void dStage_dt_c_offsetToPtr(void* i_data) { dStage_fileHeader* file = (dStage_fileHeader*)i_data; dStage_nodeHeader* p_tno = file->m_nodes; for (int i = 0; i < file->m_chunkCount; i++) { if (p_tno->m_offset != 0) { p_tno->m_offset += (u32)i_data; } p_tno++; } } /* 80042FFC-800430E0 .text dStage_dt_c_stageInitLoader__FPvP11dStage_dt_c */ void dStage_dt_c_stageInitLoader(void* i_data, dStage_dt_c* i_stage) { static FuncTable l_funcTable[] = {"STAG", dStage_stagInfoInit}; JUT_ASSERT(DEMO_SELECT(3529, 3557), i_data != NULL); JUT_ASSERT(DEMO_SELECT(3530, 3558), i_stage != NULL); dStage_dt_c_offsetToPtr(i_data); i_stage->init(); dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); } /* 800430E0-8004313C .text layerLoader__FPvP11dStage_dt_ci */ void layerLoader(void* i_data, dStage_dt_c* i_stage, int i_roomNo) { static FuncTable l_layer0FuncTable[] = { {"ACT0", dStage_actorInit}, {"SCO0", dStage_tgscInfoInit}, {"TRE0", dStage_layerTresureInit}, }; static FuncTable l_layer1FuncTable[] = { {"ACT1", dStage_actorInit}, {"SCO1", dStage_tgscInfoInit}, {"TRE1", dStage_layerTresureInit}, }; static FuncTable l_layer2FuncTable[] = { {"ACT2", dStage_actorInit}, {"SCO2", dStage_tgscInfoInit}, {"TRE2", dStage_layerTresureInit}, }; static FuncTable l_layer3FuncTable[] = { {"ACT3", dStage_actorInit}, {"SCO3", dStage_tgscInfoInit}, {"TRE3", dStage_layerTresureInit}, }; static FuncTable l_layer4FuncTable[] = { {"ACT4", dStage_actorInit}, {"SCO4", dStage_tgscInfoInit}, {"TRE4", dStage_layerTresureInit}, }; static FuncTable l_layer5FuncTable[] = { {"ACT5", dStage_actorInit}, {"SCO5", dStage_tgscInfoInit}, {"TRE5", dStage_layerTresureInit}, }; static FuncTable l_layer6FuncTable[] = { {"ACT6", dStage_actorInit}, {"SCO6", dStage_tgscInfoInit}, {"TRE6", dStage_layerTresureInit}, }; static FuncTable l_layer7FuncTable[] = { {"ACT7", dStage_actorInit}, {"SCO7", dStage_tgscInfoInit}, {"TRE7", dStage_layerTresureInit}, }; static FuncTable l_layer8FuncTable[] = { {"ACT8", dStage_actorInit}, {"SCO8", dStage_tgscInfoInit}, {"TRE8", dStage_layerTresureInit}, }; static FuncTable l_layer9FuncTable[] = { {"ACT9", dStage_actorInit}, {"SCO9", dStage_tgscInfoInit}, {"TRE9", dStage_layerTresureInit}, }; static FuncTable l_layerAFuncTable[] = { {"ACTa", dStage_actorInit}, {"SCOa", dStage_tgscInfoInit}, {"TREa", dStage_layerTresureInit}, }; static FuncTable l_layerBFuncTable[] = { {"ACTb", dStage_actorInit}, {"SCOb", dStage_tgscInfoInit}, {"TREb", dStage_layerTresureInit}, }; static FuncTable* l_layerFuncTable_p[] = { l_layer0FuncTable, l_layer1FuncTable, l_layer2FuncTable, l_layer3FuncTable, l_layer4FuncTable, l_layer5FuncTable, l_layer6FuncTable, l_layer7FuncTable, l_layer8FuncTable, l_layer9FuncTable, l_layerAFuncTable, l_layerBFuncTable, }; dStage_dt_c_decode(i_data, i_stage, l_layerFuncTable_p[dComIfG_play_c::getLayerNo(i_roomNo)], 3); } /* 8004313C-80043190 .text dStage_dt_c_stageLoader__FPvP11dStage_dt_c */ void dStage_dt_c_stageLoader(void* i_data, dStage_dt_c* i_stage) { static FuncTable l_funcTable[] = { {"MEMA", dStage_memaInfoInit}, {"MECO", dStage_mecoInfoInit}, {"MULT", dStage_multInfoInit}, {"PLYR", dStage_playerInit}, {"CAMR", dStage_cameraInit}, {"RCAM", dStage_cameraInit}, {"ACTR", dStage_actorInit}, {"TGOB", dStage_actorInit}, {"TRES", dStage_stageTresureInit}, {"RTBL", dStage_roomReadInit}, {"AROB", dStage_arrowInit}, {"RARO", dStage_arrowInit}, {"2Dma", dStage_mapInfoInit}, {"2DMA", dStage_mapInfoInit}, {"Pale", dStage_paletInfoInit}, {"Colo", dStage_pselectInfoInit}, {"Virt", dStage_vrboxInfoInit}, {"SCLS", dStage_sclsInfoInit}, {"TGSC", dStage_tgscInfoInit}, {"LGHT", dStage_plightInfoInit}, {"PPNT", dStage_ppntInfoInit}, {"PATH", dStage_pathInfoInit}, {"RPPN", dStage_rppnInfoInit}, {"RPAT", dStage_rpatInfoInit}, {"SOND", dStage_soundInfoInit}, {"SCOB", dStage_tgscInfoInit}, {"EVNT", dStage_eventInfoInit}, {"EnvR", dStage_envrInfoInit}, {"FILI", dStage_filiInfoInit}, {"DOOR", dStage_tgscInfoInit}, {"LGTV", dStage_lgtvInfoInit}, {"FLOR", dStage_floorInfoInit}, {"TGDR", dStage_stageDrtgInfoInit}, {"DMAP", dStage_dmapInfoInit}, }; dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); layerLoader(i_data, i_stage, -1); } /* 80043190-800431F4 .text dStage_dt_c_roomLoader__FPvP11dStage_dt_c */ void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* i_stage) { static FuncTable l_funcTable[] = { {"PLYR", dStage_playerInit}, {"RCAM", dStage_RoomCameraInit}, {"RARO", dStage_arrowInit}, {"RTBL", dStage_roomReadInit}, {"AROB", dStage_arrowInit}, {"2Dma", dStage_mapInfoInit}, {"2DMA", dStage_mapInfoInit}, {"Pale", dStage_paletInfoInit}, {"Colo", dStage_pselectInfoInit}, {"Virt", dStage_vrboxInfoInit}, {"SCLS", dStage_sclsInfoInit}, {"LGHT", dStage_plightInfoInit}, {"RPPN", dStage_rppnInfoInit}, {"RPAT", dStage_rpatInfoInit}, {"SOND", dStage_soundInfoInit}, {"EVNT", dStage_eventInfoInit}, {"EnvR", dStage_envrInfoInit}, {"FILI", dStage_filiInfoInit}, {"LGTV", dStage_lgtvInfoInit}, {"FLOR", dStage_floorInfoInit}, {"SHIP", dStage_shipInfoInit}, {"LBNK", dStage_lbnkInfoInit}, }; dStage_dt_c_offsetToPtr(i_data); i_stage->init(); dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); } /* 800431F4-8004324C .text dStage_dt_c_roomReLoader__FPvP11dStage_dt_ci */ void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* i_stage, int param_2) { static FuncTable l_funcTable[] = { {"ACTR", dStage_actorInit}, {"TGOB", dStage_actorInit}, {"TRES", dStage_roomTresureInit}, {"TGSC", dStage_tgscInfoInit}, {"SCOB", dStage_tgscInfoInit}, {"DOOR", dStage_tgscInfoInit}, {"TGDR", dStage_roomDrtgInfoInit}, }; dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); layerLoader(i_data, i_stage, param_2); } /* 8004324C-800432EC .text dStage_infoCreate__Fv */ void dStage_infoCreate() { void* stageRsrc = dComIfG_getStageRes("Stage", "stage.dzs"); JUT_ASSERT(DEMO_SELECT(3806, 3834), stageRsrc != NULL) dStage_dt_c_stageInitLoader(stageRsrc, &dComIfGp_getStage()); } /* 800432EC-80043464 .text dStage_Create__Fv */ void dStage_Create() { dKankyo_create(); void* stageRsrc = dComIfG_getStageRes("Stage", "stage.dzs"); JUT_ASSERT(DEMO_SELECT(3834, 3862), stageRsrc != NULL) dComIfGp_roomControl_init(); dStage_dt_c_stageLoader(stageRsrc, &dComIfGp_getStage()); if (dComIfGp_getStartStageRoomNo() >= 0) { int status = dStage_roomInit(dComIfGp_getStartStageRoomNo()); JUT_ASSERT(DEMO_SELECT(3845, 3873), status); } dMap_c::create(); *dStage_roomControl_c::getDemoArcName() = NULL; if (dComIfG_getStageRes("Stage", "vr_sky.bdl") != NULL) { fopAcM_Create(fpcNm_VRBOX_e, NULL, NULL); fopAcM_Create(fpcNm_VRBOX2_e, NULL, NULL); } dComIfGp_evmng_create(); } /* 80043464-80043514 .text dStage_Delete__Fv */ void dStage_Delete() { char* demoArcName = dStage_roomControl_c::getDemoArcName(); if (*demoArcName != 0) { dComIfG_deleteObjectRes(demoArcName); } dStage_roomControl_c::destroyMemoryBlock(); int stageNo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); dComIfGs_putSave(stageNo); dComIfG_deleteStageRes("Stage"); dMap_c::remove(); dComIfGp_evmng_remove(); } /* 80043514-80043604 .text dStage_RoomCheck__FP11cBgS_GndChk */ int dStage_RoomCheck(cBgS_GndChk* i_gndChk) { int roomReadId = dComIfG_Bgsp()->GetRoomId(*i_gndChk); if (roomReadId < 0) { return 0; } if (roomReadId != dComIfGp_roomControl_getStayNo()) { dComIfGp_roomControl_zoneCountCheck(roomReadId); } roomReadId = dComIfG_Bgsp()->GetGrpRoomInfId(*i_gndChk); if (roomReadId == 0xFF) { return 0; } roomRead_class* room = dComIfGp_getStageRoom(); if (room != NULL && room->num > roomReadId) { int timePass = dStage_roomRead_dt_c_GetTimePass(*room->m_entries[roomReadId]); dComIfGp_roomControl_setTimePass(timePass); roomRead_data_class* room_data = room->m_entries[roomReadId]; return dComIfGp_roomControl_loadRoom(room_data->num, room_data->m_rooms); } return 1; } /* 80043604-8004360C .text SetTimePass__20dStage_roomControl_cFi */ void dStage_roomControl_c::SetTimePass(int i_timepass) { m_time_pass = i_timepass; } /* 8004360C-80043900 .text dStage_changeSceneExitId__FR13cBgS_PolyInfofUlSc */ int dStage_changeSceneExitId(cBgS_PolyInfo& i_poly, f32 i_speed, u32 i_mode, s8 i_roomNo) { int exit_id = dComIfG_Bgsp()->GetExitId(i_poly); if (exit_id == 0x3E || exit_id == 0x3B) { fopAc_ac_c* actor_p = dComIfG_Bgsp()->GetActorPointer(i_poly); int arg0 = IkadaGetRoomNoArg0(actor_p); s8 roomNo = arg0; int arg1 = IkadaGetLinkIdArg1(actor_p); u8 point = arg1; if (exit_id == 0x3E) { dComIfGp_setNextStage("Obshop", point, roomNo, -1, i_speed, i_mode); } else if (exit_id == 0x3B) { dComIfGp_setNextStage("Abship", point, roomNo, -1, i_speed, i_mode); } dComIfGp_setIkadaShipBeforeRoomId(i_roomNo); dComIfGp_setIkadaShipId(IkadaGetIkadaIdArg2(actor_p)); dComIfGp_setIkadaShipBeforePos(actor_p->current.pos); return 1; } else if (exit_id == 0x3D) { JUT_ASSERT(DEMO_SELECT(4106, 4134), dComIfGp_getIkadaShipBeforeRoomId() >= 0 && dComIfGp_getIkadaShipBeforeRoomId() < 64); dComIfGp_setNextStage("sea", -2, dComIfGp_getIkadaShipBeforeRoomId(), -1, i_speed, i_mode); return 1; } else if (exit_id == 0x3C) { if (strcmp(dComIfGp_getStartStageName(), "Asoko") == 0) { if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0808)) { if (dComIfGs_isEventBit(dSv_event_flag_c::UNK_0520)) { dComIfGp_setNextStage("sea", 5, dIsleRoom_WindfallIsland_e, -1, i_speed, i_mode); } else { dComIfGp_setNextStage("MajyuE", 18, 0, -1, i_speed, i_mode); } } else { dComIfGp_setNextStage("A_umikz", 0, 0, -1, i_speed, i_mode); } } else { dComIfGp_setNextStage("Asoko", 0, 0, -1, i_speed, i_mode); } return 1; } return dStage_changeScene(exit_id, i_speed, i_mode, i_roomNo); } /* 80043900-80043AA8 .text dStage_changeScene__FifUlSc */ int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no) { stage_scls_info_dummy_class* scls; if (room_no == -1) { scls = dComIfGp_getStageSclsInfo(); } else { JUT_ASSERT(DEMO_SELECT(4164, 4192), 0 <= room_no && room_no < 64); scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->getSclsInfo(); } if (scls == NULL) { return 0; } JUT_ASSERT(DEMO_SELECT(4174, 4202), 0 <= i_exitId && i_exitId < scls->num); stage_scls_info_class* scls_info = &scls->m_entries[i_exitId]; s32 wipe = dStage_sclsInfo_getWipe(scls_info); dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, scls_info->mRoom, -1, speed, mode, TRUE, wipe == 15 ? 0 : wipe); return 1; } /* 80043AB0-80043B10 .text dStage_restartRoom__FUlUl */ void dStage_restartRoom(u32 roomParam, u32 mode) { dComIfGp_setNextStage(dComIfGp_getStartStageName(), -1, dComIfGs_getRestartRoomNo(), -1, 0.0f, mode, FALSE); dComIfGs_setRestartRoomParam(roomParam); } /* 80043B10-80043BD0 .text dStage_turnRestart__Fv */ void dStage_turnRestart() { s8 layerNo = dComIfGp_getStartStageLayer(); if (layerNo >= 0) layerNo ^= 1; dComIfGp_setNextStage(dComIfGp_getStartStageName(), -3, dComIfGs_getTurnRestartRoomNo(), layerNo, 0.0f, 0, FALSE, 6); s32 hour = dKy_getdaytime_hour(); f32 nextTime = 180.0f; if (hour >= 6 && hour < 18) nextTime = 0.0f; if (hour >= 6 && hour <= 23) { dComIfGs_setDate(dComIfGs_getDate() + 1); dKy_DayProc(); } dKy_set_nexttime(nextTime); } #if VERSION > VERSION_DEMO /* 80043BD0-80043C84 .text dStage_escapeRestart__Fv */ void dStage_escapeRestart() { daPy_lk_c* player_p = daPy_getPlayerLinkActorClass(); dComIfGs_setTurnRestart(player_p->current.pos, player_p->shape_angle.y, fopAcM_GetRoomNo(player_p), player_p->getDayNightParamData()); if (dComIfG_getTimerMode() == 3) { dComIfG_TimerDeleteRequest(); } dComIfGp_setNextStage(dComIfGp_getStartStageName(), -3, dComIfGs_getTurnRestartRoomNo(), -1, 0.0f, 0, FALSE, 9); } #endif /* 80043C84-80043CD0 .text dStage_checkRestart__Fv */ BOOL dStage_checkRestart() { if (dComIfGp_isEnableNextStage()) { int point = dComIfGp_getStartStagePoint(); if (point == -2 || point == -3) { return FALSE; } if (dComIfGs_getRestartRoomParam() != 0) { return TRUE; } } return FALSE; } dStage_roomStatus_c dStage_roomControl_c::mStatus[64]; JKRExpHeap* dStage_roomControl_c::mMemoryBlock[16]; dStage_darkStatus_c dStage_roomControl_c::mDarkStatus[8] = { // TODO: member names need to be documented {0x19, 0x06, 0x06, 0.8f, 0.8f, {0x08, 0x08, 0x02, 0x06}, 0.8f, 1.0f, 2.0f, 5.0f}, {0x32, 0x06, 0x06, 0.8f, 2.6f, {0x08, 0x08, 0x03, 0x09}, 0.8f, 2.6f, 4.0f, 11.0f}, {}, {}, {}, {}, {}, {}, }; fpc_ProcID dStage_roomControl_c::mProcID; s8 dStage_roomControl_c::mStayNo; s8 dStage_roomControl_c::mOldStayNo; u8 dStage_roomControl_c::mDarkRatio; char dStage_roomControl_c::mDemoArcName[8]; s8 dStage_roomControl_c::m_time_pass;