fix: rm asm/diploma.s

This commit is contained in:
dheu 2019-07-10 14:50:54 +08:00
commit da593ec33d
93 changed files with 2613 additions and 4684 deletions

View File

@ -13497,7 +13497,7 @@ sub_8016AC0: @ 8016AC0
strh r1, [r0]
ldr r0, _08016B08 @ =gBattle_BG0_Y
strh r1, [r0]
ldr r1, _08016B0C @ =gUnknown_2039994
ldr r1, _08016B0C @ =gNumSafariBalls
ldrb r0, [r1]
subs r0, 0x1
strb r0, [r1]
@ -13518,7 +13518,7 @@ _08016AFC: .4byte gUnknown_2023BDE
_08016B00: .4byte gUnknown_2023BE2
_08016B04: .4byte gBattle_BG0_X
_08016B08: .4byte gBattle_BG0_Y
_08016B0C: .4byte gUnknown_2039994
_08016B0C: .4byte gNumSafariBalls
_08016B10: .4byte gUnknown_2023D68
_08016B14: .4byte gUnknown_2023D74
_08016B18: .4byte gUnknown_81D99B0

View File

@ -4307,7 +4307,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
ldr r1, _08049D84 @ =gUnknown_83FE81C
mov r0, sp
bl StringCopy
ldr r1, _08049D88 @ =gUnknown_2039994
ldr r1, _08049D88 @ =gNumSafariBalls
ldrb r1, [r1]
movs r2, 0
movs r3, 0x2
@ -4351,7 +4351,7 @@ UpdateLeftNoOfBallsTextOnHealthbox: @ 8049D10
bx r0
.align 2, 0
_08049D84: .4byte gUnknown_83FE81C
_08049D88: .4byte gUnknown_2039994
_08049D88: .4byte gNumSafariBalls
_08049D8C: .4byte gSprites
_08049D90: .4byte 0x060102c0
_08049D94: .4byte 0x06010a00

View File

@ -287,7 +287,7 @@ sub_80CD460: @ 80CD460
ands r0, r1
cmp r0, 0
bne _080CD490
ldr r0, _080CD49C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _080CD49C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
ldr r0, _080CD4A0 @ =gUnknown_2039A1C
ldr r0, [r0]
@ -303,7 +303,7 @@ _080CD490:
bx r0
.align 2, 0
_080CD498: .4byte gPaletteFade
_080CD49C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_080CD49C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_080CD4A0: .4byte gUnknown_2039A1C
thumb_func_end sub_80CD460

View File

@ -17903,7 +17903,7 @@ PutMonIconOnLvlUpBox: @ 8026688
orrs r0, r1
str r0, [sp, 0x4]
adds r0, r4, 0
bl sub_80971CC
bl GetValidMonIconPalettePtr
str r0, [sp, 0x8]
add r4, sp, 0x8
ldr r0, [r4, 0x4]

View File

@ -46,7 +46,7 @@ _0807F65E:
ldr r0, _0807F68C @ =sub_800FD9C
bl SetMainCallback2
bl sub_806D7E8
bl overworld_poison_timer_set
bl ClearPoisonStepCounter
adds r0, r5, 0
bl DestroyTask
_0807F686:
@ -221,7 +221,7 @@ sub_807F7D8: @ 807F7D8
bl player_bitmagic
bl sub_805C780
ldr r1, _0807F804 @ =gMain
ldr r0, _0807F808 @ =sub_80A0F4C
ldr r0, _0807F808 @ =CB2_EndSafariBattle
str r0, [r1, 0x8]
ldr r1, _0807F80C @ =gBattleTypeFlags
movs r0, 0x80
@ -235,7 +235,7 @@ sub_807F7D8: @ 807F7D8
bx r0
.align 2, 0
_0807F804: .4byte gMain
_0807F808: .4byte sub_80A0F4C
_0807F808: .4byte CB2_EndSafariBattle
_0807F80C: .4byte gBattleTypeFlags
thumb_func_end sub_807F7D8
@ -300,7 +300,7 @@ sub_807F888: @ 807F888
bl CreateMaleMon
bl ScriptContext2_Enable
ldr r1, _0807F8B8 @ =gMain
ldr r0, _0807F8BC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _0807F8BC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [r1, 0x8]
ldr r1, _0807F8C0 @ =gBattleTypeFlags
movs r0, 0x80
@ -314,7 +314,7 @@ sub_807F888: @ 807F888
.align 2, 0
_0807F8B4: .4byte gEnemyParty
_0807F8B8: .4byte gMain
_0807F8BC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0807F8BC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_0807F8C0: .4byte gBattleTypeFlags
thumb_func_end sub_807F888
@ -679,14 +679,14 @@ _0807FBD4: .4byte 0x01000100
_0807FBD8: .4byte gBattleOutcome
_0807FBDC: .4byte c2_whiteout
_0807FBE0:
ldr r0, _0807FBEC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _0807FBEC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
_0807FBE6:
add sp, 0x4
pop {r0}
bx r0
.align 2, 0
_0807FBEC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0807FBEC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_807FBA0
thumb_func_start sub_807FBF0
@ -731,7 +731,7 @@ _0807FC40:
movs r0, 0x1
strh r0, [r1]
_0807FC46:
ldr r0, _0807FC58 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _0807FC58 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
_0807FC4C:
add sp, 0x4
@ -740,7 +740,7 @@ _0807FC4C:
bx r0
.align 2, 0
_0807FC54: .4byte gSpecialVar_Result
_0807FC58: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0807FC58: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_807FBF0
thumb_func_start sub_807FC5C
@ -1878,14 +1878,14 @@ _080804E8:
movs r1, 0
strh r1, [r0]
_080804EE:
ldr r0, _08080504 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _08080504 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
bl sub_80803FC
bl sub_81139BC
b _0808054E
.align 2, 0
_08080500: .4byte gSpecialVar_Result
_08080504: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080504: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08080508:
ldr r0, _0808051C @ =gTrainerBattleOpponent_A
ldrh r1, [r0]
@ -1893,12 +1893,12 @@ _08080508:
lsls r0, 3
cmp r1, r0
bne _08080524
ldr r0, _08080520 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _08080520 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
b _0808054E
.align 2, 0
_0808051C: .4byte gTrainerBattleOpponent_A
_08080520: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080520: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08080524:
ldr r0, _08080538 @ =gBattleOutcome
ldrb r0, [r0]
@ -1913,7 +1913,7 @@ _08080530:
_08080538: .4byte gBattleOutcome
_0808053C: .4byte c2_whiteout
_08080540:
ldr r0, _08080554 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _08080554 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
bl sub_80803FC
bl sub_81139BC
@ -1921,7 +1921,7 @@ _0808054E:
pop {r0}
bx r0
.align 2, 0
_08080554: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080554: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80804AC
thumb_func_start sub_8080558
@ -1933,12 +1933,12 @@ sub_8080558: @ 8080558
lsls r0, 3
cmp r1, r0
bne _08080578
ldr r0, _08080574 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _08080574 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
b _080805A6
.align 2, 0
_08080570: .4byte gTrainerBattleOpponent_A
_08080574: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08080574: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08080578:
ldr r0, _0808058C @ =gBattleOutcome
ldrb r0, [r0]
@ -1952,7 +1952,7 @@ _08080578:
_0808058C: .4byte gBattleOutcome
_08080590: .4byte c2_whiteout
_08080594:
ldr r0, _080805AC @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _080805AC @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
bl sub_80803FC
bl sub_810CDE8
@ -1961,7 +1961,7 @@ _080805A6:
pop {r0}
bx r0
.align 2, 0
_080805AC: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_080805AC: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_8080558
thumb_func_start sub_80805B0

View File

@ -2010,14 +2010,14 @@ _080E68A8: .4byte gPlayerParty
_080E68AC:
bl sub_80E7550
_080E68B0:
ldr r0, _080E68C0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _080E68C0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
add sp, 0x4
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080E68C0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_080E68C0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80E6854
thumb_func_start sub_80E68C4

View File

@ -1265,7 +1265,7 @@ _0814DFE0:
adds r4, r2, r4
str r4, [sp, 0x2C]
_0814DFF0:
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r0, [sp, 0x10]
cmp r0, 0x1
beq _0814E0E4
@ -1610,10 +1610,10 @@ _0814E2B8:
ldr r0, [sp, 0xC]
adds r1, r0, r1
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, _0814E324 @ =gStringVar4
adds r1, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r1, [sp, 0x2C]
ldrb r0, [r1]
mov r2, r9

View File

@ -1409,7 +1409,7 @@ sub_813D844: @ 813D844
ldr r4, _0813D884 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldr r0, _0813D888 @ =gUnknown_203F36C
ldr r0, [r0]
ldr r0, [r0]
@ -1688,7 +1688,7 @@ _0813DA90:
b _0813DB9E
_0813DA9E:
ldrb r0, [r7]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r7]
ldr r4, _0813DAE0 @ =gUnknown_203F37A
@ -2504,7 +2504,7 @@ _0813E18A:
ldr r4, _0813E1F8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@ -2646,7 +2646,7 @@ sub_813E2B8: @ 813E2B8
ldr r4, _0813E318 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204
@ -3277,7 +3277,7 @@ sub_813E7F0: @ 813E7F0
ldr r4, _0813E8C8 @ =gUnknown_203F37A
subs r2, r4, 0x2
adds r1, r4, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_813D8AC
bl sub_813D6F4
bl sub_813D204

View File

@ -1,220 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_813F66C
sub_813F66C: @ 813F66C
push {r4,lr}
adds r4, r0, 0
cmp r4, 0x1
beq _0813F680
ldr r0, _0813F67C @ =gUnknown_8464804
bl InitWindows
b _0813F686
.align 2, 0
_0813F67C: .4byte gUnknown_8464804
_0813F680:
ldr r0, _0813F6CC @ =gUnknown_846483C
bl InitWindows
_0813F686:
bl DeactivateAllTextPrinters
movs r0, 0
movs r1, 0x1
movs r2, 0xD0
bl TextWindow_SetUserSelectedFrame
movs r0, 0
movs r1, 0x13
movs r2, 0xE0
bl TextWindow_LoadResourcesStdFrame0
movs r0, 0
movs r1, 0xA
movs r2, 0xF0
bl TextWindow_SetStdFrame0_WithPal
movs r0, 0
bl PutWindowTilemap
movs r0, 0x4
bl PutWindowTilemap
movs r0, 0x5
bl PutWindowTilemap
cmp r4, 0x1
bne _0813F6C4
movs r0, 0x6
bl PutWindowTilemap
_0813F6C4:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0813F6CC: .4byte gUnknown_846483C
thumb_func_end sub_813F66C
thumb_func_start sub_813F6D0
sub_813F6D0: @ 813F6D0
push {lr}
ldr r0, _0813F6F0 @ =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0xA4
lsls r1, 2
adds r0, r1
bl GetMoney
adds r3, r0, 0
movs r0, 0
movs r1, 0xA
movs r2, 0xF
bl PrintMoneyAmountInMoneyBoxWithBorder
pop {r0}
bx r0
.align 2, 0
_0813F6F0: .4byte gSaveBlock1Ptr
thumb_func_end sub_813F6D0
thumb_func_start sub_813F6F4
sub_813F6F4: @ 813F6F4
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x14
mov r9, r3
ldr r3, [sp, 0x30]
ldr r4, [sp, 0x34]
ldr r6, [sp, 0x38]
ldr r5, [sp, 0x3C]
mov r8, r5
ldr r5, [sp, 0x40]
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
mov r7, r9
lsls r7, 24
lsrs r7, 24
mov r9, r7
lsls r3, 24
lsrs r3, 24
lsls r4, 24
lsrs r4, 24
lsls r6, 24
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
str r4, [sp]
str r6, [sp, 0x4]
lsls r4, r5, 1
adds r4, r5
ldr r5, _0813F758 @ =gUnknown_8464884
adds r4, r5
str r4, [sp, 0x8]
mov r4, r8
lsls r4, 24
asrs r4, 24
str r4, [sp, 0xC]
str r2, [sp, 0x10]
mov r2, r9
bl AddTextPrinterParameterized4
add sp, 0x14
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_0813F758: .4byte gUnknown_8464884
thumb_func_end sub_813F6F4
thumb_func_start sub_813F75C
sub_813F75C: @ 813F75C
push {r4-r6,lr}
mov r6, r8
push {r6}
sub sp, 0x10
adds r5, r0, 0
adds r6, r1, 0
mov r8, r2
lsls r5, 24
lsrs r5, 24
bl sub_809B56C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
str r0, [sp, 0x4]
str r6, [sp, 0x8]
mov r0, r8
str r0, [sp, 0xC]
adds r0, r5, 0
movs r1, 0x2
movs r2, 0x13
movs r3, 0xE
bl DisplayMessageAndContinueTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
add sp, 0x10
pop {r3}
mov r8, r3
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end sub_813F75C
thumb_func_start sub_813F7A8
sub_813F7A8: @ 813F7A8
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
movs r2, 0x1
movs r3, 0xD
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_813F7A8
thumb_func_start sub_813F7C0
sub_813F7C0: @ 813F7C0
push {lr}
lsls r0, 24
lsrs r0, 24
lsls r1, 24
lsrs r1, 24
movs r2, 0xA
movs r3, 0xF
bl SetWindowBorderStyle
pop {r0}
bx r0
thumb_func_end sub_813F7C0
thumb_func_start sub_813F7D8
sub_813F7D8: @ 813F7D8
push {lr}
sub sp, 0x10
adds r3, r1, 0
lsls r0, 24
lsrs r0, 24
ldr r1, _0813F800 @ =gUnknown_846487C
movs r2, 0x2
str r2, [sp]
movs r2, 0x1
str r2, [sp, 0x4]
movs r2, 0xD
str r2, [sp, 0x8]
str r3, [sp, 0xC]
movs r2, 0x2
movs r3, 0
bl CreateYesNoMenuWithCallbacks
add sp, 0x10
pop {r0}
bx r0
.align 2, 0
_0813F800: .4byte gUnknown_846487C
thumb_func_end sub_813F7D8
.align 2, 0 @ Don't pad with nop.

View File

@ -2387,13 +2387,13 @@ sp02A_crash_sound: @ 8081A1C
push {lr}
ldr r0, _08081A2C @ =gSpecialVar_0x8006
ldrb r0, [r0]
ldr r1, _08081A30 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r1, _08081A30 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl sub_808B700
pop {r0}
bx r0
.align 2, 0
_08081A2C: .4byte gSpecialVar_0x8006
_08081A30: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_08081A30: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sp02A_crash_sound
thumb_func_start sub_8081A34

View File

@ -9983,7 +9983,7 @@ _08155480:
movs r1, 0
adds r2, r5, 0
bl AddTextPrinterParameterized
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
bl sub_8153390
lsls r0, 16
lsrs r0, 16
@ -9992,10 +9992,10 @@ _08155480:
bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, _0815556C @ =gUnknown_841CD7A
add r0, sp, 0xC
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r4]
add r0, r10
ldrb r0, [r0]
@ -10016,7 +10016,7 @@ _08155480:
beq _0815559E
cmp r4, 0x3
beq _0815559E
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
bl sub_8153390
lsls r0, 16
lsrs r0, 16
@ -10024,12 +10024,12 @@ _08155480:
bl CopyItemName
movs r0, 0
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
cmp r4, 0x2
bne _08155574
ldr r1, _08155570 @ =gUnknown_841CD9F
add r0, sp, 0xC
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _08155580
.align 2, 0
_08155558: .4byte 0x00000101
@ -10044,7 +10044,7 @@ _08155574:
bne _08155580
ldr r1, _081555C4 @ =gUnknown_841CDBA
add r0, sp, 0xC
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08155580:
ldr r0, _081555C8 @ =gUnknown_203F440
ldr r0, [r0]

View File

@ -1817,7 +1817,7 @@ _0806D6E0: .4byte gUnknown_203ADFA
_0806D6E4: .4byte gPlayerAvatar
_0806D6E8: .4byte gUnknown_81A8CED
_0806D6EC:
bl overworld_poison_step
bl DoPoisonFieldEffect_step
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -1840,7 +1840,7 @@ _0806D704:
.align 2, 0
_0806D71C: .4byte gUnknown_81BF546
_0806D720:
bl sub_80A0F0C
bl SafariZoneTakeStep
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
@ -1901,8 +1901,8 @@ _0806D780: .4byte 0x00004021
_0806D784: .4byte gPlayerParty
thumb_func_end AdjustFriendship_step
thumb_func_start overworld_poison_timer_set
overworld_poison_timer_set: @ 806D788
thumb_func_start ClearPoisonStepCounter
ClearPoisonStepCounter: @ 806D788
push {lr}
ldr r0, _0806D798 @ =0x00004022
movs r1, 0
@ -1911,10 +1911,10 @@ overworld_poison_timer_set: @ 806D788
bx r0
.align 2, 0
_0806D798: .4byte 0x00004022
thumb_func_end overworld_poison_timer_set
thumb_func_end ClearPoisonStepCounter
thumb_func_start overworld_poison_step
overworld_poison_step: @ 806D79C
thumb_func_start DoPoisonFieldEffect_step
DoPoisonFieldEffect_step: @ 806D79C
push {r4,lr}
ldr r0, _0806D7D8 @ =gMapHeader
ldrb r0, [r0, 0x17]
@ -1933,7 +1933,7 @@ overworld_poison_step: @ 806D79C
lsls r0, 16
cmp r0, 0
bne _0806D7E0
bl overworld_poison
bl DoPoisonFieldEffect
cmp r0, 0x1
beq _0806D7E0
cmp r0, 0x1
@ -1951,7 +1951,7 @@ _0806D7E2:
pop {r4}
pop {r1}
bx r1
thumb_func_end overworld_poison_step
thumb_func_end DoPoisonFieldEffect_step
thumb_func_start sub_806D7E8
sub_806D7E8: @ 806D7E8

View File

@ -2039,8 +2039,8 @@ _08084350:
cmp r0, 0
bne _08084376
bl sub_8054CA0
bl warp_in
ldr r0, _08084384 @ =sub_805671C
bl WarpIntoMap
ldr r0, _08084384 @ =CB2_LoadMap
bl SetMainCallback2
ldr r1, _08084388 @ =gFieldCallback
ldr r0, _0808438C @ =mapldr_08084390
@ -2054,7 +2054,7 @@ _08084376:
.align 2, 0
_0808437C: .4byte gTasks
_08084380: .4byte gFieldEffectArguments
_08084384: .4byte sub_805671C
_08084384: .4byte CB2_LoadMap
_08084388: .4byte gFieldCallback
_0808438C: .4byte mapldr_08084390
thumb_func_end task00_8084310
@ -2860,11 +2860,11 @@ sub_80849A0: @ 80849A0
cmp r0, 0x1
bne _080849DC
bl sub_809C460
bl warp_in
bl WarpIntoMap
ldr r1, _080849E4 @ =gFieldCallback
ldr r0, _080849E8 @ =sub_80849F4
str r0, [r1]
ldr r0, _080849EC @ =sub_805671C
ldr r0, _080849EC @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _080849F0 @ =sub_80847C0
bl FindTaskIdByFunc
@ -2878,7 +2878,7 @@ _080849DC:
_080849E0: .4byte gPaletteFade
_080849E4: .4byte gFieldCallback
_080849E8: .4byte sub_80849F4
_080849EC: .4byte sub_805671C
_080849EC: .4byte CB2_LoadMap
_080849F0: .4byte sub_80847C0
thumb_func_end sub_80849A0
@ -3883,11 +3883,11 @@ sub_8085168: @ 8085168
lsrs r0, 24
cmp r0, 0x1
bne _080851A0
bl warp_in
bl WarpIntoMap
ldr r1, _080851AC @ =gFieldCallback
ldr r0, _080851B0 @ =mapldr_080851BC
str r0, [r1]
ldr r0, _080851B4 @ =sub_805671C
ldr r0, _080851B4 @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _080851B8 @ =sub_8084F44
bl FindTaskIdByFunc
@ -3902,7 +3902,7 @@ _080851A0:
_080851A8: .4byte gPaletteFade
_080851AC: .4byte gFieldCallback
_080851B0: .4byte mapldr_080851BC
_080851B4: .4byte sub_805671C
_080851B4: .4byte CB2_LoadMap
_080851B8: .4byte sub_8084F44
thumb_func_end sub_8085168
@ -4388,11 +4388,11 @@ sub_808554C: @ 808554C
lsrs r0, 24
cmp r0, 0x1
bne _08085584
bl warp_in
bl WarpIntoMap
ldr r1, _08085590 @ =gFieldCallback
ldr r0, _08085594 @ =sub_8084454
str r0, [r1]
ldr r0, _08085598 @ =sub_805671C
ldr r0, _08085598 @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _0808559C @ =sub_80853E4
bl FindTaskIdByFunc
@ -4407,7 +4407,7 @@ _08085584:
_0808558C: .4byte gPaletteFade
_08085590: .4byte gFieldCallback
_08085594: .4byte sub_8084454
_08085598: .4byte sub_805671C
_08085598: .4byte CB2_LoadMap
_0808559C: .4byte sub_80853E4
thumb_func_end sub_808554C
@ -4612,11 +4612,11 @@ _08085702:
adds r0, r6, 0
bl FieldObjectSetDirection
bl sub_80555E0
bl warp_in
bl WarpIntoMap
ldr r1, _0808575C @ =gFieldCallback
ldr r0, _08085760 @ =sub_80859D4
str r0, [r1]
ldr r0, _08085764 @ =sub_805671C
ldr r0, _08085764 @ =CB2_LoadMap
bl SetMainCallback2
ldr r0, _08085768 @ =sub_808563C
bl FindTaskIdByFunc
@ -4631,7 +4631,7 @@ _08085750:
_08085758: .4byte gPaletteFade
_0808575C: .4byte gFieldCallback
_08085760: .4byte sub_80859D4
_08085764: .4byte sub_805671C
_08085764: .4byte CB2_LoadMap
_08085768: .4byte sub_808563C
thumb_func_end sub_8085690
@ -5406,8 +5406,8 @@ sub_8085D34: @ 8085D34
cmp r0, 0x1
bne _08085D70
bl copy_saved_warp3_bank_and_enter_x_to_warp1
bl warp_in
ldr r0, _08085D78 @ =sub_805671C
bl WarpIntoMap
ldr r0, _08085D78 @ =CB2_LoadMap
bl SetMainCallback2
ldr r1, _08085D7C @ =gFieldCallback
ldr r0, _08085D80 @ =mapldr_08085D88
@ -5422,7 +5422,7 @@ _08085D70:
bx r0
.align 2, 0
_08085D74: .4byte gPaletteFade
_08085D78: .4byte sub_805671C
_08085D78: .4byte CB2_LoadMap
_08085D7C: .4byte gFieldCallback
_08085D80: .4byte mapldr_08085D88
_08085D84: .4byte sub_8085B78

View File

@ -1411,7 +1411,7 @@ _0807E632:
strh r0, [r4, 0x8]
b _0807E64A
_0807E63A:
bl warp_in
bl WarpIntoMap
ldr r0, _0807E650 @ =sub_8056788
bl SetMainCallback2
adds r0, r5, 0
@ -1494,8 +1494,8 @@ _0807E6DC:
ldrb r0, [r0]
cmp r0, 0
bne _0807E6F4
bl warp_in
ldr r0, _0807E700 @ =sub_805671C
bl WarpIntoMap
ldr r0, _0807E700 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
@ -1505,7 +1505,7 @@ _0807E6F4:
bx r0
.align 2, 0
_0807E6FC: .4byte gReceivedRemoteLinkPlayers
_0807E700: .4byte sub_805671C
_0807E700: .4byte CB2_LoadMap
thumb_func_end sub_807E678
thumb_func_start sub_807E704
@ -1563,8 +1563,8 @@ _0807E762:
strh r0, [r4, 0x8]
b _0807E77A
_0807E76A:
bl warp_in
ldr r0, _0807E780 @ =sub_805671C
bl WarpIntoMap
ldr r0, _0807E780 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
@ -1573,7 +1573,7 @@ _0807E77A:
pop {r0}
bx r0
.align 2, 0
_0807E780: .4byte sub_805671C
_0807E780: .4byte CB2_LoadMap
thumb_func_end sub_807E718
thumb_func_start sub_807E784
@ -1630,8 +1630,8 @@ _0807E7EA:
strh r0, [r4, 0x8]
b _0807E802
_0807E7F2:
bl warp_in
ldr r0, _0807E808 @ =sub_805671C
bl WarpIntoMap
ldr r0, _0807E808 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r5, 0
bl DestroyTask
@ -1640,7 +1640,7 @@ _0807E802:
pop {r0}
bx r0
.align 2, 0
_0807E808: .4byte sub_805671C
_0807E808: .4byte CB2_LoadMap
thumb_func_end sub_807E784
thumb_func_start sub_807E80C
@ -1957,8 +1957,8 @@ _0807EA9A:
ldr r0, _0807EAB8 @ =gFieldCallback
ldr r1, _0807EABC @ =sub_807DF64
str r1, [r0]
bl warp_in
ldr r0, _0807EAC0 @ =sub_805671C
bl WarpIntoMap
ldr r0, _0807EAC0 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@ -1970,7 +1970,7 @@ _0807EAB0:
.align 2, 0
_0807EAB8: .4byte gFieldCallback
_0807EABC: .4byte sub_807DF64
_0807EAC0: .4byte sub_805671C
_0807EAC0: .4byte CB2_LoadMap
thumb_func_end sub_807E980
thumb_func_start sub_807EAC4

View File

