Skip to content

Commit b18c1f2

Browse files
Merge pull request #368 from DizzyEggg/sub_8032828
Fix nonmatching in sub_8032828
2 parents bae2992 + d2548f4 commit b18c1f2

File tree

1 file changed

+48
-40
lines changed

1 file changed

+48
-40
lines changed

src/friend_rescue.c

+48-40
Original file line numberDiff line numberDiff line change
@@ -703,12 +703,8 @@ void nullsub_40(void)
703703

704704
void sub_8032828(void)
705705
{
706-
707706
unkStruct_203B480 *mail;
708-
u32 temp;
709-
u8 buffer [80];
710-
PokemonStruct1 *pokeStruct1;
711-
PokemonStruct1 *pokeStruct2;
707+
u8 buffer[80];
712708
char *monName;
713709

714710
switch (gUnknown_203B33C->state) {
@@ -824,6 +820,12 @@ void sub_8032828(void)
824820
sub_80306A8(WONDER_MAIL_TYPE_SOS, 0, NULL, 6);
825821
}
826822
break;
823+
case 0x33:
824+
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C);
825+
SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE);
826+
sub_803092C();
827+
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
828+
break;
827829
case 0x35:
828830
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E29A0[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
829831
break;
@@ -856,26 +858,25 @@ void sub_8032828(void)
856858
case 0x2D:
857859
CreateDialogueBoxAndPortrait(&gUnknown_80E2A80[0], 0, 0, 0x101);
858860
break;
861+
case 0x2E:
862+
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC);
863+
ResetUnusedInputStruct();
864+
ShowWindows(NULL, TRUE, TRUE);
865+
sub_8031D70(gUnknown_203B33C->unk218, 0);
866+
break;
859867
case 0x2F:
860868
CreateDialogueBoxAndPortrait(&gUnknown_80E2AA8[0], 0, 0, 0x101);
861869
break;
862870
case 0x2A:
863871
CreateDialogueBoxAndPortrait(&gUnknown_80E2AE4[0], 0, 0, 0x101);
864872
break;
865873
case 0x2B:
866-
#ifndef NONMATCHING
867-
gUnknown_203B33C->unk52C = gUnknown_203B33C->unk52C;
868-
gUnknown_80E2BE0[0] = gUnknown_80E2BE0[0];
869-
#endif //NONMATCHING
870874
switch ((u32)gUnknown_203B33C->unk524) {
871875
case 0xC:
872876
break;
873877
case 0xB:
874878
case 0xD:
875879
case 0xE:
876-
#ifndef NONMATCHING
877-
gUnknown_80E2BE0[0] = gUnknown_80E2BE0[0];
878-
#endif //NONMATCHING
879880
CreateDialogueBoxAndPortrait(&gUnknown_80E2B54[0], 0, 0, 0x101);
880881
break;
881882
}
@@ -921,6 +922,12 @@ void sub_8032828(void)
921922
sub_80306A8(WONDER_MAIL_TYPE_AOK, 0, NULL, 6);
922923
}
923924
break;
925+
case 0x1E:
926+
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C);
927+
SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE);
928+
sub_803092C();
929+
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
930+
break;
924931
case 0x20:
925932
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2D30[0], 0, 6, gUnknown_80E22B4, NULL, 4, 0, NULL, 0x101);
926933
break;
@@ -930,6 +937,10 @@ void sub_8032828(void)
930937
case 0x5:
931938
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2D7C[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
932939
break;
940+
case 0xD:
941+
nullsub_23(FALSE);
942+
CreateDialogueBoxAndPortrait(&gUnknown_80E2DD0[0], 0, NULL, 0);
943+
break;
933944
case 0xA:
934945
case 0x4C:
935946
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2E20[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
@@ -947,9 +958,6 @@ void sub_8032828(void)
947958
sub_8011830();
948959
gUnknown_203B33C->status = sub_8037B28(gUnknown_203B33C->unk40);
949960
if (gUnknown_203B33C->status == 0) {
950-
#ifndef NONMATCHING
951-
u8 *u8ptr;
952-
#endif //NONMATCHING
953961
switch (gUnknown_203B33C->unk40) {
954962
case 0x3:
955963
MemoryFill8(&gUnknown_203B33C->unk48, 0, sizeof(unkStruct_203B480));
@@ -959,15 +967,7 @@ void sub_8032828(void)
959967
case 0x2:
960968
MemoryFill8(&gUnknown_203B33C->unk48, 0, sizeof(unkStruct_203B480));
961969
MemoryFill8(&gUnknown_203B33C->unk78, 0, sizeof(unkStruct_203B480));
962-
#ifdef NONMATCHING
963-
// Regswaps
964970
gUnknown_203B33C->unk48 = *GetMailatIndex(gUnknown_203B33C->unk218);
965-
#else
966-
gUnknown_80E2BE0[0] = gUnknown_80E2BE0[0];
967-
u8ptr = &gUnknown_203B33C->unk218;
968-
gUnknown_80E2BE0[0] = gUnknown_80E2BE0[0];
969-
gUnknown_203B33C->unk48 = *GetMailatIndex(*u8ptr);
970-
#endif //NONMATCHING
971971
gUnknown_203B33C->status = sub_8037D64(gUnknown_203B33C->unk40, &gUnknown_203B33C->unk48, &gUnknown_203B33C->unk78);
972972
break;
973973
case 0x5:
@@ -982,10 +982,7 @@ void sub_8032828(void)
982982
gUnknown_203B33C->unk130.pokemon.speciesNum = 0;
983983
gUnknown_203B33C->unkA8.mail = *GetMailatIndex(gUnknown_203B33C->unk218);
984984
if (gUnknown_203B33C->speciesNum != -1) {
985-
pokeStruct1 = &gUnknown_203B33C->unkA8.pokemon;
986-
pokeStruct2 = gRecruitedPokemonRef->pokemon;
987-
pokeStruct2 += gUnknown_203B33C->speciesNum;
988-
memcpy(pokeStruct1, pokeStruct2, sizeof(PokemonStruct1));
985+
gUnknown_203B33C->unkA8.pokemon = gRecruitedPokemonRef->pokemon[gUnknown_203B33C->speciesNum];
989986
}
990987
gUnknown_203B33C->status = sub_8037D64(gUnknown_203B33C->unk40, &gUnknown_203B33C->unkA8, &gUnknown_203B33C->unk130);
991988
break;
@@ -1027,6 +1024,12 @@ void sub_8032828(void)
10271024
ShowWindows(NULL, TRUE, TRUE);
10281025
sub_80306A8(WONDER_MAIL_TYPE_SOS, 0, NULL, 6);
10291026
break;
1027+
case 0x13:
1028+
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C);
1029+
SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE);
1030+
sub_803092C();
1031+
sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1);
1032+
break;
10301033
case 0x15:
10311034
CreateMenuDialogueBoxAndPortrait(&gUnknown_80E2F78[0], 0, 6, gUnknown_80E2290, NULL, 4, 0, NULL, 0x101);
10321035
break;
@@ -1062,6 +1065,13 @@ void sub_8032828(void)
10621065
case 0x5B:
10631066
CreateDialogueBoxAndPortrait(gUnknown_80E30D0, 0, 0, 0x101);
10641067
break;
1068+
case 0x5C:
1069+
if (sub_8030894() == 0) {
1070+
ResetUnusedInputStruct();
1071+
ShowWindows(NULL, TRUE, TRUE);
1072+
sub_80306A8(5, 0, 0, 6);
1073+
}
1074+
break;
10651075
case 0x5D:
10661076
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C);
10671077
SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E2408, TRUE, 0, FALSE);
@@ -1101,13 +1111,17 @@ void sub_8032828(void)
11011111
gUnknown_203B33C->status = sub_8037D64(gUnknown_203B33C->unk40, &gUnknown_203B33C->unk1B8, &gUnknown_203B33C->unk1E8);
11021112
break;
11031113
}
1104-
temp = 6;
1105-
if (gUnknown_203B33C->status == 0 && gUnknown_203B33C->unk40 <= 7 && gUnknown_203B33C->unk40 >= temp) {
1106-
gUnknown_203B33C->status = sub_80381F4(gUnknown_203B33C->unk40, &gUnknown_203B33C->unk1B8, &gUnknown_203B33C->unk1E8);
1107-
if (sub_800D588() != 0)
1108-
gUnknown_203B33C->unk420 = gUnknown_203B33C->unk1E8.unk10.unk10;
1109-
else
1110-
gUnknown_203B33C->unk420 = gUnknown_203B33C->unk1B8.unk10.unk10;
1114+
}
1115+
if (gUnknown_203B33C->status == 0) {
1116+
switch (gUnknown_203B33C->unk40) {
1117+
case 0x6:
1118+
case 0x7:
1119+
gUnknown_203B33C->status = sub_80381F4(gUnknown_203B33C->unk40, &gUnknown_203B33C->unk1B8, &gUnknown_203B33C->unk1E8);
1120+
if (sub_800D588() != 0)
1121+
gUnknown_203B33C->unk420 = gUnknown_203B33C->unk1E8.unk10.unk10;
1122+
else
1123+
gUnknown_203B33C->unk420 = gUnknown_203B33C->unk1B8.unk10.unk10;
1124+
break;
11111125
}
11121126
}
11131127
xxx_call_start_bg_music();
@@ -1125,7 +1139,6 @@ void sub_8032828(void)
11251139
CreateDialogueBoxAndPortrait(gUnknown_80E314C, 0, 0, 0x101);
11261140
break;
11271141
case 0x67:
1128-
case 0x2E:
11291142
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC);
11301143
ResetUnusedInputStruct();
11311144
ShowWindows(NULL, TRUE, TRUE);
@@ -1176,7 +1189,6 @@ void sub_8032828(void)
11761189
gUnknown_203B33C->unk53C.friendAreaReward = 0;
11771190
sub_802F204(&gUnknown_203B33C->unk53C, 0);
11781191
break;
1179-
case 0xD:
11801192
case 0x62:
11811193
nullsub_23(FALSE);
11821194
CreateDialogueBoxAndPortrait(&gUnknown_80E2DD0[0], 0, NULL, 0);
@@ -1231,17 +1243,13 @@ void sub_8032828(void)
12311243
CreateDialogueBoxAndPortrait(&gUnknown_80E34F0[0], 0, 0, 0x101);
12321244
break;
12331245
case 0x47:
1234-
case 0x5C:
12351246
if (sub_8030894() == 0) {
12361247
ResetUnusedInputStruct();
12371248
ShowWindows(NULL, TRUE, TRUE);
12381249
sub_80306A8(5, 0, 0, 6);
12391250
}
12401251
break;
12411252
case 0x48:
1242-
case 0x13:
1243-
case 0x1E:
1244-
case 0x33:
12451253
RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C);
12461254
SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE);
12471255
sub_803092C();

0 commit comments

Comments
 (0)