Merge branch 'master' into coins

This commit is contained in:
PikalaxALT 2017-11-27 20:06:38 -05:00
commit 41eb2ed59e
95 changed files with 12492 additions and 11878 deletions

View File

@ -14531,7 +14531,7 @@ sub_81965D8: @ 81965D8
negs r0, r0
ands r0, r1
strb r0, [r2]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24

View File

@ -14280,7 +14280,7 @@ sub_81A1C4C: @ 81A1C4C
adds r3, r0, 0
lsls r0, r5, 3
adds r5, r0, 0x1
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
ldrb r0, [r0]
lsls r3, 24
lsrs r3, 24
@ -14306,7 +14306,7 @@ sub_81A1C90: @ 81A1C90
push {r4,lr}
sub sp, 0x34
adds r2, r0, 0
ldr r3, =gUnknown_0203AB74
ldr r3, =gResultsWindowId
movs r1, 0xAE
mov r0, sp
adds r0, 0x2F
@ -14361,7 +14361,7 @@ sub_81A1CD8: @ 81A1CD8
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r7, [sp]
@ -14580,7 +14580,7 @@ sub_81A1EA8: @ 81A1EA8
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r4]
@ -14621,7 +14621,7 @@ _081A1F28:
ldr r0, =gStringVar4
movs r1, 0x2
bl sub_81A1C4C
ldr r6, =gUnknown_0203AB74
ldr r6, =gResultsWindowId
ldrb r0, [r6]
ldr r2, =gText_Lv502
movs r1, 0x31
@ -14734,7 +14734,7 @@ sub_81A2008: @ 81A2008
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r5, [sp]
@ -14868,7 +14868,7 @@ sub_81A2134: @ 81A2134
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r4]
@ -14893,7 +14893,7 @@ _081A2184:
ldr r0, =gStringVar4
movs r1, 0
bl sub_81A1C4C
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
ldr r2, =gText_Lv502
movs r6, 0x21
@ -14905,7 +14905,7 @@ _081A2184:
movs r1, 0x1
movs r3, 0x8
bl PrintTextOnWindow
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
ldr r2, =gText_OpenLv
movs r1, 0x61
@ -14988,10 +14988,10 @@ _081A2184:
mov r1, r8
movs r3, 0x40
bl sub_81A2008
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
bl PutWindowTilemap
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
movs r1, 0x3
bl CopyWindowToVram
@ -15027,7 +15027,7 @@ sub_81A22B8: @ 81A22B8
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r7, [sp]
@ -15221,7 +15221,7 @@ sub_81A2460: @ 81A2460
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r4]
@ -15246,7 +15246,7 @@ _081A24B0:
ldr r0, =gStringVar4
movs r1, 0x2
bl sub_81A1C4C
ldr r6, =gUnknown_0203AB74
ldr r6, =gResultsWindowId
ldrb r0, [r6]
ldr r2, =gText_Lv502
movs r1, 0x31
@ -15356,7 +15356,7 @@ sub_81A258C: @ 81A258C
lsrs r6, 24
lsls r5, 24
lsrs r5, 24
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r5, [sp]
@ -15469,7 +15469,7 @@ sub_81A2698: @ 81A2698
mov r5, r8
push {r5-r7}
sub sp, 0xC
ldr r6, =gUnknown_0203AB74
ldr r6, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r6]
@ -15608,7 +15608,7 @@ sub_81A27E8: @ 81A27E8
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r7, [sp]
@ -15772,7 +15772,7 @@ _081A2956:
sub_81A2968: @ 81A2968
push {r4-r6,lr}
sub sp, 0xC
ldr r5, =gUnknown_0203AB74
ldr r5, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r5]
@ -15871,7 +15871,7 @@ sub_81A2A28: @ 81A2A28
lsls r0, 24
lsrs r0, 24
adds r6, r0, 0
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r6, [sp]
@ -16147,7 +16147,7 @@ sub_81A2C94: @ 81A2C94
sub sp, 0xC
lsls r0, 24
lsrs r7, r0, 24
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r4]
@ -16172,7 +16172,7 @@ _081A2CE0:
ldr r0, =gStringVar4
movs r1, 0
bl sub_81A1C4C
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r8, r0
ldrb r0, [r0]
ldr r2, =gText_Lv502
@ -16276,7 +16276,7 @@ sub_81A2DB4: @ 81A2DB4
lsls r0, 24
lsrs r0, 24
adds r7, r0, 0
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r10, r0
ldrb r0, [r0]
str r7, [sp]
@ -16442,7 +16442,7 @@ _081A2F26:
sub_81A2F38: @ 81A2F38
push {r4-r6,lr}
sub sp, 0xC
ldr r5, =gUnknown_0203AB74
ldr r5, =gResultsWindowId
ldr r0, =gUnknown_08611C74
bl AddWindow
strb r0, [r5]
@ -16520,7 +16520,7 @@ sub_81A2FF8: @ 81A2FF8
mov r6, r8
push {r6,r7}
sub sp, 0xC
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldr r0, =gUnknown_08611C7C
bl AddWindow
strb r0, [r4]
@ -16686,7 +16686,7 @@ _081A315C:
movs r2, 0x1
movs r3, 0x4
bl ConvertIntToDecimalStringN
ldr r6, =gUnknown_0203AB74
ldr r6, =gResultsWindowId
ldrb r0, [r6]
movs r1, 0x26
adds r3, r5, 0
@ -18962,7 +18962,7 @@ sub_81A4594: @ 81A4594
sub sp, 0x2C
mov r8, r1
adds r6, r3, 0
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r5, [r1]
lsls r4, r0, 1
adds r4, r0
@ -18998,7 +18998,7 @@ sub_81A4594: @ 81A4594
ldrb r2, [r6, 0xE]
add r0, sp, 0xC
bl TVShowConvertInternationalString
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
mov r3, r8
adds r3, 0x2
@ -19038,7 +19038,7 @@ _081A4618:
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
str r7, [sp]
mov r1, r10
@ -19072,7 +19072,7 @@ sub_81A4684: @ 81A4684
adds r7, r1, 0
mov r10, r2
adds r5, r3, 0
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
lsls r2, r6, 1
adds r2, r6
@ -19112,7 +19112,7 @@ sub_81A4684: @ 81A4684
ldrb r2, [r5, 0x1A]
add r0, sp, 0xC
bl TVShowConvertInternationalString
ldr r1, =gUnknown_0203AB74
ldr r1, =gResultsWindowId
ldrb r0, [r1]
adds r3, r7, 0x2
lsls r3, 27
@ -19147,7 +19147,7 @@ _081A4734:
adds r1, r4, 0
bl StringCopy
_081A473C:
ldr r2, =gUnknown_0203AB74
ldr r2, =gResultsWindowId
mov r9, r2
ldrb r0, [r2]
adds r3, r7, 0x4
@ -19468,7 +19468,7 @@ sub_81A4998: @ 81A4998
ldr r1, [r5]
adds r0, r6, 0
bl StringExpandPlaceholders
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r8, r0
ldrb r0, [r0]
movs r1, 0x1
@ -19567,7 +19567,7 @@ _081A4A90:
thumb_func_start sub_81A4AA0
sub_81A4AA0: @ 81A4AA0
push {r4,lr}
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldr r0, =gUnknown_08611C84
bl AddWindow
strb r0, [r4]
@ -19595,7 +19595,7 @@ sub_81A4AA0: @ 81A4AA0
thumb_func_start sub_81A4AE8
sub_81A4AE8: @ 81A4AE8
push {r4,lr}
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldrb r0, [r4]
movs r1, 0x11
bl FillWindowPixelBuffer

View File

@ -496,7 +496,7 @@ sub_813C2F4: @ 813C2F4
movs r2, 0xD0
bl GetStringCenterAlignXOffset
adds r3, r0, 0
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
ldrb r0, [r0]
lsls r3, 24
lsrs r3, 24
@ -531,7 +531,7 @@ sub_813C384: @ 813C384
ldr r7, [r6, 0xC]
cmp r7, 0
bne _0813C40C
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r8, r0
ldrb r0, [r0]
ldr r2, =gUnknown_085B3D84
@ -587,7 +587,7 @@ _0813C40C:
lsrs r1, 24
ldr r0, =gStringVar1
bl ConvertInternationalString
ldr r0, =gUnknown_0203AB74
ldr r0, =gResultsWindowId
mov r8, r0
ldrb r0, [r0]
lsls r4, 3
@ -661,7 +661,7 @@ sub_813C4BC: @ 813C4BC
mov r6, r8
push {r6,r7}
sub sp, 0xC
ldr r6, =gUnknown_0203AB74
ldr r6, =gResultsWindowId
ldr r0, =gUnknown_085B3D7C
bl AddWindow
strb r0, [r6]
@ -729,7 +729,7 @@ _0813C540:
adds r4, 0x1
cmp r4, 0x4
ble _0813C540
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
@ -748,7 +748,7 @@ _0813C540:
thumb_func_start sub_813C5A0
sub_813C5A0: @ 813C5A0
push {r4,lr}
ldr r4, =gUnknown_0203AB74
ldr r4, =gResultsWindowId
ldrb r0, [r4]
movs r1, 0
bl sub_819746C

File diff suppressed because it is too large Load Diff

View File

@ -244,7 +244,7 @@ sub_80B252C: @ 80B252C
lsrs r1, r0, 24
cmp r1, 0
bne _080B2570
ldr r0, =gUnknown_020229C6
ldr r0, =gLinkType
strh r1, [r0]
ldr r1, =gTasks
lsls r0, r4, 2
@ -286,7 +286,7 @@ _080B258E:
b _080B25BA
.pool
_080B25A4:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
movs r0, 0
strh r0, [r1]
ldr r1, =gTasks
@ -743,7 +743,7 @@ _080B2994:
strb r0, [r1]
ldrb r0, [r4]
bl sub_800AA04
ldr r4, =gUnknown_020228C4
ldr r4, =gBlockSendBuffer
adds r0, r4, 0
bl sub_80C30A4
ldr r0, =gUnknown_0203CEF8
@ -833,7 +833,7 @@ _080B2A6C:
strb r0, [r1]
ldrb r0, [r4]
bl sub_800AA04
ldr r4, =gUnknown_020228C4
ldr r4, =gBlockSendBuffer
adds r0, r4, 0
bl sub_80C30A4
ldr r0, =gUnknown_0203CEF8
@ -964,7 +964,7 @@ task_map_chg_seq_0807EC34: @ 80B2B94
ldrh r0, [r5]
cmp r0, 0x1
bne _080B2C10
ldr r0, =gUnknown_020229C6
ldr r0, =gLinkType
ldrh r2, [r0]
ldr r0, =0x00002266
cmp r2, r0
@ -1215,20 +1215,20 @@ _080B2DC0:
b _080B2E34
_080B2DCA:
movs r3, 0x2
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r4, =0x00002233
b _080B2E30
.pool
_080B2DDC:
movs r3, 0x2
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r4, =0x00002244
b _080B2E30
.pool
_080B2DEC:
movs r3, 0x4
movs r2, 0x4
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r4, =0x00002255
b _080B2E30
.pool
@ -1243,12 +1243,12 @@ _080B2E00:
ands r0, r1
cmp r0, 0
bne _080B2E2C
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r4, =0x00002266
b _080B2E30
.pool
_080B2E2C:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r4, =0x00002277
_080B2E30:
adds r0, r4, 0
@ -1266,7 +1266,7 @@ _080B2E34:
thumb_func_start sub_80B2E4C
sub_80B2E4C: @ 80B2E4C
push {lr}
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00001133
adds r0, r2, 0
strh r0, [r1]
@ -1287,7 +1287,7 @@ sub_80B2E74: @ 80B2E74
ldr r1, =gSpecialVar_Result
movs r0, 0
strh r0, [r1]
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00003311
adds r0, r2, 0
strh r0, [r1]
@ -1454,7 +1454,7 @@ _080B2FC6:
thumb_func_start sub_80B2FD8
sub_80B2FD8: @ 80B2FD8
push {lr}
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00004411
adds r0, r2, 0
strh r0, [r1]
@ -1472,7 +1472,7 @@ sub_80B2FD8: @ 80B2FD8
thumb_func_start sub_80B3000
sub_80B3000: @ 80B3000
push {lr}
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00006601
adds r0, r2, 0
strh r0, [r1]
@ -1490,7 +1490,7 @@ sub_80B3000: @ 80B3000
thumb_func_start sub_80B3028
sub_80B3028: @ 80B3028
push {lr}
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00006602
adds r0, r2, 0
strh r0, [r1]
@ -1540,17 +1540,17 @@ _080B3084:
.4byte _080B3128
.4byte _080B30D8
_080B30A8:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002233
b _080B3124
.pool
_080B30B8:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002244
b _080B3124
.pool
_080B30C8:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002255
b _080B3124
.pool
@ -1564,22 +1564,22 @@ _080B30D8:
ands r0, r1
cmp r0, 0
bne _080B3100
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002266
b _080B3124
.pool
_080B3100:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002277
b _080B3124
.pool
_080B3110:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00001111
b _080B3124
.pool
_080B3120:
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00003322
_080B3124:
adds r0, r2, 0
@ -1809,7 +1809,7 @@ _080B32F8:
movs r0, 0x1
movs r1, 0
bl fade_screen
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002211
adds r0, r2, 0
strh r0, [r1]
@ -1922,7 +1922,7 @@ _080B3408:
movs r0, 0x1
movs r1, 0
bl fade_screen
ldr r0, =gUnknown_020229C6
ldr r0, =gLinkType
ldr r2, =0x00002211
adds r1, r2, 0
strh r1, [r0]
@ -2548,7 +2548,7 @@ nullsub_37: @ 80B3964
thumb_func_start sub_80B3968
sub_80B3968: @ 80B3968
push {lr}
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002211
adds r0, r2, 0
strh r0, [r1]
@ -2829,7 +2829,7 @@ sub_80B3BC4: @ 80B3BC4
ldrb r0, [r0]
cmp r0, 0
bne _080B3BD6
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00002288
adds r0, r2, 0
strh r0, [r1]

View File

@ -14067,7 +14067,7 @@ _080DEC80:
b _080DEC9C
.pool
_080DEC94:
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r1, r0, 24
_080DEC9C:

View File

@ -284,7 +284,7 @@ _080FC6FE:
lsls r0, 24
cmp r0, 0
beq _080FC7F4
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gUnknown_02039F25
ldrb r1, [r1]
lsls r1, 6
@ -297,7 +297,7 @@ _080FC6FE:
b _080FC7F4
.pool
_080FC738:
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gUnknown_02039F25
ldrb r1, [r1]
lsls r1, 6
@ -487,7 +487,7 @@ _080FC8D8:
beq _080FC954
b _080FC96E
_080FC8DE:
ldr r1, =gUnknown_020228C4
ldr r1, =gBlockSendBuffer
ldrh r0, [r4, 0x1A]
strb r0, [r1]
bl GetMultiplayerId
@ -1142,7 +1142,7 @@ _080FCE8C:
beq _080FCEFC
b _080FCF16
_080FCE92:
ldr r1, =gUnknown_020228C4
ldr r1, =gBlockSendBuffer
movs r0, 0x6E
strb r0, [r1]
bl GetMultiplayerId

View File

@ -3691,7 +3691,7 @@ sub_811BDF0: @ 811BDF0
adds r6, r0, 0
ldr r0, =gSaveBlock1Ptr
ldr r4, [r0]
bl sub_81AFBF0
bl UnkTextUtil_Reset
ldr r0, =0x00003b70
adds r5, r4, r0
adds r0, r5, 0
@ -3707,17 +3707,17 @@ sub_811BDF0: @ 811BDF0
bl TVShowConvertInternationalString
movs r0, 0
mov r1, sp
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
b _0811BE3C
.pool
_0811BE34:
ldr r1, =gText_Lady
movs r0, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
_0811BE3C:
ldr r1, =gText_F700sQuiz
adds r0, r6, 0
bl sub_81AFC28
bl UnkTextUtil_StringExpandPlaceholders
add sp, 0x20
pop {r4-r6}
pop {r0}

View File

@ -1863,7 +1863,7 @@ DisplayItemMessage: @ 81ABB4C
strh r0, [r4, 0x14]
movs r1, 0x11
bl FillWindowPixelBuffer
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x14]

File diff suppressed because it is too large Load Diff

View File

@ -1,669 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start MoveSaveBlocks_ResetHeap
MoveSaveBlocks_ResetHeap: @ 8076C2C
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
sub sp, 0x8
ldr r5, =gMain
ldr r0, [r5, 0xC]
str r0, [sp]
ldr r1, [r5, 0x10]
str r1, [sp, 0x4]
movs r0, 0
str r0, [r5, 0xC]
str r0, [r5, 0x10]
ldr r1, =gUnknown_0203CF5C
str r0, [r1]
ldr r4, =0x02000000
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r6, =0x00000f2c
adds r0, r4, 0
adds r2, r6, 0
bl memcpy
ldr r1, =gSaveBlock1Ptr
mov r10, r1
ldr r1, [r1]
ldr r7, =0x00003d88
ldr r0, =0x02000f2c
adds r2, r7, 0
bl memcpy
ldr r0, =gPokemonStoragePtr
mov r8, r0
ldr r1, [r0]
ldr r0, =0x000083d0
mov r9, r0
ldr r0, =0x02004cb4
mov r2, r9
bl memcpy
ldrb r1, [r4, 0xA]
ldrb r0, [r4, 0xB]
adds r1, r0
ldrb r0, [r4, 0xC]
adds r1, r0
ldrb r0, [r4, 0xD]
adds r0, r1
bl SetSaveBlocksPointers
ldr r1, =gSaveBlock2Ptr
ldr r0, [r1]
adds r1, r4, 0
adds r2, r6, 0
bl memcpy
mov r1, r10
ldr r0, [r1]
ldr r1, =0x02000f2c
adds r2, r7, 0
bl memcpy
mov r1, r8
ldr r0, [r1]
ldr r1, =0x02004cb4
mov r2, r9
bl memcpy
movs r1, 0xE0
lsls r1, 9
adds r0, r4, 0
bl InitHeap
ldr r0, [sp, 0x4]
str r0, [r5, 0x10]
ldr r1, [sp]
str r1, [r5, 0xC]
bl Random
adds r4, r0, 0
bl Random
lsls r4, 16
lsls r0, 16
lsrs r0, 16
adds r4, r0
adds r0, r4, 0
bl ApplyNewEncyprtionKeyToAllEncryptedData
ldr r1, =gSaveBlock2Ptr
ldr r0, [r1]
adds r0, 0xAC
str r4, [r0]
add sp, 0x8
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end MoveSaveBlocks_ResetHeap
thumb_func_start sav2_x1_query_bit1
sav2_x1_query_bit1: @ 8076D24
ldr r0, =gSaveBlock2Ptr
ldr r0, [r0]
ldrb r1, [r0, 0x9]
movs r0, 0x1
ands r0, r1
bx lr
.pool
thumb_func_end sav2_x1_query_bit1
thumb_func_start sav2_x9_clear_bit1
sav2_x9_clear_bit1: @ 8076D34
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFE
ands r0, r1
strb r0, [r2, 0x9]
bx lr
.pool
thumb_func_end sav2_x9_clear_bit1
thumb_func_start sub_8076D48
sub_8076D48: @ 8076D48
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
bx lr
.pool
thumb_func_end sub_8076D48
thumb_func_start sub_8076D5C
sub_8076D5C: @ 8076D5C
push {lr}
movs r0, 0
bl sub_8084FAC
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0x1
orrs r0, r1
strb r0, [r2, 0x9]
pop {r0}
bx r0
.pool
thumb_func_end sub_8076D5C
thumb_func_start sav2_gender2_inplace_and_xFE
sav2_gender2_inplace_and_xFE: @ 8076D78
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
ldrb r1, [r2, 0x9]
movs r0, 0xFE
ands r0, r1
strb r0, [r2, 0x9]
bx lr
.pool
thumb_func_end sav2_gender2_inplace_and_xFE
thumb_func_start copy_player_party_to_sav1
@ void copy_player_party_to_sav1()
copy_player_party_to_sav1: @ 8076D8C
push {r4,lr}
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
ldr r1, =gPlayerPartyCount
ldrb r1, [r1]
movs r2, 0x8D
lsls r2, 2
adds r0, r2
strb r1, [r0]
movs r4, 0
_08076DA0:
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
movs r1, 0x64
muls r1, r4
adds r0, r1
movs r2, 0x8E
lsls r2, 2
adds r0, r2
ldr r2, =gPlayerParty
adds r1, r2
movs r2, 0x64
bl memcpy
adds r4, 0x1
cmp r4, 0x5
ble _08076DA0
pop {r4}
pop {r0}
bx r0
.pool
thumb_func_end copy_player_party_to_sav1
thumb_func_start copy_player_party_from_sav1
copy_player_party_from_sav1: @ 8076DD4
push {r4,r5,lr}
ldr r1, =gPlayerPartyCount
ldr r0, =gSaveBlock1Ptr
ldr r0, [r0]
movs r2, 0x8D
lsls r2, 2
adds r0, r2
ldrb r0, [r0]
strb r0, [r1]
movs r4, 0
ldr r5, =gPlayerParty
_08076DEA:
movs r0, 0x64
adds r2, r4, 0
muls r2, r0
adds r0, r2, r5
ldr r1, =gSaveBlock1Ptr
ldr r1, [r1]
adds r1, r2
movs r2, 0x8E
lsls r2, 2
adds r1, r2
movs r2, 0x64
bl memcpy
adds r4, 0x1
cmp r4, 0x5
ble _08076DEA
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end copy_player_party_from_sav1
thumb_func_start save_serialize_npcs
save_serialize_npcs: @ 8076E1C
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gSaveBlock1Ptr
mov r12, r0
movs r5, 0xA3
lsls r5, 4
mov r8, r5
ldr r4, =gMapObjects
movs r3, 0
movs r2, 0xF
_08076E32:
mov r6, r12
ldr r1, [r6]
adds r1, r3
add r1, r8
adds r0, r4, 0
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r4, 0x24
adds r3, 0x24
subs r2, 0x1
cmp r2, 0
bge _08076E32
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end save_serialize_npcs
thumb_func_start save_deserialize_npcs
save_deserialize_npcs: @ 8076E64
push {r4-r7,lr}
mov r7, r8
push {r7}
ldr r0, =gSaveBlock1Ptr
mov r12, r0
movs r5, 0xA3
lsls r5, 4
mov r8, r5
ldr r4, =gMapObjects
movs r3, 0
movs r2, 0xF
_08076E7A:
mov r6, r12
ldr r1, [r6]
adds r1, r3
adds r0, r4, 0
add r1, r8
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r4, 0x24
adds r3, 0x24
subs r2, 0x1
cmp r2, 0
bge _08076E7A
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end save_deserialize_npcs
thumb_func_start SaveSerializedGame
SaveSerializedGame: @ 8076EAC
push {lr}
bl copy_player_party_to_sav1
bl save_serialize_npcs
pop {r0}
bx r0
thumb_func_end SaveSerializedGame
thumb_func_start LoadSerializedGame
LoadSerializedGame: @ 8076EBC
push {lr}
bl copy_player_party_from_sav1
bl save_deserialize_npcs
pop {r0}
bx r0
thumb_func_end LoadSerializedGame
thumb_func_start copy_bags_and_unk_data_from_save_blocks
copy_bags_and_unk_data_from_save_blocks: @ 8076ECC
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r2, 0
ldr r0, =gUnknown_02032180
mov r12, r0
ldr r1, =gSaveBlock2Ptr
mov r10, r1
ldr r5, =gSaveBlock1Ptr
movs r3, 0xAC
lsls r3, 3
ldr r4, =gUnknown_02031C58
_08076EE8:
lsls r0, r2, 2
ldr r1, [r5]
adds r1, r3
adds r1, r0
ldr r0, [r1]
stm r4!, {r0}
adds r2, 0x1
cmp r2, 0x1D
ble _08076EE8
movs r2, 0
ldr r0, =gUnknown_02031C58
ldr r5, =gSaveBlock1Ptr
movs r3, 0xBB
lsls r3, 3
adds r4, r0, 0
adds r4, 0x78
_08076F08:
lsls r0, r2, 2
ldr r1, [r5]
adds r1, r3
adds r1, r0
ldr r0, [r1]
stm r4!, {r0}
adds r2, 0x1
cmp r2, 0x1D
ble _08076F08
movs r2, 0
ldr r0, =gUnknown_02031C58
ldr r5, =gSaveBlock1Ptr
movs r3, 0xCA
lsls r3, 3
adds r4, r0, 0
adds r4, 0xF0
_08076F28:
lsls r0, r2, 2
ldr r1, [r5]
adds r1, r3
adds r1, r0
ldr r0, [r1]
stm r4!, {r0}
adds r2, 0x1
cmp r2, 0xF
ble _08076F28
movs r2, 0
ldr r0, =gUnknown_02031C58
ldr r5, =gSaveBlock1Ptr
movs r6, 0x98
lsls r6, 1
adds r4, r0, r6
movs r3, 0xD2
lsls r3, 3
_08076F4A:
lsls r0, r2, 2
ldr r1, [r5]
adds r1, r3
adds r1, r0
ldr r0, [r1]
stm r4!, {r0}
adds r2, 0x1
cmp r2, 0x3F
ble _08076F4A
movs r2, 0
ldr r0, =gUnknown_02031C58
ldr r5, =gSaveBlock1Ptr
movs r7, 0x8C
lsls r7, 2
adds r4, r0, r7
movs r3, 0xF2
lsls r3, 3
_08076F6C:
lsls r0, r2, 2
ldr r1, [r5]
adds r1, r3
adds r1, r0
ldr r0, [r1]
stm r4!, {r0}
adds r2, 0x1
cmp r2, 0x2D
ble _08076F6C
ldr r0, =gUnknown_02031C58
ldr r1, =gSaveBlock1Ptr
mov r8, r1
movs r5, 0xBA
lsls r5, 2
adds r4, r0, r5
movs r3, 0
ldr r6, =0x00002be0
mov r9, r6
movs r2, 0xF
_08076F92:
mov r7, r8
ldr r1, [r7]
adds r1, r3
adds r0, r4, 0
add r1, r9
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
ldm r1!, {r5-r7}
stm r0!, {r5-r7}
adds r4, 0x24
adds r3, 0x24
subs r2, 0x1
cmp r2, 0
bge _08076F92
mov r1, r10
ldr r0, [r1]
adds r0, 0xAC
ldr r0, [r0]
mov r5, r12
str r0, [r5]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end copy_bags_and_unk_data_from_save_blocks
thumb_func_start copy_bags_and_unk_data_to_save_blocks
copy_bags_and_unk_data_to_save_blocks: @ 8076FE0
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
movs r2, 0
ldr r0, =gSaveBlock2Ptr
mov r8, r0
ldr r1, =gUnknown_02032180
mov r12, r1
ldr r5, =gSaveBlock1Ptr
movs r3, 0xAC
lsls r3, 3
ldr r4, =gUnknown_02031C58
_08076FFC:
ldr r0, [r5]
lsls r1, r2, 2
adds r0, r3
adds r0, r1
ldm r4!, {r1}
str r1, [r0]
adds r2, 0x1
cmp r2, 0x1D
ble _08076FFC
movs r2, 0
ldr r5, =gSaveBlock1Ptr
movs r4, 0xBB
lsls r4, 3
ldr r0, =gUnknown_02031C58
adds r3, r0, 0
adds r3, 0x78
_0807701C:
ldr r0, [r5]
lsls r1, r2, 2
adds r0, r4
adds r0, r1
ldm r3!, {r1}
str r1, [r0]
adds r2, 0x1
cmp r2, 0x1D
ble _0807701C
movs r2, 0
ldr r5, =gSaveBlock1Ptr
movs r4, 0xCA
lsls r4, 3
ldr r0, =gUnknown_02031C58
adds r3, r0, 0
adds r3, 0xF0
_0807703C:
ldr r0, [r5]
lsls r1, r2, 2
adds r0, r4
adds r0, r1
ldm r3!, {r1}
str r1, [r0]
adds r2, 0x1
cmp r2, 0xF
ble _0807703C
movs r2, 0
ldr r5, =gSaveBlock1Ptr
movs r4, 0xD2
lsls r4, 3
ldr r0, =gUnknown_02031C58
movs r6, 0x98
lsls r6, 1
adds r3, r0, r6
_0807705E:
ldr r0, [r5]
lsls r1, r2, 2
adds r0, r4
adds r0, r1
ldm r3!, {r1}
str r1, [r0]
adds r2, 0x1
cmp r2, 0x3F
ble _0807705E
movs r2, 0
ldr r5, =gSaveBlock1Ptr
movs r4, 0xF2
lsls r4, 3
ldr r0, =gUnknown_02031C58
movs r7, 0x8C
lsls r7, 2
adds r3, r0, r7
_08077080:
ldr r0, [r5]
lsls r1, r2, 2
adds r0, r4
adds r0, r1
ldm r3!, {r1}
str r1, [r0]
adds r2, 0x1
cmp r2, 0x2D
ble _08077080
ldr r0, =gSaveBlock1Ptr
mov r9, r0
ldr r1, =0x00002be0
mov r10, r1
ldr r4, =gUnknown_02031C58
movs r3, 0
movs r2, 0xF
_080770A0:
mov r5, r9
ldr r1, [r5]
adds r1, r3
add r1, r10
movs r6, 0xBA
lsls r6, 2
adds r0, r4, r6
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
ldm r0!, {r5-r7}
stm r1!, {r5-r7}
adds r4, 0x24
adds r3, 0x24
subs r2, 0x1
cmp r2, 0
bge _080770A0
mov r7, r8
ldr r0, [r7]
adds r0, 0xAC
ldr r4, [r0]
mov r2, r12
ldr r1, [r2]
str r1, [r0]
adds r0, r4, 0
bl ApplyNewEncyprtionKeyToBagItems
ldr r0, [r7]
adds r0, 0xAC
str r4, [r0]
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r0}
bx r0
.pool
thumb_func_end copy_bags_and_unk_data_to_save_blocks
thumb_func_start ApplyNewEncyprtionKeyToHword
ApplyNewEncyprtionKeyToHword: @ 8077100
ldr r2, =gSaveBlock2Ptr
ldr r2, [r2]
adds r2, 0xAC
ldr r2, [r2]
ldrh r3, [r0]
eors r2, r3
eors r2, r1
strh r2, [r0]
bx lr
.pool
thumb_func_end ApplyNewEncyprtionKeyToHword
thumb_func_start ApplyNewEncyprtionKeyToWord
ApplyNewEncyprtionKeyToWord: @ 8077118
ldr r2, =gSaveBlock2Ptr
ldr r3, [r2]
adds r3, 0xAC
ldr r2, [r0]
ldr r3, [r3]
eors r2, r3
eors r2, r1
str r2, [r0]
bx lr
.pool
thumb_func_end ApplyNewEncyprtionKeyToWord
thumb_func_start ApplyNewEncyprtionKeyToAllEncryptedData
ApplyNewEncyprtionKeyToAllEncryptedData: @ 8077130
push {r4,r5,lr}
adds r4, r0, 0
bl ApplyNewEncyprtionKeyToGameStats
adds r0, r4, 0
bl ApplyNewEncyprtionKeyToBagItems_
adds r0, r4, 0
bl ApplyNewEncyprtionKeyToBerryPowder
ldr r5, =gSaveBlock1Ptr
ldr r0, [r5]
movs r1, 0x92
lsls r1, 3
adds r0, r1
adds r1, r4, 0
bl ApplyNewEncyprtionKeyToWord
ldr r0, [r5]
ldr r1, =0x00000494
adds r0, r1
adds r1, r4, 0
bl ApplyNewEncyprtionKeyToHword
pop {r4,r5}
pop {r0}
bx r0
.pool
thumb_func_end ApplyNewEncyprtionKeyToAllEncryptedData
.align 2, 0 @ Don't pad with nop.

