Merge branch 'master' into coins
This commit is contained in:
commit
41eb2ed59e
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
8788
asm/berry_blender.s
8788
asm/berry_blender.s
File diff suppressed because it is too large
Load Diff
@ -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]
|
||||
|
||||
@ -14067,7 +14067,7 @@ _080DEC80:
|
||||
b _080DEC9C
|
||||
.pool
|
||||
_080DEC94:
|
||||
bl sav2_get_text_speed
|
||||
bl GetPlayerTextSpeed
|
||||
lsls r0, 24
|
||||
lsrs r1, r0, 24
|
||||
_080DEC9C:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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]
|
||||
|
||||
300
asm/link.s
300
asm/link.s
File diff suppressed because it is too large
Load Diff
669
asm/load_save.s
669
asm/load_save.s
@ -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
1389
asm/macros/battle_script.inc
Normal file
File diff suppressed because it is too large
Load Diff
@ -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
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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]
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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()
|
||||
|
||||
40
asm/rom6.s
40
asm/rom6.s
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
14
asm/trade.s
14
asm/trade.s
@ -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]
|
||||
|
||||
@ -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.
|
||||
@ -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
|
||||
|
||||
170
constants/battle_constants.inc
Normal file
170
constants/battle_constants.inc
Normal 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
|
||||
169
constants/battle_script_constants.inc
Normal file
169
constants/battle_script_constants.inc
Normal 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
375
constants/battle_text.inc
Normal 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
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
20
data/link.s
20
data/link.s
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
640
include/battle_scripts.h
Normal 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
|
||||
@ -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
8
include/berry_blender.h
Normal 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
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
6
include/item_menu_icons.h
Normal file
6
include/item_menu_icons.h
Normal 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
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
9
include/unk_text_util.h
Normal 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
|
||||
@ -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);
|
||||
|
||||
156
src/battle_2.c
156
src/battle_2.c
@ -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;
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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++)
|
||||
{
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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;
|
||||
|
||||
|
||||
@ -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();
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
22
src/berry.c
22
src/berry.c
@ -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 BERRY’s 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)
|
||||
|
||||
3176
src/berry_blender.c
3176
src/berry_blender.c
File diff suppressed because it is too large
Load Diff
@ -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"
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
10
src/item.c
10
src/item.c
@ -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
|
||||
|
||||
339
src/load_save.c
339
src/load_save.c
@ -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);
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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];
|
||||
|
||||
@ -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\
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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;
|
||||
|
||||
@ -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
56
src/unk_text_util.c
Normal 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];
|
||||
}
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user