@ -1,316 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start CheckMonIsValid
CheckMonIsValid: @ 80A0460
push {lr}
movs r1, 0x41
bl GetMonData
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
beq _080A0478
movs r0, 0xCE
lsls r0, 1
cmp r1, r0
bne _080A047C
_080A0478:
movs r0, 0
b _080A047E
_080A047C:
movs r0, 0x1
_080A047E:
pop {r1}
bx r1
thumb_func_end CheckMonIsValid
thumb_func_start AllMonsFainted
AllMonsFainted: @ 80A0484
push {r4,r5,lr}
ldr r4, _080A04A4 @ =gPlayerParty
movs r5, 0
_080A048A:
adds r0, r4, 0
bl CheckMonIsValid
cmp r0, 0
beq _080A04A8
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
beq _080A04A8
movs r0, 0
b _080A04B2
.align 2, 0
_080A04A4: .4byte gPlayerParty
_080A04A8:
adds r5, 0x1
adds r4, 0x64
cmp r5, 0x5
ble _080A048A
movs r0, 0x1
_080A04B2:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end AllMonsFainted
thumb_func_start MonFaintFromPoisonOnField
MonFaintFromPoisonOnField: @ 80A04B8
push {r4,r5,lr}
sub sp, 0x4
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
adds r4, r0, 0
muls r4, r1
ldr r0, _080A04FC @ =gPlayerParty
adds r4, r0
movs r0, 0
str r0, [sp]
adds r0, r4, 0
movs r1, 0x8
bl AdjustFriendship
adds r0, r4, 0
movs r1, 0x37
mov r2, sp
bl SetMonData
ldr r5, _080A0500 @ =gStringVar1
adds r0, r4, 0
movs r1, 0x2
adds r2, r5, 0
bl GetMonData
adds r0, r5, 0
bl StringGetEnd10
add sp, 0x4
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A04FC: .4byte gPlayerParty
_080A0500: .4byte gStringVar1
thumb_func_end MonFaintFromPoisonOnField
thumb_func_start CheckMonFaintedFromPoison
CheckMonFaintedFromPoison: @ 80A0504
push {r4,lr}
lsls r0, 24
lsrs r0, 24
movs r1, 0x64
muls r1, r0
ldr r0, _080A0540 @ =gPlayerParty
adds r4, r1, r0
adds r0, r4, 0
bl CheckMonIsValid
cmp r0, 0
beq _080A0544
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
cmp r0, 0
bne _080A0544
adds r0, r4, 0
movs r1, 0x37
bl GetMonData
bl pokemon_ailments_get_primary
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080A0544
movs r0, 0x1
b _080A0546
.align 2, 0
_080A0540: .4byte gPlayerParty
_080A0544:
movs r0, 0
_080A0546:
pop {r4}
pop {r1}
bx r1
thumb_func_end CheckMonFaintedFromPoison
thumb_func_start Task_WhiteOut
Task_WhiteOut: @ 80A054C
push {r4,r5,lr}
lsls r0, 24
lsrs r5, r0, 24
lsls r0, r5, 2
adds r0, r5
lsls r0, 3
ldr r1, _080A0570 @ =gTasks+0x8
adds r4, r0, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0x1
beq _080A05A6
cmp r0, 0x1
bgt _080A0574
cmp r0, 0
beq _080A057A
b _080A05F6
.align 2, 0
_080A0570: .4byte gTasks+0x8
_080A0574:
cmp r0, 0x2
beq _080A05B8
b _080A05F6
_080A057A:
ldrh r1, [r4, 0x2]
movs r2, 0x2
ldrsh r0, [r4, r2]
cmp r0, 0x5
bgt _080A05A0
_080A0584:
lsls r0, r1, 24
lsrs r0, 24
bl CheckMonFaintedFromPoison
cmp r0, 0
bne _080A05D0
ldrh r0, [r4, 0x2]
adds r0, 0x1
strh r0, [r4, 0x2]
adds r1, r0, 0
lsls r0, 16
asrs r0, 16
cmp r0, 0x5
ble _080A0584
_080A05A0:
movs r0, 0x2
strh r0, [r4]
b _080A05F6
_080A05A6:
bl IsFieldMessageBoxHidden
lsls r0, 24
cmp r0, 0
beq _080A05F6
ldrh r0, [r4]
subs r0, 0x1
strh r0, [r4]
b _080A05F6
_080A05B8:
bl AllMonsFainted
adds r1, r0, 0
cmp r1, 0
beq _080A05E8
ldr r1, _080A05CC @ =gSpecialVar_Result
movs r0, 0x1
strh r0, [r1]
b _080A05EC
.align 2, 0
_080A05CC: .4byte gSpecialVar_Result
_080A05D0:
ldrb r0, [r4, 0x2]
bl MonFaintFromPoisonOnField
ldr r0, _080A05E4 @ =gUnknown_81A5476
bl ShowFieldMessage
ldrh r0, [r4]
adds r0, 0x1
strh r0, [r4]
b _080A05F6
.align 2, 0
_080A05E4: .4byte gUnknown_81A5476
_080A05E8:
ldr r0, _080A05FC @ =gSpecialVar_Result
strh r1, [r0]
_080A05EC:
bl EnableBothScriptContexts
adds r0, r5, 0
bl DestroyTask
_080A05F6:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_080A05FC: .4byte gSpecialVar_Result
thumb_func_end Task_WhiteOut
thumb_func_start ExecuteWhiteOut
ExecuteWhiteOut: @ 80A0600
push {lr}
ldr r0, _080A0614 @ =Task_WhiteOut
movs r1, 0x50
bl CreateTask
bl ScriptContext1_Stop
pop {r0}
bx r0
.align 2, 0
_080A0614: .4byte Task_WhiteOut
thumb_func_end ExecuteWhiteOut
thumb_func_start overworld_poison
overworld_poison: @ 80A0618
push {r4-r7,lr}
sub sp, 0x4
ldr r4, _080A0684 @ =gPlayerParty
movs r7, 0
movs r6, 0
movs r5, 0x5
_080A0624:
adds r0, r4, 0
movs r1, 0x5
bl GetMonData
cmp r0, 0
beq _080A0668
adds r0, r4, 0
movs r1, 0x37
bl GetMonData
bl pokemon_ailments_get_primary
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bne _080A0668
adds r0, r4, 0
movs r1, 0x39
bl GetMonData
str r0, [sp]
cmp r0, 0
beq _080A065A
subs r0, 0x1
str r0, [sp]
cmp r0, 0
bne _080A065C
_080A065A:
adds r6, 0x1
_080A065C:
adds r0, r4, 0
movs r1, 0x39
mov r2, sp
bl SetMonData
adds r7, 0x1
_080A0668:
adds r4, 0x64
subs r5, 0x1
cmp r5, 0
bge _080A0624
cmp r6, 0
bne _080A0678
cmp r7, 0
beq _080A067C
_080A0678:
bl FldEffPoison_Start
_080A067C:
cmp r6, 0
beq _080A0688
movs r0, 0x2
b _080A0692
.align 2, 0
_080A0684: .4byte gPlayerParty
_080A0688:
cmp r7, 0
bne _080A0690
movs r0, 0
b _080A0692
_080A0690:
movs r0, 0x1
_080A0692:
add sp, 0x4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end overworld_poison
.align 2, 0 @ Don't pad with nop.

View File

@ -268,13 +268,13 @@ _080CA7E6:
sub_80CA7EC: @ 80CA7EC
push {lr}
bl sub_8112364
ldr r1, _080CA800 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r1, _080CA800 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
movs r0, 0x1
bl sub_80BFF50
pop {r0}
bx r0
.align 2, 0
_080CA800: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_080CA800: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80CA7EC
thumb_func_start sub_80CA804
@ -2781,7 +2781,7 @@ sub_80CBB28: @ 80CBB28
ldrh r0, [r6, 0x24]
lsls r0, 24
lsrs r0, 24
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
movs r0, 0x2
negs r0, r0
@ -2854,7 +2854,7 @@ sub_80CBBAC: @ 80CBBAC
lsrs r0, 24
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldr r0, _080CBC28 @ =gUnknown_2039A14
ldr r0, [r0]
bl Free
@ -3183,7 +3183,7 @@ _080CBE20:
lsls r0, 24
lsrs r0, 24
_080CBE40:
bl sub_813CD24
bl GetColorFromTextColorTable
_080CBE44:
lsls r0, 24
lsrs r0, 24
@ -3469,7 +3469,7 @@ ChangeBoxPokemonNickname_CB: @ 80CC064
ldrb r1, [r1]
ldr r2, _080CC084 @ =gStringVar2
bl SetBoxMonNickFromAnyBox
bl c2_exit_to_overworld_1_continue_scripts_restart_music
bl CB2_ReturnToFieldContinueScriptPlayMapMusic
pop {r0}
bx r0
.align 2, 0
@ -3577,7 +3577,7 @@ ChangePokemonNickname_CB: @ 80CC144
ldr r2, _080CC16C @ =gStringVar2
movs r1, 0x2
bl SetMonData
bl c2_exit_to_overworld_1_continue_scripts_restart_music
bl CB2_ReturnToFieldContinueScriptPlayMapMusic
pop {r0}
bx r0
.align 2, 0

View File

@ -1802,7 +1802,7 @@ sub_8108B8C: @ 8108B8C
adds r3, r4, 0
adds r3, 0x8
adds r2, r3
bl DestroyListMenu
bl DestroyListMenuTask
ldr r0, _08108BF0 @ =gUnknown_203AD10
ldr r0, [r0]
ldr r0, [r0]
@ -2341,7 +2341,7 @@ _08108FA0:
_08108FE0: .4byte gUnknown_203AD10
_08108FE4:
ldrb r0, [r7]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
ldrb r0, [r7]
ldr r5, _08109014 @ =gUnknown_203ACFC
@ -2617,7 +2617,7 @@ sub_81091D0: @ 81091D0
adds r1, r2, r1
adds r3, 0x8
adds r2, r3
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
ldr r0, _08109290 @ =gUnknown_203AD10
@ -2835,7 +2835,7 @@ sub_81093B8: @ 81093B8
ldrb r0, [r2]
movs r1, 0x10
movs r2, 0x1
bl sub_8107BD0
bl ListMenuSetUnkIndicatorsStructField
mov r0, r8
strh r4, [r0, 0x2]
ldr r0, _08109498 @ =gUnknown_203AD10
@ -2931,7 +2931,7 @@ sub_81094B0: @ 81094B0
cmp r0, 0x1
beq _0810959E
ldrb r0, [r4]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r5, r0, 0
ldrb r0, [r4]
ldr r3, _0810953C @ =gUnknown_203ACFC
@ -3082,7 +3082,7 @@ _081095E8:
adds r7, r4, 0
adds r7, 0x8
adds r2, r7
bl DestroyListMenu
bl DestroyListMenuTask
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r5
@ -3160,7 +3160,7 @@ sub_810967C: @ 810967C
adds r7, r5, 0
adds r7, 0x8
adds r2, r7
bl DestroyListMenu
bl DestroyListMenuTask
movs r3, 0x2
ldrsh r0, [r6, r3]
cmp r0, r4
@ -4213,7 +4213,7 @@ _08109F6E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@ -4304,7 +4304,7 @@ _0810A052:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_810842C
ldr r0, _0810A0A4 @ =gMultiuseListMenuTemplate
@ -4519,7 +4519,7 @@ sub_810A1F8: @ 810A1F8
adds r3, r4
mov r9, r3
add r2, r9
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@ -5497,7 +5497,7 @@ sub_810A9D4: @ 810A9D4
adds r3, r4
mov r9, r3
add r2, r9
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_8108DC8
ldrb r0, [r4, 0x6]
@ -6212,7 +6212,7 @@ _0810B01C:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@ -6537,7 +6537,7 @@ _0810B29E:
adds r6, r4, 0
adds r6, 0x8
adds r2, r6
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x6]
bl sub_810842C
ldr r0, _0810B328 @ =gMultiuseListMenuTemplate
@ -6573,7 +6573,7 @@ _0810B32C:
movs r0, 0x80
strh r0, [r1, 0x30]
ldrb r0, [r7]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B36C
.align 2, 0
_0810B340: .4byte gMain
@ -6583,7 +6583,7 @@ _0810B344:
ldrb r0, [r7]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r6, 0
@ -6701,7 +6701,7 @@ _0810B428:
_0810B430:
strh r0, [r1, 0x30]
ldrb r0, [r4]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B4B0
.align 2, 0
_0810B43C: .4byte gMain
@ -6738,7 +6738,7 @@ _0810B468:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
bl sub_8108CB4
adds r0, r7, 0
@ -6817,7 +6817,7 @@ _0810B528:
strh r6, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r5]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B5C0
.align 2, 0
_0810B538: .4byte gMain
@ -6854,7 +6854,7 @@ _0810B564:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
ldr r1, _0810B5B0 @ =gUnknown_3005E98
ldr r0, _0810B5B4 @ =ItemUseCB_Medicine
@ -6950,7 +6950,7 @@ _0810B64E:
strh r5, [r0, 0x2E]
strh r7, [r0, 0x30]
ldrb r0, [r6]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
b _0810B6E0
.align 2, 0
_0810B65C: .4byte gMain
@ -6989,7 +6989,7 @@ _0810B68C:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_810AECC
ldr r0, _0810B6D4 @ =gUnknown_203AD10
ldr r1, [r0]

View File

@ -1409,7 +1409,7 @@ sub_80E5204: @ 80E5204
ldr r1, _080E525C @ =0x00000263
adds r0, r1
ldrb r0, [r0]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r0, _080E5260 @ =gMain
ldrh r1, [r0, 0x2E]
movs r0, 0x1
@ -1568,7 +1568,7 @@ sub_80E5340: @ 80E5340
movs r0, 0x2
movs r2, 0x1
movs r3, 0x4
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldrb r0, [r4, 0x1]
cmp r0, 0x1
bhi _080E5388
@ -1680,27 +1680,27 @@ sub_80E5444: @ 80E5444
movs r1, 0x13
movs r2, 0x1
movs r3, 0x4
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0x1
movs r1, 0x14
movs r2, 0
movs r3, 0x4
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0x1
movs r1, 0x15
movs r2, 0
movs r3, 0x13
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0
movs r1, 0x16
movs r2, 0x1
movs r3, 0x13
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0
movs r1, 0x17
movs r2, 0x1
movs r3, 0x22
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0
bl PutWindowTilemap
movs r0, 0x1

View File

@ -620,7 +620,7 @@ _08115DD4:
bl sub_81165E8
strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
b _0811610C
.align 2, 0
_08115DE4: .4byte gUnknown_203B058
@ -783,7 +783,7 @@ _08115EF4:
movs r0, 0
strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
ldrb r0, [r5, 0x13]
adds r0, 0x1
strb r0, [r5, 0x13]
@ -870,7 +870,7 @@ _08115FB4:
ldr r0, [r5]
bl sub_81165E8
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
_08115FF0:
movs r0, 0x4
strb r0, [r5, 0xC]
@ -1139,7 +1139,7 @@ sub_81161E4: @ 81161E4
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4, 0x10]
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
@ -1400,7 +1400,7 @@ _08116460:
movs r0, 0x2
bl PlaySE
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
ldr r4, _081164A0 @ =gStringVar2
ldrb r0, [r5, 0x13]
lsls r0, 5
@ -1433,7 +1433,7 @@ _081164AC:
movs r1, 0
bl sub_80FB9E4
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
strb r4, [r5, 0xC]
movs r0, 0x1
b _081164C2
@ -1972,7 +1972,7 @@ _08116916:
b _08116BF6
_0811691E:
ldrb r0, [r6, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
ldr r0, _0811696C @ =gMain
ldrh r1, [r0, 0x2E]
@ -2301,7 +2301,7 @@ _08116BF4:
strb r0, [r6, 0x8]
_08116BF6:
ldrb r0, [r6, 0xE]
bl sub_8107180
bl RedrawListMenu
b _08116D06
_08116BFE:
bl sub_80FB9F4
@ -2322,7 +2322,7 @@ _08116C10:
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r6, 0xC]
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
@ -2480,7 +2480,7 @@ sub_8116D60: @ 8116D60
movs r1, 0
bl sub_80FCD74
ldrb r0, [r4, 0xE]
bl sub_8107180
bl RedrawListMenu
ldr r5, _08116DD4 @ =gStringVar1
ldrb r0, [r4, 0xF]
lsls r0, 5
@ -3367,7 +3367,7 @@ sub_8117440: @ 8117440
movs r0, 0
mov r3, r8
bl SetDynamicWarpWithCoords
bl warp_in
bl WarpIntoMap
add sp, 0x8
pop {r3}
mov r8, r3
@ -3424,7 +3424,7 @@ sub_81174B4: @ 81174B4
adds r1, r5, 0
mov r3, r8
bl Overworld_SetWarpDestination
bl warp_in
bl WarpIntoMap
add sp, 0x4
pop {r3}
mov r8, r3
@ -3763,21 +3763,21 @@ _08117890:
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
ldr r1, _081178AC @ =sub_805671C
ldr r1, _081178AC @ =CB2_LoadMap
bl sub_8147AA8
b _081178E0
.align 2, 0
_081178AC: .4byte sub_805671C
_081178AC: .4byte CB2_LoadMap
_081178B0:
movs r0, 0x7
movs r1, 0x9
movs r2, 0x1
bl sub_8117440
ldr r0, _081178C4 @ =sub_805671C
ldr r0, _081178C4 @ =CB2_LoadMap
bl sub_814B754
b _081178E0
.align 2, 0
_081178C4: .4byte sub_805671C
_081178C4: .4byte CB2_LoadMap
_081178C8:
movs r0, 0x8
movs r1, 0x5
@ -3786,7 +3786,7 @@ _081178C8:
bl GetCursorSelectionMonId
lsls r0, 24
lsrs r0, 24
ldr r1, _081178F8 @ =sub_805671C
ldr r1, _081178F8 @ =CB2_LoadMap
bl sub_81507FC
_081178E0:
adds r0, r4, 0
@ -3800,7 +3800,7 @@ _081178E0:
pop {r0}
bx r0
.align 2, 0
_081178F8: .4byte sub_805671C
_081178F8: .4byte CB2_LoadMap
_081178FC: .4byte gSpecialVar_Result
thumb_func_end sub_81175BC
@ -4151,7 +4151,7 @@ _08117BF4:
bl sub_81165E8
strb r0, [r5, 0x13]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
_08117C02:
movs r0, 0x2
strb r0, [r5, 0xC]
@ -4198,7 +4198,7 @@ _08117C42:
adds r1, r0
strb r4, [r1, 0x1B]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
movs r0, 0x5
strb r0, [r5, 0x19]
ldrb r1, [r5, 0x13]
@ -4268,7 +4268,7 @@ _08117CB2:
movs r0, 0
strb r0, [r1, 0x1B]
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
ldrb r0, [r5, 0x13]
adds r0, 0x1
strb r0, [r5, 0x13]
@ -4327,7 +4327,7 @@ _08117D3C:
ldr r0, [r5]
bl sub_81165E8
ldrb r0, [r5, 0x12]
bl sub_8107180
bl RedrawListMenu
movs r0, 0x2
strb r0, [r5, 0xC]
_08117D7C:
@ -4398,7 +4398,7 @@ _08117DEE:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@ -4457,7 +4457,7 @@ _08117E80:
ldrb r0, [r5, 0x12]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xF]
@ -4673,11 +4673,11 @@ _08118070:
bl PlaySE
_08118086:
ldrb r0, [r5, 0xE]
bl sub_8107180
bl RedrawListMenu
b _08118288
_0811808E:
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r2, r0, 0
ldr r0, _08118128 @ =gMain
ldrh r1, [r0, 0x2E]
@ -4707,7 +4707,7 @@ _0811808E:
movs r1, 0
bl sub_80FCD74
ldrb r0, [r5, 0xE]
bl sub_8107180
bl RedrawListMenu
ldr r4, _0811812C @ =gStringVar1
ldrb r0, [r5, 0xF]
lsls r0, 5
@ -4842,7 +4842,7 @@ _081181EC:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xD]
@ -5085,14 +5085,14 @@ _0811841E:
b _08118604
_08118426:
ldrb r0, [r5, 0xE]
bl sub_8107180
bl RedrawListMenu
b _08118604
_0811842E:
ldrb r0, [r5, 0x13]
cmp r0, 0
beq _0811843A
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
_0811843A:
ldrb r0, [r5, 0x14]
cmp r0, 0x78
@ -5242,7 +5242,7 @@ _08118564:
ldrb r0, [r5, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r5, 0xB]
@ -8715,7 +8715,7 @@ _0811A270: .4byte gMultiuseListMenuTemplate
_0811A274:
mov r3, r9
ldrb r0, [r3]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
mov r8, r0
ldr r0, _0811A2AC @ =gMain
ldrh r1, [r0, 0x2E]
@ -8726,7 +8726,7 @@ _0811A274:
ldrb r0, [r4]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@ -8747,7 +8747,7 @@ _0811A2B0:
ldrb r0, [r6]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r5]
movs r1, 0x1
bl ClearStdWindowAndFrame
@ -8821,7 +8821,7 @@ _0811A350: .4byte gUnknown_8456F1C
_0811A354: .4byte gMultiuseListMenuTemplate
_0811A358:
ldrb r0, [r5]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r1, r0, 0
ldr r0, _0811A3A8 @ =gMain
ldrh r2, [r0, 0x2E]
@ -8842,7 +8842,7 @@ _0811A37E:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@ -8867,7 +8867,7 @@ _0811A3AC:
ldrb r0, [r5]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
ldrb r0, [r4]
movs r1, 0x1
bl ClearStdWindowAndFrame
@ -9999,7 +9999,7 @@ _0811AC3C:
adds r0, r6, 0
movs r2, 0x44
adds r3, r5, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
movs r0, 0xB
mov r2, r8
muls r2, r0
@ -10537,14 +10537,14 @@ _0811B056:
lsls r0, r4, 24
lsrs r0, 24
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
adds r5, 0xB
adds r4, 0x1
cmp r4, 0x3
ble _0811B056
ldr r1, _0811B074 @ =gUnknown_8457D44
adds r0, r7, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _0811B080
.align 2, 0
_0811B074: .4byte gUnknown_8457D44
@ -10952,7 +10952,7 @@ sub_811B31C: @ 811B31C
ldr r0, _0811B4B0 @ =gUnknown_2039624
adds r1, r0
mov r8, r1
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
mov r6, r9
adds r6, 0xAC
bl sub_80447F0
@ -10966,11 +10966,11 @@ sub_811B31C: @ 811B31C
bl StringCopy
movs r0, 0
adds r1, r6, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r1, r8
adds r1, 0x30
movs r0, 0x1
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r4, 0xB0
lsls r4, 1
add r4, r9
@ -10984,7 +10984,7 @@ sub_811B31C: @ 811B31C
bl StringCopy
movs r0, 0x2
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r5, r9
adds r5, 0xCA
mov r0, r8
@ -10995,7 +10995,7 @@ sub_811B31C: @ 811B31C
bl ConvertIntToDecimalStringN
movs r0, 0x3
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r2, 0xD9
add r2, r9
mov r10, r2
@ -11015,16 +11015,16 @@ sub_811B31C: @ 811B31C
bl ConvertIntToDecimalStringN
movs r0, 0x4
mov r1, r10
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x5
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r4, 0xC8
lsls r4, 1
add r4, r9
ldr r1, _0811B4BC @ =gUnknown_84594C4
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, _0811B4C0 @ =gStringVar4
adds r1, r4, 0
bl StringCopy
@ -11041,7 +11041,7 @@ _0811B40A:
bl ConvertIntToDecimalStringN
movs r0, 0
adds r1, r6, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r2, r8
ldrh r1, [r2, 0x16]
cmp r1, r4
@ -11056,7 +11056,7 @@ _0811B426:
bl ConvertIntToDecimalStringN
movs r0, 0x2
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
mov r0, r8
ldrh r1, [r0, 0x20]
adds r0, r5, 0
@ -11065,7 +11065,7 @@ _0811B426:
bl ConvertIntToDecimalStringN
movs r0, 0x3
adds r1, r5, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r7, 0
movs r6, 0x80
lsls r6, 19
@ -11078,7 +11078,7 @@ _0811B45E:
bl CopyEasyChatWord
lsrs r0, r6, 24
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r2, 0x80
lsls r2, 17
adds r6, r2
@ -11092,7 +11092,7 @@ _0811B45E:
add r4, r9
ldr r1, _0811B4C8 @ =gUnknown_8459504
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r5, _0811B4C0 @ =gStringVar4
adds r0, r5, 0
adds r1, r4, 0
@ -11102,7 +11102,7 @@ _0811B45E:
bne _0811B4D0
ldr r1, _0811B4CC @ =gUnknown_8459588
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
adds r0, r5, 0
adds r1, r4, 0
bl StringAppend
@ -11127,7 +11127,7 @@ _0811B4D0:
adds r1, r0
ldr r1, [r1]
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
adds r0, r5, 0
adds r1, r4, 0
bl StringAppend

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -159,7 +159,7 @@ sub_80549F8: @ 80549F8
movs r1, 0x1
movs r3, 0x6
bl Overworld_SetWarpDestination
bl warp_in
bl WarpIntoMap
add sp, 0x4
pop {r0}
bx r0

View File