1389
asm/macros/battle_script.inc Normal file

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@ AddTextPrinterWithCallbackForMessage: @ 8197A9C
ands r1, r2
orrs r1, r0
strb r1, [r3]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24

View File

@ -232,7 +232,7 @@ _08178B56:
ldrb r0, [r1]
adds r0, 0x1
strb r0, [r1]
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00005501
adds r0, r2, 0
strh r0, [r1]

View File

@ -904,7 +904,7 @@ _080E3586:
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24

View File

@ -185,7 +185,7 @@ AddTextPrinterForMessage: @ 81972C4
ands r1, r2
orrs r1, r0
strb r1, [r3]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@ -222,7 +222,7 @@ AddTextPrinterForMessage_2: @ 8197310
ands r1, r2
orrs r1, r0
strb r1, [r3]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@ -945,7 +945,7 @@ DisplayItemMessageOnField: @ 81978EC
lsls r4, 24
lsrs r4, 24
bl sub_81973A4
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
@ -1021,8 +1021,8 @@ _0819798A:
bx r1
thumb_func_end sub_8197964
thumb_func_start sav2_get_text_speed
sav2_get_text_speed: @ 8197990
thumb_func_start GetPlayerTextSpeed
GetPlayerTextSpeed: @ 8197990
push {lr}
ldr r0, =gSaveBlock2Ptr
ldr r2, [r0]
@ -1045,7 +1045,7 @@ _081979AC:
pop {r1}
bx r1
.pool
thumb_func_end sav2_get_text_speed
thumb_func_end GetPlayerTextSpeed
thumb_func_start sub_81979C4
sub_81979C4: @ 81979C4

View File

@ -5992,7 +5992,7 @@ sub_81B3300: @ 81B3300
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24

View File

@ -740,7 +740,7 @@ _0817A268:
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24

View File

@ -6737,7 +6737,7 @@ sub_80CAC58: @ 80CAC58
sub sp, 0xC
lsls r0, 24
lsrs r6, r0, 24
bl sub_81AFBF0
bl UnkTextUtil_Reset
ldr r1, =gUnknown_0857276C
lsls r0, r6, 3
adds r0, r1
@ -6774,7 +6774,7 @@ _080CACB8:
adds r1, r2
_080CACC0:
movs r0, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
b _080CAD30
.pool
_080CACD0:
@ -6817,7 +6817,7 @@ _080CAD16:
ldr r0, =0x000021eb
adds r1, r0
movs r0, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
_080CAD30:
ldr r5, =gUnknown_02039D08
ldr r0, [r5]
@ -6827,7 +6827,7 @@ _080CAD30:
lsls r1, r6, 3
adds r1, r2
ldr r1, [r1]
bl sub_81AFC28
bl UnkTextUtil_StringExpandPlaceholders
movs r0, 0x1
movs r1, 0x11
bl FillWindowPixelBuffer

View File

@ -212,17 +212,17 @@ _081C3FEC:
movs r2, 0x1
movs r3, 0x2
bl ConvertIntToDecimalStringN
bl sub_81AFBF0
bl UnkTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
movs r0, 0x1
adds r1, r4, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
ldr r4, =gStringVar4
ldr r1, =gUnknown_0861CE97
adds r0, r4, 0
bl sub_81AFC28
bl UnkTextUtil_StringExpandPlaceholders
movs r0, 0x1
adds r1, r4, 0
movs r2, 0x2C
@ -5547,7 +5547,7 @@ DisplayItemMessageInBattlePyramid: @ 81C6DD8
movs r0, 0x2
movs r1, 0x11
bl FillWindowPixelBuffer
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
movs r1, 0x1

View File

@ -10207,7 +10207,7 @@ sub_81CC158: @ 81CC158
adds r1, 0xF
bl sub_81CAF78
adds r5, r0, 0
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
ldrb r2, [r4, 0x14]
@ -16941,17 +16941,17 @@ sub_81CF7F4: @ 81CF7F4
mov r8, r0
bl sub_81CF0F0
adds r7, r0, 0
bl sub_81AFBF0
bl UnkTextUtil_Reset
ldr r4, =gStringVar1
movs r0, 0
adds r1, r4, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
movs r0, 0xFF
strb r0, [r4]
ldr r5, =gStringVar2
ldr r1, =gText_NumberF700
adds r0, r5, 0
bl sub_81AFC28
bl UnkTextUtil_StringExpandPlaceholders
mov r1, r8
ldrb r0, [r1, 0x8]
movs r1, 0x1
@ -19854,14 +19854,14 @@ sub_81D0E84: @ 81D0E84
movs r2, 0
movs r3, 0x2
bl ConvertIntToDecimalStringN
bl sub_81AFBF0
bl UnkTextUtil_Reset
movs r0, 0
adds r1, r4, 0
bl sub_81AFC0C
bl UnkTextUtil_SetPtrI
ldr r4, =gStringVar4
ldr r1, =gText_RibbonsF700
adds r0, r4, 0
bl sub_81AFC28
bl UnkTextUtil_StringExpandPlaceholders
ldrb r0, [r5, 0xA]
movs r1, 0x44
bl FillWindowPixelBuffer
@ -23751,7 +23751,7 @@ sub_81D2BF4: @ 81D2BF4
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
bl sav2_get_text_speed
bl GetPlayerTextSpeed
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@ -28068,7 +28068,7 @@ sub_81D4E30: @ 81D4E30
lsls r2, 6
movs r1, 0
bl memset
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00005503
adds r0, r2, 0
strh r0, [r1]

View File

@ -993,7 +993,7 @@ _080E75AC:
movs r0, 0xC8
muls r0, r2
adds r1, r0
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
movs r2, 0xC8
bl memcpy
b _080E75FC

View File

@ -238,8 +238,8 @@ _08084854:
.pool
thumb_func_end sav12_xor_set
thumb_func_start ApplyNewEncyprtionKeyToGameStats
ApplyNewEncyprtionKeyToGameStats: @ 8084864
thumb_func_start ApplyNewEncryptionKeyToGameStats
ApplyNewEncryptionKeyToGameStats: @ 8084864
push {r4-r6,lr}
adds r5, r0, 0
movs r4, 0
@ -251,7 +251,7 @@ _0808486C:
ldr r0, [r6]
adds r0, r1
adds r1, r5, 0
bl ApplyNewEncyprtionKeyToWord
bl ApplyNewEncryptionKeyToWord
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
@ -261,7 +261,7 @@ _0808486C:
pop {r0}
bx r0
.pool
thumb_func_end ApplyNewEncyprtionKeyToGameStats
thumb_func_end ApplyNewEncryptionKeyToGameStats
thumb_func_start CopyFieldObjectTemplatesToSav1
@ void CopyFieldObjectTemplatesToSav1()

View File

@ -1223,7 +1223,7 @@ sub_8135F04: @ 8135F04
adds r4, 0x1
ldr r6, =gStringVar1
adds r0, r5, 0
bl sub_8136EA4
bl GetHighestPokeblocksFlavorLevel
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@ -1364,7 +1364,7 @@ _08136032:
bls _08136002
ldr r4, =gStringVar1
mov r0, r8
bl sub_8136EDC
bl GetPokeblocksFeel
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
@ -2601,7 +2601,7 @@ sub_8136AB4: @ 8136AB4
ldr r1, =gText_ThrowAwayVar1
adds r0, r5, 0
bl StringExpandPlaceholders
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@ -2657,7 +2657,7 @@ sub_8136B78: @ 8136B78
ldr r1, =gText_Var1ThrownAway
adds r0, r5, 0
bl StringExpandPlaceholders
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
@ -2995,8 +2995,8 @@ _08136E8C:
bx r0
thumb_func_end ClearPokeblocks
thumb_func_start sub_8136EA4
sub_8136EA4: @ 8136EA4
thumb_func_start GetHighestPokeblocksFlavorLevel
GetHighestPokeblocksFlavorLevel: @ 8136EA4
push {r4-r6,lr}
adds r6, r0, 0
movs r1, 0x1
@ -3024,10 +3024,10 @@ _08136ECC:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end sub_8136EA4
thumb_func_end GetHighestPokeblocksFlavorLevel
thumb_func_start sub_8136EDC
sub_8136EDC: @ 8136EDC
thumb_func_start GetPokeblocksFeel
GetPokeblocksFeel: @ 8136EDC
push {lr}
movs r1, 0x6
bl sub_8136F9C
@ -3039,10 +3039,10 @@ sub_8136EDC: @ 8136EDC
_08136EEE:
pop {r1}
bx r1
thumb_func_end sub_8136EDC
thumb_func_end GetPokeblocksFeel
thumb_func_start sub_8136EF4
sub_8136EF4: @ 8136EF4
thumb_func_start GetFirstFreePokeblockSlot
GetFirstFreePokeblockSlot: @ 8136EF4
push {lr}
movs r1, 0
ldr r0, =gSaveBlock1Ptr
@ -3070,13 +3070,13 @@ _08136F18:
_08136F26:
pop {r1}
bx r1
thumb_func_end sub_8136EF4
thumb_func_end GetFirstFreePokeblockSlot
thumb_func_start sub_8136F2C
sub_8136F2C: @ 8136F2C
thumb_func_start AddPokeblock
AddPokeblock: @ 8136F2C
push {r4,lr}
adds r4, r0, 0
bl sub_8136EF4
bl GetFirstFreePokeblockSlot
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
@ -3102,7 +3102,7 @@ _08136F62:
pop {r4}
pop {r1}
bx r1
thumb_func_end sub_8136F2C
thumb_func_end AddPokeblock
thumb_func_start sub_8136F68
sub_8136F68: @ 8136F68
@ -3287,8 +3287,8 @@ _081370AC:
bx r1
thumb_func_end sub_8137068
thumb_func_start sub_81370B4
sub_81370B4: @ 81370B4
thumb_func_start GetPokeblocksFlavor
GetPokeblocksFlavor: @ 81370B4
push {r4-r7,lr}
adds r5, r0, 0
movs r7, 0
@ -3324,7 +3324,7 @@ _081370E2:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end sub_81370B4
thumb_func_end GetPokeblocksFlavor
thumb_func_start sub_81370FC
sub_81370FC: @ 81370FC

View File

@ -1219,7 +1219,7 @@ BuyMenuDisplayMessage: @ 80E04E8
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
bl sav2_get_text_speed
bl GetPlayerTextSpeed
lsls r0, 24
lsrs r0, 24
movs r1, 0x1

View File

@ -401,7 +401,7 @@ _080774B2:
ldrb r2, [r0]
cmp r2, 0
bne _0807754C
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r5, =0x00001122
adds r0, r5, 0
strh r0, [r1]
@ -2142,7 +2142,7 @@ _08078484:
.4byte _080786F0
.4byte _08078720
_080784DC:
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gPlayerParty
movs r2, 0xC8
bl sub_8078438
@ -2208,7 +2208,7 @@ _08078552:
b _080787A2
.pool
_0807857C:
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gPlayerParty + 200
movs r2, 0xC8
bl sub_8078438
@ -2247,7 +2247,7 @@ _080785B6:
b _080787A2
.pool
_080785E0:
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gPlayerParty + 400
movs r2, 0xC8
bl sub_8078438
@ -2286,7 +2286,7 @@ _0807861A:
b _080787A2
.pool
_08078644:
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, =0x00002be0
@ -2328,7 +2328,7 @@ _0807868A:
b _080787A2
.pool
_080786B4:
ldr r0, =gUnknown_020228C4
ldr r0, =gBlockSendBuffer
ldr r1, =gSaveBlock1Ptr
ldr r1, [r1]
ldr r2, =0x000031a8
@ -7258,7 +7258,7 @@ _0807AEAC:
ldrb r0, [r0]
cmp r0, 0
bne _0807AEC0
ldr r1, =gUnknown_020229C6
ldr r1, =gLinkType
ldr r2, =0x00001144
adds r0, r2, 0
strh r0, [r1]

View File

@ -1,99 +0,0 @@
.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_81AFBF0
sub_81AFBF0: @ 81AFBF0
push {lr}
ldr r1, =gUnknown_0203CE9C
movs r2, 0
adds r0, r1, 0
adds r0, 0x1C
_081AFBFA:
str r2, [r0]
subs r0, 0x4
cmp r0, r1
bge _081AFBFA
pop {r0}
bx r0
.pool
thumb_func_end sub_81AFBF0
thumb_func_start sub_81AFC0C
sub_81AFC0C: @ 81AFC0C
push {lr}
adds r2, r1, 0
lsls r0, 24
lsrs r0, 24
cmp r0, 0x7
bhi _081AFC20
ldr r1, =gUnknown_0203CE9C
lsls r0, 2
adds r0, r1
str r2, [r0]
_081AFC20:
pop {r0}
bx r0
.pool
thumb_func_end sub_81AFC0C
thumb_func_start sub_81AFC28
sub_81AFC28: @ 81AFC28
push {r4,r5,lr}
adds r2, r0, 0
adds r4, r1, 0
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
beq _081AFC68
ldr r5, =gUnknown_0203CE9C
_081AFC38:
cmp r1, 0xF7
beq _081AFC48
strb r1, [r2]
adds r4, 0x1
adds r2, 0x1
b _081AFC60
.pool
_081AFC48:
adds r4, 0x1
ldrb r0, [r4]
lsls r0, 2
adds r0, r5
ldr r1, [r0]
cmp r1, 0
beq _081AFC5E
adds r0, r2, 0
bl StringCopy
adds r2, r0, 0
_081AFC5E:
adds r4, 0x1
_081AFC60:
ldrb r1, [r4]
adds r0, r1, 0
cmp r0, 0xFF
bne _081AFC38
_081AFC68:
movs r0, 0xFF
strb r0, [r2]
adds r0, r2, 0
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_81AFC28
thumb_func_start sub_81AFC74
sub_81AFC74: @ 81AFC74
lsls r0, 24
ldr r1, =gUnknown_0203CE9C
lsrs r0, 22
adds r0, r1
ldr r0, [r0]
bx lr
.pool
thumb_func_end sub_81AFC74
.align 2, 0 @ Don't pad with nop.

View File

@ -1769,7 +1769,7 @@ _0816721C:
adds r0, r6, r0
ldrb r1, [r0]
mov r0, r10
bl GetMonFlavourRelation
bl GetMonFlavorRelation
lsls r0, 24
asrs r2, r0, 24
cmp r0, r9

View File

@ -0,0 +1,170 @@
@ battle types
.set BATTLE_TYPE_DOUBLE , 0x0001
.set BATTLE_TYPE_LINK, 0x0002
.set BATTLE_TYPE_WILD, 0x0004
.set BATTLE_TYPE_TRAINER, 0x0008
.set BATTLE_TYPE_FIRST_BATTLE, 0x0010
.set BATTLE_TYPE_20, 0x0020
.set BATTLE_TYPE_MULTI, 0x0040
.set BATTLE_TYPE_SAFARI, 0x0080
.set BATTLE_TYPE_BATTLE_TOWER, 0x0100
.set BATTLE_TYPE_WALLY_TUTORIAL, 0x0200
.set BATTLE_TYPE_ROAMER, 0x0400
.set BATTLE_TYPE_EREADER_TRAINER, 0x0800
.set BATTLE_TYPE_KYOGRE_GROUDON, 0x1000
.set BATTLE_TYPE_LEGENDARY, 0x2000
.set BATTLE_TYPE_REGI, 0x4000
.set BATTLE_TYPE_TWO_OPPONENTS, 0x8000
.set BATTLE_TYPE_DOME, 0x10000
.set BATTLE_TYPE_PALACE, 0x20000
.set BATTLE_TYPE_ARENA, 0x40000
.set BATTLE_TYPE_FACTORY, 0x80000
.set BATTLE_TYPE_x100000, 0x100000
.set BATTLE_TYPE_PYRAMID, 0x200000
.set BATTLE_TYPE_INGAME_PARTNER, 0x400000
.set BATTLE_TYPE_x800000, 0x800000
.set BATTLE_TYPE_RECORDED, 0x1000000
.set BATTLE_TYPE_x2000000, 0x2000000
.set BATTLE_TYPE_x4000000, 0x4000000
.set BATTLE_TYPE_SECRET_BASE, 0x8000000
.set BATTLE_TYPE_GROUDON, 0x10000000
.set BATTLE_TYPE_KYORGE, 0x20000000
.set BATTLE_TYPE_RAYQUAZA, 0x40000000
.set BATTLE_TYPE_x80000000, 0x80000000
@ battle outcomes
.set WON, 0x1
.set LOST, 0x2
.set DREW, 0x3
.set RAN, 0x4
.set PLAYER_TELEPORTED, 0x5
.set MON_FLED, 0x6
.set CAUGHT, 0x7
.set OUT_OF_BALLS, 0x8
.set FORFEITED, 0x9
.set OPPONENT_TELEPORTED, 0xA
@ identities
.set IDENTITY_PLAYER_MON1, 0
.set IDENTITY_OPPONENT_MON1, 1
.set IDENTITY_PLAYER_MON2, 2
.set IDENTITY_OPPONENT_MON2, 3
@ status 1
.set STATUS_SLEEP, 0x7
.set STATUS_POISON, 0x8
.set STATUS_BURN, 0x10
.set STATUS_FREEZE, 0x20
.set STATUS_PARALYSIS, 0x40
.set STATUS_TOXIC_POISON, 0x80
.set STATUS_TOXIC_COUNTER, 0xF00
.set STATUS_ANY, STATUS_SLEEP | STATUS_POISON | STATUS_BURN | STATUS_FREEZE | STATUS_PARALYSIS | STATUS_TOXIC_POISON
@ status 2
.set STATUS2_CONFUSION, 0x00000007
.set STATUS2_FLINCHED, 0x00000008
.set STATUS2_UPROAR, 0x00000070
.set STATUS2_BIDE, 0x00000300
.set STATUS2_LOCK_CONFUSE, 0x00000C00
.set STATUS2_MULTIPLETURNS, 0x00001000
.set STATUS2_WRAPPED, 0x0000E000
.set STATUS2_INFATUATION, 0x000F0000
.set STATUS2_FOCUS_ENERGY, 0x00100000
.set STATUS2_TRANSFORMED, 0x00200000
.set STATUS2_RECHARGE, 0x00400000
.set STATUS2_RAGE, 0x00800000
.set STATUS2_SUBSTITUTE, 0x01000000
.set STATUS2_DESTINY_BOND, 0x02000000
.set STATUS2_ESCAPE_PREVENTION, 0x04000000
.set STATUS2_NIGHTMARE, 0x08000000
.set STATUS2_CURSED, 0x10000000
.set STATUS2_FORESIGHT, 0x20000000
.set STATUS2_DEFENSE_CURL, 0x40000000
.set STATUS2_TORMENT, 0x80000000
@ status 3
.set STATUS3_LEECHSEED_BANK, 0x3
.set STATUS3_LEECHSEED, 0x4
.set STATUS3_ALWAYS_HITS, 0x18
.set STATUS3_PERISH_SONG, 0x20
.set STATUS3_ON_AIR, 0x40
.set STATUS3_UNDERGROUND, 0x80
.set STATUS3_MINIMIZED, 0x100
.set STATUS3_ROOTED, 0x400
.set STATUS3_CHARGED_UP, 0x200
.set STATUS3_YAWN, 0x1800
.set STATUS3_IMPRISONED_OTHERS, 0x2000
.set STATUS3_GRUDGE, 0x4000
.set STATUS3_CANT_SCORE_A_CRIT, 0x8000
.set STATUS3_MUDSPORT, 0x10000
.set STATUS3_WATERSPORT, 0x20000
.set STATUS3_UNDERWATER, 0x40000
.set STATUS3_INTIMIDATE_POKES, 0x80000
.set STATUS3_TRACE, 0x100000
@ side status
.set SIDE_STATUS_REFLECT, 0x1
.set SIDE_STATUS_LIGHTSCREEN, 0x2
.set SIDE_STATUS_X4, 0x4
.set SIDE_STATUS_SPIKES, 0x10
.set SIDE_STATUS_SAFEGUARD, 0x20
.set SIDE_STATUS_FUTUREATTACK, 0x40
.set SIDE_STATUS_MIST, 0x100
.set SIDE_STATUS_SPIKES_DAMAGED, 0x200
@ stats
.set HP, 0x0
.set ATK, 0x1
.set DEF, 0x2
.set SPEED, 0x3
.set SPATK, 0x4
.set SPDEF, 0x5
.set ACC, 0x6
.set EVASION, 0x7
@ weather flags
.set WEATHER_RAIN_TEMPORARY, 0x01
.set WEATHER_RAIN_DOWNPOUR, 0x02
.set WEATHER_RAIN_PERMANENT, 0x04
.set WEATHER_SANDSTORM_TEMPORARY, 0x08
.set WEATHER_SANDSTORM_PERMANENT, 0x10
.set WEATHER_SUN_TEMPORARY, 0x20
.set WEATHER_SUN_PERMANENT, 0x40
.set WEATHER_HAIL, 0x80
@ hitmarker
.set HITMARKER_x10, 0x00000010
.set HITMARKER_x20, 0x00000020
.set HITMARKER_DESTINYBOND, 0x00000040
.set HITMARKER_NO_ANIMATIONS, 0x00000080
.set HITMARKER_IGNORE_SUBSTITUTE, 0x00000100
.set HITMARKER_NO_ATTACKSTRING, 0x00000200
.set HITMARKER_ATTACKSTRING_PRINTED, 0x00000400
.set HITMARKER_NO_PPDEDUCT, 0x00000800
.set HITMARKER_PURSUIT_TRAP, 0x00001000
.set HITMARKER_IGNORE_SAFEGUARD, 0x00002000
.set HITMARKER_SYNCHRONISE_EFFECT, 0x00004000
.set HITMARKER_RUN, 0x00008000
.set HITMARKER_IGNORE_ON_AIR, 0x00010000
.set HITMARKER_IGNORE_UNDERGROUND, 0x00020000
.set HITMARKER_IGNORE_UNDERWATER, 0x00040000
.set HITMARKER_UNABLE_TO_USE_MOVE, 0x00080000
.set HITMARKER_x100000, 0x00100000
.set HITMARKER_x200000, 0x00200000
.set HITMARKER_x400000, 0x00400000
.set HITMARKER_x800000, 0x00800000
.set HITMARKER_GRUDGE, 0x01000000
.set HITMARKER_OBEYS, 0x02000000
.set HITMARKER_x4000000, 0x04000000
.set HITMARKER_x8000000, 0x08000000
@ move flags
.set MOVESTATUS_MISSED, 0x1
.set MOVESTATUS_SUPEREFFECTIVE, 0x2
.set MOVESTATUS_NOTVERYEFFECTIVE, 0x4
.set MOVESTATUS_NOTAFFECTED, 0x8
.set MOVESTATUS_ONEHITKO, 0x10
.set MOVESTATUS_FAILED, 0x20
.set MOVESTATUS_ENDURED, 0x40
.set MOVESTATUS_HUNGON, 0x80

View File

@ -0,0 +1,169 @@
@ animation ids
.set ANIM_CASTFORM_CHANGE, 0x0
.set ANIM_STATS_CHANGE, 0x1
.set ANIM_SUBSTITUTE_FADE, 0x2
.set ANIM_SUBSTITUTE_APPEAR, 0x3
.set ANIM_x4, 0x4
.set ANIM_ITEM_KNOCKOFF, 0x5
.set ANIM_TURN_TRAP, 0x6
.set ANIM_ITEM_EFFECT, 0x7
.set ANIM_SMOKEBALL_ESCAPE, 0x8
.set ANIM_HANGED_ON, 0x9
.set ANIM_RAIN_CONTINUES, 0xA
.set ANIM_SUN_CONTINUES, 0xB
.set ANIM_SANDSTORM_CONTINUES, 0xC
.set ANIM_HAIL_CONTINUES, 0xD
.set ANIM_LEECH_SEED_DRAIN, 0xE
.set ANIM_MON_HIT, 0xF
.set ANIM_ITEM_STEAL, 0x10
.set ANIM_SNATCH_MOVE, 0x11
.set ANIM_FUTURE_SIGHT_HIT, 0x12
.set ANIM_x13, 0x13
.set ANIM_x14, 0x14
.set ANIM_INGRAIN_HEAL, 0x15
.set ANIM_WISH_HEAL, 0x16
@ atk 80
.set ATK80_DMG_CHANGE_SIGN, 0x0
.set ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP, 0x1
.set ATK80_DMG_DOUBLED, 0x2
@ compare operands
.set EQUAL, 0x0
.set NOT_EQUAL, 0x1
.set GREATER_THAN, 0x2
.set LESS_THAN, 0x3
.set COMMON_BITS, 0x4
.set NO_COMMON_BITS, 0x5
@ move effects
.set EFFECT_SLEEP, 0x1
.set EFFECT_POISON, 0x2
.set EFFECT_BURN, 0x3
.set EFFECT_FREEZE, 0x4
.set EFFECT_PARALYSIS, 0x5
.set EFFECT_TOXIC, 0x6
.set EFFECT_CONFUSION, 0x7
.set EFFECT_FLINCH, 0x8
.set EFFECT_TRI_ATTACK, 0x9
.set EFFECT_UPROAR, 0xA
.set EFFECT_PAYDAY, 0xB
.set EFFECT_CHARGING, 0xC
.set EFFECT_WRAP, 0xD
.set EFFECT_RECOIL_25, 0xE
.set EFFECT_ATK_PLUS_1, 0xF
.set EFFECT_DEF_PLUS_1, 0x10
.set EFFECT_SPD_PLUS_1, 0x11
.set EFFECT_SP_ATK_PLUS_1, 0x12
.set EFFECT_SP_DEF_PLUS_1, 0x13
.set EFFECT_ACC_PLUS_1, 0x14
.set EFFECT_EVS_PLUS_1, 0x15
.set EFFECT_ATK_MINUS_1, 0x16
.set EFFECT_DEF_MINUS_1, 0x17
.set EFFECT_SPD_MINUS_1, 0x18
.set EFFECT_SP_ATK_MINUS_1, 0x19
.set EFFECT_SP_DEF_MINUS_1, 0x1A
.set EFFECT_ACC_MINUS_1, 0x1B
.set EFFECT_EVS_MINUS_1, 0x1C
.set EFFECT_RECHARGE, 0x1D
.set EFFECT_RAGE, 0x1E
.set EFFECT_STEAL_ITEM, 0x1F
.set EFFECT_PREVENT_ESCAPE, 0x20
.set EFFECT_NIGHTMARE, 0x21
.set EFFECT_ALL_STATS_UP, 0x22
.set EFFECT_RAPIDSPIN, 0x23
.set EFFECT_REMOVE_PARALYSIS, 0x24
.set EFFECT_ATK_DEF_DOWN, 0x25
.set EFFECT_RECOIL_33_PARALYSIS, 0x26
.set EFFECT_ATK_PLUS_2, 0x27
.set EFFECT_DEF_PLUS_2, 0x28
.set EFFECT_SPD_PLUS_2, 0x29
.set EFFECT_SP_ATK_PLUS_2, 0x2A
.set EFFECT_SP_DEF_PLUS_2, 0x2B
.set EFFECT_ACC_PLUS_2, 0x2C
.set EFFECT_EVS_PLUS_2, 0x2D
.set EFFECT_ATK_MINUS_2, 0x2E
.set EFFECT_DEF_MINUS_2, 0x2F
.set EFFECT_SPD_MINUS_2, 0x30
.set EFFECT_SP_ATK_MINUS_2, 0x31
.set EFFECT_SP_DEF_MINUS_2, 0x32
.set EFFECT_ACC_MINUS_2, 0x33
.set EFFECT_EVS_MINUS_2, 0x34
.set EFFECT_THRASH, 0x35
.set EFFECT_KNOCK_OFF, 0x36
.set EFFECT_NOTHING_37, 0x37
.set EFFECT_NOTHING_38, 0x38
.set EFFECT_NOTHING_39, 0x39
.set EFFECT_NOTHING_3A, 0x3A
.set EFFECT_SP_ATK_TWO_DOWN, 0x3B
.set EFFECT_NOTHING_3C, 0x3C
.set EFFECT_NOTHING_3D, 0x3D
.set EFFECT_NOTHING_3E, 0x3E
.set EFFECT_NOTHING_3F, 0x3F
.set AFFECTS_USER, 0x40
.set CERTAIN, 0x80
@ accuracy calc
.set NO_ACC_CALC, 0xFFFE
.set NO_ACC_CALC_CHECK_LOCK_ON, 0xFFFF
.set ACC_CURR_MOVE, 0x0
@ bank values
.set TARGET, 0x0
.set ATTACKER, 0x1
.set EFFECT_BANK, 0x2
.set GBANK_1, 0x3
.set ATTACKER_WITH_PARTNER, 0x4 @ only for cmd98
.set BANK0, 0x7
.set SCRIPTING_BANK, 0xA
.set OPPONENT1, 0xC
@ various
.set VARIOUS_CANCEL_MULTI_TURN_MOVES, 0
.set VARIOUS_SET_MAGIC_COAT_TARGET, 1
.set VARIOUS_IS_RUNNING_IMPOSSIBLE, 2
.set VARIOUS_GET_MOVE_TARGET, 3
.set VARIOUS_RESET_INTIMIDATE_TRACE_BITS, 5
.set VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP, 6
.set VARIOUS_EMIT_YESNOBOX, 13
.set VARIOUS_WAIT_CRY, 18
.set VARIOUS_RETURN_OPPONENT_MON1, 19
.set VARIOUS_RETURN_OPPONENT_MON2, 20
.set VARIOUS_SET_TELEPORT_OUTCOME, 25
.set VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC, 26
@ jumpifcant switch flag argument
.set ATK4F_DONT_CHECK_STATUSES, 0x80
@ battle scripting struct
.equiv sPAINSPLIT_HP, gBattleScripting
.equiv sBIDE_DMG, gBattleScripting + 4
.equiv sMULTIHIT_STRING, gBattleScripting + 8
.equiv sDMG_MULTIPLIER, gBattleScripting + 0xE
.equiv sTWOTURN_STRINGID, gBattleScripting + 0xF
.equiv sANIM_ARG1, gBattleScripting + 0x10
.equiv sANIM_ARG2, gBattleScripting + 0x11
.equiv sTRIPLE_KICK_POWER, gBattleScripting + 0x12
.equiv sMOVEEND_STATE, gBattleScripting + 0x14
.equiv sFIELD_15, gBattleScripting + 0x15
.equiv sFIELD_16, gBattleScripting + 0x16
.equiv sBANK, gBattleScripting + 0x17
.equiv sANIM_TURN, gBattleScripting + 0x18
.equiv sANIM_TARGETS_HIT, gBattleScripting + 0x19
.equiv sSTATCHANGER, gBattleScripting + 0x1A
.equiv sFIELD_1B, gBattleScripting + 0x1B
.equiv sGIVEEXP_STATE, gBattleScripting + 0x1C
.equiv sBATTLE_STYLE, gBattleScripting + 0x1D
.equiv sLVLBOX_STATE, gBattleScripting + 0x1E
.equiv sLEARNMOVE_STATE, gBattleScripting + 0x1F
.equiv sFIELD_20, gBattleScripting + 0x20
.equiv sRESHOW_MAIN_STATE, gBattleScripting + 0x21
.equiv sRESHOW_HELPER_STATE, gBattleScripting + 0x22
.equiv sFIELD_23, gBattleScripting + 0x23
.equiv sFIELD_24, gBattleScripting + 0x24
.equiv sMULTIPLAYER_ID, gBattleScripting + 0x25
@ battle communication struct
.equiv cEFFECT_CHOOSER, gBattleCommunication + 3
.equiv cMULTISTRING_CHOOSER, gBattleCommunication + 5

