mirror of https://github.com/zeldaret/tp.git
Match remaining functions in d_menu_collect (#2809)
* match all funcs in d_menu_collect * remove old nonmatching comments
This commit is contained in:
parent
fad2f41e33
commit
8799ed141d
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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) {
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Reference in New Issue