@ -22,7 +22,7 @@ sub_8054BC8: @ 8054BC8
bl sp000_heal_pokemon
bl sub_8054DD8
bl sub_80554BC
bl warp_in
bl WarpIntoMap
pop {r4}
pop {r0}
bx r0
@ -993,15 +993,15 @@ _0805536C:
_08055374: .4byte gMapHeader
thumb_func_end update_camera_pos_from_warpid
thumb_func_start warp_in
warp_in: @ 8055378
thumb_func_start WarpIntoMap
WarpIntoMap: @ 8055378
push {lr}
bl warp_shift
bl set_current_map_header_from_sav1_save_old_name
bl update_camera_pos_from_warpid
pop {r0}
bx r0
thumb_func_end warp_in
thumb_func_end WarpIntoMap
thumb_func_start Overworld_SetWarpDestination
Overworld_SetWarpDestination: @ 805538C
@ -3571,8 +3571,8 @@ _08056714: .4byte sub_8056534
_08056718: .4byte sub_80565B4
thumb_func_end c2_whiteout
thumb_func_start sub_805671C
sub_805671C: @ 805671C
thumb_func_start CB2_LoadMap
CB2_LoadMap: @ 805671C
push {lr}
bl sub_80569BC
bl ScriptContext1_Init
@ -3590,7 +3590,7 @@ sub_805671C: @ 805671C
_08056740: .4byte sub_80C9BFC
_08056744: .4byte gMain
_08056748: .4byte sub_805674C
thumb_func_end sub_805671C
thumb_func_end CB2_LoadMap
thumb_func_start sub_805674C
sub_805674C: @ 805674C
@ -3784,8 +3784,8 @@ _080568D8: .4byte gFieldCallback
_080568DC: .4byte sub_807DD44
thumb_func_end sub_80568C4
thumb_func_start c2_exit_to_overworld_1_continue_scripts_restart_music
c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0
thumb_func_start CB2_ReturnToFieldContinueScriptPlayMapMusic
CB2_ReturnToFieldContinueScriptPlayMapMusic: @ 80568E0
push {lr}
bl sub_80569BC
ldr r1, _080568F4 @ =gFieldCallback
@ -3797,7 +3797,7 @@ c2_exit_to_overworld_1_continue_scripts_restart_music: @ 80568E0
.align 2, 0
_080568F4: .4byte gFieldCallback
_080568F8: .4byte FieldCallback_ReturnToEventScript2
thumb_func_end c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_start CB2_Overworld
CB2_Overworld: @ 80568FC
@ -3858,14 +3858,14 @@ CB2_ContinueSavedGame: @ 8056938
bne _0805699C
bl sav2_x9_clear_bit1
bl warp1_set_to_sav1w
bl warp_in
ldr r0, _08056998 @ =sub_805671C
bl WarpIntoMap
ldr r0, _08056998 @ =CB2_LoadMap
bl SetMainCallback2
b _080569AC
.align 2, 0
_08056990: .4byte gFieldCallback2
_08056994: .4byte gUnknown_2031DE0
_08056998: .4byte sub_805671C
_08056998: .4byte CB2_LoadMap
_0805699C:
ldr r0, _080569B0 @ =gFieldCallback
ldr r1, _080569B4 @ =sub_8056918
@ -5139,14 +5139,14 @@ sub_8057430: @ 8057430
bne _08057490
bl sav2_x9_clear_bit1
bl warp1_set_to_sav1w
bl warp_in
ldr r0, _0805748C @ =sub_805671C
bl WarpIntoMap
ldr r0, _0805748C @ =CB2_LoadMap
bl SetMainCallback2
b _0805749A
.align 2, 0
_08057484: .4byte gUnknown_2036E28
_08057488: .4byte gUnknown_2031DE0
_0805748C: .4byte sub_805671C
_0805748C: .4byte CB2_LoadMap
_08057490:
ldr r0, _080574A0 @ =sub_8056534
bl sub_80565E0
@ -5304,7 +5304,7 @@ _08057560:
adds r0, r4
ldrh r0, [r0, 0x4]
strh r0, [r1]
bl warp_in
bl WarpIntoMap
ldr r2, _08057610 @ =gPaletteFade
ldrb r0, [r2, 0x8]
movs r1, 0x80
@ -5620,7 +5620,7 @@ sub_8057854: @ 8057854
cmp r0, 0
bne _08057876
bl CleanupOverworldWindowsAndTilemaps
ldr r0, _08057880 @ =sub_805671C
ldr r0, _08057880 @ =CB2_LoadMap
bl SetMainCallback2
adds r0, r4, 0
bl DestroyTask
@ -5630,7 +5630,7 @@ _08057876:
bx r0
.align 2, 0
_0805787C: .4byte gPaletteFade
_08057880: .4byte sub_805671C
_08057880: .4byte CB2_LoadMap
thumb_func_end sub_8057854
thumb_func_start c1_link_related

View File

@ -17844,7 +17844,7 @@ sub_812781C: @ 812781C
str r0, [sp]
ldr r0, _08127848 @ =sub_811FB28
str r0, [sp, 0x4]
ldr r0, _0812784C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _0812784C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
@ -17855,13 +17855,13 @@ sub_812781C: @ 812781C
.align 2, 0
_08127844: .4byte gSpecialVar_0x8005
_08127848: .4byte sub_811FB28
_0812784C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0812784C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08127850:
movs r0, 0x7F
str r0, [sp]
ldr r0, _08127878 @ =sub_8126DC8
str r0, [sp, 0x4]
ldr r0, _0812787C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _0812787C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [sp, 0x8]
movs r0, 0
movs r1, 0
@ -17878,7 +17878,7 @@ _08127870:
bx r0
.align 2, 0
_08127878: .4byte sub_8126DC8
_0812787C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_0812787C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
_08127880: .4byte gUnknown_203B0A0
_08127884: .4byte gSpecialVar_0x8007
thumb_func_end sub_812781C
@ -17891,7 +17891,7 @@ sub_8127888: @ 8127888
str r0, [sp]
ldr r0, _081278AC @ =sub_811FB28
str r0, [sp, 0x4]
ldr r0, _081278B0 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _081278B0 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
str r0, [sp, 0x8]
movs r0, 0xB
movs r1, 0
@ -17903,7 +17903,7 @@ sub_8127888: @ 8127888
bx r0
.align 2, 0
_081278AC: .4byte sub_811FB28
_081278B0: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_081278B0: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_8127888
thumb_func_start sub_81278B4

View File

@ -1134,7 +1134,7 @@ sub_80EBF40: @ 80EBF40
cmp r0, 0
bne _080EBFEA
ldrb r0, [r4, 0x16]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r6, r0, 0
ldrb r0, [r4, 0x16]
ldr r7, _080EBF9C @ =gUnknown_203AAC6
@ -1174,7 +1174,7 @@ _080EBFB6:
ldrb r0, [r4, 0x16]
adds r1, r7, 0
mov r2, r8
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
mov r1, r8
@ -1288,7 +1288,7 @@ sub_80EC094: @ 80EC094
ldrb r0, [r4, 0x16]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0
bl ScheduleBgCopyTilemapToVram
bl sub_810EDB0

View File

@ -621,7 +621,7 @@ _08102A10: .4byte gUnknown_203ACF0
_08102A14:
ldr r0, [r4]
ldrb r0, [r0, 0x17]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0xC]
ldrb r0, [r1, 0x17]
@ -754,7 +754,7 @@ _08102B24:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0x20
str r0, [sp]
movs r0, 0x14
@ -804,7 +804,7 @@ _08102B94:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@ -832,7 +832,7 @@ _08102BD8:
adds r1, r2, 0
adds r1, 0x12
adds r2, 0x10
bl DestroyListMenu
bl DestroyListMenuTask
movs r0, 0x1
bl HideBg
ldr r0, [r4]
@ -1238,7 +1238,7 @@ _08102F60:
movs r0, 0x1
movs r1, 0
movs r2, 0x3
bl sub_8107A9C
bl ListMenuOverrideSetColors
b _08102F7A
.align 2, 0
_08102F6C: .4byte gUnknown_203ACF0
@ -1246,7 +1246,7 @@ _08102F70:
movs r0, 0xA
movs r1, 0
movs r2, 0xB
bl sub_8107A9C
bl ListMenuOverrideSetColors
_08102F7A:
pop {r0}
bx r0
@ -1379,7 +1379,7 @@ _08103098:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
ldrb r0, [r1, 0x17]
@ -1700,7 +1700,7 @@ _08103362:
ldr r0, [r4]
adds r0, 0x41
ldrb r0, [r0]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
ldr r1, [r4]
str r0, [r1, 0x30]
ldrb r0, [r1, 0x17]
@ -2433,7 +2433,7 @@ _08103964:
ldrh r3, [r0, 0x3C]
_0810396E:
adds r0, r5, 0
bl Unused_ListMenuInit2
bl ListMenuInitInRect
ldr r1, [r4]
adds r1, 0x41
strb r0, [r1]
@ -2467,7 +2467,7 @@ _0810399C:
adds r1, r2, 0
adds r1, 0x36
adds r2, 0x34
bl DestroyListMenu
bl DestroyListMenuTask
b _081039E8
.align 2, 0
_081039B4: .4byte gUnknown_203ACF0
@ -2480,7 +2480,7 @@ _081039B8:
adds r1, r2, 0
adds r1, 0x3A
adds r2, 0x38
bl DestroyListMenu
bl DestroyListMenuTask
b _081039E8
.align 2, 0
_081039D0: .4byte gUnknown_203ACF0
@ -2493,7 +2493,7 @@ _081039D4:
adds r1, r2, 0
adds r1, 0x3E
adds r2, 0x3C
bl DestroyListMenu
bl DestroyListMenuTask
_081039E8:
pop {r0}
bx r0
@ -2572,7 +2572,7 @@ sub_8103A40: @ 8103A40
movs r1, 0
movs r2, 0x28
adds r3, r6, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldr r0, _08103AC4 @ =gBaseStats
lsls r4, r5, 3
subs r4, r5
@ -2587,7 +2587,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x78
adds r3, r6, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08103AB6
@ -2599,7 +2599,7 @@ sub_8103A40: @ 8103A40
lsrs r1, 24
movs r2, 0x98
adds r3, r6, 0
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08103AB6:
add sp, 0x4
pop {r4-r7}
@ -7753,7 +7753,7 @@ _08106478:
lsrs r1, 24
movs r2, 0
movs r3, 0x1
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldrb r1, [r4, 0x7]
cmp r5, r1
beq _08106504
@ -7765,7 +7765,7 @@ _08106478:
lsrs r1, 24
movs r2, 0x20
movs r3, 0x1
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08106504:
ldr r7, _081066B8 @ =gUnknown_203ACF0
ldr r0, [r7]

View File

@ -519,8 +519,8 @@ _080971C0:
_080971C8: .4byte gUnknown_83D4038
thumb_func_end sub_8097198
thumb_func_start sub_80971CC
sub_80971CC: @ 80971CC
thumb_func_start GetValidMonIconPalettePtr
GetValidMonIconPalettePtr: @ 80971CC
push {lr}
lsls r0, 16
lsrs r2, r0, 16
@ -542,7 +542,7 @@ _080971DC:
.align 2, 0
_080971F0: .4byte gUnknown_83D4038
_080971F4: .4byte gUnknown_83D3E80
thumb_func_end sub_80971CC
thumb_func_end GetValidMonIconPalettePtr
thumb_func_start sub_80971F8
sub_80971F8: @ 80971F8

View File

@ -5644,20 +5644,20 @@ sub_814A468: @ 814A468
ldr r1, _0814A530 @ =gUnknown_846D94C
bl StringAppend
_0814A4C2:
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r4, _0814A52C @ =gUnknown_203F3D8
ldr r1, [r4]
adds r1, 0x26
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, [r4]
adds r1, 0x66
movs r0, 0x1
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r4]
adds r0, 0xA6
ldr r1, _0814A534 @ =gUnknown_841CBA9
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x4
movs r1, 0x8
movs r2, 0x16
@ -5706,15 +5706,15 @@ sub_814A53C: @ 814A53C
ldr r1, [r4]
adds r1, 0x26
bl CopyItemName
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r4]
adds r0, 0xA6
ldr r1, _0814A5B0 @ =gUnknown_841CBCA
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x4
movs r1, 0x8
movs r2, 0x16
@ -5761,15 +5761,15 @@ sub_814A5B4: @ 814A5B4
ldr r1, [r4]
adds r1, 0x26
bl CopyItemName
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r1, [r4]
adds r1, 0x26
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r4]
adds r0, 0xA6
ldr r1, _0814A628 @ =gUnknown_841CBE4
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x4
movs r1, 0x9
movs r2, 0x16

View File

@ -1815,15 +1815,15 @@ _0811D3C0:
_0811D3D4: .4byte gUnknown_841B295
_0811D3D8: .4byte gUnknown_841B2A7
_0811D3DC:
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
bl sub_811D0F4
adds r1, r0, 0
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
bl sub_811D0D0
adds r1, r0, 0
movs r0, 0x1
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
adds r4, 0x14
ldr r1, _0811D400 @ =gUnknown_841B32E
b _0811D470
@ -1866,20 +1866,20 @@ _0811D444: .4byte gUnknown_841B2F1
_0811D448: .4byte gUnknown_841B2ED
_0811D44C: .4byte gUnknown_8459998
_0811D450:
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
bl sub_811D0F4
adds r1, r0, 0
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
bl sub_811D0C4
adds r1, r0, 0
movs r0, 0x1
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
adds r4, 0x14
ldr r1, _0811D478 @ =gUnknown_841B306
_0811D470:
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _0811D4A2
.align 2, 0
_0811D478: .4byte gUnknown_841B306

View File

@ -8190,7 +8190,7 @@ sub_808FBA4: @ 808FBA4
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r1, _0808FBC8 @ =gUnknown_83CEA88
lsls r0, r6, 3
adds r0, r1
@ -8231,7 +8231,7 @@ _0808FC04:
adds r1, r2
_0808FC0C:
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
b _0808FC7C
.align 2, 0
_0808FC14: .4byte gUnknown_20397B0
@ -8281,7 +8281,7 @@ _0808FC62:
ldr r0, _0808FCE0 @ =0x000021db
adds r1, r0
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
_0808FC7C:
ldr r5, _0808FCDC @ =gUnknown_20397B0
ldr r0, [r5]
@ -8292,7 +8292,7 @@ _0808FC7C:
lsls r1, r6, 3
adds r1, r2
ldr r1, [r1]
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer

View File

@ -5747,7 +5747,7 @@ _08137574:
sub_8137578: @ 8137578
push {r4-r7,lr}
sub sp, 0xD4
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r7, _081375E8 @ =gUnknown_203B140
ldr r0, [r7]
ldr r4, _081375EC @ =0x00003290
@ -5760,7 +5760,7 @@ sub_8137578: @ 8137578
adds r0, r1
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r7]
adds r0, r4
movs r1, 0x24
@ -5777,7 +5777,7 @@ _081375B2:
bl ConvertIntToDecimalStringN
movs r0, 0x1
add r1, sp, 0x14
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r7]
adds r0, r4
movs r1, 0x23
@ -5824,7 +5824,7 @@ _0813761C:
_08137626:
adds r1, r4, 0
movs r0, 0x2
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r4, _08137664 @ =gUnknown_203B140
ldr r0, [r4]
ldr r1, _08137668 @ =0x00003290
@ -5901,7 +5901,7 @@ _081376C0:
ldr r1, _081376D8 @ =gUnknown_8419841
_081376CE:
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _081376E6
.align 2, 0
_081376D8: .4byte gUnknown_8419841
@ -5909,7 +5909,7 @@ _081376DC:
add r4, sp, 0x3C
ldr r1, _08137714 @ =gUnknown_8419822
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_081376E6:
ldr r0, _08137718 @ =gUnknown_203B140
ldr r0, [r0]
@ -5944,7 +5944,7 @@ _08137720: .4byte gUnknown_8463FA4
sub_8137724: @ 8137724
push {r4-r6,lr}
sub sp, 0xD4
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r5, _081377A0 @ =gUnknown_203B140
ldr r0, [r5]
ldr r4, _081377A4 @ =0x00003290
@ -5957,7 +5957,7 @@ sub_8137724: @ 8137724
adds r0, r1
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r5]
adds r0, r4
movs r1, 0x24
@ -5974,7 +5974,7 @@ _0813775E:
bl ConvertIntToDecimalStringN
movs r0, 0x1
add r1, sp, 0x14
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r0, [r5]
adds r0, r4
movs r1, 0x23
@ -6025,7 +6025,7 @@ _081377D0:
ldr r1, _081377E8 @ =gUnknown_841979D
_081377DE:
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _081377F6
.align 2, 0
_081377E8: .4byte gUnknown_841979D
@ -6033,7 +6033,7 @@ _081377EC:
add r4, sp, 0x3C
ldr r1, _08137820 @ =gUnknown_8419782
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_081377F6:
ldr r0, _08137824 @ =gUnknown_203B140
ldr r0, [r0]
@ -6077,7 +6077,7 @@ _08137846:
_08137850:
adds r1, r4, 0
movs r0, 0x2
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r4, _08137890 @ =gUnknown_203B140
ldr r0, [r4]
ldr r1, _08137894 @ =0x00003290
@ -6149,7 +6149,7 @@ _081378EA:
ldr r1, _081378F8 @ =gUnknown_841988A
_081378EE:
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
b _08137906
.align 2, 0
_081378F8: .4byte gUnknown_841988A
@ -6157,7 +6157,7 @@ _081378FC:
add r4, sp, 0x3C
ldr r1, _08137934 @ =gUnknown_8419860
adds r0, r4, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
_08137906:
ldr r0, _08137938 @ =gUnknown_203B140
ldr r0, [r0]
@ -6636,7 +6636,7 @@ _08137CA4:
adds r3, r2
lsrs r3, 16
movs r2, 0x3
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08137CDE:
adds r0, r4, 0x1
lsls r0, 24
@ -6660,7 +6660,7 @@ _08137CDE:
lsrs r1, 24
movs r2, 0x3
movs r3, 0x75
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08137D0E:
pop {r4,r5}
pop {r0}
@ -8325,7 +8325,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x2F
movs r3, 0x23
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldr r1, [r6]
adds r4, r1, r4
ldr r3, _08138AB8 @ =0x00003221
@ -8342,7 +8342,7 @@ _08138A62:
lsrs r1, 24
movs r2, 0x53
movs r3, 0x23
bl blit_move_info_icon
bl BlitMoveInfoIcon
b _08138B0E
.align 2, 0
_08138AB0: .4byte 0x00003003
@ -8365,7 +8365,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0
movs r3, 0x3
bl blit_move_info_icon
bl BlitMoveInfoIcon
ldr r2, [r6]
adds r4, r2, r4
ldr r1, _08138B1C @ =0x00003221
@ -8381,7 +8381,7 @@ _08138ABC:
lsrs r1, 24
movs r2, 0x24
movs r3, 0x3
bl blit_move_info_icon
bl BlitMoveInfoIcon
_08138B04:
ldr r0, [r6]
adds r0, r5

View File

@ -1,167 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start GetSafariZoneFlag
GetSafariZoneFlag: @ 80A0E90
push {lr}
movs r0, 0x80
lsls r0, 4
bl FlagGet
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end GetSafariZoneFlag
thumb_func_start sub_80A0EA4
sub_80A0EA4: @ 80A0EA4
push {lr}
movs r0, 0x80
lsls r0, 4
bl FlagSet
pop {r0}
bx r0
thumb_func_end sub_80A0EA4
thumb_func_start ResetSafariZoneFlag
ResetSafariZoneFlag: @ 80A0EB4
push {lr}
movs r0, 0x80
lsls r0, 4
bl FlagClear
pop {r0}
bx r0
thumb_func_end ResetSafariZoneFlag
thumb_func_start sub_80A0EC4
sub_80A0EC4: @ 80A0EC4
push {lr}
movs r0, 0x11
bl IncrementGameStat
bl sub_80A0EA4
ldr r1, _080A0EE4 @ =gUnknown_2039994
movs r0, 0x1E
strb r0, [r1]
ldr r1, _080A0EE8 @ =gUnknown_2039996
movs r2, 0x96
lsls r2, 2
adds r0, r2, 0
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080A0EE4: .4byte gUnknown_2039994
_080A0EE8: .4byte gUnknown_2039996
thumb_func_end sub_80A0EC4
thumb_func_start sub_80A0EEC
sub_80A0EEC: @ 80A0EEC
push {lr}
bl ResetSafariZoneFlag
ldr r1, _080A0F04 @ =gUnknown_2039994
movs r0, 0
strb r0, [r1]
ldr r1, _080A0F08 @ =gUnknown_2039996
movs r0, 0
strh r0, [r1]
pop {r0}
bx r0
.align 2, 0
_080A0F04: .4byte gUnknown_2039994
_080A0F08: .4byte gUnknown_2039996
thumb_func_end sub_80A0EEC
thumb_func_start sub_80A0F0C
sub_80A0F0C: @ 80A0F0C
push {lr}
bl GetSafariZoneFlag
cmp r0, 0
beq _080A0F24
ldr r1, _080A0F28 @ =gUnknown_2039996
ldrh r0, [r1]
subs r0, 0x1
strh r0, [r1]
lsls r0, 16
cmp r0, 0
beq _080A0F2C
_080A0F24:
movs r0, 0
b _080A0F34
.align 2, 0
_080A0F28: .4byte gUnknown_2039996
_080A0F2C:
ldr r0, _080A0F38 @ =gUnknown_81BFBC5
bl ScriptContext1_SetupScript
movs r0, 0x1
_080A0F34:
pop {r1}
bx r1
.align 2, 0
_080A0F38: .4byte gUnknown_81BFBC5
thumb_func_end sub_80A0F0C
thumb_func_start sub_80A0F3C
sub_80A0F3C: @ 80A0F3C
push {lr}
ldr r0, _080A0F48 @ =gUnknown_81BFBAA
bl ScriptContext1_SetupScript
pop {r0}
bx r0
.align 2, 0
_080A0F48: .4byte gUnknown_81BFBAA
thumb_func_end sub_80A0F3C
thumb_func_start sub_80A0F4C
sub_80A0F4C: @ 80A0F4C
push {lr}
ldr r0, _080A0F60 @ =gUnknown_2039994
ldrb r0, [r0]
cmp r0, 0
beq _080A0F68
ldr r0, _080A0F64 @ =CB2_ReturnToField
bl SetMainCallback2
b _080A0FB0
.align 2, 0
_080A0F60: .4byte gUnknown_2039994
_080A0F64: .4byte CB2_ReturnToField
_080A0F68:
ldr r0, _080A0F88 @ =gBattleOutcome
ldrb r0, [r0]
cmp r0, 0x8
bne _080A0F9C
ldr r0, _080A0F8C @ =gUnknown_81BFB87
bl ScriptContext2_RunNewScript
bl warp_in
ldr r1, _080A0F90 @ =gFieldCallback
ldr r0, _080A0F94 @ =sub_807E3EC
str r0, [r1]
ldr r0, _080A0F98 @ =sub_805671C
bl SetMainCallback2
b _080A0FB0
.align 2, 0
_080A0F88: .4byte gBattleOutcome
_080A0F8C: .4byte gUnknown_81BFB87
_080A0F90: .4byte gFieldCallback
_080A0F94: .4byte sub_807E3EC
_080A0F98: .4byte sub_805671C
_080A0F9C:
cmp r0, 0x7
bne _080A0FB0
ldr r0, _080A0FB4 @ =gUnknown_81BFBD7
bl ScriptContext1_SetupScript
bl ScriptContext1_Stop
ldr r0, _080A0FB8 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
bl SetMainCallback2
_080A0FB0:
pop {r0}
bx r0
.align 2, 0
_080A0FB4: .4byte gUnknown_81BFBD7
_080A0FB8: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
thumb_func_end sub_80A0F4C
.align 2, 0 @ Don't pad with nop.

View File

@ -411,13 +411,13 @@ _080A0368:
movs r0, 0x1
strh r0, [r1]
_080A036E:
ldr r0, _080A037C @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _080A037C @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
pop {r0}
bx r0
.align 2, 0
_080A0378: .4byte gSpecialVar_Result
_080A037C: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_080A037C: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80A0350
thumb_func_start sub_80A0380
@ -455,14 +455,14 @@ _080A03B8:
movs r0, 0x1
strh r0, [r1]
_080A03C2:
ldr r0, _080A03D4 @ =c2_exit_to_overworld_1_continue_scripts_restart_music
ldr r0, _080A03D4 @ =CB2_ReturnToFieldContinueScriptPlayMapMusic
bl SetMainCallback2
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080A03D0: .4byte gSpecialVar_Result
_080A03D4: .4byte c2_exit_to_overworld_1_continue_scripts_restart_music
_080A03D4: .4byte CB2_ReturnToFieldContinueScriptPlayMapMusic
thumb_func_end sub_80A039C
thumb_func_start sub_80A03D8

View File

@ -572,7 +572,7 @@ _0809AEAC:
ldrb r0, [r0, 0x16]
lsls r0, 28
lsrs r0, 28
bl sub_813F66C
bl BuyMenuInitWindows
bl sub_809B080
b _0809AF5E
.align 2, 0
@ -819,7 +819,7 @@ sub_809B15C: @ 809B15C
push {lr}
bl sub_809B764
bl sub_809BAFC
bl sub_813F6D0
bl BuyMenuDrawMoneyBox
movs r0, 0
bl ScheduleBgCopyTilemapToVram
movs r0, 0x1
@ -1116,7 +1116,7 @@ _0809B398:
movs r1, 0x2
adds r2, r7, 0
movs r3, 0
bl sub_813F6F4
bl BuyMenuPrint
b _0809B400
.align 2, 0
_0809B3D0: .4byte 0x00000177
@ -1138,7 +1138,7 @@ _0809B3D8:
movs r1, 0x2
adds r2, r7, 0
movs r3, 0x2
bl sub_813F6F4
bl BuyMenuPrint
_0809B400:
add sp, 0x14
pop {r4-r7}
@ -1204,7 +1204,7 @@ _0809B45C:
adds r0, r6, 0
movs r1, 0
movs r3, 0x69
bl sub_813F6F4
bl BuyMenuPrint
_0809B480:
add sp, 0x14
pop {r4-r6}
@ -1251,7 +1251,7 @@ sub_809B494: @ 809B494
movs r1, 0
adds r2, r5, 0
movs r3, 0
bl sub_813F6F4
bl BuyMenuPrint
lsls r0, r7, 16
lsrs r0, 16
bl ItemIdToBattleMoveId
@ -1273,7 +1273,7 @@ sub_809B494: @ 809B494
movs r1, 0x2
adds r2, r5, 0
movs r3, 0
bl sub_813F6F4
bl BuyMenuPrint
b _0809B55C
.align 2, 0
_0809B514: .4byte gStringVar1
@ -1294,7 +1294,7 @@ _0809B528:
movs r0, 0x6
movs r1, 0
movs r3, 0
bl sub_813F6F4
bl BuyMenuPrint
ldr r2, _0809B568 @ =gUnknown_8416217
movs r0, 0x10
str r0, [sp]
@ -1305,7 +1305,7 @@ _0809B528:
movs r0, 0x6
movs r1, 0x2
movs r3, 0
bl sub_813F6F4
bl BuyMenuPrint
_0809B55C:
add sp, 0x14
pop {r4-r7}
@ -1388,7 +1388,7 @@ _0809B5E0:
movs r0, 0x4
movs r1, 0x2
movs r3, 0x1
bl sub_813F6F4
bl BuyMenuPrint
_0809B5F8:
add sp, 0x14
pop {r4,r5}
@ -2134,7 +2134,7 @@ sub_809BB44: @ 809BB44
movs r1, 0
adds r2, r4, 0
movs r3, 0x2
bl sub_813F6F4
bl BuyMenuPrint
add sp, 0x14
pop {r4}
pop {r0}
@ -2164,7 +2164,7 @@ sub_809BBC0: @ 809BBC0
cmp r0, 0
bne _0809BC8E
ldrb r0, [r5, 0xE]
bl ListMenuHandleInput
bl ListMenu_ProcessInput
adds r4, r0, 0
ldrb r0, [r5, 0xE]
ldr r7, _0809BC08 @ =gUnknown_2039942
@ -2223,7 +2223,7 @@ _0809BC1A:
ldr r1, _0809BC74 @ =gUnknown_8416842
ldr r2, _0809BC78 @ =sub_809BF98
adds r0, r6, 0
bl sub_813F75C
bl BuyMenuDisplayMessage
b _0809BC8E
.align 2, 0
_0809BC70: .4byte gSaveBlock1Ptr
@ -2236,7 +2236,7 @@ _0809BC7C:
ldr r1, _0809BC98 @ =gUnknown_8416766
ldr r2, _0809BC9C @ =sub_809BCA0
adds r0, r6, 0
bl sub_813F75C
bl BuyMenuDisplayMessage
_0809BC8E:
pop {r4-r7}
pop {r0}
@ -2265,7 +2265,7 @@ sub_809BCA0: @ 809BCA0
lsrs r4, 16
movs r0, 0x1
movs r1, 0
bl sub_813F7C0
bl BuyMenuQuantityBoxThinBorder
ldr r0, _0809BD44 @ =gStringVar1
adds r1, r4, 0
movs r2, 0x1
@ -2287,11 +2287,11 @@ sub_809BCA0: @ 809BCA0
movs r1, 0x2
adds r2, r6, 0
movs r3, 0
bl sub_813F6F4
bl BuyMenuPrint
strh r4, [r5, 0x2]
movs r0, 0x3
movs r1, 0
bl sub_813F7A8
bl BuyMenuQuantityBoxNormalBorder
adds r0, r7, 0
bl sub_809BB44
movs r0, 0
@ -2423,7 +2423,7 @@ _0809BDD4:
ldr r1, _0809BE4C @ =gUnknown_841678E
ldr r2, _0809BE50 @ =sub_809BE90
adds r0, r5, 0
bl sub_813F75C
bl BuyMenuDisplayMessage
b _0809BE88
.align 2, 0
_0809BE3C: .4byte gMain
@ -2464,7 +2464,7 @@ sub_809BE90: @ 809BE90
lsls r0, 24
lsrs r0, 24
ldr r1, _0809BEA0 @ =gUnknown_83DF0B4
bl sub_813F7D8
bl BuyMenuConfirmPurchase
pop {r0}
bx r0
.align 2, 0
@ -2493,7 +2493,7 @@ sub_809BEA4: @ 809BEA4
ldr r1, _0809BEEC @ =gUnknown_84167E7
ldr r2, _0809BEF0 @ =sub_809BF0C
adds r0, r5, 0
bl sub_813F75C
bl BuyMenuDisplayMessage
adds r0, r5, 0
bl nullsub_52
ldrh r0, [r4, 0xA]
@ -2509,7 +2509,7 @@ _0809BEF4:
ldr r1, _0809BF04 @ =gUnknown_8416861
ldr r2, _0809BF08 @ =sub_809BF98
adds r0, r5, 0
bl sub_813F75C
bl BuyMenuDisplayMessage
_0809BEFE:
pop {r4,r5}
pop {r0}
@ -2691,7 +2691,7 @@ sub_809C04C: @ 809C04C
ldrb r0, [r2, 0xE]
movs r1, 0
movs r2, 0
bl DestroyListMenu
bl DestroyListMenuTask
bl sub_809B604
ldr r0, _0809C090 @ =CB2_ReturnToField
bl SetMainCallback2

View File

@ -160,7 +160,7 @@ sub_806EE7C: @ 806EE7C
movs r1, 0
bl DrawStdWindowFrame
ldr r0, _0806EEFC @ =gStringVar1
ldr r1, _0806EF00 @ =gUnknown_2039996
ldr r1, _0806EF00 @ =gSafariZoneStepCounter
ldrh r1, [r1]
movs r2, 0x1
movs r3, 0x3
@ -172,7 +172,7 @@ sub_806EE7C: @ 806EE7C
movs r3, 0x3
bl ConvertIntToDecimalStringN
ldr r0, _0806EF08 @ =gStringVar3
ldr r1, _0806EF0C @ =gUnknown_2039994
ldr r1, _0806EF0C @ =gNumSafariBalls
ldrb r1, [r1]
movs r2, 0x1
movs r3, 0x2
@ -203,10 +203,10 @@ sub_806EE7C: @ 806EE7C
_0806EEF4: .4byte gUnknown_2037101
_0806EEF8: .4byte gUnknown_83A738C
_0806EEFC: .4byte gStringVar1
_0806EF00: .4byte gUnknown_2039996
_0806EF00: .4byte gSafariZoneStepCounter
_0806EF04: .4byte gStringVar2
_0806EF08: .4byte gStringVar3
_0806EF0C: .4byte gUnknown_2039994
_0806EF0C: .4byte gNumSafariBalls
_0806EF10: .4byte gStringVar4
_0806EF14: .4byte gUnknown_84162A9
thumb_func_end sub_806EE7C
@ -1009,7 +1009,7 @@ sub_806F554: @ 806F554
bl sub_806EF18
bl sub_80F7998
bl sub_806FEA0
bl sub_80A0F3C
bl SafariZoneRetirePrompt
movs r0, 0x1
pop {r1}
bx r1

View File

@ -2362,10 +2362,10 @@ _08129664:
ldrb r1, [r4, 0x8]
cmp r0, r1
beq _081296EC
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, _08129684 @ =gUnknown_841B3AA
b _081296D8
.align 2, 0
@ -2404,14 +2404,14 @@ _081296BE:
ldrb r5, [r5]
cmp r0, r5
beq _081296EC
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
ldr r1, _081296E8 @ =gUnknown_841B3BE
_081296D8:
adds r0, r6, 0
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
movs r0, 0x1
b _081296EE
.align 2, 0
@ -3957,11 +3957,11 @@ sub_812A240: @ 812A240
beq _0812A280
b _0812A28A
_0812A250:
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
bl sub_8129814
adds r1, r0, 0
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x5
movs r1, 0
bl sub_812A578
@ -4122,11 +4122,11 @@ sub_812A378: @ 812A378
beq _0812A3BC
b _0812A3C6
_0812A388:
bl UnkTextUtil_Reset
bl DynamicPlaceholderTextUtil_Reset
ldr r0, _0812A3B4 @ =gSaveBlock2Ptr
ldr r1, [r0]
movs r0, 0
bl UnkTextUtil_SetPtrI
bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
movs r0, 0x9
movs r1, 0
bl sub_812A578
@ -4455,7 +4455,7 @@ _0812A5F8:
adds r0, r1, 0
adds r0, 0x22
ldr r1, [r4]
bl UnkTextUtil_StringExpandPlaceholders
bl DynamicPlaceholderTextUtil_ExpandPlaceholders
ldr r0, [r5]
adds r6, r0, 0
adds r6, 0x22

View File

@ -1,130 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start UnkTextUtil_Reset
UnkTextUtil_Reset: @ 813CC90
push {lr}
ldr r1, _0813CCA8 @ =gUnknown_203F34C
movs r2, 0
adds r0, r1, 0
adds r0, 0x1C
_0813CC9A:
str r2, [r0]
subs r0, 0x4
cmp r0, r1
bge _0813CC9A
pop {r0}
bx r0
.align 2, 0
_0813CCA8: .4byte gUnknown_203F34C
thumb_func_end UnkTextUtil_Reset
thumb_func_start UnkTextUtil_SetPtrI
UnkTextUtil_SetPtrI: @ 813CCAC
push {lr}
adds r2, r1, 0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x7
bhi _0813CCC0
ldr r1, _0813CCC4 @ =gUnknown_203F34C
lsls r0, 2
adds r0, r1
str r2, [r0]
_0813CCC0:
pop {r0}
bx r0
.align 2, 0
_0813CCC4: .4byte gUnknown_203F34C
thumb_func_end UnkTextUtil_SetPtrI
thumb_func_start UnkTextUtil_StringExpandPlaceholders
UnkTextUtil_StringExpandPlaceholders: @ 813CCC8
push {r4,r5,lr}
adds r2, r0, 0
adds r4, r1, 0
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
beq _0813CD08
ldr r5, _0813CCE4 @ =gUnknown_203F34C
_0813CCD8:
cmp r1, 0xF7
beq _0813CCE8
strb r1, [r2]
adds r4, 0x1
adds r2, 0x1
b _0813CD00
.align 2, 0
_0813CCE4: .4byte gUnknown_203F34C
_0813CCE8:
adds r4, 0x1
ldrb r0, [r4]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
cmp r1, 0
beq _0813CCFE
adds r0, r2, 0
bl StringCopy
adds r2, r0, 0
_0813CCFE:
adds r4, 0x1
_0813CD00:
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _0813CCD8
_0813CD08:
movs r0, 0xFF
strb r0, [r2]
adds r0, r2, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end UnkTextUtil_StringExpandPlaceholders
thumb_func_start UnkTextUtil_GetPtrI
UnkTextUtil_GetPtrI: @ 813CD14
lsls r0, 24
ldr r1, _0813CD20 @ =gUnknown_203F34C
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bx lr
.align 2, 0
_0813CD20: .4byte gUnknown_203F34C
thumb_func_end UnkTextUtil_GetPtrI
thumb_func_start sub_813CD24
sub_813CD24: @ 813CD24
push {lr}
lsls r0, 16
lsrs r1, r0, 16
lsrs r2, r0, 17
movs r0, 0x1
ands r1, r0
lsls r1, 2
cmp r2, 0x4B
bhi _0813CD48
ldr r0, _0813CD44 @ =gUnknown_8464300
adds r0, r2, r0
ldrb r0, [r0]
asrs r0, r1
movs r1, 0xF
ands r0, r1
b _0813CD4A
.align 2, 0
_0813CD44: .4byte gUnknown_8464300
_0813CD48:
movs r0, 0x3
_0813CD4A:
pop {r1}
bx r1
thumb_func_end sub_813CD24
.align 2, 0 @ Don't pad with nop.

View File

@ -0,0 +1,2 @@
gListMenuOverride
gMultiuseListMenuTemplate

View File

@ -1,14 +0,0 @@
.section .rodata
.align 2
gUnknown_8464804:: @ 8464804
.incbin "baserom.gba", 0x464804, 0x38
gUnknown_846483C:: @ 846483C
.incbin "baserom.gba", 0x46483C, 0x40
gUnknown_846487C:: @ 846487C
.incbin "baserom.gba", 0x46487C, 0x8
gUnknown_8464884:: @ 8464884
.incbin "baserom.gba", 0x464884, 0xC

View File

@ -759,8 +759,7 @@ gUnknown_84524C4:: @ 84524C4
gUnknown_8452C4C:: @ 8452C4C
.incbin "baserom.gba", 0x452C4C, 0x48
gUnknown_8452C94:: @ 8452C94
.incbin "baserom.gba", 0x452C94, 0x60
.section .rodata.8452CF4
gUnknown_8452CF4:: @ 8452CF4
.incbin "baserom.gba", 0x452CF4, 0x8

View File

@ -16029,14 +16029,14 @@ gFile_graphics_mail_retro_map_tilemap:: @ 8E95C88
.incbin "graphics/mail/retro/map.bin.lz"
.align 2
gUnknown_8E95D9C:: @ 8E95D9C
.incbin "baserom.gba", 0xE95D9C, 0x20 @UNKNOWN
gFireRedMenuElements1_Pal:: @ 8E95D9C
.incbin "graphics/interface/dex_caught_pokeball.gbapal"
gUnknown_8E95DBC:: @ 8E95DBC
.incbin "baserom.gba", 0xE95DBC, 0x20 @UNKNOWN
gFireRedMenuElements2_Pal:: @ 8E95DBC
.incbin "graphics/interface/pokemon_types.gbapal"
gUnknown_8E95DDC:: @ 8E95DDC
.incbin "baserom.gba", 0xE95DDC, 0x2000 @UNKNOWN
gFireRedMenuElements_Gfx:: @ 8E95DDC
.incbin "graphics/interface/dex_caught_pokeball_and_pokemon_types.4bpp"
gUnknown_8E97DDC:: @ 8E97DDC
.incbin "baserom.gba", 0xE97DDC, 0x20 @UNKNOWN

View File

@ -1065,7 +1065,7 @@ Text_1A5446:: @ 81A5446
.string "Want to give a nickname to the\n"
.string "{STR_VAR_2} you received?$"
gUnknown_81A5476:: @ 81A5476
gText_PkmnFainted3:: @ 81A5476
.string "{STR_VAR_1} fainted…\p"
.string "$"
@ -4178,16 +4178,16 @@ gUnknown_81BFB5F:: @ 81BFB5F
gUnknown_81BFB65:: @ 81BFB65
.incbin "baserom.gba", 0x1BFB65, 0x22
gUnknown_81BFB87:: @ 81BFB87
EventScript_SafariWarpOut:: @ 81BFB87
.incbin "baserom.gba", 0x1BFB87, 0x23
gUnknown_81BFBAA:: @ 81BFBAA
EventScript_SafariRetire:: @ 81BFBAA
.incbin "baserom.gba", 0x1BFBAA, 0x1B
gUnknown_81BFBC5:: @ 81BFBC5
EventScript_SafariTimesUp:: @ 81BFBC5
.incbin "baserom.gba", 0x1BFBC5, 0x12
gUnknown_81BFBD7:: @ 81BFBD7
EventScript_SafariOutOfBalls:: @ 81BFBD7
.incbin "baserom.gba", 0x1BFBD7, 0x2D5
gUnknown_81BFEAC:: @ 81BFEAC

View File

@ -17,7 +17,7 @@ EventScript_16D2C8:: @ 816D2C8
closemessage
applymovement 255, Movement_16D367
waitmovement 0
special sub_80A0EEC
special ExitSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0
releaseall
end
@ -29,7 +29,7 @@ EventScript_16D2F2:: @ 816D2F2
closemessage
applymovement 255, Movement_16D362
waitmovement 0
special sub_80A0EEC
special ExitSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0
releaseall
end
@ -44,7 +44,7 @@ EventScript_16D312:: @ 816D312
closemessage
applymovement 255, Movement_16D362
waitmovement 0
special sub_80A0EEC
special ExitSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 0
releaseall
end
@ -132,7 +132,7 @@ EventScript_16D3CA:: @ 816D3CA
call_if 1, EventScript_16D441
compare_var_to_value VAR_0x4002, 2
call_if 1, EventScript_16D457
special sub_80A0EC4
special EnterSafariMode
setvar VAR_MAP_SCENE_FUCHSIA_CITY_SAFARI_ZONE_ENTRANCE, 2
warp MAP_SAFARI_ZONE_CENTER, 255, 26, 30
waitstate

View File

@ -1,46 +0,0 @@
.section .rodata
.align 2
gUnknown_846325C:: @ 846325C
.incbin "baserom.gba", 0x46325C, 0x48
gUnknown_84632A4:: @ 84632A4
.incbin "baserom.gba", 0x4632A4, 0x18
gUnknown_84632BC:: @ 84632BC
.incbin "baserom.gba", 0x4632BC, 0x4
gUnknown_84632C0:: @ 84632C0
.incbin "baserom.gba", 0x4632C0, 0x4
gUnknown_84632C4:: @ 84632C4
.incbin "baserom.gba", 0x4632C4, 0x4
gUnknown_84632C8:: @ 84632C8
.incbin "baserom.gba", 0x4632C8, 0x4
gUnknown_84632CC:: @ 84632CC
.incbin "baserom.gba", 0x4632CC, 0x4
gUnknown_84632D0:: @ 84632D0
.incbin "baserom.gba", 0x4632D0, 0x4
gUnknown_84632D4:: @ 84632D4
.incbin "baserom.gba", 0x4632D4, 0x4
gUnknown_84632D8:: @ 84632D8
.incbin "baserom.gba", 0x4632D8, 0x18
gUnknown_84632F0:: @ 84632F0
.incbin "baserom.gba", 0x4632F0, 0x18
gUnknown_8463308:: @ 8463308
.incbin "baserom.gba", 0x463308, 0x20
gUnknown_8463328:: @ 8463328
.incbin "baserom.gba", 0x463328, 0x70
gUnknown_8463398:: @ 8463398
.incbin "baserom.gba", 0x463398, 0x40
gUnknown_84633D8:: @ 84633D8
.incbin "baserom.gba", 0x4633D8, 0x44

View File

@ -214,8 +214,8 @@ gSpecials:: @ 815FD60
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75
def_special sub_80A0EC4
def_special sub_80A0EEC
def_special EnterSafariMode
def_special ExitSafariMode
def_special nullsub_75
def_special nullsub_75
def_special nullsub_75

View File

@ -1,5 +0,0 @@
.section .rodata
.align 2
gUnknown_8464300:: @ 8464300
.incbin "baserom.gba", 0x464300, 0x4C

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
123 156 131
238 238 238
0 0 0
213 213 189
172 164 123
255 131 123
238 49 0
222 49 16
197 49 41
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
123 156 131
238 49 0
246 131 49
255 180 16
222 230 49
123 205 82
156 222 222
106 148 246
164 65 164
172 172 123
222 222 197
189 164 57
255 90 139
82 123 139
65 65 65
255 255 255

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
115 164 197
255 82 0
131 32 0
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255
255 0 255

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 B

View File

@ -2,6 +2,7 @@
#define GUARD_CONSTANTS_FLAGS_H
// Sys Flags Maybe
#define FLAG_SYS_SAFARI_MODE 0x800
#define FLAG_WHITE_FLUTE_ACTIVE 0x803
#define FLAG_BLACK_FLUTE_ACTIVE 0x804
@ -1436,7 +1437,7 @@
#define FLAG_SYS_USE_STRENGTH (CODE_FLAGS + 0x29)
#define FLAG_SYS_WEATHER_CTRL (CODE_FLAGS + 0x2A)
#define FLAG_SYS_CYCLING_ROAD (CODE_FLAGS + 0x2B)
#define FLAG_SYS_SAFARI_MODE (CODE_FLAGS + 0x2C)
#define FLAG_0x88C (CODE_FLAGS + 0x2C)
#define FLAG_SYS_CRUISE_MODE (CODE_FLAGS + 0x2D)
#define FLAG_0x88E (CODE_FLAGS + 0x2E)

View File

@ -0,0 +1,12 @@
#ifndef GUARD_UNK_TEXT_UTIL_H
#define GUARD_UNK_TEXT_UTIL_H
#include "global.h"
void DynamicPlaceholderTextUtil_Reset(void);
void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr);
u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src);
const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx);
u8 GetColorFromTextColorTable(u16 graphicId);
#endif //GUARD_UNK_TEXT_UTIL_H

View File

@ -1148,4 +1148,9 @@ extern const u8 EventScript_FldEffStrength[];
extern const u8 EventScript_FailSweetScent[];
extern const u8 EventScript_FldEffRockSmash[];
extern const u8 EventScript_SafariTimesUp[];
extern const u8 EventScript_SafariRetire[];
extern const u8 EventScript_SafariWarpOut[];
extern const u8 EventScript_SafariOutOfBalls[];
#endif //GUARD_EVENT_SCRIPTS_H

View File

@ -3,19 +3,13 @@
#include "global.h"
// Exported type declarations
// Exported RAM declarations
// Exported ROM declarations
enum {
FLDPSN_NONE,
FLDPSN_PSN,
FLDPSN_FNT
};
void sub_80F972C(void);
unsigned int overworld_poison(void);
void ExecuteWhiteOut(void);
s32 DoPoisonFieldEffect(void);
#endif //GUARD_FIELD_POISON_H

View File

@ -6,5 +6,6 @@
void sub_80AF79C(void);
void sub_807F028(u8);
void sub_80B0244(void);
void sub_807E3EC(void);
#endif // GUARD_FIELD_SCREEN_EFFECT_H

View File

@ -32,6 +32,9 @@ extern const u8 gInterfacePal_LuxuryBall[];
extern const u8 gInterfaceGfx_PremierBall[];
extern const u8 gInterfacePal_PremierBall[];
extern const u8 gOpenPokeballGfx[];
extern const u8 gFireRedMenuElements_Gfx[];
extern const u16 gFireRedMenuElements1_Pal[];
extern const u16 gFireRedMenuElements2_Pal[];
extern const u8 gItemIcon_QuestionMark[];
extern const u8 gItemIconPalette_QuestionMark[];
@ -202,11 +205,11 @@ extern const u8 gItemPcBgPals[];
extern const u8 gItemPcTilemap[];
// item_menu_icons
extern const u8 gUnknown_8E8362C[];
extern const u8 gUnknown_8E83DBC[];
extern const u8 gUnknown_8E84560[];
extern const u8 gFile_graphics_interface_bag_swap_sheet[];
extern const u8 gFile_graphics_interface_bag_swap_palette[];
extern const u32 gUnknown_8E8362C[];
extern const u32 gUnknown_8E83DBC[];
extern const u32 gUnknown_8E84560[];
extern const u32 gFile_graphics_interface_bag_swap_sheet[];
extern const u32 gFile_graphics_interface_bag_swap_palette[];
extern const u8 gFile_graphics_items_icons_question_mark_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_question_mark_palette[];
extern const u8 gFile_graphics_items_icons_master_ball_sheet[];
@ -266,12 +269,10 @@ extern const u8 gFile_graphics_items_icon_palettes_soda_pop_palette[];
extern const u8 gFile_graphics_items_icons_lemonade_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_lemonade_palette[];
extern const u8 gFile_graphics_items_icons_moomoo_milk_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];
extern const u8 gFile_graphics_items_icons_powder_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_moomoo_milk_palette[];;
extern const u8 gFile_graphics_items_icon_palettes_energy_powder_palette[];
extern const u8 gFile_graphics_items_icons_energy_root_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_energy_root_palette[];
extern const u8 gFile_graphics_items_icons_powder_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_heal_powder_palette[];
extern const u8 gFile_graphics_items_icons_revival_herb_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_revival_herb_palette[];
@ -299,7 +300,7 @@ extern const u8 gFile_graphics_items_icons_berry_juice_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_berry_juice_palette[];
extern const u8 gFile_graphics_items_icons_sacred_ash_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_sacred_ash_palette[];
extern const u8 gFile_graphics_items_icons_powder_sheet[];
extern const u32 gFile_graphics_items_icons_powder_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_shoal_salt_palette[];
extern const u8 gFile_graphics_items_icons_shoal_shell_sheet[];
extern const u8 gFile_graphics_items_icon_palettes_shell_palette[];

View File