375
constants/battle_text.inc Normal file
View File

@ -0,0 +1,375 @@
.set STRINGID_INTROMSG, 0
.set STRINGID_INTROSENDOUT, 1
.set STRINGID_RETURNMON, 2
.set STRINGID_SWITCHINMON, 3
.set STRINGID_USEDMOVE, 4
.set STRINGID_BATTLEEND, 5
.set STRINGID_TRAINER1LOSETEXT, 12
.set STRINGID_PKMNGAINEDEXP, 13
.set STRINGID_PKMNGREWTOLV, 14
.set STRINGID_PKMNLEARNEDMOVE, 15
.set STRINGID_TRYTOLEARNMOVE1, 16
.set STRINGID_TRYTOLEARNMOVE2, 17
.set STRINGID_TRYTOLEARNMOVE3, 18
.set STRINGID_PKMNFORGOTMOVE, 19
.set STRINGID_STOPLEARNINGMOVE, 20
.set STRINGID_DIDNOTLEARNMOVE, 21
.set STRINGID_PKMNLEARNEDMOVE2, 22
.set STRINGID_ATTACKMISSED, 23
.set STRINGID_PKMNPROTECTEDITSELF, 24
.set STRINGID_STATSWONTINCREASE2, 25
.set STRINGID_AVOIDEDDAMAGE, 26
.set STRINGID_ITDOESNTAFFECT, 27
.set STRINGID_ATTACKERFAINTED, 28
.set STRINGID_TARGETFAINTED, 29
.set STRINGID_PLAYERGOTMONEY, 30
.set STRINGID_PLAYERWHITEOUT, 31
.set STRINGID_PLAYERWHITEOUT2, 32
.set STRINGID_PREVENTSESCAPE, 33
.set STRINGID_HITXTIMES, 34
.set STRINGID_PKMNFELLASLEEP, 35
.set STRINGID_PKMNMADESLEEP, 36
.set STRINGID_PKMNALREADYASLEEP, 37
.set STRINGID_PKMNALREADYASLEEP2, 38
.set STRINGID_PKMNWASNTAFFECTED, 39
.set STRINGID_PKMNWASPOISONED, 40
.set STRINGID_PKMNPOISONEDBY, 41
.set STRINGID_PKMNHURTBYPOISON, 42
.set STRINGID_PKMNALREADYPOISONED, 43
.set STRINGID_PKMNBADLYPOISONED, 44
.set STRINGID_PKMNENERGYDRAINED, 45
.set STRINGID_PKMNWASBURNED, 46
.set STRINGID_PKMNBURNEDBY, 47
.set STRINGID_PKMNHURTBYBURN, 48
.set STRINGID_PKMNWASFROZEN, 49
.set STRINGID_PKMNFROZENBY, 50
.set STRINGID_PKMNISFROZEN, 51
.set STRINGID_PKMNWASDEFROSTED, 52
.set STRINGID_PKMNWASDEFROSTED2, 53
.set STRINGID_PKMNWASDEFROSTEDBY, 54
.set STRINGID_PKMNWASPARALYZED, 55
.set STRINGID_PKMNWASPARALYZEDBY, 56
.set STRINGID_PKMNISPARALYZED, 57
.set STRINGID_PKMNISALREADYPARALYZED, 58
.set STRINGID_PKMNHEALEDPARALYSIS, 59
.set STRINGID_PKMNDREAMEATEN, 60
.set STRINGID_STATSWONTINCREASE, 61
.set STRINGID_STATSWONTDECREASE, 62
.set STRINGID_TEAMSTOPPEDWORKING, 63
.set STRINGID_FOESTOPPEDWORKING, 64
.set STRINGID_PKMNISCONFUSED, 65
.set STRINGID_PKMNHEALEDCONFUSION, 66
.set STRINGID_PKMNWASCONFUSED, 67
.set STRINGID_PKMNALREADYCONFUSED, 68
.set STRINGID_PKMNFELLINLOVE, 69
.set STRINGID_PKMNINLOVE, 70
.set STRINGID_PKMNIMMOBILIZEDBYLOVE, 71
.set STRINGID_PKMNBLOWNAWAY, 72
.set STRINGID_PKMNCHANGEDTYPE, 73
.set STRINGID_PKMNFLINCHED, 74
.set STRINGID_PKMNREGAINEDHEALTH, 75
.set STRINGID_PKMNHPFULL, 76
.set STRINGID_PKMNRAISEDSPDEF, 77
.set STRINGID_PKMNRAISEDDEF, 78
.set STRINGID_PKMNCOVEREDBYVEIL, 79
.set STRINGID_PKMNUSEDSAFEGUARD, 80
.set STRINGID_PKMNSAFEGUARDEXPIRED, 81
.set STRINGID_PKMNWENTTOSLEEP, 82
.set STRINGID_PKMNSLEPTHEALTHY, 83
.set STRINGID_PKMNWHIPPEDWHIRLWIND, 84
.set STRINGID_PKMNTOOKSUNLIGHT, 85
.set STRINGID_PKMNLOWEREDHEAD, 86
.set STRINGID_PKMNISGLOWING, 87
.set STRINGID_PKMNFLEWHIGH, 88
.set STRINGID_PKMNDUGHOLE, 89
.set STRINGID_PKMNSQUEEZEDBYBIND, 90
.set STRINGID_PKMNTRAPPEDINVORTEX, 91
.set STRINGID_PKMNWRAPPEDBY, 92
.set STRINGID_PKMNCLAMPED, 93
.set STRINGID_PKMNHURTBY, 94
.set STRINGID_PKMNFREEDFROM, 95
.set STRINGID_PKMNCRASHED, 96
.set STRINGID_PKMNSHROUDEDINMIST, 97
.set STRINGID_PKMNPROTECTEDBYMIST, 98
.set STRINGID_PKMNGETTINGPUMPED, 99
.set STRINGID_PKMNHITWITHRECOIL, 100
.set STRINGID_PKMNPROTECTEDITSELF2, 101
.set STRINGID_PKMNBUFFETEDBYSANDSTORM, 102
.set STRINGID_PKMNPELTEDBYHAIL, 103
.set STRINGID_PKMNSEEDED, 104
.set STRINGID_PKMNEVADEDATTACK, 105
.set STRINGID_PKMNSAPPEDBYLEECHSEED, 106
.set STRINGID_PKMNFASTASLEEP, 107
.set STRINGID_PKMNWOKEUP, 108
.set STRINGID_PKMNUPROARKEPTAWAKE, 109
.set STRINGID_PKMNWOKEUPINUPROAR, 110
.set STRINGID_PKMNCAUSEDUPROAR, 111
.set STRINGID_PKMNMAKINGUPROAR, 112
.set STRINGID_PKMNCALMEDDOWN, 113
.set STRINGID_PKMNCANTSLEEPINUPROAR, 114
.set STRINGID_PKMNSTOCKPILED, 115
.set STRINGID_PKMNCANTSTOCKPILE, 116
.set STRINGID_PKMNCANTSLEEPINUPROAR2, 117
.set STRINGID_UPROARKEPTPKMNAWAKE, 118
.set STRINGID_PKMNSTAYEDAWAKEUSING, 119
.set STRINGID_PKMNSTORINGENERGY, 120
.set STRINGID_PKMNUNLEASHEDENERGY, 121
.set STRINGID_PKMNFATIGUECONFUSION, 122
.set STRINGID_PKMNPICKEDUPITEM, 123
.set STRINGID_PKMNUNAFFECTED, 124
.set STRINGID_PKMNTRANSFORMEDINTO, 125
.set STRINGID_PKMNMADESUBSTITUTE, 126
.set STRINGID_PKMNHASSUBSTITUTE, 127
.set STRINGID_SUBSTITUTEDAMAGED, 128
.set STRINGID_PKMNSUBSTITUTEFADED, 129
.set STRINGID_PKMNMUSTRECHARGE, 130
.set STRINGID_PKMNRAGEBUILDING, 131
.set STRINGID_PKMNMOVEWASDISABLED, 132
.set STRINGID_PKMNMOVEISDISABLED, 133
.set STRINGID_PKMNMOVEDISABLEDNOMORE, 134
.set STRINGID_PKMNGOTENCORE, 135
.set STRINGID_PKMNENCOREENDED, 136
.set STRINGID_PKMNTOOKAIM, 137
.set STRINGID_PKMNSKETCHEDMOVE, 138
.set STRINGID_PKMNTRYINGTOTAKEFOE, 139
.set STRINGID_PKMNTOOKFOE, 140
.set STRINGID_PKMNREDUCEDPP, 141
.set STRINGID_PKMNSTOLEITEM, 142
.set STRINGID_TARGETCANTESCAPENOW, 143
.set STRINGID_PKMNFELLINTONIGHTMARE, 144
.set STRINGID_PKMNLOCKEDINNIGHTMARE, 145
.set STRINGID_PKMNLAIDCURSE, 146
.set STRINGID_PKMNAFFLICTEDBYCURSE, 147
.set STRINGID_SPIKESSCATTERED, 148
.set STRINGID_PKMNHURTBYSPIKES, 149
.set STRINGID_PKMNIDENTIFIED, 150
.set STRINGID_PKMNPERISHCOUNTFELL, 151
.set STRINGID_PKMNBRACEDITSELF, 152
.set STRINGID_PKMNENDUREDHIT, 153
.set STRINGID_MAGNITUDESTRENGTH, 154
.set STRINGID_PKMNCUTHPMAXEDATTACK, 155
.set STRINGID_PKMNCOPIEDSTATCHANGES, 156
.set STRINGID_PKMNGOTFREE, 157
.set STRINGID_PKMNSHEDLEECHSEED, 158
.set STRINGID_PKMNBLEWAWAYSPIKES, 159
.set STRINGID_PKMNFLEDFROMBATTLE, 160
.set STRINGID_PKMNFORESAWATTACK, 161
.set STRINGID_PKMNTOOKATTACK, 162
.set STRINGID_PKMNATTACK, 163
.set STRINGID_PKMNCENTERATTENTION, 164
.set STRINGID_PKMNCHARGINGPOWER, 165
.set STRINGID_NATUREPOWERTURNEDINTO, 166
.set STRINGID_PKMNSTATUSNORMAL, 167
.set STRINGID_PKMNHASNOMOVESLEFT, 168
.set STRINGID_PKMNSUBJECTEDTOTORMENT, 169
.set STRINGID_PKMNCANTUSEMOVETORMENT, 170
.set STRINGID_PKMNTIGHTENINGFOCUS, 171
.set STRINGID_PKMNFELLFORTAUNT, 172
.set STRINGID_PKMNCANTUSEMOVETAUNT, 173
.set STRINGID_PKMNREADYTOHELP, 174
.set STRINGID_PKMNSWITCHEDITEMS, 175
.set STRINGID_PKMNCOPIEDFOE, 176
.set STRINGID_PKMNMADEWISH, 177
.set STRINGID_PKMNWISHCAMETRUE, 178
.set STRINGID_PKMNPLANTEDROOTS, 179
.set STRINGID_PKMNABSORBEDNUTRIENTS, 180
.set STRINGID_PKMNANCHOREDITSELF, 181
.set STRINGID_PKMNWASMADEDROWSY, 182
.set STRINGID_PKMNKNOCKEDOFF, 183
.set STRINGID_PKMNSWAPPEDABILITIES, 184
.set STRINGID_PKMNSEALEDOPPONENTMOVE, 185
.set STRINGID_PKMNCANTUSEMOVESEALED, 186
.set STRINGID_PKMNWANTSGRUDGE, 187
.set STRINGID_PKMNLOSTPPGRUDGE, 188
.set STRINGID_PKMNSHROUDEDITSELF, 189
.set STRINGID_PKMNMOVEBOUNCED, 190
.set STRINGID_PKMNWAITSFORTARGET, 191
.set STRINGID_PKMNSNATCHEDMOVE, 192
.set STRINGID_PKMNMADEITRAIN, 193
.set STRINGID_PKMNRAISEDSPEED, 194
.set STRINGID_PKMNPROTECTEDBY, 195
.set STRINGID_PKMNPREVENTSUSAGE, 196
.set STRINGID_PKMNRESTOREDHPUSING, 197
.set STRINGID_PKMNCHANGEDTYPEWITH, 198
.set STRINGID_PKMNPREVENTSPARALYSISWITH, 199
.set STRINGID_PKMNPREVENTSROMANCEWITH, 200
.set STRINGID_PKMNPREVENTSPOISONINGWITH, 201
.set STRINGID_PKMNPREVENTSCONFUSIONWITH, 202
.set STRINGID_PKMNRAISEDFIREPOWERWITH, 203
.set STRINGID_PKMNANCHORSITSELFWITH, 204
.set STRINGID_PKMNCUTSATTACKWITH, 205
.set STRINGID_PKMNPREVENTSSTATLOSSWITH, 206
.set STRINGID_PKMNHURTSWITH, 207
.set STRINGID_PKMNTRACED, 208
.set STRINGID_STATSHARPLY, 209
.set STRINGID_STATROSE, 210
.set STRINGID_STATHARSHLY, 211
.set STRINGID_STATFELL, 212
.set STRINGID_PKMNSSTATCHANGED, 213
.set STRINGID_PKMNSSTATCHANGED2, 214
.set STRINGID_PKMNSSTATCHANGED3, 215
.set STRINGID_PKMNSSTATCHANGED4, 216
.set STRINGID_CRITICALHIT, 217
.set STRINGID_ONEHITKO, 218
.set STRINGID_123POOF, 219
.set STRINGID_ANDELLIPSIS, 220
.set STRINGID_NOTVERYEFFECTIVE, 221
.set STRINGID_SUPEREFFECTIVE, 222
.set STRINGID_GOTAWAYSAFELY, 223
.set STRINGID_WILDPKMNFLED, 224
.set STRINGID_NORUNNINGFROMTRAINERS, 225
.set STRINGID_CANTESCAPE, 226
.set STRINGID_DONTLEAVEBIRCH, 227
.set STRINGID_BUTNOTHINGHAPPENED, 228
.set STRINGID_BUTITFAILED, 229
.set STRINGID_ITHURTCONFUSION, 230
.set STRINGID_MIRRORMOVEFAILED, 231
.set STRINGID_STARTEDTORAIN, 232
.set STRINGID_DOWNPOURSTARTED, 233
.set STRINGID_RAINCONTINUES, 234
.set STRINGID_DOWNPOURCONTINUES, 235
.set STRINGID_RAINSTOPPED, 236
.set STRINGID_SANDSTORMBREWED, 237
.set STRINGID_SANDSTORMRAGES, 238
.set STRINGID_SANDSTORMSUBSIDED, 239
.set STRINGID_SUNLIGHTGOTBRIGHT, 240
.set STRINGID_SUNLIGHTSTRONG, 241
.set STRINGID_SUNLIGHTFADED, 242
.set STRINGID_STARTEDHAIL, 243
.set STRINGID_HAILCONTINUES, 244
.set STRINGID_HAILSTOPPED, 245
.set STRINGID_FAILEDTOSPITUP, 246
.set STRINGID_FAILEDTOSWALLOW, 247
.set STRINGID_WINDBECAMEHEATWAVE, 248
.set STRINGID_STATCHANGESGONE, 249
.set STRINGID_COINSSCATTERED, 250
.set STRINGID_TOOWEAKFORSUBSTITUTE, 251
.set STRINGID_SHAREDPAIN, 252
.set STRINGID_BELLCHIMED, 253
.set STRINGID_FAINTINTHREE, 254
.set STRINGID_NOPPLEFT, 255
.set STRINGID_BUTNOPPLEFT, 256
.set STRINGID_PLAYERUSEDITEM, 257
.set STRINGID_WALLYUSEDITEM, 258
.set STRINGID_TRAINERBLOCKEDBALL, 259
.set STRINGID_DONTBEATHIEF, 260
.set STRINGID_ITDODGEDBALL, 261
.set STRINGID_YOUMISSEDPKMN, 262
.set STRINGID_PKMNBROKEFREE, 263
.set STRINGID_ITAPPEAREDCAUGHT, 264
.set STRINGID_AARGHALMOSTHADIT, 265
.set STRINGID_SHOOTSOCLOSE, 266
.set STRINGID_GOTCHAPKMNCAUGHT, 267
.set STRINGID_GOTCHAPKMNCAUGHT2, 268
.set STRINGID_GIVENICKNAMECAPTURED, 269
.set STRINGID_PKMNSENTTOPC, 270
.set STRINGID_PKMNDATAADDEDTODEX, 271
.set STRINGID_ITISRAINING, 272
.set STRINGID_SANDSTORMISRAGING, 273
.set STRINGID_CANTESCAPE2, 274
.set STRINGID_PKMNIGNORESASLEEP, 275
.set STRINGID_PKMNIGNOREDORDERS, 276
.set STRINGID_PKMNBEGANTONAP, 277
.set STRINGID_PKMNLOAFING, 278
.set STRINGID_PKMNWONTOBEY, 279
.set STRINGID_PKMNTURNEDAWAY, 280
.set STRINGID_PKMNPRETENDNOTNOTICE, 281
.set STRINGID_ENEMYABOUTTOSWITCHPKMN, 282
.set STRINGID_CREPTCLOSER, 283
.set STRINGID_CANTGETCLOSER, 284
.set STRINGID_PKMNWATCHINGCAREFULLY, 285
.set STRINGID_PKMNCURIOUSABOUTX, 286
.set STRINGID_PKMNENTHRALLEDBYX, 287
.set STRINGID_PKMNIGNOREDX, 288
.set STRINGID_THREWPOKEBLOCKATPKMN, 289
.set STRINGID_OUTOFSAFARIBALLS, 290
.set STRINGID_PKMNSITEMCUREDPARALYSIS, 291
.set STRINGID_PKMNSITEMCUREDPOISON, 292
.set STRINGID_PKMNSITEMHEALEDBURN, 293
.set STRINGID_PKMNSITEMDEFROSTEDIT, 294
.set STRINGID_PKMNSITEMWOKEIT, 295
.set STRINGID_PKMNSITEMSNAPPEDOUT, 296
.set STRINGID_PKMNSITEMCUREDPROBLEM, 297
.set STRINGID_PKMNSITEMRESTOREDHEALTH, 298
.set STRINGID_PKMNSITEMRESTOREDPP, 299
.set STRINGID_PKMNSITEMRESTOREDSTATUS, 300
.set STRINGID_PKMNSITEMRESTOREDHPALITTLE, 301
.set STRINGID_ITEMALLOWSONLYYMOVE, 302
.set STRINGID_PKMNHUNGONWITHX, 303
.set STRINGID_EMPTYSTRING3, 304
.set STRINGID_PKMNSXPREVENTSBURNS, 305
.set STRINGID_PKMNSXBLOCKSY, 306
.set STRINGID_PKMNSXRESTOREDHPALITTLE2, 307
.set STRINGID_PKMNSXWHIPPEDUPSANDSTORM, 308
.set STRINGID_PKMNSXPREVENTSYLOSS, 309
.set STRINGID_PKMNSXINFATUATEDY, 310
.set STRINGID_PKMNSXMADEYINEFFECTIVE, 311
.set STRINGID_PKMNSXCUREDYPROBLEM, 312
.set STRINGID_ITSUCKEDLIQUIDOOZE, 313
.set STRINGID_PKMNTRANSFORMED, 314
.set STRINGID_ELECTRICITYWEAKENED, 315
.set STRINGID_FIREWEAKENED, 316
.set STRINGID_PKMNHIDUNDERWATER, 317
.set STRINGID_PKMNSPRANGUP, 318
.set STRINGID_HMMOVESCANTBEFORGOTTEN, 319
.set STRINGID_XFOUNDONEY, 320
.set STRINGID_PLAYERDEFEATEDTRAINER1, 321
.set STRINGID_SOOTHINGAROMA, 322
.set STRINGID_ITEMSCANTBEUSEDNOW, 323
.set STRINGID_FORXCOMMAYZ, 324
.set STRINGID_USINGXTHEYOFZN, 325
.set STRINGID_PKMNUSEDXTOGETPUMPED, 326
.set STRINGID_PKMNSXMADEYUSELESS, 327
.set STRINGID_PKMNTRAPPEDBYSANDTOMB, 328
.set STRINGID_EMPTYSTRING4, 329
.set STRINGID_ABOOSTED, 330
.set STRINGID_PKMNSXINTENSIFIEDSUN, 331
.set STRINGID_PKMNMAKESGROUNDMISS, 332
.set STRINGID_YOUTHROWABALLNOWRIGHT, 333
.set STRINGID_PKMNSXTOOKATTACK, 334
.set STRINGID_PKMNCHOSEXASDESTINY, 335
.set STRINGID_PKMNLOSTFOCUS, 336
.set STRINGID_USENEXTPKMN, 337
.set STRINGID_PKMNFLEDUSINGITS, 338
.set STRINGID_PKMNFLEDUSING, 339
.set STRINGID_PKMNWASDRAGGEDOUT, 340
.set STRINGID_PREVENTEDFROMWORKING, 341
.set STRINGID_PKMNSITEMNORMALIZEDSTATUS, 342
.set STRINGID_TRAINER1USEDITEM, 343
.set STRINGID_BOXISFULL, 344
.set STRINGID_PKMNAVOIDEDATTACK, 345
.set STRINGID_PKMNSXMADEITINEFFECTIVE, 346
.set STRINGID_PKMNSXPREVENTSFLINCHING, 347
.set STRINGID_PKMNALREADYHASBURN, 348
.set STRINGID_STATSWONTDECREASE2, 349
.set STRINGID_PKMNSXBLOCKSY2, 350
.set STRINGID_PKMNSXWOREOFF, 351
.set STRINGID_PKMNRAISEDDEFALITTLE, 352
.set STRINGID_PKMNRAISEDSPDEFALITTLE, 353
.set STRINGID_THEWALLSHATTERED, 354
.set STRINGID_PKMNSXPREVENTSYSZ, 355
.set STRINGID_PKMNSXCUREDITSYPROBLEM, 356
.set STRINGID_ATTACKERCANTESCAPE, 357
.set STRINGID_PKMNOBTAINEDX, 358
.set STRINGID_PKMNOBTAINEDX2, 359
.set STRINGID_PKMNOBTAINEDXYOBTAINEDZ, 360
.set STRINGID_BUTNOEFFECT, 361
.set STRINGID_PKMNSXHADNOEFFECTONY, 362
.set STRINGID_TWOENEMIESDEFEATED, 363
.set STRINGID_TRAINER2LOSETEXT, 364
.set STRINGID_PKMNINCAPABLEOFPOWER, 365
.set STRINGID_GLINTAPPEARSINEYE, 366
.set STRINGID_PKMNGETTINGINTOPOSITION, 367
.set STRINGID_PKMNBEGANGROWLINGDEEPLY, 368
.set STRINGID_PKMNEAGERFORMORE, 369
.set STRINGID_DEFEATEDOPPONENTBYREFEREE, 370
.set STRINGID_LOSTTOOPPONENTBYREFEREE, 371
.set STRINGID_TIEDOPPONENTBYREFEREE, 372
.set STRINGID_QUESTIONFORFEITMATCH, 373
.set STRINGID_FORFEITEDMATCH, 374
.set STRINGID_PKMNTRANSFERREDSOMEONESPC, 375
.set STRINGID_PKMNTRANSFERREDLANETTESPC, 376
.set STRINGID_PKMNBOXSOMEONESPCFULL, 377
.set STRINGID_PKMNBOXLANETTESPCFULL, 378
.set STRINGID_TRAINER1WINTEXT, 379
.set STRINGID_TRAINER2WINTEXT, 380

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,36 @@
.include "asm/macros.inc"
.include "asm/macros/battle_script.inc"
.include "constants/constants.inc"
.include "constants/battle_constants.inc"
.include "constants/battle_script_constants.inc"
.include "constants/battle_text.inc"
.section script_data, "aw", %progbits
.align 2
gBattlescriptsForBallThrow:: @ 82DBD08
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD7E
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte gUnknown_082DBD68
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_SafariBallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.4byte BattleScript_BallThrow
.align 2
gUnknown_082DBD3C:: @ 82DBD3C
.4byte gUnknown_082DBE12
.4byte gUnknown_082DBE1C
.4byte gUnknown_082DBE1C
.4byte gUnknown_082DBE4B
.4byte gUnknown_082DBE6F
.4byte gUnknown_082DBE91
.4byte BattleScript_82DBE12
.4byte BattleScript_82DBE1C
.4byte BattleScript_82DBE1C
.4byte BattleScript_82DBE4B
.4byte BattleScript_82DBE6F
.4byte BattleScript_82DBE91
.align 2
gBattlescriptsForRunningByItem:: @ 82DBD54
@ -34,55 +38,166 @@ gBattlescriptsForRunningByItem:: @ 82DBD54
.align 2
gBattlescriptsForSafariActions:: @ 82DBD58
.4byte gUnknown_082DBEBD
.4byte gUnknown_082DBEC4
.4byte gUnknown_082DBECD
.4byte gUnknown_082DBEE3
.4byte BattleScript_ActionWatchesCarefully
.4byte BattleScript_ActionGetNear
.4byte BattleScript_ActionThrowPokeblock
.4byte BattleScript_82DBEE3
gUnknown_082DBD68:: @ 82DBD68
.incbin "baserom.gba", 0x2dbd68, 0x16
BattleScript_BallThrow::
jumpifword COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally
printstring STRINGID_PLAYERUSEDITEM
handleballthrow
gUnknown_082DBD7E:: @ 82DBD7E
.incbin "baserom.gba", 0x2dbd7e, 0x6
BattleScript_BallThrowByWally::
printstring STRINGID_WALLYUSEDITEM
handleballthrow
BattleScript_SuccessBallThrow:: @ 82DBD84
.incbin "baserom.gba", 0x2dbd84, 0x46
BattleScript_SafariBallThrow::
printstring STRINGID_PLAYERUSEDITEM
updatestatusicon ATTACKER
handleballthrow
BattleScript_WallyBallThrow:: @ 82DBDCA
.incbin "baserom.gba", 0x2dbdca, 0xa
BattleScript_SuccessBallThrow::
jumpifhalfword EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_82DBD92
incrementgamestat 0xB
BattleScript_82DBD92::
printstring STRINGID_GOTCHAPKMNCAUGHT
trysetcaughtmondexflags BattleScript_82DBDA5
printstring STRINGID_PKMNDATAADDEDTODEX
waitstate
setbyte gBattleCommunication, 0x0
displaydexinfo
BattleScript_82DBDA5::
printstring STRINGID_GIVENICKNAMECAPTURED
waitstate
setbyte gBattleCommunication, 0x0
trygivecaughtmonnick BattleScript_82DBDC2
givecaughtmon
printfromtable gCaughtMonStringIds
waitmessage 0x40
goto BattleScript_82DBDC3
BattleScript_82DBDC2::
givecaughtmon
BattleScript_82DBDC3::
setbyte gBattleOutcome, CAUGHT
finishturn
BattleScript_ShakeBallThrow:: @ 82DBDD4
.incbin "baserom.gba", 0x2dbdd4, 0x2e
BattleScript_WallyBallThrow::
printstring STRINGID_GOTCHAPKMNCAUGHT2
setbyte gBattleOutcome, CAUGHT
finishturn
BattleScript_TrainerBallBlock:: @ 82DBE02
.incbin "baserom.gba", 0x2dbe02, 0x10
BattleScript_ShakeBallThrow::
printfromtable gBallEscapeStringIds
waitmessage 0x40
jumpifword NO_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_SAFARI, BattleScript_82DBE01
jumpifbyte NOT_EQUAL, gNumSafariBalls, 0x0, BattleScript_82DBE01
printstring STRINGID_OUTOFSAFARIBALLS
waitmessage 0x40
setbyte gBattleOutcome, OUT_OF_BALLS
BattleScript_82DBE01::
finishaction
gUnknown_082DBE12:: @ 82DBE12
.incbin "baserom.gba", 0x2dbe12, 0xa
BattleScript_TrainerBallBlock::
waitmessage 0x40
printstring STRINGID_TRAINERBLOCKEDBALL
waitmessage 0x40
printstring STRINGID_DONTBEATHIEF
waitmessage 0x40
finishaction
gUnknown_082DBE1C:: @ 82DBE1C
.incbin "baserom.gba", 0x2dbe1c, 0x2f
BattleScript_82DBE12::
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
end
gUnknown_082DBE4B:: @ 82DBE4B
.incbin "baserom.gba", 0x2dbe4b, 0x24
BattleScript_82DBE1C::
printstring STRINGID_EMPTYSTRING3
pause 0x30
playse SE_KAIFUKU
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
useitemonopponent
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate ATTACKER
datahpupdate ATTACKER
printstring STRINGID_PKMNSITEMRESTOREDHEALTH
waitmessage 0x40
updatestatusicon ATTACKER
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
finishaction
gUnknown_082DBE6F:: @ 82DBE6F
.incbin "baserom.gba", 0x2dbe6f, 0x22
BattleScript_82DBE4B::
printstring STRINGID_EMPTYSTRING3
pause 0x30
playse SE_KAIFUKU
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
useitemonopponent
printfromtable gTrainerItemCuredStatusStringIds
waitmessage 0x40
updatestatusicon ATTACKER
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
finishaction
gUnknown_082DBE91:: @ 82DBE91
.incbin "baserom.gba", 0x2dbe91, 0x22
BattleScript_82DBE6F::
printstring STRINGID_EMPTYSTRING3
pause 0x30
playse SE_KAIFUKU
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
useitemonopponent
printfromtable gStatUpStringIds
waitmessage 0x40
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
finishaction
BattleScript_RunByUsingItem:: @ 82DBEB3
.incbin "baserom.gba", 0x2dbeb3, 0xA
BattleScript_82DBE91::
printstring STRINGID_EMPTYSTRING3
pause 0x30
playse SE_KAIFUKU
printstring STRINGID_TRAINER1USEDITEM
waitmessage 0x40
useitemonopponent
printfromtable gMistUsedStringIds
waitmessage 0x40
setbyte sMOVEEND_STATE, 0xF
moveend 0x1, 0x0
finishaction
gUnknown_082DBEBD:: @ 82DBEBD
.incbin "baserom.gba", 0x2dbebd, 0x7
BattleScript_RunByUsingItem::
playse SE_NIGERU
setbyte gBattleOutcome, RAN
finishturn
gUnknown_082DBEC4:: @ 82DBEC4
.incbin "baserom.gba", 0x2dbec4, 0x9
BattleScript_ActionWatchesCarefully::
printstring STRINGID_PKMNWATCHINGCAREFULLY
waitmessage 0x40
end2
gUnknown_082DBECD:: @ 82DBECD
.incbin "baserom.gba", 0x2dbecd, 0x16
BattleScript_ActionGetNear::
printfromtable gSafariGetNearStringIds
waitmessage 0x40
end2
gUnknown_082DBEE3:: @ 82DBEE3
.incbin "baserom.gba", 0x2dbee3, 0x15
BattleScript_ActionThrowPokeblock::
printstring STRINGID_THREWPOKEBLOCKATPKMN
waitmessage 0x40
playanimation ATTACKER, ANIM_x4, NULL
printfromtable gSafariPokeblockResultStringIds
waitmessage 0x40
end2
BattleScript_82DBEE3::
printstring STRINGID_RETURNMON
waitmessage 0x40
returnatktoball
waitstate
trainerslidein TARGET
waitstate
printstring STRINGID_YOUTHROWABALLNOWRIGHT
waitmessage 0x40
end2

View File

@ -682,7 +682,7 @@ gMonIcon_Egg:: @ 8D8FC74
.incbin "baserom.gba", 0xd90074, 0x1524
gUnknown_08D91598:: @ 8D91598
sBlenderCenterGfx:: @ 8D91598
.incbin "baserom.gba", 0xd91598, 0x820
gUnknown_08D91DB8:: @ 8D91DB8

View File

@ -28,15 +28,15 @@ g2BlankTilesGfx:: @ 82ED168
.incbin "graphics/interface/blank_1x2.4bpp"
gUnknown_082ED1A8:: @ 82ED1A8
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x000000C8
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x000000C8
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x00000064
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x000000DC
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x00000028
gUnknown_082ED1D0:: @ 82ED1D0
@ -224,15 +224,15 @@ gUnknown_082ED6A5:: @ 82ED6A5
.align 2
gUnknown_082ED6B8:: @ 82ED6B8
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x000000c8
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x000000c8
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x00000064
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x000000dc
.4byte gUnknown_020228C4
.4byte gBlockSendBuffer
.4byte 0x00000028
.align 2

View File

@ -290,7 +290,7 @@ LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE
checkitem ITEM_POKEBLOCK_CASE, 1
compare_var_to_value VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_293D43
specialvar VAR_RESULT, sub_8136EF4
specialvar VAR_RESULT, GetFirstFreePokeblockSlot
compare_var_to_value VAR_RESULT, 65535
goto_eq LilycoveCity_ContestLobby_EventScript_293D39
specialvar VAR_RESULT, PlayerHasBerries
@ -303,7 +303,7 @@ LilycoveCity_ContestLobby_EventScript_293CEE:: @ 8293CEE
LilycoveCity_ContestLobby_EventScript_293D2C:: @ 8293D2C
copyvar VAR_0x8004, VAR_0x8009
fadescreen 1
special sub_807FA80
special DoBerryBlending
waitstate
releaseall
end
@ -365,7 +365,7 @@ LilycoveCity_ContestLobby_EventScript_293DC6:: @ 8293DC6
compare_var_to_value VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_293E14
msgbox LilycoveCity_ContestLobby_Text_293237, 4
specialvar VAR_RESULT, sub_8136EF4
specialvar VAR_RESULT, GetFirstFreePokeblockSlot
compare_var_to_value VAR_RESULT, 65535
goto_if 5, LilycoveCity_ContestLobby_EventScript_293D91
compare_var_to_value VAR_RESULT, 65535
@ -431,7 +431,7 @@ LilycoveCity_ContestLobby_EventScript_293EA3:: @ 8293EA3
compare_var_to_value VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_293EF1
msgbox LilycoveCity_ContestLobby_Text_29354E, 4
specialvar VAR_RESULT, sub_8136EF4
specialvar VAR_RESULT, GetFirstFreePokeblockSlot
compare_var_to_value VAR_RESULT, 65535
goto_if 5, LilycoveCity_ContestLobby_EventScript_293E6E
compare_var_to_value VAR_RESULT, 65535
@ -470,7 +470,7 @@ LilycoveCity_ContestLobby_EventScript_293F28:: @ 8293F28
specialvar VAR_RESULT, PlayerHasBerries
compare_var_to_value VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_293F1E
specialvar VAR_RESULT, sub_8136EF4
specialvar VAR_RESULT, GetFirstFreePokeblockSlot
compare_var_to_value VAR_RESULT, 65535
goto_if 5, LilycoveCity_ContestLobby_EventScript_293F64
compare_var_to_value VAR_RESULT, 65535
@ -536,7 +536,7 @@ LilycoveCity_ContestLobby_EventScript_293FF8:: @ 8293FF8
checkitem ITEM_POKEBLOCK_CASE, 1
compare_var_to_value VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_294028
specialvar VAR_RESULT, sub_8136EF4
specialvar VAR_RESULT, GetFirstFreePokeblockSlot
compare_var_to_value VAR_RESULT, 65535
goto_eq LilycoveCity_ContestLobby_EventScript_294028
dodailyevents
@ -570,7 +570,7 @@ LilycoveCity_ContestLobby_EventScript_294055:: @ 8294055
checkitem ITEM_POKEBLOCK_CASE, 1
compare_var_to_value VAR_RESULT, 0
goto_eq LilycoveCity_ContestLobby_EventScript_29416C
specialvar VAR_RESULT, sub_8136EF4
specialvar VAR_RESULT, GetFirstFreePokeblockSlot
compare_var_to_value VAR_RESULT, 65535
goto_if 5, LilycoveCity_ContestLobby_EventScript_294092
compare_var_to_value VAR_RESULT, 65535
@ -635,7 +635,7 @@ LilycoveCity_ContestLobby_EventScript_294147:: @ 8294147
removeobject 239
removeobject 238
removeobject 237
special sub_807FA80
special DoBerryBlending
waitstate
releaseall
end

View File

@ -170,8 +170,8 @@ gSpecials:: @ 81DBA64
def_special sub_80B086C
def_special ChangePokemonNickname
def_special sub_81B94B0
def_special sub_8136EF4
def_special sub_807FA80
def_special GetFirstFreePokeblockSlot
def_special DoBerryBlending
def_special sub_8142BC8
def_special sub_813BD60
def_special sub_813BCA8

View File

@ -272,6 +272,8 @@
#define BS_GET_TARGET 0
#define BS_GET_ATTACKER 1
#define BS_GET_EFFECT_BANK 2
#define BS_GET_gBank1 3
#define BS_GET_BANK_0 7
#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update
#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability
#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability
@ -704,13 +706,6 @@ struct BattleStruct
extern struct BattleStruct* gBattleStruct;
#define MEME_ACCESS_U8(structName, structPtr, arrayId, offsetField, value) \
{ \
u8* var2 = (u8*)((u32)(arrayId)); \
var2 = (u32)(structPtr) + var2; \
var2[offsetof(struct structName, offsetField)] = value; \
}
#define GET_MOVE_TYPE(move, typeArg) \
{ \
if (gBattleStruct->dynamicMoveType) \
@ -835,20 +830,20 @@ extern struct BattleStruct* gBattleStruct;
#define GET_STAT_BUFF_VALUE(n)(((n >> 4) & 7)) // 0x10, 0x20, 0x40
#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
#define SET_STAT_BUFF_ID(n)((n & 0xF))
#define SET_STAT_BUFF_VALUE(n)(((s8)(((s8)(n) << 4)) & 0xF0))
#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + (stage << 4) + (goesDown << 7))
struct BattleScripting
{
s32 painSplitHp;
s32 bideDmg;
u8 multihitString[6];
u8 dmgMultiplier;
u8 field_F;
u8 twoTurnsMoveStringId;
u8 animArg1;
u8 animArg2;
u8 field_12;
u8 field_13;
u16 tripleKickPower;
u8 atk49_state;
u8 field_15;
u8 field_16;

View File

@ -198,7 +198,7 @@ void EmitBallThrowAnim(u8 bufferId, u8 caseId);
void EmitPause(u8 bufferId, u8 toWait, void *data); // unused
void EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 movePower, s32 dmg, u8 friendship, struct DisableStruct *disableStructPtr, u8 multihit);
void EmitPrintString(u8 bufferId, u16 stringId);
void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringId);
void EmitPrintSelectionString(u8 bufferId, u16 stringId);
void EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2);
void EmitUnknownYesNoBox(u8 bufferId);
void EmitChooseMove(u8 bufferId, bool8 isDoubleBattle, bool8 NoPpNumber, struct ChooseMoveStruct *movePpData);
@ -224,7 +224,7 @@ void EmitCmd39(u8 bufferId); // unused
void EmitCmd40(u8 bufferId); // unused
void EmitHitAnimation(u8 bufferId);
void EmitCmd42(u8 bufferId);
void EmitEffectivenessSound(u8 bufferId, u16 songId);
void EmitPlaySE(u8 bufferId, u16 songId);
void EmitPlayFanfareOrBGM(u8 bufferId, u16 songId, bool8 playBGM);
void EmitFaintingCry(u8 bufferId);
void EmitIntroSlide(u8 bufferId, u8 terrainId);

View File

