pokemon_summary_screen.c, part 2.
Also fix prototype of MenuHelpers_CallLinkSomething.
This commit is contained in:
@@ -5,530 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start sub_813476C
|
||||
sub_813476C: @ 813476C
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r2, r0, 24
|
||||
ldr r0, _08134790 @ =gMonSummaryScreen
|
||||
ldr r1, [r0]
|
||||
ldr r3, _08134794 @ =0x0000301c
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bne _0813479C
|
||||
ldr r3, _08134798 @ =0x00003224
|
||||
adds r0, r1, r3
|
||||
ldrb r0, [r0]
|
||||
cmp r0, r2
|
||||
beq _0813479C
|
||||
movs r0, 0x1
|
||||
b _0813479E
|
||||
.align 2, 0
|
||||
_08134790: .4byte gMonSummaryScreen
|
||||
_08134794: .4byte 0x0000301c
|
||||
_08134798: .4byte 0x00003224
|
||||
_0813479C:
|
||||
movs r0, 0
|
||||
_0813479E:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_813476C
|
||||
|
||||
thumb_func_start sub_81347A4
|
||||
sub_81347A4: @ 81347A4
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
ldr r0, _081347D4 @ =gMonSummaryScreen
|
||||
ldr r1, [r0]
|
||||
movs r2, 0xC8
|
||||
lsls r2, 6
|
||||
adds r0, r1, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08134830
|
||||
movs r0, 0xCC
|
||||
lsls r0, 6
|
||||
adds r2, r1, r0
|
||||
ldrb r1, [r2]
|
||||
adds r0, r1, 0
|
||||
cmp r0, 0xFF
|
||||
beq _081347D8
|
||||
cmp r0, r4
|
||||
bne _081347D8
|
||||
movs r0, 0xFF
|
||||
strb r0, [r2]
|
||||
_081347D0:
|
||||
movs r0, 0x1
|
||||
b _08134832
|
||||
.align 2, 0
|
||||
_081347D4: .4byte gMonSummaryScreen
|
||||
_081347D8:
|
||||
adds r0, r4, 0
|
||||
bl sub_813476C
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08134830
|
||||
cmp r4, 0
|
||||
beq _08134810
|
||||
cmp r4, 0x1
|
||||
bne _08134830
|
||||
ldr r0, _08134808 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _081347D0
|
||||
ldr r0, _0813480C @ =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x13]
|
||||
cmp r0, 0x1
|
||||
bne _08134830
|
||||
movs r0, 0x80
|
||||
lsls r0, 1
|
||||
b _0813482A
|
||||
.align 2, 0
|
||||
_08134808: .4byte gMain
|
||||
_0813480C: .4byte gSaveBlock2Ptr
|
||||
_08134810:
|
||||
ldr r0, _08134838 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x20
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _081347D0
|
||||
ldr r0, _0813483C @ =gSaveBlock2Ptr
|
||||
ldr r0, [r0]
|
||||
ldrb r0, [r0, 0x13]
|
||||
cmp r0, 0x1
|
||||
bne _08134830
|
||||
movs r0, 0x80
|
||||
lsls r0, 2
|
||||
_0813482A:
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _081347D0
|
||||
_08134830:
|
||||
movs r0, 0
|
||||
_08134832:
|
||||
pop {r4}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.align 2, 0
|
||||
_08134838: .4byte gMain
|
||||
_0813483C: .4byte gSaveBlock2Ptr
|
||||
thumb_func_end sub_81347A4
|
||||
|
||||
thumb_func_start sub_8134840
|
||||
sub_8134840: @ 8134840
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
sub sp, 0x4
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r8, r0
|
||||
ldr r1, _0813486C @ =gMonSummaryScreen
|
||||
ldr r0, [r1]
|
||||
ldr r2, _08134870 @ =0x00003270
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
adds r4, r1, 0
|
||||
cmp r0, 0x5
|
||||
bls _08134860
|
||||
b _08134B88
|
||||
_08134860:
|
||||
lsls r0, 2
|
||||
ldr r1, _08134874 @ =_08134878
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
mov pc, r0
|
||||
.align 2, 0
|
||||
_0813486C: .4byte gMonSummaryScreen
|
||||
_08134870: .4byte 0x00003270
|
||||
_08134874: .4byte _08134878
|
||||
.align 2, 0
|
||||
_08134878:
|
||||
.4byte _08134890
|
||||
.4byte _081348AC
|
||||
.4byte _081348E4
|
||||
.4byte _08134ADC
|
||||
.4byte _08134B38
|
||||
.4byte _08134B60
|
||||
_08134890:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r2, 0x10
|
||||
movs r3, 0
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, _081348A8 @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
b _081348D6
|
||||
.align 2, 0
|
||||
_081348A8: .4byte gMonSummaryScreen
|
||||
_081348AC:
|
||||
ldr r0, _081348C8 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _081348D4
|
||||
bl sub_813B784
|
||||
ldr r0, _081348CC @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
ldr r2, _081348D0 @ =0x00003270
|
||||
adds r0, r2
|
||||
b _08134AF6
|
||||
.align 2, 0
|
||||
_081348C8: .4byte gPaletteFade
|
||||
_081348CC: .4byte gMonSummaryScreen
|
||||
_081348D0: .4byte 0x00003270
|
||||
_081348D4:
|
||||
ldr r0, [r4]
|
||||
_081348D6:
|
||||
ldr r1, _081348E0 @ =0x00003270
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_081348E0: .4byte 0x00003270
|
||||
_081348E4:
|
||||
bl MenuHelpers_CallLinkSomething
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _081348F2
|
||||
b _08134B9A
|
||||
_081348F2:
|
||||
bl sub_800B270
|
||||
cmp r0, 0x1
|
||||
bne _081348FC
|
||||
b _08134B9A
|
||||
_081348FC:
|
||||
ldr r0, _08134940 @ =sub_813B3F0
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
cmp r7, 0
|
||||
beq _0813490C
|
||||
b _08134B9A
|
||||
_0813490C:
|
||||
ldr r5, _08134944 @ =gMonSummaryScreen
|
||||
ldr r0, [r5]
|
||||
ldr r6, _08134948 @ =0x00003214
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _081349F8
|
||||
movs r0, 0x1
|
||||
bl sub_81347A4
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0x1
|
||||
bne _0813498C
|
||||
ldr r0, _0813494C @ =sub_8134BAC
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08134950
|
||||
ldr r0, [r5]
|
||||
movs r2, 0xCC
|
||||
lsls r2, 6
|
||||
adds r0, r2
|
||||
strb r4, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134940: .4byte sub_813B3F0
|
||||
_08134944: .4byte gMonSummaryScreen
|
||||
_08134948: .4byte 0x00003214
|
||||
_0813494C: .4byte sub_8134BAC
|
||||
_08134950:
|
||||
ldr r0, [r5]
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x1
|
||||
bls _0813495C
|
||||
b _08134B9A
|
||||
_0813495C:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
movs r0, 0
|
||||
bl HideBg
|
||||
ldr r0, [r5]
|
||||
ldr r1, _08134988 @ =0x00003224
|
||||
adds r0, r1
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
bl sub_8138414
|
||||
ldr r1, [r5]
|
||||
adds r1, r6
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r5]
|
||||
b _08134AA8
|
||||
.align 2, 0
|
||||
_08134988: .4byte 0x00003224
|
||||
_0813498C:
|
||||
movs r0, 0
|
||||
bl sub_81347A4
|
||||
cmp r0, 0x1
|
||||
bne _081349F8
|
||||
ldr r0, _081349B0 @ =sub_8134BAC
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
lsrs r4, r0, 24
|
||||
cmp r4, 0
|
||||
beq _081349B4
|
||||
ldr r0, [r5]
|
||||
movs r1, 0xCC
|
||||
lsls r1, 6
|
||||
adds r0, r1
|
||||
strb r7, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_081349B0: .4byte sub_8134BAC
|
||||
_081349B4:
|
||||
ldr r0, [r5]
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _081349C0
|
||||
b _08134B9A
|
||||
_081349C0:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
movs r0, 0
|
||||
bl HideBg
|
||||
ldr r0, [r5]
|
||||
ldr r2, _081349F0 @ =0x00003224
|
||||
adds r0, r2
|
||||
strb r4, [r0]
|
||||
ldr r0, [r5]
|
||||
adds r0, r6
|
||||
ldrb r0, [r0]
|
||||
bl sub_8138414
|
||||
ldr r1, [r5]
|
||||
adds r1, r6
|
||||
ldrb r0, [r1]
|
||||
subs r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r5]
|
||||
ldr r1, _081349F4 @ =0x00003270
|
||||
adds r0, r1
|
||||
b _08134AAC
|
||||
.align 2, 0
|
||||
_081349F0: .4byte 0x00003224
|
||||
_081349F4: .4byte 0x00003270
|
||||
_081349F8:
|
||||
ldr r0, _08134A2C @ =sub_8134BAC
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
beq _08134A12
|
||||
ldr r0, _08134A30 @ =sub_813B3F0
|
||||
bl FuncIsActiveTask
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08134A12
|
||||
b _08134B9A
|
||||
_08134A12:
|
||||
ldr r0, _08134A34 @ =gMain
|
||||
ldrh r1, [r0, 0x2E]
|
||||
movs r0, 0x40
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08134A38
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
mov r0, r8
|
||||
bl sub_813B120
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134A2C: .4byte sub_8134BAC
|
||||
_08134A30: .4byte sub_813B3F0
|
||||
_08134A34: .4byte gMain
|
||||
_08134A38:
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08134A4A
|
||||
mov r0, r8
|
||||
movs r1, 0x1
|
||||
bl sub_813B120
|
||||
b _08134B9A
|
||||
_08134A4A:
|
||||
movs r0, 0x1
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08134ABC
|
||||
ldr r4, _08134A70 @ =gMonSummaryScreen
|
||||
ldr r0, [r4]
|
||||
ldr r5, _08134A74 @ =0x00003214
|
||||
adds r0, r5
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0
|
||||
bne _08134A7C
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
ldr r0, [r4]
|
||||
ldr r2, _08134A78 @ =0x00003270
|
||||
adds r0, r2
|
||||
b _08134ACC
|
||||
.align 2, 0
|
||||
_08134A70: .4byte gMonSummaryScreen
|
||||
_08134A74: .4byte 0x00003214
|
||||
_08134A78: .4byte 0x00003270
|
||||
_08134A7C:
|
||||
cmp r0, 0x2
|
||||
beq _08134A82
|
||||
b _08134B9A
|
||||
_08134A82:
|
||||
movs r0, 0x5
|
||||
bl PlaySE
|
||||
ldr r0, [r4]
|
||||
ldr r1, _08134AB4 @ =0x00003224
|
||||
adds r0, r1
|
||||
movs r1, 0x1
|
||||
strb r1, [r0]
|
||||
ldr r0, [r4]
|
||||
adds r0, r5
|
||||
ldrb r0, [r0]
|
||||
bl sub_8138414
|
||||
ldr r1, [r4]
|
||||
adds r1, r5
|
||||
ldrb r0, [r1]
|
||||
adds r0, 0x1
|
||||
strb r0, [r1]
|
||||
ldr r0, [r4]
|
||||
_08134AA8:
|
||||
ldr r2, _08134AB8 @ =0x00003270
|
||||
adds r0, r2
|
||||
_08134AAC:
|
||||
movs r1, 0x3
|
||||
strb r1, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134AB4: .4byte 0x00003224
|
||||
_08134AB8: .4byte 0x00003270
|
||||
_08134ABC:
|
||||
movs r0, 0x2
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
beq _08134B9A
|
||||
ldr r0, _08134AD4 @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08134AD8 @ =0x00003270
|
||||
adds r0, r1
|
||||
_08134ACC:
|
||||
movs r1, 0x4
|
||||
strb r1, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134AD4: .4byte gMonSummaryScreen
|
||||
_08134AD8: .4byte 0x00003270
|
||||
_08134ADC:
|
||||
ldr r3, [r4]
|
||||
ldr r2, _08134AFC @ =0x00003214
|
||||
adds r0, r3, r2
|
||||
ldrb r0, [r0]
|
||||
cmp r0, 0x3
|
||||
beq _08134B08
|
||||
ldr r0, _08134B00 @ =sub_8134BAC
|
||||
movs r1, 0
|
||||
bl CreateTask
|
||||
ldr r0, [r4]
|
||||
ldr r1, _08134B04 @ =0x00003270
|
||||
adds r0, r1
|
||||
_08134AF6:
|
||||
movs r1, 0x2
|
||||
strb r1, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134AFC: .4byte 0x00003214
|
||||
_08134B00: .4byte sub_8134BAC
|
||||
_08134B04: .4byte 0x00003270
|
||||
_08134B08:
|
||||
ldr r2, _08134B28 @ =gTasks
|
||||
ldr r1, _08134B2C @ =0x00003018
|
||||
adds r0, r3, r1
|
||||
ldrb r1, [r0]
|
||||
lsls r0, r1, 2
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
adds r0, r2
|
||||
ldr r1, _08134B30 @ =sub_8134E84
|
||||
str r1, [r0]
|
||||
ldr r2, _08134B34 @ =0x00003270
|
||||
adds r1, r3, r2
|
||||
movs r0, 0x2
|
||||
strb r0, [r1]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134B28: .4byte gTasks
|
||||
_08134B2C: .4byte 0x00003018
|
||||
_08134B30: .4byte sub_8134E84
|
||||
_08134B34: .4byte 0x00003270
|
||||
_08134B38:
|
||||
movs r0, 0x1
|
||||
negs r0, r0
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
movs r2, 0
|
||||
movs r3, 0x10
|
||||
bl BeginNormalPaletteFade
|
||||
ldr r0, _08134B58 @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
ldr r1, _08134B5C @ =0x00003270
|
||||
adds r0, r1
|
||||
movs r1, 0x5
|
||||
strb r1, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134B58: .4byte gMonSummaryScreen
|
||||
_08134B5C: .4byte 0x00003270
|
||||
_08134B60:
|
||||
bl Overworld_LinkRecvQueueLengthMoreThan2
|
||||
cmp r0, 0x1
|
||||
beq _08134B9A
|
||||
bl sub_800B270
|
||||
cmp r0, 0x1
|
||||
beq _08134B9A
|
||||
ldr r0, _08134B80 @ =gMonSummaryScreen
|
||||
ldr r0, [r0]
|
||||
ldr r2, _08134B84 @ =0x00003270
|
||||
adds r0, r2
|
||||
movs r1, 0x6
|
||||
strb r1, [r0]
|
||||
b _08134B9A
|
||||
.align 2, 0
|
||||
_08134B80: .4byte gMonSummaryScreen
|
||||
_08134B84: .4byte 0x00003270
|
||||
_08134B88:
|
||||
ldr r0, _08134BA8 @ =gPaletteFade
|
||||
ldrb r1, [r0, 0x7]
|
||||
movs r0, 0x80
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _08134B9A
|
||||
mov r0, r8
|
||||
bl sub_8137E64
|
||||
_08134B9A:
|
||||
add sp, 0x4
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08134BA8: .4byte gPaletteFade
|
||||
thumb_func_end sub_8134840
|
||||
|
||||
thumb_func_start sub_8134BAC
|
||||
sub_8134BAC: @ 8134BAC
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -15,7 +15,7 @@ struct YesNoFuncTable
|
||||
};
|
||||
|
||||
bool16 RunTextPrinters_CheckActive(u8 textPrinterId);
|
||||
bool32 MenuHelpers_CallLinkSomething(void);
|
||||
bool8 MenuHelpers_CallLinkSomething(void);
|
||||
bool8 sub_80BF748(void);
|
||||
bool8 MenuHelpers_LinkSomething(void);
|
||||
void SetVBlankHBlankCallbacksToNull(void);
|
||||
|
||||
@@ -34,6 +34,17 @@ enum PokemonSummaryScreenPage
|
||||
PSS_PAGE_MOVES_INFO,
|
||||
};
|
||||
|
||||
enum PokemonSummaryScreenState3270
|
||||
{
|
||||
PSS_STATE3270_0,
|
||||
PSS_STATE3270_1,
|
||||
PSS_STATE3270_2,
|
||||
PSS_STATE3270_3,
|
||||
PSS_STATE3270_4,
|
||||
PSS_STATE3270_5,
|
||||
PSS_STATE3270_6
|
||||
};
|
||||
|
||||
s32 GetLastViewedMonIndex(void);
|
||||
void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4);
|
||||
void sub_8138B38(u8);
|
||||
|
||||
+3
-3
@@ -457,7 +457,7 @@ static void CB2_InitBerryPouch(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
if (RunBerryPouchInit() == TRUE)
|
||||
break;
|
||||
@@ -934,7 +934,7 @@ static void Task_BerryPouchMain(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
s32 menuInput;
|
||||
if (!gPaletteFade.active && (u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (!gPaletteFade.active && MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
menuInput = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sStaticCnt.listMenuScrollOffset, &sStaticCnt.listMenuSelectedRow);
|
||||
@@ -1040,7 +1040,7 @@ static void Task_NormalContextMenu(u8 taskId)
|
||||
static void Task_NormalContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+4
-4
@@ -377,7 +377,7 @@ static void CB2_OpenBagMenu(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
if (LoadBagMenuGraphics() == TRUE)
|
||||
break;
|
||||
@@ -1050,7 +1050,7 @@ static void Task_BagMenu_HandleInput(u8 taskId)
|
||||
return;
|
||||
if (FuncIsActiveTask(Task_AnimateWin0v) == TRUE)
|
||||
return;
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return;
|
||||
switch (ProcessPocketSwitchInput(taskId, gBagMenuState.pocket))
|
||||
{
|
||||
@@ -1244,7 +1244,7 @@ static void Task_MoveItemInPocket_HandleInput(u8 taskId)
|
||||
s32 input;
|
||||
u16 itemsAbove;
|
||||
u16 cursorPos;
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return;
|
||||
input = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &gBagMenuState.cursorPos[gBagMenuState.pocket], &gBagMenuState.itemsAbove[gBagMenuState.pocket]);
|
||||
@@ -1447,7 +1447,7 @@ static void Task_ItemContext_FieldOrBattle(u8 taskId)
|
||||
static void Task_FieldItemContextMenuHandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
+1
-1
@@ -379,7 +379,7 @@ static bool8 ItemPc_DoGfxSetup(void)
|
||||
gMain.state++;
|
||||
break;
|
||||
case 20:
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
gMain.state++;
|
||||
break;
|
||||
default:
|
||||
|
||||
+2
-2
@@ -120,7 +120,7 @@ bool8 MenuHelpers_LinkSomething(void)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool32 MenuHelpers_CallLinkSomething(void)
|
||||
bool8 MenuHelpers_CallLinkSomething(void)
|
||||
{
|
||||
if (!MenuHelpers_LinkSomething())
|
||||
return FALSE;
|
||||
@@ -130,7 +130,7 @@ bool32 MenuHelpers_CallLinkSomething(void)
|
||||
|
||||
bool8 sub_80BF748(void)
|
||||
{
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return TRUE;
|
||||
else if (sub_800B270() != TRUE)
|
||||
return FALSE;
|
||||
|
||||
+4
-2
@@ -3,7 +3,6 @@
|
||||
#include "scanline_effect.h"
|
||||
#include "text_window_graphics.h"
|
||||
#include "menu.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "task.h"
|
||||
#include "overworld.h"
|
||||
#include "help_system.h"
|
||||
@@ -12,6 +11,9 @@
|
||||
#include "field_fadetransition.h"
|
||||
#include "gba/m4a_internal.h"
|
||||
|
||||
// can't include the one in menu_helpers.h since Task_OptionMenu needs bool32 for matching
|
||||
bool32 MenuHelpers_CallLinkSomething(void);
|
||||
|
||||
// Menu items
|
||||
enum
|
||||
{
|
||||
@@ -369,7 +371,7 @@ static void Task_OptionMenu(u8 taskId)
|
||||
sOptionMenuPtr->loadState++;
|
||||
break;
|
||||
case 2:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (((bool32)MenuHelpers_CallLinkSomething()) == TRUE)
|
||||
break;
|
||||
switch (OptionMenu_ProcessInput())
|
||||
{
|
||||
|
||||
+260
-18
@@ -3,46 +3,110 @@
|
||||
#include "pokemon.h"
|
||||
#include "pokemon_summary_screen.h"
|
||||
#include "help_system.h"
|
||||
#include "task.h"
|
||||
#include "menu_helpers.h"
|
||||
#include "link.h"
|
||||
#include "overworld.h"
|
||||
#include "constants/songs.h"
|
||||
|
||||
extern void sub_8138B8C(struct Pokemon * mon);
|
||||
extern void sub_8135C34(void);
|
||||
extern void sub_813B784(void);
|
||||
extern void sub_8138414(u8 curPageIndex);
|
||||
extern void sub_8134BAC(u8 taskId);
|
||||
extern void sub_8134E84(u8 taskId);
|
||||
extern void sub_813B3F0(u8 taskId);
|
||||
extern void sub_813B120(u8, s8);
|
||||
extern void sub_8137E64(u8 taskId);
|
||||
|
||||
struct PokemonSummaryScreenData {
|
||||
u8 temp0[0x3024];
|
||||
u16 unk0[0x800];
|
||||
u16 unk1000[0x800];
|
||||
u16 unk2000[0x800];
|
||||
u8 ALIGNED(4) unk3000[7];
|
||||
|
||||
u8 ALIGNED(4) unk3008;
|
||||
u8 ALIGNED(4) unk300C;
|
||||
u8 ALIGNED(4) unk3010;
|
||||
u8 ALIGNED(4) unk3014;
|
||||
|
||||
u8 ALIGNED(4) unk3018;
|
||||
u8 ALIGNED(4) unk301C;
|
||||
|
||||
u8 ALIGNED(4) unk3020;
|
||||
|
||||
bool32 isEnemyParty; /* 0x3024 */
|
||||
|
||||
u8 temp3028[0x1d8];
|
||||
struct PokeSummary {
|
||||
u8 ALIGNED(4) unk3028[POKEMON_NAME_LENGTH];
|
||||
u8 ALIGNED(4) unk3034[POKEMON_NAME_LENGTH + 1];
|
||||
|
||||
u8 ALIGNED(4) unk3040[OT_NAME_LENGTH + 1];
|
||||
u8 ALIGNED(4) unk3048[2][OT_NAME_LENGTH + 1];
|
||||
|
||||
u8 ALIGNED(4) unk3058[5];
|
||||
u8 ALIGNED(4) unk3060[7];
|
||||
u8 ALIGNED(4) unk3068[16];
|
||||
|
||||
u8 ALIGNED(4) unk3078[3];
|
||||
u8 ALIGNED(4) unk307C[7];
|
||||
u8 ALIGNED(4) unk3084[9];
|
||||
u8 ALIGNED(4) unk3090[5][5];
|
||||
|
||||
u8 ALIGNED(4) unk30AC[5][11];
|
||||
u8 ALIGNED(4) unk30E4[5][11];
|
||||
u8 ALIGNED(4) unk311C[5][13];
|
||||
u8 ALIGNED(4) pssd4[5][5];
|
||||
u8 ALIGNED(4) pssd5[5][5];
|
||||
|
||||
u8 ALIGNED(4) pssd6[9];
|
||||
u8 ALIGNED(4) pssd7[9];
|
||||
|
||||
u8 ALIGNED(4) pssd8[13];
|
||||
u8 ALIGNED(4) pssd9[20];
|
||||
u8 ALIGNED(4) tempPadRemoveLater[0x2c];
|
||||
} summary;
|
||||
|
||||
u8 ALIGNED(4) isEgg; /* 0x3200 */
|
||||
u8 ALIGNED(4) isBadEgg; /* 0x3204 */
|
||||
|
||||
u8 ALIGNED(4) mode; /* 0x3208 */
|
||||
u8 ALIGNED(4) unk320C; /* 0x320C */
|
||||
u8 ALIGNED(4) lastIndex; /* 0x3210 */
|
||||
u8 ALIGNED(4) curPageIndex; /* 0x3214 */
|
||||
u8 ALIGNED(4) unk3218; /* 0x3218 */
|
||||
u8 ALIGNED(4) isBoxMon; /* 0x321C */
|
||||
u8 ALIGNED(4) unk3220; /* 0x3220 */
|
||||
u8 ALIGNED(4) unk3220[2]; /* 0x3220 */
|
||||
|
||||
u8 ALIGNED(4) unk3224; /* 0x3224 */
|
||||
u8 ALIGNED(4) unk3228; /* 0x3228 */
|
||||
u8 ALIGNED(4) unk322C; /* 0x322C */
|
||||
u8 ALIGNED(4) unk3230; /* 0x3230 */
|
||||
|
||||
u8 ALIGNED(4) lockMovesFlag; /* 0x3234 */
|
||||
|
||||
u8 ALIGNED(4) unk3238; /* 0x3238 */
|
||||
u8 ALIGNED(4) unk323C; /* 0x323C */
|
||||
u8 ALIGNED(4) unk3240; /* 0x3240 */
|
||||
u8 ALIGNED(4) unk3244; /* 0x3244 */
|
||||
u8 ALIGNED(4) unk3248; /* 0x3248 */
|
||||
s16 ALIGNED(4) unk324C; /* 0x324C */
|
||||
|
||||
u8 temp3248[0x18];
|
||||
u16 ALIGNED(4) unk3260; /* 0x3260 */
|
||||
u16 unk3250[5]; /* 0x3250 */
|
||||
u16 unk325A[5]; /* 0x325A */
|
||||
u8 ALIGNED(4) unk3264; /* 0x3264 */
|
||||
u8 ALIGNED(4) unk3268; /* 0x3268 */
|
||||
|
||||
u8 temp3264[0xc];
|
||||
u8 ALIGNED(4) unk326C; /* 0x326C */
|
||||
|
||||
u8 ALIGNED(4) unk3270; /* 0x3270 */
|
||||
u8 ALIGNED(4) state3270; /* 0x3270 */
|
||||
u8 ALIGNED(4) unk3274; /* 0x3274 */
|
||||
u8 ALIGNED(4) unk3278; /* 0x3278 */
|
||||
u8 ALIGNED(4) unk327C; /* 0x327C */
|
||||
|
||||
u8 temp3280[0x10];
|
||||
u8 ALIGNED(4) unk3280; /* 0x3280 */
|
||||
u8 ALIGNED(4) unk3284; /* 0x3284 */
|
||||
u8 ALIGNED(4) unk3288; /* 0x3288 */
|
||||
u8 ALIGNED(4) unk328C; /* 0x328C */
|
||||
|
||||
struct Pokemon currentMon;
|
||||
|
||||
@@ -54,8 +118,8 @@ struct PokemonSummaryScreenData {
|
||||
MainCallback savedCallback;
|
||||
struct Sprite * markingSprite;
|
||||
|
||||
u8 ALIGNED(4) unk3300; /* 0x3300 */
|
||||
u8 ALIGNED(4) unk3304; /* 0x3304 */
|
||||
u8 ALIGNED(4) unk3300[2]; /* 0x3300 */
|
||||
u8 ALIGNED(4) unk3304[3]; /* 0x3304 */
|
||||
};
|
||||
|
||||
struct Struct203B144 {
|
||||
@@ -93,7 +157,8 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx,
|
||||
gMonSummaryScreen->lastIndex = lastIdx;
|
||||
gMonSummaryScreen->mode = mode;
|
||||
|
||||
switch (gMonSummaryScreen->mode) {
|
||||
switch (gMonSummaryScreen->mode)
|
||||
{
|
||||
case PSS_MODE_NORMAL:
|
||||
default:
|
||||
SetHelpContext(HELPCONTEXT_POKEMON_INFO);
|
||||
@@ -116,7 +181,7 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx,
|
||||
break;
|
||||
}
|
||||
|
||||
gMonSummaryScreen->unk3270 = 0;
|
||||
gMonSummaryScreen->state3270 = 0;
|
||||
gMonSummaryScreen->unk3274 = 0;
|
||||
gMonSummaryScreen->unk3278 = 0;
|
||||
gMonSummaryScreen->unk327C = 0;
|
||||
@@ -133,15 +198,192 @@ void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx,
|
||||
gMonSummaryScreen->isEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_IS_EGG);
|
||||
gMonSummaryScreen->isBadEgg = GetMonData(&gMonSummaryScreen->currentMon, MON_DATA_SANITY_IS_BAD_EGG);
|
||||
|
||||
if (gMonSummaryScreen->isBadEgg == TRUE) {
|
||||
if (gMonSummaryScreen->isBadEgg == TRUE)
|
||||
gMonSummaryScreen->isEgg = TRUE;
|
||||
}
|
||||
|
||||
gMonSummaryScreen->unk3300 = 0xff;
|
||||
gMonSummaryScreen->unk3300[0] = 0xff;
|
||||
SetMainCallback2(sub_8135C34);
|
||||
}
|
||||
|
||||
void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u16 a4) {
|
||||
void ShowSelectMovePokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, MainCallback savedCallback, u16 a4)
|
||||
{
|
||||
ShowPokemonSummaryScreen(party, cursorPos, lastIdx, savedCallback, PSS_MODE_SELECT_MOVE);
|
||||
gMonSummaryScreen->unk3260 = a4;
|
||||
gMonSummaryScreen->unk325A[4] = a4;
|
||||
}
|
||||
|
||||
u8 sub_813476C(u8 a0)
|
||||
{
|
||||
if (gMonSummaryScreen->unk301C == TRUE && gMonSummaryScreen->unk3224 != a0)
|
||||
return TRUE;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
u32 sub_81347A4(u8 a0)
|
||||
{
|
||||
if (gMonSummaryScreen->isEgg)
|
||||
return FALSE;
|
||||
|
||||
if (gMonSummaryScreen->unk3300[0] != 0xff && gMonSummaryScreen->unk3300[0] == a0)
|
||||
{
|
||||
gMonSummaryScreen->unk3300[0] = 0xff;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
if (sub_813476C(a0))
|
||||
return FALSE;
|
||||
|
||||
switch (a0)
|
||||
{
|
||||
case 1:
|
||||
if (JOY_NEW(DPAD_RIGHT))
|
||||
return TRUE;
|
||||
|
||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR && JOY_NEW(R_BUTTON))
|
||||
return TRUE;
|
||||
|
||||
break;
|
||||
case 0:
|
||||
if (JOY_NEW(DPAD_LEFT))
|
||||
return TRUE;
|
||||
|
||||
if (gSaveBlock2Ptr->optionsButtonMode == OPTIONS_BUTTON_MODE_LR && JOY_NEW(L_BUTTON))
|
||||
return TRUE;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void sub_8134840(u8 taskId)
|
||||
{
|
||||
switch (gMonSummaryScreen->state3270) {
|
||||
case PSS_STATE3270_0:
|
||||
BeginNormalPaletteFade(0xffffffff, 0, 16, 0, 0);
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_1;
|
||||
break;
|
||||
case PSS_STATE3270_1:
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
sub_813B784();
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_2;
|
||||
return;
|
||||
}
|
||||
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_1;
|
||||
break;
|
||||
case PSS_STATE3270_2:
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
return;
|
||||
else if (sub_800B270() == TRUE)
|
||||
return;
|
||||
else if (FuncIsActiveTask(sub_813B3F0))
|
||||
return;
|
||||
|
||||
if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
|
||||
{
|
||||
if (sub_81347A4(1) == TRUE)
|
||||
{
|
||||
if (FuncIsActiveTask(sub_8134BAC))
|
||||
{
|
||||
gMonSummaryScreen->unk3300[0] = 1;
|
||||
return;
|
||||
}
|
||||
else if (gMonSummaryScreen->curPageIndex < PSS_PAGE_MOVES)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
HideBg(0);
|
||||
gMonSummaryScreen->unk3224 = 1;
|
||||
sub_8138414(gMonSummaryScreen->curPageIndex);
|
||||
gMonSummaryScreen->curPageIndex++;
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_3;
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (sub_81347A4(0) == TRUE)
|
||||
{
|
||||
if (FuncIsActiveTask(sub_8134BAC))
|
||||
{
|
||||
gMonSummaryScreen->unk3300[0] = 0;
|
||||
return;
|
||||
}
|
||||
else if (gMonSummaryScreen->curPageIndex > PSS_PAGE_INFO)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
HideBg(0);
|
||||
gMonSummaryScreen->unk3224 = 0;
|
||||
sub_8138414(gMonSummaryScreen->curPageIndex);
|
||||
gMonSummaryScreen->curPageIndex--;
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_3;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!FuncIsActiveTask(sub_8134BAC)) || FuncIsActiveTask(sub_813B3F0))
|
||||
{
|
||||
if (JOY_NEW(DPAD_UP))
|
||||
{
|
||||
sub_813B120(taskId, -1);
|
||||
return;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
sub_813B120(taskId, 1);
|
||||
return;
|
||||
}
|
||||
else if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
if (gMonSummaryScreen->curPageIndex == PSS_PAGE_INFO)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_4;
|
||||
}
|
||||
else if (gMonSummaryScreen->curPageIndex == PSS_PAGE_MOVES)
|
||||
{
|
||||
PlaySE(SE_SELECT);
|
||||
gMonSummaryScreen->unk3224 = 1;
|
||||
sub_8138414(gMonSummaryScreen->curPageIndex);
|
||||
gMonSummaryScreen->curPageIndex++;
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_3;
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_4;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case PSS_STATE3270_3:
|
||||
if (gMonSummaryScreen->curPageIndex != PSS_PAGE_MOVES_INFO)
|
||||
{
|
||||
CreateTask(sub_8134BAC, 0);
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_2;
|
||||
}
|
||||
else
|
||||
{
|
||||
gTasks[gMonSummaryScreen->unk3018].func = sub_8134E84;
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_2;
|
||||
}
|
||||
break;
|
||||
case PSS_STATE3270_4:
|
||||
BeginNormalPaletteFade(0xffffffff, 0, 0, 16, 0);
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_5;
|
||||
break;
|
||||
case PSS_STATE3270_5:
|
||||
if (Overworld_LinkRecvQueueLengthMoreThan2() == TRUE)
|
||||
return;
|
||||
else if (sub_800B270() == TRUE)
|
||||
return;
|
||||
|
||||
gMonSummaryScreen->state3270 = PSS_STATE3270_6;
|
||||
break;
|
||||
default:
|
||||
if (!gPaletteFade.active)
|
||||
sub_8137E64(taskId);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-3
@@ -298,7 +298,7 @@ static void CB2_SetUpTMCaseUI_Blocking(void)
|
||||
{
|
||||
while (1)
|
||||
{
|
||||
if ((u8)MenuHelpers_CallLinkSomething() == TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() == TRUE)
|
||||
break;
|
||||
if (DoSetUpTMCaseUI() == TRUE)
|
||||
break;
|
||||
@@ -727,7 +727,7 @@ static void Task_TMCaseMain(u8 taskId)
|
||||
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = ListMenu_ProcessInput(data[0]);
|
||||
ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
|
||||
@@ -808,7 +808,7 @@ static void Task_TMContextMenu_HandleInput(u8 taskId)
|
||||
{
|
||||
s8 input;
|
||||
|
||||
if ((u8)MenuHelpers_CallLinkSomething() != TRUE)
|
||||
if (MenuHelpers_CallLinkSomething() != TRUE)
|
||||
{
|
||||
input = Menu_ProcessInputNoWrapAround();
|
||||
switch (input)
|
||||
|
||||
Reference in New Issue
Block a user