@ -4,9 +4,21 @@
#include "global.h"
#include "window.h"
// Exported type declarations
#define LIST_NOTHING_CHOSEN -1
#define LIST_CANCEL -2
#define LIST_HEADER -3
// Exported RAM declarations
#define LIST_NO_MULTIPLE_SCROLL 0
#define LIST_MULTIPLE_SCROLL_DPAD 1
#define LIST_MULTIPLE_SCROLL_L_R 2
enum
{
SCROLL_ARROW_LEFT,
SCROLL_ARROW_RIGHT,
SCROLL_ARROW_UP,
SCROLL_ARROW_DOWN,
};
struct ListMenuItem
{
@ -38,8 +50,9 @@ struct ListMenuTemplate
u8 cursorKind:2; // x40, x80
};
struct ListMenu {
struct ListMenuTemplate _template;
struct ListMenu
{
struct ListMenuTemplate template;
u16 scrollOffset;
u16 selectedRow;
u8 unk_1C;
@ -48,20 +61,27 @@ struct ListMenu {
u8 unk_1F;
};
extern struct ListMenuTemplate gUnknown_03006310;
struct ListMenuWindowRect
{
u8 x;
u8 y;
u8 width;
u8 height;
u8 palNum;
};
extern struct ListMenuTemplate gMultiuseListMenuTemplate;
// Exported ROM declarations
u8 ListMenuInit(struct ListMenuTemplate *template, u16 a1, u16 a2);
s32 ListMenuHandleInput(u8 id);
void ListMenuGetScrollAndRow(u8 a0, u16 *a1, u16 *a2);
void sub_81AE6C8(u8 a0, u16 *a1, u16 *a2);
void DestroyListMenu(u8, u16 *, u16 *);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8);
void sub_8107D38(u8, u8);
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum);
void ListMenuDefaultCursorMoveFunc(s32, u8, struct ListMenu *);
void sub_8107BD0(u8 taskId, u8 attr, s32 value);
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow);
s32 ListMenu_ProcessInput(u8 listTaskId);
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
void RedrawListMenu(u8 listTaskId);
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow);
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId);
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal);
void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list);
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value);
#endif //GUARD_LIST_MENU_H

View File

@ -27,12 +27,10 @@ void InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 idx, u8 nstrs,u8);
u8 GetMenuCursorPos(void);
s8 ProcessMenuInput(void);
s8 ProcessMenuInputNoWrapAround(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void ResetTempTileDataBuffers(void);
void *DecompressAndCopyTileDataToVram(u8 bg_id, const void *src, u32 size, u16 offset, u8 mode);
bool8 FreeTempTileDataBuffersIfPossible(void);
u64 sub_8198A50(struct WindowTemplate*, u8, u8, u8, u8, u8, u8, u16); // returns something but it isn't used, fix when menu.s is decomp'd
//void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
s8 Menu_ProcessInputNoWrapClearOnChoose(void);
void DoScheduledBgTilemapCopiesToVram(void);
void ClearScheduledBgCopiesToVram(void);
@ -54,4 +52,9 @@ void AddItemMenuActionTextPrinters(u8 windowId, u8 fontId, u8 left, u8 top, u8 l
void ClearMenuWindow_BorderThickness2(u8 windowId, u8 a1);
void PrintTextArray(u8, u8, u8, u8, u8, u8, const struct MenuAction *);
void sub_8107CD8(u8 palOffset, u16 speciesId);
void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y);
void sub_8107D38(u8, u8);
void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y);
#endif // GUARD_MENU_H

View File

@ -3,10 +3,6 @@
#include "global.h"
// Exported type declarations
// Exported RAM declarations
struct ScrollArrowsTemplate
{
u8 firstArrowType;
@ -22,9 +18,25 @@ struct ScrollArrowsTemplate
u8 palNum;
};
// Exported ROM declarations
u8 AddScrollIndicatorArrowPairParameterized(u8, u8, u8, u8, s32, u16, u16, u16 *);
struct CursorStruct
{
u8 left;
u8 top;
u16 rowWidth;
u16 rowHeight;
u16 tileTag;
u16 palTag;
u8 palNum;
};
u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset);
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate * template, u16 * a1);
void RemoveScrollIndicatorArrowPair(u8);
u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind);
u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor);
void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y);
void ListMenuRemoveRedOutlineCursorObject(u8 taskId);
void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind);
void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind);
#endif //GUARD_MENU_INDICATORS_H

View File

@ -2,7 +2,6 @@
#define GUARD_ROM4_H
#include "global.h"
#include "main.h"
struct UnkPlayerStruct
@ -69,8 +68,8 @@ void FieldObjectMoveDestCoords(struct MapObject *, u32, s16 *, s16 *);
void sub_8086230(void);
void CB2_ReturnToField(void);
bool32 sub_8087598(void);
void c2_exit_to_overworld_1_continue_scripts_restart_music(void);
void warp_in(void);
void CB2_ReturnToFieldContinueScriptPlayMapMusic(void);
void WarpIntoMap(void);
u8 get_map_light_level_by_bank_and_number(s8 mapGroup, s8 mapNum);
void sub_8086194(void);
void sub_8084CCC(u8 spawn);
@ -111,7 +110,7 @@ bool8 Overworld_MapTypeAllowsTeleportAndFly(u8 mapType);
void Overworld_ResetStateAfterTeleport(void);
void Overworld_FadeOutMapMusic(void);
void sub_805671C(void);
void CB2_LoadMap(void);
bool8 sub_8055FC4(void);
bool8 is_light_level_8_or_9(u8 mapType);
bool32 sub_8055C9C(void);

View File

@ -625,8 +625,8 @@ u32 CanMonLearnTMHM(struct Pokemon *, u8);
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
void ClearBattleMonForms(void);
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
const u32 *GetMonFrontSpritePal(struct Pokemon *mon);
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
bool8 IsOtherTrainer(u32, u8 *);
void SetWildMonHeldItem(void);

View File

@ -4,6 +4,7 @@
#include "global.h"
extern u8 gNumSafariBalls;
extern u16 gSafariZoneStepCounter;
bool32 GetSafariZoneFlag(void);
void SetSafariZoneFlag(void);
@ -15,7 +16,4 @@ void ExitSafariMode(void);
bool8 SafariZoneTakeStep(void);
void SafariZoneRetirePrompt(void);
struct Pokeblock *SafariZoneGetActivePokeblock(void);
void SafariZoneActivatePokeblockFeeder(u8 pokeblock_index);
#endif // GUARD_SAFARI_ZONE_H

View File

@ -2,6 +2,7 @@
#define GUARD_SHOP_H
#include "global.h"
#include "menu_helpers.h"
extern EWRAM_DATA struct ItemSlot gUnknown_02039F80[3];
@ -9,5 +10,15 @@ void CreatePokemartMenu(const u16 *);
void CreateDecorationShop1Menu(const u16 *);
void CreateDecorationShop2Menu(const u16 *);
void sub_809C09C(u16, u16, u8);
u8 sub_809B56C(void);
// buy_menu_helper
void BuyMenuInitWindows(bool32 isSellingTM);
void BuyMenuDrawMoneyBox(void);
void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color);
void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback);
void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram);
void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram);
void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo);
#endif // GUARD_SHOP_H

View File

@ -4,28 +4,30 @@
#include "global.h"
#define MAX_SPRITES 64
#define SPRITE_INVALID_TAG 0xFFFF
struct SpriteSheet
{
const u8 *data; // Raw uncompressed pixel data
const void *data; // Raw uncompressed pixel data
u16 size;
u16 tag;
};
struct CompressedSpriteSheet
{
const u8 *data; // LZ77 compressed pixel data
const u32 *data; // LZ77 compressed pixel data
u16 size; // Uncompressed size of pixel data
u16 tag;
};
struct SpriteFrameImage
{
const u8 *data;
const void *data;
u16 size;
};
#define obj_frame_tiles(ptr) {.data = (u8 *)ptr, .size = sizeof ptr}
#define overworld_frame(ptr, width, height, frame) {.data = (u8 *)ptr + (width * height * frame * 64)/2, .size = (width * height * 64)/2}
struct SpritePalette
{
@ -35,7 +37,7 @@ struct SpritePalette
struct CompressedSpritePalette
{
const u8 *data; // LZ77 compressed palette data
const u32 *data; // LZ77 compressed palette data
u16 tag;
};
@ -102,6 +104,12 @@ struct AffineAnimJumpCmd
u16 target;
};
struct AffineAnimEndCmdAlt
{
s16 type;
u16 val;
};
union AffineAnimCmd
{
s16 type;
@ -126,6 +134,8 @@ union AffineAnimCmd
{.loop = {.type = AFFINEANIMCMDTYPE_LOOP, .count = _count}}
#define AFFINEANIMCMD_JUMP(_target) \
{.jump = {.type = AFFINEANIMCMDTYPE_JUMP, .target = _target}}
#define AFFINEANIMCMD_END_ALT(_val) \
{.end = {.type = AFFINEANIMCMDTYPE_END, .val = _val}}
struct AffineAnimState
{
@ -163,6 +173,8 @@ struct SubspriteTable
struct Sprite;
typedef void (*SpriteCallback)(struct Sprite *);
struct SpriteTemplate
{
u16 tileTag;
@ -171,7 +183,7 @@ struct SpriteTemplate
const union AnimCmd *const *anims;
const struct SpriteFrameImage *images;
const union AffineAnimCmd *const *affineAnims;
void (*callback)(struct Sprite *);
SpriteCallback callback;
};
struct Sprite
@ -182,7 +194,7 @@ struct Sprite
/*0x10*/ const union AffineAnimCmd *const *affineAnims;
/*0x14*/ const struct SpriteTemplate *template;
/*0x18*/ const struct SubspriteTable *subspriteTables;
/*0x1C*/ void (*callback)(struct Sprite *);
/*0x1C*/ SpriteCallback callback;
/*0x20*/ struct Coords16 pos1;
/*0x24*/ struct Coords16 pos2;
@ -232,14 +244,12 @@ struct OamMatrix
s16 d;
};
typedef void (*SpriteCallback)(struct Sprite *);
extern const struct OamData gDummyOamData;
extern const union AnimCmd *const gDummySpriteAnimTable[];
extern const union AffineAnimCmd *const gDummySpriteAffineAnimTable[];
extern s16 gSpriteCoordOffsetX;
extern s16 gSpriteCoordOffsetY;
extern const struct SpriteTemplate gDummySpriteTemplate;
extern struct Sprite gSprites[];
void ResetSpriteData(void);

View File

@ -91,6 +91,7 @@ extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
extern const u8 gText_EggNickname[];
extern const u8 gText_Pokemon[];
extern const u8 gText_PkmnFainted3[];
extern const u8 gOtherText_Use[];
extern const u8 gOtherText_Give[];

View File

@ -4,6 +4,7 @@
#include "global.h"
#define NUM_TASKS 16
#define TASK_NONE 0xFF
typedef void (*TaskFunc)(u8 taskId);

View File

@ -1,11 +0,0 @@
#ifndef GUARD_UNK_TEXT_UTIL_H
#define GUARD_UNK_TEXT_UTIL_H
#include "global.h"
void UnkTextUtil_Reset(void);
void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
const u8 *UnkTextUtil_GetPtrI(u8 idx);
#endif //GUARD_UNK_TEXT_UTIL_H

View File

@ -146,13 +146,13 @@ SECTIONS {
asm/naming_screen.o(.text);
src/money.o(.text);
asm/script_pokemon_util_80A0058.o(.text);
asm/field_poison.o(.text);
src/field_poison.o(.text);
asm/pokemon_size_record.o(.text);
asm/pc_screen_effect.o(.text);
src/fldeff_poison.o(.text);
src/fldeff_berrytree.o(.text);
src/field_special_scene.o(.text);
asm/safari_zone.o(.text);
src/safari_zone.o(.text);
src/item_use.o(.text);
asm/battle_anim_effects_1.o(.text);
asm/battle_anim_effects_2.o(.text);
@ -226,7 +226,7 @@ SECTIONS {
asm/link_rfu_2.o(.text);
asm/link_rfu.o(.text);
asm/pokedex_screen.o(.text);
asm/list_menu.o(.text);
src/list_menu.o(.text);
asm/item_menu.o(.text);
src/save_location.o(.text);
src/bag.o(.text);
@ -246,15 +246,15 @@ SECTIONS {
src/menu2.o(.text);
src/oak_speech.o(.text);
src/tm_case.o(.text);
asm/menu_indicators.o(.text);
src/menu_indicators.o(.text);
asm/pokedex_area_markers.o(.text);
asm/pokemon_summary_screen.o(.text);
src/help_system.o(.text);
asm/wild_pokemon_area.o(.text);
asm/unk_text_util.o(.text);
src/dynamic_placeholder_text_util.o(.text);
asm/berry_pouch.o(.text);
asm/itemfinder.o(.text);
asm/buy_menu_helpers.o(.text);
src/buy_menu_helpers.o(.text);
asm/slot_machine.o(.text);
src/roamer.o(.text);
src/mystery_gift_menu.o(.text);
@ -424,6 +424,8 @@ SECTIONS {
data/data_83FECCC.o(.rodata.841EE44);
src/new_menu_helpers.o(.rodata);
data/data_83FECCC.o(.rodata.841F4B4);
src/list_menu.o(.rodata);
data/data_83FECCC.o(.rodata.8452CF4);
src/save_location.o(.rodata);
src/bag.o(.rodata);
src/trainer_pokemon_sprites.o(.rodata);
@ -437,15 +439,15 @@ SECTIONS {
src/menu2.o(.rodata);
src/oak_speech.o(.rodata);
src/tm_case.o(.rodata);
data/menu_indicators.o(.rodata);
src/menu_indicators.o(.rodata);
data/pokedex_area_markers.o(.rodata);
data/pokemon_summary_screen.o(.rodata);
src/help_system.o(.rodata);
data/wild_pokemon_area.o(.rodata);
data/unk_text_util.o(.rodata);
src/dynamic_placeholder_text_util.o(.rodata);
data/berry_pouch.o(.rodata);
data/itemfinder.o(.rodata);
data/buy_menu_helpers.o(.rodata);
src/buy_menu_helpers.o(.rodata);
data/slot_machine.o(.rodata);
src/roamer.o(.rodata);
src/mystery_gift_menu.o(.rodata);

216
src/buy_menu_helpers.c Normal file
View File

@ -0,0 +1,216 @@
#include "global.h"
#include "task.h"
#include "text.h"
#include "window.h"
#include "text_window.h"
#include "money.h"
#include "menu_helpers.h"
#include "new_menu_helpers.h"
#include "menu.h"
#include "shop.h"
static const struct WindowTemplate sShopBuyMenuWindowTemplatesNormal[] =
{
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0x1,
.width = 0x8,
.height = 0x3,
.paletteNum = 0xF,
.baseBlock = 0x27,
},
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0xB,
.width = 0xD,
.height = 0x2,
.paletteNum = 0xF,
.baseBlock = 0x3F,
},
{
.bg = 0x0,
.tilemapLeft = 0x2,
.tilemapTop = 0xF,
.width = 0x1A,
.height = 0x4,
.paletteNum = 0xE,
.baseBlock = 0x59,
},
{
.bg = 0x0,
.tilemapLeft = 0x11,
.tilemapTop = 0x9,
.width = 0xC,
.height = 0x4,
.paletteNum = 0xE,
.baseBlock = 0xC1,
},
{
.bg = 0x0,
.tilemapLeft = 0xB,
.tilemapTop = 0x1,
.width = 0x11,
.height = 0xC,
.paletteNum = 0xE,
.baseBlock = 0xF1,
},
{
.bg = 0x0,
.tilemapLeft = 0x5,
.tilemapTop = 0xE,
.width = 0x19,
.height = 0x6,
.paletteNum = 0xF,
.baseBlock = 0x1BD,
},
DUMMY_WIN_TEMPLATE,
};
// firered uses different layout when selling TMs
static const struct WindowTemplate sShopBuyMenuWindowTemplatesTM[] =
{
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0x1,
.width = 0x8,
.height = 0x3,
.paletteNum = 0xF,
.baseBlock = 0x27,
},
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0xB,
.width = 0xD,
.height = 0x2,
.paletteNum = 0xF,
.baseBlock = 0x3F,
},
{
.bg = 0x0,
.tilemapLeft = 0x2,
.tilemapTop = 0xF,
.width = 0x1A,
.height = 0x4,
.paletteNum = 0xE,
.baseBlock = 0x59,
},
{
.bg = 0x0,
.tilemapLeft = 0x11,
.tilemapTop = 0x9,
.width = 0xC,
.height = 0x4,
.paletteNum = 0xE,
.baseBlock = 0xC1,
},
{
.bg = 0x0,
.tilemapLeft = 0xB,
.tilemapTop = 0x1,
.width = 0x11,
.height = 0xA,
.paletteNum = 0xE,
.baseBlock = 0xF1,
},
{
.bg = 0x0,
.tilemapLeft = 0xC,
.tilemapTop = 0xC,
.width = 0x12,
.height = 0x8,
.paletteNum = 0xE,
.baseBlock = 0x19B,
},
{
.bg = 0x0,
.tilemapLeft = 0x1,
.tilemapTop = 0xE,
.width = 0xA,
.height = 0x4,
.paletteNum = 0xE,
.baseBlock = 0x22B,
},
DUMMY_WIN_TEMPLATE,
};
static const struct WindowTemplate sShopBuyMenuYesNoWindowTemplate =
{
.bg = 0x0,
.tilemapLeft = 0x15,
.tilemapTop = 0x9,
.width = 0x6,
.height = 0x4,
.paletteNum = 0xE,
.baseBlock = 0xC1,
};
static const struct TextColor sShopBuyMenuTextColors[] =
{
{
.fgColor = 0,
.bgColor = 1,
.shadowColor = 2,
},
{
.fgColor = 0,
.bgColor = 2,
.shadowColor = 3,
},
{
.fgColor = 0,
.bgColor = 3,
.shadowColor = 2,
},
};
void BuyMenuInitWindows(bool32 isSellingTM)
{
if (isSellingTM != TRUE)
InitWindows(sShopBuyMenuWindowTemplatesNormal);
else
InitWindows(sShopBuyMenuWindowTemplatesTM);
DeactivateAllTextPrinters();
TextWindow_SetUserSelectedFrame(0, 0x1, 0xD0);
TextWindow_LoadResourcesStdFrame0(0, 0x13, 0xE0);
TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xF0);
PutWindowTilemap(0);
PutWindowTilemap(4);
PutWindowTilemap(5);
if (isSellingTM == TRUE)
PutWindowTilemap(6);
}
void BuyMenuDrawMoneyBox(void)
{
PrintMoneyAmountInMoneyBoxWithBorder(0, 0xA, 0xF, GetMoney(&gSaveBlock1Ptr->money));
}
void BuyMenuPrint(u8 windowId, u8 font, const u8 *text, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, s8 speed, u8 color)
{
AddTextPrinterParameterized4(windowId, font, x, y, letterSpacing, lineSpacing, &sShopBuyMenuTextColors[color], speed, text);
}
void BuyMenuDisplayMessage(u8 taskId, const u8 *text, TaskFunc callback)
{
DisplayMessageAndContinueTask(taskId, 2, 0x13, 0xE, sub_809B56C(), GetTextSpeedSetting(), text, callback);
ScheduleBgCopyTilemapToVram(0);
}
void BuyMenuQuantityBoxNormalBorder(u8 windowId, bool8 copyToVram)
{
SetWindowBorderStyle(windowId, copyToVram, 0x1, 0xD);
}
void BuyMenuQuantityBoxThinBorder(u8 windowId, bool8 copyToVram)
{
SetWindowBorderStyle(windowId, copyToVram, 0xA, 0xF);
}
void BuyMenuConfirmPurchase(u8 taskId, const struct YesNoFuncTable *yesNo)
{
CreateYesNoMenuWithCallbacks(taskId, &sShopBuyMenuYesNoWindowTemplate, 2, 0, 2, 1, 0xD, yesNo);
}

View File

@ -1533,7 +1533,7 @@ static void DaycarePrintMonInfo(u8 windowId, s32 daycareSlotId, u8 y)
static void Task_HandleDaycareLevelMenuInput(u8 taskId)
{
u32 input = ListMenuHandleInput(gTasks[taskId].tMenuListTaskId);
u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuListTaskId);
if (gMain.newKeys & A_BUTTON)
{
@ -1547,7 +1547,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId)
gSpecialVar_Result = 2;
break;
}
DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL);
DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL);
ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE);
RemoveWindow(gTasks[taskId].tWindowId);
DestroyTask(taskId);
@ -1556,7 +1556,7 @@ static void Task_HandleDaycareLevelMenuInput(u8 taskId)
else if (gMain.newKeys & B_BUTTON)
{
gSpecialVar_Result = 2;
DestroyListMenu(gTasks[taskId].tMenuListTaskId, NULL, NULL);
DestroyListMenuTask(gTasks[taskId].tMenuListTaskId, NULL, NULL);
ClearStdWindowAndFrame(gTasks[taskId].tWindowId, TRUE);
RemoveWindow(gTasks[taskId].tWindowId);
DestroyTask(taskId);

View File

@ -0,0 +1,70 @@
#include "global.h"
#include "text.h"
#include "dynamic_placeholder_text_util.h"
#include "string_util.h"
static EWRAM_DATA const u8 *sStringPointers[8] = {0};
static const u8 sTextColorTable[] =
{
0, 0, 0, 16, 17, 17, 17, 16, 16, 0, 0, 17, 1, 0, 17, 16,
0, 16, 16, 0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0,
17, 1, 0, 0, 0, 16, 17, 0, 16, 16, 16, 0, 1, 0, 51, 51,
51, 51, 51, 51, 51, 51, 35, 34, 34, 34, 34, 34, 34, 34, 34, 34,
34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 50,
};
void DynamicPlaceholderTextUtil_Reset(void)
{
const u8 **ptr = sStringPointers;
u8 *fillval = NULL;
const u8 **ptr2 = ptr + (NELEMS(sStringPointers) - 1);
do
{
*ptr2-- = fillval;
}
while ((intptr_t)ptr2 >= (intptr_t)ptr);
}
void DynamicPlaceholderTextUtil_SetPlaceholderPtr(u8 idx, const u8 *ptr)
{
if (idx < NELEMS(sStringPointers))
sStringPointers[idx] = ptr;
}
u8 *DynamicPlaceholderTextUtil_ExpandPlaceholders(u8 *dest, const u8 *src)
{
while (*src != EOS)
{
if (*src != CHAR_SPECIAL_F7)
{
*dest++ = *src++;
}
else
{
src++;
if (sStringPointers[*src] != NULL)
dest = StringCopy(dest, sStringPointers[*src]);
src++;
}
}
*dest = EOS;
return dest;
}
const u8 *DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 idx)
{
return sStringPointers[idx];
}
u8 GetColorFromTextColorTable(u16 graphicId)
{
u32 test = graphicId >> 1;
u32 shift = (graphicId & 1) << 2;
if (test > 0x4B)
return 3;
else
return (sTextColorTable[graphicId >> 1] >> shift) & 0xF;
}

View File

@ -580,7 +580,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
}
else if (JOY_NEW(A_BUTTON))
{
cursorPos = ListMenuHandleInput(0);
cursorPos = ListMenu_ProcessInput(0);
if (cursorPos == sFameCheckerData->numUnlockedPersons - 1) // CANCEL
task->func = Task_StartToCloseFameChecker;
else if (sFameCheckerData->inPickMode)
@ -615,7 +615,7 @@ static void Task_TopMenuHandleInput(u8 taskId)
task->func = Task_StartToCloseFameChecker;
}
else
ListMenuHandleInput(0);
ListMenu_ProcessInput(0);
}
}
@ -853,7 +853,7 @@ static void Task_DestroyAssetsAndCloseFameChecker(u8 taskId)
FreeQuestionMarkSpriteResources();
FreeListMenuSelectorArrowPairResources();
SetMainCallback2(sFameCheckerData->savedCallback);
DestroyListMenu(sFameCheckerData->listMenuTaskId, NULL, NULL);
DestroyListMenuTask(sFameCheckerData->listMenuTaskId, NULL, NULL);
Free(sBg3TilemapBuffer);
Free(sBg1TilemapBuffer);
Free(sBg2TilemapBuffer);

117
src/field_poison.c Normal file
View File

@ -0,0 +1,117 @@
#include "global.h"
#include "strings.h"
#include "task.h"
#include "field_message_box.h"
#include "script.h"
#include "string_util.h"
#include "event_data.h"
#include "fldeff.h"
#include "party_menu.h"
#include "field_poison.h"
#include "constants/species.h"
#include "constants/battle.h"
static bool32 IsMonValidSpecies(struct Pokemon *pokemon)
{
u16 species = GetMonData(pokemon, MON_DATA_SPECIES2);
if (species == SPECIES_NONE || species == SPECIES_EGG)
return FALSE;
return TRUE;
}
static bool32 AllMonsFainted(void)
{
int i;
struct Pokemon *pokemon = gPlayerParty;
for (i = 0; i < PARTY_SIZE; i++, pokemon++)
if (IsMonValidSpecies(pokemon) && GetMonData(pokemon, MON_DATA_HP))
return FALSE;
return TRUE;
}
static void FaintFromFieldPoison(u8 partyIdx)
{
struct Pokemon *pokemon = gPlayerParty + partyIdx;
u32 status = STATUS1_NONE;
AdjustFriendship(pokemon, 8);
SetMonData(pokemon, MON_DATA_STATUS, &status);
GetMonData(pokemon, MON_DATA_NICKNAME, gStringVar1);
StringGetEnd10(gStringVar1);
}
static bool32 MonFaintedFromPoison(u8 partyIdx)
{
struct Pokemon *pokemon = gPlayerParty + partyIdx;
if (IsMonValidSpecies(pokemon) && !GetMonData(pokemon, MON_DATA_HP) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
return TRUE;
return FALSE;
}
static void Task_WhiteOut(u8 taskId)
{
s16 *data = gTasks[taskId].data;
switch (data[0])
{
case 0:
for (; data[1] < PARTY_SIZE; data[1]++)
{
if (MonFaintedFromPoison(data[1]))
{
FaintFromFieldPoison(data[1]);
ShowFieldMessage(gText_PkmnFainted3);
data[0]++;
return;
}
}
data[0] = 2;
break;
case 1:
if (IsFieldMessageBoxHidden())
data[0]--;
break;
case 2:
if (AllMonsFainted())
gSpecialVar_Result = 1;
else
gSpecialVar_Result = 0;
EnableBothScriptContexts();
DestroyTask(taskId);
break;
}
}
void ExecuteWhiteOut(void)
{
CreateTask(Task_WhiteOut, 80);
ScriptContext1_Stop();
}
s32 DoPoisonFieldEffect(void)
{
int i;
u32 hp;
struct Pokemon *pokemon = gPlayerParty;
u32 numPoisoned = 0;
u32 numFainted = 0;
for (i = 0; i < PARTY_SIZE; i++)
{
if (GetMonData(pokemon, MON_DATA_SANITY_HAS_SPECIES) && pokemon_ailments_get_primary(GetMonData(pokemon, MON_DATA_STATUS)) == AILMENT_PSN)
{
hp = GetMonData(pokemon, MON_DATA_HP);
if (hp == 0 || --hp == 0)
numFainted++;
SetMonData(pokemon, MON_DATA_HP, &hp);
numPoisoned++;
}
pokemon++;
}
if (numFainted || numPoisoned)
FldEffPoison_Start();
if (numFainted)
return FLDPSN_FNT;
if (numPoisoned)
return FLDPSN_PSN;
return FLDPSN_NONE;
}

View File

@ -142,13 +142,13 @@ static const u8 gUnknown_8402650[] = INCBIN_U8("graphics/intro/unk_8402650.4bpp.
static const u8 gUnknown_8402668[] = INCBIN_U8("graphics/intro/unk_8402668.bin.lz");
static const u16 gUnknown_840270C[] = INCBIN_U16("graphics/intro/unk_840270C.gbapal");
static const u8 gUnknown_840272C[] = INCBIN_U8("graphics/intro/unk_840272C.4bpp.lz");
static const u8 gUnknown_84028F8[] = INCBIN_U8("graphics/intro/unk_84028F8.bin.lz");
static const u32 gUnknown_84028F8[] = INCBIN_U32("graphics/intro/unk_84028F8.bin.lz");
static const u16 gUnknown_8402A44[] = INCBIN_U16("graphics/intro/unk_8402A64.gbapal");
static const u8 gUnknown_8402A64[] = INCBIN_U8("graphics/intro/unk_8402A64.4bpp.lz");
static const u32 gUnknown_8402A64[] = INCBIN_U32("graphics/intro/unk_8402A64.4bpp.lz");
static const u16 gUnknown_8402ABC[] = INCBIN_U16("graphics/intro/unk_8402ADC.gbapal");
static const u8 gUnknown_8402ADC[] = INCBIN_U8("graphics/intro/unk_8402ADC.4bpp.lz");
static const u8 gUnknown_8402B2C[] = INCBIN_U8("graphics/intro/unk_8402B2C.4bpp.lz");
static const u8 gUnknown_8402CD4[] = INCBIN_U8("graphics/intro/unk_8402CD4.4bpp.lz");
static const u32 gUnknown_8402ADC[] = INCBIN_U32("graphics/intro/unk_8402ADC.4bpp.lz");
static const u32 gUnknown_8402B2C[] = INCBIN_U32("graphics/intro/unk_8402B2C.4bpp.lz");
static const u32 gUnknown_8402CD4[] = INCBIN_U32("graphics/intro/unk_8402CD4.4bpp.lz");
static const u16 gUnknown_8402D34[] = INCBIN_U16("graphics/intro/unk_8402D34.gbapal");
static const u8 gUnknown_8402D54[] = INCBIN_U8("graphics/intro/unk_8402D54.4bpp.lz");
static const u8 gUnknown_8403FE8[] = INCBIN_U8("graphics/intro/unk_8403FE8.bin.lz");
@ -172,17 +172,17 @@ static const u8 gUnknown_8407470[] = INCBIN_U8("graphics/intro/unk_8407470.4bpp.
static const u8 gUnknown_8407A50[] = INCBIN_U8("graphics/intro/unk_8407A50.bin.lz");
static const u8 gUnknown_8407B9C[] = INCBIN_U8("graphics/intro/unk_8407B9C.4bpp.lz");
static const u8 gUnknown_8408D98[] = INCBIN_U8("graphics/intro/unk_8408D98.bin.lz");
static const u8 gUnknown_840926C[] = INCBIN_U8("graphics/intro/unk_840926C.4bpp.lz");
static const u32 gUnknown_840926C[] = INCBIN_U32("graphics/intro/unk_840926C.4bpp.lz");
static const u16 gUnknown_84096AC[] = INCBIN_U16("graphics/intro/unk_84096AC.gbapal");
static const u8 gUnknown_84096CC[] = INCBIN_U8("graphics/intro/unk_84096CC.4bpp.lz");
static const u32 gUnknown_84096CC[] = INCBIN_U32("graphics/intro/unk_84096CC.4bpp.lz");
static const u16 gUnknown_8409A1C[] = INCBIN_U16("graphics/intro/unk_8409A1C.gbapal");
static const u8 gUnknown_8409A3C[] = INCBIN_U8("graphics/intro/unk_8409A3C.4bpp.lz");
static const u8 gUnknown_8409D20[] = INCBIN_U8("graphics/intro/unk_8409D20.4bpp.lz");
static const u8 gUnknown_840A3E4[] = INCBIN_U8("graphics/intro/unk_840A3E4.4bpp.lz");
static const u32 gUnknown_8409A3C[] = INCBIN_U32("graphics/intro/unk_8409A3C.4bpp.lz");
static const u32 gUnknown_8409D20[] = INCBIN_U32("graphics/intro/unk_8409D20.4bpp.lz");
static const u32 gUnknown_840A3E4[] = INCBIN_U32("graphics/intro/unk_840A3E4.4bpp.lz");
static const u16 gUnknown_840B834[] = INCBIN_U16("graphics/intro/unk_840B834.gbapal");
static const u16 gUnknown_840B854[] = INCBIN_U16("graphics/intro/unk_840B854.gbapal");
static const u8 gUnknown_840B874[] = INCBIN_U8("graphics/intro/unk_840B874.4bpp.lz");
static const u8 gUnknown_840BAE0[] = INCBIN_U8("graphics/intro/unk_840BAE0.4bpp.lz");
static const u32 gUnknown_840B874[] = INCBIN_U32("graphics/intro/unk_840B874.4bpp.lz");
static const u32 gUnknown_840BAE0[] = INCBIN_U32("graphics/intro/unk_840BAE0.4bpp.lz");
static const struct BgTemplate gUnknown_840BB80[] = {
{ 3, 3, 31, 0, 0, 3, 0x000 },

View File

@ -653,7 +653,7 @@ static void Task_ItemPcTurnOff2(u8 taskId)
if (!gPaletteFade.active && !sub_80A0AAC())
{
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (sStateDataPtr->savedCallback != NULL)
SetMainCallback2(sStateDataPtr->savedCallback);
else
@ -737,7 +737,7 @@ static void Task_ItemPcMain(u8 taskId)
return;
}
}
input = ListMenuHandleInput(data[0]);
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
switch (input)
{
@ -772,7 +772,7 @@ static void ItemPc_MoveItemModeInit(u8 taskId, s16 pos)
{
s16 * data = gTasks[taskId].data;
sub_8107BD0(data[0], 16, 1);
ListMenuSetUnkIndicatorsStructField(data[0], 16, 1);
data[1] = pos;
sStateDataPtr->moveModeOrigPos = pos;
StringCopy(gStringVar1, ItemId_GetName(ItemPc_GetItemIdBySlotId(data[1])));
@ -789,7 +789,7 @@ static void Task_ItemPcMoveItemModeRun(u8 taskId)
{
s16 * data = gTasks[taskId].data;
ListMenuHandleInput(data[0]);
ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sListMenuState.scroll, &sListMenuState.row);
sub_80986A8(-32, ListMenuGetYCoordForPrintingArrowCursor(data[0]));
if (JOY_NEW(A_BUTTON | SELECT_BUTTON))
@ -814,7 +814,7 @@ static void ItemPc_InsertItemIntoNewSlot(u8 taskId, u32 pos)
else
{
ItemMenu_MoveItemSlotToNewPositionInArray(gSaveBlock1Ptr->pcItems, data[1], pos);
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
@ -828,7 +828,7 @@ static void ItemPc_MoveItemModeCancel(u8 taskId, u32 pos)
{
s16 * data = gTasks[taskId].data;
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
if (data[1] < pos)
sListMenuState.row--;
ItemPc_BuildListMenuTemplate();
@ -947,7 +947,7 @@ static void Task_ItemPcCleanUpWithdraw(u8 taskId)
ItemPc_DestroySubwindow(2);
PutWindowTilemap(1);
DestroyListMenu(data[0], &sListMenuState.scroll, &sListMenuState.row);
DestroyListMenuTask(data[0], &sListMenuState.scroll, &sListMenuState.row);
ItemPc_CountPcItems();
ItemPc_SetCursorPosition();
ItemPc_BuildListMenuTemplate();

786
src/list_menu.c Normal file
View File

@ -0,0 +1,786 @@
#include "global.h"
#include "menu.h"
#include "list_menu.h"
#include "menu_indicators.h"
#include "new_menu_helpers.h"
#include "window.h"
#include "text_window.h"
#include "main.h"
#include "task.h"
#include "graphics.h"
#include "decompress.h"
#include "palette.h"
#include "malloc.h"
#include "strings.h"
#include "sound.h"
#include "pokemon_icon.h"
#include "constants/songs.h"
struct UnkIndicatorsStruct
{
u8 field_0;
u16 *field_4;
u16 field_8;
u16 field_A;
u16 field_C;
u16 field_E;
u8 field_10;
u8 field_11;
u8 field_12;
u8 field_13;
u8 field_14_0:4;
u8 field_14_1:4;
u8 field_15_0:4;
u8 field_15_1:4;
u8 field_16_0:3;
u8 field_16_1:3;
u8 field_16_2:2;
u8 field_17_0:6;
u8 field_17_1:2;
};
struct MysteryGiftLinkMenuStruct
{
s32 currItemId;
u8 state;
u8 windowId;
u8 listTaskId;
};
struct ListMenuOverride
{
u8 cursorPal:4;
u8 fillValue:4;
u8 cursorShadowPal:4;
u8 lettersSpacing:6;
u8 field_2_2:6; // unused
u8 fontId:7;
bool8 enabled:1;
};
struct MoveMenuInfoIcon
{
u8 width;
u8 height;
u16 offset;
};
static EWRAM_DATA struct MysteryGiftLinkMenuStruct sMysteryGiftLinkMenu = {0};
struct ListMenuOverride gListMenuOverride;
struct ListMenuTemplate gMultiuseListMenuTemplate;
static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow);
static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown);
static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOffset, u16 count);
static void ListMenuDrawCursor(struct ListMenu *list);
static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit);
static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind);
const struct MoveMenuInfoIcon gMoveMenuInfoIcons[] =
{
{ 12, 12, 0x00 }, // Unused
{ 32, 12, 0x20 }, // Normal icon
{ 32, 12, 0x64 }, // Fight icon
{ 32, 12, 0x60 }, // Flying icon
{ 32, 12, 0x80 }, // Poison icon
{ 32, 12, 0x48 }, // Ground icon
{ 32, 12, 0x44 }, // Rock icon
{ 32, 12, 0x6C }, // Bug icon
{ 32, 12, 0x68 }, // Ghost icon
{ 32, 12, 0x88 }, // Steel icon
{ 32, 12, 0xA4 }, // ??? (Mystery) icon
{ 32, 12, 0x24 }, // Fire icon
{ 32, 12, 0x28 }, // Water icon
{ 32, 12, 0x2C }, // Grass icon
{ 32, 12, 0x40 }, // Electric icon
{ 32, 12, 0x84 }, // Psychic icon
{ 32, 12, 0x4C }, // Ice icon
{ 32, 12, 0xA0 }, // Dragon icon
{ 32, 12, 0x8C }, // Dark icon
{ 40, 12, 0xA8 }, // -Type- icon
{ 40, 12, 0xC0 }, // -Power- icon
{ 40, 12, 0xC8 }, // -Accuracy- icon
{ 40, 12, 0xE0 }, // -PP- icon
{ 40, 12, 0xE8 }, // -Effect- icon
};
static void ListMenuDummyTask(u8 taskId)
{
}
s32 DoMysteryGiftListMenu(const struct WindowTemplate *windowTemplate, const struct ListMenuTemplate *listMenuTemplate, u8 arg2, u16 tileNum, u16 palNum)
{
switch (sMysteryGiftLinkMenu.state)
{
case 0:
default:
sMysteryGiftLinkMenu.windowId = AddWindow(windowTemplate);
switch (arg2)
{
case 2:
TextWindow_SetUserSelectedFrame(sMysteryGiftLinkMenu.windowId, tileNum, palNum);
case 1:
DrawTextBorderOuter(sMysteryGiftLinkMenu.windowId, tileNum, palNum / 16);
break;
}
gMultiuseListMenuTemplate = *listMenuTemplate;
gMultiuseListMenuTemplate.windowId = sMysteryGiftLinkMenu.windowId;
sMysteryGiftLinkMenu.listTaskId = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
sMysteryGiftLinkMenu.state = 1;
break;
case 1:
sMysteryGiftLinkMenu.currItemId = ListMenu_ProcessInput(sMysteryGiftLinkMenu.listTaskId);
if (JOY_NEW(A_BUTTON))
{
sMysteryGiftLinkMenu.state = 2;
}
if (JOY_NEW(B_BUTTON))
{
sMysteryGiftLinkMenu.currItemId = LIST_CANCEL;
sMysteryGiftLinkMenu.state = 2;
}
if (sMysteryGiftLinkMenu.state == 2)
{
if (!arg2)
{
ClearWindowTilemap(sMysteryGiftLinkMenu.windowId);
}
else
{
switch (arg2)
{
case 0: // can never be reached, because of the if statement above
ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE);
break;
case 2:
case 1:
ClearStdWindowAndFrame(sMysteryGiftLinkMenu.windowId, FALSE);
break;
}
}
CopyWindowToVram(sMysteryGiftLinkMenu.windowId, 1);
}
break;
case 2:
DestroyListMenuTask(sMysteryGiftLinkMenu.listTaskId, NULL, NULL);
RemoveWindow(sMysteryGiftLinkMenu.windowId);
sMysteryGiftLinkMenu.state = 0;
return sMysteryGiftLinkMenu.currItemId;
}
return LIST_NOTHING_CHOSEN;
}
u8 ListMenuInit(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
{
u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow);
PutWindowTilemap(listMenuTemplate->windowId);
CopyWindowToVram(listMenuTemplate->windowId, 2);
return taskId;
}
u8 ListMenuInitInRect(struct ListMenuTemplate *listMenuTemplate, struct ListMenuWindowRect *rect, u16 scrollOffset, u16 selectedRow)
{
s32 i;
u8 taskId = ListMenuInitInternal(listMenuTemplate, scrollOffset, selectedRow);
for (i = 0; rect[i].palNum != 0xFF; i++)
PutWindowRectTilemapOverridePalette(listMenuTemplate->windowId, rect[i].x, rect[i].y, rect[i].width, rect[i].height, rect[i].palNum);
CopyWindowToVram(listMenuTemplate->windowId, 2);
return taskId;
}
s32 ListMenu_ProcessInput(u8 listTaskId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (JOY_NEW(A_BUTTON))
{
return list->template.items[list->scrollOffset + list->selectedRow].index;
}
else if (JOY_NEW(B_BUTTON))
{
return LIST_CANCEL;
}
else if (gMain.newAndRepeatedKeys & DPAD_UP)
{
ListMenuChangeSelection(list, TRUE, 1, FALSE);
return LIST_NOTHING_CHOSEN;
}
else if (gMain.newAndRepeatedKeys & DPAD_DOWN)
{
ListMenuChangeSelection(list, TRUE, 1, TRUE);
return LIST_NOTHING_CHOSEN;
}
else // try to move by one window scroll
{
bool16 rightButton, leftButton;
switch (list->template.scrollMultiple)
{
case LIST_NO_MULTIPLE_SCROLL:
default:
leftButton = FALSE;
rightButton = FALSE;
break;
case LIST_MULTIPLE_SCROLL_DPAD:
leftButton = gMain.newAndRepeatedKeys & DPAD_LEFT;
rightButton = gMain.newAndRepeatedKeys & DPAD_RIGHT;
break;
case LIST_MULTIPLE_SCROLL_L_R:
leftButton = gMain.newAndRepeatedKeys & L_BUTTON;
rightButton = gMain.newAndRepeatedKeys & R_BUTTON;
break;
}
if (leftButton)
{
ListMenuChangeSelection(list, TRUE, list->template.maxShowed, FALSE);
return LIST_NOTHING_CHOSEN;
}
else if (rightButton)
{
ListMenuChangeSelection(list, TRUE, list->template.maxShowed, TRUE);
return LIST_NOTHING_CHOSEN;
}
else
{
return LIST_NOTHING_CHOSEN;
}
}
}
void DestroyListMenuTask(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (scrollOffset != NULL)
*scrollOffset = list->scrollOffset;
if (selectedRow != NULL)
*selectedRow = list->selectedRow;
if (list->taskId != TASK_NONE)
ListMenuRemoveCursorObject(list->taskId, list->template.cursorKind - 2);
DestroyTask(listTaskId);
}
void RedrawListMenu(u8 listTaskId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
ListMenuDrawCursor(list);
CopyWindowToVram(list->template.windowId, 2);
}
static void ChangeListMenuPals(u8 listTaskId, u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
list->template.cursorPal = cursorPal;
list->template.fillValue = fillValue;
list->template.cursorShadowPal = cursorShadowPal;
}
static void ChangeListMenuCoords(u8 listTaskId, u8 x, u8 y)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
SetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT, x);
SetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP, y);
}
static s32 ListMenuTestInput(struct ListMenuTemplate *template, u32 scrollOffset, u32 selectedRow, u16 keys, u16 *newScrollOffset, u16 *newSelectedRow)
{
struct ListMenu list;
list.template = *template;
list.scrollOffset = scrollOffset;
list.selectedRow = selectedRow;
list.unk_1C = 0;
list.unk_1D = 0;
if (keys == DPAD_UP)
ListMenuChangeSelection(&list, FALSE, 1, FALSE);
if (keys == DPAD_DOWN)
ListMenuChangeSelection(&list, FALSE, 1, TRUE);
if (newScrollOffset != NULL)
*newScrollOffset = list.scrollOffset;
if (newSelectedRow != NULL)
*newSelectedRow = list.selectedRow;
return LIST_NOTHING_CHOSEN;
}
static void ListMenuGetCurrentItemArrayId(u8 listTaskId, u16 *arrayId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (arrayId != NULL)
*arrayId = list->scrollOffset + list->selectedRow;
}
void ListMenuGetScrollAndRow(u8 listTaskId, u16 *scrollOffset, u16 *selectedRow)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
if (scrollOffset != NULL)
*scrollOffset = list->scrollOffset;
if (selectedRow != NULL)
*selectedRow = list->selectedRow;
}
u16 ListMenuGetYCoordForPrintingArrowCursor(u8 listTaskId)
{
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
return list->selectedRow * yMultiplier + list->template.upText_Y;
}
static u8 ListMenuInitInternal(struct ListMenuTemplate *listMenuTemplate, u16 scrollOffset, u16 selectedRow)
{
u8 listTaskId = CreateTask(ListMenuDummyTask, 0);
struct ListMenu *list = (struct ListMenu *)gTasks[listTaskId].data;
list->template = *listMenuTemplate;
list->scrollOffset = scrollOffset;
list->selectedRow = selectedRow;
list->unk_1C = 0;
list->unk_1D = 0;
list->taskId = TASK_NONE;
list->unk_1F = 0;
gListMenuOverride.cursorPal = list->template.cursorPal;
gListMenuOverride.fillValue = list->template.fillValue;
gListMenuOverride.cursorShadowPal = list->template.cursorShadowPal;
gListMenuOverride.lettersSpacing = list->template.lettersSpacing;
gListMenuOverride.fontId = list->template.fontId;
gListMenuOverride.enabled = FALSE;
if (list->template.totalItems < list->template.maxShowed)
list->template.maxShowed = list->template.totalItems;
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, TRUE);
return listTaskId;
}
static void ListMenuPrint(struct ListMenu *list, const u8 *str, u8 x, u8 y)
{
struct TextColor colors;
if (gListMenuOverride.enabled)
{
colors.fgColor = gListMenuOverride.fillValue;
colors.bgColor = gListMenuOverride.cursorPal;
colors.shadowColor = gListMenuOverride.cursorShadowPal;
AddTextPrinterParameterized4(list->template.windowId, gListMenuOverride.fontId, x, y, gListMenuOverride.lettersSpacing, 0, &colors, TEXT_SPEED_FF, str);
gListMenuOverride.enabled = FALSE;
}
else
{
colors.fgColor = list->template.fillValue;
colors.bgColor = list->template.cursorPal;
colors.shadowColor = list->template.cursorShadowPal;
AddTextPrinterParameterized4(list->template.windowId, list->template.fontId, x, y, list->template.lettersSpacing, 0, &colors, TEXT_SPEED_FF, str);
}
}
static void ListMenuPrintEntries(struct ListMenu *list, u16 startIndex, u16 yOffset, u16 count)
{
s32 i;
u8 x, y;
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
for (i = 0; i < count; i++)
{
if (list->template.items[startIndex].index != LIST_HEADER)
x = list->template.item_X;
else
x = list->template.header_X;
y = (yOffset + i) * yMultiplier + list->template.upText_Y;
if (list->template.itemPrintFunc != NULL)
list->template.itemPrintFunc(list->template.windowId, list->template.items[startIndex].index, y);
ListMenuPrint(list, list->template.items[startIndex].label, x, y);
startIndex++;
}
}
static void ListMenuDrawCursor(struct ListMenu *list)
{
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
u8 x = list->template.cursor_X;
u8 y = list->selectedRow * yMultiplier + list->template.upText_Y;
switch (list->template.cursorKind)
{
case 0:
ListMenuPrint(list, gFameCheckerText_ListMenuCursor, x, y);
break;
case 1:
break;
case 2:
if (list->taskId == TASK_NONE)
list->taskId = ListMenuAddCursorObject(list, 0);
ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 - 1, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y - 1, 0);
break;
case 3:
if (list->taskId == TASK_NONE)
list->taskId = ListMenuAddCursorObject(list, 1);
ListMenuUpdateCursorObject(list->taskId, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_LEFT) * 8 + x, GetWindowAttribute(list->template.windowId, WINDOW_TILEMAP_TOP) * 8 + y, 1);
break;
}
}
static u8 ListMenuAddCursorObject(struct ListMenu *list, u32 cursorKind)
{
struct CursorStruct cursor;
cursor.left = 0;
cursor.top = 160;
cursor.rowWidth = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8 + 2;
cursor.rowHeight = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + 2;
cursor.tileTag = 0x4000;
cursor.palTag = SPRITE_INVALID_TAG;
cursor.palNum = 15;
return ListMenuAddCursorObjectInternal(&cursor, cursorKind);
}
static void ListMenuErasePrintedCursor(struct ListMenu *list, u16 selectedRow)
{
u8 cursorKind = list->template.cursorKind;
if (cursorKind == 0)
{
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
u8 width = GetMenuCursorDimensionByFont(list->template.fontId, 0);
u8 height = GetMenuCursorDimensionByFont(list->template.fontId, 1);
FillWindowPixelRect(list->template.windowId,
PIXEL_FILL(list->template.fillValue),
list->template.cursor_X,
selectedRow * yMultiplier + list->template.upText_Y,
width,
height);
}
}
static u8 ListMenuUpdateSelectedRowIndexAndScrollOffset(struct ListMenu *list, bool8 movingDown)
{
u16 selectedRow = list->selectedRow;
u16 scrollOffset = list->scrollOffset;
u16 newRow;
u32 newScroll;
if (!movingDown)
{
if (list->template.maxShowed == 1)
newRow = 0;
else
newRow = list->template.maxShowed - ((list->template.maxShowed / 2) + (list->template.maxShowed % 2)) - 1;
if (scrollOffset == 0)
{
while (selectedRow != 0)
{
selectedRow--;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
return 0;
}
else
{
while (selectedRow > newRow)
{
selectedRow--;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
newScroll = scrollOffset - 1;
}
}
else
{
if (list->template.maxShowed == 1)
newRow = 0;
else
newRow = ((list->template.maxShowed / 2) + (list->template.maxShowed % 2));
if (scrollOffset == list->template.totalItems - list->template.maxShowed)
{
while (selectedRow < list->template.maxShowed - 1)
{
selectedRow++;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
return 0;
}
else
{
while (selectedRow < newRow)
{
selectedRow++;
if (list->template.items[scrollOffset + selectedRow].index != LIST_HEADER)
{
list->selectedRow = selectedRow;
return 1;
}
}
newScroll = scrollOffset + 1;
}
}
list->selectedRow = newRow;
list->scrollOffset = newScroll;
return 2;
}
static void ListMenuScroll(struct ListMenu *list, u8 count, bool8 movingDown)
{
if (count >= list->template.maxShowed)
{
FillWindowPixelBuffer(list->template.windowId, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, list->template.maxShowed);
}
else
{
u8 yMultiplier = GetFontAttribute(list->template.fontId, FONTATTR_MAX_LETTER_HEIGHT) + list->template.itemVerticalPadding;
if (!movingDown)
{
u16 y, width, height;
ScrollWindow(list->template.windowId, 1, count * yMultiplier, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset, 0, count);
y = (list->template.maxShowed * yMultiplier) + list->template.upText_Y;
width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8;
height = (GetWindowAttribute(list->template.windowId, WINDOW_HEIGHT) * 8) - y;
FillWindowPixelRect(list->template.windowId,
PIXEL_FILL(list->template.fillValue),
0, y, width, height);
}
else
{
u16 width;
ScrollWindow(list->template.windowId, 0, count * yMultiplier, PIXEL_FILL(list->template.fillValue));
ListMenuPrintEntries(list, list->scrollOffset + (list->template.maxShowed - count), list->template.maxShowed - count, count);
width = GetWindowAttribute(list->template.windowId, WINDOW_WIDTH) * 8;
FillWindowPixelRect(list->template.windowId,
PIXEL_FILL(list->template.fillValue),
0, 0, width, list->template.upText_Y);
}
}
}
static bool8 ListMenuChangeSelection(struct ListMenu *list, bool8 updateCursorAndCallCallback, u8 count, bool8 movingDown)
{
u16 oldSelectedRow;
u8 selectionChange, i, cursorCount;
oldSelectedRow = list->selectedRow;
cursorCount = 0;
selectionChange = 0;
for (i = 0; i < count; i++)
{
do
{
u8 ret = ListMenuUpdateSelectedRowIndexAndScrollOffset(list, movingDown);
selectionChange |= ret;
if (ret != 2)
break;
cursorCount++;
}
while (list->template.items[list->scrollOffset + list->selectedRow].index == LIST_HEADER);
}
if (updateCursorAndCallCallback)
{
switch (selectionChange)
{
case 0:
default:
return TRUE;
case 1:
ListMenuErasePrintedCursor(list, oldSelectedRow);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE);
CopyWindowToVram(list->template.windowId, 2);
break;
case 2:
case 3:
ListMenuErasePrintedCursor(list, oldSelectedRow);
ListMenuScroll(list, cursorCount, movingDown);
ListMenuDrawCursor(list);
ListMenuCallSelectionChangedCallback(list, FALSE);
CopyWindowToVram(list->template.windowId, 2);
break;
}
}
return FALSE;
}
static void ListMenuCallSelectionChangedCallback(struct ListMenu *list, u8 onInit)
{
if (list->template.moveCursorFunc != NULL)
list->template.moveCursorFunc(list->template.items[list->scrollOffset + list->selectedRow].index, onInit, list);
}
void ListMenuOverrideSetColors(u8 cursorPal, u8 fillValue, u8 cursorShadowPal)
{
gListMenuOverride.cursorPal = cursorPal;
gListMenuOverride.fillValue = fillValue;
gListMenuOverride.cursorShadowPal = cursorShadowPal;
gListMenuOverride.enabled = TRUE;
}
void ListMenuDefaultCursorMoveFunc(s32 itemIndex, bool8 onInit, struct ListMenu *list)
{
if (!onInit)
PlaySE(SE_SELECT);
}
static s32 ListMenuGetUnkIndicatorsStructFields(u8 taskId, u8 field)
{
struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
switch (field)
{
case 0:
case 1:
return (s32)(data->field_4);
case 2:
return data->field_C;
case 3:
return data->field_E;
case 4:
return data->field_10;
case 5:
return data->field_11;
case 6:
return data->field_12;
case 7:
return data->field_13;
case 8:
return data->field_14_0;
case 9:
return data->field_14_1;
case 10:
return data->field_15_0;
case 11:
return data->field_15_1;
case 12:
return data->field_16_0;
case 13:
return data->field_16_1;
case 14:
return data->field_16_2;
case 15:
return data->field_17_0;
case 16:
return data->field_17_1;
default:
return -1;
}
}
void ListMenuSetUnkIndicatorsStructField(u8 taskId, u8 field, s32 value)
{
struct UnkIndicatorsStruct *data = (struct UnkIndicatorsStruct *)gTasks[taskId].data;
switch (field)
{
case 0:
case 1:
data->field_4 = (void *)value;
break;
case 2:
data->field_C = value;
break;
case 3:
data->field_E = value;
break;
case 4:
data->field_10 = value;
break;
case 5:
data->field_11 = value;
break;
case 6:
data->field_12 = value;
break;
case 7:
data->field_13 = value;
break;
case 8:
data->field_14_0 = value;
break;
case 9:
data->field_14_1 = value;
break;
case 10:
data->field_15_0 = value;
break;
case 11:
data->field_15_1 = value;
break;
case 12:
data->field_16_0 = value;
break;
case 13:
data->field_16_1 = value;
break;
case 14:
data->field_16_2 = value;
break;
case 15:
data->field_17_0 = value;
break;
case 16:
data->field_17_1 = value;
break;
}
}
void sub_8107CD8(u8 palOffset, u16 speciesId)
{
LoadPalette(GetValidMonIconPalettePtr(speciesId), palOffset, 0x20);
}
void sub_8107CF8(u8 windowId, u16 speciesId, u32 personality, u16 x, u16 y)
{
BlitBitmapToWindow(windowId, GetMonIconPtr(speciesId, personality, 1), x, y, 32, 32);
}
void sub_8107D38(u8 palOffset, u8 palId)
{
const u16 *palette;
switch (palId)
{
case 0:
default:
palette = gFireRedMenuElements1_Pal;
break;
case 1:
palette = gFireRedMenuElements2_Pal;
break;
}
LoadPalette(palette, palOffset, 0x20);
}
void BlitMoveInfoIcon(u8 windowId, u8 iconId, u16 x, u16 y)
{
BlitBitmapRectToWindow(windowId, gFireRedMenuElements_Gfx + gMoveMenuInfoIcons[iconId].offset * 32, 0, 0, 128, 128, x, y, gMoveMenuInfoIcons[iconId].width, gMoveMenuInfoIcons[iconId].height);
}

659
src/menu_indicators.c Normal file
View File

@ -0,0 +1,659 @@
#include "global.h"
#include "malloc.h"
#include "task.h"
#include "decompress.h"
#include "palette.h"
#include "strings.h"
#include "sprite.h"
#include "trig.h"
#include "list_menu.h"
#include "menu_indicators.h"
struct ScrollIndicatorPair
{
u8 field_0;
u16 *scrollOffset;
u16 fullyUpThreshold;
u16 fullyDownThreshold;
u8 topSpriteId;
u8 bottomSpriteId;
u16 tileTag;
u16 palTag;
};
struct RedOutlineCursor
{
struct SubspriteTable subspriteTable;
struct Subsprite *subspritesPtr;
u8 spriteId;
u16 tileTag;
u16 palTag;
};
struct RedArrowCursor
{
u8 spriteId;
u16 tileTag;
u16 palTag;
};
struct ScrollIndicatorTemplate
{
u8 animNum:4;
u8 bounceDir:4;
u8 multiplier;
s16 frequency;
};
static EWRAM_DATA struct ScrollArrowsTemplate sTempScrollArrowTemplate = {0};
static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite);
static void SpriteCallback_RedArrowCursor(struct Sprite *sprite);
static void Task_ScrollIndicatorArrowPair(u8 taskId);
static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor);
static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y);
static void ListMenuRemoveRedArrowCursorObject(u8 taskId);
static const struct ScrollIndicatorTemplate sScrollIndicatorTemplates[] =
{
{
.animNum = 0,
.bounceDir = 0,
.multiplier = 2,
.frequency = 8,
},
{
.animNum = 1,
.bounceDir = 0,
.multiplier = 2,
.frequency = -8,
},
{
.animNum = 2,
.bounceDir = 1,
.multiplier = 2,
.frequency = 8,
},
{
.animNum = 3,
.bounceDir = 1,
.multiplier = 2,
.frequency = -8,
},
};
static const struct OamData sOamData_ScrollArrowIndicator =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.mosaic = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
.affineParam = 0,
};
static const union AnimCmd sSpriteAnim_ScrollArrowIndicator0[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_END,
};
static const union AnimCmd sSpriteAnim_ScrollArrowIndicator1[] =
{
ANIMCMD_FRAME(0, 30, 1, 0),
ANIMCMD_END,
};
static const union AnimCmd sSpriteAnim_ScrollArrowIndicator2[] =
{
ANIMCMD_FRAME(4, 30),
ANIMCMD_END,
};
static const union AnimCmd sSpriteAnim_ScrollArrowIndicator3[] =
{
ANIMCMD_FRAME(4, 30, 0, 1),
ANIMCMD_END,
};
static const union AnimCmd *const sSpriteAnimTable_ScrollArrowIndicator[] =
{
sSpriteAnim_ScrollArrowIndicator0,
sSpriteAnim_ScrollArrowIndicator1,
sSpriteAnim_ScrollArrowIndicator2,
sSpriteAnim_ScrollArrowIndicator3,
};
static const struct SpriteTemplate sSpriteTemplate_ScrollArrowIndicator =
{
.tileTag = 0,
.paletteTag = 0,
.oam = &sOamData_ScrollArrowIndicator,
.anims = sSpriteAnimTable_ScrollArrowIndicator,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallback_ScrollIndicatorArrow,
};
static const struct Subsprite sSubsprite_RedOutline1 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 0,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline2 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 1,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline3 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 2,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline4 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 3,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline5 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 4,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline6 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 5,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline7 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 6,
.priority = 0,
};
static const struct Subsprite sSubsprite_RedOutline8 =
{
.x = 0,
.y = 0,
.shape = SPRITE_SHAPE(8x8),
.size = SPRITE_SIZE(8x8),
.tileOffset = 7,
.priority = 0,
};
static const struct OamData sOamData_RedArrowCursor =
{
.y = 0,
.affineMode = 0,
.objMode = 0,
.mosaic = 0,
.bpp = 0,
.shape = SPRITE_SHAPE(16x16),
.x = 0,
.matrixNum = 0,
.size = SPRITE_SIZE(16x16),
.tileNum = 0,
.priority = 0,
.paletteNum = 0,
.affineParam = 0,
};
static const union AnimCmd sSpriteAnim_RedArrowCursor[] =
{
ANIMCMD_FRAME(0, 30),
ANIMCMD_END,
};
static const union AnimCmd *const sSpriteAnimTable_RedArrowCursor[] = { sSpriteAnim_RedArrowCursor };
static const struct SpriteTemplate sSpriteTemplate_RedArrowCursor =
{
.tileTag = 0,
.paletteTag = 0,
.oam = &sOamData_RedArrowCursor,
.anims = sSpriteAnimTable_RedArrowCursor,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallback_RedArrowCursor,
};
static const u16 sRedArrowPal[] = INCBIN_U16("graphics/interface/red_arrow.gbapal");
static const u32 sRedArrowOtherGfx[] = INCBIN_U32("graphics/interface/red_arrow_other.4bpp.lz");
static const u32 sSelectorOutlineGfx[] = INCBIN_U32("graphics/interface/selector_outline.4bpp.lz");
static const u32 sRedArrowGfx[] = INCBIN_U32("graphics/interface/red_arrow.4bpp.lz");
#define tState data[0]
#define tAnimNum data[1]
#define tBounceDir data[2]
#define tMultiplier data[3]
#define tFrequency data[4]
#define tSinePos data[5]
static void SpriteCallback_ScrollIndicatorArrow(struct Sprite *sprite)
{
s32 multiplier;
switch (sprite->tState)
{
case 0:
StartSpriteAnim(sprite, sprite->tAnimNum);
sprite->tState++;
break;
case 1:
switch (sprite->tBounceDir)
{
case 0:
multiplier = sprite->tMultiplier;
sprite->pos2.x = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256;
break;
case 1:
multiplier = sprite->tMultiplier;
sprite->pos2.y = (gSineTable[(u8)(sprite->tSinePos)] * multiplier) / 256;
break;
}
sprite->tSinePos += sprite->tFrequency;
break;
}
}
static u8 AddScrollIndicatorArrowObject(u8 arrowDir, u8 x, u8 y, u16 tileTag, u16 palTag)
{
u8 spriteId;
struct SpriteTemplate spriteTemplate;
spriteTemplate = sSpriteTemplate_ScrollArrowIndicator;
spriteTemplate.tileTag = tileTag;
spriteTemplate.paletteTag = palTag;
spriteId = CreateSprite(&spriteTemplate, x, y, 0);
gSprites[spriteId].invisible = TRUE;
gSprites[spriteId].tState = 0;
gSprites[spriteId].tAnimNum = sScrollIndicatorTemplates[arrowDir].animNum;
gSprites[spriteId].tBounceDir = sScrollIndicatorTemplates[arrowDir].bounceDir;
gSprites[spriteId].tMultiplier = sScrollIndicatorTemplates[arrowDir].multiplier;
gSprites[spriteId].tFrequency = sScrollIndicatorTemplates[arrowDir].frequency;
gSprites[spriteId].tSinePos = 0;
return spriteId;
}
#undef tState
#undef tAnimNum
#undef tBounceDir
#undef tMultiplier
#undef tFrequency
#undef tSinePos
u8 AddScrollIndicatorArrowPair(const struct ScrollArrowsTemplate *arrowInfo, u16 *scrollOffset)
{
struct CompressedSpriteSheet spriteSheet;
struct SpritePalette spritePal;
struct ScrollIndicatorPair *data;
u8 taskId;
spriteSheet.data = sRedArrowOtherGfx;
spriteSheet.size = 0x100;
spriteSheet.tag = arrowInfo->tileTag;
LoadCompressedSpriteSheet(&spriteSheet);
if (arrowInfo->palTag == SPRITE_INVALID_TAG)
{
LoadPalette(sRedArrowPal, (16 * arrowInfo->palNum) + 0x100, 0x20);
}
else
{
spritePal.data = sRedArrowPal;
spritePal.tag = arrowInfo->palTag;
LoadSpritePalette(&spritePal);
}
taskId = CreateTask(Task_ScrollIndicatorArrowPair, 0);
data = (struct ScrollIndicatorPair *)gTasks[taskId].data;
data->field_0 = 0;
data->scrollOffset = scrollOffset;
data->fullyUpThreshold = arrowInfo->fullyUpThreshold;
data->fullyDownThreshold = arrowInfo->fullyDownThreshold;
data->tileTag = arrowInfo->tileTag;
data->palTag = arrowInfo->palTag;
data->topSpriteId = AddScrollIndicatorArrowObject(arrowInfo->firstArrowType, arrowInfo->firstX, arrowInfo->firstY, arrowInfo->tileTag, arrowInfo->palTag);
data->bottomSpriteId = AddScrollIndicatorArrowObject(arrowInfo->secondArrowType, arrowInfo->secondX, arrowInfo->secondY, arrowInfo->tileTag, arrowInfo->palTag);
if (arrowInfo->palTag == SPRITE_INVALID_TAG)
{
gSprites[data->topSpriteId].oam.paletteNum = arrowInfo->palNum;
gSprites[data->bottomSpriteId].oam.paletteNum = arrowInfo->palNum;
}
return taskId;
}
u8 AddScrollIndicatorArrowPairParameterized(u32 arrowType, s32 commonPos, s32 firstPos, s32 secondPos, s32 fullyDownThreshold, s32 tileTag, s32 palTag, u16 *scrollOffset)
{
if (arrowType == SCROLL_ARROW_UP || arrowType == SCROLL_ARROW_DOWN)
{
sTempScrollArrowTemplate.firstArrowType = SCROLL_ARROW_UP;
sTempScrollArrowTemplate.firstX = commonPos;
sTempScrollArrowTemplate.firstY = firstPos;
sTempScrollArrowTemplate.secondArrowType = SCROLL_ARROW_DOWN;
sTempScrollArrowTemplate.secondX = commonPos;
sTempScrollArrowTemplate.secondY = secondPos;
}
else
{
sTempScrollArrowTemplate.firstArrowType = SCROLL_ARROW_LEFT;
sTempScrollArrowTemplate.firstX = firstPos;
sTempScrollArrowTemplate.firstY = commonPos;
sTempScrollArrowTemplate.secondArrowType = SCROLL_ARROW_RIGHT;
sTempScrollArrowTemplate.secondX = secondPos;
sTempScrollArrowTemplate.secondY = commonPos;
}
sTempScrollArrowTemplate.fullyUpThreshold = 0;
sTempScrollArrowTemplate.fullyDownThreshold = fullyDownThreshold;
sTempScrollArrowTemplate.tileTag = tileTag;
sTempScrollArrowTemplate.palTag = palTag;
sTempScrollArrowTemplate.palNum = 0;
return AddScrollIndicatorArrowPair(&sTempScrollArrowTemplate, scrollOffset);
}
static void Task_ScrollIndicatorArrowPair(u8 taskId)
{
struct ScrollIndicatorPair *data = (struct ScrollIndicatorPair *)gTasks[taskId].data;
u16 currItem = (*data->scrollOffset);
if (currItem == data->fullyUpThreshold)
gSprites[data->topSpriteId].invisible = TRUE;
else
gSprites[data->topSpriteId].invisible = FALSE;
if (currItem == data->fullyDownThreshold)
gSprites[data->bottomSpriteId].invisible = TRUE;
else
gSprites[data->bottomSpriteId].invisible = FALSE;
}
void RemoveScrollIndicatorArrowPair(u8 taskId)
{
struct ScrollIndicatorPair *data = (struct ScrollIndicatorPair *)gTasks[taskId].data;
if (data->tileTag != SPRITE_INVALID_TAG)
FreeSpriteTilesByTag(data->tileTag);
if (data->palTag != SPRITE_INVALID_TAG)
FreeSpritePaletteByTag(data->palTag);
DestroySprite(&gSprites[data->topSpriteId]);
DestroySprite(&gSprites[data->bottomSpriteId]);
DestroyTask(taskId);
}
u8 ListMenuAddCursorObjectInternal(struct CursorStruct *cursor, u32 cursorKind)
{
switch (cursorKind)
{
case 0:
default:
return ListMenuAddRedOutlineCursorObject(cursor);
case 1:
return ListMenuAddRedArrowCursorObject(cursor);
}
}
void ListMenuUpdateCursorObject(u8 taskId, u16 x, u16 y, u32 cursorKind)
{
switch (cursorKind)
{
case 0:
ListMenuUpdateRedOutlineCursorObject(taskId, x, y);
break;
case 1:
ListMenuUpdateRedArrowCursorObject(taskId, x, y);
break;
}
}
void ListMenuRemoveCursorObject(u8 taskId, u32 cursorKind)
{
switch (cursorKind)
{
case 0:
ListMenuRemoveRedOutlineCursorObject(taskId);
break;
case 1:
ListMenuRemoveRedArrowCursorObject(taskId);
break;
}
}
void Task_RedOutlineCursor(u8 taskId)
{
}
u8 ListMenuGetRedOutlineCursorSpriteCount(u16 rowWidth, u16 rowHeight)
{
s32 i, count = 4;
if (rowWidth > 16)
for (i = 8; i < (rowWidth - 8); i += 8)
count += 2;
if (rowHeight > 16)
for (i = 8; i < (rowHeight - 8); i += 8)
count += 2;
return count;
}
void ListMenuSetUpRedOutlineCursorSpriteOamTable(u16 rowWidth, u16 rowHeight, struct Subsprite *subsprites)
{
s32 i, j, id = 0;
subsprites[id] = sSubsprite_RedOutline1;
subsprites[id].x = 136;
subsprites[id].y = 136;
id++;
subsprites[id] = sSubsprite_RedOutline2;
subsprites[id].x = rowWidth + 128;
subsprites[id].y = 136;
id++;
subsprites[id] = sSubsprite_RedOutline7;
subsprites[id].x = 136;
subsprites[id].y = rowHeight + 128;
id++;
subsprites[id] = sSubsprite_RedOutline8;
subsprites[id].x = rowWidth + 128;
subsprites[id].y = rowHeight + 128;
id++;
if (rowWidth > 16)
{
for (i = 8; i < rowWidth - 8; i += 8)
{
subsprites[id] = sSubsprite_RedOutline3;
subsprites[id].x = i - 120;
subsprites[id].y = 136;
id++;
subsprites[id] = sSubsprite_RedOutline6;
subsprites[id].x = i - 120;
subsprites[id].y = rowHeight + 128;
id++;
}
}
if (rowHeight > 16)
{
for (j = 8; j < rowHeight - 8; j += 8)
{
subsprites[id] = sSubsprite_RedOutline4;
subsprites[id].x = 136;
subsprites[id].y = j - 120;
id++;
subsprites[id] = sSubsprite_RedOutline5;
subsprites[id].x = rowWidth + 128;
subsprites[id].y = j - 120;
id++;
}
}
}
u8 ListMenuAddRedOutlineCursorObject(struct CursorStruct *cursor)
{
struct CompressedSpriteSheet spriteSheet;
struct SpritePalette spritePal;
struct RedOutlineCursor *data;
struct SpriteTemplate spriteTemplate;
u8 taskId;
spriteSheet.data = sSelectorOutlineGfx;
spriteSheet.size = 0x100;
spriteSheet.tag = cursor->tileTag;
LoadCompressedSpriteSheet(&spriteSheet);
if (cursor->palTag == SPRITE_INVALID_TAG)
{
LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20);
}
else
{
spritePal.data = sRedArrowPal;
spritePal.tag = cursor->palTag;
LoadSpritePalette(&spritePal);
}
taskId = CreateTask(Task_RedOutlineCursor, 0);
data = (struct RedOutlineCursor *)gTasks[taskId].data;
data->tileTag = cursor->tileTag;
data->palTag = cursor->palTag;
data->subspriteTable.subspriteCount = ListMenuGetRedOutlineCursorSpriteCount(cursor->rowWidth, cursor->rowHeight);
data->subspriteTable.subsprites = data->subspritesPtr = Alloc(data->subspriteTable.subspriteCount * 4);
ListMenuSetUpRedOutlineCursorSpriteOamTable(cursor->rowWidth, cursor->rowHeight, data->subspritesPtr);
spriteTemplate = gDummySpriteTemplate;
spriteTemplate.tileTag = cursor->tileTag;
spriteTemplate.paletteTag = cursor->palTag;
data->spriteId = CreateSprite(&spriteTemplate, cursor->left + 120, cursor->top + 120, 0);
SetSubspriteTables(&gSprites[data->spriteId], &data->subspriteTable);
gSprites[data->spriteId].oam.priority = 0;
gSprites[data->spriteId].subpriority = 0;
gSprites[data->spriteId].subspriteTableNum = 0;
if (cursor->palTag == SPRITE_INVALID_TAG)
gSprites[data->spriteId].oam.paletteNum = cursor->palNum;
return taskId;
}
void ListMenuUpdateRedOutlineCursorObject(u8 taskId, u16 x, u16 y)
{
struct RedOutlineCursor *data = (struct RedOutlineCursor *)gTasks[taskId].data;
gSprites[data->spriteId].pos1.x = x + 120;
gSprites[data->spriteId].pos1.y = y + 120;
}
void ListMenuRemoveRedOutlineCursorObject(u8 taskId)
{
struct RedOutlineCursor *data = (struct RedOutlineCursor *)gTasks[taskId].data;
Free(data->subspritesPtr);
if (data->tileTag != SPRITE_INVALID_TAG)
FreeSpriteTilesByTag(data->tileTag);
if (data->palTag != SPRITE_INVALID_TAG)
FreeSpritePaletteByTag(data->palTag);
DestroySprite(&gSprites[data->spriteId]);
DestroyTask(taskId);
}
static void SpriteCallback_RedArrowCursor(struct Sprite *sprite)
{
sprite->pos2.x = gSineTable[(u8)(sprite->data[0])] / 64;
sprite->data[0] += 8;
}
static void Task_RedArrowCursor(u8 taskId)
{
}
static u8 ListMenuAddRedArrowCursorObject(struct CursorStruct *cursor)
{
struct CompressedSpriteSheet spriteSheet;
struct SpritePalette spritePal;
struct RedArrowCursor *data;
struct SpriteTemplate spriteTemplate;
u8 taskId;
spriteSheet.data = sRedArrowGfx;
spriteSheet.size = 0x80;
spriteSheet.tag = cursor->tileTag;
LoadCompressedSpriteSheet(&spriteSheet);
if (cursor->palTag == SPRITE_INVALID_TAG)
{
LoadPalette(sRedArrowPal, (16 * cursor->palNum) + 0x100, 0x20);
}
else
{
spritePal.data = sRedArrowPal;
spritePal.tag = cursor->palTag;
LoadSpritePalette(&spritePal);
}
taskId = CreateTask(Task_RedArrowCursor, 0);
data = (struct RedArrowCursor *)gTasks[taskId].data;
data->tileTag = cursor->tileTag;
data->palTag = cursor->palTag;
spriteTemplate = sSpriteTemplate_RedArrowCursor;
spriteTemplate.tileTag = cursor->tileTag;
spriteTemplate.paletteTag = cursor->palTag;
data->spriteId = CreateSprite(&spriteTemplate, cursor->left, cursor->top, 0);
gSprites[data->spriteId].pos2.x = 8;
gSprites[data->spriteId].pos2.y = 8;
if (cursor->palTag == SPRITE_INVALID_TAG)
gSprites[data->spriteId].oam.paletteNum = cursor->palNum;
return taskId;
}
static void ListMenuUpdateRedArrowCursorObject(u8 taskId, u16 x, u16 y)
{
struct RedArrowCursor *data = (struct RedArrowCursor *)gTasks[taskId].data;
gSprites[data->spriteId].pos1.x = x;
gSprites[data->spriteId].pos1.y = y;
}
static void ListMenuRemoveRedArrowCursorObject(u8 taskId)
{
struct RedArrowCursor *data = (struct RedArrowCursor *)gTasks[taskId].data;
if (data->tileTag != SPRITE_INVALID_TAG)
FreeSpriteTilesByTag(data->tileTag);
if (data->palTag != SPRITE_INVALID_TAG)
FreeSpritePaletteByTag(data->palTag);
DestroySprite(&gSprites[data->spriteId]);
DestroyTask(taskId);
}