@ -67,13 +67,21 @@
#define B_BUFF_STAT 5
#define B_BUFF_SPECIES 6
#define B_BUFF_MON_NICK 7
#define B_BUFF_NEGATIVE_FLAVOUR 8
#define B_BUFF_NEGATIVE_FLAVOR 8
#define B_BUFF_ABILITY 9
#define B_BUFF_ITEM 10
#define B_BUFF_PLACEHOLDER_BEGIN 0xFD
#define B_BUFF_EOS 0xFF
#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \
textVar[2] = flavorId; \
textVar[3] = B_BUFF_EOS; \
}
#define PREPARE_STAT_BUFFER(textVar, statId) \
{ \
textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \
@ -189,7 +197,7 @@
struct StringInfoBattle
{
u16 currentMove;
u16 lastMove;
u16 originallyUsedMove;
u16 lastItem;
u8 lastAbility;
u8 scrActive;

View File

@ -153,12 +153,12 @@ enum
EFFECT_EARTHQUAKE,
EFFECT_FUTURE_SIGHT,
EFFECT_GUST,
EFFECT_FLINCH_HIT_2, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
EFFECT_STOMP, // STOMP ASTONISH EXTRASENSORY NEEDLE_ARM
EFFECT_SOLARBEAM,
EFFECT_THUNDER,
EFFECT_TELEPORT,
EFFECT_BEAT_UP,
EFFECT_FLY,
EFFECT_SEMI_INVULNERABLE,
EFFECT_DEFENSE_CURL,
EFFECT_SOFTBOILED,
EFFECT_FAKE_OUT,

View File

@ -1,6 +1,10 @@
#ifndef GUARD_BATTLE_SCRIPT_COMMANDS_H
#define GUARD_BATTLE_SCRIPT_COMMANDS_H
#define NO_ACC_CALC 0xFFFE
#define NO_ACC_CALC_CHECK_LOCK_ON 0xFFFF
#define ACC_CURR_MOVE 0
#define CMP_EQUAL 0x0
#define CMP_NOT_EQUAL 0x1
#define CMP_GREATER_THAN 0x2
@ -21,7 +25,7 @@
#define VARIOUS_CANCEL_MULTI_TURN_MOVES 0
#define VARIOUS_SET_MAGIC_COAT_TARGET 1
#define VARIOUS_CAN_RUN_FROM_BATTLE 2
#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2
#define VARIOUS_GET_MOVE_TARGET 3
#define VARIOUS_RESET_INTIMIDATE_TRACE_BITS 5
#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6

640
include/battle_scripts.h Normal file
View File

@ -0,0 +1,640 @@
#ifndef GUARD_BATTLE_SCRIPTS_H
#define GUARD_BATTLE_SCRIPTS_H
extern const u8 BattleScript_EffectHit[];
extern const u8 BattleScript_HitFromAtkCanceler[];
extern const u8 BattleScript_HitFromAccCheck[];
extern const u8 BattleScript_HitFromAtkString[];
extern const u8 BattleScript_HitFromCritCalc[];
extern const u8 BattleScript_HitFromAtkAnimation[];
extern const u8 BattleScript_MoveEnd[];
extern const u8 BattleScript_MakeMoveMissed[];
extern const u8 BattleScript_PrintMoveMissed[];
extern const u8 BattleScript_MoveMissedPause[];
extern const u8 BattleScript_MoveMissed[];
extern const u8 BattleScript_EffectSleep[];
extern const u8 BattleScript_AlreadyAsleep[];
extern const u8 BattleScript_WasntAffected[];
extern const u8 BattleScript_CantMakeAsleep[];
extern const u8 BattleScript_EffectPoisonHit[];
extern const u8 BattleScript_EffectAbsorb[];
extern const u8 BattleScript_82D8B26[];
extern const u8 BattleScript_82D8B2E[];
extern const u8 BattleScript_82D8B45[];
extern const u8 BattleScript_EffectBurnHit[];
extern const u8 BattleScript_EffectFreezeHit[];
extern const u8 BattleScript_EffectParalyzeHit[];
extern const u8 BattleScript_EffectExplosion[];
extern const u8 BattleScript_82D8B94[];
extern const u8 BattleScript_82D8B96[];
extern const u8 BattleScript_82D8BCF[];
extern const u8 BattleScript_82D8BEA[];
extern const u8 BattleScript_EffectDreamEater[];
extern const u8 BattleScript_82D8C0E[];
extern const u8 BattleScript_82D8C18[];
extern const u8 BattleScript_82D8C56[];
extern const u8 BattleScript_EffectMirrorMove[];
extern const u8 BattleScript_EffectAttackUp[];
extern const u8 BattleScript_EffectDefenseUp[];
extern const u8 BattleScript_EffectSpecialAttackUp[];
extern const u8 BattleScript_EffectEvasionUp[];
extern const u8 BattleScript_EffectStatUp[];
extern const u8 BattleScript_EffectStatUpAfterAtkCanceler[];
extern const u8 BattleScript_StatUpAttackAnim[];
extern const u8 BattleScript_StatUpDoAnim[];
extern const u8 BattleScript_StatUpPrintString[];
extern const u8 BattleScript_StatUpEnd[];
extern const u8 BattleScript_StatUp[];
extern const u8 BattleScript_EffectAttackDown[];
extern const u8 BattleScript_EffectDefenseDown[];
extern const u8 BattleScript_EffectSpeedDown[];
extern const u8 BattleScript_EffectAccuracyDown[];
extern const u8 BattleScript_EffectEvasionDown[];
extern const u8 BattleScript_EffectStatDown[];
extern const u8 BattleScript_StatDownDoAnim[];
extern const u8 BattleScript_StatDownPrintString[];
extern const u8 BattleScript_82D8D60[];
extern const u8 BattleScript_StatDown[];
extern const u8 BattleScript_EffectHaze[];
extern const u8 BattleScript_EffectBide[];
extern const u8 BattleScript_EffectRampage[];
extern const u8 BattleScript_82D8DAE[];
extern const u8 BattleScript_EffectRoar[];
extern const u8 BattleScript_EffectMultiHit[];
extern const u8 BattleScript_82D8DFD[];
extern const u8 BattleScript_82D8E1F[];
extern const u8 BattleScript_82D8E71[];
extern const u8 BattleScript_82D8E74[];
extern const u8 BattleScript_82D8E93[];
extern const u8 BattleScript_EffectConversion[];
extern const u8 BattleScript_EffectFlinchHit[];
extern const u8 BattleScript_EffectRestoreHp[];
extern const u8 BattleScript_EffectToxic[];
extern const u8 BattleScript_AlreadyPoisoned[];
extern const u8 BattleScript_ImmunityProtected[];
extern const u8 BattleScript_EffectPayDay[];
extern const u8 BattleScript_EffectLightScreen[];
extern const u8 BattleScript_EffectTriAttack[];
extern const u8 BattleScript_EffectRest[];
extern const u8 BattleScript_RestCantSleep[];
extern const u8 BattleScript_RestIsAlreadyAsleep[];
extern const u8 BattleScript_EffectOHKO[];
extern const u8 BattleScript_KOFail[];
extern const u8 BattleScript_EffectRazorWind[];
extern const u8 BattleScript_TwoTurnMovesSecondTurn[];
extern const u8 BattleScriptFirstChargingTurn[];
extern const u8 BattleScript_EffectSuperFang[];
extern const u8 BattleScript_EffectDragonRage[];
extern const u8 BattleScript_EffectTrap[];
extern const u8 BattleScript_DoWrapEffect[];
extern const u8 BattleScript_EffectDoubleHit[];
extern const u8 BattleScript_EffectRecoilIfMiss[];
extern const u8 BattleScript_82D9135[];
extern const u8 BattleScript_EffectMist[];
extern const u8 BattleScript_EffectFocusEnergy[];
extern const u8 BattleScript_EffectRecoil[];
extern const u8 BattleScript_EffectConfuse[];
extern const u8 BattleScript_AlreadyConfused[];
extern const u8 BattleScript_EffectAttackUp2[];
extern const u8 BattleScript_EffectDefenseUp2[];
extern const u8 BattleScript_EffectSpeedUp2[];
extern const u8 BattleScript_EffectSpecialAttackUp2[];
extern const u8 BattleScript_EffectSpecialDefenseUp2[];
extern const u8 BattleScript_EffectTransform[];
extern const u8 BattleScript_EffectAttackDown2[];
extern const u8 BattleScript_EffectDefenseDown2[];
extern const u8 BattleScript_EffectSpeedDown2[];
extern const u8 BattleScript_EffectSpecialDefenseDown2[];
extern const u8 BattleScript_EffectReflect[];
extern const u8 BattleScript_PrintReflectLightScreenSafeguardString[];
extern const u8 BattleScript_EffectPoison[];
extern const u8 BattleScript_EffectParalyze[];
extern const u8 BattleScript_AlreadyParalyzed[];
extern const u8 BattleScript_LimberProtected[];
extern const u8 BattleScript_EffectAttackDownHit[];
extern const u8 BattleScript_EffectDefenseDownHit[];
extern const u8 BattleScript_EffectSpeedDownHit[];
extern const u8 BattleScript_EffectSpecialAttackDownHit[];
extern const u8 BattleScript_EffectSpecialDefenseDownHit[];
extern const u8 BattleScript_EffectAccuracyDownHit[];
extern const u8 BattleScript_EffectSkyAttack[];
extern const u8 BattleScript_EffectConfuseHit[];
extern const u8 BattleScript_EffectTwineedle[];
extern const u8 BattleScript_EffectSubstitute[];
extern const u8 BattleScript_SubstituteAnim[];
extern const u8 BattleScript_SubstituteString[];
extern const u8 BattleScript_AlreadyHasSubstitute[];
extern const u8 BattleScript_EffectRecharge[];
extern const u8 BattleScript_MoveUsedMustRecharge[];
extern const u8 BattleScript_EffectRage[];
extern const u8 BattleScript_RageMiss[];
extern const u8 BattleScript_EffectMimic[];
extern const u8 BattleScript_EffectMetronome[];
extern const u8 BattleScript_EffectLeechSeed[];
extern const u8 BattleScript_DoLeechSeed[];
extern const u8 BattleScript_EffectSplash[];
extern const u8 BattleScript_EffectDisable[];
extern const u8 BattleScript_EffectLevelDamage[];
extern const u8 BattleScript_EffectPsywave[];
extern const u8 BattleScript_EffectCounter[];
extern const u8 BattleScript_EffectEncore[];
extern const u8 BattleScript_EffectPainSplit[];
extern const u8 BattleScript_EffectSnore[];
extern const u8 BattleScript_SnoreIsAsleep[];
extern const u8 BattleScript_DoSnore[];
extern const u8 BattleScript_EffectConversion2[];
extern const u8 BattleScript_EffectLockOn[];
extern const u8 BattleScript_EffectSketch[];
extern const u8 BattleScript_EffectSleepTalk[];
extern const u8 BattleScript_SleepTalkIsAsleep[];
extern const u8 BattleScript_SleepTalkUsingMove[];
extern const u8 BattleScript_EffectDestinyBond[];
extern const u8 BattleScript_EffectFlail[];
extern const u8 BattleScript_EffectSpite[];
extern const u8 BattleScript_EffectHealBell[];
extern const u8 BattleScript_CheckHealBellMon2Unaffected[];
extern const u8 BattleScript_PartyHealEnd[];
extern const u8 BattleScript_EffectTripleKick[];
extern const u8 BattleScript_TripleKickLoop[];
extern const u8 BattleScript_DoTripleKickAttack[];
extern const u8 BattleScript_TripleKickNoMoreHits[];
extern const u8 BattleScript_TripleKickPrintStrings[];
extern const u8 BattleScript_TripleKickEnd[];
extern const u8 BattleScript_EffectThief[];
extern const u8 BattleScript_EffectMeanLook[];
extern const u8 BattleScript_EffectNightmare[];
extern const u8 BattleScript_NightmareWorked[];
extern const u8 BattleScript_EffectMinimize[];
extern const u8 BattleScript_EffectCurse[];
extern const u8 BattleScript_CurseTrySpeed[];
extern const u8 BattleScript_CurseTryAttack[];
extern const u8 BattleScript_CurseTryDefence[];
extern const u8 BattleScript_CurseEnd[];
extern const u8 BattleScript_GhostCurse[];
extern const u8 BattleScript_DoGhostCurse[];
extern const u8 BattleScript_EffectProtect[];
extern const u8 BattleScript_EffectSpikes[];
extern const u8 BattleScript_EffectForesight[];
extern const u8 BattleScript_EffectPerishSong[];
extern const u8 BattleScript_PerishSongLoop[];
extern const u8 BattleScript_PerishSongLoopIncrement[];
extern const u8 BattleScript_PerishSongNotAffected[];
extern const u8 BattleScript_EffectSandstorm[];
extern const u8 BattleScript_EffectRollout[];
extern const u8 BattleScript_RolloutCheckAccuracy[];
extern const u8 BattleScript_RolloutHit[];
extern const u8 BattleScript_EffectSwagger[];
extern const u8 BattleScript_SwaggerTryConfuse[];
extern const u8 BattleScript_EffectFuryCutter[];
extern const u8 BattleScript_FuryCutterHit[];
extern const u8 BattleScript_EffectAttract[];
extern const u8 BattleScript_EffectReturn[];
extern const u8 BattleScript_EffectPresent[];
extern const u8 BattleScript_EffectSafeguard[];
extern const u8 BattleScript_EffectThawHit[];
extern const u8 BattleScript_EffectMagnitude[];
extern const u8 BattleScript_EffectBatonPass[];
extern const u8 BattleScript_EffectRapidSpin[];
extern const u8 BattleScript_EffectSonicboom[];
extern const u8 BattleScript_EffectMorningSun[];
extern const u8 BattleScript_EffectHiddenPower[];
extern const u8 BattleScript_EffectRainDance[];
extern const u8 BattleScript_MoveWeatherChange[];
extern const u8 BattleScript_EffectSunnyDay[];
extern const u8 BattleScript_EffectDefenseUpHit[];
extern const u8 BattleScript_EffectAttackUpHit[];
extern const u8 BattleScript_EffectAllStatsUpHit[];
extern const u8 BattleScript_EffectBellyDrum[];
extern const u8 BattleScript_EffectPsychUp[];
extern const u8 BattleScript_EffectMirrorCoat[];
extern const u8 BattleScript_EffectSkullBash[];
extern const u8 BattleScript_SkullBashEnd[];
extern const u8 BattleScript_EffectTwister[];
extern const u8 BattleScript_FlinchEffect[];
extern const u8 BattleScript_EffectEarthquake[];
extern const u8 BattleScript_82D9C44[];
extern const u8 BattleScript_82D9C64[];
extern const u8 BattleScript_82D9C73[];
extern const u8 BattleScript_82D9CAC[];
extern const u8 BattleScript_EffectFutureSight[];
extern const u8 BattleScript_EffectGust[];
extern const u8 BattleScript_EffectStomp[];
extern const u8 BattleScript_EffectSolarbeam[];
extern const u8 BattleScript_SolarbeamDecideTurn[];
extern const u8 BattleScript_SolarbeamOnFirstTurn[];
extern const u8 BattleScript_EffectThunder[];
extern const u8 BattleScript_EffectTeleport[];
extern const u8 BattleScript_EffectBeatUp[];
extern const u8 BattleScript_BeatUpLoop[];
extern const u8 BattleScript_BeatUpAttack[];
extern const u8 BattleScript_BeatUpEnd[];
extern const u8 BattleScript_EffectSemiInvulnerable[];
extern const u8 BattleScript_FirstTurnBounce[];
extern const u8 BattleScript_FirstTurnDive[];
extern const u8 BattleScript_FirstTurnFly[];
extern const u8 BattleScript_FirstTurnSemiInvulnerable[];
extern const u8 BattleScript_SecondTurnSemiInvulnerable[];
extern const u8 BattleScript_SemiInvulnerableTryHit[];
extern const u8 BattleScript_SemiInvulnerableMiss[];
extern const u8 BattleScript_EffectDefenseCurl[];
extern const u8 BattleScript_DefenseCurlDoStatUpAnim[];
extern const u8 BattleScript_EffectSoftboiled[];
extern const u8 BattleScript_PresentHealTarget[];
extern const u8 BattleScript_AlreadyAtFullHp[];
extern const u8 BattleScript_EffectFakeOut[];
extern const u8 BattleScript_ButItFailedAtkStringPpReduce[];
extern const u8 BattleScript_ButItFailedPpReduce[];
extern const u8 BattleScript_ButItFailed[];
extern const u8 BattleScript_NotAffected[];
extern const u8 BattleScript_EffectUproar[];
extern const u8 BattleScript_UproarHit[];
extern const u8 BattleScript_EffectStockpile[];
extern const u8 BattleScript_EffectSpitUp[];
extern const u8 BattleScript_SpitUpFail[];
extern const u8 BattleScript_82D9FA2[];
extern const u8 BattleScript_EffectSwallow[];
extern const u8 BattleScript_SwallowFail[];
extern const u8 BattleScript_EffectHail[];
extern const u8 BattleScript_EffectTorment[];
extern const u8 BattleScript_EffectFlatter[];
extern const u8 BattleScript_FlatterTryConfuse[];
extern const u8 BattleScript_EffectWillOWisp[];
extern const u8 BattleScript_WaterVeilPrevents[];
extern const u8 BattleScript_AlreadyBurned[];
extern const u8 BattleScript_EffectMemento[];
extern const u8 BattleScript_82DA119[];
extern const u8 BattleScript_82DA13C[];
extern const u8 BattleScript_82DA148[];
extern const u8 BattleScript_82DA153[];
extern const u8 BattleScript_82DA15A[];
extern const u8 BattleScript_EffectFacade[];
extern const u8 BattleScript_FacadeDoubleDmg[];
extern const u8 BattleScript_EffectFocusPunch[];
extern const u8 BattleScript_EffectSmellingsalt[];
extern const u8 BattleScript_82DA1BA[];
extern const u8 BattleScript_EffectFollowMe[];
extern const u8 BattleScript_EffectNaturePower[];
extern const u8 BattleScript_EffectCharge[];
extern const u8 BattleScript_EffectTaunt[];
extern const u8 BattleScript_EffectHelpingHand[];
extern const u8 BattleScript_EffectTrick[];
extern const u8 BattleScript_EffectRolePlay[];
extern const u8 BattleScript_EffectWish[];
extern const u8 BattleScript_EffectAssist[];
extern const u8 BattleScript_EffectIngrain[];
extern const u8 BattleScript_EffectSuperpower[];
extern const u8 BattleScript_EffectMagicCoat[];
extern const u8 BattleScript_EffectRecycle[];
extern const u8 BattleScript_EffectRevenge[];
extern const u8 BattleScript_EffectBrickBreak[];
extern const u8 BattleScript_82DA306[];
extern const u8 BattleScript_82DA319[];
extern const u8 BattleScript_EffectYawn[];
extern const u8 BattleScript_82DA378[];
extern const u8 BattleScript_82DA382[];
extern const u8 BattleScript_EffectKnockOff[];
extern const u8 BattleScript_EffectEndeavor[];
extern const u8 BattleScript_EffectEruption[];
extern const u8 BattleScript_EffectSkillSwap[];
extern const u8 BattleScript_EffectImprison[];
extern const u8 BattleScript_EffectRefresh[];
extern const u8 BattleScript_EffectGrudge[];
extern const u8 BattleScript_EffectSnatch[];
extern const u8 BattleScript_EffectLowKick[];
extern const u8 BattleScript_EffectSecretPower[];
extern const u8 BattleScript_EffectDoubleEdge[];
extern const u8 BattleScript_EffectTeeterDance[];
extern const u8 BattleScript_82DA47B[];
extern const u8 BattleScript_82DA4C7[];
extern const u8 BattleScript_82DA4D0[];
extern const u8 BattleScript_82DA4E5[];
extern const u8 BattleScript_82DA4F3[];
extern const u8 BattleScript_82DA501[];
extern const u8 BattleScript_82DA50F[];
extern const u8 BattleScript_82DA520[];
extern const u8 BattleScript_EffectMudSport[];
extern const u8 BattleScript_EffectPoisonFang[];
extern const u8 BattleScript_EffectWeatherBall[];
extern const u8 BattleScript_EffectOverheat[];
extern const u8 BattleScript_EffectTickle[];
extern const u8 BattleScript_TickleDoMoveAnim[];
extern const u8 BattleScript_TickleTryLowerDef[];
extern const u8 BattleScript_TickleEnd[];
extern const u8 BattleScript_CantLowerMultipleStats[];
extern const u8 BattleScript_EffectCosmicPower[];
extern const u8 BattleScript_CosmicPowerDoMoveAnim[];
extern const u8 BattleScript_CosmicPowerTrySpDef[];
extern const u8 BattleScript_CosmicPowerEnd[];
extern const u8 BattleScript_EffectSkyUppercut[];
extern const u8 BattleScript_EffectBulkUp[];
extern const u8 BattleScript_BulkUpDoMoveAnim[];
extern const u8 BattleScript_BulkUpTryDef[];
extern const u8 BattleScript_BulkUpEnd[];
extern const u8 BattleScript_EffectCalmMind[];
extern const u8 BattleScript_CalmMindDoMoveAnim[];
extern const u8 BattleScript_CalmMindTrySpDef[];
extern const u8 BattleScript_CalmMindEnd[];
extern const u8 BattleScript_CantRaiseMultipleStats[];
extern const u8 BattleScript_EffectDragonDance[];
extern const u8 BattleScript_DragonDanceDoMoveAnim[];
extern const u8 BattleScript_DragonDanceTrySpeed[];
extern const u8 BattleScript_DragonDanceEnd[];
extern const u8 BattleScript_EffectCamouflage[];
extern const u8 BattleScript_FaintAttacker[];
extern const u8 BattleScript_FaintTarget[];
extern const u8 BattleScript_82DA7C4[];
extern const u8 BattleScript_82DA7CD[];
extern const u8 BattleScript_82DA816[];
extern const u8 BattleScript_82DA8D0[];
extern const u8 BattleScript_82DA8F5[];
extern const u8 BattleScript_82DA8F6[];
extern const u8 BattleScript_82DA8FC[];
extern const u8 BattleScript_82DA908[];
extern const u8 BattleScript_82DA92C[];
extern const u8 BattleScript_LocalTrainerBattleWon[];
extern const u8 BattleScript_LocalTwoTrainersDefeated[];
extern const u8 BattleScript_LocalBattleWonLoseTexts[];
extern const u8 BattleScript_LocalBattleWonReward[];
extern const u8 BattleScript_PayDayMoneyAndPickUpItems[];
extern const u8 BattleScript_LocalBattleLost[];
extern const u8 BattleScript_LocalBattleLostPrintWhiteOut[];
extern const u8 BattleScript_LocalBattleLostEnd[];
extern const u8 BattleScript_CheckDomeDrew[];
extern const u8 BattleScript_LocalBattleLostPrintTrainersWinText[];
extern const u8 BattleScript_LocalBattleLostDoTrainer2WinText[];
extern const u8 BattleScript_LocalBattleLostEnd_[];
extern const u8 BattleScript_82DAA0B[];
extern const u8 BattleScript_82DAA31[];
extern const u8 BattleScript_LinkBattleWonOrLost[];
extern const u8 BattleScript_LinkBattleWonOrLostWaitEnd[];
extern const u8 BattleScript_82DAA5C[];
extern const u8 BattleScript_82DAA83[];
extern const u8 BattleScript_FrontierTrainerBattleWon[];
extern const u8 BattleScript_82DAAAB[];
extern const u8 BattleScript_82DAAAE[];
extern const u8 BattleScript_82DAACB[];
extern const u8 BattleScript_82DAADA[];
extern const u8 BattleScript_SmokeBallEscape[];
extern const u8 BattleScript_RanAwayUsingMonAbility[];
extern const u8 BattleScript_GotAwaySafely[];
extern const u8 BattleScript_WildMonFled[];
extern const u8 BattleScript_PrintCantRunFromTrainer[];
extern const u8 BattleScript_PrintFailedToRunString[];
extern const u8 BattleScript_PrintCantEscapeFromBattle[];
extern const u8 BattleScript_PrintFullBox[];
extern const u8 BattleScript_ActionSwitch[];
extern const u8 BattleScript_82DAB35[];
extern const u8 BattleScript_82DAB37[];
extern const u8 BattleScript_82DAB44[];
extern const u8 BattleScript_82DAB77[];
extern const u8 BattleScript_82DABB8[];
extern const u8 BattleScript_Pausex20[];
extern const u8 BattleScript_LevelUp[];
extern const u8 BattleScript_TryLearnMoveLoop[];
extern const u8 BattleScript_AskToLearnMove[];
extern const u8 BattleScript_ForgotAndLearnedNewMove[];
extern const u8 BattleScript_LearnedNewMove[];
extern const u8 BattleScript_LearnMoveReturn[];
extern const u8 BattleScript_RainContinuesOrEnds[];
extern const u8 BattleScript_RainContinuesOrEndsEnd[];
extern const u8 BattleScript_DamagingWeatherContinues[];
extern const u8 BattleScript_DamagingWeatherLoop[];
extern const u8 BattleScript_DamagingWeatherLoopIncrement[];
extern const u8 BattleScript_DamagingWeatherContinuesEnd[];
extern const u8 BattleScript_SandStormHailEnds[];
extern const u8 BattleScript_SunlightContinues[];
extern const u8 BattleScript_SunlightFaded[];
extern const u8 BattleScript_OverworldWeatherStarts[];
extern const u8 BattleScript_SideStatusWoreOff[];
extern const u8 BattleScript_SafeguardProtected[];
extern const u8 BattleScript_SafeguardEnds[];
extern const u8 BattleScript_LeechSeedTurnDrain[];
extern const u8 BattleScript_82DAD47[];
extern const u8 BattleScript_82DAD4D[];
extern const u8 BattleScript_BideStoringEnergy[];
extern const u8 BattleScript_BideAttack[];
extern const u8 BattleScript_BideNoEnergyToAttack[];
extern const u8 BattleScript_82DADD8[];
extern const u8 BattleScript_82DADF1[];
extern const u8 BattleScript_MistProtected[];
extern const u8 BattleScript_RageIsBuilding[];
extern const u8 BattleScript_MoveUsedIsDisabled[];
extern const u8 BattleScript_SelectingDisabledMove[];
extern const u8 BattleScript_DisabledNoMore[];
extern const u8 BattleScript_82DAE2A[];
extern const u8 BattleScript_82DAE2D[];
extern const u8 BattleScript_EncoredNoMore[];
extern const u8 BattleScript_DestinyBondTakesLife[];
extern const u8 BattleScript_SpikesOnAttacker[];
extern const u8 BattleScript_82DAE7A[];
extern const u8 BattleScript_SpikesOnTarget[];
extern const u8 BattleScript_82DAEB1[];
extern const u8 BattleScript_SpikesOngBank1[];
extern const u8 BattleScript_82DAEE8[];
extern const u8 BattleScript_82DAEFE[];
extern const u8 BattleScript_PerishSongTakesLife[];
extern const u8 BattleScript_PerishSongCountGoesDown[];
extern const u8 BattleScript_AllStatsUp[];
extern const u8 BattleScript_82DAF54[];
extern const u8 BattleScript_82DAF72[];
extern const u8 BattleScript_82DAF86[];
extern const u8 BattleScript_82DAF9A[];
extern const u8 BattleScript_82DAFAE[];
extern const u8 BattleScript_82DAFC2[];
extern const u8 BattleScript_RapidSpinAway[];
extern const u8 BattleScript_WrapFree[];
extern const u8 BattleScript_LeechSeedFree[];
extern const u8 BattleScript_SpikesFree[];
extern const u8 BattleScript_MonTookFutureAttack[];
extern const u8 BattleScript_82DB001[];
extern const u8 BattleScript_82DB008[];
extern const u8 BattleScript_82DB020[];
extern const u8 BattleScript_82DB027[];
extern const u8 BattleScript_82DB03F[];
extern const u8 BattleScript_82DB058[];
extern const u8 BattleScript_NoMovesLeft[];
extern const u8 BattleScript_SelectingMoveWithNoPP[];
extern const u8 BattleScript_NoPPForMove[];
extern const u8 BattleScript_SelectingTormentedMove[];
extern const u8 BattleScript_82DB08D[];
extern const u8 BattleScript_82DB098[];
extern const u8 BattleScript_SelectingNotAllowedMoveTaunt[];
extern const u8 BattleScript_MoveUsedIsTaunted[];
extern const u8 BattleScript_82DB0AF[];
extern const u8 BattleScript_WishComesTrue[];
extern const u8 BattleScript_82DB0DE[];
extern const u8 BattleScript_IngrainTurnHeal[];
extern const u8 BattleScript_82DB109[];
extern const u8 BattleScript_AtkDefDown[];
extern const u8 BattleScript_82DB144[];
extern const u8 BattleScript_82DB167[];
extern const u8 BattleScript_KnockedOff[];
extern const u8 BattleScript_MoveUsedIsImprisoned[];
extern const u8 BattleScript_SelectingImprisionedMove[];
extern const u8 BattleScript_82DB185[];
extern const u8 BattleScript_GrudgeTakesPp[];
extern const u8 BattleScript_MagicCoatBounce[];
extern const u8 BattleScript_SnatchedMove[];
extern const u8 BattleScript_EnduredMsg[];
extern const u8 BattleScript_OneHitKOMsg[];
extern const u8 BattleScript_SAtkDown2[];
extern const u8 BattleScript_82DB1FE[];
extern const u8 BattleScript_FocusPunchSetUp[];
extern const u8 BattleScript_MoveUsedIsAsleep[];
extern const u8 BattleScript_MoveUsedWokeUp[];
extern const u8 BattleScript_MonWokeUpInUproar[];
extern const u8 BattleScript_PoisonTurnDmg[];
extern const u8 BattleScript_82DB243[];
extern const u8 BattleScript_82DB245[];
extern const u8 BattleScript_82DB25E[];
extern const u8 BattleScript_BurnTurnDmg[];
extern const u8 BattleScript_MoveUsedIsFrozen[];
extern const u8 BattleScript_MoveUsedUnfroze[];
extern const u8 BattleScript_DefrostedViaFireMove[];
extern const u8 BattleScript_MoveUsedIsParalyzed[];
extern const u8 BattleScript_MoveUsedFlinched[];
extern const u8 BattleScript_PrintUproarOverTurns[];
extern const u8 BattleScript_ThrashConfuses[];
extern const u8 BattleScript_MoveUsedIsConfused[];
extern const u8 BattleScript_82DB2D4[];
extern const u8 BattleScript_82DB2FF[];
extern const u8 BattleScript_MoveUsedIsConfusedNoMore[];
extern const u8 BattleScript_PrintPayDayMoneyString[];
extern const u8 BattleScript_WrapTurnDmg[];
extern const u8 BattleScript_WrapEnds[];
extern const u8 BattleScript_MoveUsedIsInLove[];
extern const u8 BattleScript_MoveUsedIsParalyzedCantAttack[];
extern const u8 BattleScript_NightmareTurnDmg[];
extern const u8 BattleScript_CurseTurnDmg[];
extern const u8 BattleScript_TargetPRLZHeal[];
extern const u8 BattleScript_MoveEffectSleep[];
extern const u8 BattleScript_82DB374[];
extern const u8 BattleScript_YawnMakesAsleep[];
extern const u8 BattleScript_MoveEffectPoison[];
extern const u8 BattleScript_MoveEffectBurn[];
extern const u8 BattleScript_MoveEffectFreeze[];
extern const u8 BattleScript_MoveEffectParalysis[];
extern const u8 BattleScript_MoveEffectUproar[];
extern const u8 BattleScript_MoveEffectToxic[];
extern const u8 BattleScript_MoveEffectPayDay[];
extern const u8 BattleScript_MoveEffectWrap[];
extern const u8 BattleScript_MoveEffectConfusion[];
extern const u8 BattleScript_MoveEffectRecoil33[];
extern const u8 BattleScript_DoRecoil33[];
extern const u8 BattleScript_Recoil33End[];
extern const u8 BattleScript_ItemSteal[];
extern const u8 BattleScript_DrizzleActivates[];
extern const u8 BattleScript_SpeedBoostActivates[];
extern const u8 BattleScript_TraceActivates[];
extern const u8 BattleScript_RainDishActivates[];
extern const u8 BattleScript_SandstreamActivates[];
extern const u8 BattleScript_ShedSkinActivates[];
extern const u8 BattleScript_WeatherFormChanges[];
extern const u8 BattleScript_WeatherFormChangesLoop[];
extern const u8 BattleScript_CastformChange[];
extern const u8 BattleScript_82DB4AF[];
extern const u8 BattleScript_82DB4B8[];
extern const u8 BattleScript_82DB4BE[];
extern const u8 BattleScript_82DB4C1[];
extern const u8 BattleScript_82DB4CD[];
extern const u8 BattleScript_82DB510[];
extern const u8 BattleScript_82DB51B[];
extern const u8 BattleScript_82DB51C[];
extern const u8 BattleScript_DroughtActivates[];
extern const u8 BattleScript_TookAttack[];
extern const u8 BattleScript_SturdyPreventsOHKO[];
extern const u8 BattleScript_DampStopsExplosion[];
extern const u8 BattleScript_MoveHPDrain_PPLoss[];
extern const u8 BattleScript_MoveHPDrain[];
extern const u8 BattleScript_MonMadeMoveUseless_PPLoss[];
extern const u8 BattleScript_MonMadeMoveUseless[];
extern const u8 BattleScript_FlashFireBoost_PPLoss[];
extern const u8 BattleScript_FlashFireBoost[];
extern const u8 BattleScript_82DB5B9[];
extern const u8 BattleScript_AbilityNoStatLoss[];
extern const u8 BattleScript_BRNPrevention[];
extern const u8 BattleScript_PRLZPrevention[];
extern const u8 BattleScript_PSNPrevention[];
extern const u8 BattleScript_ObliviousPreventsAttraction[];
extern const u8 BattleScript_FlinchPrevention[];
extern const u8 BattleScript_OwnTempoPrevents[];
extern const u8 BattleScript_SoundproofProtected[];
extern const u8 BattleScript_AbilityNoSpecificStatLoss[];
extern const u8 BattleScript_StickyHoldActivates[];
extern const u8 BattleScript_ColorChangeActivates[];
extern const u8 BattleScript_RoughSkinActivates[];
extern const u8 BattleScript_CuteCharmActivates[];
extern const u8 BattleScript_ApplySecondaryEffect[];
extern const u8 BattleScript_SynchronizeActivates[];
extern const u8 BattleScript_NoItemSteal[];
extern const u8 BattleScript_AbilityCuredStatus[];
extern const u8 BattleScript_82DB695[];
extern const u8 BattleScript_IgnoresAndUsesRandomMove[];
extern const u8 BattleScript_MoveUsedLoafingAround[];
extern const u8 BattleScript_82DB6C7[];
extern const u8 BattleScript_IgnoresAndFallsAsleep[];
extern const u8 BattleScript_82DB6F0[];
extern const u8 BattleScript_SubstituteFade[];
extern const u8 BattleScript_BerryCurePrlzEnd2[];
extern const u8 BattleScript_BerryCureParRet[];
extern const u8 BattleScript_BerryCurePsnEnd2[];
extern const u8 BattleScript_BerryCurePsnRet[];
extern const u8 BattleScript_BerryCureBrnEnd2[];
extern const u8 BattleScript_BerryCureBrnRet[];
extern const u8 BattleScript_BerryCureFrzEnd2[];
extern const u8 BattleScript_BerryCureFrzRet[];
extern const u8 BattleScript_BerryCureSlpEnd2[];
extern const u8 BattleScript_BerryCureSlpRet[];
extern const u8 BattleScript_BerryCureConfusionEnd2[];
extern const u8 BattleScript_BerryCureConfusionRet[];
extern const u8 BattleScript_BerryCureChosenStatusEnd2[];
extern const u8 BattleScript_BerryCureChosenStatusRet[];
extern const u8 BattleScript_WhiteHerbEnd2[];
extern const u8 BattleScript_WhiteHerbRet[];
extern const u8 BattleScript_ItemHealHP_RemoveItem[];
extern const u8 BattleScript_BerryPPHealEnd2[];
extern const u8 BattleScript_ItemHealHP_End2[];
extern const u8 BattleScript_ItemHealHP_Ret[];
extern const u8 BattleScript_SelectingNotAllowedMoveChoiceItem[];
extern const u8 BattleScript_HangedOnMsg[];
extern const u8 BattleScript_BerryConfuseHealEnd2[];
extern const u8 BattleScript_BerryStatRaiseEnd2[];
extern const u8 BattleScript_82DB85B[];
extern const u8 BattleScript_BerryFocusEnergyEnd2[];
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
extern const u8 BattleScript_82DB87D[];
extern const u8 BattleScript_82DB881[];
extern const u8 BattleScript_82DB887[];
extern const u8 BattleScript_82DB89D[];
extern const u8 BattleScript_82DB8BE[];
extern const u8 BattleScript_82DB8E0[];
extern const u8 BattleScript_82DB8F3[];
extern const u8 BattleScript_82DB973[];
extern const u8 BattleScript_82DB992[];
extern const u8 BattleScript_AskIfWantsToForfeitMatch[];
extern const u8 BattleScript_82DB9C1[];
extern const u8 BattleScript_82DB9C8[];
extern const u8 BattleScript_BallThrow[];
extern const u8 BattleScript_BallThrowByWally[];
extern const u8 BattleScript_SafariBallThrow[];
extern const u8 BattleScript_SuccessBallThrow[];
extern const u8 BattleScript_82DBD92[];
extern const u8 BattleScript_82DBDA5[];
extern const u8 BattleScript_82DBDC2[];
extern const u8 BattleScript_82DBDC3[];
extern const u8 BattleScript_WallyBallThrow[];
extern const u8 BattleScript_ShakeBallThrow[];
extern const u8 BattleScript_82DBE01[];
extern const u8 BattleScript_TrainerBallBlock[];
extern const u8 BattleScript_82DBE12[];
extern const u8 BattleScript_82DBE1C[];
extern const u8 BattleScript_82DBE4B[];
extern const u8 BattleScript_82DBE6F[];
extern const u8 BattleScript_82DBE91[];
extern const u8 BattleScript_RunByUsingItem[];
extern const u8 BattleScript_ActionWatchesCarefully[];
extern const u8 BattleScript_ActionGetNear[];
extern const u8 BattleScript_ActionThrowPokeblock[];
extern const u8 BattleScript_82DBEE3[];
#endif // GUARD_BATTLE_SCRIPTS_H

View File

@ -11,6 +11,16 @@ enum
BERRY_FIRMNESS_SUPER_HARD,
};
enum
{
FLAVOR_SPICY,
FLAVOR_DRY,
FLAVOR_SWEET,
FLAVOR_BITTER,
FLAVOR_SOUR,
FLAVOR_COUNT
};
#define NUM_BERRIES 44
extern const u8 *const gBerryTreeFieldObjectGraphicsIdTablePointers[NUM_BERRIES];

8
include/berry_blender.h Normal file
View File

@ -0,0 +1,8 @@
#ifndef GUARD_BERRY_BLENDER_H
#define GUARD_BERRY_BLENDER_H
void DoBerryBlending(void);
u16 GetBlenderArrowPosition(void);
void ShowBerryBlenderRecordWindow(void);
#endif // GUARD_BERRY_BLENDER_H

View File

@ -28,4 +28,6 @@ void LoadSpecialPokePic(const struct CompressedSpriteSheet *src, void *dest, s32
void LoadSpecialPokePic_2(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
void LoadSpecialPokePic_DontHandleDeoxys(const struct CompressedSpriteSheet *src, void *dest, s32 species, u32 personality, bool8 isFrontPic);
u32 sub_8034974(const u8 *ptr);
#endif // GUARD_DECOMPRESS_H

View File

@ -1,6 +1,7 @@
#ifndef GUARD_FLAGS_H
#define GUARD_FLAGS_H
#define FLAG_340 0x340
#define FLAG_LEGENDARIES_IN_SOOTOPOLIS 0x53
#define FLAG_PENDING_DAYCARE_EGG 0x86

View File

@ -406,7 +406,7 @@ void m4aSoundVSyncOff(void);
void m4aMPlayTempoControl(struct MusicPlayerInfo *mplayInfo, u16 tempo);
void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 volume);
void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch);
void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch);
void m4aMPlayPanpotControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s8 pan);
void ClearModM(struct MusicPlayerTrack *track);
void m4aMPlayModDepthSet(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u8 modDepth);

View File

@ -0,0 +1,6 @@
#ifndef GUARD_ITEM_MENU_ICONS
#define GUARD_ITEM_MENU_ICONS
u8 sub_80D511C(u8 a0, u8 a1, u8 a2, u8 a3);
#endif // GUARD_ITEM_MENU_ICONS

View File

@ -386,6 +386,10 @@ enum
ITEM_OLD_SEA_MAP, // 0x178
};
#define FIRST_BERRY_INDEX ITEM_CHERI_BERRY
#define LAST_BERRY_INDEX ITEM_ENIGMA_BERRY
#define ITEM_TO_BERRY(itemId)(((itemId - FIRST_BERRY_INDEX) + 1))
#define NUM_TECHNICAL_MACHINES 50
#define NUM_HIDDEN_MACHINES 8

View File

@ -2,6 +2,7 @@
#define GUARD_LINK_H
#define MAX_LINK_PLAYERS 4
#define MAX_RFU_PLAYERS 5
#define CMD_LENGTH 8
#define QUEUE_CAPACITY 50
#define BLOCK_BUFFER_SIZE 0x100
@ -131,7 +132,7 @@ struct BlockRequest
extern const struct BlockRequest sBlockRequestLookupTable[5];
extern struct Link gLink;
extern u16 gRecvCmds[CMD_LENGTH][MAX_LINK_PLAYERS];
extern u16 gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
extern u8 gBlockSendBuffer[BLOCK_BUFFER_SIZE];
extern u16 gLinkType;
extern u32 gLinkStatus;

View File

@ -1,6 +1,7 @@
#ifndef GUARD_MENU_H
#define GUARD_MENU_H
#include "text.h"
#include "window.h"
struct MenuAction
@ -31,5 +32,7 @@ void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirs
s8 sub_8198C58(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, const u8 *str);
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
#endif // GUARD_MENU_H

View File

@ -13,5 +13,6 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
#endif // GUARD_NEW_MENU_HELPERS_H

View File

@ -23,23 +23,11 @@ enum
};
void ClearPokeblocks(void);
s8 GetFirstFreePokeblockSlot(void);
bool32 AddPokeblock(struct Pokeblock *pokeblock);
u8 GetHighestPokeblocksFlavorLevel(const struct Pokeblock *pokeblock);
u8 GetPokeblocksFeel(const struct Pokeblock *pokeblock);
u8 GetPokeblocksFlavor(const struct Pokeblock *pokeblock);
s16 PokeblockGetGain(u8, const struct Pokeblock *);
/*
void sub_810B96C(void);
u8 sub_810BA50(s16, s16, u8);
u8 sub_810C9B0(struct Pokeblock *);
s16 GetPokeblockData(const struct Pokeblock *, u8);
u8 sub_810C9E8(struct Pokeblock *);
void sub_810BA7C(u8);
bool8 PokeblockClearIfExists(u8);
u8 sub_810CB68(u8, u8*);
void PokeblockCopyName(struct Pokeblock *pokeblock, u8 *dest);
void CB2_PreparePokeblockFeedScene(void);
#include "main.h"
void sub_8136130(struct Pokeblock *, MainCallback);
*/
#endif // GUARD_POKEBLOCK_H

View File

@ -642,8 +642,8 @@ u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
void UpdatePartyPokerusTime(u16 days);
void PartySpreadPokerus(struct Pokemon *party);
s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2);
s8 GetFlavourRelationByPersonality(u32 personality, u8 a2);
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2);
s8 GetFlavorRelationByPersonality(u32 personality, u8 a2);
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
u8 GetDefaultMoveTarget(u8 atkBank);
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);

View File

@ -65,6 +65,7 @@
#define CHAR_x 0xEC
#define CHAR_y 0xED
#define CHAR_z 0xEE
#define CHAR_SPECIAL_F7 0xF7
#define CHAR_SPECIAL_F9 0xF9
#define CHAR_COLON 0xF0
#define CHAR_PROMPT_SCROLL 0xFA // waits for button press and scrolls dialog
@ -85,6 +86,8 @@
#define NUM_TEXT_PRINTERS 32
#define TEXT_SPEED_FF 0xFF
struct TextPrinterSubStruct
{
u8 font_type:4; // 0x14

View File

@ -13,6 +13,7 @@ void sub_80EE184(void);
void sub_80EEA70(void);
void sub_80F14F8(TVShow *shows);
size_t sub_80EF370(int value);
bool8 Put3CheersForPokeblocksOnTheAir(const u8 *partnersName, u8 flavor, u8 unused, u8 sheen, u8 language);
void SetPokemonAnglerSpecies(u16 species);
#endif //GUARD_TV_H

9
include/unk_text_util.h Normal file
View File

@ -0,0 +1,9 @@
#ifndef GUARD_UNK_TEXT_UTIL_H
#define GUARD_UNK_TEXT_UTIL_H
void UnkTextUtil_Reset(void);
void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr);
u8 *UnkTextUtil_StringExpandPlaceholders(u8 *dest, const u8 *src);
const u8 *UnkTextUtil_GetPtrI(u8 idx);
#endif //GUARD_UNK_TEXT_UTIL_H

View File

