// // Generated By: dol2asm // Translation Unit: d/com/d_com_inf_game // #include "d/com/d_com_inf_game.h" #include "d/d_item.h" #include "d/kankyo/d_kankyo.h" #include "d/meter/d_meter2_info.h" #include "dol2asm.h" #include "dolphin/types.h" // // Types: // struct scene_class {}; struct dSmplMdl_draw_c { /* 80048CB4 */ dSmplMdl_draw_c(); /* 80048E0C */ void draw(); /* 80048EBC */ void entry(J3DModel*, int); /* 80048F70 */ void addModel(J3DModelData*, int, u8); /* 80049058 */ void removeModel(J3DModelData*, int); }; struct dComIfG_resLoader_c { /* 8002F314 */ dComIfG_resLoader_c(); /* 8002F328 */ ~dComIfG_resLoader_c(); /* 8002F3B4 */ void load(char const**, JKRHeap*); }; struct Z2SeqMgr { /* 802AF408 */ void bgmStop(u32, s32); }; struct Z2AudioMgr { static u8 mAudioMgrPtr[4 + 4 /* padding */]; }; // // Forward References: // extern "C" void ct__14dComIfG_play_cFv(); extern "C" void init__14dComIfG_play_cFv(); extern "C" void dComIfGp_checkItemGet__FUci(); extern "C" void itemInit__14dComIfG_play_cFv(); extern "C" void setItemBombNumCount__14dComIfG_play_cFUcs(); extern "C" void getItemBombNumCount__14dComIfG_play_cFUc(); extern "C" void clearItemBombNumCount__14dComIfG_play_cFUc(); extern "C" void setNowVibration__14dComIfG_play_cFUc(); extern "C" void getNowVibration__14dComIfG_play_cFv(); extern "C" void setStartStage__14dComIfG_play_cFP19dStage_startStage_c(); extern "C" void dComIfG_get_timelayer__FPi(); extern "C" void getLayerNo_common_common__14dComIfG_play_cFPCcii(); extern "C" void getLayerNo_common__14dComIfG_play_cFPCcii(); extern "C" void getLayerNo__14dComIfG_play_cFi(); extern "C" void createParticle__14dComIfG_play_cFv(); extern "C" void createSimpleModel__14dComIfG_play_cFv(); extern "C" void deleteSimpleModel__14dComIfG_play_cFv(); extern "C" void drawSimpleModel__14dComIfG_play_cFv(); extern "C" void addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc(); extern "C" void removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai(); extern "C" void entrySimpleModel__14dComIfG_play_cFP8J3DModeli(); extern "C" void setTimerNowTimeMs__14dComIfG_play_cFi(); extern "C" void getTimerNowTimeMs__14dComIfG_play_cFv(); extern "C" void setTimerLimitTimeMs__14dComIfG_play_cFi(); extern "C" void getTimerLimitTimeMs__14dComIfG_play_cFv(); extern "C" void setTimerMode__14dComIfG_play_cFi(); extern "C" void getTimerMode__14dComIfG_play_cFv(); extern "C" void setTimerType__14dComIfG_play_cFUc(); extern "C" void getTimerType__14dComIfG_play_cFv(); extern "C" void setTimerPtr__14dComIfG_play_cFP8dTimer_c(); extern "C" void getTimerPtr__14dComIfG_play_cFv(); extern "C" void ct__13dComIfG_inf_cFv(); extern "C" void dComIfG_changeOpeningScene__FP11scene_classs(); extern "C" void dComIfG_resetToOpening__FP11scene_class(); extern "C" static void phase_1__FPc(); extern "C" static void phase_2__FPc(); extern "C" static s32 phase_3__FPc(); extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCc(); extern "C" static void phase_01__FP12phaseParam_c(); extern "C" static void phase_02__FP12phaseParam_c(); extern "C" static bool phase_03__FP12phaseParam_c(); extern "C" void dComIfG_resLoad__FP30request_of_phase_process_classPCcP7JKRHeap(); extern "C" void dComIfG_resDelete__FP30request_of_phase_process_classPCc(); extern "C" void dComIfGp_getReverb__Fi(); extern "C" void dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj(); extern "C" void dComIfGp_getMapTrans__FiPfPfPs(); extern "C" void dComIfGp_getRoomCamera__Fi(); extern "C" void dComIfGp_getRoomArrow__Fi(); extern "C" void dComIfGp_setNextStage__FPCcsScScfUliScsii(); extern "C" void dComIfGp_setNextStage__FPCcsScSc(); extern "C" void dComIfGs_isStageTbox__Fii(); extern "C" void dComIfGs_onStageSwitch__Fii(); extern "C" void dComIfGs_offStageSwitch__Fii(); extern "C" void dComIfGs_isStageSwitch__Fii(); extern "C" void dComIfGs_onStageBossEnemy__Fi(); extern "C" void dComIfGs_isDungeonItemWarp__Fi(); extern "C" void dComIfGs_BossLife_public_Set__FSc(); extern "C" void dComIfGs_BossLife_public_Get__Fv(); extern "C" void dComIfGs_sense_type_change_Set__FSc(); extern "C" void dComIfGs_sense_type_change_Get__Fv(); extern "C" void dComIfGs_onZoneSwitch__Fii(); extern "C" void getZoneNo__20dStage_roomControl_cFi(); extern "C" void dComIfGs_offZoneSwitch__Fii(); extern "C" void dComIfGs_isZoneSwitch__Fii(); extern "C" void dComIfGs_onOneZoneSwitch__Fii(); extern "C" void dComIfGs_offOneZoneSwitch__Fii(); extern "C" void dComIfGs_isOneZoneSwitch__Fii(); extern "C" void dComIfGs_isZoneItem__Fii(); extern "C" void dComIfGs_isOneZoneItem__Fii(); extern "C" void dComIfGs_getMaxLifeGauge__Fv(); extern "C" void dComIfGs_setSelectItemIndex__FiUc(); extern "C" void dComIfGs_setMixItemIndex__FiUc(); extern "C" void dComIfGs_getSelectMixItemNoArrowIndex__Fi(); extern "C" void dComIfGs_getMixItemIndex__Fi(); extern "C" void dComIfGp_setSelectItem__Fi(int); extern "C" void dComIfGp_getSelectItem__Fi(); extern "C" void dComIfGp_mapShow__Fv(); extern "C" void dComIfGp_mapHide__Fv(); extern "C" void dComIfGp_checkMapShow__Fv(); extern "C" void dComIfGp_setHeapLockFlag__FUc(); extern "C" s32 dComIfGp_offHeapLockFlag__Fi(int); extern "C" static void dComIfGp_createSubExpHeap2D__Fv(); extern "C" static void dComIfGp_destroySubExpHeap2D__Fv(); extern "C" static int dComIfGp_checkEmptySubHeap2D__Fv(); extern "C" static int dComIfGp_searchUseSubHeap2D__Fi(int); extern "C" void dComIfGp_getSubHeap2D__Fi(); extern "C" void dComIfGs_checkGetInsectNum__Fv(); extern "C" static u8 dComIfGs_checkGetItem__FUc(u8); extern "C" s32 dComIfGs_getBottleMax__Fv(); extern "C" void dComIfGp_getSelectItemNum__Fi(); extern "C" void dComIfGp_getSelectItemMaxNum__Fi(); extern "C" void dComIfGp_setSelectItemNum__Fis(); extern "C" void dComIfGp_addSelectItemNum__Fis(); extern "C" void dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj(); extern "C" void dComIfGs_gameStart__Fv(); extern "C" void dComIfG_getTrigA__FUl(); extern "C" void dComIfGp_calcNowRegion__Fv(); extern "C" static void dComIfG_getNowCalcRegion__Fv(); extern "C" void dComIfGp_isLightDropMapVisible__Fv(); extern "C" void dComIfGp_getNowLevel__Fv(); extern "C" void dComIfGs_setSelectEquipClothes__FUc(); extern "C" void dComIfGs_setSelectEquipSword__FUc(); extern "C" void dComIfGs_setSelectEquipShield__FUc(); extern "C" void dComIfGs_setKeyNum__FiUc(); extern "C" static void dComIfGs_setWarpItemData__FiPCc4cXyzsScUcUc(); extern "C" void setWarpItemData__14dComIfG_play_cFPCc4cXyzsScUcUc(); extern "C" void dComIfGs_setWarpItemData__FPCc4cXyzsScUcUc(); extern "C" static void dComIfGs_setLastWarpMarkItemData__FPCc4cXyzsScUcUc(const char*, cXyz, s16, s8, u8, u8); extern "C" void dComIfGs_getWarpStageName__Fv(); extern "C" void dComIfGs_getWarpPlayerPos__Fv(); extern "C" void dComIfGs_getWarpPlayerAngleY__Fv(); extern "C" void dComIfGs_getWarpRoomNo__Fv(); extern "C" void dComIfGs_getWarpMarkFlag__Fv(); extern "C" void dComIfGs_setWarpMarkFlag__FUc(); extern "C" void __ct__19dComIfG_resLoader_cFv(); extern "C" void __dt__19dComIfG_resLoader_cFv(); extern "C" void load__19dComIfG_resLoader_cFPPCcP7JKRHeap(); extern "C" void dComIfG_getStageRes__FPCc(); extern "C" void dComIfG_getOldStageRes__FPCc(); extern "C" void dComIfG_getRoomArcName__Fi(); extern "C" void dComIfGp_ret_wp_set__FSc(); extern "C" void dComIfGp_world_dark_set__FUc(); extern "C" void dComIfGp_world_dark_get__Fv(); extern "C" void dComIfG_TimerStart__Fis(); extern "C" void dComIfG_TimerStop__Fi(); extern "C" void dComIfG_TimerReStart__Fi(); extern "C" void dComIfG_TimerEnd__Fii(); extern "C" void dComIfG_TimerDeleteCheck__Fi(); extern "C" void dComIfG_TimerDeleteRequest__Fi(); extern "C" void dComIfGs_Wolf_Change_Check__Fv(); extern "C" void dComIfGs_PolyDamageOff_Set__FSc(); extern "C" void dComIfGs_PolyDamageOff_Check__Fv(); extern "C" void dComIfGs_shake_kandelaar__Fv(); extern "C" void dComIfGs_shake_kandelaar_check__Fv(); extern "C" void dComIfGs_wolfeye_effect_check__Fv(); extern "C" void dComIfGs_Grass_hide_Set__FSc(); extern "C" void dComIfGp_TargetWarpPt_set__FUc(); extern "C" void dComIfGp_SelectWarpPt_set__FUc(); extern "C" void dComIfGp_TargetWarpPt_get__Fv(); extern "C" void dComIfGp_SelectWarpPt_get__Fv(); extern "C" void dComIfGp_TransportWarp_check__Fv(); extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv(); extern "C" void dComIfGs_onVisitedRoom__Fi(); extern "C" void dComIfGs_offVisitedRoom__Fi(); extern "C" void dComIfGs_isVisitedRoom__Fi(); extern "C" void dComIfGs_staffroll_next_go__Fv(); extern "C" void dComIfGs_staffroll_next_go_check__Fv(); extern "C" void __sinit_d_com_inf_game_cpp(); extern "C" void __dt__13dComIfG_inf_cFv(); extern "C" void __dt__14dComIfG_play_cFv(); extern "C" void __dt__11cBgS_ChkElmFv(); extern "C" void __dt__4dCcSFv(); extern "C" void __dt__12dCcMassS_ObjFv(); extern "C" void __dt__12dEvt_order_cFv(); extern "C" void __dt__11dEvDtBase_cFv(); extern "C" void __dt__14dDlst_window_cFv(); extern "C" void __dt__25dComIfG_camera_info_classFv(); extern "C" void __ct__13dComIfG_inf_cFv(); extern "C" void __ct__25dComIfG_camera_info_classFv(); extern "C" void __ct__14dDlst_window_cFv(); extern "C" void __dt__10dAttList_cFv(); extern "C" void __ct__10dAttList_cFv(); extern "C" void __dt__7cSAngleFv(); extern "C" void __dt__10dAttDraw_cFv(); extern "C" void __dt__13mDoExt_bckAnmFv(); extern "C" void __dt__13mDoExt_bpkAnmFv(); extern "C" void __dt__13mDoExt_brkAnmFv(); extern "C" void __dt__13mDoExt_btkAnmFv(); extern "C" void __ct__10dAttDraw_cFv(); extern "C" void __ct__13mDoExt_btkAnmFv(); extern "C" void __ct__13mDoExt_brkAnmFv(); extern "C" void __ct__13mDoExt_bpkAnmFv(); extern "C" void __ct__13mDoExt_bckAnmFv(); extern "C" void __dt__12dCcMassS_MngFv(); extern "C" void __dt__4cCcSFv(); extern "C" void __dt__4dBgSFv(); extern "C" void __dt__4cBgSFv(); extern "C" void __ct__11cBgS_ChkElmFv(); extern "C" void __ct__10dSv_zone_cFv(); extern "C" void __ct__13dSv_memory2_cFv(); extern "C" void __ct__12dSv_memory_cFv(); extern "C" void __dt__15cCcD_DivideAreaFv(); extern "C" void __dt__8cM3dGCylFv(); extern "C" void __dt__8cM3dGAabFv(); extern "C" void __dt__15cCcD_DivideInfoFv(); extern "C" extern char const* const d_com_d_com_inf_game__stringBase0; extern "C" extern u32 g_saftyWhiteColor; // // External References: // extern "C" void mDoAud_setSceneName__FPCcll(); extern "C" void mDoAud_resetProcess__Fv(); extern "C" void mDoExt_destroyExpHeap__FP10JKRExpHeap(); extern "C" void fopScnM_ChangeReq__FP11scene_classssUs(); extern "C" void fopScnM_ReRequest__FsUl(); extern "C" void set__18dStage_nextStage_cFPCcScsScScUc(); extern "C" void initZone__20dStage_roomControl_cFv(); extern "C" void getStatusRoomDt__20dStage_roomControl_cFi(); extern "C" u8 dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi(roomRead_class&, int); extern "C" void setSelectItemIndex__21dSv_player_status_a_cFiUc(); extern "C" void getSelectItemIndex__21dSv_player_status_a_cCFi(); extern "C" void setMixItemIndex__21dSv_player_status_a_cFiUc(); extern "C" void getMixItemIndex__21dSv_player_status_a_cCFi(); extern "C" void isDarkClearLV__21dSv_player_status_b_cCFi(); extern "C" void isTransformLV__21dSv_player_status_b_cCFi(); extern "C" void set__33dSv_player_field_last_stay_info_cFPCcRC4cXyzsScUc(); extern "C" void onRegionBit__33dSv_player_field_last_stay_info_cFi(); extern "C" void isRegionBit__33dSv_player_field_last_stay_info_cCFi(); extern "C" void setWarpItemData__27dSv_player_last_mark_info_cFPCcRC4cXyzsScUcUc(); extern "C" void getItem__17dSv_player_item_cCFib(); extern "C" void isFirstBit__21dSv_player_get_item_cCFUc(); extern "C" void setBombNum__24dSv_player_item_record_cFUcUc(); extern "C" void getBombNum__24dSv_player_item_record_cCFUc(); extern "C" void setBottleNum__24dSv_player_item_record_cFUcUc(); extern "C" void addBottleNum__24dSv_player_item_record_cFUcs(); extern "C" void getBottleNum__24dSv_player_item_record_cCFUc(); extern "C" void getBombNum__21dSv_player_item_max_cCFUc(); extern "C" void setCollect__20dSv_player_collect_cFiUc(); extern "C" void getLightDropNum__16dSv_light_drop_cCFUc(); extern "C" void isLightDropGetFlag__16dSv_light_drop_cCFUc(); extern "C" void getVibration__19dSv_player_config_cFv(); extern "C" void isTbox__12dSv_memBit_cCFi(); extern "C" void onSwitch__12dSv_memBit_cFi(); extern "C" void offSwitch__12dSv_memBit_cFi(); extern "C" void isSwitch__12dSv_memBit_cCFi(); extern "C" void onDungeonItem__12dSv_memBit_cFi(); extern "C" void isDungeonItem__12dSv_memBit_cCFi(); extern "C" void onEventBit__11dSv_event_cFUs(); extern "C" void offEventBit__11dSv_event_cFUs(); extern "C" void isEventBit__11dSv_event_cCFUs(); extern "C" void init__12dSv_memory_cFv(); extern "C" void init__13dSv_memory2_cFv(); extern "C" void onVisitedRoom__13dSv_memory2_cFi(); extern "C" void offVisitedRoom__13dSv_memory2_cFi(); extern "C" void isVisitedRoom__13dSv_memory2_cFi(); extern "C" void onSwitch__13dSv_zoneBit_cFi(); extern "C" void offSwitch__13dSv_zoneBit_cFi(); extern "C" void isSwitch__13dSv_zoneBit_cCFi(); extern "C" void onOneSwitch__13dSv_zoneBit_cFi(); extern "C" void offOneSwitch__13dSv_zoneBit_cFi(); extern "C" void isOneSwitch__13dSv_zoneBit_cCFi(); extern "C" void isItem__13dSv_zoneBit_cCFi(); extern "C" void isOneItem__13dSv_zoneBit_cCFi(); extern "C" void getSave2__10dSv_save_cFi(); extern "C" void onSwitch__10dSv_info_cFii(); extern "C" void offSwitch__10dSv_info_cFii(); extern "C" void isSwitch__10dSv_info_cCFii(); extern "C" void __ct__11dRes_info_cFv(); extern "C" void __dt__11dRes_info_cFv(); extern "C" void __dt__14dRes_control_cFv(); extern "C" void setRes__14dRes_control_cFPCcP11dRes_info_ciPCcUcP7JKRHeap(); extern "C" void syncRes__14dRes_control_cFPCcP11dRes_info_ci(); extern "C" void deleteRes__14dRes_control_cFPCcP11dRes_info_ci(); extern "C" void getRes__14dRes_control_cFPCcPCcP11dRes_info_ci(); extern "C" void getMapPlayerPos__10dMapInfo_nFv(); extern "C" void __ct__14dEvt_control_cFv(); extern "C" void __ct__16dEvent_manager_cFv(); extern "C" void __ct__15dSmplMdl_draw_cFv(); extern "C" void draw__15dSmplMdl_draw_cFv(); extern "C" void entry__15dSmplMdl_draw_cFP8J3DModeli(); extern "C" void addModel__15dSmplMdl_draw_cFP12J3DModelDataiUc(); extern "C" void removeModel__15dSmplMdl_draw_cFP12J3DModelDatai(); extern "C" void __ct__13dPa_control_cFv(); extern "C" void setReal__21dDlst_shadowControl_cFUlScP8J3DModelP4cXyzffP12dKy_tevstr_c(); extern "C" void setSimple__21dDlst_shadowControl_cFP4cXyzffP4cXyzsfP9_GXTexObj(); extern "C" void __ct__12dDlst_list_cFv(); extern "C" void __dt__12dDlst_list_cFv(); extern "C" void __dt__12dAttention_cFv(); extern "C" void Init__11cBgS_ChkElmFv(); extern "C" void GetTriPla__4cBgSCFRC13cBgS_PolyInfoP8cM3dGPla(); extern "C" void __ct__12dCcMassS_MngFv(); extern "C" int checkItemGet__FUci(u8, int); extern "C" void setLastSceneMode__9daAlink_cFPUl(); extern "C" int dKy_daynight_check__Fv(); extern "C" void dKy_darkworld_stage_check__FPCci(); extern "C" void dMenuFmap_getStartStageName__FPv(); extern "C" void init__13dMeter2Info_cFv(); extern "C" void setSaveStageName__13dMeter2Info_cFPCc(); extern "C" void deleteCheck__8dTimer_cFv(); extern "C" void start__8dTimer_cFi(); extern "C" void start__8dTimer_cFis(); extern "C" void stop__8dTimer_cFUc(); extern "C" void restart__8dTimer_cFUc(); extern "C" void end__8dTimer_cFi(); extern "C" void deleteRequest__8dTimer_cFv(); extern "C" void __ct__4cCcSFv(); extern "C" void cPhs_Handler__FP30request_of_phase_process_classPPFPv_iPv(); extern "C" void ChkSetInfo__13cBgS_PolyInfoCFv(); extern "C" void __dt__8cM3dGCpsFv(); extern "C" void bgmStop__8Z2SeqMgrFUll(); extern "C" void getTotalFreeSize__7JKRHeapFv(); extern "C" void* __nw__FUl(); extern "C" void __dl__FPv(); extern "C" void create__10JKRExpHeapFUlP7JKRHeapb(); extern "C" void init__12J3DFrameCtrlFs(); extern "C" void __register_global_object(); extern "C" void __destroy_arr(); extern "C" void __construct_array(); extern "C" void __cvt_fp2unsigned(); extern "C" void _savegpr_21(); extern "C" void _savegpr_25(); extern "C" void _savegpr_26(); extern "C" void _savegpr_27(); extern "C" void _savegpr_28(); extern "C" void _savegpr_29(); extern "C" void _restgpr_21(); extern "C" void _restgpr_25(); extern "C" void _restgpr_26(); extern "C" void _restgpr_27(); extern "C" void _restgpr_28(); extern "C" void _restgpr_29(); extern "C" extern void* __vt__12J3DFrameCtrl[3]; extern "C" extern void* __vt__8cM3dGPla[3]; extern "C" extern void* __vt__16dStage_stageDt_c[93]; extern "C" extern void* __vt__11dStage_dt_c[93]; extern "C" u8 saveBitLabels__16dSv_event_flag_c[1644 + 4 /* padding */]; extern "C" extern void* __vt__19dAttDraw_CallBack_c[3]; extern "C" extern void* __vt__11dAttParam_c[3 + 1 /* padding */]; extern "C" extern void* __vt__4dBgS[5]; extern "C" extern void* __vt__4cBgS[5]; extern "C" extern void* __vt__11cBgS_ChkElm[4]; extern "C" extern void* __vt__4dCcS[13]; extern "C" extern void* __vt__12cCcD_CylAttr[25]; extern "C" extern void* __vt__12cCcD_CpsAttr[25]; extern "C" extern void* __vt__14cCcD_ShapeAttr[22]; extern "C" extern void* __vt__4cCcS[12]; extern "C" u8 m_cpadInfo__8mDoCPd_c[256]; extern "C" u8 mStatus__20dStage_roomControl_c[65792]; extern "C" extern u8 g_env_light[4880]; extern "C" u8 mFader__13mDoGph_gInf_c[4]; extern "C" u8 mResetData__6mDoRst[4 + 4 /* padding */]; extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */]; // // Declarations: // inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { return param_0->field_0x09 >> 1 & 0x1f; } inline BOOL dComIfGs_isEventBit(u16 id) { return g_dComIfG_gameInfo.info.getEvent().isEventBit(id); } inline int dComIfGs_isItemFirstBit(u8 i_no) { return g_dComIfG_gameInfo.info.getPlayer().getGetItem().isFirstBit(i_no); } void dComIfG_play_c::ct() { mWindowNum = 0; mParticle = NULL; mLayerOld = 0; memset(mLastPlayStageName, 0, 8); init(); } static __d_timer_info_c dComIfG_mTimerInfo; dComIfG_inf_c g_dComIfG_gameInfo; void dComIfG_play_c::init() { for (int i = 0; i < 1; i++) { mPlayer[i] = NULL; mPlayerCameraID[i] = -1; } mCameraInfo[0].mCamera = NULL; for (int i = 0; i < 2; i++) { mPlayerPtr[i] = NULL; } if (mGameoverStatus == 2) { dComIfGp_roomControl_initZone(); } mGameoverStatus = 0; } void dComIfGp_checkItemGet(u8 param_0, int param_1) { checkItemGet(param_0, param_1); } void dComIfG_play_c::itemInit() { dMeter2Info_Initialize(); JKRExpHeap* heap = mExpHeap2D; memset(&mMsgObjectClass, 0, 300); mExpHeap2D = heap; mOxygen = 600; mNowOxygen = 600; mMaxOxygen = 600; if (dComIfGs_checkGetItem(HAWK_EYE)) { field_0x4f4b = 0; } else { field_0x4f4b = 21; } field_0x4f4c = 7; mNowVibration = dComIfGs_getOptVibration(); } void dComIfG_play_c::setItemBombNumCount(u8 i_item, s16 pCount) { mItemBombNumCount[i_item] += pCount; } s16 dComIfG_play_c::getItemBombNumCount(u8 i_item) { return mItemBombNumCount[i_item]; } void dComIfG_play_c::clearItemBombNumCount(u8 i_item) { mItemBombNumCount[i_item] = 0; } void dComIfG_play_c::setNowVibration(u8 pStatus) { mNowVibration = pStatus; } u32 dComIfG_play_c::getNowVibration() { return mNowVibration; } void dComIfG_play_c::setStartStage(dStage_startStage_c* pStartStage) { mLayerOld = mStartStage.getLayer(); mStartStage = *pStartStage; } /* 8002B3F4-8002B434 025D34 0040+00 1/1 0/0 0/0 .text dComIfG_get_timelayer__FPi */ void dComIfG_get_timelayer(int* pLayer) { if (dKy_daynight_check__Fv()) { *pLayer += 1; } } /* ############################################################################################## */ /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80378F38 = "D_MN11"; SECTION_DEAD static char const* const stringBase_80378F3F = "F_SP114"; SECTION_DEAD static char const* const stringBase_80378F47 = "F_SP108"; SECTION_DEAD static char const* const stringBase_80378F4F = "R_SP108"; SECTION_DEAD static char const* const stringBase_80378F57 = "F_SP109"; SECTION_DEAD static char const* const stringBase_80378F5F = "F_SP111"; SECTION_DEAD static char const* const stringBase_80378F67 = "R_SP109"; SECTION_DEAD static char const* const stringBase_80378F6F = "R_SP209"; SECTION_DEAD static char const* const stringBase_80378F77 = "F_SP110"; SECTION_DEAD static char const* const stringBase_80378F7F = "R_SP110"; SECTION_DEAD static char const* const stringBase_80378F87 = "F_SP115"; SECTION_DEAD static char const* const stringBase_80378F8F = "F_SP116"; SECTION_DEAD static char const* const stringBase_80378F97 = "R_SP116"; SECTION_DEAD static char const* const stringBase_80378F9F = "R_SP115"; SECTION_DEAD static char const* const stringBase_80378FA7 = "F_SP113"; SECTION_DEAD static char const* const stringBase_80378FAF = "F_SP126"; SECTION_DEAD static char const* const stringBase_80378FB7 = "F_SP124"; SECTION_DEAD static char const* const stringBase_80378FBF = "F_SP112"; SECTION_DEAD static char const* const stringBase_80378FC7 = "F_SP103"; SECTION_DEAD static char const* const stringBase_80378FCF = "R_SP01"; SECTION_DEAD static char const* const stringBase_80378FD6 = "F_SP104"; SECTION_DEAD static char const* const stringBase_80378FDE = "F_SP00"; SECTION_DEAD static char const* const stringBase_80378FE5 = "F_SP121"; SECTION_DEAD static char const* const stringBase_80378FED = "F_SP122"; SECTION_DEAD static char const* const stringBase_80378FF5 = "F_SP128"; SECTION_DEAD static char const* const stringBase_80378FFD = "R_SP160"; SECTION_DEAD static char const* const stringBase_80379005 = "F_SP117"; SECTION_DEAD static char const* const stringBase_8037900D = "F_SP118"; SECTION_DEAD static char const* const stringBase_80379015 = "D_SB10"; SECTION_DEAD static char const* const stringBase_8037901C = "R_SP107"; SECTION_DEAD static char const* const stringBase_80379024 = "D_MN09"; SECTION_DEAD static char const* const stringBase_8037902B = "F_SP127"; SECTION_DEAD static char const* const stringBase_80379033 = "R_SP127"; SECTION_DEAD static char const* const stringBase_8037903B = "D_MN08A"; #pragma pop /* 8002B434-8002C950 025D74 151C+00 1/1 1/1 0/0 .text * getLayerNo_common_common__14dComIfG_play_cFPCcii */ // only issue should be regalloc #ifdef NONMATCHING int dComIfG_play_c::getLayerNo_common_common(const char* stageName, int roomId, int layer) { if (layer < 0) { layer = -1; // Stage is in a Twilight state if (dKy_darkworld_stage_check(stageName, roomId) == 1) { layer = 14; } if (layer < 13) { // Stage is Snowpeak Ruins or Snowpeak if (!strcmp(stageName, "D_MN11") || !strcmp(stageName, "F_SP114")) { // Cleared Snowpeak Ruins if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266])) { layer = 3; } // Talked with Yeta after giving Cheese else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[163])) { layer = 2; } // Talked with Yeta after giving Pumpkin else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[162])) { layer = 1; } } // Stage is Faron Woods else if (!strcmp(stageName, "F_SP108")) { // Cleared Snowpeak Ruins if (dComIfGs_isEventBit(0x2008)) { layer = 5; } // Completed Midna's Desperate Hour else if (dComIfGs_isEventBit(0x1E08)) { layer = 3; } // Cleared Forest Temple else if (dComIfGs_isEventBit(0x0602)) { layer = 2; } // Haven't finished Ordon Day 2 else if (!dComIfGs_isEventBit(0x4510)) { layer = 1; } } // Stage is Faron Woods Interiors else if (!strcmp(stageName, "R_SP108")) { // Cleared Forest Temple if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[55])) { layer = 2; } // Haven't finished Ordon Day 2 else if (!dComIfGs_isEventBit(0x4510)) { layer = 1; } } // Stage is Kakariko Village or Kakariko Graveyard else if (!strcmp(stageName, "F_SP109") || !strcmp(stageName, "F_SP111")) { // Obtained Zora's Armor if (dComIfGs_isEventBit(0x0804)) { layer = 2; dComIfG_get_timelayer(&layer); } // Finished Telma Wagon Escort else if (dComIfGs_isEventBit(0x0810)) { layer = 4; } // Watched cutscene after leaving Goron Mines else if (dComIfGs_isEventBit(0x1320)) { layer = 2; dComIfG_get_timelayer(&layer); } // Cleared Goron Mines else if (dComIfGs_isEventBit(0x0701)) { layer = 12; } // Defeated King Bulblin 1 else if (dComIfGs_isEventBit(0x0A08)) { layer = 2; dComIfG_get_timelayer(&layer); } // King Bulblin 1 trigger activated else if (dComIfGs_isEventBit(0x0608)) { layer = 1; } } // Stage is Kakariko Village Interiors or Graveyard Interiors else if (!strcmp(stageName, "R_SP109") || !strcmp(stageName, "R_SP209")) { // Stage is Kakariko Interiors and room is Barnes shop and Cleared Lakebed Temple if (!strcmp(stageName, "R_SP109") && roomId == 1 && dComIfGs_isEventBit(0x0904)) { layer = 4; dComIfG_get_timelayer(&layer); } else { // Defeated King Bulblin 1 if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[85])) { layer = 2; dComIfG_get_timelayer(&layer); } // King Bulblin 1 trigger activated else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[53])) { layer = 1; } } } // Stage is Death Mountain else if (!strcmp(stageName, "F_SP110")) { // Cleared Goron Mines if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[64])) { layer = 2; } } // Stage is Death Mountain Interiors else if (!strcmp(stageName, "R_SP110")) { // Returned Wood Statue to Ilia if (dComIfGs_isEventBit(0x2320)) { layer = 3; } // Cleared Temple of Time else if (dComIfGs_isEventBit(0x2004)) { layer = 4; } // Obtained Master Sword else if (dComIfGs_isEventBit(0x2020)) { layer = 2; } // Cleared Goron Mines else if (dComIfGs_isEventBit(0x0701)) { layer = 1; } } // Stage is Lake Hylia, Castle Town, Telma's Bar, or R_SP115 (removed) else if (!strcmp(stageName, "F_SP115") || !strcmp(stageName, "F_SP116") || (!strcmp(stageName, "R_SP116") && roomId == 5) || !strcmp(stageName, "R_SP115")) { // Stage is Lake Hylia and room is Lake if (!strcmp(stageName, "F_SP115") && roomId == 0) { // Repaired Sky Cannon if (dComIfGs_isEventBit(0x3B08)) { layer = 3; } // Warped Sky Cannon to Lake Hylia else if (dComIfGs_isEventBit(0x3120)) { layer = 1; } // Cleared Lakebed Temple else if (dComIfGs_isEventBit(0x0904)) { layer = 2; } } // Stage is Telma's Bar and room is Bar and Obtained Master Sword else if (!strcmp(stageName, "R_SP116") && roomId == 5 && dComIfGs_isEventBit(0x2020)) { layer = 4; } // Completed Midna's Desperate Hour and Stage is Castle Town else if (dComIfGs_isEventBit(0x1E08) && !strcmp(stageName, "F_SP116")) { // Room is not East, South, or North Castle Town if (roomId != 4 && roomId != 3 && roomId != 1) { layer = 0; } else { layer = 1; } } else { // Cleared Lakebed Temple if (dComIfGs_isEventBit(0x0904)) { // Stage is Lake Hylia and room is Fountain and haven't started Midna's // Desperate Hour if ((!strcmp(stageName, "F_SP115") && roomId == 1) && !dComIfGs_isEventBit(0x0C01)) { layer = 9; } else { layer = 2; } } else { // Stage is Castle Town and room is South Castle Town and Finished Telma // Wagon Escort if ((!strcmp(stageName, "F_SP116") && roomId == 3) && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[68])) { layer = 1; } } } } // Stage is Zora's Domain else if (!strcmp(stageName, "F_SP113")) { // Cleared Snowpeak Ruins if (dComIfGs_isEventBit(0x2008)) { layer = 2; } } // Stage is Upper Zora's River else if (!strcmp(stageName, "F_SP126")) { // Unlocked Iza's River Ride (1) if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[95])) { layer = 1; } } // Stage is Gerudo Desert and room is Desert else if (!strcmp(stageName, "F_SP124") && roomId == 0) { layer = 8; // Used Sky Cannon to go to Desert if (dComIfGs_isEventBit(0x4008)) { layer = 0; } } // Stage is Zora's River else if (!strcmp(stageName, "F_SP112")) { // Unlocked Iza's River Ride (1) if (dComIfGs_isEventBit(0x0B01)) { layer = 1; } // Started Iza's River Ride (1) else if (dComIfGs_isEventBit(0x0902)) { layer = 2; } } // Stage is Ordon Village else if (!strcmp(stageName, "F_SP103")) { // Room is Main Village if (roomId == 0) { // Tamed Epona if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[56])) { layer = 4; dComIfG_get_timelayer(&layer); } // Cleared Faron Twilight else if (dComIfGs_isDarkClearLV(0)) { layer = 2; dComIfG_get_timelayer(&layer); } // Escaped Hyrule Castle Sewers (1st Time) else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { layer = 1; } // Finished Ordon Day 2 else if (dComIfGs_isEventBit(0x4510)) { layer = 7; } // Finished Ordon Day 1 else if (dComIfGs_isEventBit(0x4A40)) { layer = 0; } else { layer = 6; } } // Room is Outside Link's House else if (roomId == 1) { // Cleared Faron Twilight if (dComIfGs_isDarkClearLV(0)) { layer = 2; } // Escaped Hyrule Castle Sewers (1st Time) else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { layer = 1; } // Finished Ordon Day 2 else if (dComIfGs_isEventBit(0x4510)) { layer = 0; } // Finished Ordon Day 1 else if (dComIfGs_isEventBit(0x4A40)) { layer = 4; } else { layer = 3; } } } // Stage is Ordon Village Interiors else if (!strcmp(stageName, "R_SP01")) { // Room is Sera's Shop if (roomId == 1) { // Cleared Faron Twilight if (dComIfGs_isDarkClearLV(0)) { layer = 2; } } // Room is Shield house else if (roomId == 2) { // Watched cutscene after defeating King Bulblin 1 if (dComIfGs_isEventBit(0x0780)) { layer = 3; } // Cleared Faron Twilight else if (dComIfGs_isDarkClearLV(0)) { layer = 2; } // Escaped Hyrule Castle Sewers (1st Time) else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { layer = 1; } } // Room is Rusl and Uli's house else if (roomId == 5) { // Tamed Epona if (dComIfGs_isEventBit(0x0601)) { layer = 4; } // Cleared Faron Twilight else if (dComIfGs_isDarkClearLV(0)) { layer = 2; } } } // Stage is Ordon Spring else if (!strcmp(stageName, "F_SP104")) { // Room is Ordon Spring if (roomId == 1) { // Cleared Faron Twilight if (dComIfGs_isDarkClearLV(0)) { layer = 2; } // Escaped Hyrule Castle Sewers (1st Time) else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { layer = 4; } // Finished Ordon Day 2 else if (dComIfGs_isEventBit(0x4510)) { layer = 0; } // Finished Ordon Day 1 else if (dComIfGs_isEventBit(0x4A20)) { layer = 3; } else { layer = 1; } } // Cleared Faron Twilight else if (dComIfGs_isDarkClearLV(0)) { layer = 2; } // Escaped Hyrule Castle Sewers (1st Time) else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { layer = 4; } } // Stage is Ordon Ranch else if (!strcmp(stageName, "F_SP00")) { // Cleared Faron Twilight if (dComIfGs_isDarkClearLV(0)) { layer = 2; dComIfG_get_timelayer(&layer); } // Escaped Hyrule Castle Sewers (1st Time) else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[47])) { layer = 1; } // Watched cutscene after herding goats on Ordon Day 3 else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[169])) { layer = 10; } // Finished Ordon Day 2 else if (dComIfGs_isEventBit(0x4510)) { layer = 9; } // Finished Ordon Day 1 else if (dComIfGs_isEventBit(0x4A40)) { layer = 11; } else { layer = 12; } } // Stage is Hyrule Field else if (!strcmp(stageName, "F_SP121")) { // Completed Midna's Desperate Hour if (dComIfGs_isEventBit(0x1E08)) { layer = 6; } // Started Midna's Desperate Hour else if (dComIfGs_isEventBit(0x0C01)) { layer = 4; } // Finished Telma Wagon Escort else if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[68])) { layer = 0; } else if (dComIfGs_isTmpBit(0x0601)) { if (dComIfGs_isTmpBit(0x0602)) { layer = 2; } else { layer = 3; } } } // Stage is Outside Castle Town else if (!strcmp(stageName, "F_SP122")) { // Room is Outside Castle Town - West if (roomId == 8) { // Completed Midna's Desperate Hour if (dComIfGs_isEventBit(0x1E08)) { layer = 6; } // Started Midna's Desperate Hour else if (dComIfGs_isEventBit(0x0C01)) { layer = 4; } } // Room is Outside Castle Town - South else if (roomId == 16) { // Obtained Wood Statue if (dComIfGs_isEventBit(0x2204)) { layer = 6; } // Talked to Louise after getting Medicine Scent else if (dComIfGs_isEventBit(0x2102)) { layer = 1; } // Completed Midna's Desperate Hour else if (dComIfGs_isEventBit(0x1E08)) { layer = 6; } // Started Midna's Desperate Hour else if (dComIfGs_isEventBit(0x0C01)) { layer = 4; } } // Room is Outside Castle Town - East else if (roomId == 17) { // Completed Midna's Desperate Hour if (dComIfGs_isEventBit(0x1E08)) { layer = 0; } // Started Midna's Desperate Hour else if (dComIfGs_isEventBit(0x0C01)) { layer = 4; } } } // Stage is Hidden Village else if (!strcmp(stageName, "F_SP128")) { if (dComIfGs_isEventBit(0x2320)) { layer = 1; } } // Stage is Castle Town Interiors else if (!strcmp(stageName, "R_SP160")) { // Room is Jovani's house if (roomId == 5) { // Completed Midna's Desperate Hour if (dComIfGs_isEventBit(0x1E08)) { layer = 0; } else { layer = 1; } } // Fundraised Malo Mart Castle Town branch else if (dComIfGs_isEventBit(0x2210)) { layer = 1; } } // Stage is Sacred Grove else if (!strcmp(stageName, "F_SP117")) { // Cleared Snowpeak Ruins if (dComIfGs_isEventBit(0x2008)) { layer = 2; } } // Stage is Bulblin Camp else if (!strcmp(stageName, "F_SP118")) { // Fixed the Mirror of Twilight if (dComIfGs_isEventBit(0x2B08)) { layer = 3; } // Cleared Arbiter's Grounds else if (dComIfGs_isEventBit(0x2010)) { layer = 2; } // Escaped the burning tent else if (dComIfGs_isEventBit(0x0B40)) { layer = 1; } } // Stage is Faron Woods Cave else if (!strcmp(stageName, "D_SB10")) { // Finished Ordon Day 2 if (dComIfGs_isEventBit(0x4510)) { layer = 1; } } // Stage is Hyrule Castle Sewers else if (!strcmp(stageName, "R_SP107")) { if (dComIfGs_isTransformLV(3)) { layer = 13; } } // Stage is Hyrule Castle else if (!strcmp(stageName, "D_MN09")) { // Room is not Entrance, Outside Left Wing, or Outside Right Wing if (roomId != 11 && roomId != 13 && roomId != 14) { layer = 1; } } // Stage is Fishing Pond or Hena's Hut else if (!strcmp(stageName, "F_SP127") || !strcmp(stageName, "R_SP127")) { switch (g_env_light[0x12fe]) { case 1: layer = 0; break; case 2: layer = 1; break; case 3: layer = 2; break; case 4: layer = 3; break; } } } } if (layer == 14) { int tmp = layer; // Warped meteor to Zora's Domain if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[65])) { // Stage is Zora's River, Zora's Domain, Lake Hylia, Castle Town, Telma's Bar, R_SP115, // Hyrule Field, Upper Zora's River, or Outside Castle Town if (!strcmp(stageName, "F_SP112") || !strcmp(stageName, "F_SP113") || !strcmp(stageName, "F_SP115") || !strcmp(stageName, "F_SP116") || (!strcmp(stageName, "R_SP116") && roomId == 5) || !strcmp(stageName, "R_SP115") || !strcmp(stageName, "F_SP121") || !strcmp(stageName, "F_SP126") || !strcmp(stageName, "F_SP122")) { // Stage is Hyrule Field if (!strcmp(stageName, "F_SP121")) { if (tmp >= 9 && tmp <= 14) { layer = 13; } } else { layer = 13; } } } // Stage is Hyrule Castle Sewers and room is Prison Cell if (!strcmp(stageName, "R_SP107") && roomId == 0) { // Haven't been to Hyrule Castle Sewers if (!dComIfGs_isEventBit(0x4D08)) { layer = 11; } } // Stage and room is Zant Throne Room else if (!strcmp(stageName, "D_MN08A") && roomId == 10) { // Defeated Zant if (dComIfGs_isEventBit(0x5410)) { layer = 1; } else { layer = 0; } } } return layer; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int dComIfG_play_c::getLayerNo_common_common(char const* param_0, int param_1, int param_2) { nofralloc #include "asm/d/com/d_com_inf_game/getLayerNo_common_common__14dComIfG_play_cFPCcii.s" } #pragma pop #endif /* 8002C950-8002C97C 027290 002C+00 1/1 3/3 0/0 .text getLayerNo_common__14dComIfG_play_cFPCcii */ int dComIfG_play_c::getLayerNo_common(char const* i_stageName, int i_roomID, int i_layerOverride) { int layer = getLayerNo_common_common(i_stageName, i_roomID, i_layerOverride); if (layer < 0) { layer = 0; } return layer; } /* 8002C97C-8002C9D8 0272BC 005C+00 1/1 22/22 68/68 .text getLayerNo__14dComIfG_play_cFi */ #ifdef NONMATCHING int dComIfG_play_c::getLayerNo(int param_0) { int roomNo = dComIfGp_roomControl_getStayNo(); if (roomNo <= -1) { roomNo = dComIfGp_getStartStageRoomNo(); } int layer = dComIfGp_getStartStageLayer(); const char* stage = dComIfGp_getStartStageName(); return getLayerNo_common(stage, roomNo, layer); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm int dComIfG_play_c::getLayerNo(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/getLayerNo__14dComIfG_play_cFi.s" } #pragma pop #endif /* 8002C9D8-8002CA1C 027318 0044+00 0/0 1/1 0/0 .text createParticle__14dComIfG_play_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_play_c::createParticle() { nofralloc #include "asm/d/com/d_com_inf_game/createParticle__14dComIfG_play_cFv.s" } #pragma pop /* 8002CA1C-8002CA70 02735C 0054+00 0/0 1/1 0/0 .text createSimpleModel__14dComIfG_play_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 dComIfG_play_c::createSimpleModel() { nofralloc #include "asm/d/com/d_com_inf_game/createSimpleModel__14dComIfG_play_cFv.s" } #pragma pop /* 8002CA70-8002CAC4 0273B0 0054+00 0/0 1/1 0/0 .text deleteSimpleModel__14dComIfG_play_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_play_c::deleteSimpleModel() { nofralloc #include "asm/d/com/d_com_inf_game/deleteSimpleModel__14dComIfG_play_cFv.s" } #pragma pop /* 8002CAC4-8002CAF0 027404 002C+00 0/0 1/1 0/0 .text drawSimpleModel__14dComIfG_play_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_play_c::drawSimpleModel() { nofralloc #include "asm/d/com/d_com_inf_game/drawSimpleModel__14dComIfG_play_cFv.s" } #pragma pop /* 8002CAF0-8002CB30 027430 0040+00 0/0 0/0 16/16 .text * addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 dComIfG_play_c::addSimpleModel(J3DModelData* param_0, int param_1, u8 param_2) { nofralloc #include "asm/d/com/d_com_inf_game/addSimpleModel__14dComIfG_play_cFP12J3DModelDataiUc.s" } #pragma pop /* 8002CB30-8002CB68 027470 0038+00 0/0 0/0 16/16 .text * removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 dComIfG_play_c::removeSimpleModel(J3DModelData* param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/removeSimpleModel__14dComIfG_play_cFP12J3DModelDatai.s" } #pragma pop /* 8002CB68-8002CB94 0274A8 002C+00 0/0 0/0 16/16 .text * entrySimpleModel__14dComIfG_play_cFP8J3DModeli */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u32 dComIfG_play_c::entrySimpleModel(J3DModel* param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/entrySimpleModel__14dComIfG_play_cFP8J3DModeli.s" } #pragma pop void dComIfG_play_c::setTimerNowTimeMs(int time) { mTimerInfo.mTimerNowTimeMs = time; } int dComIfG_play_c::getTimerNowTimeMs() { return mTimerInfo.mTimerNowTimeMs; } void dComIfG_play_c::setTimerLimitTimeMs(int time) { mTimerInfo.mTimerLimitTimeMs = time; } int dComIfG_play_c::getTimerLimitTimeMs() { return mTimerInfo.mTimerLimitTimeMs; } void dComIfG_play_c::setTimerMode(int mode) { mTimerInfo.mTimerMode = mode; } int dComIfG_play_c::getTimerMode() { return mTimerInfo.mTimerMode; } void dComIfG_play_c::setTimerType(u8 type) { mTimerInfo.mTimerType = type; } u8 dComIfG_play_c::getTimerType() { return mTimerInfo.mTimerType; } /* 8002CBD4-8002CBDC -00001 0008+00 0/0 0/0 0/0 .text setTimerPtr__14dComIfG_play_cFP8dTimer_c */ void dComIfG_play_c::setTimerPtr(dTimer_c* pTimerPtr) { mTimerInfo.mTimerPtr = pTimerPtr; } /* 8002CBDC-8002CBE4 02751C 0008+00 6/6 7/7 15/15 .text getTimerPtr__14dComIfG_play_cFv */ dTimer_c* dComIfG_play_c::getTimerPtr() { return mTimerInfo.mTimerPtr; } void dComIfG_inf_c::ct() { mFadeBrightness = 255; play.ct(); mWorldDark = 0; field_0x1ddfa = -1; field_0x1ddfb = 0; field_0x1de00 = 0; field_0x1de04 = 0; field_0x1de08 = 0; field_0x1ddfc = 0; field_0x1de09 = 0xFF; field_0x1de0a = 0xFF; } /* ############################################################################################## */ /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80379043 = "F_SP102"; #pragma pop /* 80450600-80450604 000080 0004+00 0/0 18/18 2/2 .sdata g_clearColor */ SECTION_SDATA extern GXColor g_clearColor = {0, 0, 0, 0}; /* 80450604-80450608 000084 0004+00 1/1 10/10 15/15 .sdata g_blackColor */ SECTION_SDATA extern GXColor g_blackColor = {0, 0, 0, 255}; /* 8002CC54-8002CD44 027594 00F0+00 1/1 1/1 0/0 .text dComIfG_changeOpeningScene__FP11scene_classs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_changeOpeningScene(scene_class* param_0, s16 param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfG_changeOpeningScene__FP11scene_classs.s" } #pragma pop /* 8002CD44-8002CDB8 027684 0074+00 0/0 2/2 0/0 .text dComIfG_resetToOpening__FP11scene_class */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_resetToOpening(scene_class* param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfG_resetToOpening__FP11scene_class.s" } #pragma pop static int phase_1(char* arc_name) { int ret; if (!dComIfG_setObjectRes(arc_name, 0, NULL)) { OSReport_Error("%s.arc Read Error !!\n", arc_name); ret = 5; } else { ret = 2; } return ret; } /* 8002CE38-8002CEB4 027778 007C+00 1/0 0/0 0/0 .text phase_2__FPc */ static int phase_2(char* arc_name) { int syncStatus = dComIfG_syncObjectRes(arc_name); if (syncStatus < 0) { OSReport_Error("%s.arc Sync Read Error !!\n", arc_name); return 5; } else { return syncStatus > 0 ? 0 : 2; } } /* 8002CEB4-8002CEBC 0277F4 0008+00 1/0 0/0 0/0 .text phase_3__FPc */ static int phase_3(char* param_0) { return 4; } typedef int (*dComIfG_phaseMethod)(char*); typedef int (*dComIfG_phaseMethod0)(phaseParam_c*); /* ############################################################################################## */ /* 803A71B8-803A71C4 -00001 000C+00 1/1 0/0 0/0 .data l_method$5017 */ SECTION_DATA static dComIfG_phaseMethod l_method_5017[3] = { phase_1, phase_2, phase_3, }; /* 8002CEBC-8002CEFC 0277FC 0040+00 0/0 7/7 550/550 .text * dComIfG_resLoad__FP30request_of_phase_process_classPCc */ #ifdef NONMATCHING int dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1) { if (param_0->mPhaseStep == 2) { return 4; } else { dComLbG_PhaseHandler(param_0, &l_method_5017[0], (void*)param_1); } return 0; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfG_resLoad__FP30request_of_phase_process_classPCc.s" } #pragma pop #endif /* 8002CEFC-8002CF5C 02783C 0060+00 1/0 0/0 0/0 .text phase_01__FP12phaseParam_c */ static int phase_01(phaseParam_c* param_0) { if (dComIfG_setObjectRes(param_0->field_0x0, 0, param_0->heap) == 0) { return 5; } else { return 2; } } /* 8002CF5C-8002CFB8 02789C 005C+00 1/0 0/0 0/0 .text phase_02__FP12phaseParam_c */ static int phase_02(phaseParam_c* param_0) { int syncStatus = dComIfG_syncObjectRes(param_0->field_0x0); if (syncStatus < 0) { return 5; } else { return syncStatus > 0 ? 0 : 2; } } /* 8002CFB8-8002CFC0 0278F8 0008+00 1/0 0/0 0/0 .text phase_03__FP12phaseParam_c */ static int phase_03(phaseParam_c* param_0) { return false; } /* ############################################################################################## */ /* 803A71C4-803A71D0 -00001 000C+00 1/1 0/0 0/0 .data l_method$5051 */ SECTION_DATA static dComIfG_phaseMethod0 l_method_5051[3] = { phase_01, phase_02, phase_03, }; /* 8002CFC0-8002D008 027900 0048+00 1/1 3/3 0/0 .text * dComIfG_resLoad__FP30request_of_phase_process_classPCcP7JKRHeap */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_resLoad(request_of_phase_process_class* param_0, char const* param_1, JKRHeap* param_2) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfG_resLoad__FP30request_of_phase_process_classPCcP7JKRHeap.s" } #pragma pop /* 8002D008-8002D06C 027948 0064+00 1/1 10/10 540/540 .text * dComIfG_resDelete__FP30request_of_phase_process_classPCc */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_resDelete(request_of_phase_process_class* param_0, char const* param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfG_resDelete__FP30request_of_phase_process_classPCc.s" } #pragma pop u8 dComIfGp_getReverb(int param_0) { return dStage_roomRead_dt_c_GetReverbStage(*dComIfGp_getStageRoom(), param_0); } /* ############################################################################################## */ /* 80451D00-80451D04 000300 0004+00 2/2 0/0 0/0 .sdata2 @5090 */ SECTION_SDATA2 static f32 lit_5090 = -1000000000.0f; /* 8002D0B4-8002D1AC 0279F4 00F8+00 0/0 3/3 34/34 .text * dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGd_setSimpleShadow(cXyz* param_0, f32 param_1, f32 param_2, cBgS_PolyInfo& param_3, s16 param_4, f32 param_5, _GXTexObj* param_6) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGd_setSimpleShadow__FP4cXyzffR13cBgS_PolyInfosfP9_GXTexObj.s" } #pragma pop /* 8002D1AC-8002D25C 027AEC 00B0+00 0/0 0/0 1/1 .text dComIfGp_getMapTrans__FiPfPfPs */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_getMapTrans(int param_0, f32* param_1, f32* param_2, s16* param_3) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_getMapTrans__FiPfPfPs.s" } #pragma pop /* 8002D25C-8002D2AC 027B9C 0050+00 0/0 3/3 3/3 .text dComIfGp_getRoomCamera__Fi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_getRoomCamera(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_getRoomCamera__Fi.s" } #pragma pop /* 8002D2AC-8002D2FC 027BEC 0050+00 0/0 3/3 3/3 .text dComIfGp_getRoomArrow__Fi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_getRoomArrow(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_getRoomArrow__Fi.s" } #pragma pop /* ############################################################################################## */ /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_80379089 = ""; #pragma pop /* 8002D2FC-8002D554 027C3C 0258+00 2/2 7/7 4/4 .text dComIfGp_setNextStage__FPCcsScScfUliScsii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_setNextStage(char const* param_0, s16 param_1, s8 param_2, s8 param_3, f32 param_4, u32 param_5, int param_6, s8 param_7, s16 param_8, int param_9, int param_10) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_setNextStage__FPCcsScScfUliScsii.s" } #pragma pop /* ############################################################################################## */ /* 80451D04-80451D08 000304 0004+00 2/2 0/0 0/0 .sdata2 @5226 */ SECTION_SDATA2 static u8 lit_5226[4] = { 0x00, 0x00, 0x00, 0x00, }; void dComIfGp_setNextStage(char const* param_0, s16 param_1, s8 param_2, s8 param_3) { dComIfGp_setNextStage(param_0, param_1, param_2, param_3, FLOAT_LABEL(lit_5226), 0, 1, 0, 0, 1, 0); } BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { return dComIfGs_isTbox(i_no); } else { return dComIfGs_isSaveTbox(i_stageNo, i_no); } } void dComIfGs_onStageSwitch(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_onSwitch(i_no, -1); } dComIfGs_onSaveSwitch(i_stageNo, i_no); } void dComIfGs_offStageSwitch(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_offSwitch(i_no, -1); } dComIfGs_offSaveSwitch(i_stageNo, i_no); } BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { return dComIfGs_isSwitch(i_no, -1); } else { return dComIfGs_isSaveSwitch(i_stageNo, i_no); } } void dComIfGs_onStageBossEnemy(int i_stageNo) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_onStageBossEnemy(); } g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().onStageBossEnemy(); } s32 dComIfGs_isDungeonItemWarp(int i_stageNo) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { return dComIfGs_isDungeonItemWarp(); } else { return g_dComIfG_gameInfo.info.getSavedata() .getSave(i_stageNo) .getBit() .isDungeonItemWarp(); } } void dComIfGs_BossLife_public_Set(s8 param_0) { g_dComIfG_gameInfo.field_0x1ddfa = param_0; } s8 dComIfGs_BossLife_public_Get() { return g_dComIfG_gameInfo.field_0x1ddfa; } void dComIfGs_sense_type_change_Set(s8 param_0) { g_dComIfG_gameInfo.field_0x1ddfa = param_0; } s8 dComIfGs_sense_type_change_Get() { return g_dComIfG_gameInfo.field_0x1ddfa; } /* 8002D94C-8002D9B0 02828C 0064+00 0/0 1/1 17/17 .text dComIfGs_onZoneSwitch__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_onZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_onZoneSwitch__Fii.s" } #pragma pop int dStage_roomControl_c::getZoneNo(int i_roomNo) { return mStatus[i_roomNo].getZoneNo(); } /* 8002D9CC-8002DA30 02830C 0064+00 0/0 1/1 1/1 .text dComIfGs_offZoneSwitch__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_offZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_offZoneSwitch__Fii.s" } #pragma pop /* 8002DA30-8002DA9C 028370 006C+00 0/0 1/1 10/10 .text dComIfGs_isZoneSwitch__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_isZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isZoneSwitch__Fii.s" } #pragma pop /* 8002DA9C-8002DB00 0283DC 0064+00 0/0 1/1 51/51 .text dComIfGs_onOneZoneSwitch__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_onOneZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_onOneZoneSwitch__Fii.s" } #pragma pop /* 8002DB00-8002DB64 028440 0064+00 0/0 1/1 17/17 .text dComIfGs_offOneZoneSwitch__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_offOneZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_offOneZoneSwitch__Fii.s" } #pragma pop /* 8002DB64-8002DBD0 0284A4 006C+00 0/0 5/5 13/13 .text dComIfGs_isOneZoneSwitch__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm BOOL dComIfGs_isOneZoneSwitch(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isOneZoneSwitch__Fii.s" } #pragma pop /* 8002DBD0-8002DC3C 028510 006C+00 0/0 1/1 0/0 .text dComIfGs_isZoneItem__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_isZoneItem(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isZoneItem__Fii.s" } #pragma pop /* 8002DC3C-8002DCA8 02857C 006C+00 0/0 1/1 0/0 .text dComIfGs_isOneZoneItem__Fii */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_isOneZoneItem(int param_0, int param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isOneZoneItem__Fii.s" } #pragma pop u16 dComIfGs_getMaxLifeGauge() { return (dComIfGs_getMaxLife() / 5) * 4; } void dComIfGs_setSelectItemIndex(int i_no, u8 item_index) { g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectItemIndex(i_no, item_index); dComIfGp_setSelectItem(i_no); } void dComIfGs_setMixItemIndex(int i_no, u8 item_index) { g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setMixItemIndex(i_no, item_index); } /* 8002DD3C-8002DDC8 02867C 008C+00 3/3 1/1 0/0 .text dComIfGs_getSelectMixItemNoArrowIndex__Fi */ #ifdef NONMATCHING u8 dComIfGs_getSelectMixItemNoArrowIndex(int p1) { u8 item_index = dComIfGs_getSelectItemIndex(p1); u8 mix_index = dComIfGs_getMixItemIndex(p1); if (item_index >= 0xf && item_index < 0x12) { return item_index; } else if (mix_index != 255 && (mix_index >= 0xf && mix_index < 0x12)) { return 255; } // return p1; } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u8 dComIfGs_getSelectMixItemNoArrowIndex(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_getSelectMixItemNoArrowIndex__Fi.s" } #pragma pop #endif u8 dComIfGs_getMixItemIndex(int i_no) { return g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().getMixItemIndex(i_no); } /* 8002DDF4-8002DF1C 028734 0128+00 1/1 13/13 0/0 .text dComIfGp_setSelectItem__Fi */ void dComIfGp_setSelectItem(int idx) { if (idx == 2) { if (dComIfGs_getSelectItemIndex(idx) != 0xFF) { u8 selectItemIdx = dComIfGs_getSelectItemIndex(idx); g_dComIfG_gameInfo.play.setSelectItem(idx, selectItemIdx); if (selectItemIdx == 0xFF) { dComIfGs_setSelectItemIndex(idx, -1); } } else { g_dComIfG_gameInfo.play.setSelectItem(idx, -1); } } else { if (dComIfGs_getSelectItemIndex(idx) != 0xFF) { u8 selectItemIdx = dComIfGs_getSelectItemIndex(idx); u8 item = dComIfGs_getItem(selectItemIdx, 0); g_dComIfG_gameInfo.play.setSelectItem(idx, item); if (item == 0xFF) { dComIfGs_setSelectItemIndex(idx, -1); } } else { g_dComIfG_gameInfo.play.setSelectItem(idx, -1); } } } /* 8002DF1C-8002E048 02885C 012C+00 4/4 19/19 0/0 .text dComIfGp_getSelectItem__Fi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm u8 dComIfGp_getSelectItem(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_getSelectItem__Fi.s" } #pragma pop void dComIfGp_mapShow() { dComIfGs_offEventBit(0x1D01); } void dComIfGp_mapHide() { dComIfGs_onEventBit(0x1D01); } bool dComIfGp_checkMapShow() { return !dComIfGs_isEventBit(0x1D01); } /* 8002E0E0-8002E188 028A20 00A8+00 0/0 9/9 0/0 .text dComIfGp_setHeapLockFlag__FUc */ s32 dComIfGp_setHeapLockFlag(u8 param_0) { if (param_0 == 7 || param_0 == 8) { if (!dComIfGp_isHeapLockFlag()) { dComIfGp_createSubExpHeap2D(); } g_dComIfG_gameInfo.play.setHeapLockFlag(5); int check = dComIfGp_checkEmptySubHeap2D(); if (check >= 0) { dComIfGp_setSubHeapLockFlag(check, param_0); } } else { if (param_0 == 0) { dComIfGp_offHeapLockFlag(0); } else { g_dComIfG_gameInfo.play.setHeapLockFlag(param_0); } } return 1; } s32 dComIfGp_offHeapLockFlag(int param_0) { if (dComIfGp_isHeapLockFlag() == 5) { if (param_0 == 7 || param_0 == 8) { int check = dComIfGp_searchUseSubHeap2D(param_0); if (check >= 0) { dComIfGp_setSubHeapLockFlag(check, 0); } if (!dComIfGp_getSubHeapLockFlag(0) && !dComIfGp_getSubHeapLockFlag(1)) { dComIfGp_destroySubExpHeap2D(); g_dComIfG_gameInfo.play.offHeapLockFlag(); } } } else { g_dComIfG_gameInfo.play.offHeapLockFlag(); } return 1; } void dComIfGp_createSubExpHeap2D() { u32 size = dComIfGp_getExpHeap2D()->getTotalFreeSize() * (2.0f / 5.0f); for (int i = 0; i < 2; i++) { if (dComIfGp_getSubExpHeap2D(i) == NULL) { JKRExpHeap* i_heap = JKRExpHeap::create(size, dComIfGp_getExpHeap2D(), false); dComIfGp_setSubExpHeap2D(i, i_heap); } } } void dComIfGp_destroySubExpHeap2D() { for (int i = 0; i < 2; i++) { JKRExpHeap* heap = dComIfGp_getSubExpHeap2D(i); if (heap != NULL) { mDoExt_destroyExpHeap(heap); dComIfGp_setSubExpHeap2D(i, NULL); } } } int dComIfGp_checkEmptySubHeap2D() { if (dComIfGp_isHeapLockFlag() == 5) { for (int i = 0; i < 2; i++) { if (dComIfGp_getSubHeapLockFlag(i) == 0) { return i; } } } return -1; } int dComIfGp_searchUseSubHeap2D(int param_0) { if (dComIfGp_isHeapLockFlag() == 5) { for (int i = 0; i < 2; i++) { if (param_0 == dComIfGp_getSubHeapLockFlag(i)) { return i; } } } return -1; } JKRExpHeap* dComIfGp_getSubHeap2D(int param_0) { if (dComIfGp_isHeapLockFlag() == 5) { for (int i = 0; i < 2; i++) { if (param_0 == dComIfGp_getSubHeapLockFlag(i)) { return dComIfGp_getSubExpHeap2D(i); } } } return NULL; } static u8 l_itemno[24] = { M_BEETLE, F_BEETLE, M_BUTTERFLY, F_BUTTERFLY, M_STAG_BEETLE, F_STAG_BEETLE, M_GRASSHOPPER, F_GRASSHOPPER, M_NANAFUSHI, F_NANAFUSHI, M_DANGOMUSHI, F_DANGOMUSHI, M_MANTIS, F_MANTIS, M_LADYBUG, F_LADYBUG, M_SNAIL, F_SNAIL, M_DRAGONFLY, F_DRAGONFLY, M_ANT, F_ANT, M_MAYFLY, F_MAYFLY, }; int dComIfGs_checkGetInsectNum() { int insectCount = 0; u8* insectList = &l_itemno[0]; u8 insectId; for (int i = 0; i < ARRAY_SIZE(l_itemno); i++) { insectId = *insectList; insectList++; if (dComIfGs_isItemFirstBit(insectId) && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x191 + i])) { insectCount++; } } return insectCount; } u8 dComIfGs_checkGetItem(u8 i_no) { u8 count = 0; for (int i = 0; i < 60; i++) { if (i_no == dComIfGs_getItem(i, true)) { count++; } } if (dComIfGs_getSelectEquipClothes() == i_no) { count++; } if (dComIfGs_getSelectEquipSword() == i_no) { count++; } if (dComIfGs_getSelectEquipShield() == i_no) { count++; } return count; } u8 dComIfGs_getBottleMax() { return 10; } /* 8002E5C0-8002E688 028F00 00C8+00 0/0 11/11 0/0 .text dComIfGp_getSelectItemNum__Fi */ int dComIfGp_getSelectItemNum(int param_0) { u8 selectItem = dComIfGp_getSelectItem(param_0); int itemNum = 0; if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { selectItem = dComIfGs_getSelectMixItemNoArrowIndex(param_0) - SLOT_15; itemNum = dComIfGs_getBombNum(selectItem); } else if (selectItem == PACHINKO) { itemNum = dComIfGs_getPachinkoNum(); } else if (selectItem == BEE_CHILD) { selectItem = dComIfGs_getSelectItemIndex(param_0); itemNum = dComIfGs_getBottleNum(selectItem - SLOT_11); } return itemNum; } /* 8002E688-8002E714 028FC8 008C+00 0/0 5/5 0/0 .text dComIfGp_getSelectItemMaxNum__Fi */ int dComIfGp_getSelectItemMaxNum(int param_0) { u8 selectItem = dComIfGp_getSelectItem(param_0); int itemNum = 0; if (selectItem == BOMB_BAG_LV1) { itemNum = 1; } else if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { itemNum = dComIfGs_getBombMax(selectItem); } else if (selectItem == PACHINKO) { itemNum = dComIfGs_getPachinkoMax(); } else if (selectItem == BEE_CHILD) { itemNum = dComIfGs_getBottleMax(); } return itemNum; } /* 8002E714-8002E83C 029054 0128+00 0/0 2/2 0/0 .text dComIfGp_setSelectItemNum__Fis */ // two swapped instructions #ifdef NONMATCHING void dComIfGp_setSelectItemNum(int param_0, s16 param_1) { u8 selectItem = dComIfGp_getSelectItem(param_0); u8 selectMixItem; int itemNum; if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { selectMixItem = dComIfGs_getSelectMixItemNoArrowIndex(param_0) - SLOT_15; itemNum = dComIfGs_getBombMax(selectItem); if (itemNum > param_1) { param_1 = dComIfGs_getBombMax(selectItem); } dComIfGs_setBombNum(selectMixItem, param_1); } else if (selectItem == PACHINKO) { dComIfGs_setPachinkoNum(param_1); } else if (selectItem == BEE_CHILD) { selectItem = dComIfGs_getSelectItemIndex(param_0) - SLOT_11; itemNum = dComIfGs_getBottleMax(); if (itemNum > param_1) { param_1 = dComIfGs_getBottleMax(); } dComIfGs_setBottleNum(selectItem, param_1); } } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_setSelectItemNum(int param_0, s16 param_1) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_setSelectItemNum__Fis.s" } #pragma pop #endif /* 8002E83C-8002E910 02917C 00D4+00 0/0 5/5 0/0 .text dComIfGp_addSelectItemNum__Fis */ void dComIfGp_addSelectItemNum(int param_0, s16 param_1) { u8 selectItem = dComIfGp_getSelectItem(param_0); u8 selectMixItem; int itemNum; if (selectItem == NORMAL_BOMB || selectItem == WATER_BOMB || selectItem == POKE_BOMB || selectItem == BOMB_ARROW) { selectMixItem = dComIfGs_getSelectMixItemNoArrowIndex(param_0) - SLOT_15; dComIfGp_setItemBombNumCount(selectMixItem, param_1); } else if (selectItem == PACHINKO) { dComIfGp_setItemPachinkoNumCount(param_1); } else if (selectItem == BEE_CHILD) { selectItem = dComIfGs_getSelectItemIndex(param_0); dComIfGs_addBottleNum(selectItem - SLOT_11, param_1); } } /* 8002E910-8002E974 029250 0064+00 0/0 5/5 137/137 .text * dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGd_setShadow(u32 param_0, s8 param_1, J3DModel* param_2, cXyz* param_3, f32 param_4, f32 param_5, f32 param_6, f32 param_7, cBgS_PolyInfo& param_8, dKy_tevstr_c* param_9, s16 param_10, f32 param_11, _GXTexObj* param_12) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGd_setShadow__FUlScP8J3DModelP4cXyzffffR13cBgS_PolyInfoP12dKy_tevstr_csfP9_GXTexObj.s" } #pragma pop /* 8002E974-8002E9D4 0292B4 0060+00 0/0 1/1 0/0 .text dComIfGs_gameStart__Fv */ // instruction in wrong place #ifdef NONMATCHING void dComIfGs_gameStart() { dComIfGp_offEnableNextStage(); s8 roomNo = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getRoomNo(); u8 status = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getPlayerStatus(); char* name = g_dComIfG_gameInfo.info.getPlayer().getPlayerReturnPlace().getName(); dComIfGp_setNextStage(name, status, roomNo, -1, FLOAT_LABEL(lit_5226), 0, 1, 0, 0, 0, 0); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_gameStart() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_gameStart__Fv.s" } #pragma pop #endif u32 dComIfG_getTrigA(u32 pad) { return mDoCPd_c::getTrigA(pad); } /* ############################################################################################## */ /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */ #pragma push #pragma force_active on SECTION_DEAD static char const* const stringBase_8037908A = "dat/field.dat"; #pragma pop /* 80451D18-80451D1C 000318 0004+00 1/1 0/0 0/0 .sdata2 @6980 */ SECTION_SDATA2 static f32 lit_6980 = -90300.0f; /* 80451D1C-80451D20 00031C 0004+00 1/1 0/0 0/0 .sdata2 @6981 */ SECTION_SDATA2 static f32 lit_6981 = 51800.0f; /* 8002E9F0-8002EC54 029330 0264+00 0/0 1/1 0/0 .text dComIfGp_calcNowRegion__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_calcNowRegion() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_calcNowRegion__Fv.s" } #pragma pop /* 8002EC54-8002EDE0 029594 018C+00 1/1 0/0 0/0 .text dComIfG_getNowCalcRegion__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off static asm void dComIfG_getNowCalcRegion() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfG_getNowCalcRegion__Fv.s" } #pragma pop BOOL dComIfGp_isLightDropMapVisible() { for (int i = 0; i < 3; i++) { if (dComIfGs_isLightDropGetFlag(i) != FALSE && dComIfGs_getLightDropNum(i) < 16) { return TRUE; } } return FALSE; } /* 8002EE60-8002EEB0 0297A0 0050+00 1/1 11/11 0/0 .text dComIfGp_getNowLevel__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGp_getNowLevel() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGp_getNowLevel__Fv.s" } #pragma pop void dComIfGs_setSelectEquipClothes(u8 item) { g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(COLLECT_CLOTHING, item); } /* 8002EEC0-8002EF94 029800 00D4+00 0/0 4/4 1/1 .text dComIfGs_setSelectEquipSword__FUc */ void dComIfGs_setSelectEquipSword(u8 i_itemId) { switch (i_itemId) { case SWORD: dComIfGs_setCollectSword(COLLECT_ORDON_SWORD); break; case MASTER_SWORD: dComIfGs_setCollectSword(COLLECT_MASTER_SWORD); break; case WOOD_STICK: dComIfGs_setCollectSword(COLLECT_WOODEN_SWORD); break; case LIGHT_SWORD: dComIfGs_setCollectSword(COLLECT_LIGHT_SWORD); break; } g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(1, i_itemId); } /* 8002EF94-8002F040 0298D4 00AC+00 0/0 2/2 0/0 .text dComIfGs_setSelectEquipShield__FUc */ void dComIfGs_setSelectEquipShield(u8 i_itemId) { switch (i_itemId) { case WOOD_SHIELD: dComIfGs_setCollectShield(COLLECT_WOODEN_SHIELD); break; case SHIELD: dComIfGs_setCollectShield(COLLECT_ORDON_SHIELD); break; case HYLIA_SHIELD: dComIfGs_setCollectShield(COLLECT_HYLIAN_SHIELD); break; } g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(2, i_itemId); } void dComIfGs_setKeyNum(int i_stageNo, u8 keyNum) { if (dComIfGp_getStageStagInfo()) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_setKeyNum(keyNum); } } g_dComIfG_gameInfo.info.getSavedata().getSave(i_stageNo).getBit().setKeyNum(keyNum); } /* 8002F0E0-8002F128 029A20 0048+00 1/1 0/0 0/0 .text dComIfGs_setWarpItemData__FiPCc4cXyzsScUcUc */ static void dComIfGs_setWarpItemData(int param_0, char const* param_1, cXyz param_2, s16 param_3, s8 param_4, u8 param_5, u8 param_6) { g_dComIfG_gameInfo.play.setWarpItemData(param_1, param_2, param_3, param_4, param_5, param_6); } void dComIfG_play_c::setWarpItemData(char const* param_0, cXyz param_1, s16 param_2, s8 param_3, u8 param_4, u8 param_5) { strcpy(field_0x4F94, param_0); field_0x4f9c.set(param_1); field_0x4fa8 = param_2; field_0x4faa = param_3; field_0x4fac = param_5; field_0x4fab = param_4; } void dComIfGs_setWarpItemData(char const* param_0, cXyz param_1, s16 param_2, s8 param_3, u8 param_4, u8 param_5) { dComIfGs_setWarpItemData(0, param_0, param_1, param_2, param_3, param_4, param_5); dComIfGs_setLastWarpMarkItemData(param_0, param_1, param_2, param_3, param_4, param_5); } void dComIfGs_setLastWarpMarkItemData(const char* stage, cXyz pos, s16 angle, s8 room, u8 unk1, u8 unk2) { g_dComIfG_gameInfo.info.getPlayer().getPlayerLastMarkInfo().setWarpItemData(stage, pos, angle, room, unk1, unk2); } const char* dComIfGs_getWarpStageName() { return dComIfGs_getLastWarpMarkStageName(); } /* 8002F2BC-8002F2CC 029BFC 0010+00 0/0 1/1 0/0 .text dComIfGs_getWarpPlayerPos__Fv */ #ifdef NONMATCHING cXyz dComIfGs_getWarpPlayerPos() { return dComIfGs_getLastWarpMarkPlayerPos(); } #else #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm cXyz& dComIfGs_getWarpPlayerPos() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_getWarpPlayerPos__Fv.s" } #pragma pop #endif s16 dComIfGs_getWarpPlayerAngleY() { return dComIfGs_getLastWarpMarkPlayerAngleY(); } s8 dComIfGs_getWarpRoomNo() { return dComIfGs_getLastWarpMarkRoomNo(); } BOOL dComIfGs_getWarpMarkFlag() { return dComIfGs_getLastWarpAcceptStage() >= 0; } void dComIfGs_setWarpMarkFlag(u8 param_0) { /* empty function */ } /* 8002F314-8002F328 029C54 0014+00 0/0 0/0 1/1 .text __ct__19dComIfG_resLoader_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm dComIfG_resLoader_c::dComIfG_resLoader_c() { nofralloc #include "asm/d/com/d_com_inf_game/__ct__19dComIfG_resLoader_cFv.s" } #pragma pop /* 8002F328-8002F3B4 029C68 008C+00 0/0 0/0 1/1 .text __dt__19dComIfG_resLoader_cFv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm dComIfG_resLoader_c::~dComIfG_resLoader_c() { nofralloc #include "asm/d/com/d_com_inf_game/__dt__19dComIfG_resLoader_cFv.s" } #pragma pop /* 8002F3B4-8002F434 029CF4 0080+00 0/0 0/0 1/1 .text load__19dComIfG_resLoader_cFPPCcP7JKRHeap */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfG_resLoader_c::load(char const** param_0, JKRHeap* param_1) { nofralloc #include "asm/d/com/d_com_inf_game/load__19dComIfG_resLoader_cFPPCcP7JKRHeap.s" } #pragma pop /* 8002F434-8002F478 029D74 0044+00 0/0 12/12 12/12 .text dComIfG_getStageRes__FPCc */ void* dComIfG_getStageRes(char const* resName) { return dComIfG_getStageRes("Stg_00", resName); } /* 8002F478-8002F4BC 029DB8 0044+00 0/0 1/1 0/0 .text dComIfG_getOldStageRes__FPCc */ void* dComIfG_getOldStageRes(char const* resName) { return dComIfG_getStageRes("Xtg_00", resName); } static char buf[32]; char* dComIfG_getRoomArcName(int param_0) { sprintf((char*)buf, (char*)"R%02d_00", param_0); return buf; } /* 8002F500-8002F504 029E40 0004+00 0/0 1/1 0/0 .text dComIfGp_ret_wp_set__FSc */ void dComIfGp_ret_wp_set(s8 param_0) { /* empty function */ } void dComIfGp_world_dark_set(u8 param_0) { g_dComIfG_gameInfo.mWorldDark = param_0; } u8 dComIfGp_world_dark_get() { return g_dComIfG_gameInfo.mWorldDark; } int dComIfG_TimerStart(int param_0, s16 param_1) { int uvar2; if (param_0 == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { if (param_1 == 0) { timer->start(param_0); } else { timer->start(param_0, param_1); } uvar2 = 1; } else { uvar2 = 0; } } else { uvar2 = 0; } return uvar2; } int dComIfG_TimerStop(int param_0) { int uvar2; if (param_0 == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->stop(4); uvar2 = 1; } else { uvar2 = 0; } } else { uvar2 = 0; } return uvar2; } int dComIfG_TimerReStart(int param_0) { int uvar2; if (param_0 == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->restart(4); uvar2 = 1; } else { uvar2 = 0; } } else { uvar2 = 0; } return uvar2; } int dComIfG_TimerEnd(int param_0, int param_1) { int uvar2; if (param_0 == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->end(param_1); uvar2 = 1; } else { uvar2 = 0; } } else { uvar2 = 0; } return uvar2; } /* 8002F72C-8002F79C 02A06C 0070+00 0/0 0/0 2/2 .text dComIfG_TimerDeleteCheck__Fi */ int dComIfG_TimerDeleteCheck(int param_0) { int uvar2; if (param_0 == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { uvar2 = timer->deleteCheck(); } else { uvar2 = 0; } } else { uvar2 = 0; } return uvar2; } int dComIfG_TimerDeleteRequest(int param_0) { int uvar2; if (param_0 == dComIfG_getTimerMode()) { dTimer_c* timer = dComIfG_getTimerPtr(); if (timer != NULL) { timer->deleteRequest(); uvar2 = 1; } else { uvar2 = 0; } } else { uvar2 = 0; } return uvar2; } /* 8002F810-8002F9F0 02A150 01E0+00 0/0 1/1 0/0 .text dComIfGs_Wolf_Change_Check__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_Wolf_Change_Check() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_Wolf_Change_Check__Fv.s" } #pragma pop void dComIfGs_PolyDamageOff_Set(s8 param_0) { g_dComIfG_gameInfo.field_0x1ddfb = param_0; } u8 dComIfGs_PolyDamageOff_Check() { return g_dComIfG_gameInfo.field_0x1ddfb; } void dComIfGs_shake_kandelaar() { g_dComIfG_gameInfo.field_0x1ddfa = 1; } bool dComIfGs_shake_kandelaar_check() { bool check = false; if (g_dComIfG_gameInfo.field_0x1ddfa == 2) { check = true; } return check; } /* ############################################################################################## */ /* 80451D20-80451D28 000320 0008+00 1/1 0/0 0/0 .sdata2 @7580 */ SECTION_SDATA2 static f64 lit_7580 = 0.6; /* 8002FA54-8002FA84 02A394 0030+00 0/0 4/4 96/96 .text dComIfGs_wolfeye_effect_check__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_wolfeye_effect_check() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_wolfeye_effect_check__Fv.s" } #pragma pop void dComIfGs_Grass_hide_Set(s8 param_0) { g_dComIfG_gameInfo.field_0x1ddfc = param_0; } void dComIfGp_TargetWarpPt_set(u8 param_0) { g_dComIfG_gameInfo.field_0x1de09 = param_0; } void dComIfGp_SelectWarpPt_set(u8 param_0) { g_dComIfG_gameInfo.field_0x1de0a = param_0; } u8 dComIfGp_TargetWarpPt_get() { return g_dComIfG_gameInfo.field_0x1de09; } u8 dComIfGp_SelectWarpPt_get() { return g_dComIfG_gameInfo.field_0x1de0a; } BOOL dComIfGp_TransportWarp_check() { BOOL check = false; if (g_dComIfG_gameInfo.field_0x1de09 != 0xFF && g_dComIfG_gameInfo.field_0x1de0a != 0xFF && g_dComIfG_gameInfo.field_0x1de09 == g_dComIfG_gameInfo.field_0x1de0a) { check = true; } return check; } /* 8002FB20-8002FB80 02A460 0060+00 2/2 6/6 0/0 .text * dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComLbG_PhaseHandler(request_of_phase_process_class* param_0, int (**param_1)(void*), void* param_2) { nofralloc #include "asm/d/com/d_com_inf_game/dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv.s" } #pragma pop /* 8002FB80-8002FC3C 02A4C0 00BC+00 0/0 1/1 1/1 .text dComIfGs_onVisitedRoom__Fi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_onVisitedRoom(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_onVisitedRoom__Fi.s" } #pragma pop /* 8002FC3C-8002FC98 02A57C 005C+00 0/0 0/0 1/1 .text dComIfGs_offVisitedRoom__Fi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_offVisitedRoom(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_offVisitedRoom__Fi.s" } #pragma pop /* 8002FC98-8002FCF4 02A5D8 005C+00 0/0 1/1 0/0 .text dComIfGs_isVisitedRoom__Fi */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_isVisitedRoom(int param_0) { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_isVisitedRoom__Fi.s" } #pragma pop /* 8002FCF4-8002FD08 02A634 0014+00 0/0 1/1 0/0 .text dComIfGs_staffroll_next_go__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_staffroll_next_go() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_staffroll_next_go__Fv.s" } #pragma pop /* 8002FD08-8002FD18 02A648 0010+00 0/0 1/1 0/0 .text dComIfGs_staffroll_next_go_check__Fv */ #pragma push #pragma optimization_level 0 #pragma optimizewithasm off asm void dComIfGs_staffroll_next_go_check() { nofralloc #include "asm/d/com/d_com_inf_game/dComIfGs_staffroll_next_go_check__Fv.s" } #pragma pop /* ############################################################################################## */ /* 80450608-8045060C 000088 0004+00 0/0 6/6 11/11 .sdata g_whiteColor */ SECTION_SDATA extern GXColor g_whiteColor = {255, 255, 255, 255}; /* 8045060C-80450610 00008C 0004+00 0/0 3/3 3/3 .sdata g_saftyWhiteColor */ SECTION_SDATA extern u32 g_saftyWhiteColor = 0xA0A0A0FF; /* 80378F38-80378F38 005598 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */