Merge pull request #386 from gamemasterplc/main

Finish ztardll
This commit is contained in:
Liam Coleman 2024-08-08 12:19:32 -05:00 committed by GitHub
commit c1c506360c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 144 additions and 153 deletions

View file

@ -1569,9 +1569,9 @@ config.libs = [
"ztardll",
objects={
Object(Matching, "REL/executor.c"),
Object(NonMatching, "REL/ztardll/main.c"),
Object(Matching, "REL/ztardll/main.c"),
Object(Matching, "REL/ztardll/font.c"),
Object(NonMatching, "REL/ztardll/select.c"),
Object(Matching, "REL/ztardll/select.c"),
},
),
]

View file

@ -33,6 +33,8 @@ Process *lbl_1_bss_68;
s32 lbl_1_bss_64;
s32 lbl_1_bss_60;
s16 lbl_1_bss_5E;
s16 lbl_1_bss_5C;
s16 lbl_1_bss_5A;
s16 lbl_1_bss_58;
s32 lbl_1_bss_54;

View file

@ -97,12 +97,12 @@ s32 lbl_1_data_3E8[8] = {
0x800000,
};
Process *lbl_1_bss_70;
s32 lbl_1_bss_74;
s32 lbl_1_bss_78[5];
ZtarDllUnkStruct2 lbl_1_bss_8C[4];
ZtarDllUnkStruct2 lbl_1_bss_20C;
s32 lbl_1_bss_26C[0x1B];
ZtarDllUnkStruct2 lbl_1_bss_20C;
ZtarDllUnkStruct2 lbl_1_bss_8C[4];
s32 lbl_1_bss_78[5];
s32 lbl_1_bss_74;
Process *lbl_1_bss_70;
void fn_1_7C00(void)
{
@ -266,7 +266,7 @@ s32 fn_1_8030(s32 arg0, s32 arg1)
}
while (TRUE) {
fn_1_10FBC(1);
if ((lbl_1_bss_8C->unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B) != 0) {
if ((lbl_1_bss_8C[0].unk_08 == 0) && (HuPadBtnDown[0] & PAD_BUTTON_B) != 0) {
HuAudFXPlay(3);
if (lbl_1_bss_20C.unk_10 == 1) {
lbl_1_bss_20C.unk_10 = 0;
@ -372,7 +372,7 @@ s32 fn_1_8338(s32 arg0, s32 arg1)
}
while (TRUE) {
fn_1_10FBC(1);
if (((HuPadBtnDown[lbl_1_bss_8C->unk_58] & 0x200) != 0) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) {
if (((HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & 0x200) != 0) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) {
HuAudFXPlay(3);
if (var_r27 == -1) {
var_r29 = 0;
@ -590,7 +590,7 @@ s32 fn_1_8B94(s32 arg0)
}
while (TRUE) {
fn_1_10FBC(1);
if ((lbl_1_bss_8C->unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) {
if ((lbl_1_bss_8C[0].unk_08 == 0) && ((*HuPadBtnDown & 0x200) != 0)) {
HuAudFXPlay(3);
if (lbl_1_bss_20C.unk_10 == 1) {
lbl_1_bss_20C.unk_10 = 0;
@ -688,7 +688,7 @@ s32 fn_1_8E50(s32 arg0)
}
while (TRUE) {
fn_1_10FBC(1);
if ((HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) {
if ((HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_B) && (lbl_1_bss_8C[var_r30].unk_08 == 0) && (lbl_1_bss_20C.unk_30 == 0)) {
HuAudFXPlay(3);
if (var_r27 == -1) {
var_r29 = 0;
@ -2051,46 +2051,49 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
}
if (arg1->unk_5C != var_r25) {
if (lbl_1_bss_74 != 0) {
loop_54:
var_r25 = var_r30 + (var_r29 * 6);
for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0)
|| (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) {
if ((var_r27 == 0) || (var_r26 == 0)) {
if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) {
var_r30 = var_r23;
}
else {
var_r30 += var_r27;
}
if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) {
var_r29 = var_r22;
}
else {
var_r29 += var_r26;
}
}
else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) {
var_r30 += var_r27;
}
else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) {
var_r29 += var_r26;
}
else {
var_r30 = var_r23;
var_r29 = var_r22;
}
}
else {
}
}
if (var_r28 != 4) {
goto loop_54;
}
while(1) {
var_r25 = var_r30 + (var_r29 * 6);
for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) || (var_r25 == 0)
|| (var_r25 == 5) || (var_r25 == 6) || (var_r25 == 0xB)) {
if ((var_r27 == 0) || (var_r26 == 0)) {
if (((var_r30 + var_r27) > 5) || ((var_r30 + var_r27) < 0)) {
var_r30 = var_r23;
}
else {
var_r30 += var_r27;
}
if (((var_r29 + var_r26) > 2) || ((var_r29 + var_r26) < 0)) {
var_r29 = var_r22;
}
else {
var_r29 += var_r26;
}
}
else if (((var_r30 + var_r27) <= 5) && ((var_r30 + var_r27) >= 0)) {
var_r30 += var_r27;
}
else if (((var_r29 + var_r26) <= 2) && ((var_r29 + var_r26) >= 0)) {
var_r29 += var_r26;
}
else {
var_r30 = var_r23;
var_r29 = var_r22;
}
break;
}
else {
}
}
if(var_r28 == 4) {
break;
}
}
}
else {
do {
var_r25 = var_r30 + (var_r29 * 4);
while(1) {
var_r25 = var_r30 + (var_r29 * 4);
for (var_r28 = 0; var_r28 < 4; var_r28++) {
if ((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_50 == 0) && (var_r25 == lbl_1_bss_8C[var_r28].unk_5C)) {
if ((var_r27 == 0) || (var_r26 == 0)) {
@ -2102,11 +2105,10 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
}
if (((var_r29 + var_r26) > 1) || ((var_r29 + var_r26) < 0)) {
var_r29 = var_r22;
}
else {
} else {
var_r29 += var_r26;
break;
}
break;
}
else if (((var_r30 + var_r27) <= 3) && ((var_r30 + var_r27) >= 0)) {
var_r30 += var_r27;
@ -2123,10 +2125,13 @@ void fn_1_D280(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
}
}
else {
break;
continue;
}
}
} while (var_r28 != 4);
if(var_r28 == 4) {
break;
}
}
}
if (lbl_1_bss_74 != 0) {
var_r25 = var_r30 + (var_r29 * 6);
@ -2259,7 +2264,7 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
var_r22 = var_r29;
}
if (arg1->unk_08 == 0) {
if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_A) {
if (HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_A) {
arg1->unk_08 = 1;
HuSprBankSet(var_r27, arg1->unk_48 + 0x26, 1);
HuSprBankSet(var_r27, arg1->unk_48 + 0x2A, 1);
@ -2352,7 +2357,7 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
}
}
}
else if (HuPadBtnDown[lbl_1_bss_8C->unk_58] & PAD_BUTTON_B) {
else if (HuPadBtnDown[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_B) {
arg1->unk_08 = arg1->unk_10 = 0;
if (lbl_1_bss_74 != 0) {
var_r20 = 0;
@ -2383,8 +2388,8 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
}
if (arg1->unk_5C != var_r24) {
if (lbl_1_bss_74 != 0) {
do {
fn_1_10FBC(1);
while(1) {
fn_1_10FBC(1);
var_r24 = var_r30 + (var_r29 * 6);
for (var_r28 = 0; var_r28 < 4; var_r28++) {
if (((var_r28 != arg1->unk_48) && (lbl_1_bss_8C[var_r28].unk_08 == 1) && (var_r24 == lbl_1_bss_8C[var_r28].unk_5C))
@ -2416,7 +2421,10 @@ void fn_1_E548(omObjData *arg0, ZtarDllUnkStruct2 *arg1)
break;
}
}
} while (var_r28 != 4);
if(var_r28 == 4) {
break;
}
}
}
else {
do {
@ -2498,100 +2506,81 @@ s32 fn_1_F214(ZtarDllUnkStruct2 *arg0)
var_r28 = 0;
var_r29 = lbl_1_bss_26C[1];
loop_1:
fn_1_10FBC(1);
var_r28 = 0;
var_r26 = arg0->unk_54;
if (HuPadStkX[lbl_1_bss_8C->unk_58] >= 5) {
block_3:
if (((GWGameStat.story_continue >> 4) & 1) == 1) {
arg0->unk_54++;
var_r28 = 1;
if (arg0->unk_54 > 3) {
arg0->unk_54 = 0;
}
}
else {
arg0->unk_54++;
var_r28 = 1;
if (arg0->unk_54 > 2) {
arg0->unk_54 = 0;
}
}
block_19:
if (arg0->unk_54 != var_r26) {
HuAudFXPlay(0);
for (var_r30 = 0; var_r30 <= 5; var_r30++) {
fn_1_10FBC(1);
if (lbl_1_bss_74 != 0) {
var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23);
}
else {
var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23);
}
}
HuSprBankSet(var_r29, arg0->unk_48 + 0x2E, arg0->unk_54);
for (var_r30 = 0; var_r30 <= 5; var_r30++) {
fn_1_10FBC(1);
if (lbl_1_bss_74 != 0) {
var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0] + (var_r28 * 0xA), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_584[arg0->unk_5C][1] + 0x23);
}
else {
var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C % 4][0] + (var_r28 * 0xA), lbl_1_data_4D4[arg0->unk_5C % 4][0], var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48 + 0x2E, var_f31, lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23);
}
}
}
goto loop_1;
}
if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_RIGHT) {
goto block_3;
}
if (HuPadStkX[lbl_1_bss_8C->unk_58] <= -5) {
block_10:
if (((GWGameStat.story_continue >> 4) & 1) == 1) {
arg0->unk_54--;
var_r28 = -1;
if (arg0->unk_54 < 0) {
arg0->unk_54 = 3;
}
}
else {
arg0->unk_54--;
var_r28 = -1;
if (arg0->unk_54 < 0) {
arg0->unk_54 = 2;
}
}
goto block_19;
}
if (HuPadBtn[lbl_1_bss_8C->unk_58] & PAD_BUTTON_LEFT) {
goto block_10;
}
if (HuPadBtnDown[0] & PAD_BUTTON_A) {
var_r27 = 1;
}
else if (HuPadBtnDown[0] & PAD_BUTTON_B) {
var_r27 = 0;
HuAudFXPlay(3);
}
else {
goto block_19;
}
if (var_r27 == 1) {
if (lbl_1_bss_74 != 0) {
HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1] + 0x23);
}
else {
HuSprPosSet(var_r29, arg0->unk_48 + 0x32, lbl_1_data_4D4[arg0->unk_5C % 4][0], lbl_1_data_4D4[(arg0->unk_5C / 4) * 4][1] + 0x23);
}
HuSprBankSet(var_r29, arg0->unk_48 + 0x32, arg0->unk_54);
HuSprAttrReset(var_r29, arg0->unk_48 + 0x32, 4);
HuSprAttrSet(var_r29, arg0->unk_48 + 0x2E, 4);
}
while(1) {
fn_1_10FBC(1);
var_r28 = 0;
var_r26 = arg0->unk_54;
if(HuPadStkX[lbl_1_bss_8C[0].unk_58] >= 5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_RIGHT)) {
if(GWGameStat.field10E_bit4 == 1) {
arg0->unk_54++;
var_r28 = 1;
if(arg0->unk_54 > 3) {
arg0->unk_54 = 0;
}
} else {
arg0->unk_54++;
var_r28 = 1;
if(arg0->unk_54 > 2) {
arg0->unk_54 = 0;
}
}
} else if(HuPadStkX[lbl_1_bss_8C[0].unk_58] <= -5 || (HuPadBtn[lbl_1_bss_8C[0].unk_58] & PAD_BUTTON_LEFT)) {
if(GWGameStat.field10E_bit4 == 1) {
arg0->unk_54--;
var_r28 = -1;
if(arg0->unk_54 < 0) {
arg0->unk_54 = 3;
}
} else {
arg0->unk_54--;
var_r28 = -1;
if(arg0->unk_54 < 0) {
arg0->unk_54 = 2;
}
}
} else if(HuPadBtnDown[0] & PAD_BUTTON_A) {
var_r27 = 1;
break;
} else if(HuPadBtnDown[0] & PAD_BUTTON_B) {
var_r27 = 0;
HuAudFXPlay(3);
break;
}
if(arg0->unk_54 != var_r26) {
HuAudFXPlay(0);
for(var_r30=0; var_r30<=5; var_r30++) {
fn_1_10FBC(1);
if(lbl_1_bss_74) {
var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][0]+(var_r28*10), var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_584[arg0->unk_5C][1]+35);
} else {
var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C%4][0], lbl_1_data_4D4[arg0->unk_5C%4][0]+(var_r28*10), var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35);
}
}
HuSprBankSet(var_r29, arg0->unk_48+46, arg0->unk_54);
for(var_r30=0; var_r30<=5; var_r30++) {
fn_1_10FBC(1);
if(lbl_1_bss_74) {
var_f31 = fn_1_10E38(lbl_1_data_584[arg0->unk_5C][0]+(var_r28*10), lbl_1_data_584[arg0->unk_5C][0], var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_584[arg0->unk_5C][1]+35);
} else {
var_f31 = fn_1_10E38(lbl_1_data_4D4[arg0->unk_5C%4][0]+(var_r28*10), lbl_1_data_4D4[arg0->unk_5C%4][0], var_r30, 5.0f);
HuSprPosSet(var_r29, arg0->unk_48+46, var_f31, lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35);
}
}
}
}
if(var_r27 == 1) {
if(lbl_1_bss_74) {
HuSprPosSet(var_r29, arg0->unk_48+50, lbl_1_data_584[arg0->unk_5C][0], lbl_1_data_584[arg0->unk_5C][1]+35);
} else {
HuSprPosSet(var_r29, arg0->unk_48+50, lbl_1_data_4D4[arg0->unk_5C%4][0], lbl_1_data_4D4[(arg0->unk_5C/4)*4][1]+35);
}
HuSprBankSet(var_r29, arg0->unk_48+50, arg0->unk_54);
HuSprAttrReset(var_r29, arg0->unk_48+50, HUSPR_ATTR_DISPOFF);
HuSprAttrSet(var_r29, arg0->unk_48+46, HUSPR_ATTR_DISPOFF);
}
return var_r27;
}