@ -83,10 +83,8 @@ SECTIONS {
asm/smokescreen.o(.text);
asm/pokeball.o(.text);
src/load_save.o(.text);
asm/load_save.o(.text);
asm/trade.o(.text);
src/berry_blender.o(.text);
asm/berry_blender.o(.text);
src/play_time.o(.text);
src/new_game.o(.text);
asm/rom4.o(.text);
@ -243,7 +241,7 @@ SECTIONS {
asm/item_menu.o(.text);
asm/list_menu.o(.text);
asm/menu_indicators.o(.text);
asm/unk_text_util.o(.text);
src/unk_text_util.o(.text);
src/save_location.o(.text);
asm/item_icon.o(.text);
asm/party_menu.o(.text);

View File

@ -6,6 +6,7 @@
#include "gpu_regs.h"
#include "unknown_task.h"
#include "battle_setup.h"
#include "battle_scripts.h"
#include "pokemon.h"
#include "palette.h"
#include "task.h"
@ -119,14 +120,14 @@ extern u32 gBattleExecBuffer;
extern u8 gMultiHitCounter;
extern u8 gBattleMoveFlags;
extern s32 gBattleMoveDamage;
extern const u8* gUnknown_02024230[BATTLE_BANKS_COUNT];
extern u16 gUnknownMovesUsedByBanks[BATTLE_BANKS_COUNT];
extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024258[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024260[BATTLE_BANKS_COUNT];
extern const u8* gPalaceSelectionBattleScripts[BATTLE_BANKS_COUNT];
extern u16 gLastPrintedMoves[BATTLE_BANKS_COUNT];
extern u16 gLastMoves[BATTLE_BANKS_COUNT];
extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
extern u16 gLastHitByType[BATTLE_BANKS_COUNT];
extern u16 gLastResultingMoves[BATTLE_BANKS_COUNT];
extern u16 gLockedMoves[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT];
extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02024284[BATTLE_BANKS_COUNT];
extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern u16 gSideAffecting[2];
@ -140,7 +141,7 @@ extern u16 gChosenMovesByBanks[BATTLE_BANKS_COUNT];
extern u8 gCurrentActionFuncId;
extern u8 gLastUsedAbility;
extern u8 gUnknown_0203CF00[];
extern const u8* gBattlescriptPtrsForSelection[BATTLE_BANKS_COUNT];
extern const u8* gSelectionBattleScripts[BATTLE_BANKS_COUNT];
extern const u8* gBattlescriptCurrInstr;
extern u8 gActionsByTurnOrder[BATTLE_BANKS_COUNT];
extern u8 gCurrentTurnActionNumber;
@ -148,7 +149,7 @@ extern u16 gDynamicBasePower;
extern u8 gCritMultiplier;
extern u8 gCurrMovePos;
extern u8 gUnknown_020241E9;
extern u16 gLastUsedMove;
extern u16 gChosenMove;
extern const struct BattleMove gBattleMoves[];
extern const u16 gUnknown_08C004E0[]; // battle textbox palette
@ -178,31 +179,6 @@ extern const u8 gText_Ice[];
extern const u8 gText_Confusion[];
extern const u8 gText_Love[];
// battlescripts
extern const u8 gUnknown_082DB8BE[];
extern const u8 gUnknown_082DB881[];
extern const u8 BattleScript_ActionSelectionItemsCantBeUsed[];
extern const u8 gUnknown_082DAB11[];
extern const u8 gUnknown_082DB9BA[];
extern const u8 gUnknown_082DAAFE[];
extern const u8 gUnknown_082DAB0B[];
extern const u8 BattleScript_FocusPunchSetUp[];
extern const u8 BattleScript_LinkBattleWonOrLost[];
extern const u8 BattleScript_FrontierTrainerBattleWon[];
extern const u8 BattleScript_LocalTrainerBattleWon[];
extern const u8 BattleScript_PayDayMoneyAndPickUpItems[];
extern const u8 BattleScript_LocalBattleLost[];
extern const u8 gUnknown_082DB9C8[];
extern const u8 gUnknown_082DAA0B[];
extern const u8 gUnknown_082DB9C1[];
extern const u8 BattleScript_RanAwayUsingMonAbility[];
extern const u8 BattleScript_SmokeBallEscape[];
extern const u8 BattleScript_GotAwaySafely[];
extern const u8 BattleScript_WildMonFled[];
extern const u8 BattleScript_MoveUsedLoafingAround[];
extern const u8 BattleScript_ActionSwitch[];
extern const u8 BattleScript_PrintFailedToRunString[];
// functions
extern void dp12_8087EA4(void);
extern void sub_80356D0(void);
@ -485,7 +461,7 @@ static void sub_8036A5C(void)
u32 status = 0;
s32 i;
for (i = 0; i < 6; i++)
for (i = 0; i < PARTY_SIZE; i++)
{
species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
hp = GetMonData(&gPlayerParty[i], MON_DATA_HP);
@ -1902,7 +1878,7 @@ static void sub_8038B94(u8 taskId)
}
r7 = 0;
for (i = 0; i < 6; i++)
for (i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(&sp4[i], MON_DATA_SPECIES2);
u16 hp = GetMonData(&sp4[i], MON_DATA_HP);
@ -1926,7 +1902,7 @@ static void sub_8038B94(u8 taskId)
gTasks[taskId].data[3] = r7;
r7 = 0;
for (i = 0; i < 6; i++)
for (i = 0; i < PARTY_SIZE; i++)
{
u16 species = GetMonData(&sp8[i], MON_DATA_SPECIES2);
u16 hp = GetMonData(&sp8[i], MON_DATA_HP);
@ -2765,17 +2741,17 @@ static void BattleStartClearSetData(void)
for (j = 0; j < sizeof(struct DisableStruct); j++)
dataPtr[j] = 0;
gDisableStructs[i].isFirstTurn= 2;
gDisableStructs[i].isFirstTurn = 2;
gUnknown_02024284[i] = 0;
gLastUsedMovesByBanks[i] = 0;
gUnknown_02024250[i] = 0;
gUnknown_02024258[i] = 0;
gUnknown_02024260[i] = 0;
gUnknown_02024270[i] = 0xFF;
gLastMoves[i] = 0;
gLastLandedMoves[i] = 0;
gLastHitByType[i] = 0;
gLastResultingMoves[i] = 0;
gLastHitBy[i] = 0xFF;
gLockedMoves[i] = 0;
gUnknownMovesUsedByBanks[i] = 0;
gLastPrintedMoves[i] = 0;
gBattleResources->flags->flags[i] = 0;
gUnknown_02024230[i] = 0;
gPalaceSelectionBattleScripts[i] = 0;
}
for (i = 0; i < 2; i++)
@ -2932,14 +2908,14 @@ void SwitchInClearSetData(void)
}
gBattleMoveFlags = 0;
gDisableStructs[gActiveBank].isFirstTurn= 2;
gDisableStructs[gActiveBank].isFirstTurn = 2;
gDisableStructs[gActiveBank].truantUnknownBit = disableStructCopy.truantUnknownBit;
gLastUsedMovesByBanks[gActiveBank] = 0;
gUnknown_02024250[gActiveBank] = 0;
gUnknown_02024258[gActiveBank] = 0;
gUnknown_02024260[gActiveBank] = 0;
gUnknownMovesUsedByBanks[gActiveBank] = 0;
gUnknown_02024270[gActiveBank] = 0xFF;
gLastMoves[gActiveBank] = 0;
gLastLandedMoves[gActiveBank] = 0;
gLastHitByType[gActiveBank] = 0;
gLastResultingMoves[gActiveBank] = 0;
gLastPrintedMoves[gActiveBank] = 0;
gLastHitBy[gActiveBank] = 0xFF;
*(gBattleStruct->mirrorMoves + gActiveBank * 2 + 0) = 0;
*(gBattleStruct->mirrorMoves + gActiveBank * 2 + 1) = 0;
@ -3026,12 +3002,12 @@ void FaintClearSetData(void)
gDisableStructs[gActiveBank].isFirstTurn = 2;
gLastUsedMovesByBanks[gActiveBank] = 0;
gUnknown_02024250[gActiveBank] = 0;
gUnknown_02024258[gActiveBank] = 0;
gUnknown_02024260[gActiveBank] = 0;
gUnknownMovesUsedByBanks[gActiveBank] = 0;
gUnknown_02024270[gActiveBank] = 0xFF;
gLastMoves[gActiveBank] = 0;
gLastLandedMoves[gActiveBank] = 0;
gLastHitByType[gActiveBank] = 0;
gLastResultingMoves[gActiveBank] = 0;
gLastPrintedMoves[gActiveBank] = 0;
gLastHitBy[gActiveBank] = 0xFF;
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 0) = 0;
*(u8*)((u8*)(&gBattleStruct->choicedMove[gActiveBank]) + 1) = 0;
@ -3213,7 +3189,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
if (gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
for (i = 0; i < 6; i++)
for (i = 0; i < PARTY_SIZE; i++)
{
if (GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gEnemyParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
@ -3231,7 +3207,7 @@ static void BattleIntroDrawPartySummaryScreens(void)
EmitDrawPartyStatusSummary(0, hpStatus, 0x80);
MarkBufferBankForExecution(gActiveBank);
for (i = 0; i < 6; i++)
for (i = 0; i < PARTY_SIZE; i++)
{
if (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_NONE
|| GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_EGG)
@ -3704,7 +3680,7 @@ static void TryDoEventsBeforeFirstTurn(void)
if (gBattleTypeFlags & BATTLE_TYPE_ARENA)
{
StopCryAndClearCrySongs();
BattleScriptExecute(gUnknown_082DB8BE);
BattleScriptExecute(BattleScript_82DB8BE);
}
}
@ -3792,9 +3768,9 @@ void BattleTurnPassed(void)
gRandomTurnNumber = Random();
if (gBattleTypeFlags & BATTLE_TYPE_PALACE)
BattleScriptExecute(gUnknown_082DB881);
BattleScriptExecute(BattleScript_82DB881);
else if (gBattleTypeFlags & BATTLE_TYPE_ARENA && gBattleStruct->field_DA == 0)
BattleScriptExecute(gUnknown_082DB8BE);
BattleScriptExecute(BattleScript_82DB8BE);
}
u8 IsRunningFromBattleImpossible(void)
@ -4007,7 +3983,7 @@ static void HandleTurnActionSelectionState(void)
| BATTLE_TYPE_x2000000))
{
RecordedBattle_ClearBankAction(gActiveBank, 1);
gBattlescriptPtrsForSelection[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed;
gSelectionBattleScripts[gActiveBank] = BattleScript_ActionSelectionItemsCantBeUsed;
gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
*(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
*(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
@ -4052,7 +4028,7 @@ static void HandleTurnActionSelectionState(void)
case ACTION_SAFARI_ZONE_BALL:
if (IsPlayerPartyAndPokemonStorageFull())
{
gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB11;
gSelectionBattleScripts[gActiveBank] = BattleScript_PrintFullBox;
gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
*(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
*(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
@ -4107,7 +4083,7 @@ static void HandleTurnActionSelectionState(void)
&& gBattleTypeFlags & (BATTLE_TYPE_FRONTIER | BATTLE_TYPE_x4000000)
&& gBattleBufferB[gActiveBank][1] == ACTION_RUN)
{
gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DB9BA;
gSelectionBattleScripts[gActiveBank] = BattleScript_AskIfWantsToForfeitMatch;
gBattleCommunication[gActiveBank] = 8;
*(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
*(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
@ -4117,13 +4093,13 @@ static void HandleTurnActionSelectionState(void)
&& !(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
&& gBattleBufferB[gActiveBank][1] == ACTION_RUN)
{
BattleScriptExecute(gUnknown_082DAAFE);
BattleScriptExecute(BattleScript_PrintCantRunFromTrainer);
gBattleCommunication[gActiveBank] = 1;
}
else if (IsRunningFromBattleImpossible() != 0
else if (IsRunningFromBattleImpossible()
&& gBattleBufferB[gActiveBank][1] == ACTION_RUN)
{
gBattlescriptPtrsForSelection[gActiveBank] = gUnknown_082DAB0B;
gSelectionBattleScripts[gActiveBank] = BattleScript_PrintCantEscapeFromBattle;
gBattleCommunication[gActiveBank] = STATE_SELECTION_SCRIPT;
*(gBattleStruct->selectionScriptFinished + gActiveBank) = FALSE;
*(gBattleStruct->stateIdAfterSelScript + gActiveBank) = STATE_BEFORE_ACTION_CHOSEN;
@ -4276,12 +4252,12 @@ static void HandleTurnActionSelectionState(void)
else
{
gBankAttacker = gActiveBank;
gBattlescriptCurrInstr = gBattlescriptPtrsForSelection[gActiveBank];
gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank];
if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
{
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
gBattlescriptPtrsForSelection[gActiveBank] = gBattlescriptCurrInstr;
gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr;
}
break;
case STATE_WAIT_SET_BEFORE_ACTION:
@ -4308,12 +4284,12 @@ static void HandleTurnActionSelectionState(void)
else
{
gBankAttacker = gActiveBank;
gBattlescriptCurrInstr = gBattlescriptPtrsForSelection[gActiveBank];
gBattlescriptCurrInstr = gSelectionBattleScripts[gActiveBank];
if (!(gBattleExecBuffer & ((gBitTable[gActiveBank]) | (0xF0000000) | (gBitTable[gActiveBank] << 4) | (gBitTable[gActiveBank] << 8) | (gBitTable[gActiveBank] << 0xC))))
{
gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]]();
}
gBattlescriptPtrsForSelection[gActiveBank] = gBattlescriptCurrInstr;
gSelectionBattleScripts[gActiveBank] = gBattlescriptCurrInstr;
}
break;
}
@ -4811,13 +4787,13 @@ static void HandleEndTurn_BattleLost(void)
{
if (gBattleOutcome & BATTLE_OUTCOME_BIT_x80)
{
gBattlescriptCurrInstr = gUnknown_082DB9C8;
gBattlescriptCurrInstr = BattleScript_82DB9C8;
gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80);
gSaveBlock2Ptr->field_CA9_b = 1;
}
else
{
gBattlescriptCurrInstr = gUnknown_082DAA0B;
gBattlescriptCurrInstr = BattleScript_82DAA0B;
gBattleOutcome &= ~(BATTLE_OUTCOME_BIT_x80);
}
}
@ -4843,13 +4819,13 @@ static void HandleEndTurn_RanFromBattle(void)
if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER && gBattleTypeFlags & BATTLE_TYPE_TRAINER)
{
gBattlescriptCurrInstr = gUnknown_082DB9C1;
gBattlescriptCurrInstr = BattleScript_82DB9C1;
gBattleOutcome = BATTLE_FORFEITED;
gSaveBlock2Ptr->field_CA9_b = 1;
}
else if (gBattleTypeFlags & BATTLE_TYPE_x4000000)
{
gBattlescriptCurrInstr = gUnknown_082DB9C1;
gBattlescriptCurrInstr = BattleScript_82DB9C1;
gBattleOutcome = BATTLE_FORFEITED;
}
else
@ -5072,19 +5048,19 @@ static void HandleAction_UseMove(void)
if (gProtectStructs[gBankAttacker].onlyStruggle)
{
gProtectStructs[gBankAttacker].onlyStruggle = 0;
gCurrentMove = gLastUsedMove = MOVE_STRUGGLE;
gCurrentMove = gChosenMove = MOVE_STRUGGLE;
gHitMarker |= HITMARKER_NO_PPDEDUCT;
*(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0);
}
else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE)
{
gCurrentMove = gLastUsedMove = gLockedMoves[gBankAttacker];
gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker];
}
// encore forces you to use the same move
else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE
&& gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
{
gCurrentMove = gLastUsedMove = gDisableStructs[gBankAttacker].encoredMove;
gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove;
gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos;
*(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
}
@ -5093,7 +5069,7 @@ static void HandleAction_UseMove(void)
&& gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos])
{
gCurrMovePos = gUnknown_020241E9 = gDisableStructs[gBankAttacker].encoredMovePos;
gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE;
gDisableStructs[gBankAttacker].encoredMovePos = 0;
gDisableStructs[gBankAttacker].encoreTimer1 = 0;
@ -5101,12 +5077,12 @@ static void HandleAction_UseMove(void)
}
else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker])
{
gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
*(gBattleStruct->moveTarget + gBankAttacker) = GetMoveTarget(gCurrentMove, 0);
}
else
{
gCurrentMove = gLastUsedMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos];
}
if (gBattleMons[gBankAttacker].hp != 0)
@ -5146,7 +5122,7 @@ static void HandleAction_UseMove(void)
}
if (var == 4)
{
if (gBattleMoves[gLastUsedMove].target & MOVE_TARGET_RANDOM)
if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
{
if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
{
@ -5191,7 +5167,7 @@ static void HandleAction_UseMove(void)
}
}
else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE
&& gBattleMoves[gLastUsedMove].target & MOVE_TARGET_RANDOM)
&& gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM)
{
if (GetBankSide(gBankAttacker) == SIDE_PLAYER)
{
@ -5241,11 +5217,11 @@ static void HandleAction_UseMove(void)
gCurrentActionFuncId = 12;
return;
}
else if (gUnknown_02024230[gBankAttacker] != NULL)
else if (gPalaceSelectionBattleScripts[gBankAttacker] != NULL)
{
gBattleCommunication[MULTISTRING_CHOOSER] = 4;
gBattlescriptCurrInstr = gUnknown_02024230[gBankAttacker];
gUnknown_02024230[gBankAttacker] = NULL;
gBattlescriptCurrInstr = gPalaceSelectionBattleScripts[gBankAttacker];
gPalaceSelectionBattleScripts[gBankAttacker] = NULL;
}
else
{
@ -5624,8 +5600,8 @@ static void HandleAction_ActionFinished(void)
gBattleMoveFlags = 0;
gBattleScripting.animTurn = 0;
gBattleScripting.animTargetsHit = 0;
gUnknown_02024250[gBankAttacker] = 0;
gUnknown_02024258[gBankAttacker] = 0;
gLastLandedMoves[gBankAttacker] = 0;
gLastHitByType[gBankAttacker] = 0;
gBattleStruct->dynamicMoveType = 0;
gDynamicBasePower = 0;
gBattleScripting.atk49_state = 0;

View File

@ -58,7 +58,7 @@ extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gCurrentMove;
extern u8 gBankTarget;
extern u8 gAbsentBankFlags;
extern u16 gLastUsedMovesByBanks[BATTLE_BANKS_COUNT];
extern u16 gLastMoves[BATTLE_BANKS_COUNT];
extern u16 gTrainerBattleOpponent_A;
extern u16 gTrainerBattleOpponent_B;
extern u32 gStatuses3[BATTLE_BANKS_COUNT];
@ -633,12 +633,12 @@ static void RecordLastUsedMoveByTarget(void)
for (i = 0; i < 4; i++)
{
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastUsedMovesByBanks[gBankTarget])
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == gLastMoves[gBankTarget])
break;
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastUsedMovesByBanks[gBankTarget] // HACK: This redundant condition is a hack to make the asm match.
if (gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] != gLastMoves[gBankTarget] // HACK: This redundant condition is a hack to make the asm match.
&& gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] == 0)
{
gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastUsedMovesByBanks[gBankTarget];
gBattleResources->battleHistory->usedMoves[gBankTarget].moves[i] = gLastMoves[gBankTarget];
break;
}
}
@ -1252,9 +1252,9 @@ static void BattleAICmd_is_most_powerful_move(void)
static void BattleAICmd_get_last_used_bank_move(void)
{
if (gAIScriptPtr[1] == AI_USER)
AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[sBank_AI];
AI_THINKING_STRUCT->funcResult = gLastMoves[sBank_AI];
else
AI_THINKING_STRUCT->funcResult = gLastUsedMovesByBanks[gBankTarget];
AI_THINKING_STRUCT->funcResult = gLastMoves[gBankTarget];
gAIScriptPtr += 2;
}

View File