View File

@ -97,7 +97,7 @@ const u16 gUnknown_8467E74[] = INCBIN_U16("data/graphics/mevent/pal_467E74.gbapa
const u16 gUnknown_8467E94[] = INCBIN_U16("data/graphics/mevent/pal_467E94.gbapal");
const u16 gUnknown_8467EB4[] = INCBIN_U16("data/graphics/mevent/pal_467EB4.gbapal");
const u16 gUnknown_8467ED4[] = INCBIN_U16("data/graphics/mevent/pal_467ED4.gbapal");
const u8 gUnknown_8467EF4[] = INCBIN_U8("data/graphics/mevent/gfx_467EF4.4bpp.lz");
const u32 gUnknown_8467EF4[] = INCBIN_U32("data/graphics/mevent/gfx_467EF4.4bpp.lz");
const struct CompressedSpriteSheet gUnknown_8467F58 = {
gUnknown_8467EF4, 0x100, 0x8000

View File

@ -5423,7 +5423,7 @@ void PlayMapChosenOrBattleBGM(u16 songId)
PlayNewMapMusic(GetMUS_ForBattle());
}
const u8 *GetMonFrontSpritePal(struct Pokemon *mon)
const u32 *GetMonFrontSpritePal(struct Pokemon *mon)
{
u16 species = GetMonData(mon, MON_DATA_SPECIES2, 0);
u32 otId = GetMonData(mon, MON_DATA_OT_ID, 0);
@ -5431,7 +5431,7 @@ const u8 *GetMonFrontSpritePal(struct Pokemon *mon)
return GetFrontSpritePalFromSpeciesAndPersonality(species, otId, personality);
}
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)
const u32 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality)
{
u32 shinyValue;

View File

@ -11,7 +11,7 @@
#include "menu_helpers.h"
#include "window.h"
#include "text_window.h"
#include "unk_text_util.h"
#include "dynamic_placeholder_text_util.h"
#include "event_data.h"
#include "event_scripts.h"
#include "string_util.h"
@ -996,7 +996,7 @@ void sub_8111368(void)
else
{
sub_8111274(gUnknown_203ADF8, 1);
warp_in();
WarpIntoMap();
gFieldCallback2 = sub_8111000;
SetMainCallback2(sub_805726C);
}
@ -3656,9 +3656,9 @@ void QuestLog_AutoGetSpeciesName(u16 a0, u8 * a1, u8 a2)
else
{
if (a0 != SPECIES_EGG)
UnkTextUtil_SetPtrI(a2, gSpeciesNames[a0]);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gSpeciesNames[a0]);
else
UnkTextUtil_SetPtrI(a2, gText_EggNickname);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(a2, gText_EggNickname);
}
}
@ -3949,14 +3949,14 @@ u16 * sub_81144EC(u16 * a0, const u16 * a1)
const u16 * sub_8114518(const u16 * a0)
{
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
memset(gStringVar1, EOS, 8);
memcpy(gStringVar1, (const u8 *)a0 + 5, 7);
sub_8115834(gStringVar1);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A422);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A422);
a0 += 6;
return a0;
}
@ -3973,14 +3973,14 @@ u16 * sub_8114578(u16 * a0, const u16 * a1)
const u16 * sub_81145A4(const u16 * a0)
{
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
memset(gStringVar1, EOS, 8);
memcpy(gStringVar1, (const u8 *)a0 + 5, 7);
sub_8115834(gStringVar1);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A477);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_8456AE4[((const u8 *)a0)[4]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A477);
a0 += 6;
return a0;
}
@ -3999,7 +3999,7 @@ u16 * sub_8114604(u16 * a0, const u16 * a1)
const u16 * sub_811464C(const u16 * a0)
{
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
memset(gStringVar1, EOS, 8);
memset(gStringVar2, EOS, 8);
@ -4010,12 +4010,12 @@ const u16 * sub_811464C(const u16 * a0)
sub_8115834(gStringVar1);
sub_8115834(gStringVar2);
sub_8115834(gStringVar3);
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gStringVar1);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_SetPtrI(3, gStringVar3);
UnkTextUtil_SetPtrI(4, gUnknown_8456AE4[((const u8 *)a0)[4]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A4C6);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456AE4[((const u8 *)a0)[4]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A4C6);
a0 += 13;
return a0;
}
@ -4111,12 +4111,12 @@ const u16 * sub_81148BC(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(20, a0);
boxIdxs = (const u8 *)a0 + 4;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_SetPtrI(2, GetBoxNamePtr(boxIdxs[1]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1]));
QuestLog_AutoGetSpeciesName(a0[1], NULL, 3);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A566);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A566);
return a0 + 3;
}
@ -4136,11 +4136,11 @@ const u16 * sub_8114944(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(21, a0);
boxIdxs = (const u8 *)a0 + 4;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
QuestLog_AutoGetSpeciesName(a0[1], NULL, 2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A5D9);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5D9);
return a0 + 3;
}
@ -4172,11 +4172,11 @@ const u16 * sub_81149D0(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(22, a0);
boxIdxs = (const u8 *)a0 + 4;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
QuestLog_AutoGetSpeciesName(a0[1], NULL, 2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A60A);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A60A);
return a0 + 3;
}
@ -4199,11 +4199,11 @@ const u16 * sub_8114A4C(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(23, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_SetPtrI(2, GetBoxNamePtr(boxIdxs[1]));
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A59C);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, GetBoxNamePtr(boxIdxs[1]));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A59C);
return (const u16 *)boxIdxs + 1;
}
@ -4223,10 +4223,10 @@ const u16 * sub_8114AC8(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(24, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A5FA);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A5FA);
return (const u16 *)boxIdxs + 1;
}
@ -4246,10 +4246,10 @@ const u16 * sub_8114B34(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(25, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(boxIdxs[0]));
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A632);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A632);
return (const u16 *)boxIdxs + 1;
}
@ -4269,10 +4269,10 @@ const u16 * sub_8114BA0(const u16 * a0)
const u8 * boxIdxs;
a0 = sub_8113E88(26, a0);
boxIdxs = (const u8 *)a0 + 2;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
QuestLog_AutoGetSpeciesName(a0[0], NULL, 0);
UnkTextUtil_SetPtrI(1, GetBoxNamePtr(boxIdxs[0]));
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A64F);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(boxIdxs[0]));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A64F);
return (const u16 *)boxIdxs + 1;
}
@ -4290,13 +4290,13 @@ u16 * sub_8114BE4(u16 * a0, const u16 * a1)
const u16 * sub_8114C0C(const u16 * a0)
{
const u16 *r4 = sub_8113E88(27, a0);
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, GetBoxNamePtr(*((const u8 *)r4 + 0)));
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, GetBoxNamePtr(*((const u8 *)r4 + 0)));
if (*((const u8 *)r4 + 0) == *((const u8 *)r4 + 1))
UnkTextUtil_SetPtrI(1, gUnknown_841A694);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gUnknown_841A694);
else
UnkTextUtil_SetPtrI(1, GetBoxNamePtr(*((const u8 *)r4 + 1)));
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A66E);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetBoxNamePtr(*((const u8 *)r4 + 1)));
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A66E);
return r4 + 1;
}
@ -4358,14 +4358,14 @@ const u16 * sub_8114D68(const u16 * a0)
const u8 * r6;
a0 = sub_8113E88(30, a0);
r6 = (const u8 *)a0 + 6;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r6[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gTrainers[a0[2]].trainerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[a0[2]].trainerName);
QuestLog_AutoGetSpeciesName(a0[0], 0, 2);
QuestLog_AutoGetSpeciesName(a0[1], 0, 3);
UnkTextUtil_SetPtrI(4, gUnknown_8456ACC[r6[1]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF0C);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF0C);
return a0 + 4;
}
@ -4399,43 +4399,43 @@ const u16 * sub_8114E68(const u16 * a0)
return NULL;
r6 = (const u8 *)a0 + 8;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r6[2]);
UnkTextUtil_SetPtrI(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
QuestLog_AutoGetSpeciesName(a0[2], NULL, 1);
ConvertIntToDecimalStringN(gStringVar2, r6[0], STR_CONV_MODE_LEFT_ALIGN, 3);
UnkTextUtil_SetPtrI(2, gStringVar2);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
QuestLog_AutoGetSpeciesName(a0[3], NULL, 3);
ConvertIntToDecimalStringN(gStringVar3, r6[1], STR_CONV_MODE_LEFT_ALIGN, 3);
UnkTextUtil_SetPtrI(4, gStringVar3);
UnkTextUtil_SetPtrI(5, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar3);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, gSaveBlock2Ptr->playerName);
if (r6[0] == 0)
{
if (r6[1] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA01);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA01);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA2B);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA2B);
}
else if (r6[1] == 0)
{
if (r6[0] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9A9);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9A9);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A9D4);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A9D4);
}
else if (r6[0] == 1)
{
if (r6[1] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AA76);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AA76);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAAA);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAAA);
}
else
{
if (r6[1] == 1)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AAEC);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AAEC);
else
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AB29);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AB29);
}
return (const u16 *)(r6 + 4);
}
@ -4464,12 +4464,12 @@ const u16 * sub_811500C(const u16 * a0)
const u8 * r5;
a0 = sub_8113E88(32, a0);
r5 = (const u8 *)a0 + 6;
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, gTrainers[a0[2]].trainerName);
DynamicPlaceholderTextUtil_Reset();
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gTrainers[a0[2]].trainerName);
QuestLog_AutoGetSpeciesName(a0[0], NULL, 1);
QuestLog_AutoGetSpeciesName(a0[1], NULL, 2);
UnkTextUtil_SetPtrI(3, gUnknown_8456ACC[r5[1]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF3E);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_8456ACC[r5[1]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF3E);
return a0 + 4;
}
@ -4493,25 +4493,25 @@ const u16 * sub_81150CC(const u16 * a0)
return NULL;
r5 = (const u8 *)a0 + 8;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
switch (gUnknown_203B044.unk_2)
{
case 0:
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gSaveBlock1Ptr->rivalName);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A2E1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gSaveBlock1Ptr->rivalName);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A2E1);
break;
case 1:
UnkTextUtil_SetPtrI(0, gSaveBlock1Ptr->rivalName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock1Ptr->rivalName);
QuestLog_AutoGetSpeciesName(a0[2], NULL, 1);
UnkTextUtil_SetPtrI(2, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gSaveBlock2Ptr->playerName);
QuestLog_AutoGetSpeciesName(a0[3], NULL, 3);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A312);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A312);
break;
case 2:
UnkTextUtil_SetPtrI(0, gUnknown_8456AD8[r5[0]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A349);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_8456AD8[r5[0]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A349);
break;
}
return (const u16 *)(r5 + 2);
@ -4527,21 +4527,21 @@ const u16 * sub_81151DC(const u16 * a0)
{
const u16 * r5 = sub_8113E88(34, a0);
const u8 * r6 = (const u8 *)r5 + 6;
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r6[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
if (
gTrainers[r5[2]].trainerClass == 0x51
|| gTrainers[r5[2]].trainerClass == 0x59
|| gTrainers[r5[2]].trainerClass == 0x5A
)
UnkTextUtil_SetPtrI(1, GetExpandedPlaceholder(6));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, GetExpandedPlaceholder(6));
else
UnkTextUtil_SetPtrI(1, gTrainers[r5[2]].trainerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gTrainers[r5[2]].trainerName);
QuestLog_AutoGetSpeciesName(r5[0], NULL, 2);
QuestLog_AutoGetSpeciesName(r5[1], NULL, 3);
UnkTextUtil_SetPtrI(4, gUnknown_8456ACC[r6[1]]);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841AF6D);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gUnknown_8456ACC[r6[1]]);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841AF6D);
return (const u16 *)(r6 + 2);
}
@ -4814,17 +4814,17 @@ const u16 * sub_8115518(const u16 * a0)
const u16 * r4 = sub_8113E88(37, a0);
const u8 * r7 = (const u8 *)r4 + 8;
u32 r6 = (r4[2] << 16) + r4[3];
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r7[0]);
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, ItemId_GetName(r4[0]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r4[0]));
if (r4[1] < 2)
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A7DD);
else
{
ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A810);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A810);
}
return (const u16 *)(r7 + 2);
}
@ -4847,30 +4847,30 @@ const u16 * sub_81155E0(const u16 * a0) {
const u16 *r5 = sub_8113E88(38, a0);
const u8 *r7 = (const u8 *) r5 + 8;
u32 r6 = (r5[2] << 16) + r5[3];
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
sub_80C4DF8(gStringVar1, r7[0]);
if (r7[1] == 0) {
UnkTextUtil_SetPtrI(0, gSaveBlock2Ptr->playerName);
UnkTextUtil_SetPtrI(1, gStringVar1);
UnkTextUtil_SetPtrI(2, ItemId_GetName(r5[0]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, ItemId_GetName(r5[0]));
if (r5[1] == 1)
UnkTextUtil_SetPtrI(3, gUnknown_841A8D4);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gUnknown_841A8D4);
else
{
ConvertIntToDecimalStringN(gStringVar2, r5[1], STR_CONV_MODE_LEFT_ALIGN, 3);
UnkTextUtil_SetPtrI(4, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar3, gUnknown_841A8DD);
UnkTextUtil_SetPtrI(3, gStringVar3);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, gStringVar2);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar3, gUnknown_841A8DD);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, gStringVar3);
}
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A858);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A858);
}
else
{
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, ItemId_GetName(r5[0]));
DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, ItemId_GetName(r5[0]));
ConvertIntToDecimalStringN(gStringVar2, r6, STR_CONV_MODE_LEFT_ALIGN, 6);
UnkTextUtil_SetPtrI(2, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_841A896);
DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gStringVar2);
DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A896);
}
return (const u16 *)(r7 + 2);
}

