fix some nonmatching functions (#2141)

This commit is contained in:
Caroline Madsen
2024-04-28 22:33:32 -04:00
committed by GitHub
parent 669c7d920b
commit 7339a87bd9
75 changed files with 673 additions and 6374 deletions
+14 -10
View File
@@ -43,25 +43,29 @@ u8 daItemBase_c::chkDead() {
/* 80037B0C-80037B78 03244C 006C+00 0/0 0/0 1/1 .text CheckItemCreateHeap__FP10fopAc_ac_c
*/
void CheckItemCreateHeap(fopAc_ac_c* actor) {
int CheckItemCreateHeap(fopAc_ac_c* actor) {
daItemBase_c* item = static_cast<daItemBase_c*>(actor);
u8 item_no = item->getItemNo();
item->CreateItemHeap(dItem_data::getArcName(item_no), dItem_data::getBmdName(item_no),
dItem_data::getBtkName(item_no), dItem_data::getBpkName(item_no),
dItem_data::getBckName(item_no), dItem_data::getBxaName(item_no),
dItem_data::getBrkName(item_no), dItem_data::getBtpName(item_no));
return item->CreateItemHeap(
dItem_data::getArcName(item_no), dItem_data::getBmdName(item_no),
dItem_data::getBtkName(item_no), dItem_data::getBpkName(item_no),
dItem_data::getBckName(item_no), dItem_data::getBxaName(item_no),
dItem_data::getBrkName(item_no), dItem_data::getBtpName(item_no)
);
}
/* 80037B78-80037BE0 0324B8 0068+00 0/0 1/1 7/7 .text CheckFieldItemCreateHeap__FP10fopAc_ac_c */
void CheckFieldItemCreateHeap(fopAc_ac_c* actor) {
int CheckFieldItemCreateHeap(fopAc_ac_c* actor) {
daItemBase_c* item = static_cast<daItemBase_c*>(actor);
u8 item_no = item->getItemNo();
item->CreateItemHeap(dItem_data::getFieldArc(item_no), dItem_data::getItemBmdName(item_no),
dItem_data::getItemBtkName(item_no), dItem_data::getItemBpkName(item_no),
dItem_data::getItemBckName(item_no), dItem_data::getItemBxaName(item_no),
dItem_data::getItemBrkName(item_no), dItem_data::getItemBtpName(item_no));
return item->CreateItemHeap(
dItem_data::getFieldArc(item_no), dItem_data::getItemBmdName(item_no),
dItem_data::getItemBtkName(item_no), dItem_data::getItemBpkName(item_no),
dItem_data::getItemBckName(item_no), dItem_data::getItemBxaName(item_no),
dItem_data::getItemBrkName(item_no), dItem_data::getItemBtpName(item_no)
);
}
/* ############################################################################################## */
+1 -12
View File
@@ -1860,7 +1860,6 @@ static s32 const a_jntNumTbl[13][2] = {
};
/* 80158FF0-801590FC 153930 010C+00 0/0 0/0 4/4 .text drawObj__10daNpcCd2_cFiP8J3DModelf */
#ifdef NONMATCHING // rlwinm loading wrong value
int daNpcCd2_c::drawObj(int idx, J3DModel* i_model, f32 i_scale) {
if (i_model == NULL) {
return 0;
@@ -1868,7 +1867,7 @@ int daNpcCd2_c::drawObj(int idx, J3DModel* i_model, f32 i_scale) {
if (field_0xac6 && !daPy_py_c::checkNowWolfEyeUp()) {
return 0;
}
u32 x = !isM_();
int x = isM_() ? 0 : 1;
s32 jntNum = a_jntNumTbl[idx][x];
if (i_model && jntNum >= 0) {
g_env_light.setLightTevColorType_MAJI(i_model, &tevStr);
@@ -1879,16 +1878,6 @@ int daNpcCd2_c::drawObj(int idx, J3DModel* i_model, f32 i_scale) {
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daNpcCd2_c::drawObj(int param_0, J3DModel* param_1, f32 param_2) {
nofralloc
#include "asm/a/npc/d_a_npc_cd2/drawObj__10daNpcCd2_cFiP8J3DModelf.s"
}
#pragma pop
#endif
/* 801590FC-80159258 153A3C 015C+00 0/0 0/0 4/4 .text drawNpc__10daNpcCd2_cFv */
int daNpcCd2_c::drawNpc() {
+14 -46
View File
@@ -631,56 +631,24 @@ void daPy_py_c::setMidnaFaceNum(int i_faceNum) {
}
/* 8015F97C-8015FA2C 15A2BC 00B0+00 0/0 7/7 2/2 .text daPy_addCalcShort__FPsssss */
// 1 instruction in wrong place
#ifdef NONMATCHING
int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) {
s16 temp_r0;
s16 temp_r0_2;
s16 temp_r8;
s16 temp_r9;
s32 temp_r10;
s32 temp_r4;
s32 temp_r5;
s32 phi_r4;
int daPy_addCalcShort(s16* i_value, s16 i_target, s16 i_scale, s16 i_maxStep, s16 i_minStep) {
int delta = i_target - *i_value;
temp_r8 = *param_0;
temp_r9 = (s16)param_1;
temp_r10 = temp_r9 - temp_r8;
if (temp_r8 != temp_r9) {
temp_r5 = temp_r10 / param_2;
temp_r0 = (s16)param_4;
if (temp_r5 > temp_r0 || temp_r5 < -temp_r0) {
temp_r0_2 = param_3;
temp_r4 = -temp_r0_2;
phi_r4 = temp_r4;
if (temp_r5 < temp_r4) {
phi_r4 = temp_r5;
} else if (temp_r5 > temp_r0_2) {
phi_r4 = temp_r0_2;
}
*param_0 += phi_r4;
} else if (temp_r10 >= 0) {
*param_0 = temp_r8 + param_4;
if (temp_r9 - *param_0 <= 0) {
*param_0 = param_1;
if (*i_value != i_target) {
int step = delta / i_scale;
if (step > i_minStep || step < -i_minStep) {
*i_value += cLib_minMaxLimit<int>(step, -i_maxStep, i_maxStep);
} else if (delta >= 0) {
*i_value += i_minStep;
if (i_target - *i_value <= 0) {
*i_value = i_target;
}
} else {
*param_0 = temp_r8 - param_4;
if (temp_r9 - *param_0 >= 0) {
*param_0 = param_1;
*i_value -= i_minStep;
if (i_target - *i_value >= 0) {
*i_value = i_target;
}
}
}
return temp_r9 - *param_0;
return i_target - *i_value;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm int daPy_addCalcShort(s16* param_0, s16 param_1, s16 param_2, s16 param_3, s16 param_4) {
nofralloc
#include "asm/d/a/d_a_player/daPy_addCalcShort__FPsssss.s"
}
#pragma pop
#endif
+1 -1
View File
@@ -498,7 +498,7 @@ void dCcS::ProcAtTgHitmark(bool i_setAt, bool i_setTg, cCcD_Obj* param_2, cCcD_O
{
if ((i_atObjInf->GetAtType() &
(AT_TYPE_WOLF_ATTACK | AT_TYPE_WOLF_CUT_TURN | AT_TYPE_10000000 | AT_TYPE_MIDNA_LOCK |
AT_TYPE_HOOKSHOT | AT_TYPE_SHIELD_ATTACK | AT_TYPE_NORMAL_SWORD)) == 0 ||
AT_TYPE_HOOKSHOT | AT_TYPE_SHIELD_ATTACK | AT_TYPE_NORMAL_SWORD)) != 0 &&
i_tgObjInf->GetTgSpl() == 1)
{
return;
+100 -419
View File
@@ -1,7 +1,7 @@
//
// Generated By: dol2asm
// Translation Unit: d/com/d_com_inf_game
//
/**
* d_com_inf_game.cpp
* Game Information
*/
#include "d/com/d_com_inf_game.h"
#include "JSystem/JKernel/JKRAramArchive.h"
@@ -18,351 +18,6 @@
#include "m_Do/m_Do_graphic.h"
#include "stdio.h"
//
// 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 GXColor 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 dScnKy_env_light_c g_env_light;
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:
//
void dComIfG_play_c::ct() {
mWindowNum = 0;
mParticle = NULL;
@@ -1656,106 +1311,132 @@ s8 dComIfGs_sense_type_change_Get() {
}
/* 8002D94C-8002D9B0 02828C 0064+00 0/0 1/1 17/17 .text dComIfGs_onZoneSwitch__Fii */
// matches debug but not retail :/
#ifdef NONMATCHING
void dComIfGs_onZoneSwitch(int i_swBit, int i_roomNo) {
int zone_no;
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return;
}
}
if (room_no >= 0) {
zone_no = dComIfGp_roomControl_getZoneNo(room_no);
dComIfGs_onSvZoneSwitch(zone_no, i_swBit);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dComIfGs_onZoneSwitch(int swBit, int roomNo) {
nofralloc
#include "asm/d/com/d_com_inf_game/dComIfGs_onZoneSwitch__Fii.s"
}
#pragma pop
#endif
int dStage_roomControl_c::getZoneNo(int i_roomNo) {
return mStatus[i_roomNo].getZoneNo();
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
dComIfGs_onSvZoneSwitch(zone_no, i_swBit);
}
/* 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"
void dComIfGs_offZoneSwitch(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
dComIfGs_offSvZoneSwitch(zone_no, i_swBit);
}
#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 BOOL dComIfGs_isZoneSwitch(int param_0, int param_1) {
nofralloc
#include "asm/d/com/d_com_inf_game/dComIfGs_isZoneSwitch__Fii.s"
BOOL dComIfGs_isZoneSwitch(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return false;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
return dComIfGs_isSvZoneSwitch(zone_no, i_swBit);
}
#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"
void dComIfGs_onOneZoneSwitch(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
dComIfGs_onSvOneZoneSwitch(zone_no, i_swBit);
}
#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"
void dComIfGs_offOneZoneSwitch(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
dComIfGs_offSvOneZoneSwitch(zone_no, i_swBit);
}
#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"
BOOL dComIfGs_isOneZoneSwitch(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return false;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
return dComIfGs_isSvOneZoneSwitch(zone_no, i_swBit);
}
#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 BOOL dComIfGs_isZoneItem(int param_0, int param_1) {
nofralloc
#include "asm/d/com/d_com_inf_game/dComIfGs_isZoneItem__Fii.s"
BOOL dComIfGs_isZoneItem(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return false;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
return dComIfGs_isSvZoneItem(zone_no, i_swBit);
}
#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 BOOL dComIfGs_isOneZoneItem(int param_0, int param_1){nofralloc
#include "asm/d/com/d_com_inf_game/dComIfGs_isOneZoneItem__Fii.s"
BOOL dComIfGs_isOneZoneItem(int i_swBit, int i_roomNo) {
int room_no;
if (i_roomNo >= 0) {
room_no = i_roomNo;
} else {
room_no = dComIfGp_roomControl_getStayNo();
if (room_no < 0) {
return false;
}
}
int zone_no = dComIfGp_roomControl_getZoneNo(room_no);
return dComIfGs_isSvOneZoneItem(zone_no, i_swBit);
}
#pragma pop
u16 dComIfGs_getMaxLifeGauge() {
return (dComIfGs_getMaxLife() / 5) * 4;
+5 -3
View File
@@ -782,7 +782,7 @@ int dDemo_setDemoData(fopAc_ac_c* param_0, u8 param_1, mDoExt_McaMorf* param_2,
return 0;
}
u32 flags = demo_actor->checkEnable(param_1);
u8 flags = demo_actor->checkEnable(param_1);
if (flags & 2) {
param_0->current.pos = demo_actor->getTrans();
param_0->old.pos = param_0->current.pos;
@@ -793,7 +793,7 @@ int dDemo_setDemoData(fopAc_ac_c* param_0, u8 param_1, mDoExt_McaMorf* param_2,
}
if (flags & 4) {
param_0->mScale = demo_actor->getScale();
param_0->scale = demo_actor->getScale();
}
if (flags & 0x80) {
@@ -1428,18 +1428,20 @@ SECTION_SDATA2 static f64 lit_5123 = 1.0 / 29.999998435378155;
/* 80039678-80039910 033FB8 0298+00 0/0 1/1 0/0 .text create__7dDemo_cFv */
#ifdef NONMATCHING
// matches with data
void dDemo_c::create() {
m_system = new dDemo_system_c();
m_control = new JStudio::TControl();
m_mesgControl = new jmessage_tControl();
m_stage = new JStudio_JStage::TCreateObject(m_system);
m_audio = new JStudio_JAudio2::TCreateObject(Z2GetSoundStarter(), m_system);
m_audio->mPermit_onExit_notEnd = true;
m_particle = new dDemo_particle_c(dPa_control_c::getEmitterManager(), m_system);
m_message = new jstudio_tCreateObject_message();
m_factory = new JStudio::TFactory();
m_object = new dDemo_object_c();
m_control->setSecondPerFrame(1.0 / 29.999998435378155);
m_control->setSecondPerFrame(1.0f / 30.0f);
m_control->setFactory(m_factory);
m_factory->appendCreateObject(m_stage);
m_factory->appendCreateObject(m_audio);
+14 -90
View File
@@ -1,7 +1,7 @@
//
// Generated By: dol2asm
// Translation Unit: d/d_lib
//
/**
* d_lib.cpp
* Utility Functions
*/
#include "d/d_lib.h"
#include "d/event/d_event.h"
@@ -9,58 +9,9 @@
#include "JSystem/JKernel/JKRAramArchive.h"
#include "JSystem/JKernel/JKRAram.h"
#include "JSystem/JKernel/JKRDecomp.h"
#include "dol2asm.h"
#include "f_op/f_op_actor.h"
#include "m_Do/m_Do_controller_pad.h"
//
// Forward References:
//
extern "C" void __ct__9STControlFssssffss();
extern "C" void setWaitParm__9STControlFssssffss();
extern "C" void init__9STControlFv();
extern "C" void Xinit__9STControlFv();
extern "C" void Yinit__9STControlFv();
extern "C" void getValueStick__9STControlFv();
extern "C" void getAngleStick__9STControlFv();
extern "C" void getValueStick__10CSTControlFv();
extern "C" void getAngleStick__10CSTControlFv();
extern "C" void checkTrigger__9STControlFv();
extern "C" void checkLeftTrigger__9STControlFv();
extern "C" void checkRightTrigger__9STControlFv();
extern "C" void checkUpTrigger__9STControlFv();
extern "C" void checkDownTrigger__9STControlFv();
extern "C" void dLib_getEventSwitchNo__Fi();
extern "C" void dLib_checkActorInRectangle__FP10fopAc_ac_cP10fopAc_ac_cPC4cXyzPC4cXyz();
extern "C" void dLib_getExpandSizeFromAramArchive__FP14JKRAramArchivePCc();
extern "C" void getTime__11dLib_time_cFv();
extern "C" void stopTime__11dLib_time_cFv();
extern "C" void startTime__11dLib_time_cFv();
extern "C" u8 m_diffTime__11dLib_time_c[4];
extern "C" u8 m_stopTime__11dLib_time_c[4];
extern "C" extern u8 struct_80450DF0[8];
//
// External References:
//
extern "C" void mDoMtx_YrotS__FPA4_fs();
extern "C" void searchMapEventData__14dEvt_control_cFUc();
extern "C" void __mi__4cXyzCFRC3Vec();
extern "C" void aramToMainRam__7JKRAramFUlPUcUl15JKRExpandSwitchUlP7JKRHeapiPUl();
extern "C" void findFsResource__10JKRArchiveCFPCcUl();
extern "C" void getAramAddress__14JKRAramArchiveFPCc();
extern "C" void _savegpr_29();
extern "C" void _restgpr_29();
extern "C" u8 m_cpadInfo__8mDoCPd_c[256];
extern "C" u8 now__14mDoMtx_stack_c[48];
//
// Declarations:
//
/* ############################################################################################## */
/* 803A7240-803A7250 004360 0010+00 0/0 0/0 6/6 .data ZeroQuat */
Quaternion ZeroQuat = {
0.0f,
@@ -69,22 +20,6 @@ Quaternion ZeroQuat = {
1.0f
};
/* 803A7250-803A7260 004370 0010+00 0/0 1/1 0/0 .data __vt__10CSTControl */
SECTION_DATA extern void* __vt__10CSTControl[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)getValueStick__10CSTControlFv,
(void*)getAngleStick__10CSTControlFv,
};
/* 803A7260-803A7270 004380 0010+00 1/1 1/1 0/0 .data __vt__9STControl */
SECTION_DATA extern void* __vt__9STControl[4] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)getValueStick__9STControlFv,
(void*)getAngleStick__9STControlFv,
};
STControl::STControl(s16 delayY, s16 delayX, s16 param_2, s16 param_3, f32 threshold, f32 param_5,
s16 param_6, s16 param_7) {
setWaitParm(delayY, delayX, param_2, param_3, threshold, param_5, param_6, param_7);
@@ -152,7 +87,6 @@ s16 CSTControl::getAngleStick() {
}
/* 8003219C-8003242C 02CADC 0290+00 0/0 24/24 0/0 .text checkTrigger__9STControlFv */
#ifdef NONMATCHING
u8 STControl::checkTrigger() {
field_0x0d = mDirectionTrig;
f32 stickValue = getValueStick();
@@ -161,21 +95,21 @@ u8 STControl::checkTrigger() {
s16 temp_r7 = 0x2000 - field_0x26 >> 1;
if (!cM3d_IsZero(stickValue)) {
if (stickAngle < field_0x22 + temp_r7 - 0x7000) {
if (stickAngle < field_0x22 - 0x7000 + temp_r7) {
var_r6 |= TRIG_UP;
} else if (stickAngle < (field_0x22 - 0x5000) - temp_r7) {
} else if (stickAngle < field_0x22 - 0x5000 - temp_r7) {
var_r6 |= TRIG_UP_LEFT;
} else if (stickAngle < field_0x22 + temp_r7 - 0x3000) {
} else if (stickAngle < field_0x22 - 0x3000 + temp_r7) {
var_r6 |= TRIG_LEFT;
} else if (stickAngle < (field_0x22 - 0x1000) - temp_r7) {
} else if (stickAngle < field_0x22 - 0x1000 - temp_r7) {
var_r6 |= TRIG_DOWN_LEFT;
} else if (stickAngle < field_0x22 + temp_r7 + 0x1000) {
} else if (stickAngle < field_0x22 + 0x1000 + temp_r7) {
var_r6 |= TRIG_DOWN;
} else if (stickAngle < (field_0x22 + 0x3000) - temp_r7) {
} else if (stickAngle < field_0x22 + 0x3000 - temp_r7) {
var_r6 |= TRIG_DOWN_RIGHT;
} else if (stickAngle < field_0x22 + temp_r7 + 0x5000) {
} else if (stickAngle < field_0x22 + 0x5000 + temp_r7) {
var_r6 |= TRIG_RIGHT;
} else if (stickAngle < (field_0x22 + 0x7000) - temp_r7) {
} else if (stickAngle < field_0x22 + 0x7000 - temp_r7) {
var_r6 |= TRIG_UP_RIGHT;
} else {
var_r6 |= TRIG_UP;
@@ -222,16 +156,6 @@ u8 STControl::checkTrigger() {
return mDirectionTrig;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm u8 STControl::checkTrigger() {
nofralloc
#include "asm/d/d_lib/checkTrigger__9STControlFv.s"
}
#pragma pop
#endif
bool STControl::checkLeftTrigger() {
if (field_0x0e == 0 && mDirectionTrig & TRIG_LEFT) {
@@ -334,7 +258,8 @@ u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* i_aramArchive, char const*
if (address == 0) {
return 0;
}
u8* readAddress = JKRAramToMainRam(address, header, 0x20, EXPAND_SWITCH_UNKNOWN0, 0, 0, 0xffffffff, 0);
u8* readAddress = JKRAramToMainRam(address, header, 0x20, EXPAND_SWITCH_UNKNOWN0,
0, 0, 0xffffffff, 0);
JUT_ASSERT(1260, readAddress == header);
JKRArchive::SDIFileEntry* entry = i_aramArchive->findFsResource(param_2, 0);
JUT_ASSERT(1263, entry != 0);
@@ -346,7 +271,6 @@ u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* i_aramArchive, char const*
return uVar5;
}
/* ############################################################################################## */
/* 80450DD8-80450DDC 0002D8 0004+00 2/2 0/0 0/0 .sbss m_diffTime__11dLib_time_c */
OSTime dLib_time_c::m_diffTime;
+6 -4
View File
@@ -5,6 +5,8 @@
#include "d/d_resorce.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "JSystem/J3DGraphLoader/J3DModelLoader.h"
#include "JSystem/JKernel/JKRMemArchive.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "d/com/d_com_inf_game.h"
@@ -393,7 +395,7 @@ J3DModelData* dRes_info_c::loaderBasicBmd(u32 i_type, void* i_data) {
flags ^= 0x60020;
}
modelData = (J3DModelData*)J3DModelLoaderDataBase::load(i_data, flags);
modelData = J3DModelLoaderDataBase::load(i_data, flags);
if (modelData == NULL) {
return NULL;
}
@@ -447,11 +449,11 @@ J3DModelData* dRes_info_c::loaderBasicBmd(u32 i_type, void* i_data) {
}
if (i_type == 'BMDR' || i_type == 'BMWR') {
if (modelData->newSharedDisplayList(0x40000) == 0) {
if (modelData->newSharedDisplayList(0x40000) != 0) {
return NULL;
} else {
modelData->simpleCalcMaterial(0, (MtxP)j3dDefaultMtx);
modelData->makeSharedDL();
} else {
modelData = NULL;
}
}
+3 -6
View File
@@ -28,7 +28,7 @@ SECTION_SDATA2 static f64 lit_3632 = 4503601774854144.0 /* cast s32 to float */;
/* 80097878-80097904 0921B8 008C+00 0/0 7/7 0/0 .text Init__14d2DBSplinePathFll */
#ifdef NONMATCHING
// regalloc
// matches with literals
void d2DBSplinePath::Init(s32 param_0, s32 param_1) {
s32 tmp;
s32 tmp2;
@@ -38,11 +38,8 @@ void d2DBSplinePath::Init(s32 param_0, s32 param_1) {
field_0x08 = 1;
field_0x0c = param_1;
if (field_0x0c != 0) {
tmp2 = field_0x0c - 1;
}
field_0x04 < 2 ? tmp = 1 : tmp = field_0x04 - 2;
tmp2 = field_0x0c != 0 ? field_0x0c - 1 : 1;
tmp = field_0x04 < 2 ? 1 : field_0x04 - 2;
field_0x10 = (f32)tmp / (f32)tmp2;
field_0x2c = 0;
+10 -46
View File
@@ -6,6 +6,7 @@
#include "d/d_stage.h"
#include "JSystem/JKernel/JKRAramArchive.h"
#include "JSystem/JKernel/JKRExpHeap.h"
#include "d/d_path.h"
#include "stdio.h"
#include "SSystem/SComponent/c_malloc.h"
#include "d/com/d_com_inf_game.h"
@@ -1626,37 +1627,25 @@ SECTION_DEAD static char const* const stringBase_80378AF0 =
/* 80024954-80024A34 01F294 00E0+00 0/0 2/2 0/2 .text resetArchiveBank__20dStage_roomControl_cFi
*/
// regalloc
#ifdef NONMATCHING
bool dStage_roomControl_c::resetArchiveBank(int i_bank) {
for (; i_bank < 32; i_bank++) {
char* bank = getArcBank(i_bank);
for (int i = i_bank; i < 32; i++) {
char* bank = getArcBank(i);
if (strcmp(bank, "")) {
s32 syncStatus = dComIfG_syncObjectRes(bank);
if (syncStatus < 0) {
OSReport_Error("Bank[%d] : %s.arc Sync Read Error !!\n", i_bank, bank);
OSReport_Error("Bank[%d] : %s.arc Sync Read Error !!\n", i, bank);
} else {
if (syncStatus > 0) {
return 0;
}
dComIfG_deleteObjectResMain(bank);
setArcBank(i_bank, "");
setArcBank(i, "");
}
}
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm bool dStage_roomControl_c::resetArchiveBank(int param_0) {
nofralloc
#include "asm/d/d_stage/resetArchiveBank__20dStage_roomControl_cFi.s"
}
#pragma pop
#endif
/* 80024A34-80024ABC 01F374 0088+00 1/1 0/0 0/2 .text
* create__Q220dStage_roomControl_c9roomDzs_cFUc */
@@ -2366,8 +2355,6 @@ static int dStage_doorInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum,
}
/* 80025DA8-80025E40 0206E8 0098+00 2/0 0/0 0/0 .text dStage_roomReadInit__FP11dStage_dt_cPviPv */
// close
#ifdef NONMATCHING
static int dStage_roomReadInit(dStage_dt_c* param_0, void* i_data, int param_2, void* param_3) {
roomRead_class* p_node = (roomRead_class*)((int*)i_data + 1);
roomRead_data_class** rtbl = p_node->field_0x4;
@@ -2376,24 +2363,13 @@ static int dStage_roomReadInit(dStage_dt_c* param_0, void* i_data, int param_2,
for (int i = 0; i < p_node->field_0x0; i++) {
if ((int)rtbl[i] < 0x80000000) {
rtbl[i] += (int)param_3;
rtbl[i]->field_0x4 += (int)param_3;
rtbl[i] = (roomRead_data_class*)((int)rtbl[i] + (int)param_3);
rtbl[i]->field_0x4 = (u8*)((int)rtbl[i]->field_0x4 + (int)param_3);
}
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm int dStage_roomReadInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_roomReadInit__FP11dStage_dt_cPviPv.s"
}
#pragma pop
#endif
/* 80025E40-80025E70 020780 0030+00 0/0 1/1 0/0 .text
* dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */
@@ -2412,8 +2388,6 @@ static int dStage_ppntInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum,
}
/* 80025EA4-80025F44 0207E4 00A0+00 1/0 0/0 0/0 .text dStage_pathInfoInit__FP11dStage_dt_cPviPv */
// close
#ifdef NONMATCHING
static int dStage_pathInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) {
dStage_dPath_c* path_c = (dStage_dPath_c*)((char*)i_data + 4);
dPath* path = path_c->m_path;
@@ -2422,24 +2396,14 @@ static int dStage_pathInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum,
for (int i = 0; i < path_c->m_num; i++) {
if ((u32)path->m_points < 0x80000000) {
path->m_points += (int)stageDt->getPntInf();
// fake match?
path->m_points = (dStage_dPnt_c*)((int)path->m_points + *(int*)&stageDt->getPntInf()->m_position);
}
path++;
}
return 1;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm int dStage_pathInfoInit(dStage_dt_c* param_0, void* param_1, int param_2,
void* param_3) {
nofralloc
#include "asm/d/d_stage/dStage_pathInfoInit__FP11dStage_dt_cPviPv.s"
}
#pragma pop
#endif
/* 80025F44-80025F78 020884 0034+00 2/0 0/0 0/0 .text dStage_rppnInfoInit__FP11dStage_dt_cPviPv */
static int dStage_rppnInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) {
@@ -3157,7 +3121,7 @@ int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3,
}
dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, (s8)scls_info->mRoom, (s8)layer,
speed, mode, 1, wipe == 15 ? 0 : wipe, angle, param_3 != false,
speed, mode, 1, wipe == 15 ? 0 : wipe, angle, param_3 ? 1 : 0,
wipe_time);
return 1;
}
+19 -14
View File
@@ -9,6 +9,8 @@
#include "d/file/d_file_select.h"
#include "d/file/d_file_sel_info.h"
#include "JSystem/J2DGraph/J2DAnmLoader.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "JSystem/J3DGraphAnimator/J3DMaterialAnm.h"
#include "d/meter/d_meter2_info.h"
#include "f_op/f_op_msg_mng.h"
#include "dol2asm.h"
@@ -441,7 +443,7 @@ SECTION_DATA static u8 cNullVec__6Z2Calc[12] = {
};
/* 803BA854-803BA860 017974 000C+00 3/3 0/0 0/0 .data SelStartFrameTbl */
SECTION_DATA static u32 SelStartFrameTbl[3] = {
SECTION_DATA static s32 SelStartFrameTbl[3] = {
0x0000003B,
0x00000063,
0x0000008B,
@@ -455,14 +457,14 @@ SECTION_DATA static s32 SelEndFrameTbl[3] = {
};
/* 803BA86C-803BA878 01798C 000C+00 7/7 0/0 0/0 .data SelOpenStartFrameTbl */
SECTION_DATA static u32 SelOpenStartFrameTbl[3] = {
SECTION_DATA static s32 SelOpenStartFrameTbl[3] = {
0x000000F8,
0x000001C0,
0x00000288,
};
/* 803BA878-803BA884 017998 000C+00 7/7 0/0 0/0 .data SelOpenEndFrameTbl */
SECTION_DATA static u32 SelOpenEndFrameTbl[3] = {
SECTION_DATA static s32 SelOpenEndFrameTbl[3] = {
0x00000103,
0x000001CC,
0x00000293,
@@ -2693,14 +2695,14 @@ asm void dFile_select_c::dataSelectAnmSet() {
/* 80185DE0-80186088 180720 02A8+00 1/0 0/0 0/0 .text dataSelectMoveAnime__14dFile_select_cFv */
#ifdef NONMATCHING
// still alot wrong
// matches with literals
void dFile_select_c::dataSelectMoveAnime() {
int iVar7 = 1;
int iVar6 = 1;
bool iVar7 = true;
bool iVar6 = true;
bool bVar1 = true;
if (mLastSelectNum != 0xff) {
field_0x0188[mLastSelectNum]->alphaAnime(g_fsHIO.field_0x0006,0xff,0,1);
selectWakuAlpahAnm(mLastSelectNum);
iVar7 = field_0x0188[mLastSelectNum]->alphaAnime(g_fsHIO.field_0x0006,0xff,0,1);
iVar6 = selectWakuAlpahAnm(mLastSelectNum);
if (field_0x00e0[mLastSelectNum] != SelStartFrameTbl[mLastSelectNum]) {
field_0x00e0[mLastSelectNum] = field_0x00e0[mLastSelectNum] - 2;
@@ -2714,16 +2716,16 @@ void dFile_select_c::dataSelectMoveAnime() {
}
}
int iVar5 = 1;
bool iVar5 = true;
bool bVar2 = true;
if (mSelectNum != 0xff) {
field_0x0188[mSelectNum]->alphaAnime(g_fsHIO.field_0x0006,0,0xff,1);
iVar5 = field_0x0188[mSelectNum]->alphaAnime(g_fsHIO.field_0x0006,0,0xff,1);
if (field_0x00e0[mSelectNum] != SelEndFrameTbl[mSelectNum]) {
field_0x00e0[mSelectNum] = field_0x00e0[mSelectNum] + 2;
if (SelEndFrameTbl[mSelectNum] < field_0x00e0[mSelectNum])
if (field_0x00e0[mSelectNum] > SelEndFrameTbl[mSelectNum])
field_0x00e0[mSelectNum] = SelEndFrameTbl[mSelectNum];
field_0x0084->setFrame(field_0x00e0[mSelectNum]);
@@ -2732,7 +2734,7 @@ void dFile_select_c::dataSelectMoveAnime() {
}
}
if (iVar7 == 1 && iVar6 == 1 && bVar1 && (iVar5 == 1 && !bVar2)) {
if (iVar7 == true && iVar6 == true && bVar1 == true && iVar5 == true && bVar2 == true) {
if (mSelectNum != 0xff) {
field_0x00bc[mSelectNum]->getPanePtr()->setAnimation((J2DAnmTransform*)0);
selFileCursorShow();
@@ -5719,9 +5721,10 @@ asm void dDlst_FileSelCp_c::draw() {
/* 8018E0C0-8018E0F8 188A00 0038+00 1/0 0/0 0/0 .text draw__17dDlst_FileSelYn_cFv */
#ifdef NONMATCHING
// matches with literals
void dDlst_FileSelYn_c::draw() {
J2DGrafContext* graf = dComIfGp_getCurrentGrafPort();
mpScreen->draw(0.0f, 0.0f, graf);
ScrYn->draw(0.0f, 0.0f, graf);
}
#else
#pragma push
@@ -5736,9 +5739,10 @@ asm void dDlst_FileSelYn_c::draw() {
/* 8018E0F8-8018E130 188A38 0038+00 1/0 0/0 0/0 .text draw__17dDlst_FileSel3m_cFv */
#ifdef NONMATCHING
// matches with literals
void dDlst_FileSel3m_c::draw() {
J2DGrafContext* graf = dComIfGp_getCurrentGrafPort();
mpScreen->draw(0.0f, 0.0f, graf);
Scr3m->draw(0.0f, 0.0f, graf);
}
#else
#pragma push
@@ -6603,6 +6607,7 @@ bool dFile_select_c::fileRecScaleAnm() {
/* 8018FE64-8018FEF4 18A7A4 0090+00 2/2 0/0 0/0 .text fileRecScaleAnmInitSet2__14dFile_select_cFff
*/
#ifdef NONMATCHING
// matches with literals
void dFile_select_c::fileRecScaleAnmInitSet2(f32 param_1, f32 param_2) {
for (int i = 0; (int)i < 3; i++) {
field_0x00c8[i] = param_1;
+295 -313
View File
@@ -6,10 +6,13 @@
#include "d/kankyo/d_kankyo.h"
#include "JSystem/J3DGraphBase/J3DMaterial.h"
#include "SSystem/SComponent/c_counter.h"
#include "SSystem/SComponent/c_math.h"
#include "d/a/d_a_player.h"
#include "d/meter/d_meter2_info.h"
#include "dol2asm.h"
#include "m_Do/m_Do_graphic.h"
#include "rel/d/a/kytag/d_a_kytag08/d_a_kytag08.h"
#include "d/kankyo/d_kankyo_rain.h"
#include "d/kankyo/d_kankyo_static.h"
#include "string.h"
@@ -995,60 +998,62 @@ SECTION_SDATA2 static f32 lit_4509 = 4.0f;
SECTION_SDATA2 static f32 lit_4510 = -2.0f;
/* 8019D2C4-8019D44C 197C04 0188+00 3/2 0/0 0/0 .text dKy_GXInitLightSpot__FP12J3DLightInfofUc */
// should be equivalent, but storing floats in psq registers?
// matches with literals
#ifdef NONMATCHING
static void dKy_GXInitLightSpot(J3DLightInfo* param_0, f32 param_1, u8 param_2) {
if (param_1 <= 0.0f || param_1 > 90.0f) {
param_2 = 0;
}
f32 temp_f1;
f32 var_f4 = cosf((param_1 * M_PI) / 180.0f);
Vec var_f6;
f32 x, y, z;
switch (param_2) {
case 1:
var_f6.x = var_f4 * -1000.0f;
var_f6.y = 1000.0f;
var_f6.z = 0.0f;
x = var_f4 * -1000.0f;
y = 1000.0f;
z = 0.0f;
break;
case 2:
var_f6.x = -var_f4 / (1.0f - var_f4);
var_f6.y = 1.0f / (1.0f - var_f4);
var_f6.z = 0.0f;
x = -var_f4 / (1.0f - var_f4);
y = 1.0f / (1.0f - var_f4);
z = 0.0f;
break;
case 3:
var_f6.x = 0.0f;
var_f6.y = -var_f4 / (1.0f - var_f4);
var_f6.z = 1.0f / (1.0f - var_f4);
x = 0.0f;
y = -var_f4 / (1.0f - var_f4);
z = 1.0f / (1.0f - var_f4);
break;
case 4:
f32 temp_f1 = ((1.0f - var_f4) * (1.0f - var_f4));
var_f6.x = (var_f4 * (var_f4 - 2.0f)) / temp_f1;
var_f6.y = 2.0f / temp_f1;
var_f6.z = -1.0f / temp_f1;
temp_f1 = ((1.0f - var_f4) * (1.0f - var_f4));
x = (var_f4 * (var_f4 - 2.0f)) / temp_f1;
y = 2.0f / temp_f1;
z = -1.0f / temp_f1;
break;
case 5:
f32 temp_f1_2 = ((1.0f - var_f4) * (1.0f - var_f4));
var_f6.x = (var_f4 * -4.0f) / temp_f1_2;
var_f6.y = ((var_f4 + 1.0f) * 4.0f) / temp_f1_2;
var_f6.z = -4.0f / temp_f1_2;
temp_f1 = ((1.0f - var_f4) * (1.0f - var_f4));
x = (var_f4 * -4.0f) / temp_f1;
y = ((var_f4 + 1.0f) * 4.0f) / temp_f1;
z = -4.0f / temp_f1;
break;
case 6:
f32 temp_f1_3 = ((1.0f - var_f4) * (1.0f - var_f4));
var_f6.x = 1.0f - (var_f4 * 2.0f * var_f4) / temp_f1_3;
var_f6.y = (var_f4 * 4.0f) / temp_f1_3;
var_f6.z = -2.0f / temp_f1_3;
temp_f1 = ((1.0f - var_f4) * (1.0f - var_f4));
x = 1.0f - (var_f4 * 2.0f * var_f4) / temp_f1;
y = (var_f4 * 4.0f) / temp_f1;
z = -2.0f / temp_f1;
break;
case 0:
var_f6.x = 1.0f;
var_f6.y = 0.0f;
var_f6.z = 0.0f;
default:
x = 1.0f;
y = 0.0f;
z = 0.0f;
break;
}
param_0->mCosAtten.x = var_f6.x;
param_0->mCosAtten.y = var_f6.y;
param_0->mCosAtten.z = var_f6.z;
param_0->mCosAtten.x = x;
param_0->mCosAtten.y = y;
param_0->mCosAtten.z = z;
}
#else
#pragma push
@@ -1204,9 +1209,8 @@ static s16 kankyo_color_ratio_set(u8 i_b0A, u8 i_b0B, f32 i_blendAB0, u8 i_b1A,
s16 a = s16_data_ratio_set(i_b0A, i_b0B, i_blendAB0);
s16 b = s16_data_ratio_set(i_b1A, i_b1B, i_blendAB0);
s16 tmp = s16_data_ratio_set(a, b, i_blendAB1);
s16 rt = tmp + i_add;
s16 rt = dKy_getEnvlight()->mColAllcolRatio * i_mul * (s16)(tmp + i_add);
rt *= g_env_light.mColAllcolRatio * i_mul;
if (rt < 0) {
rt = 0;
}
@@ -1425,22 +1429,24 @@ SECTION_SDATA2 static f32 lit_4852[1 + 1 /* padding */] = {
};
/* 8019DD6C-8019E13C 1986AC 03D0+00 3/3 0/0 0/0 .text dKy_light_influence_id__F4cXyzi */
// regalloc, but equivalent?
// matches with literals
#ifdef NONMATCHING
static int dKy_light_influence_id(cXyz param_0, int param_1) {
f32 var_f31 = 1000000.0f;
int var_r28 = -1;
int var_r27 = -1;
int j;
int var_r25 = -1;
int i;
f32 var_f30 = 800.0f;
if (strcmp(dComIfGp_getStartStageName(), "D_MN09") == 0) {
var_f30 = 250.0f;
}
for (int i = 0; i <= param_1; i++) {
for (int j = 0; j < 100; j++) {
for (i = 0; i <= param_1; i++) {
for (j = 0; j < 100; j++) {
if (g_env_light.mPointLight[j] != NULL && (i == 0 || j != var_r28) &&
g_env_light.mPointLight[j]->mPow > 0.01f)
{
@@ -1493,12 +1499,11 @@ static int dKy_light_influence_id(cXyz param_0, int param_1) {
var_f31 = 1000000.0f;
}
int ret = var_r27;
if (param_1 == 0) {
ret = var_r28;
return var_r28;
} else {
return var_r27;
}
return ret;
}
#else
#pragma push
@@ -1513,16 +1518,17 @@ static asm int dKy_light_influence_id(cXyz param_0, int param_1) {
/* 8019E13C-8019E404 198A7C 02C8+00 2/2 0/0 0/0 .text dKy_eflight_influence_id__F4cXyzi
*/
// regalloc, but equivalent?
// matches with literals
#ifdef NONMATCHING
static int dKy_eflight_influence_id(cXyz param_0, int param_1) {
f32 var_f31 = 1000000.0f;
int var_r28 = -1;
int var_r27 = -1;
int j, i;
for (int i = 0; i <= param_1; i++) {
for (int j = 0; j < 5; j++) {
for (i = 0; i <= param_1; i++) {
for (j = 0; j < 5; j++) {
if (g_env_light.mEfPLight[j] != NULL && (i == 0 || j != var_r28)) {
if (var_f31 > param_0.abs(g_env_light.mEfPLight[j]->mPosition) &&
g_env_light.mEfPLight[j]->mPow > 0.01f)
@@ -1540,12 +1546,11 @@ static int dKy_eflight_influence_id(cXyz param_0, int param_1) {
var_f31 = 1000000.0f;
}
int ret = var_r27;
if (param_1 == 0) {
ret = var_r28;
return var_r28;
} else {
return var_r27;
}
return ret;
}
#else
#pragma push
@@ -2642,13 +2647,14 @@ SECTION_SDATA2 static f32 lit_5840 = 1.0f / 15.0f;
/* 8019FBD4-801A0340 19A514 076C+00 5/3 0/0 0/0 .text
* setLight_palno_get__18dScnKy_env_light_cFPUcPUcPUcPUcPUcPUcPUcPUcPfPiPiPfPUc */
// problems with the loop. most issues should fix with a loop fix
// matches with literals
#ifdef NONMATCHING
void dScnKy_env_light_c::setLight_palno_get(u8* i_envrSel0, u8* i_envrSel1, u8* i_pSelIdx0,
u8* i_pSelIdx1, u8* i_palIdx0A, u8* i_palIdx0B,
u8* i_palIdx1A, u8* i_palIdx1B, f32* i_blendPalAB,
int* i_pSelPalIdx0, int* i_pSelPalIdx1,
f32* i_blendPal01, u8* i_initTimer) {
stage_envr_info_class* envr_p;
u8 psel_idx = 0;
if (*i_initTimer != 0) {
@@ -2668,231 +2674,231 @@ void dScnKy_env_light_c::setLight_palno_get(u8* i_envrSel0, u8* i_envrSel1, u8*
}
}
dKyd_lightSchejule* schedule_p;
for (int i = 0; i < 11; i++) {
schedule_p = &mpSchedule[i];
if (!(mDaytime >= mpSchedule[i].startTime && mDaytime <= mpSchedule[i].endTime)) {
continue;
}
if (mDaytime >= schedule_p->startTime && mDaytime <= schedule_p->endTime) {
*i_pSelPalIdx0 = mpSchedule[i].startTimeLight;
*i_pSelPalIdx1 = mpSchedule[i].endTimeLight;
*i_blendPalAB = get_parcent(mpSchedule[i].endTime, mpSchedule[i].startTime, mDaytime);
envr_p = &g_env_light.mpDmEnvr[*i_envrSel0];
switch (*i_pSelIdx0) {
case 0:
psel_idx = envr_p->m_pselectID[0];
break;
case 1:
psel_idx = envr_p->m_pselectID[1];
break;
case 2:
psel_idx = envr_p->m_pselectID[2];
break;
case 3:
psel_idx = envr_p->m_pselectID[3];
break;
case 4:
psel_idx = envr_p->m_pselectID[4];
break;
case 5:
psel_idx = envr_p->m_pselectID[5];
break;
case 6:
psel_idx = envr_p->m_pselectID[6];
break;
case 7:
psel_idx = envr_p->m_pselectID[7];
break;
default:
if (*i_pSelIdx0 > 7 && *i_pSelIdx0 < 64) {
psel_idx = envr_p->m_pselectID[*i_pSelIdx0];
}
break;
}
}
*i_pSelPalIdx0 = schedule_p->startTimeLight;
*i_pSelPalIdx1 = schedule_p->endTimeLight;
*i_blendPalAB = get_parcent(schedule_p->endTime, schedule_p->startTime, mDaytime);
stage_envr_info_class* envr_p = &g_env_light.mpDmEnvr[*i_envrSel0];
switch (*i_pSelIdx0) {
case 0:
psel_idx = envr_p->m_pselectID[0];
break;
case 1:
psel_idx = envr_p->m_pselectID[1];
break;
case 2:
psel_idx = envr_p->m_pselectID[2];
break;
case 3:
psel_idx = envr_p->m_pselectID[3];
break;
case 4:
psel_idx = envr_p->m_pselectID[4];
break;
case 5:
psel_idx = envr_p->m_pselectID[5];
break;
case 6:
psel_idx = envr_p->m_pselectID[6];
break;
case 7:
psel_idx = envr_p->m_pselectID[7];
break;
default:
if (*i_pSelIdx0 > 7 && *i_pSelIdx0 < 64) {
psel_idx = envr_p->m_pselectID[*i_pSelIdx0];
}
break;
}
if (g_env_light.mCameraInWater != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 &&
strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0)
{
if (g_env_light.mColPatCurr == 0) {
psel_idx = envr_p->m_pselectID[8];
} else {
psel_idx = envr_p->m_pselectID[9];
}
} else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) {
camera_class* camera_p = dComIfGp_getCamera(0);
if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) {
psel_idx = envr_p->m_pselectID[10];
}
}
if (psel_idx > 250) {
psel_idx = 0;
}
stage_pselect_info_class* pselect_p = &g_env_light.mpDmPselect[psel_idx];
switch (*i_pSelPalIdx0) {
case 0:
*i_palIdx0A = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx0A = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx0A = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx0A = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx0A = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx0A = pselect_p->mPalIdx[5];
break;
}
switch (*i_pSelPalIdx1) {
case 0:
*i_palIdx0B = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx0B = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx0B = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx0B = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx0B = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx0B = pselect_p->mPalIdx[5];
break;
}
envr_p = &g_env_light.mpDmEnvr[*i_envrSel1];
switch (*i_pSelIdx1) {
case 0:
psel_idx = envr_p->m_pselectID[0];
break;
case 1:
psel_idx = envr_p->m_pselectID[1];
break;
case 2:
psel_idx = envr_p->m_pselectID[2];
break;
case 3:
psel_idx = envr_p->m_pselectID[3];
break;
case 4:
psel_idx = envr_p->m_pselectID[4];
break;
case 5:
psel_idx = envr_p->m_pselectID[5];
break;
case 6:
psel_idx = envr_p->m_pselectID[6];
break;
case 7:
psel_idx = envr_p->m_pselectID[7];
break;
default:
if (*i_pSelIdx1 > 7 && *i_pSelIdx1 < 64) {
psel_idx = envr_p->m_pselectID[*i_pSelIdx1];
}
break;
}
if (psel_idx > 250) {
psel_idx = 0;
}
pselect_p = &g_env_light.mpDmPselect[psel_idx];
if (*i_envrSel0 != *i_envrSel1 || *i_pSelIdx0 != *i_pSelIdx1) {
if (pselect_p->mChangeRate < 0.033333335f) {
pselect_p->mChangeRate = 0.033333335f;
}
if (g_env_light.mColPatMode == 0) {
if (pselect_p->mChangeRate > 0.0f) {
*i_blendPal01 += 0.033333335f / pselect_p->mChangeRate;
if (g_env_light.mCameraInWater != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0
&& strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0)
{
if (g_env_light.mColPatCurr == 0) {
psel_idx = envr_p->m_pselectID[8];
} else {
psel_idx = envr_p->m_pselectID[9];
}
} else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) {
camera_class* camera_p = dComIfGp_getCamera(0);
if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0 && *i_pSelIdx0 == *i_pSelIdx1)
{
*i_blendPal01 += 0.06666667f;
}
if (*i_blendPal01 >= 1.0f) {
*i_envrSel0 = *i_envrSel1;
*i_pSelIdx0 = *i_pSelIdx1;
*i_blendPal01 = 1.0f;
if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) {
psel_idx = envr_p->m_pselectID[10];
}
}
}
if (g_env_light.mCameraInWater != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0 &&
strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0)
{
if (g_env_light.mColPatCurr == 0) {
pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[8]];
} else {
pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[9]];
if (psel_idx > 250) {
psel_idx = 0;
}
} else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) {
camera_class* camera_p = dComIfGp_getCamera(0);
if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) {
pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[10]];
stage_pselect_info_class* pselect_p = &g_env_light.mpDmPselect[psel_idx];
switch (*i_pSelPalIdx0) {
case 0:
*i_palIdx0A = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx0A = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx0A = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx0A = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx0A = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx0A = pselect_p->mPalIdx[5];
break;
}
}
switch (*i_pSelPalIdx0) {
case 0:
*i_palIdx1A = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx1A = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx1A = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx1A = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx1A = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx1A = pselect_p->mPalIdx[5];
break;
}
switch (*i_pSelPalIdx1) {
case 0:
*i_palIdx0B = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx0B = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx0B = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx0B = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx0B = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx0B = pselect_p->mPalIdx[5];
break;
}
envr_p = &g_env_light.mpDmEnvr[*i_envrSel1];
switch (*i_pSelIdx1) {
case 0:
psel_idx = envr_p->m_pselectID[0];
break;
case 1:
psel_idx = envr_p->m_pselectID[1];
break;
case 2:
psel_idx = envr_p->m_pselectID[2];
break;
case 3:
psel_idx = envr_p->m_pselectID[3];
break;
case 4:
psel_idx = envr_p->m_pselectID[4];
break;
case 5:
psel_idx = envr_p->m_pselectID[5];
break;
case 6:
psel_idx = envr_p->m_pselectID[6];
break;
case 7:
psel_idx = envr_p->m_pselectID[7];
break;
default:
if (*i_pSelIdx1 > 7 && *i_pSelIdx1 < 64) {
psel_idx = envr_p->m_pselectID[*i_pSelIdx1];
}
break;
}
if (psel_idx > 250) {
psel_idx = 0;
}
pselect_p = &g_env_light.mpDmPselect[psel_idx];
if (*i_envrSel0 != *i_envrSel1 || *i_pSelIdx0 != *i_pSelIdx1) {
if (pselect_p->mChangeRate < 0.033333335f) {
pselect_p->mChangeRate = 0.033333335f;
}
if (g_env_light.mColPatMode == 0) {
if (pselect_p->mChangeRate > 0.0f) {
*i_blendPal01 += 0.033333335f / pselect_p->mChangeRate;
}
if (strcmp(dComIfGp_getStartStageName(), "F_SP121") == 0
&& *i_pSelIdx0 == *i_pSelIdx1)
{
*i_blendPal01 += 0.06666667f;
}
if (*i_blendPal01 >= 1.0f) {
*i_envrSel0 = *i_envrSel1;
*i_pSelIdx0 = *i_pSelIdx1;
*i_blendPal01 = 1.0f;
}
}
}
if (g_env_light.mCameraInWater != 0 && strcmp(dComIfGp_getStartStageName(), "D_MN08D") != 0
&& strcmp(dComIfGp_getStartStageName(), "D_MN01A") != 0)
{
if (g_env_light.mColPatCurr == 0) {
pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[8]];
} else {
pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[9]];
}
} else if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) {
camera_class* camera_p = dComIfGp_getCamera(0);
if (camera_p != NULL && camera_p->mLookat.mEye.y < 0.0f) {
pselect_p = &g_env_light.mpDmPselect[envr_p->m_pselectID[10]];
}
}
switch (*i_pSelPalIdx0) {
case 0:
*i_palIdx1A = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx1A = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx1A = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx1A = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx1A = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx1A = pselect_p->mPalIdx[5];
break;
}
switch (*i_pSelPalIdx1) {
case 0:
*i_palIdx1B = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx1B = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx1B = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx1B = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx1B = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx1B = pselect_p->mPalIdx[5];
break;
}
switch (*i_pSelPalIdx1) {
case 0:
*i_palIdx1B = pselect_p->mPalIdx[0];
break;
case 1:
*i_palIdx1B = pselect_p->mPalIdx[1];
break;
case 2:
*i_palIdx1B = pselect_p->mPalIdx[2];
break;
case 3:
*i_palIdx1B = pselect_p->mPalIdx[3];
break;
case 4:
*i_palIdx1B = pselect_p->mPalIdx[4];
break;
case 5:
*i_palIdx1B = pselect_p->mPalIdx[5];
break;
}
@@ -2986,7 +2992,7 @@ inline bool checkZoraWearFlg() {
}
/* 801A040C-801A133C 19AD4C 0F30+00 1/1 0/0 0/0 .text setLight__18dScnKy_env_light_cFv */
// mostly done, a lot of regalloc but should be equivalent or near?
// matches with literals
#ifdef NONMATCHING
void dScnKy_env_light_c::setLight() {
u8* init_timer = &g_env_light.mInitAnmTimer;
@@ -3077,12 +3083,11 @@ void dScnKy_env_light_c::setLight() {
pale0_p->mBgAmbColor3A, pale1_p->mBgAmbColor3A, blendAB, pale2_p->mBgAmbColor3A,
pale3_p->mBgAmbColor3A, g_env_light.mColPatBlend, 0, 1.0f);
mPaletteTerrainLightEffect =
kankyo_color_ratio_set(
pale0_p->mTerrainLightInfluence, pale1_p->mTerrainLightInfluence, blendAB,
pale2_p->mTerrainLightInfluence, pale3_p->mTerrainLightInfluence,
g_env_light.mColPatBlend, 0, 1.0f) *
0.01f;
s16 tmp = kankyo_color_ratio_set(
pale0_p->mTerrainLightInfluence, pale1_p->mTerrainLightInfluence, blendAB,
pale2_p->mTerrainLightInfluence, pale3_p->mTerrainLightInfluence,
g_env_light.mColPatBlend, 0, 1.0f);
mPaletteTerrainLightEffect = tmp * 0.01f;
if (mPaletteTerrainLightEffect > 2.0f) {
mPaletteTerrainLightEffect = 1.0f;
}
@@ -3092,7 +3097,7 @@ void dScnKy_env_light_c::setLight() {
pale2_p->mCloudShadowDensity, pale3_p->mCloudShadowDensity,
g_env_light.mColPatBlend, 0, 1.0f);
if (daPy_py_c::checkNowWolfPowerUp()) {
mFogDensity = 0xFF;
mFogDensity = -1;
}
for (int i = 0; i < 6; i++) {
@@ -3144,8 +3149,8 @@ void dScnKy_env_light_c::setLight() {
f32 temp_f31;
if (g_env_light.field_0x12fc >= 0) {
bloomIdx3 = g_env_light.field_0x12fc;
bloomIdx1 = g_env_light.field_0x12fc;
bloomIdx3 = g_env_light.field_0x12fc;
temp_f31 = blendAB;
blendAB = g_env_light.field_0x1278;
}
@@ -3427,8 +3432,6 @@ asm void dScnKy_env_light_c::setLight() {
/* 801A133C-801A16C0 19BC7C 0384+00 2/2 0/0 0/0 .text
* setLight_bg__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10P11_GXColorS10PfPf */
// regalloc, but equivalent i think
#ifdef NONMATCHING
void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, GXColorS10* param_1,
GXColorS10* param_2, f32* i_fogStartZ, f32* i_fogEndZ) {
i_tevstr->mColpatPrev = g_env_light.mColPatPrev;
@@ -3445,6 +3448,7 @@ void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, GXColorS10* param_1
f32 blendAB;
int palIdx0;
int palIdx1;
int i;
setLight_palno_get(&i_tevstr->mEnvrIdxPrev, &i_tevstr->mEnvrIdxCurr, &i_tevstr->mColpatPrev,
&i_tevstr->mColpatCurr, &pale0, &pale1, &pale2, &pale3, &blendAB, &palIdx0,
&palIdx1, &i_tevstr->mColpatBlend, &i_tevstr->mInitTimer);
@@ -3477,7 +3481,7 @@ void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, GXColorS10* param_1
param_1[0].a = 255;
GXColorS10 sp50[6];
for (int i = 0; i < 6; i++) {
for (i = 0; i < 6; i++) {
dKy_calc_color_set(&sp50[i], &pale0_p->mPlightColor[i], &pale2_p->mPlightColor[i],
&pale1_p->mPlightColor[i], &pale3_p->mPlightColor[i], blendAB,
i_tevstr->mColpatBlend, mBgAddColAmb, g_env_light.mColBgColRatio);
@@ -3518,17 +3522,6 @@ void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* i_tevstr, GXColorS10* param_1
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dScnKy_env_light_c::setLight_bg(dKy_tevstr_c* param_0, _GXColorS10* param_1,
_GXColorS10* param_2, f32* param_3, f32* param_4) {
nofralloc
#include "asm/d/kankyo/d_kankyo/setLight_bg__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10P11_GXColorS10PfPf.s"
}
#pragma pop
#endif
/* 801A16C0-801A1D64 19C000 06A4+00 1/1 0/0 0/0 .text
* setLight_actor__18dScnKy_env_light_cFP12dKy_tevstr_cP11_GXColorS10PfPf */
@@ -3543,6 +3536,7 @@ void dScnKy_env_light_c::setLight_actor(dKy_tevstr_c* i_tevstr, GXColorS10* i_fo
f32 blendAB;
int palIdx0;
int palIdx1;
int i;
i_tevstr->mColpatPrev = g_env_light.mColPatPrev;
i_tevstr->mColpatCurr = g_env_light.mColPatCurr;
@@ -3590,7 +3584,7 @@ void dScnKy_env_light_c::setLight_actor(dKy_tevstr_c* i_tevstr, GXColorS10* i_fo
}
GXColorS10 sp88[6];
for (int i = 0; i < 6; i++) {
for (i = 0; i < 6; i++) {
J3DLightInfo& light_info = i_tevstr->mLights[i].getLightInfo();
if (i == 0) {
@@ -3819,36 +3813,25 @@ asm void dScnKy_env_light_c::settingTevStruct_colget_player(dKy_tevstr_c* param_
#endif
/* 801A2090-801A2128 19C9D0 0098+00 1/1 0/0 0/0 .text cLib_addCalcU8__FPUcUcss */
// regalloc / extra clrlwis
#ifdef NONMATCHING
static void cLib_addCalcU8(u8* i_value, u8 param_1, s16 param_2, s16 param_3) {
u8 temp_r30 = *i_value;
static void cLib_addCalcU8(u8* i_value, u8 i_target, s16 i_scale, s16 i_maxStep) {
s16 step, value;
value = *i_value;
s16 var_r31 = param_1 - *i_value;
if (abs(var_r31) >= param_2) {
var_r31 /= param_2;
step = i_target - value;
if (abs(step) >= i_scale) {
step /= i_scale;
}
if (var_r31 > param_3) {
temp_r30 += param_3;
} else if (var_r31 < -param_3) {
temp_r30 -= param_3;
if (step > i_maxStep) {
value += i_maxStep;
} else if (step < -i_maxStep) {
value -= i_maxStep;
} else {
temp_r30 += var_r31;
value += step;
}
*i_value = temp_r30;
*i_value = value;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void cLib_addCalcU8(u8* param_0, u8 param_1, s16 param_2, s16 param_3) {
nofralloc
#include "asm/d/kankyo/d_kankyo/cLib_addCalcU8__FPUcUcss.s"
}
#pragma pop
#endif
/* ############################################################################################## */
/* 80453D14-80453D18 002314 0004+00 1/1 0/0 0/0 .sdata2 @6761 */
@@ -4033,7 +4016,7 @@ void dScnKy_env_light_c::settingTevStruct(int i_tevstrType, cXyz* param_1, dKy_t
dKyr_get_vectle_calc(&spA4, &temp_r30->mLookat.mEye, &sp98);
for (int i = 0; i < 6; i++) {
J3DLightInfo& light_info = i_tevstr->field_0x074[i].getLightInfo();
J3DLightInfo& light_info = i_tevstr->mLights[i].getLightInfo();
if (i == 0) {
if (!dKy_darkworld_check()) {
@@ -4151,7 +4134,7 @@ void dScnKy_env_light_c::settingTevStruct(int i_tevstrType, cXyz* param_1, dKy_t
fog_z_end = 30000.0f;
for (int i = 0; i < 6; i++) {
J3DLightInfo& temp_r31 = i_tevstr->field_0x074[i].getLightInfo();
J3DLightInfo& temp_r31 = i_tevstr->mLights[i].getLightInfo();
if (i == 0) {
if (i_tevstrType == 12) {
@@ -4376,8 +4359,7 @@ void dScnKy_env_light_c::settingTevStruct(int i_tevstrType, cXyz* param_1, dKy_t
light_info.mDistAtten.z = 0.0f;
}
i_tevstr->mLightPosWorld = g_env_light.mBaseLightInfluence.mPosition;
// i_tevstr->mLightPosWorld = env_light->mBaseLightInfluence.mPosition;
i_tevstr->mLightPosWorld = env_light->mBaseLightInfluence.mPosition;
}
field_0x10f0.a = 255;
@@ -4560,7 +4542,7 @@ asm void dScnKy_env_light_c::SetBaseLight() {
/* 801A5288-801A56DC 19FBC8 0454+00 1/1 0/0 0/0 .text exeKankyo__18dScnKy_env_light_cFv
*/
// regalloc
// one instruction swap
#ifdef NONMATCHING
void dScnKy_env_light_c::exeKankyo() {
for (int i = 0; i < 6; i++) {
@@ -4569,13 +4551,13 @@ void dScnKy_env_light_c::exeKankyo() {
if (field_0x0d58[i].field_0x26 != 0) {
field_0x0d58[i].field_0x26 = 0;
dKy_BossLight_set(&field_0x0d58[i].mPos, &field_0x0d58[i].mColor,
field_0x0d58[i].field_0x10, 0);
field_0x0d58[i].mRefDistance, 0);
}
}
g_env_light.mColPatMode = g_env_light.mColPatModeGather;
if (!dComIfGp_event_runCheck() && g_env_light.mColPatModeGather != 0) {
if (dComIfGp_event_runCheck() == false && g_env_light.mColPatModeGather != 0) {
if (g_env_light.mColPatModeGather >= 3) {
g_env_light.mColPatModeGather = 0;
} else {
@@ -4616,7 +4598,7 @@ void dScnKy_env_light_c::exeKankyo() {
if (g_env_light.mColpatCurrGather != 0xFF) {
g_env_light.mColPatCurr = g_env_light.mColpatCurrGather;
g_env_light.mColpatCurrGather = 0xFF;
g_env_light.mColpatWeather = g_env_light.mColpatCurrGather;
g_env_light.mColpatWeather = g_env_light.mColPatCurr;
}
if (g_env_light.mColPatBlendGather >= 0.0f) {
@@ -4673,7 +4655,7 @@ void dScnKy_env_light_c::exeKankyo() {
}
if (strcmp(dComIfGp_getStartStageName(), "R_SP127") == 0) {
if ((dCam_getBody()->mCurMode == 4 || dCam_getBody()->mCurMode == 7) &&
if ((dCam_getBody()->Mode() == 4 || dCam_getBody()->Mode() == 7) &&
dComIfGp_event_runCheck())
{
cLib_addCalc(&g_env_light.mDemoAttentionPoint, 0.0f, 0.5f, 0.1f, 1E-05f);
@@ -5572,7 +5554,7 @@ void dKy_tevstr_init(dKy_tevstr_c* p_tevstr, s8 roomNo, u8 param_2) {
p_tevstr->mLightObj.mInfo.mDistAtten.z = 0.0f;
for (int i = 0; i < 6; i++) {
J3DLightObj* tev_light_p = &p_tevstr->field_0x074[i];
J3DLightObj* tev_light_p = &p_tevstr->mLights[i];
LightStatus* light_data_p = &lightStatusData[i];
tev_light_p->mInfo.mLightPosition = light_data_p->field_0x0;
+63 -622
View File
@@ -1,7 +1,7 @@
//
// Generated By: dol2asm
// Translation Unit: d/kankyo/d_kankyo_wether
//
/**
* d_kankyo_wether.cpp
* Weather Effects
*/
#include "d/kankyo/d_kankyo_wether.h"
#include "JSystem/J3DGraphBase/J3DDrawBuffer.h"
@@ -9,221 +9,11 @@
#include "d/com/d_com_inf_game.h"
#include "d/kankyo/d_kankyo.h"
#include "d/kankyo/d_kankyo_rain.h"
#include "dol2asm.h"
#include "string.h"
#include "m_Do/m_Do_audio.h"
//
// Forward References:
//
extern "C" static void dKyw_setDrawPacketList__FP9J3DPacketi();
extern "C" static void dKyw_setDrawPacketListIndScreen__FP9J3DPacketi();
extern "C" static void dKyw_setDrawPacketListSky__FP9J3DPacketi();
extern "C" static void dKyw_setDrawPacketListXluBg__FP9J3DPacketi();
extern "C" void draw__18dKankyo_sun_PacketFv();
extern "C" void draw__22dKankyo_sunlenz_PacketFv();
extern "C" void __dt__8RAIN_EFFFv();
extern "C" void __ct__8RAIN_EFFFv();
extern "C" void draw__19dKankyo_rain_PacketFv();
extern "C" void __dt__8SNOW_EFFFv();
extern "C" void __ct__8SNOW_EFFFv();
extern "C" void draw__19dKankyo_snow_PacketFv();
extern "C" void __dt__8STAR_EFFFv();
extern "C" void __ct__8STAR_EFFFv();
extern "C" void draw__19dKankyo_star_PacketFv();
extern "C" void __dt__9CLOUD_EFFFv();
extern "C" void __ct__9CLOUD_EFFFv();
extern "C" void draw__20dKankyo_cloud_PacketFv();
extern "C" void __dt__9HOUSI_EFFFv();
extern "C" void __ct__9HOUSI_EFFFv();
extern "C" void draw__20dKankyo_housi_PacketFv();
extern "C" void __dt__10VRKUMO_EFFFv();
extern "C" void __ct__10VRKUMO_EFFFv();
extern "C" void draw__21dKankyo_vrkumo_PacketFv();
extern "C" void __dt__12EF_ODOUR_EFFFv();
extern "C" void __ct__12EF_ODOUR_EFFFv();
extern "C" void draw__20dKankyo_odour_PacketFv();
extern "C" void __dt__10EF_MUD_EFFFv();
extern "C" void __ct__10EF_MUD_EFFFv();
extern "C" void draw__18dKankyo_mud_PacketFv();
extern "C" void __dt__11EF_EVIL_EFFFv();
extern "C" void __ct__11EF_EVIL_EFFFv();
extern "C" void draw__19dKankyo_evil_PacketFv();
extern "C" static void dKyw_drawSun__Fi();
extern "C" static void dKyw_Sun_Draw__Fv();
extern "C" static void dKyw_drawSunlenz__Fi();
extern "C" static void dKyw_Sunlenz_Draw__Fv();
extern "C" static void dKyw_drawRain__Fi();
extern "C" static void dKyw_Rain_Draw__Fv();
extern "C" static void dKyw_drawSnow__Fi();
extern "C" static void dKyw_Snow_Draw__Fv();
extern "C" static void dKyw_drawStar__Fi();
extern "C" static void dKyw_Star_Draw__Fv();
extern "C" static void dKyw_drawHousi__Fi();
extern "C" static void dKyw_Housi_Draw__Fv();
extern "C" static void dKyw_drawCloud__Fi();
extern "C" static void dKyw_Cloud_Draw__Fv();
extern "C" static void dKyw_drawVrkumo__Fi();
extern "C" static void dKyw_Vrkumo_Draw__Fv();
extern "C" static void dKyw_shstar_packet__Fi();
extern "C" static void dKyw_shstar_Draw__Fv();
extern "C" static void dKyw_odour_packet__Fi();
extern "C" static void dKyw_Odour_Draw__Fv();
extern "C" static void dKyw_mud_packet__Fi();
extern "C" static void dKyw_mud_Draw__Fv();
extern "C" static void dKyw_evil_packet__Fi();
extern "C" static void dKyw_evil_Draw__Fv();
extern "C" void dKyw_wether_init__Fv();
extern "C" void dKyw_wether_init2__Fv();
extern "C" void dKyw_wether_delete__Fv();
extern "C" void __dt__19dKankyo_evil_PacketFv();
extern "C" void __dt__18dKankyo_mud_PacketFv();
extern "C" void __dt__20dKankyo_odour_PacketFv();
extern "C" void __dt__20dKankyo_cloud_PacketFv();
extern "C" void __dt__20dKankyo_housi_PacketFv();
extern "C" void __dt__19dKankyo_star_PacketFv();
extern "C" void __dt__19dKankyo_snow_PacketFv();
extern "C" void __dt__19dKankyo_rain_PacketFv();
extern "C" void __dt__22dKankyo_sunlenz_PacketFv();
extern "C" void __dt__18dKankyo_sun_PacketFv();
extern "C" void dKyw_wether_delete2__Fv();
extern "C" void __dt__21dKankyo_vrkumo_PacketFv();
extern "C" static void wether_move_thunder__Fv();
extern "C" void dKyw_wether_move__Fv();
extern "C" static void wether_move_sun__Fv();
extern "C" static void wether_move_rain__Fv();
extern "C" static void wether_move_snow__Fv();
extern "C" static void wether_move_star__Fv();
extern "C" static void wether_move_housi__Fv();
extern "C" static void wether_move_odour__Fv();
extern "C" static void wether_move_moya__Fv();
extern "C" static void wether_move_vrkumo__Fv();
extern "C" static void wether_move_mud__Fv();
extern "C" static void wether_move_evil__Fv();
extern "C" void dKyw_wether_move_draw__Fv();
extern "C" void dKyw_wether_move_draw2__Fv();
extern "C" void dKyw_wether_draw__Fv();
extern "C" void dKyw_wether_draw2__Fv();
extern "C" void dKyw_wether_proc__Fv();
extern "C" static void dKyw_wind_init__Fv();
extern "C" void dKyw_wind_set__Fv();
extern "C" void dKyw_get_wind_vec__Fv();
extern "C" void dKyw_get_wind_pow__Fv();
extern "C" void dKyw_get_wind_vecpow__Fv();
extern "C" void dKyw_plight_collision_set__FP4cXyzssfffff();
extern "C" static void squal_proc__Fv();
extern "C" static void dKyw_pntwind_init__Fv();
extern "C" static void pntwind_set__FP14WIND_INFLUENCE();
extern "C" void dKyw_pntwind_set__FP14WIND_INFLUENCE();
extern "C" static void dKyw_pntlight_set__FP14WIND_INFLUENCE();
extern "C" void dKyw_pntwind_cut__FP14WIND_INFLUENCE();
extern "C" static void pntwind_get_info__FP4cXyzP4cXyzPfUc();
extern "C" static void dKyw_pntwind_get_info__FP4cXyzP4cXyzPf();
extern "C" void dKyw_pntlight_collision_get_info__FP4cXyzP4cXyzPf();
extern "C" void dKyw_pntwind_get_vecpow__FP4cXyz();
extern "C" void dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf();
extern "C" void dKyw_get_AllWind_vecpow__FP4cXyz();
extern "C" void dKyw_custom_windpower__Ff();
extern "C" void dKyw_evt_wind_set__Fss();
extern "C" void dKyw_evt_wind_set_go__Fv();
extern "C" void dKyw_rain_set__Fi();
extern "C" extern char const* const d_kankyo_d_kankyo_wether__stringBase0;
//
// External References:
//
extern "C" void __dt__4cXyzFv();
extern "C" void __ct__4cXyzFv();
extern "C" void getStatusRoomDt__20dStage_roomControl_cFi();
extern "C" void getLayerNo__14dComIfG_play_cFi();
extern "C" void dComIfGp_getReverb__Fi();
extern "C" void dComIfG_getStageRes__FPCc();
extern "C" void getRes__14dRes_control_cFPCclP11dRes_info_ci();
extern "C" void
set__13dPa_control_cFUcUsPC4cXyzPC12dKy_tevstr_cPC5csXyzPC4cXyzUcP18dPa_levelEcallBackScPC8_GXColorPC8_GXColorPC4cXyzf();
extern "C" void dKyr_get_vectle_calc__FP4cXyzP4cXyzP4cXyz();
extern "C" void dKyr_lenzflare_move__Fv();
extern "C" void dKyr_sun_move__Fv();
extern "C" void dKyr_rain_init__Fv();
extern "C" void dKyr_rain_move__Fv();
extern "C" void dKyr_housi_move__Fv();
extern "C" void dKyr_snow_init__Fv();
extern "C" void dKyr_snow_move__Fv();
extern "C" void dKyr_star_init__Fv();
extern "C" void dKyr_star_move__Fv();
extern "C" void cloud_shadow_move__Fv();
extern "C" void vrkumo_move__Fv();
extern "C" void dKyr_drawSun__FPA4_fP4cXyzR8_GXColorPPUc(f32 (*param_0)[4], cXyz* param_1,
_GXColor& param_2, u8** param_3);
extern "C" void dKyr_drawLenzflare__FPA4_fP4cXyzR8_GXColorPPUc();
extern "C" void dKyr_drawRain__FPA4_fPPUc();
extern "C" void dKyr_drawSibuki__FPA4_fPPUc();
extern "C" void dKyr_drawHousi__FPA4_fPPUc();
extern "C" void dKyr_drawSnow__FPA4_fPPUc();
extern "C" void dKyr_drawStar__FPA4_fPPUc();
extern "C" void drawCloudShadow__FPA4_fPPUc();
extern "C" void drawVrkumo__FPA4_fR8_GXColorPPUc();
extern "C" void dKyr_thunder_init__Fv();
extern "C" void dKyr_thunder_move__Fv();
extern "C" void dKyr_shstar_init__Fv();
extern "C" void dKyr_shstar_move__Fv();
extern "C" void dKyr_odour_init__Fv();
extern "C" void dKyr_odour_move__Fv();
extern "C" void dKyr_odour_draw__FPA4_fPPUc();
extern "C" void dKyr_mud_init__Fv();
extern "C" void dKyr_mud_move__Fv();
extern "C" void dKyr_mud_draw__FPA4_fPPUc();
extern "C" void dKyr_evil_init__Fv();
extern "C" void dKyr_evil_move__Fv();
extern "C" void dKyr_evil_draw__FPA4_fPPUc();
extern "C" void getDaytime__18dScnKy_env_light_cFv();
extern "C" void dKy_undwater_filter_draw__Fv();
extern "C" void dKy_get_dayofweek__Fv();
extern "C" void dKy_darkworld_check__Fv();
extern "C" void __pl__4cXyzCFRC3Vec();
extern "C" void __ml__4cXyzCFf();
extern "C" void normZP__4cXyzCFv();
extern "C" bool __ne__4cXyzCFRC3Vec();
extern "C" void cM_atan2s__Fff();
extern "C" void cLib_addCalc__FPfffff();
extern "C" void seStart__7Z2SeMgrF10JAISoundIDPC3VecUlScffffUc();
extern "C" void startRainSe__10Z2EnvSeMgrFlSc();
extern "C" void initStrongWindSe__10Z2EnvSeMgrFv();
extern "C" void setWindDirection__10Z2EnvSeMgrFP3Vec();
extern "C" void startStrongWindSe__10Z2EnvSeMgrFSc();
extern "C" void* __nw__FUli();
extern "C" void __dl__FPv();
extern "C" bool entry__9J3DPacketFP13J3DDrawBuffer();
extern "C" void entryImm__13J3DDrawBufferFP9J3DPacketUs();
extern "C" void __register_global_object();
extern "C" void __destroy_arr();
extern "C" void __construct_array();
extern "C" void _savegpr_24();
extern "C" void _savegpr_25();
extern "C" void _savegpr_26();
extern "C" void _savegpr_28();
extern "C" void _savegpr_29();
extern "C" void _restgpr_24();
extern "C" void _restgpr_25();
extern "C" void _restgpr_26();
extern "C" void _restgpr_28();
extern "C" void _restgpr_29();
extern "C" extern void* __vt__9J3DPacket[5];
extern "C" extern dScnKy_env_light_c g_env_light;
extern "C" extern Z2EnvSeMgr g_mEnvSeMgr;
extern "C" f32 Zero__4cXyz[3];
extern "C" u8 sincosTable___5JMath[65536];
extern "C" extern u8 data_80450EE0;
extern "C" u8 mAudioMgrPtr__10Z2AudioMgr[4 + 4 /* padding */];
static void dKyw_pntlight_set(WIND_INFLUENCE* pntwind);
//
// Declarations:
//
/* 80056AA8-80056AF8 0513E8 0050+00 3/3 0/0 0/0 .text dKyw_setDrawPacketList__FP9J3DPacketi */
static J3DPacket* dKyw_setDrawPacketList(J3DPacket* i_packet, int i_type) {
if (i_packet == NULL) {
@@ -504,35 +294,6 @@ static void dKyw_evil_Draw() {
dKyw_evil_packet(J3DSys_XLU_BUFFER_e);
}
/* 804520E0-804520E4 0006E0 0004+00 12/12 0/0 0/0 .sdata2 @4378 */
SECTION_SDATA2 static u8 lit_4378[4] = {
0x00,
0x00,
0x00,
0x00,
};
/* 804520E4-804520E8 0006E4 0004+00 11/11 0/0 0/0 .sdata2 @4379 */
SECTION_SDATA2 static f32 lit_4379 = 1.0f;
// remove these once float data is fixed
inline JPABaseEmitter* tmp_dComIfGp_particle_set(u16 param_1, const cXyz* param_2,
const dKy_tevstr_c* param_3, const csXyz* param_4,
const cXyz* param_5, u8 param_6,
dPa_levelEcallBack* param_7, s8 param_8,
const GXColor* param_9, const GXColor* param_10,
const cXyz* param_11) {
return g_dComIfG_gameInfo.play.getParticle()->setNormal(param_1, param_2, param_3, param_4,
param_5, param_6, param_7, param_8,
param_9, param_10, param_11, lit_4379);
}
inline JPABaseEmitter* tmp_dComIfGp_particle_set(u16 param_0, const cXyz* param_1,
const csXyz* param_2, const cXyz* param_3) {
return tmp_dComIfGp_particle_set(param_0, param_1, NULL, param_2, param_3, 0xFF, NULL, -1, NULL,
NULL, NULL);
}
/* 800574E0-800579EC 051E20 050C+00 0/0 1/1 0/0 .text dKyw_wether_init__Fv */
void dKyw_wether_init() {
g_env_light.mSunInitialized = false;
@@ -547,11 +308,10 @@ void dKyw_wether_init() {
g_env_light.field_0xe91 = 0;
g_env_light.mStarInitialized = false;
g_env_light.mStarCount = 0;
f32 tmp0 = FLOAT_LABEL(lit_4378);
g_env_light.mStarDensity = tmp0;
g_env_light.mStarDensity = 0.0f;
g_env_light.mCloudInitialized = 0;
g_env_light.mMoyaCount = 0;
g_env_light.field_0xebc = tmp0;
g_env_light.field_0xebc = 0.0f;
g_env_light.mMoyaMode = 0;
g_env_light.mHousiInitialized = false;
g_env_light.mHousiCount = 0;
@@ -566,7 +326,7 @@ void dKyw_wether_init() {
g_env_light.mEvilInitialized = 0;
g_env_light.field_0x1054 = 0;
g_env_light.field_0x1051 = 0;
g_env_light.field_0xe60 = tmp0;
g_env_light.field_0xe60 = 0.0f;
dKyw_wind_init();
dKyw_pntwind_init();
@@ -576,24 +336,23 @@ void dKyw_wether_init() {
dComIfG_play_c::getLayerNo(0) < 8)
{
cXyz tmp;
f32 tmp0_2 = FLOAT_LABEL(lit_4378);
tmp.z = tmp0_2;
tmp.y = tmp0_2;
tmp.x = tmp0_2;
tmp.z = 0.0f;
tmp.y = 0.0f;
tmp.x = 0.0f;
tmp_dComIfGp_particle_set(0x878F, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8790, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8791, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8792, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8793, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8794, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8795, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8796, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8797, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8798, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x8799, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x879A, &tmp, NULL, NULL);
tmp_dComIfGp_particle_set(0x879B, &tmp, NULL, NULL);
dComIfGp_particle_set(0x878F, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8790, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8791, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8792, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8793, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8794, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8795, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8796, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8797, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8798, &tmp, NULL, NULL);
dComIfGp_particle_set(0x8799, &tmp, NULL, NULL);
dComIfGp_particle_set(0x879A, &tmp, NULL, NULL);
dComIfGp_particle_set(0x879B, &tmp, NULL, NULL);
}
// Stage is City in the Sky
@@ -673,48 +432,18 @@ dKankyo_mud_Packet::~dKankyo_mud_Packet() {}
/* 80057D8C-80057E10 0526CC 0084+00 1/0 0/0 0/0 .text __dt__20dKankyo_odour_PacketFv */
dKankyo_odour_Packet::~dKankyo_odour_Packet() {}
/* ############################################################################################## */
/* 803A9AFC-803A9B10 006C1C 0014+00 2/2 0/0 0/0 .data __vt__21dKankyo_vrkumo_Packet */
SECTION_DATA extern void* __vt__21dKankyo_vrkumo_Packet[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__21dKankyo_vrkumo_PacketFv,
(void*)__dt__21dKankyo_vrkumo_PacketFv,
};
/* 80057E10-80057E94 052750 0084+00 1/0 0/0 0/0 .text __dt__20dKankyo_cloud_PacketFv */
dKankyo_cloud_Packet::~dKankyo_cloud_Packet() {}
/* 80057E94-80057F18 0527D4 0084+00 1/0 0/0 0/0 .text __dt__20dKankyo_housi_PacketFv */
dKankyo_housi_Packet::~dKankyo_housi_Packet() {}
/* ############################################################################################## */
/* 803A9B38-803A9B4C 006C58 0014+00 1/1 1/1 0/0 .data __vt__19dKankyo_star_Packet */
SECTION_DATA extern void* __vt__19dKankyo_star_Packet[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__19dKankyo_star_PacketFv,
(void*)__dt__19dKankyo_star_PacketFv,
};
/* 80057F18-80057F9C 052858 0084+00 1/0 0/0 0/0 .text __dt__19dKankyo_star_PacketFv */
dKankyo_star_Packet::~dKankyo_star_Packet() {}
/* 80057F9C-80058020 0528DC 0084+00 1/0 0/0 0/0 .text __dt__19dKankyo_snow_PacketFv */
dKankyo_snow_Packet::~dKankyo_snow_Packet() {}
/* ############################################################################################## */
/* 803A9B60-803A9B74 006C80 0014+00 2/2 0/0 0/0 .data __vt__19dKankyo_rain_Packet */
SECTION_DATA extern void* __vt__19dKankyo_rain_Packet[5] = {
(void*)NULL /* RTTI */,
(void*)NULL,
(void*)entry__9J3DPacketFP13J3DDrawBuffer,
(void*)draw__19dKankyo_rain_PacketFv,
(void*)__dt__19dKankyo_rain_PacketFv,
};
/* 80058020-800580A4 052960 0084+00 1/0 0/0 0/0 .text __dt__19dKankyo_rain_PacketFv */
dKankyo_rain_Packet::~dKankyo_rain_Packet() {}
@@ -755,12 +484,6 @@ void dKyw_wether_move() {
wether_move_thunder();
}
/* 804520E8-804520EC 0006E8 0004+00 1/1 0/0 0/0 .sdata2 @4610 */
SECTION_SDATA2 static f32 lit_4610 = 255.0f;
/* 804520EC-804520F0 0006EC 0004+00 1/1 0/0 0/0 .sdata2 @4611 */
SECTION_SDATA2 static f32 lit_4611 = 1000000000.0f;
/* 80058318-80058894 052C58 057C+00 1/1 0/0 0/0 .text wether_move_sun__Fv */
static void wether_move_sun() {
s32 sunVisible = false;
@@ -814,16 +537,15 @@ static void wether_move_sun() {
}
g_env_light.mpSunPacket->field_0x28 = 0;
g_env_light.mpSunPacket->field_0x29 = 0;
f32 tmp0 = FLOAT_LABEL(lit_4378);
g_env_light.mpSunPacket->mVisibility = tmp0;
g_env_light.mpSunPacket->mSunAlpha = tmp0;
g_env_light.mpSunPacket->field_0x64 = tmp0;
g_env_light.mpSunPacket->field_0x68 = tmp0;
g_env_light.mpSunPacket->mVisibility = 0.0f;
g_env_light.mpSunPacket->mSunAlpha = 0.0f;
g_env_light.mpSunPacket->field_0x64 = 0.0f;
g_env_light.mpSunPacket->field_0x68 = 0.0f;
if (g_env_light.mDaytime < lit_4610) {
g_env_light.mpSunPacket->field_0x6c = lit_4379;
if (g_env_light.mDaytime < 255.0f) {
g_env_light.mpSunPacket->field_0x6c = 1.0f;
} else {
g_env_light.mpSunPacket->field_0x6c = tmp0;
g_env_light.mpSunPacket->field_0x6c = 0.0f;
}
g_env_light.mpSunPacket->field_0x44[0] = 0;
g_env_light.mpSunPacket->field_0x44[1] = 0;
@@ -838,10 +560,9 @@ static void wether_move_sun() {
(u8*)dComIfG_getObjectRes("Always", 0x57);
g_env_light.mpSunLenzPacket->mpResLenz =
(u8*)dComIfG_getObjectRes("Always", 0x5C);
g_env_light.mpSunLenzPacket->field_0x8c = lit_4611;
f32 tmp0_2 = FLOAT_LABEL(lit_4378);
g_env_light.mpSunLenzPacket->field_0x90 = tmp0_2;
g_env_light.mpSunLenzPacket->mDistFalloff = tmp0_2;
g_env_light.mpSunLenzPacket->field_0x8c = 1e9f;
g_env_light.mpSunLenzPacket->field_0x90 = 0.0f;
g_env_light.mpSunLenzPacket->mDistFalloff = 0.0f;
g_env_light.mpSunLenzPacket->mDrawLenzInSky = false;
dKyr_sun_move();
dKyr_lenzflare_move();
@@ -865,25 +586,7 @@ static void wether_move_sun() {
}
}
/* ############################################################################################## */
/* 8037A368-8037A368 0069C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037A3F1 = "R_SP127";
#pragma pop
/* 804520F0-804520F4 0006F0 0004+00 2/2 0/0 0/0 .sdata2 @4668 */
SECTION_SDATA2 static f32 lit_4668 = -1.0f;
/* 804520F4-804520F8 0006F4 0004+00 1/1 0/0 0/0 .sdata2 @4669 */
SECTION_SDATA2 static f32 lit_4669 = 125.0f;
/* 804520F8-80452100 0006F8 0008+00 2/2 0/0 0/0 .sdata2 @4671 */
SECTION_SDATA2 static f64 lit_4671 = 4503601774854144.0 /* cast s32 to float */;
/* 80058894-80058B00 0531D4 026C+00 1/1 0/0 0/0 .text wether_move_rain__Fv */
// matches with literals
#ifdef NONMATCHING
static void wether_move_rain() {
switch (g_env_light.mRainInitialized) {
case FALSE:
@@ -925,16 +628,6 @@ static void wether_move_rain() {
break;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void wether_move_rain() {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/wether_move_rain__Fv.s"
}
#pragma pop
#endif
/* 80058B00-80058B8C 053440 008C+00 1/1 0/0 0/0 .text wether_move_snow__Fv */
static void wether_move_snow() {
@@ -954,51 +647,6 @@ static void wether_move_snow() {
}
}
/* ############################################################################################## */
/* 8037A368-8037A368 0069C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037A3F9 = "F_SP121";
SECTION_DEAD static char const* const stringBase_8037A401 = "F_SP122";
SECTION_DEAD static char const* const stringBase_8037A409 = "F_SP128";
#pragma pop
/* 80452100-80452104 000700 0004+00 1/1 0/0 0/0 .sdata2 @4761 */
SECTION_SDATA2 static f32 lit_4761 = 330.0f;
/* 80452104-80452108 000704 0004+00 1/1 0/0 0/0 .sdata2 @4762 */
SECTION_SDATA2 static f32 lit_4762 = 45.0f;
/* 80452108-8045210C 000708 0004+00 1/1 0/0 0/0 .sdata2 @4763 */
SECTION_SDATA2 static f32 lit_4763 = 285.0f;
/* 8045210C-80452110 00070C 0004+00 1/1 0/0 0/0 .sdata2 @4764 */
SECTION_SDATA2 static f32 lit_4764 = 1.0f / 45.0f;
/* 80452110-80452114 000710 0004+00 2/2 0/0 0/0 .sdata2 @4765 */
SECTION_SDATA2 static f32 lit_4765 = 75.0f;
/* 80452114-80452118 000714 0004+00 1/1 0/0 0/0 .sdata2 @4766 */
SECTION_SDATA2 static f32 lit_4766 = 1.0f / 30.0f;
/* 80452118-8045211C 000718 0004+00 2/2 0/0 0/0 .sdata2 @4767 */
SECTION_SDATA2 static f32 lit_4767 = 0.5f;
/* 8045211C-80452120 00071C 0004+00 2/2 0/0 0/0 .sdata2 @4768 */
SECTION_SDATA2 static f32 lit_4768 = 1.0f / 10.0f;
/* 80452120-80452124 000720 0004+00 3/3 0/0 0/0 .sdata2 @4769 */
SECTION_SDATA2 static f32 lit_4769 = 1.0f / 100.0f;
/* 80452124-80452128 000724 0004+00 2/2 0/0 0/0 .sdata2 @4770 */
SECTION_SDATA2 static f32 lit_4770 = 9.999999974752427e-07f;
/* 80452128-8045212C 000728 0004+00 1/1 0/0 0/0 .sdata2 @4771 */
SECTION_SDATA2 static f32 lit_4771 = 1200.0f;
/* 8045212C-80452130 00072C 0004+00 1/1 0/0 0/0 .sdata2 @4772 */
SECTION_SDATA2 static f32 lit_4772 = 500.0f;
/* 80058B8C-80058F18 0534CC 038C+00 1/1 0/0 0/0 .text wether_move_star__Fv */
static void wether_move_star() {
s32 starsVisible = false;
@@ -1026,40 +674,40 @@ static void wether_move_star() {
if (starsVisible && dKy_darkworld_check() != true) {
f32 density;
f32 time = g_env_light.getDaytime();
if (time >= lit_4761 || time < lit_4762) {
density = lit_4379;
} else if (time > lit_4763) {
density = lit_4379 - lit_4764 * (lit_4761 - time);
if (time >= 330.0f || time < 45.0f) {
density = 1.0f;
} else if (time > 285.0f) {
density = 1.0f - (1.0f / 45.0f) * (330.0f - time);
} else {
if (time < lit_4765) {
density = lit_4766 * (lit_4765 - time);
if (time < 75.0f) {
density = (1.0f / 30.0f) * (75.0f - time);
} else {
density = FLOAT_LABEL(lit_4378);
density = 0.0f;
}
}
if (g_env_light.mColpatWeather != 0) {
density = FLOAT_LABEL(lit_4378);
density = 0.0f;
}
if (g_env_light.mColPatCurr != 0 && g_env_light.mColPatBlend > lit_4767) {
density = FLOAT_LABEL(lit_4378);
if (g_env_light.mColPatCurr != 0 && g_env_light.mColPatBlend > 0.5f) {
density = 0.0f;
}
// Stage is Hero Shade arena
if (!strcmp(dComIfGp_getStartStageName(), "F_SP200")) {
density = lit_4379;
density = 1.0f;
}
cLib_addCalc(&g_env_light.mStarDensity, density, lit_4768, lit_4769, lit_4770);
g_env_light.mStarCount = (s16)(lit_4771 * g_env_light.mStarDensity);
cLib_addCalc(&g_env_light.mStarDensity, density, 0.1f, 0.01f, 0.000001f);
g_env_light.mStarCount = (s16)(1200.0f * g_env_light.mStarDensity);
// Stage is Hyrule Field or Outside Castle Town or Hidden Village
if (!strcmp(dComIfGp_getStartStageName(), "F_SP121") ||
!strcmp(dComIfGp_getStartStageName(), "F_SP122") ||
!strcmp(dComIfGp_getStartStageName(), "F_SP128"))
{
g_env_light.mStarCount = (s16)(lit_4772 * g_env_light.mStarDensity);
g_env_light.mStarCount = (s16)(500.0f * g_env_light.mStarDensity);
}
switch (g_env_light.mStarInitialized) {
@@ -1163,9 +811,8 @@ static void wether_move_housi() {
}
}
f32 tmp0 = FLOAT_LABEL(lit_4378);
g_env_light.mpHousiPacket->field_0x5de8 = tmp0;
g_env_light.mpHousiPacket->field_0x10.set(tmp0, tmp0, tmp0);
g_env_light.mpHousiPacket->field_0x5de8 = 0.0f;
g_env_light.mpHousiPacket->field_0x10.set(0.0f, 0.0f, 0.0f);
for (int i = 0; i < 300; i++) {
g_env_light.mpHousiPacket->mHousiEff[i].mStatus = 0;
}
@@ -1176,7 +823,7 @@ static void wether_move_housi() {
break;
case TRUE:
if (g_env_light.mHousiCount == 0 &&
g_env_light.mpHousiPacket->field_0x5de8 <= FLOAT_LABEL(lit_4378))
g_env_light.mpHousiPacket->field_0x5de8 <= 0.0f)
{
g_env_light.mHousiInitialized = false;
delete g_env_light.mpHousiPacket;
@@ -1262,68 +909,7 @@ static void wether_move_moya() {
}
}
/* ############################################################################################## */
/* 8037A368-8037A368 0069C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037A469 = "F_SP114";
SECTION_DEAD static char const* const stringBase_8037A471 = "D_MN09B";
SECTION_DEAD static char const* const stringBase_8037A479 = "F_SP104";
SECTION_DEAD static char const* const stringBase_8037A481 = "cloudtx_01.bti";
SECTION_DEAD static char const* const stringBase_8037A490 = "cloudtx_02.bti";
SECTION_DEAD static char const* const stringBase_8037A49F = "cloudtx_03.bti";
#pragma pop
/* 80424938-80424944 051658 000C+00 1/1 0/0 0/0 .bss @4965 */
static u8 lit_4965[12];
/* 80424944-80424950 051664 000C+00 1/1 0/0 0/0 .bss r09o$4964 */
static f32 r09o[3];
/* 80452130-80452134 000730 0004+00 1/1 0/0 0/0 .sdata2 @5181 */
SECTION_SDATA2 static f32 lit_5181 = -180000.0f;
/* 80452134-80452138 000734 0004+00 1/1 0/0 0/0 .sdata2 @5182 */
SECTION_SDATA2 static f32 lit_5182 = 750.0f;
/* 80452138-8045213C 000738 0004+00 1/1 0/0 0/0 .sdata2 @5183 */
SECTION_SDATA2 static f32 lit_5183 = -200000.0f;
/* 8045213C-80452140 00073C 0004+00 1/1 0/0 0/0 .sdata2 @5184 */
SECTION_SDATA2 static f32 lit_5184 = 0.003000000026077032f;
/* 80452140-80452144 000740 0004+00 1/1 0/0 0/0 .sdata2 @5185 */
SECTION_SDATA2 static f32 lit_5185 = 1.0000000116860974e-07f;
/* 80452144-80452148 000744 0004+00 1/1 0/0 0/0 .sdata2 @5186 */
SECTION_SDATA2 static f32 lit_5186 = 2.0f / 25.0f;
/* 80452148-8045214C 000748 0004+00 1/1 0/0 0/0 .sdata2 @5187 */
SECTION_SDATA2 static f32 lit_5187 = 0.0020000000949949026f;
/* 8045214C-80452150 00074C 0004+00 1/1 0/0 0/0 .sdata2 @5188 */
SECTION_SDATA2 static f32 lit_5188 = 9.99999993922529e-09f;
/* 80452150-80452154 000750 0004+00 1/1 0/0 0/0 .sdata2 @5189 */
SECTION_SDATA2 static f32 lit_5189 = 6.0f;
/* 80452154-80452158 000754 0004+00 1/1 0/0 0/0 .sdata2 @5190 */
SECTION_SDATA2 static f32 lit_5190 = 56.0f;
/* 80452158-8045215C 000758 0004+00 2/2 0/0 0/0 .sdata2 @5191 */
SECTION_SDATA2 static f32 lit_5191 = 3.0f / 10.0f;
/* 8045215C-80452160 00075C 0004+00 1/1 0/0 0/0 .sdata2 @5192 */
SECTION_SDATA2 static f32 lit_5192 = 24575.0f;
/* 80452160-80452164 000760 0004+00 1/1 0/0 0/0 .sdata2 @5193 */
SECTION_SDATA2 static f32 lit_5193 = 0.00139999995008111f;
u8 data_80450EE0;
/* 80059728-80059E38 054068 0710+00 1/1 0/0 0/0 .text wether_move_vrkumo__Fv */
// Matches with literals
#ifdef NONMATCHING
static void wether_move_vrkumo() {
BOOL var_r31 = false;
static cXyz r09o(-180000.0f, 750.0f, -200000.0f);
@@ -1454,16 +1040,6 @@ static void wether_move_vrkumo() {
break;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void wether_move_vrkumo() {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/wether_move_vrkumo__Fv.s"
}
#pragma pop
#endif
/* 80059E38-80059F74 054778 013C+00 1/1 0/0 0/0 .text wether_move_mud__Fv */
static void wether_move_mud() {
@@ -1600,40 +1176,13 @@ void dKyw_wether_draw2() {
}
}
/* ############################################################################################## */
/* 8037A368-8037A368 0069C8 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */
#pragma push
#pragma force_active on
SECTION_DEAD static char const* const stringBase_8037A4B3 = "F_SP127";
/* @stringBase0 padding */
SECTION_DEAD static char const* const pad_8037A4BB = "\0\0\0\0";
#pragma pop
/* 80452164-80452168 000764 0004+00 1/1 0/0 0/0 .sdata2 @5361 */
SECTION_SDATA2 static f32 lit_5361 = 120.0f;
/* 80452168-8045216C 000768 0004+00 3/3 0/0 0/0 .sdata2 @5362 */
SECTION_SDATA2 static f32 lit_5362 = 1.0f / 20.0f;
/* 8045216C-80452170 00076C 0004+00 1/1 0/0 0/0 .sdata2 @5363 */
SECTION_SDATA2 static f32 lit_5363 = 0.0024999999441206455f;
/* 80452170-80452178 000770 0004+04 1/1 0/0 0/0 .sdata2 @5364 */
SECTION_SDATA2 static f32 lit_5364[1 + 1 /* padding */] = {
9.999999747378752e-06f,
/* padding */
0.0f,
};
/* 8005A340-8005A57C 054C80 023C+00 0/0 1/1 0/0 .text dKyw_wether_proc__Fv */
// small branch issue
#ifdef NONMATCHING
void dKyw_wether_proc() {
// Stage is Faron Woods or Fishing Pond or Hyrule Field
if (!strcmp(dComIfGp_getStartStageName(), "F_SP108") ||
!strcmp(dComIfGp_getStartStageName(), "F_SP127") ||
(!strcmp(dComIfGp_getStartStageName(), "F_SP121") &&
FLOAT_LABEL(lit_4378) != g_env_light.mDiceWeatherTime))
g_env_light.mDiceWeatherTime != 0.0f))
{
if (!dKy_darkworld_check()) {
// Stage is Hyrule Field
@@ -1645,16 +1194,18 @@ void dKyw_wether_proc() {
g_env_light.mDiceWeatherMode >= 1 && g_env_light.mDiceWeatherMode < 6)
{
dKy_get_dayofweek();
cLib_addCalc(&g_env_light.field_0xebc, lit_4379, lit_5362, lit_5363, lit_4770);
lbl1:
cLib_addCalc(&g_env_light.field_0xebc, 1.0f, 0.05f, 0.0025f, 0.000001f);
g_env_light.mMoyaMode = 7;
g_env_light.mMoyaCount = 49;
} else {
cLib_addCalc(&g_env_light.field_0xebc, FLOAT_LABEL(lit_4378), lit_5362,
lit_5363, lit_5364[0]);
if (g_env_light.field_0xebc <= lit_4769 && g_env_light.mMoyaCount == 49) {
cLib_addCalc(&g_env_light.field_0xebc, 0.0f, 0.05f, 0.0025f, 0.00001f);
if (g_env_light.field_0xebc <= 0.01f && g_env_light.mMoyaCount == 49) {
g_env_light.mMoyaCount = 0;
}
}
} else {
goto lbl1; // maybe fake match
}
}
}
@@ -1672,63 +1223,23 @@ void dKyw_wether_proc() {
}
squal_proc();
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKyw_wether_proc() {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/dKyw_wether_proc__Fv.s"
}
#pragma pop
#endif
/* 8005A57C-8005A5C0 054EBC 0044+00 1/1 0/0 0/0 .text dKyw_wind_init__Fv */
static void dKyw_wind_init() {
g_env_light.mWind.vec.x = lit_4668;
f32 tmp_0 = FLOAT_LABEL(lit_4378);
g_env_light.mWind.vec.y = tmp_0;
g_env_light.mWind.vec.z = tmp_0;
g_env_light.mWind.pow = tmp_0;
g_env_light.mWind.vec.x = -1.0f;
g_env_light.mWind.vec.y = 0.0f;
g_env_light.mWind.vec.z = 0.0f;
g_env_light.mWind.pow = 0.0f;
g_env_light.field_0xe6c = 0;
g_env_light.field_0xe64 = 0;
g_env_light.field_0xe66 = 0;
g_env_light.mWind.vec_override = 0;
g_env_light.custom_windpower = tmp_0;
g_env_light.custom_windpower = 0.0f;
g_env_light.mEvtWindSet = 0;
g_env_light.mTeachWindExist = 0;
}
/* ############################################################################################## */
/* 80452178-80452180 000778 0008+00 3/3 0/0 0/0 .sdata2 @5524 */
SECTION_SDATA2 static f64 lit_5524 = 0.5;
/* 80452180-80452188 000780 0008+00 3/3 0/0 0/0 .sdata2 @5525 */
SECTION_SDATA2 static f64 lit_5525 = 3.0;
/* 80452188-80452190 000788 0008+00 3/3 0/0 0/0 .sdata2 @5526 */
SECTION_SDATA2 static u8 lit_5526[8] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
};
/* 80452190-80452194 000790 0004+00 1/1 0/0 0/0 .sdata2 @5527 */
SECTION_SDATA2 static f32 lit_5527 = 3.0f / 5.0f;
/* 80452194-80452198 000794 0004+00 1/1 0/0 0/0 .sdata2 @5528 */
SECTION_SDATA2 static f32 lit_5528 = 9.0f / 10.0f;
/* 80452198-8045219C 000798 0004+00 1/1 0/0 0/0 .sdata2 @5529 */
SECTION_SDATA2 static f32 lit_5529 = 2.0f;
/* 8045219C-804521A0 00079C 0004+00 2/2 0/0 0/0 .sdata2 @5530 */
SECTION_SDATA2 static f32 lit_5530 = 0.0010000000474974513f;
/* 804521A0-804521A4 0007A0 0004+00 1/1 0/0 0/0 .sdata2 @5531 */
SECTION_SDATA2 static f32 lit_5531 = 0.004999999888241291f;
/* 8005A5C0-8005AAE0 054F00 0520+00 0/0 2/2 0/0 .text dKyw_wind_set__Fv */
// matches with literals
#ifdef NONMATCHING
void dKyw_wind_set() {
s16 var_r30;
s16 var_r29;
@@ -1870,16 +1381,6 @@ void dKyw_wind_set() {
cLib_addCalc(&g_env_light.mWind.pow, strength, 0.05f, 1.0f, 0.005f);
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKyw_wind_set() {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/dKyw_wind_set__Fv.s"
}
#pragma pop
#endif
/* 8005AAE0-8005AAF0 055420 0010+00 1/1 6/6 7/7 .text dKyw_get_wind_vec__Fv */
cXyz* dKyw_get_wind_vec() {
@@ -1924,13 +1425,7 @@ void dKyw_plight_collision_set(cXyz* param_0, s16 param_1, s16 param_2, f32 para
}
}
/* ############################################################################################## */
/* 804521A4-804521A8 0007A4 0004+00 1/1 0/0 0/0 .sdata2 @5630 */
SECTION_SDATA2 static f32 lit_5630 = 1.0f / 5.0f;
/* 8005AC30-8005AD44 055570 0114+00 1/1 0/0 0/0 .text squal_proc__Fv */
// matches with literals
#ifdef NONMATCHING
static void squal_proc() {
dScnKy_env_light_c* env_light = dKy_getEnvlight();
WIND_INFLUENCE* influence;
@@ -1963,16 +1458,6 @@ static void squal_proc() {
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void squal_proc() {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/squal_proc__Fv.s"
}
#pragma pop
#endif
/* 8005AD44-8005AD98 055684 0054+00 1/1 0/0 0/0 .text dKyw_pntwind_init__Fv */
static void dKyw_pntwind_init() {
@@ -2024,8 +1509,6 @@ void dKyw_pntwind_cut(WIND_INFLUENCE* i_pntwind) {
/* 8005AE90-8005B23C 0557D0 03AC+00 2/2 0/0 0/0 .text pntwind_get_info__FP4cXyzP4cXyzPfUc
*/
// matches with literals
#ifdef NONMATCHING
static void pntwind_get_info(cXyz* param_0, cXyz* i_dir, f32* i_power, u8 param_3) {
i_dir->x = 0.0f;
i_dir->y = 0.0f;
@@ -2086,16 +1569,6 @@ static void pntwind_get_info(cXyz* param_0, cXyz* i_dir, f32* i_power, u8 param_
}
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
static asm void pntwind_get_info(cXyz* param_0, cXyz* param_1, f32* param_2, u8 param_3) {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/pntwind_get_info__FP4cXyzP4cXyzPfUc.s"
}
#pragma pop
#endif
/* 8005B23C-8005B260 055B7C 0024+00 3/3 0/0 0/0 .text dKyw_pntwind_get_info__FP4cXyzP4cXyzPf */
static void dKyw_pntwind_get_info(cXyz* param_0, cXyz* param_1, f32* param_2) {
@@ -2118,20 +1591,10 @@ cXyz dKyw_pntwind_get_vecpow(cXyz* param_0) {
return direction;
}
/* ############################################################################################## */
/* 804521A8-804521B0 0007A8 0004+04 2/2 0/0 0/0 .sdata2 @5855 */
SECTION_SDATA2 static f32 lit_5855[1 + 1 /* padding */] = {
5.0f,
/* padding */
0.0f,
};
/* 8005B2F8-8005B530 055C38 0238+00 0/0 3/3 13/13 .text dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf */
// matches with literals
#ifdef NONMATCHING
void dKyw_get_AllWind_vec(cXyz* i_position, cXyz* i_direction, f32* i_power) {
dScnKy_env_light_c* env_light = dKy_getEnvlight();
dKyw_pntwind_get_info(param_0, i_direction, i_power);
dKyw_pntwind_get_info(i_position, i_direction, i_power);
cXyz sp54;
cXyz sp30;
@@ -2153,20 +1616,8 @@ void dKyw_get_AllWind_vec(cXyz* i_position, cXyz* i_direction, f32* i_power) {
i_direction->z = env_light->mWind.vec.z;
}
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKyw_get_AllWind_vec(cXyz* param_0, cXyz* param_1, f32* param_2) {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/dKyw_get_AllWind_vec__FP4cXyzP4cXyzPf.s"
}
#pragma pop
#endif
/* 8005B530-8005B60C 055E70 00DC+00 0/0 0/0 5/5 .text dKyw_get_AllWind_vecpow__FP4cXyz */
// matches with literals
#ifdef NONMATCHING
cXyz dKyw_get_AllWind_vecpow(cXyz* param_0) {
f32 sp8;
cXyz spC;
@@ -2181,16 +1632,6 @@ cXyz dKyw_get_AllWind_vecpow(cXyz* param_0) {
return spC;
}
#else
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
asm void dKyw_get_AllWind_vecpow(cXyz* param_0) {
nofralloc
#include "asm/d/kankyo/d_kankyo_wether/dKyw_get_AllWind_vecpow__FP4cXyz.s"
}
#pragma pop
#endif
/* 8005B60C-8005B61C 055F4C 0010+00 0/0 0/0 5/5 .text dKyw_custom_windpower__Ff */
void dKyw_custom_windpower(f32 pow) {
+17 -19
View File
@@ -1529,12 +1529,11 @@ void dSv_info_c::onSwitch(int i_no, int i_roomNo) {
} else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) {
mDan.onSwitch(i_no - MEMORY_SWITCH);
} else {
int zoneId = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneId = dComIfGp_roomControl_getZoneNo(i_roomNo);
if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) {
mZone[zoneId].getZoneBit().onSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH));
mZone[zoneId].getBit().onSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH));
} else {
mZone[zoneId].getZoneBit().onOneSwitch(i_no -
(MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH));
mZone[zoneId].getBit().onOneSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH));
}
}
}
@@ -1550,12 +1549,11 @@ void dSv_info_c::offSwitch(int i_no, int i_roomNo) {
} else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) {
mDan.offSwitch(i_no - MEMORY_SWITCH);
} else {
int zoneId = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneId = dComIfGp_roomControl_getZoneNo(i_roomNo);
if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) {
mZone[zoneId].getZoneBit().offSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH));
mZone[zoneId].getBit().offSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH));
} else {
mZone[zoneId].getZoneBit().offOneSwitch(i_no -
(MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH));
mZone[zoneId].getBit().offOneSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH));
}
}
}
@@ -1571,7 +1569,7 @@ BOOL dSv_info_c::isSwitch(int i_no, int i_roomNo) const {
} else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) {
return mDan.isSwitch(i_no - MEMORY_SWITCH);
} else {
int zoneId = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneId = dComIfGp_roomControl_getZoneNo(i_roomNo);
if (zoneId < 0 || zoneId >= ZONE_MAX) {
return FALSE;
} else {
@@ -1596,11 +1594,11 @@ BOOL dSv_info_c::revSwitch(int i_no, int i_roomNo) {
} else if (i_no < (MEMORY_SWITCH + DAN_SWITCH)) {
return mDan.revSwitch(i_no - MEMORY_SWITCH);
} else {
int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
if (i_no < (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH)) {
return mZone[zoneNo].getZoneBit().revSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH));
return mZone[zoneNo].getBit().revSwitch(i_no - (MEMORY_SWITCH + DAN_SWITCH));
} else {
return mZone[zoneNo].getZoneBit().revOneSwitch(
return mZone[zoneNo].getBit().revOneSwitch(
i_no - (MEMORY_SWITCH + DAN_SWITCH + ZONE_SWITCH));
}
}
@@ -1617,11 +1615,11 @@ void dSv_info_c::onItem(int i_no, int i_roomNo) {
} else if (i_no < (MEMORY_ITEM + DAN_ITEM)) {
mMemory.getBit().onItem(i_no - MEMORY_ITEM);
} else {
int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
if (i_no < (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM)) {
mZone[zoneNo].getZoneBit().onItem(i_no - (MEMORY_ITEM + DAN_ITEM));
mZone[zoneNo].getBit().onItem(i_no - (MEMORY_ITEM + DAN_ITEM));
} else {
mZone[zoneNo].getZoneBit().onOneItem(i_no - (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM));
mZone[zoneNo].getBit().onOneItem(i_no - (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM));
}
}
}
@@ -1637,7 +1635,7 @@ BOOL dSv_info_c::isItem(int i_no, int i_roomNo) const {
} else if (i_no < (MEMORY_ITEM + DAN_ITEM)) {
return mMemory.getBit().isItem(i_no - MEMORY_ITEM);
} else {
int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
if (i_no < (MEMORY_ITEM + DAN_ITEM + ZONE_ITEM)) {
return mZone[zoneNo].getBit().isItem(i_no - (MEMORY_ITEM + DAN_ITEM));
} else {
@@ -1652,7 +1650,7 @@ void dSv_info_c::onActor(int i_id, int i_roomNo) {
return;
}
int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
mZone[zoneNo].getActor().on(i_id);
}
@@ -1662,7 +1660,7 @@ void dSv_info_c::offActor(int i_id, int i_roomNo) {
return;
}
int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
mZone[zoneNo].getActor().off(i_id);
}
@@ -1672,7 +1670,7 @@ BOOL dSv_info_c::isActor(int i_id, int i_roomNo) const {
return FALSE;
}
int zoneNo = dStage_roomControl_c::getZoneNo(i_roomNo);
int zoneNo = dComIfGp_roomControl_getZoneNo(i_roomNo);
return mZone[zoneNo].getActor().is(i_id);
}