diff --git a/src/d/actor/d_a_demo_item.cpp b/src/d/actor/d_a_demo_item.cpp index 8de81066c0a..16af2ff6e9e 100644 --- a/src/d/actor/d_a_demo_item.cpp +++ b/src/d/actor/d_a_demo_item.cpp @@ -167,7 +167,6 @@ void daDitem_c::actionStart() { } /* 804E00DC-804E0A50 0005FC 0974+00 1/1 0/0 0/0 .text actionEvent__9daDitem_cFv */ -// NONMATCHING - r30/r31 swap void daDitem_c::actionEvent() { if (mSetLightEff) { cLib_addCalc2(&mLight.mPow, mLightStrength, 0.1f, 1.0f); diff --git a/src/d/d_map_path_fmap.cpp b/src/d/d_map_path_fmap.cpp index e7138f009b5..4f52f83f37b 100644 --- a/src/d/d_map_path_fmap.cpp +++ b/src/d/d_map_path_fmap.cpp @@ -569,7 +569,6 @@ bool dMenuFmapIconDisp_c::getPosition(int* o_stageNo, int* o_roomNo, f32* o_posX /* 8003E6E8-8003EB10 039028 0428+00 2/0 3/3 0/0 .text isDrawDisp__19dMenuFmapIconDisp_cFv */ -// NONMATCHING regalloc bool dMenuFmapIconDisp_c::isDrawDisp() { dMenu_Fmap_stage_arc_data_c* stage_arc = mpStageData->getStageArc(); if (stage_arc == NULL) { diff --git a/src/d/d_menu_collect.cpp b/src/d/d_menu_collect.cpp index 161880df66e..a9743414fa0 100644 --- a/src/d/d_menu_collect.cpp +++ b/src/d/d_menu_collect.cpp @@ -729,8 +729,7 @@ void dMenu_Collect2D_c::setBackAlpha() { /* 801B1FAC-801B27EC 1AC8EC 0840+00 1/1 0/0 0/0 .text cursorMove__17dMenu_Collect2D_cFv */ -// NONMATCHING -// goto logic is wrong +// Not sure if this works without gotos void dMenu_Collect2D_c::cursorMove() { u8 dVar1 = mCursorX; u8 dVar2 = mCursorY; @@ -797,30 +796,27 @@ void dMenu_Collect2D_c::cursorMove() { LAB_802ba744: if (mpStick->checkUpTrigger()) { if (mCursorY != 0) { - bool bVar3; - restart_loop: - do { - mCursorY--; - if (mCursorY == 2) { - u8 local_3c[9] = {3,3,4,3,4,5,4,5,5}; - u8 local_48[9] = {2,1,2,0,1,2,0,1,0}; - for (int i = 0; i < 9; i++) { - if (getItemTag(local_3c[i], local_48[i], true)) { - mCursorX = local_3c[i]; - mCursorY = local_48[i]; - break; - } + begin: + mCursorY--; + if (mCursorY == 2) { + u8 local_3c[9] = {3,3,4,3,4,5,4,5,5}; + u8 local_48[9] = {2,1,2,0,1,2,0,1,0}; + for (int i = 0; i < 9; i++) { + if (getItemTag(local_3c[i], local_48[i], true)) { + mCursorX = local_3c[i]; + mCursorY = local_48[i]; + break; } } - if (dVar2 == 5) { - - if (dVar1 == 0) { - if (field_0x25a < 5) { - mCursorX = field_0x259; - mCursorY = field_0x25a; - break; - } - bVar3 = false; + } + if (dVar2 == 5) { + if (dVar1 == 0) { + if (field_0x25a < 5) { + mCursorX = field_0x259; + mCursorY = field_0x25a; + goto LAB_802bab54; + } else { + bool bVar3 = false; for (int i = 0; i < 4; i++) { if (getItemTag(i, mCursorY, true)) { mCursorX = i; @@ -834,73 +830,77 @@ LAB_802ba744: bVar3 = true; } if (bVar3) { - break; + goto LAB_802bab54; } - goto restart_loop; } - if (field_0x25a < 5) { - mCursorX = field_0x259; - mCursorY = field_0x25a; - break; - } - bVar3 = false; + } else if (field_0x25a < 5) { + mCursorX = field_0x259; + mCursorY = field_0x25a; + goto LAB_802bab54; + } else { + bool bVar4 = false; for (int i = 3; i < 7; i++) { if (getItemTag(i, mCursorY, true)) { mCursorX = i; - bVar3 = true; + bVar4 = true; break; } } if (mCursorY == 0) { mCursorX = dVar1; mCursorY = dVar2; - bVar3 = true; + bVar4 = true; } - } - } while (!bVar3); - if (!getItemTag(mCursorX, mCursorY, true)) { - if (mCursorY != 0) { - goto restart_loop; - } - } - mCursorY = dVar2; - } - } else { - if (mpStick->checkDownTrigger()) { - if (mCursorY < 4) { - do { - mCursorY++; - if (mCursorY == 3) { - u8 local_50[8] = {3, 2, 3, 1, 2, 0, 1, 0}; - u8 local_58[8] = {3, 3, 4, 3, 4, 3, 4, 4}; - for (int i = 0; i < 8; i++) { - if (getItemTag(local_50[i], local_58[i], true)) { - mCursorX = local_50[i]; - mCursorY = local_58[i]; - break; - } - } - } - if (getItemTag(mCursorX, mCursorY, true)) { + if (bVar4) { goto LAB_802bab54; } - } while (mCursorY < 4); - mCursorY = 5; - if (mCursorX <= 2) { - mCursorX = 0; - } else { - mCursorX = 1; } - } else if (mCursorY == 4) { - mCursorY = 5; - if (mCursorX <= 3) { - mCursorX = 0; - } else { - mCursorX = 1; + goto begin; + } else { + if (getItemTag(mCursorX, mCursorY, true)) { + goto LAB_802bab54; } + if (mCursorY != 0) { + goto begin; + } + mCursorY = dVar2; + } + } + } else if (mpStick->checkDownTrigger()) { + if (mCursorY < 4) { + do { + mCursorY++; + if (mCursorY == 3) { + u8 local_50[8] = {3, 2, 3, 1, 2, 0, 1, 0}; + u8 local_58[8] = {3, 3, 4, 3, 4, 3, 4, 4}; + for (int i = 0; i < 8; i++) { + if (getItemTag(local_50[i], local_58[i], true)) { + mCursorX = local_50[i]; + mCursorY = local_58[i]; + break; + } + } + } + if (getItemTag(mCursorX, mCursorY, true)) { + goto LAB_802bab54; + } + } while (mCursorY < 4); + mCursorY = 5; + if (mCursorX <= 2) { + mCursorX = 0; + } else { + mCursorX = 1; + } + } else if (mCursorY == 4) { + mCursorY = 5; + if (mCursorX <= 3) { + mCursorX = 0; + } else { + mCursorX = 1; } } } + LAB_802bab54: if (mCursorX != dVar1 || mCursorY != dVar2) { field_0x259 = dVar1; @@ -2594,22 +2594,20 @@ void dMenu_Collect3D_c::setupItem3D(Mtx param_0) { /* 801B7660-801B774C 1B1FA0 00EC+00 1/1 0/0 0/0 .text toItem3Dpos__17dMenu_Collect3D_cFfffP4cXyz */ -// NONMATCHING -// This is mostly matching like this using O2 but still regalloc (f29/f31). The main issue is the use of dVar12 #pragma push #pragma optimization_level 2 void dMenu_Collect3D_c::toItem3Dpos(f32 param_0, f32 param_1, f32 param_2, cXyz* param_3) { Mtx adStack_98; Mtx auStack_c8; - f32 dVar7 = + param_0 = (2.0f * ((param_0 - mDoGph_gInf_c::getMinXF()) / mDoGph_gInf_c::getWidthF()) - 1.0f); - f32 dVar11 = (2.0f * ((param_1 - -100.0f) / 448.0f) - 1.0f); + param_1 = (2.0f * ((param_1 - -100.0f) / 448.0f) - 1.0f); calcViewMtx(adStack_98); MTXInverse(adStack_98, auStack_c8); f32 tangent = tan(0.39269909262657166); f32 dVar12 = -param_2; - cXyz cStack_d4((dVar7 * param_2) * (mDoGph_gInf_c::getAspect() * tangent), - (tangent * (dVar11 * dVar12)), dVar12); + cXyz cStack_d4((param_0 * param_2) * (mDoGph_gInf_c::getAspect() * tangent), + (tangent * (param_1 * dVar12)), dVar12); MTXMultVec(auStack_c8, &cStack_d4, param_3); } #pragma pop diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index f97cb801f17..f8f7ef1eda6 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -2512,7 +2512,6 @@ int dMsgFlow_c::event027(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak /* 8024D3C4-8024D500 247D04 013C+00 1/0 0/0 0/0 .text * event028__10dMsgFlow_cFP20mesg_flow_node_eventP10fopAc_ac_c */ -// NONMATCHING regalloc int dMsgFlow_c::event028(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speaker_p) { u8 pos = dComIfGs_getTmpReg(0xFBFF) - 1; dMsgObject_setSelectCursorPos(pos);