mirror of
https://github.com/pret/pokefirered.git
synced 2026-05-09 04:23:14 -05:00
fix: rm asm/diploma.s
This commit is contained in:
commit
da593ec33d
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
110
asm/link_rfu_3.s
110
asm/link_rfu_3.s
|
|
@ -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
|
||||
|
|
|
|||
2019
asm/list_menu.s
2019
asm/list_menu.s
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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]
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
@ -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
|
||||
|
|
|
|||
44
asm/shop.s
44
asm/shop.s
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
2
common_syms/list_menu.txt
Normal file
2
common_syms/list_menu.txt
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
gListMenuOverride
|
||||
gMultiuseListMenuTemplate
|
||||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -1,5 +0,0 @@
|
|||
.section .rodata
|
||||
.align 2
|
||||
|
||||
gUnknown_8464300:: @ 8464300
|
||||
.incbin "baserom.gba", 0x464300, 0x4C
|
||||
19
graphics/interface/dex_caught_pokeball.pal
Normal file
19
graphics/interface/dex_caught_pokeball.pal
Normal 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
|
||||
BIN
graphics/interface/dex_caught_pokeball_and_pokemon_types.png
Normal file
BIN
graphics/interface/dex_caught_pokeball_and_pokemon_types.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
19
graphics/interface/pokemon_types.pal
Normal file
19
graphics/interface/pokemon_types.pal
Normal 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
|
||||
19
graphics/interface/red_arrow.pal
Normal file
19
graphics/interface/red_arrow.pal
Normal 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
|
||||
BIN
graphics/interface/red_arrow.png
Normal file
BIN
graphics/interface/red_arrow.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 167 B |
BIN
graphics/interface/red_arrow_other.png
Normal file
BIN
graphics/interface/red_arrow_other.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 197 B |
BIN
graphics/interface/selector_outline.png
Normal file
BIN
graphics/interface/selector_outline.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 156 B |
|
|
@ -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)
|
||||
|
|
|
|||
12
include/dynamic_placeholder_text_util.h
Normal file
12
include/dynamic_placeholder_text_util.h
Normal 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
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "global.h"
|
||||
|
||||
#define NUM_TASKS 16
|
||||
#define TASK_NONE 0xFF
|
||||
|
||||
typedef void (*TaskFunc)(u8 taskId);
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -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
216
src/buy_menu_helpers.c
Normal 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);
|
||||
}
|
||||
|
|
@ -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);
|
||||
|
|
|
|||
70
src/dynamic_placeholder_text_util.c
Normal file
70
src/dynamic_placeholder_text_util.c
Normal 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;
|
||||
}
|
||||
|
|
@ -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
117
src/field_poison.c
Normal 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;
|
||||
}
|
||||
24
src/intro.c
24
src/intro.c
|
|
@ -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 },
|
||||
|
|
|
|||
|
|
@ -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
786
src/list_menu.c
Normal 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
659
src/menu_indicators.c
Normal 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);
|
||||
}
|
||||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
206
src/quest_log.c
206
src/quest_log.c
|
|
@ -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
80
src/safari_zone.c
Normal 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);
|
||||
}
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user