@ -16,8 +16,8 @@ extern u32 gBattleTypeFlags;
extern u32 gStatuses3[BATTLE_BANKS_COUNT];
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gBattlePartyID[BATTLE_BANKS_COUNT];
extern u16 gUnknown_02024250[BATTLE_BANKS_COUNT];
extern u8 gUnknown_02024270[BATTLE_BANKS_COUNT];
extern u16 gLastLandedMoves[BATTLE_BANKS_COUNT];
extern u8 gLastHitBy[BATTLE_BANKS_COUNT];
extern u16 gDynamicBasePower;
extern u8 gBattleMoveFlags;
extern u8 gCritMultiplier;
@ -141,11 +141,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
if (HasSuperEffectiveMoveAgainstOpponents(TRUE) && Random() % 3 != 0)
return FALSE;
if (gUnknown_02024250[gActiveBank] == 0)
if (gLastLandedMoves[gActiveBank] == 0)
return FALSE;
if (gUnknown_02024250[gActiveBank] == 0xFFFF)
if (gLastLandedMoves[gActiveBank] == 0xFFFF)
return FALSE;
if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0)
if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@ -162,11 +162,11 @@ static bool8 FindMonThatAbsorbsOpponentsMove(void)
bankIn2 = gActiveBank;
}
if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_FIRE)
if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_FIRE)
absorbingTypeAbility = ABILITY_FLASH_FIRE;
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_WATER)
else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_WATER)
absorbingTypeAbility = ABILITY_WATER_ABSORB;
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].type == TYPE_ELECTRIC)
else if (gBattleMoves[gLastLandedMoves[gActiveBank]].type == TYPE_ELECTRIC)
absorbingTypeAbility = ABILITY_VOLT_ABSORB;
else
return FALSE;
@ -238,13 +238,13 @@ static bool8 ShouldSwitchIfNaturalCure(void)
if (gBattleMons[gActiveBank].hp < gBattleMons[gActiveBank].maxHP / 2)
return FALSE;
if ((gUnknown_02024250[gActiveBank] == 0 || gUnknown_02024250[gActiveBank] == 0xFFFF) && Random() & 1)
if ((gLastLandedMoves[gActiveBank] == 0 || gLastLandedMoves[gActiveBank] == 0xFFFF) && Random() & 1)
{
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
return TRUE;
}
else if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0 && Random() & 1)
else if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0 && Random() & 1)
{
*(gBattleStruct->AI_monToSwitchIntoId + gActiveBank) = 6;
EmitTwoReturnValues(1, ACTION_SWITCH, 0);
@ -345,13 +345,13 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
u16 move;
u8 moveFlags;
if (gUnknown_02024250[gActiveBank] == 0)
if (gLastLandedMoves[gActiveBank] == 0)
return FALSE;
if (gUnknown_02024250[gActiveBank] == 0xFFFF)
if (gLastLandedMoves[gActiveBank] == 0xFFFF)
return FALSE;
if (gUnknown_02024270[gActiveBank] == 0xFF)
if (gLastHitBy[gActiveBank] == 0xFF)
return FALSE;
if (gBattleMoves[gUnknown_02024250[gActiveBank]].power == 0)
if (gBattleMoves[gLastLandedMoves[gActiveBank]].power == 0)
return FALSE;
if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE)
@ -411,10 +411,10 @@ static bool8 FindMonWithFlagsAndSuperEffective(u8 flags, u8 moduloPercent)
else
monAbility = gBaseStats[species].ability1;
moveFlags = AI_TypeCalc(gUnknown_02024250[gActiveBank], species, monAbility);
moveFlags = AI_TypeCalc(gLastLandedMoves[gActiveBank], species, monAbility);
if (moveFlags & flags)
{
bankIn1 = gUnknown_02024270[gActiveBank];
bankIn1 = gLastHitBy[gActiveBank];
for (j = 0; j < 4; j++)
{

View File

@ -82,7 +82,7 @@ static void LinkOpponentHandleBallThrowAnim(void);
static void LinkOpponentHandlePause(void);
static void LinkOpponentHandleMoveAnimation(void);
static void LinkOpponentHandlePrintString(void);
static void LinkOpponentHandlePrintStringPlayerOnly(void);
static void LinkOpponentHandlePrintSelectionString(void);
static void LinkOpponentHandleChooseAction(void);
static void LinkOpponentHandleUnknownYesNoBox(void);
static void LinkOpponentHandleChooseMove(void);
@ -108,7 +108,7 @@ static void LinkOpponentHandleCmd39(void);
static void LinkOpponentHandleCmd40(void);
static void LinkOpponentHandleHitAnimation(void);
static void LinkOpponentHandleCmd42(void);
static void LinkOpponentHandleEffectivenessSound(void);
static void LinkOpponentHandlePlaySE(void);
static void LinkOpponentHandlePlayFanfareOrBGM(void);
static void LinkOpponentHandleFaintingCry(void);
static void LinkOpponentHandleIntroSlide(void);
@ -154,7 +154,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
LinkOpponentHandlePause,
LinkOpponentHandleMoveAnimation,
LinkOpponentHandlePrintString,
LinkOpponentHandlePrintStringPlayerOnly,
LinkOpponentHandlePrintSelectionString,
LinkOpponentHandleChooseAction,
LinkOpponentHandleUnknownYesNoBox,
LinkOpponentHandleChooseMove,
@ -180,7 +180,7 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
LinkOpponentHandleCmd40,
LinkOpponentHandleHitAnimation,
LinkOpponentHandleCmd42,
LinkOpponentHandleEffectivenessSound,
LinkOpponentHandlePlaySE,
LinkOpponentHandlePlayFanfareOrBGM,
LinkOpponentHandleFaintingCry,
LinkOpponentHandleIntroSlide,
@ -1505,7 +1505,7 @@ static void LinkOpponentHandlePrintString(void)
sub_817C95C(*stringId);
}
static void LinkOpponentHandlePrintStringPlayerOnly(void)
static void LinkOpponentHandlePrintSelectionString(void)
{
LinkOpponentBufferExecCompleted();
}
@ -1681,7 +1681,7 @@ static void LinkOpponentHandleCmd42(void)
LinkOpponentBufferExecCompleted();
}
static void LinkOpponentHandleEffectivenessSound(void)
static void LinkOpponentHandlePlaySE(void)
{
s8 pan;

View File

@ -78,7 +78,7 @@ static void LinkPartnerHandleBallThrowAnim(void);
static void LinkPartnerHandlePause(void);
static void LinkPartnerHandleMoveAnimation(void);
static void LinkPartnerHandlePrintString(void);
static void LinkPartnerHandlePrintStringPlayerOnly(void);
static void LinkPartnerHandlePrintSelectionString(void);
static void LinkPartnerHandleChooseAction(void);
static void LinkPartnerHandleUnknownYesNoBox(void);
static void LinkPartnerHandleChooseMove(void);
@ -104,7 +104,7 @@ static void LinkPartnerHandleCmd39(void);
static void LinkPartnerHandleCmd40(void);
static void LinkPartnerHandleHitAnimation(void);
static void LinkPartnerHandleCmd42(void);
static void LinkPartnerHandleEffectivenessSound(void);
static void LinkPartnerHandlePlaySE(void);
static void LinkPartnerHandlePlayFanfareOrBGM(void);
static void LinkPartnerHandleFaintingCry(void);
static void LinkPartnerHandleIntroSlide(void);
@ -149,7 +149,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
LinkPartnerHandlePause,
LinkPartnerHandleMoveAnimation,
LinkPartnerHandlePrintString,
LinkPartnerHandlePrintStringPlayerOnly,
LinkPartnerHandlePrintSelectionString,
LinkPartnerHandleChooseAction,
LinkPartnerHandleUnknownYesNoBox,
LinkPartnerHandleChooseMove,
@ -175,7 +175,7 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
LinkPartnerHandleCmd40,
LinkPartnerHandleHitAnimation,
LinkPartnerHandleCmd42,
LinkPartnerHandleEffectivenessSound,
LinkPartnerHandlePlaySE,
LinkPartnerHandlePlayFanfareOrBGM,
LinkPartnerHandleFaintingCry,
LinkPartnerHandleIntroSlide,
@ -1327,7 +1327,7 @@ static void LinkPartnerHandlePrintString(void)
sub_817C95C(*stringId);
}
static void LinkPartnerHandlePrintStringPlayerOnly(void)
static void LinkPartnerHandlePrintSelectionString(void)
{
LinkPartnerBufferExecCompleted();
}
@ -1503,7 +1503,7 @@ static void LinkPartnerHandleCmd42(void)
LinkPartnerBufferExecCompleted();
}
static void LinkPartnerHandleEffectivenessSound(void)
static void LinkPartnerHandlePlaySE(void)
{
s8 pan;

View File

@ -83,7 +83,7 @@ static void OpponentHandleBallThrow(void);
static void OpponentHandlePause(void);
static void OpponentHandleMoveAnimation(void);
static void OpponentHandlePrintString(void);
static void OpponentHandlePrintStringPlayerOnly(void);
static void OpponentHandlePrintSelectionString(void);
static void OpponentHandleChooseAction(void);
static void OpponentHandleUnknownYesNoBox(void);
static void OpponentHandleChooseMove(void);
@ -109,7 +109,7 @@ static void OpponentHandleCmd39(void);
static void OpponentHandleCmd40(void);
static void OpponentHandleHitAnimation(void);
static void OpponentHandleCmd42(void);
static void OpponentHandleEffectivenessSound(void);
static void OpponentHandlePlaySE(void);
static void OpponentHandlePlayFanfareOrBGM(void);
static void OpponentHandleFaintingCry(void);
static void OpponentHandleIntroSlide(void);
@ -155,7 +155,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
OpponentHandlePause,
OpponentHandleMoveAnimation,
OpponentHandlePrintString,
OpponentHandlePrintStringPlayerOnly,
OpponentHandlePrintSelectionString,
OpponentHandleChooseAction,
OpponentHandleUnknownYesNoBox,
OpponentHandleChooseMove,
@ -181,7 +181,7 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
OpponentHandleCmd40,
OpponentHandleHitAnimation,
OpponentHandleCmd42,
OpponentHandleEffectivenessSound,
OpponentHandlePlaySE,
OpponentHandlePlayFanfareOrBGM,
OpponentHandleFaintingCry,
OpponentHandleIntroSlide,
@ -1537,7 +1537,7 @@ static void OpponentHandlePrintString(void)
sub_81A57E4(gActiveBank, *stringId);
}
static void OpponentHandlePrintStringPlayerOnly(void)
static void OpponentHandlePrintSelectionString(void)
{
OpponentBufferExecCompleted();
}
@ -1826,7 +1826,7 @@ static void OpponentHandleCmd42(void)
OpponentBufferExecCompleted();
}
static void OpponentHandleEffectivenessSound(void)
static void OpponentHandlePlaySE(void)
{
s8 pan;

View File

@ -102,7 +102,7 @@ static void PlayerHandleBallThrowAnim(void);
static void PlayerHandlePause(void);
static void PlayerHandleMoveAnimation(void);
static void PlayerHandlePrintString(void);
static void PlayerHandlePrintStringPlayerOnly(void);
static void PlayerHandlePrintSelectionString(void);
static void PlayerHandleChooseAction(void);
static void PlayerHandleUnknownYesNoBox(void);
static void PlayerHandleChooseMove(void);
@ -128,7 +128,7 @@ static void PlayerHandleCmd39(void);
static void PlayerHandleCmd40(void);
static void PlayerHandleHitAnimation(void);
static void PlayerHandleCmd42(void);
static void PlayerHandleEffectivenessSound(void);
static void PlayerHandlePlaySE(void);
static void PlayerHandlePlayFanfareOrBGM(void);
static void PlayerHandleFaintingCry(void);
static void PlayerHandleIntroSlide(void);
@ -189,7 +189,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
PlayerHandlePause,
PlayerHandleMoveAnimation,
PlayerHandlePrintString,
PlayerHandlePrintStringPlayerOnly,
PlayerHandlePrintSelectionString,
PlayerHandleChooseAction,
PlayerHandleUnknownYesNoBox,
PlayerHandleChooseMove,
@ -215,7 +215,7 @@ static void (*const sPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
PlayerHandleCmd40,
PlayerHandleHitAnimation,
PlayerHandleCmd42,
PlayerHandleEffectivenessSound,
PlayerHandlePlaySE,
PlayerHandlePlayFanfareOrBGM,
PlayerHandleFaintingCry,
PlayerHandleIntroSlide,
@ -2576,7 +2576,7 @@ static void PlayerHandlePrintString(void)
sub_81A57E4(gActiveBank, *stringId);
}
static void PlayerHandlePrintStringPlayerOnly(void)
static void PlayerHandlePrintSelectionString(void)
{
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
PlayerHandlePrintString();
@ -2913,7 +2913,7 @@ static void PlayerHandleCmd42(void)
PlayerBufferExecCompleted();
}
static void PlayerHandleEffectivenessSound(void)
static void PlayerHandlePlaySE(void)
{
s8 pan;

View File

@ -78,7 +78,7 @@ static void PlayerPartnerHandleBallThrowAnim(void);
static void PlayerPartnerHandlePause(void);
static void PlayerPartnerHandleMoveAnimation(void);
static void PlayerPartnerHandlePrintString(void);
static void PlayerPartnerHandlePrintStringPlayerOnly(void);
static void PlayerPartnerHandlePrintSelectionString(void);
static void PlayerPartnerHandleChooseAction(void);
static void PlayerPartnerHandleUnknownYesNoBox(void);
static void PlayerPartnerHandleChooseMove(void);
@ -104,7 +104,7 @@ static void PlayerPartnerHandleCmd39(void);
static void PlayerPartnerHandleCmd40(void);
static void PlayerPartnerHandleHitAnimation(void);
static void PlayerPartnerHandleCmd42(void);
static void PlayerPartnerHandleEffectivenessSound(void);
static void PlayerPartnerHandlePlaySE(void);
static void PlayerPartnerHandlePlayFanfareOrBGM(void);
static void PlayerPartnerHandleFaintingCry(void);
static void PlayerPartnerHandleIntroSlide(void);
@ -155,7 +155,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
PlayerPartnerHandlePause,
PlayerPartnerHandleMoveAnimation,
PlayerPartnerHandlePrintString,
PlayerPartnerHandlePrintStringPlayerOnly,
PlayerPartnerHandlePrintSelectionString,
PlayerPartnerHandleChooseAction,
PlayerPartnerHandleUnknownYesNoBox,
PlayerPartnerHandleChooseMove,
@ -181,7 +181,7 @@ static void (*const sPlayerPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
PlayerPartnerHandleCmd40,
PlayerPartnerHandleHitAnimation,
PlayerPartnerHandleCmd42,
PlayerPartnerHandleEffectivenessSound,
PlayerPartnerHandlePlaySE,
PlayerPartnerHandlePlayFanfareOrBGM,
PlayerPartnerHandleFaintingCry,
PlayerPartnerHandleIntroSlide,
@ -1519,7 +1519,7 @@ static void PlayerPartnerHandlePrintString(void)
gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter2;
}
static void PlayerPartnerHandlePrintStringPlayerOnly(void)
static void PlayerPartnerHandlePrintSelectionString(void)
{
PlayerPartnerBufferExecCompleted();
}
@ -1756,7 +1756,7 @@ static void PlayerPartnerHandleCmd42(void)
PlayerPartnerBufferExecCompleted();
}
static void PlayerPartnerHandleEffectivenessSound(void)
static void PlayerPartnerHandlePlaySE(void)
{
s8 pan;

View File

@ -81,7 +81,7 @@ static void RecordedOpponentHandleBallThrowAnim(void);
static void RecordedOpponentHandlePause(void);
static void RecordedOpponentHandleMoveAnimation(void);
static void RecordedOpponentHandlePrintString(void);
static void RecordedOpponentHandlePrintStringPlayerOnly(void);
static void RecordedOpponentHandlePrintSelectionString(void);
static void RecordedOpponentHandleChooseAction(void);
static void RecordedOpponentHandleUnknownYesNoBox(void);
static void RecordedOpponentHandleChooseMove(void);
@ -107,7 +107,7 @@ static void RecordedOpponentHandleCmd39(void);
static void RecordedOpponentHandleCmd40(void);
static void RecordedOpponentHandleHitAnimation(void);
static void RecordedOpponentHandleCmd42(void);
static void RecordedOpponentHandleEffectivenessSound(void);
static void RecordedOpponentHandlePlaySE(void);
static void RecordedOpponentHandlePlayFanfareOrBGM(void);
static void RecordedOpponentHandleFaintingCry(void);
static void RecordedOpponentHandleIntroSlide(void);
@ -153,7 +153,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void
RecordedOpponentHandlePause,
RecordedOpponentHandleMoveAnimation,
RecordedOpponentHandlePrintString,
RecordedOpponentHandlePrintStringPlayerOnly,
RecordedOpponentHandlePrintSelectionString,
RecordedOpponentHandleChooseAction,
RecordedOpponentHandleUnknownYesNoBox,
RecordedOpponentHandleChooseMove,
@ -179,7 +179,7 @@ static void (*const sRecordedOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void
RecordedOpponentHandleCmd40,
RecordedOpponentHandleHitAnimation,
RecordedOpponentHandleCmd42,
RecordedOpponentHandleEffectivenessSound,
RecordedOpponentHandlePlaySE,
RecordedOpponentHandlePlayFanfareOrBGM,
RecordedOpponentHandleFaintingCry,
RecordedOpponentHandleIntroSlide,
@ -1435,7 +1435,7 @@ static void RecordedOpponentHandlePrintString(void)
gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
}
static void RecordedOpponentHandlePrintStringPlayerOnly(void)
static void RecordedOpponentHandlePrintSelectionString(void)
{
RecordedOpponentBufferExecCompleted();
}
@ -1625,7 +1625,7 @@ static void RecordedOpponentHandleCmd42(void)
RecordedOpponentBufferExecCompleted();
}
static void RecordedOpponentHandleEffectivenessSound(void)
static void RecordedOpponentHandlePlaySE(void)
{
s8 pan;

View File

@ -81,7 +81,7 @@ static void RecordedPlayerHandleBallThrowAnim(void);
static void RecordedPlayerHandlePause(void);
static void RecordedPlayerHandleMoveAnimation(void);
static void RecordedPlayerHandlePrintString(void);
static void RecordedPlayerHandlePrintStringPlayerOnly(void);
static void RecordedPlayerHandlePrintSelectionString(void);
static void RecordedPlayerHandleChooseAction(void);
static void RecordedPlayerHandleUnknownYesNoBox(void);
static void RecordedPlayerHandleChooseMove(void);
@ -107,7 +107,7 @@ static void RecordedPlayerHandleCmd39(void);
static void RecordedPlayerHandleCmd40(void);
static void RecordedPlayerHandleHitAnimation(void);
static void RecordedPlayerHandleCmd42(void);
static void RecordedPlayerHandleEffectivenessSound(void);
static void RecordedPlayerHandlePlaySE(void);
static void RecordedPlayerHandlePlayFanfareOrBGM(void);
static void RecordedPlayerHandleFaintingCry(void);
static void RecordedPlayerHandleIntroSlide(void);
@ -152,7 +152,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void)
RecordedPlayerHandlePause,
RecordedPlayerHandleMoveAnimation,
RecordedPlayerHandlePrintString,
RecordedPlayerHandlePrintStringPlayerOnly,
RecordedPlayerHandlePrintSelectionString,
RecordedPlayerHandleChooseAction,
RecordedPlayerHandleUnknownYesNoBox,
RecordedPlayerHandleChooseMove,
@ -178,7 +178,7 @@ static void (*const sRecordedPlayerBufferCommands[CONTROLLER_CMDS_COUNT])(void)
RecordedPlayerHandleCmd40,
RecordedPlayerHandleHitAnimation,
RecordedPlayerHandleCmd42,
RecordedPlayerHandleEffectivenessSound,
RecordedPlayerHandlePlaySE,
RecordedPlayerHandlePlayFanfareOrBGM,
RecordedPlayerHandleFaintingCry,
RecordedPlayerHandleIntroSlide,
@ -1437,7 +1437,7 @@ static void RecordedPlayerHandlePrintString(void)
gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
}
static void RecordedPlayerHandlePrintStringPlayerOnly(void)
static void RecordedPlayerHandlePrintSelectionString(void)
{
RecordedPlayerBufferExecCompleted();
}
@ -1644,7 +1644,7 @@ static void RecordedPlayerHandleCmd42(void)
RecordedPlayerBufferExecCompleted();
}
static void RecordedPlayerHandleEffectivenessSound(void)
static void RecordedPlayerHandlePlaySE(void)
{
s8 pan;

View File

@ -66,7 +66,7 @@ static void SafariHandleBallThrowAnim(void);
static void SafariHandlePause(void);
static void SafariHandleMoveAnimation(void);
static void SafariHandlePrintString(void);
static void SafariHandlePrintStringPlayerOnly(void);
static void SafariHandlePrintSelectionString(void);
static void SafariHandleChooseAction(void);
static void SafariHandleUnknownYesNoBox(void);
static void SafariHandleChooseMove(void);
@ -92,7 +92,7 @@ static void SafariHandleCmd39(void);
static void SafariHandleCmd40(void);
static void SafariHandleHitAnimation(void);
static void SafariHandleCmd42(void);
static void SafariHandleEffectivenessSound(void);
static void SafariHandlePlaySE(void);
static void SafariHandlePlayFanfareOrBGM(void);
static void SafariHandleFaintingCry(void);
static void SafariHandleIntroSlide(void);
@ -130,7 +130,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
SafariHandlePause,
SafariHandleMoveAnimation,
SafariHandlePrintString,
SafariHandlePrintStringPlayerOnly,
SafariHandlePrintSelectionString,
SafariHandleChooseAction,
SafariHandleUnknownYesNoBox,
SafariHandleChooseMove,
@ -156,7 +156,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
SafariHandleCmd40,
SafariHandleHitAnimation,
SafariHandleCmd42,
SafariHandleEffectivenessSound,
SafariHandlePlaySE,
SafariHandlePlayFanfareOrBGM,
SafariHandleFaintingCry,
SafariHandleIntroSlide,
@ -449,7 +449,7 @@ static void SafariHandlePrintString(void)
gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
}
static void SafariHandlePrintStringPlayerOnly(void)
static void SafariHandlePrintSelectionString(void)
{
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
SafariHandlePrintString();
@ -607,7 +607,7 @@ static void SafariHandleCmd42(void)
SafariBufferExecCompleted();
}
static void SafariHandleEffectivenessSound(void)
static void SafariHandlePlaySE(void)
{
s8 pan;

View File

@ -86,7 +86,7 @@ static void WallyHandleBallThrowAnim(void);
static void WallyHandlePause(void);
static void WallyHandleMoveAnimation(void);
static void WallyHandlePrintString(void);
static void WallyHandlePrintStringPlayerOnly(void);
static void WallyHandlePrintSelectionString(void);
static void WallyHandleChooseAction(void);
static void WallyHandleUnknownYesNoBox(void);
static void WallyHandleChooseMove(void);
@ -112,7 +112,7 @@ static void WallyHandleCmd39(void);
static void WallyHandleCmd40(void);
static void WallyHandleHitAnimation(void);
static void WallyHandleCmd42(void);
static void WallyHandleEffectivenessSound(void);
static void WallyHandlePlaySE(void);
static void WallyHandlePlayFanfareOrBGM(void);
static void WallyHandleFaintingCry(void);
static void WallyHandleIntroSlide(void);
@ -155,7 +155,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
WallyHandlePause,
WallyHandleMoveAnimation,
WallyHandlePrintString,
WallyHandlePrintStringPlayerOnly,
WallyHandlePrintSelectionString,
WallyHandleChooseAction,
WallyHandleUnknownYesNoBox,
WallyHandleChooseMove,
@ -181,7 +181,7 @@ static void (*const sWallyBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
WallyHandleCmd40,
WallyHandleHitAnimation,
WallyHandleCmd42,
WallyHandleEffectivenessSound,
WallyHandlePlaySE,
WallyHandlePlayFanfareOrBGM,
WallyHandleFaintingCry,
WallyHandleIntroSlide,
@ -1211,7 +1211,7 @@ static void WallyHandlePrintString(void)
gBattleBankFunc[gActiveBank] = CompleteOnInactiveTextPrinter;
}
static void WallyHandlePrintStringPlayerOnly(void)
static void WallyHandlePrintSelectionString(void)
{
if (GetBankSide(gActiveBank) == SIDE_PLAYER)
WallyHandlePrintString();
@ -1419,7 +1419,7 @@ static void WallyHandleCmd42(void)
WallyBufferExecCompleted();
}
static void WallyHandleEffectivenessSound(void)
static void WallyHandlePlaySE(void)
{
PlaySE(gBattleBufferA[gActiveBank][1] | (gBattleBufferA[gActiveBank][2] << 8));
WallyBufferExecCompleted();

View File

@ -38,7 +38,7 @@ extern u8 gEffectBank;
extern u16 gBattleWeather;
extern struct BattlePokemon gBattleMons[BATTLE_BANKS_COUNT];
extern u16 gCurrentMove;
extern u16 gLastUsedMove;
extern u16 gChosenMove;
extern u16 gLastUsedItem;
extern u8 gBattleOutcome;
extern u8 gLastUsedAbility;
@ -1120,7 +1120,7 @@ void EmitPrintString(u8 bufferId, u16 stringID)
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->lastMove = gLastUsedMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility;
stringInfo->scrActive = gBattleScripting.bank;
@ -1140,10 +1140,10 @@ void EmitPrintString(u8 bufferId, u16 stringID)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4);
}
void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID)
void EmitPrintSelectionString(u8 bufferId, u16 stringID)
{
s32 i;
struct StringInfoBattle* stringInfo;
struct StringInfoBattle *stringInfo;
gBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY;
gBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY;
@ -1152,7 +1152,7 @@ void EmitPrintStringPlayerOnly(u8 bufferId, u16 stringID)
stringInfo = (struct StringInfoBattle*)(&gBattleBuffersTransferData[4]);
stringInfo->currentMove = gCurrentMove;
stringInfo->lastMove = gLastUsedMove;
stringInfo->originallyUsedMove = gChosenMove;
stringInfo->lastItem = gLastUsedItem;
stringInfo->lastAbility = gLastUsedAbility;
stringInfo->scrActive = gBattleScripting.bank;
@ -1427,7 +1427,7 @@ void EmitCmd42(u8 bufferId)
PrepareBufferDataTransfer(bufferId, gBattleBuffersTransferData, 4);
}
void EmitEffectivenessSound(u8 bufferId, u16 songId)
void EmitPlaySE(u8 bufferId, u16 songId)
{
gBattleBuffersTransferData[0] = CONTROLLER_EFFECTIVENESSSOUND;
gBattleBuffersTransferData[1] = songId;

View File

@ -59,7 +59,7 @@ extern const u8* GetTrainer2LoseText(void); // battle_setup
extern void GetFrontierTrainerName(u8 *dst, u16 trainerId);
extern s32 GetStringCenterAlignXOffsetWithLetterSpacing(u8 fontId, const u8 *str, s32 totalWidth, s16 letterSpacing);
extern u8 GetTextSpeedInRecordedBattle(void);
extern u8 sav2_get_text_speed(void);
extern u8 GetPlayerTextSpeed(void);
// this file's functions
static void sub_814F8F8(u8 *textPtr);
@ -932,58 +932,237 @@ const u16 gSandStormHailDmgStringIds[] =
STRINGID_PKMNBUFFETEDBYSANDSTORM, STRINGID_PKMNPELTEDBYHAIL
};
// todo once battlescripts are dumped
const u16 gTooLazyToSplitThemStringIds[] =
const u16 gSandStormHailEndStringIds[] =
{
STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED, STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES,
STRINGID_RAINSTOPPED, STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF,
STRINGID_BUTITFAILED, STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF,
STRINGID_PKMNRAISEDDEFALITTLE, STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE,
STRINGID_PKMNCOVEREDBYVEIL, STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK,
STRINGID_SANDSTORMSUBSIDED, STRINGID_HAILSTOPPED
};
const u16 gRainContinuesStringIds[] =
{
STRINGID_RAINCONTINUES, STRINGID_DOWNPOURCONTINUES, STRINGID_RAINSTOPPED
};
const u16 gProtectLikeUsedStringIds[] =
{
STRINGID_PKMNPROTECTEDITSELF2, STRINGID_PKMNBRACEDITSELF, STRINGID_BUTITFAILED
};
const u16 gReflectLightScreenSafeguardStringIds[] =
{
STRINGID_BUTITFAILED, STRINGID_PKMNRAISEDDEF, STRINGID_PKMNRAISEDDEFALITTLE,
STRINGID_PKMNRAISEDSPDEF, STRINGID_PKMNRAISEDSPDEFALITTLE, STRINGID_PKMNCOVEREDBYVEIL
};
const u16 gLeechSeedStringIds[] =
{
STRINGID_PKMNSEEDED, STRINGID_PKMNEVADEDATTACK,
STRINGID_ITDOESNTAFFECT, STRINGID_PKMNSAPPEDBYLEECHSEED, STRINGID_ITSUCKEDLIQUIDOOZE,
STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY, STRINGID_PKMNMAKINGUPROAR,
STRINGID_PKMNCALMEDDOWN, STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE,
STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR, STRINGID_FAILEDTOSWALLOW,
STRINGID_PKMNHPFULL, STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE,
STRINGID_PKMNSTAYEDAWAKEUSING, STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2,
STRINGID_STATSWONTINCREASE, STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN,
STRINGID_PKMNUSEDXTOGETPUMPED, STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4,
STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3, STRINGID_PKMNWHIPPEDWHIRLWIND,
STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING,
STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER,
STRINGID_PKMNSPRANGUP, STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY,
STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX,
STRINGID_PKMNTRAPPEDBYSANDTOMB, STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED,
STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED, STRINGID_PKMNTRANSFORMEDINTO,
STRINGID_BUTITFAILED, STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE,
STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY, STRINGID_PKMNWASPARALYZED,
STRINGID_PKMNWASPARALYZEDBY, STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP,
STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY, STRINGID_PKMNWASFROZEN,
STRINGID_PKMNFROZENBY, STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY,
STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED, STRINGID_PKMNFELLINLOVE,
STRINGID_PKMNSXINFATUATEDY, STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE,
STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED, STRINGID_BELLCHIMED,
STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED,
STRINGID_SOOTHINGAROMA, STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY,
STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT,
STRINGID_SHOOTSOCLOSE, STRINGID_ITISRAINING, STRINGID_ITISRAINING,
};
const u16 gRestUsedStringIds[] =
{
STRINGID_PKMNWENTTOSLEEP, STRINGID_PKMNSLEPTHEALTHY
};
const u16 gUproarOverTurnStringIds[] =
{
STRINGID_PKMNMAKINGUPROAR, STRINGID_PKMNCALMEDDOWN
};
const u16 gStockpileUsedStringIds[] =
{
STRINGID_PKMNSTOCKPILED, STRINGID_PKMNCANTSTOCKPILE,
};
const u16 gWokeUpStringIds[] =
{
STRINGID_PKMNWOKEUP, STRINGID_PKMNWOKEUPINUPROAR
};
const u16 gSwallowFailStringIds[] =
{
STRINGID_FAILEDTOSWALLOW, STRINGID_PKMNHPFULL
};
const u16 gUproarAwakeStringIds[] =
{
STRINGID_PKMNCANTSLEEPINUPROAR2, STRINGID_UPROARKEPTPKMNAWAKE, STRINGID_PKMNSTAYEDAWAKEUSING
};
const u16 gStatUpStringIds[] =
{
STRINGID_PKMNSSTATCHANGED, STRINGID_PKMNSSTATCHANGED2, STRINGID_STATSWONTINCREASE,
STRINGID_EMPTYSTRING3, STRINGID_USINGXTHEYOFZN, STRINGID_PKMNUSEDXTOGETPUMPED
};
const u16 gStatDownStringIds[] =
{
STRINGID_PKMNSSTATCHANGED3, STRINGID_PKMNSSTATCHANGED4, STRINGID_STATSWONTDECREASE, STRINGID_EMPTYSTRING3
};
const u16 gFirstTurnOfTwoStringIds[] =
{
STRINGID_PKMNWHIPPEDWHIRLWIND, STRINGID_PKMNTOOKSUNLIGHT, STRINGID_PKMNLOWEREDHEAD, STRINGID_PKMNISGLOWING,
STRINGID_PKMNFLEWHIGH, STRINGID_PKMNDUGHOLE, STRINGID_PKMNHIDUNDERWATER, STRINGID_PKMNSPRANGUP
};
const u16 gWrappedStringIds[] =
{
STRINGID_PKMNSQUEEZEDBYBIND, STRINGID_PKMNWRAPPEDBY, STRINGID_PKMNTRAPPEDINVORTEX,
STRINGID_PKMNCLAMPED, STRINGID_PKMNTRAPPEDINVORTEX, STRINGID_PKMNTRAPPEDBYSANDTOMB
};
const u16 gMistUsedStringIds[] =
{
STRINGID_PKMNSHROUDEDINMIST, STRINGID_BUTITFAILED
};
const u16 gFocusEnergyUsedStringIds[] =
{
STRINGID_PKMNGETTINGPUMPED, STRINGID_BUTITFAILED
};
const u16 gTransformUsedStringIds[] =
{
STRINGID_PKMNTRANSFORMEDINTO, STRINGID_BUTITFAILED
};
const u16 gSubsituteUsedStringIds[] =
{
STRINGID_PKMNMADESUBSTITUTE, STRINGID_TOOWEAKFORSUBSTITUTE
};
const u16 gGotPoisonedStringIds[] =
{
STRINGID_PKMNWASPOISONED, STRINGID_PKMNPOISONEDBY
};
const u16 gGotParalyzedStringIds[] =
{
STRINGID_PKMNWASPARALYZED, STRINGID_PKMNWASPARALYZEDBY
};
const u16 gFellAsleepStringIds[] =
{
STRINGID_PKMNFELLASLEEP, STRINGID_PKMNMADESLEEP,
};
const u16 gGotBurnedStringIds[] =
{
STRINGID_PKMNWASBURNED, STRINGID_PKMNBURNEDBY
};
const u16 gGotFrozenStringIds[] =
{
STRINGID_PKMNWASFROZEN, STRINGID_PKMNFROZENBY
};
const u16 gGotDefrostedStringIds[] =
{
STRINGID_PKMNWASDEFROSTED2, STRINGID_PKMNWASDEFROSTEDBY
};
const u16 gKOFailedStringIds[] =
{
STRINGID_ATTACKMISSED, STRINGID_PKMNUNAFFECTED
};
const u16 gAttractUsedStringIds[] =
{
STRINGID_PKMNFELLINLOVE, STRINGID_PKMNSXINFATUATEDY
};
const u16 gLeechSeedDrainStringIds[] =
{
STRINGID_PKMNENERGYDRAINED, STRINGID_ITSUCKEDLIQUIDOOZE
};
const u16 gSportsUsedStringIds[] =
{
STRINGID_ELECTRICITYWEAKENED, STRINGID_FIREWEAKENED
};
const u16 gPartyStatusHealStringIds[] =
{
STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED, STRINGID_BELLCHIMED,
// interesting how there are four instances of the same string
STRINGID_SOOTHINGAROMA
};
const u16 gFutureMoveUsedStringIds[] =
{
STRINGID_PKMNFORESAWATTACK, STRINGID_PKMNCHOSEXASDESTINY
};
const u16 gBallEscapeStringIds[] =
{
STRINGID_PKMNBROKEFREE, STRINGID_ITAPPEAREDCAUGHT, STRINGID_AARGHALMOSTHADIT, STRINGID_SHOOTSOCLOSE
};
const u16 gWeatherContinuesStringIds[] =
{
STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING,
STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING,
STRINGID_SANDSTORMISRAGING, STRINGID_ITISRAINING, STRINGID_ITISRAINING,
STRINGID_ITISRAINING, STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING,
STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_PKMNLOAFING,
STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY, STRINGID_PKMNPRETENDNOTNOTICE,
STRINGID_PKMNINCAPABLEOFPOWER, STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER,
STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX,
STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_SANDSTORMISRAGING,
STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING,
STRINGID_SUNLIGHTSTRONG, STRINGID_ITISRAINING, STRINGID_ITISRAINING, STRINGID_ITISRAINING
};
const u16 gInobedientStringIds[] =
{
STRINGID_PKMNLOAFING, STRINGID_PKMNWONTOBEY, STRINGID_PKMNTURNEDAWAY,
STRINGID_PKMNPRETENDNOTNOTICE, STRINGID_PKMNINCAPABLEOFPOWER
};
const u16 gSafariGetNearStringIds[] =
{
STRINGID_CREPTCLOSER, STRINGID_CANTGETCLOSER
};
const u16 gSafariPokeblockResultStringIds[] =
{
STRINGID_PKMNCURIOUSABOUTX, STRINGID_PKMNENTHRALLEDBYX, STRINGID_PKMNIGNOREDX
};
const u16 gTrainerItemCuredStatusStringIds[] =
{
STRINGID_PKMNSITEMSNAPPEDOUT, STRINGID_PKMNSITEMCUREDPARALYSIS, STRINGID_PKMNSITEMDEFROSTEDIT,
STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT,
STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS, STRINGID_PKMNSXPREVENTSBURNS,
STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNPREVENTSPARALYSISWITH,
STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNPREVENTSPOISONINGWITH,
STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY, STRINGID_PKMNOBTAINEDX,
STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ, STRINGID_PKMNRAISEDFIREPOWERWITH,
STRINGID_PKMNSXMADEYINEFFECTIVE, STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC,
STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL,
STRINGID_PKMNSITEMHEALEDBURN, STRINGID_PKMNSITEMCUREDPOISON, STRINGID_PKMNSITEMWOKEIT
};
const u16 gBerryEffectStringIds[] =
{
STRINGID_PKMNSITEMCUREDPROBLEM, STRINGID_PKMNSITEMNORMALIZEDSTATUS
};
const u16 gBRNPreventionStringIds[] =
{
STRINGID_PKMNSXPREVENTSBURNS, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY
};
const u16 gPRLZPreventionStringIds[] =
{
STRINGID_PKMNPREVENTSPARALYSISWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY
};
const u16 gPSNPreventionStringIds[] =
{
STRINGID_PKMNPREVENTSPOISONINGWITH, STRINGID_PKMNSXPREVENTSYSZ, STRINGID_PKMNSXHADNOEFFECTONY
};
const u16 gItemSwapStringIds[] =
{
STRINGID_PKMNOBTAINEDX, STRINGID_PKMNOBTAINEDX2, STRINGID_PKMNOBTAINEDXYOBTAINEDZ
};
const u16 gFlashFireStringIds[] =
{
STRINGID_PKMNRAISEDFIREPOWERWITH, STRINGID_PKMNSXMADEYINEFFECTIVE
};
const u16 gCaughtMonStringIds[] =
{
STRINGID_PKMNTRANSFERREDSOMEONESPC, STRINGID_PKMNTRANSFERREDLANETTESPC, STRINGID_PKMNBOXSOMEONESPCFULL, STRINGID_PKMNBOXLANETTESPCFULL,
};
const u16 gTrappingMoves[] =
@ -1102,9 +1281,10 @@ const u8 gText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is
const u8 gText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} began growling deeply!");
const u8 gText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is eager for more!");
const u16 gUnknown_085CCF0A[] =
const u16 gStringIds_85CCF0A[] =
{
0x016E, 0x016F, 0x0170, 0x0171
STRINGID_GLINTAPPEARSINEYE, STRINGID_PKMNGETTINGINTOPOSITION,
STRINGID_PKMNBEGANGROWLINGDEEPLY, STRINGID_PKMNEAGERFORMORE
};
const u8 gText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!");
@ -1736,11 +1916,11 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
else
toCpy = gMoveNames[gStringInfo->currentMove];
break;
case B_TXT_LAST_MOVE: // last used move name
if (gStringInfo->lastMove > LAST_MOVE_INDEX)
case B_TXT_LAST_MOVE: // originally used move name
if (gStringInfo->originallyUsedMove > LAST_MOVE_INDEX)
toCpy = gText_UnknownMoveTypes[gBattleStruct->stringMoveType];
else
toCpy = gMoveNames[gStringInfo->lastMove];
toCpy = gMoveNames[gStringInfo->originallyUsedMove];
break;
case B_TXT_LAST_ITEM: // last used item
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))
@ -2118,7 +2298,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
StringGetEnd10(dst);
srcID += 3;
break;
case B_BUFF_NEGATIVE_FLAVOUR: // flavour table
case B_BUFF_NEGATIVE_FLAVOR: // flavor table
StringAppend(dst, gPokeblockWasTooXStringTable[src[srcID + 1]]);
srcID += 2;
break;
@ -2266,7 +2446,7 @@ void BattleHandleAddTextPrinter(const u8 *text, u8 arg1)
else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED)
speed = sRecordedBattleTextSpeeds[GetTextSpeedInRecordedBattle()];
else
speed = sav2_get_text_speed();
speed = GetPlayerTextSpeed();
gTextFlags.flag_0 = 1;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -18,12 +18,6 @@ extern u16 gSpecialVar_ItemId;
extern const u8 BerryTreeScript[];
#define BERRY_NAME_LENGTH 6
#define FIRST_BERRY ITEM_CHERI_BERRY
#define LAST_BERRY ITEM_ENIGMA_BERRY
static const u8 sBerryDescriptionPart1_Cheri[] = _("Blooms with delicate pretty flowers.");
static const u8 sBerryDescriptionPart2_Cheri[] = _("The bright red BERRY is very spicy.");
static const u8 sBerryDescriptionPart1_Chesto[] = _("The BERRYs thick skin and fruit are");
@ -1062,28 +1056,28 @@ u8 GetStageByBerryTreeId(u8 id)
u8 ItemIdToBerryType(u16 item)
{
u16 berry = item - FIRST_BERRY;
u16 berry = item - FIRST_BERRY_INDEX;
if (berry > LAST_BERRY - FIRST_BERRY)
if (berry > LAST_BERRY_INDEX - FIRST_BERRY_INDEX)
return 1;
else
return item - FIRST_BERRY + 1;
return ITEM_TO_BERRY(item);
}
u16 BerryTypeToItemId(u16 berry)
{
u16 item = berry - 1;
if (item > LAST_BERRY - FIRST_BERRY)
return FIRST_BERRY;
if (item > LAST_BERRY_INDEX - FIRST_BERRY_INDEX)
return FIRST_BERRY_INDEX;
else
return berry + FIRST_BERRY - 1;
return berry + FIRST_BERRY_INDEX - 1;
}
void GetBerryNameByBerryType(u8 berry, u8 *string)
{
memcpy(string, GetBerryInfo(berry)->name, BERRY_NAME_LENGTH);
string[BERRY_NAME_LENGTH] = EOS;
memcpy(string, GetBerryInfo(berry)->name, BERRY_NAME_COUNT - 1);
string[BERRY_NAME_COUNT - 1] = EOS;
}
void GetBerryCountStringByBerryType(u8 berry, u8* dest, u32 berryCount)

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,3 @@
// Includes
#include "global.h"
#include "gpu_regs.h"
#include "multiboot.h"
@ -10,6 +8,7 @@
#include "task.h"
#include "unknown_task.h"
#include "window.h"
#include "text.h"
#include "menu.h"
#include "m4a.h"

View File

@ -1,7 +1,7 @@
#include "global.h"
#include "task.h"
#include "menu.h"
#include "text.h"
#include "menu.h"
#include "sound.h"
#include "main.h"
#include "save.h"

View File

@ -459,10 +459,9 @@ _08034964:\n\
.syntax divided");
}
u32 sub_8034974(void* ptr)
u32 sub_8034974(const u8 *ptr)
{
u8* ptr_ = (u8*)(ptr);
return (ptr_[3] << 16) | (ptr_[2] << 8) | (ptr_[1]);
return (ptr[3] << 16) | (ptr[2] << 8) | (ptr[1]);
}
bool8 LoadCompressedObjectPicUsingHeap(const struct CompressedSpriteSheet* src)

View File

@ -1,6 +1,7 @@
#include "global.h"
#include "decompress.h"
#include "malloc.h"
#include "text.h"
#include "string_util.h"
#include "international_string_util.h"
#include "script.h"

View File

@ -57,8 +57,6 @@ extern const u32 gUnknown_08331F60[]; // tilemap gameboy circle
extern const u8 gText_HatchedFromEgg[];
extern const u8 gText_NickHatchPrompt[];
extern u8* GetMonNick(struct Pokemon* mon, u8* dst);
extern u8* GetBoxMonNick(struct BoxPokemon* boxMon, u8* dst);
extern u8 sav1_map_get_name(void);
extern s8 sub_8198C58(void);
extern void TVShowConvertInternationalString(u8* str1, u8* str2, u8);
@ -75,7 +73,6 @@ extern void play_some_sound(void);
extern void copy_decompressed_tile_data_to_vram_autofree(u8 bg_id, const void* src, u16 size, u16 offset, u8 mode);
extern void CreateYesNoMenu(const struct WindowTemplate*, u16, u8, u8);
extern void DoNamingScreen(u8, const u8*, u16, u8, u32, MainCallback);
extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor* colors, s8 speed, u8 *str);
extern u16 sub_80D22D0(void);
extern u8 CountPartyAliveNonEggMonsExcept(u8);

View File

@ -1,6 +1,6 @@
#include "global.h"
#include "international_string_util.h"
#include "text.h"
#include "international_string_util.h"
extern s32 convert_pixel_width_to_tile_width(s32 a0); // script menu

View File

@ -5,7 +5,7 @@
#include "text.h"
#include "event_data.h"
extern void ApplyNewEncyprtionKeyToHword(u16* hword, u32 newKey);
extern void ApplyNewEncryptionKeyToHword(u16* hword, u32 newKey);
extern bool8 InBattlePyramid(void);
extern const u8 gText_PokeBalls[];
@ -45,19 +45,19 @@ void SetBagItemId(u16* slot, u16 newItemId)
*slot = newItemId;
}
void ApplyNewEncyprtionKeyToBagItems(u32 newKey)
void ApplyNewEncryptionKeyToBagItems(u32 newKey)
{
u32 pocket, item;
for (pocket = 0; pocket < 5; pocket++)
{
for (item = 0; item < gBagPockets[pocket].capacity; item++)
ApplyNewEncyprtionKeyToHword(&(gBagPockets[pocket].itemSlots[item].quantity), newKey);
ApplyNewEncryptionKeyToHword(&(gBagPockets[pocket].itemSlots[item].quantity), newKey);
}
}
void ApplyNewEncyprtionKeyToBagItems_(u32 newKey) // really GF?
void ApplyNewEncryptionKeyToBagItems_(u32 newKey) // really GF?
{
ApplyNewEncyprtionKeyToBagItems(newKey);
ApplyNewEncryptionKeyToBagItems(newKey);
}
// TODO: move those max values to defines