80
src/safari_zone.c Normal file
View File

@ -0,0 +1,80 @@
#include "global.h"
#include "battle.h"
#include "event_scripts.h"
#include "overworld.h"
#include "battle.h"
#include "script.h"
#include "event_data.h"
#include "field_screen_effect.h"
EWRAM_DATA u8 gNumSafariBalls = 0;
EWRAM_DATA u16 gSafariZoneStepCounter = 0;
bool32 GetSafariZoneFlag(void)
{
return FlagGet(FLAG_SYS_SAFARI_MODE);
}
void SetSafariZoneFlag(void)
{
FlagSet(FLAG_SYS_SAFARI_MODE);
}
void ResetSafariZoneFlag(void)
{
FlagClear(FLAG_SYS_SAFARI_MODE);
}
void EnterSafariMode(void)
{
IncrementGameStat(GAME_STAT_ENTERED_SAFARI_ZONE);
SetSafariZoneFlag();
gNumSafariBalls = 30;
gSafariZoneStepCounter = 600;
}
void ExitSafariMode(void)
{
ResetSafariZoneFlag();
gNumSafariBalls = 0;
gSafariZoneStepCounter = 0;
}
bool8 SafariZoneTakeStep(void)
{
if (GetSafariZoneFlag() == FALSE)
return FALSE;
gSafariZoneStepCounter--;
if (gSafariZoneStepCounter == 0)
{
ScriptContext1_SetupScript(EventScript_SafariTimesUp);
return TRUE;
}
return FALSE;
}
void SafariZoneRetirePrompt(void)
{
ScriptContext1_SetupScript(EventScript_SafariRetire);
}
void CB2_EndSafariBattle(void)
{
if (gNumSafariBalls != 0)
{
SetMainCallback2(CB2_ReturnToField);
}
else if (gBattleOutcome == B_OUTCOME_NO_SAFARI_BALLS)
{
ScriptContext2_RunNewScript(EventScript_SafariWarpOut);
WarpIntoMap();
gFieldCallback = sub_807E3EC;
SetMainCallback2(CB2_LoadMap);
}
else if (gBattleOutcome == B_OUTCOME_CAUGHT)
{
ScriptContext1_SetupScript(EventScript_SafariOutOfBalls);
ScriptContext1_Stop();
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
}

View File

@ -1984,7 +1984,7 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
{
u8 slotMachineIndex = VarGet(ScriptReadHalfword(ctx));
PlaySlotMachine(slotMachineIndex, c2_exit_to_overworld_1_continue_scripts_restart_music);
PlaySlotMachine(slotMachineIndex, CB2_ReturnToFieldContinueScriptPlayMapMusic);
ScriptContext1_Stop();
return TRUE;
}

View File

@ -323,8 +323,8 @@ static void Task_SeaGallop_3(void)
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
gFieldCallback = sub_807DF64;
warp_in();
SetMainCallback2(sub_805671C);
WarpIntoMap();
SetMainCallback2(CB2_LoadMap);
ResetInitialPlayerAvatarState();
FreeFerrySpriteResources();
Free(sBg3TilemapBuffer);

View File

@ -734,7 +734,7 @@ static void TeachyTvOptionListController(u8 taskId)
TeachyTvBg2AnimController();
if (!gPaletteFade.active)
{
input = ListMenuHandleInput(data[0]);
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
if ((JOY_NEW(SELECT_BUTTON) && sStaticResources.callback != ReturnToBagFromKeyItem))
{
@ -754,7 +754,7 @@ static void TeachyTvOptionListController(u8 taskId)
default:
PlaySE(SE_SELECT);
sStaticResources.whichScript = input;
DestroyListMenu(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sStaticResources.scrollOffset, &sStaticResources.selectedRow);
TeachyTvClearWindowRegs();
ClearWindowTilemap(1);
ScheduleBgCopyTilemapToVram(0);

View File

@ -18,7 +18,7 @@ extern u8 GetKeypadIconWidth(u8 keypadIconId);
extern void CopyWindowToVram(u8 windowId, u8 mode);
extern s32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
extern void PlaySE(u16 songNum);
extern u8* UnkTextUtil_GetPtrI(u8 a1);
extern u8* DynamicPlaceholderTextUtil_GetPlaceholderPtr(u8 a1);
TextFlags gTextFlags;
@ -1544,7 +1544,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
}
case 0xF7:
if (bufferPointer == NULL)
bufferPointer = UnkTextUtil_GetPtrI(*++str);
bufferPointer = DynamicPlaceholderTextUtil_GetPlaceholderPtr(*++str);
while (*bufferPointer != 0xFF)
{
glyphWidth = func(*bufferPointer++, isJapanese);

View File

@ -716,7 +716,7 @@ static void Task_FadeOutAndCloseTMCase(u8 taskId)
if (!gPaletteFade.active)
{
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
if (sTMCaseDynamicResources->savedCallback != NULL)
SetMainCallback2(sTMCaseDynamicResources->savedCallback);
else
@ -736,7 +736,7 @@ static void Task_TMCaseMain(u8 taskId)
{
if (sub_80BF72C() != TRUE)
{
input = ListMenuHandleInput(data[0]);
input = ListMenu_ProcessInput(data[0]);
ListMenuGetScrollAndRow(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
if (JOY_NEW(SELECT_BUTTON) && sTMCaseStaticResources.unk_05 == 1)
{
@ -909,7 +909,7 @@ static void Subtask_CloseContextMenuAndReturnToMain(u8 taskId)
{
s16 * data = gTasks[taskId].data;
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
data[0] = ListMenuInit(&gMultiuseListMenuTemplate, sTMCaseStaticResources.scrollOffset, sTMCaseStaticResources.selectedRow);
PrintListMenuCursorByID_WithColorIdx(data[0], 1);
ClearMenuWindow_BorderThickness2(6, 0);
@ -1108,7 +1108,7 @@ static void Task_DoSaleOfTMs(u8 taskId)
RemoveBagItem(gSpecialVar_ItemId, data[8]);
AddMoney(&gSaveBlock1Ptr->money, itemid_get_market_price(gSpecialVar_ItemId) / 2 * data[8]);
sub_809C09C(gSpecialVar_ItemId, data[8], 2);
DestroyListMenu(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
DestroyListMenuTask(data[0], &sTMCaseStaticResources.scrollOffset, &sTMCaseStaticResources.selectedRow);
TMCaseSetup_GetTMCount();
TMCaseSetup_InitListMenuPositions();
InitTMCaseListMenuItems();
@ -1204,7 +1204,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
gMain.newKeys = 0;
gMain.newAndRepeatedKeys = DPAD_DOWN;
ListMenuHandleInput(data[0]);
ListMenu_ProcessInput(data[0]);
}
data[9]++;
if (data[9] > 0x65)
@ -1223,7 +1223,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
gMain.newKeys = 0;
gMain.newAndRepeatedKeys = DPAD_UP;
ListMenuHandleInput(data[0]);
ListMenu_ProcessInput(data[0]);
}
data[9]++;
if (data[9] > 0x65)
@ -1269,7 +1269,7 @@ static void Task_TMCaseDude_Playback(u8 taskId)
{
memcpy(gSaveBlock1Ptr->bagPocket_TMHM, sPokeDudePackBackup->bagPocket_TMHM, sizeof(gSaveBlock1Ptr->bagPocket_TMHM));
memcpy(gSaveBlock1Ptr->bagPocket_KeyItems, sPokeDudePackBackup->bagPocket_KeyItems, sizeof(gSaveBlock1Ptr->bagPocket_KeyItems));
DestroyListMenu(data[0], NULL, NULL);
DestroyListMenuTask(data[0], NULL, NULL);
sTMCaseStaticResources.selectedRow = sPokeDudePackBackup->unk_160;
sTMCaseStaticResources.scrollOffset = sPokeDudePackBackup->unk_162;
Free(sPokeDudePackBackup);
@ -1344,10 +1344,10 @@ static void PrintStringTMCaseOnWindow3(void)
static void DrawMoveInfoUIMarkers(void)
{
blit_move_info_icon(4, 19, 0, 0);
blit_move_info_icon(4, 20, 0, 12);
blit_move_info_icon(4, 21, 0, 24);
blit_move_info_icon(4, 22, 0, 36);
BlitMoveInfoIcon(4, 19, 0, 0);
BlitMoveInfoIcon(4, 20, 0, 12);
BlitMoveInfoIcon(4, 21, 0, 24);
BlitMoveInfoIcon(4, 22, 0, 36);
CopyWindowToVram(4, 2);
}
@ -1369,7 +1369,7 @@ static void TMCase_MoveCursor_UpdatePrintedTMInfo(u16 itemId)
else
{
move = ItemIdToBattleMoveId(itemId);
blit_move_info_icon(5, gBattleMoves[move].type + 1, 0, 0);
BlitMoveInfoIcon(5, gBattleMoves[move].type + 1, 0, 0);
if (gBattleMoves[move].power < 2)
str = gText_ThreeHyphens;
else

View File

@ -1106,7 +1106,7 @@ void sub_815E068(u8 battleType, u8 facilityClass)
void sub_815E114(void)
{
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void sub_815E124(u8 taskId)

View File

@ -10,7 +10,7 @@
#include "scanline_effect.h"
#include "m4a.h"
#include "string_util.h"
#include "unk_text_util.h"
#include "dynamic_placeholder_text_util.h"
#include "overworld.h"
#include "sound.h"
#include "menu.h"
@ -208,7 +208,7 @@ void sub_814F1E4(void)
ChangeBgY(1, 0, 0);
LoadPalette(gUnknown_846F4D0, 0, 0x20);
Menu_LoadStdPalAt(0xf0);
UnkTextUtil_Reset();
DynamicPlaceholderTextUtil_Reset();
FillBgTilemapBufferRect(0, 0x000, 0, 0, 32, 32, 0xF);
CopyBgTilemapBufferToVram(1);
SetMainCallback2(sub_814F19C);
@ -229,7 +229,7 @@ void sub_814F32C(void)
Free(GetBgTilemapBuffer(i));
}
Free(gUnknown_3002040);
SetMainCallback2(c2_exit_to_overworld_1_continue_scripts_restart_music);
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
}
void sub_814F364(s16 * unk0, s16 * unk1)

View File

@ -298,12 +298,9 @@ gUnknown_3005E10: @ 3005E10
gUnknown_3005E20: @ 3005E20
.space 0x40
gUnknown_3005E60: @ 3005E60
.space 0x10
gMultiuseListMenuTemplate: @ 3005E70
.space 0x18
.align 4
.include "list_menu.o"
.align 2
.include "quest_log.o"
gUnknown_3005E8C: @ 3005E8C

View File

@ -979,13 +979,7 @@ gUnknown_203998C: @ 203998C
.include "src/money.o"
.align 2
gUnknown_2039994: @ 2039994
.space 0x2
gUnknown_2039996: @ 2039996
.space 0x2
.align 2
.include "src/safari_zone.o"
.include "src/item_use.o"
.align 2
@ -1173,9 +1167,8 @@ gUnknown_203ACEC: @ 203ACEC
gUnknown_203ACF0: @ 203ACF0
.space 0x4
gUnknown_203ACF4: @ 203ACF4
.space 0x8
.include "src/list_menu.o"
.align 2
gUnknown_203ACFC: @ 203ACFC
.space 0x6
@ -1358,9 +1351,7 @@ gUnknown_203B0E8: @ 203B0E8
.include "src/oak_speech.o"
.align 2
.include "src/tm_case.o"
gUnknown_203B130: @ 203B130
.space 0x10
.include "src/menu_indicators.o"
gUnknown_203B140: @ 203B140
.space 0x4
@ -1400,10 +1391,7 @@ gUnknown_203B170: @ 203B170
.align 2
.include "src/help_system.o"
@ src/unk_text_util.o
gUnknown_203F34C: @ 203F34C
.space 0x20
.include "src/dynamic_placeholder_text_util.o"
gUnknown_203F36C: @ 203F36C
.space 0x4