View File

@ -1,21 +1,36 @@
#include "global.h"
#include "global.h"
#include "gba/flash_internal.h"
#include "load_save.h"
#include "main.h"
#include "pokemon.h"
#include "rng.h"
#include "malloc.h"
extern void* gUnknown_0203CF5C;
extern bool16 IdentifyFlash(void);
extern void SetBagItemsPointers(void);
extern void SetDecorationInventoriesPointers(void);
extern void ApplyNewEncryptionKeyToGameStats(u32 key);
extern void ApplyNewEncryptionKeyToBagItems(u32 newKey);
extern void ApplyNewEncryptionKeyToBagItems_(u32 key);
extern void ApplyNewEncryptionKeyToBerryPowder(u32 key);
extern void sub_8084FAC(int unused);
void ApplyNewEncyprtionKeyToAllEncryptedData(u32 encryptionKey);
// this is probably wrong or misleading due to it being used in ResetHeap...
extern void InitHeap(void *pointer, u32 size);
#define SAVEBLOCK_MOVE_RANGE 128
struct LoadedSaveData
{
/*0x0000*/ struct ItemSlot items[30];
/*0x0078*/ struct ItemSlot keyItems[30];
/*0x00F0*/ struct ItemSlot pokeBalls[16];
/*0x0130*/ struct ItemSlot TMsHMs[64];
/*0x0230*/ struct ItemSlot berries[46];
/*0x02E8*/ struct MailStruct mail[16];
};
EWRAM_DATA struct SaveBlock2 gSaveblock2 = {0};
EWRAM_DATA u8 gSaveblock2_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
@ -25,6 +40,11 @@ EWRAM_DATA u8 gSaveblock1_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct PokemonStorage gPokemonStorage = {0};
EWRAM_DATA u8 gSaveblock3_DMA[SAVEBLOCK_MOVE_RANGE] = {0};
EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
EWRAM_DATA u32 gLastEncryptionKey = {0};
void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey);
void CheckForFlashMemory(void)
{
if (!IdentifyFlash())
@ -60,18 +80,45 @@ void SetSaveBlocksPointers(u16 offset)
SetDecorationInventoriesPointers();
}
// stuff i used to try and match MoveSaveBlocks_ResetHeap
struct SaveBlocksInOne
{
struct SaveBlock2 sav2;
struct SaveBlock1 sav1;
struct PokemonStorage sav3;
};
extern struct SaveBlocksInOne gHeap;
#define ewram_addr 0x02000000 // oh no...
#define ewram_addr2 0x02000f2c
#define ewram_addr3 0x02004cb4
#define eSaveBlockCopy (*(struct SaveBlocksInOne *)(ewram_addr + 0x0))
#define eSaveBlock2Copy (*(struct SaveBlock2 *)((void*)(ewram_addr + 0x0)))
#define eSaveBlock1Copy (*(struct SaveBlock1 *)((void*)(ewram_addr + sizeof(struct SaveBlock2))))
#define eSaveBlock3Copy (*(struct PokemonStorage *)((void*)(ewram_addr + sizeof(struct SaveBlock2) + sizeof(struct SaveBlock1))))
#ifdef NONMATCHING // this is one devil of a motherfucker
/*
The reason MoveSaveBlocks_ResetHeap mismatches is due to incorrect memcpys. Various
things have been tried, such as: direct struct copys, ewram casts, use of defining
the addresses manually, using memcpy anyway, delayed allocation of pointers at
the start of function, as seen above and below. Scope declaration has been used to try and
reproduce the correct macro thought to be used, but nothing has worked. It is worth
noting that at this point that the compiler will delay the allocation of the save block
pointers at the beginningto be allocated later: which might matter for matching this.
Due to loading shared ewram heap areas directly, it is very likely emerald used ewram
defines for this function, but there is no known example of a matching define.
In addition, dead code might be present in the form of a runtime variable used
to fix the address of the save blocks. This has been tested and is shown to affect
the registers as well.
*/
void MoveSaveBlocks_ResetHeap(void)
{
void *vblankCB, *hblankCB;
u32 encryptionKey;
struct SaveBlocksInOne* copiedSavs;
struct SaveBlock1 **sav1Copy = &gSaveBlock1Ptr; // r10;
// save interrupt functions and turn them off
vblankCB = gMain.vblankCallback;
@ -80,24 +127,22 @@ void MoveSaveBlocks_ResetHeap(void)
gMain.hblankCallback = NULL;
gUnknown_0203CF5C = NULL;
copiedSavs = (void*)(gHeap);
// copy saveblocks' content
copiedSavs->sav2 = *gSaveBlock2Ptr;
copiedSavs->sav1 = *gSaveBlock1Ptr;
copiedSavs->sav3 = *gPokemonStoragePtr;
// backup the saves.
eSaveBlock1Copy = **sav1Copy;
eSaveBlock2Copy = *gSaveBlock2Ptr;
eSaveBlock3Copy = *gPokemonStoragePtr;
// change saveblocks' pointers
// argument is a sum of the individual trainerId bytes
SetSaveBlocksPointers(copiedSavs->sav2.playerTrainerId[0] + copiedSavs->sav2.playerTrainerId[1] + copiedSavs->sav2.playerTrainerId[2] + copiedSavs->sav2.playerTrainerId[3]);
SetSaveBlocksPointers(eSaveBlock2Copy.playerTrainerId[0] + eSaveBlock2Copy.playerTrainerId[1] + eSaveBlock2Copy.playerTrainerId[2] + eSaveBlock2Copy.playerTrainerId[3]);
// restore saveblock data since the pointers changed
*gSaveBlock2Ptr = copiedSavs->sav2;
*gSaveBlock1Ptr = copiedSavs->sav1;
*gPokemonStoragePtr = copiedSavs->sav3;
**sav1Copy = eSaveBlock1Copy;
*gSaveBlock2Ptr = eSaveBlock2Copy;
*gPokemonStoragePtr = eSaveBlock3Copy;
// heap was destroyed in the copying process, so reset it
InitHeap(gHeap, sizeof(gHeap));
InitHeap((void*)(0x02000000), 0x1C000);
// restore interrupt functions
gMain.hblankCallback = hblankCB;
@ -105,6 +150,266 @@ void MoveSaveBlocks_ResetHeap(void)
// create a new encryption key
encryptionKey = (Random() << 0x10) + (Random());
ApplyNewEncyprtionKeyToAllEncryptedData(encryptionKey);
ApplyNewEncryptionKeyToAllEncryptedData(encryptionKey);
gSaveBlock2Ptr->encryptionKey = encryptionKey;
}*/
}
#else
__attribute__((naked))
void MoveSaveBlocks_ResetHeap(void)
{
asm(".syntax unified\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x8\n\
ldr r5, =gMain\n\
ldr r0, [r5, 0xC]\n\
str r0, [sp]\n\
ldr r1, [r5, 0x10]\n\
str r1, [sp, 0x4]\n\
movs r0, 0\n\
str r0, [r5, 0xC]\n\
str r0, [r5, 0x10]\n\
ldr r1, =gUnknown_0203CF5C\n\
str r0, [r1]\n\
ldr r4, =0x02000000\n\
ldr r0, =gSaveBlock2Ptr\n\
ldr r1, [r0]\n\
ldr r6, =0x00000f2c\n\
adds r0, r4, 0\n\
adds r2, r6, 0\n\
bl memcpy\n\
ldr r1, =gSaveBlock1Ptr\n\
mov r10, r1\n\
ldr r1, [r1]\n\
ldr r7, =0x00003d88\n\
ldr r0, =0x02000f2c\n\
adds r2, r7, 0\n\
bl memcpy\n\
ldr r0, =gPokemonStoragePtr\n\
mov r8, r0\n\
ldr r1, [r0]\n\
ldr r0, =0x000083d0\n\
mov r9, r0\n\
ldr r0, =0x02004cb4\n\
mov r2, r9\n\
bl memcpy\n\
ldrb r1, [r4, 0xA]\n\
ldrb r0, [r4, 0xB]\n\
adds r1, r0\n\
ldrb r0, [r4, 0xC]\n\
adds r1, r0\n\
ldrb r0, [r4, 0xD]\n\
adds r0, r1\n\
bl SetSaveBlocksPointers\n\
ldr r1, =gSaveBlock2Ptr\n\
ldr r0, [r1]\n\
adds r1, r4, 0\n\
adds r2, r6, 0\n\
bl memcpy\n\
mov r1, r10\n\
ldr r0, [r1]\n\
ldr r1, =0x02000f2c\n\
adds r2, r7, 0\n\
bl memcpy\n\
mov r1, r8\n\
ldr r0, [r1]\n\
ldr r1, =0x02004cb4\n\
mov r2, r9\n\
bl memcpy\n\
movs r1, 0xE0\n\
lsls r1, 9\n\
adds r0, r4, 0\n\
bl InitHeap\n\
ldr r0, [sp, 0x4]\n\
str r0, [r5, 0x10]\n\
ldr r1, [sp]\n\
str r1, [r5, 0xC]\n\
bl Random\n\
adds r4, r0, 0\n\
bl Random\n\
lsls r4, 16\n\
lsls r0, 16\n\
lsrs r0, 16\n\
adds r4, r0\n\
adds r0, r4, 0\n\
bl ApplyNewEncryptionKeyToAllEncryptedData\n\
ldr r1, =gSaveBlock2Ptr\n\
ldr r0, [r1]\n\
adds r0, 0xAC\n\
str r4, [r0]\n\
add sp, 0x8\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
.pool\n\
.syntax divided\n");
}
#endif
u8 sav2_x1_query_bit1(void)
{
return gSaveBlock2Ptr->specialSaveWarp & 1;
}
void sav2_x9_clear_bit1(void)
{
gSaveBlock2Ptr->specialSaveWarp &= ~1;
}
void sub_8076D48(void)
{
gSaveBlock2Ptr->specialSaveWarp |= 1;
}
void sub_8076D5C(void)
{
sub_8084FAC(0);
gSaveBlock2Ptr->specialSaveWarp |= 1;
}
void sav2_gender2_inplace_and_xFE(void)
{
gSaveBlock2Ptr->specialSaveWarp &= ~1;
}
void copy_player_party_to_sav1(void) // SavePlayerParty
{
int i;
gSaveBlock1Ptr->playerPartyCount = gPlayerPartyCount;
for (i = 0; i < 6; i++)
gSaveBlock1Ptr->playerParty[i] = gPlayerParty[i];
}
void copy_player_party_from_sav1(void) // LoadPlayerParty
{
int i;
gPlayerPartyCount = gSaveBlock1Ptr->playerPartyCount;
for (i = 0; i < 6; i++)
gPlayerParty[i] = gSaveBlock1Ptr->playerParty[i];
}
void save_serialize_npcs(void) // SaveMapObjects
{
int i;
for (i = 0; i < 16; i++)
gSaveBlock1Ptr->mapObjects[i] = gMapObjects[i];
}
void save_deserialize_npcs(void) // LoadMapObjects
{
int i;
for (i = 0; i < 16; i++)
gMapObjects[i] = gSaveBlock1Ptr->mapObjects[i];
}
void SaveSerializedGame(void)
{
copy_player_party_to_sav1();
save_serialize_npcs();
}
void LoadSerializedGame(void)
{
copy_player_party_from_sav1();
save_deserialize_npcs();
}
void copy_bags_and_unk_data_from_save_blocks(void)
{
int i;
// load player items.
for (i = 0; i < 30; i++)
gLoadedSaveData.items[i] = gSaveBlock1Ptr->bagPocket_Items[i];
// load player key items.
for (i = 0; i < 30; i++)
gLoadedSaveData.keyItems[i] = gSaveBlock1Ptr->bagPocket_KeyItems[i];
// load player pokeballs.
for (i = 0; i < 16; i++)
gLoadedSaveData.pokeBalls[i] = gSaveBlock1Ptr->bagPocket_PokeBalls[i];
// load player TMs and HMs.
for (i = 0; i < 64; i++)
gLoadedSaveData.TMsHMs[i] = gSaveBlock1Ptr->bagPocket_TMHM[i];
// load player berries.
for (i = 0; i < 46; i++)
gLoadedSaveData.berries[i] = gSaveBlock1Ptr->bagPocket_Berries[i];
// load mail.
for (i = 0; i < 16; i++)
gLoadedSaveData.mail[i] = gSaveBlock1Ptr->mail[i];
gLastEncryptionKey = gSaveBlock2Ptr->encryptionKey;
}
void copy_bags_and_unk_data_to_save_blocks(void)
{
int i;
u32 encryptionKeyBackup;
// save player items.
for (i = 0; i < 30; i++)
gSaveBlock1Ptr->bagPocket_Items[i] = gLoadedSaveData.items[i];
// save player key items.
for (i = 0; i < 30; i++)
gSaveBlock1Ptr->bagPocket_KeyItems[i] = gLoadedSaveData.keyItems[i];
// save player pokeballs.
for (i = 0; i < 16; i++)
gSaveBlock1Ptr->bagPocket_PokeBalls[i] = gLoadedSaveData.pokeBalls[i];
// save player TMs and HMs.
for (i = 0; i < 64; i++)
gSaveBlock1Ptr->bagPocket_TMHM[i] = gLoadedSaveData.TMsHMs[i];
// save player berries.
for (i = 0; i < 46; i++)
gSaveBlock1Ptr->bagPocket_Berries[i] = gLoadedSaveData.berries[i];
// save mail.
for (i = 0; i < 16; i++)
gSaveBlock1Ptr->mail[i] = gLoadedSaveData.mail[i];
encryptionKeyBackup = gSaveBlock2Ptr->encryptionKey;
gSaveBlock2Ptr->encryptionKey = gLastEncryptionKey;
ApplyNewEncryptionKeyToBagItems(encryptionKeyBackup);
gSaveBlock2Ptr->encryptionKey = encryptionKeyBackup; // updated twice?
}
void ApplyNewEncryptionKeyToHword(u16 *hWord, u32 newKey)
{
*hWord ^= gSaveBlock2Ptr->encryptionKey;
*hWord ^= newKey;
}
void ApplyNewEncryptionKeyToWord(u32 *word, u32 newKey)
{
*word ^= gSaveBlock2Ptr->encryptionKey;
*word ^= newKey;
}
void ApplyNewEncryptionKeyToAllEncryptedData(u32 encryptionKey)
{
ApplyNewEncryptionKeyToGameStats(encryptionKey);
ApplyNewEncryptionKeyToBagItems_(encryptionKey);
ApplyNewEncryptionKeyToBerryPowder(encryptionKey);
ApplyNewEncryptionKeyToWord(&gSaveBlock1Ptr->money, encryptionKey);
ApplyNewEncryptionKeyToHword(&gSaveBlock1Ptr->coins, encryptionKey);
}

View File

@ -45,7 +45,7 @@ void m4aMPlayVolumeControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16
mplayInfo->ident = ID_NUMBER;
}
void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16 pitch)
void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, s16 pitch)
{
s32 i;
u32 bit;
@ -66,7 +66,7 @@ void m4aMPlayPitchControl(struct MusicPlayerInfo *mplayInfo, u16 trackBits, u16
{
if (track->flags & MPT_FLG_EXIST)
{
track->keyShiftX = (s16)pitch >> 8;
track->keyShiftX = pitch >> 8;
track->pitX = pitch;
track->flags |= MPT_FLG_PITCHG;
}

View File

@ -1,14 +1,12 @@
// Includes
#include "global.h"
#include "main.h"
#include "overworld.h"
#include "task.h"
#include "unknown_task.h"
#include "palette.h"
#include "text.h"
#include "menu.h"
#include "menu_helpers.h"
#include "text.h"
#include "text_window.h"
#include "string_util.h"
#include "international_string_util.h"

View File

@ -1297,13 +1297,13 @@ bool8 IsPokeSpriteNotFlipped(u16 species)
return gBaseStats[species].noFlip;
}
s8 GetMonFlavourRelation(struct Pokemon *mon, u8 a2)
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 a2)
{
u8 nature = GetNature(mon);
return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];
}
s8 GetFlavourRelationByPersonality(u32 personality, u8 a2)
s8 GetFlavorRelationByPersonality(u32 personality, u8 a2)
{
u8 nature = GetNatureFromPersonality(personality);
return gPokeblockFlavorCompatibilityTable[nature * 5 + a2];

View File

@ -15,6 +15,7 @@
#include "sound.h"
#include "species.h"
#include "sprite.h"
#include "unk_text_util.h"
#include "string_util.h"
#include "task.h"
#include "text.h"
@ -166,9 +167,7 @@ extern s32 GetStringCenterAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
extern s32 GetStringRightAlignXOffset(u8 fontId, u8 *str, s32 totalWidth);
extern bool8 sub_81A6BF4();
extern bool8 sub_81B9E94();
extern void sub_81AFBF0();
extern u8 sub_81AFC0C(u8 a, u8 *b);
extern void sub_81AFC28(u8 *a, u8 *b);
extern void UnkTextUtil_Reset();
extern void sub_8124610(u8 *a, u8 b);
extern int GetPlayerIDAsU32();
extern u8 GetCurrentPpToMaxPpState(u8 a, u8 b);
@ -2993,12 +2992,12 @@ void sub_81C307C()
{
struct PokeSummary *sum = &gUnknown_0203CF1C->summary;
u8 *text;
sub_81AFBF0();
sub_81AFC0C(0, gUnknown_0861CE74);
sub_81AFC0C(1, gUnknown_0861CE7B);
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, gUnknown_0861CE74);
UnkTextUtil_SetPtrI(1, gUnknown_0861CE7B);
sub_81C31C0();
if (sub_81A6BF4() == TRUE || sub_81B9E94() == TRUE || sub_81C3304() == TRUE)
sub_81AFC28(gStringVar4, gText_XNature);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gText_XNature);
else
{
u8 *alloced1 = Alloc(32);
@ -3007,7 +3006,7 @@ void sub_81C307C()
if (sum->metLocation <= 0xD4)
{
sub_8124610(alloced2, sum->metLocation);
sub_81AFC0C(4, alloced2);
UnkTextUtil_SetPtrI(4, alloced2);
}
if (sub_81C3220() == 1)
{
@ -3022,7 +3021,7 @@ void sub_81C307C()
text = (sum->metLocation > 0xD4) ? gText_XNatureObtainedInTrade : gText_XNatureProbablyMetAt;
else
text = gText_XNatureObtainedInTrade;
sub_81AFC28(gStringVar4, text);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, text);
Free(alloced1);
Free(alloced2);
}
@ -3036,8 +3035,8 @@ void sub_81C3194()
void sub_81C31C0()
{
struct UnkSummaryStruct *sumStruct = gUnknown_0203CF1C;
sub_81AFC0C(2, gNatureNamePointers[sumStruct->summary.nature]);
sub_81AFC0C(5, gText_EmptyString5);
UnkTextUtil_SetPtrI(2, gNatureNamePointers[sumStruct->summary.nature]);
UnkTextUtil_SetPtrI(5, gText_EmptyString5);
}
void sub_81C31F0(u8 *a)
@ -3046,7 +3045,7 @@ void sub_81C31F0(u8 *a)
if (level == 0)
level = 5;
ConvertIntToDecimalStringN(a, level, 0, 3);
sub_81AFC0C(3, a);
UnkTextUtil_SetPtrI(3, a);
}
u8 sub_81C3220()
@ -3301,12 +3300,12 @@ void sub_81C3710()
ConvertIntToDecimalStringN(alloced2, gUnknown_0203CF1C->summary.maxHP, 1, 3);
ConvertIntToDecimalStringN(alloced3, gUnknown_0203CF1C->summary.atk, 1, 7);
ConvertIntToDecimalStringN(alloced4, gUnknown_0203CF1C->summary.def, 1, 7);
sub_81AFBF0();
sub_81AFC0C(0, alloced1);
sub_81AFC0C(1, alloced2);
sub_81AFC0C(2, alloced3);
sub_81AFC0C(3, alloced4);
sub_81AFC28(gStringVar4, gUnknown_0861CE82);
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, alloced1);
UnkTextUtil_SetPtrI(1, alloced2);
UnkTextUtil_SetPtrI(2, alloced3);
UnkTextUtil_SetPtrI(3, alloced4);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE82);
Free(alloced1);
Free(alloced2);
Free(alloced3);
@ -3323,11 +3322,11 @@ void sub_81C3808()
ConvertIntToDecimalStringN(gStringVar1, gUnknown_0203CF1C->summary.spatk, 1, 3);
ConvertIntToDecimalStringN(gStringVar2, gUnknown_0203CF1C->summary.spdef, 1, 3);
ConvertIntToDecimalStringN(gStringVar3, gUnknown_0203CF1C->summary.speed, 1, 3);
sub_81AFBF0();
sub_81AFC0C(0, gStringVar1);
sub_81AFC0C(1, gStringVar2);
sub_81AFC0C(2, gStringVar3);
sub_81AFC28(gStringVar4, gUnknown_0861CE8E);
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gStringVar2);
UnkTextUtil_SetPtrI(2, gStringVar3);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE8E);
}
void sub_81C3890()
@ -3436,10 +3435,10 @@ void sub_81C3B08(u8 a)
sub_81C25A4(r8, gMoveNames[move], 0, (a<<4) + 1, 0, 1);
ConvertIntToDecimalStringN(gStringVar1, r10->summary.pp[a], 1, 2);
ConvertIntToDecimalStringN(gStringVar2, r6, 1, 2);
sub_81AFBF0();
sub_81AFC0C(0, gStringVar1);
sub_81AFC0C(1, gStringVar2);
sub_81AFC28(gStringVar4, gUnknown_0861CE97);
UnkTextUtil_Reset();
UnkTextUtil_SetPtrI(0, gStringVar1);
UnkTextUtil_SetPtrI(1, gStringVar2);
UnkTextUtil_StringExpandPlaceholders(gStringVar4, gUnknown_0861CE97);
text = gStringVar4;
r5 = GetCurrentPpToMaxPpState(r10->summary.pp[a], r6) + 9;
offset = GetStringRightAlignXOffset(1, text, 0x2C);
@ -3531,17 +3530,17 @@ void sub_81C3B08(u8 a)
movs r2, 0x1\n\
movs r3, 0x2\n\
bl ConvertIntToDecimalStringN\n\
bl sub_81AFBF0\n\
bl UnkTextUtil_Reset\n\
movs r0, 0\n\
mov r1, r8\n\
bl sub_81AFC0C\n\
bl UnkTextUtil_SetPtrI\n\
movs r0, 0x1\n\
adds r1, r4, 0\n\
bl sub_81AFC0C\n\
bl UnkTextUtil_SetPtrI\n\
ldr r4, =gStringVar4\n\
ldr r1, =gUnknown_0861CE97\n\
adds r0, r4, 0\n\
bl sub_81AFC28\n\
bl UnkTextUtil_StringExpandPlaceholders\n\
adds r7, r4, 0\n\
ldrb r0, [r5]\n\
adds r1, r6, 0\n\

View File

@ -1,7 +1,6 @@
// Includes
#include "global.h"
#include "main.h"
#include "text.h"
#include "menu.h"
#include "malloc.h"
#include "gpu_regs.h"
@ -17,7 +16,6 @@
#include "string_util.h"
#include "international_string_util.h"
#include "strings.h"
#include "text.h"
#include "text_window.h"
#include "songs.h"
#include "m4a.h"

View File

@ -13,8 +13,6 @@
#define MSG_WIN_TOP 12
#define CLOCK_WIN_TOP (MSG_WIN_TOP - 4)
extern void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, struct TextColor *color, s8 speed, u8 *str);
extern void (*gGameContinueCallback)(void);
extern u32 gDamagedSaveSectors;

View File

@ -13,7 +13,7 @@ extern void CopyWindowToVram(u8 windowId, u8 mode);
extern u16 Font6Func(struct TextPrinter *textPrinter);
extern u32 GetGlyphWidthFont6(u16 glyphId, bool32 isJapanese);
extern void PlaySE(u16 songNum);
extern u8* sub_81AFC74(u8 a1);
extern u8* UnkTextUtil_GetPtrI(u8 a1);
EWRAM_DATA struct TextPrinter gTempTextPrinter = {0};
EWRAM_DATA struct TextPrinter gTextPrinters[NUM_TEXT_PRINTERS] = {0};
@ -190,7 +190,7 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca
gTempTextPrinter.japanese = 0;
GenerateFontHalfRowLookupTable(textSubPrinter->fontColor_h, textSubPrinter->bgColor, textSubPrinter->shadowColor);
if (speed != 0xFF && speed != 0x0)
if (speed != TEXT_SPEED_FF && speed != 0x0)
{
--gTempTextPrinter.text_speed;
gTextPrinters[textSubPrinter->windowId] = gTempTextPrinter;
@ -204,7 +204,7 @@ bool16 AddTextPrinter(struct TextSubPrinter *textSubPrinter, u8 speed, void (*ca
break;
}
if (speed != 0xFF)
if (speed != TEXT_SPEED_FF)
CopyWindowToVram(gTempTextPrinter.subPrinter.windowId, 2);
gTextPrinters[textSubPrinter->windowId].sub_union.sub.active = 0;
}
@ -2932,7 +2932,7 @@ u32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
}
case 0xF7:
if (bufferPointer == NULL)
bufferPointer = sub_81AFC74(*++str);
bufferPointer = UnkTextUtil_GetPtrI(*++str);
while (*bufferPointer != 0xFF)
{
glyphWidth = func(*bufferPointer++, isJapanese);

56
src/unk_text_util.c Normal file
View File

@ -0,0 +1,56 @@
#include "global.h"
#include "text.h"
#include "unk_text_util.h"
#include "string_util.h"
static EWRAM_DATA const u8 *sStringPointers[8] = {};
void UnkTextUtil_Reset(void)
{
const u8 **ptr;
u8 *fillval;
const u8 **ptr2;
ptr = sStringPointers;
fillval = NULL;
ptr2 = ptr + (ARRAY_COUNT(sStringPointers) - 1);
do
{
*ptr2-- = fillval;
} while ((int)ptr2 >= (int)ptr);
}
void UnkTextUtil_SetPtrI(u8 idx, const u8 *ptr)
{
if (idx < ARRAY_COUNT(sStringPointers))
{
sStringPointers[idx] = ptr;
}
}
u8 *UnkTextUtil_StringExpandPlaceholders(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 *UnkTextUtil_GetPtrI(u8 idx)
{
return sStringPointers[idx];
}

View File

@ -75,7 +75,7 @@ gUnknown_0300307C: @ 300307C
gUnknown_03003084: @ 3003084
.space 0xC
gUnknown_03003090: @ 3003090
gRecvCmds: @ 3003090
.space 0x2
gUnknown_03003092: @ 3003092
@ -111,7 +111,7 @@ gLinkVSyncDisabled: @ 30030FC
gUnknown_03003100: @ 3003100
.space 0x10
gUnknown_03003110: @ 3003110
gSendCmd: @ 3003110
.space 0x10
gUnknown_03003120: @ 3003120
@ -248,7 +248,7 @@ gSaveBlock2Ptr: @ 3005D90
gPokemonStoragePtr: @ 3005D94
.space 0x4
gUnknown_03005D98: @ 3005D98
gInGameOpponentsNo: @ 3005D98
.space 0x4
gUnknown_03005D9C: @ 3005D9C

View File

@ -34,13 +34,13 @@ gUnknown_020223C0: @ 20223C0
gBlockRecvBuffer: @ 20223C4
.space 0x500
gUnknown_020228C4: @ 20228C4 gBlockSendBuffer
gBlockSendBuffer: @ 20228C4 gBlockSendBuffer
.space 0x100
gUnknown_020229C4: @ 20229C4
.space 0x2
gUnknown_020229C6: @ 20229C6
gLinkType: @ 20229C6
.space 0x2
gUnknown_020229C8: @ 20229C8
@ -312,7 +312,7 @@ gUnknown_020241E9: @ 20241E9
gCurrentMove: @ 20241EA
.space 0x2
gLastUsedMove: @ 20241EC
gChosenMove: @ 20241EC
.space 0x2
gRandomMove: @ 20241EE
@ -363,31 +363,31 @@ gBattlescriptCurrInstr: @ 2024214
gActionForBanks: @ 202421C
.space 0x4
gBattlescriptPtrsForSelection: @ 2024220
gSelectionBattleScripts: @ 2024220
.space 0x10
gUnknown_02024230: @ 2024230
gPalaceSelectionBattleScripts: @ 2024230
.space 0x10
gUnknownMovesUsedByBanks: @ 2024240
gLastPrintedMoves: @ 2024240
.space 0x8
gLastUsedMovesByBanks: @ 2024248
gLastMoves: @ 2024248
.space 0x8
gUnknown_02024250: @ 2024250
gLastLandedMoves: @ 2024250
.space 0x8
gUnknown_02024258: @ 2024258
gLastHitByType: @ 2024258
.space 0x8
gUnknown_02024260: @ 2024260
gLastResultingMoves: @ 2024260
.space 0x8
gLockedMoves: @ 2024268
.space 0x8
gUnknown_02024270: @ 2024270
gLastHitBy: @ 2024270
.space 0x4
gChosenMovesByBanks: @ 2024274
@ -547,12 +547,6 @@ gUnknown_020249B4: @ 20249B4
.include "src/daycare.o"
.include "src/load_save.o"
gUnknown_02031C58: @ 2031C58
.space 0x528
gUnknown_02032180: @ 2032180
.space 0x4
gUnknown_02032184: @ 2032184
.space 0x4
@ -570,18 +564,8 @@ gUnknown_0203229C: @ 203229C
gUnknown_020322A0: @ 20322A0
.space 0x4
gUnknown_020322A4: @ 20322A4
.space 0x4
gUnknown_020322A8: @ 20322A8
.space 0x14
gUnknown_020322BC: @ 20322BC
.space 0x14
gUnknown_020322D0: @ 20322D0
.space 0x4
.include "src/berry_blender.o"
gDifferentSaveFile: @ 20322D4
.space 0x1
@ -1238,7 +1222,7 @@ gUnknown_0203AB6F: @ 203AB6F
gUnknown_0203AB70: @ 203AB70
.space 0x4
gUnknown_0203AB74: @ 203AB74
gResultsWindowId: @ 203AB74
.space 0x4
gUnknown_0203AB78: @ 203AB78
@ -1545,8 +1529,7 @@ gUnknown_0203CE84: @ 203CE84
gUnknown_0203CE8C: @ 203CE8C
.space 0x10
gUnknown_0203CE9C: @ 203CE9C
.space 0x20
.include "src/unk_text_util.o"
gUnknown_0203CEBC: @ 203CEBC
.space 0x4