Merge pull request #207 from DizzyEggg/decompile_pokemon_123
Decompile and clean pokemon files
This commit is contained in:
commit
a4787bc06a
@ -1591,7 +1591,7 @@ _0818F7E8:
|
||||
lsrs r1, 16
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r2, 0x1
|
||||
bl nature_stat_mod
|
||||
bl ModifyStatByNature
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r1, r8
|
||||
@ -1618,7 +1618,7 @@ _0818F820:
|
||||
lsrs r1, 16
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r2, 0x2
|
||||
bl nature_stat_mod
|
||||
bl ModifyStatByNature
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r1, r8
|
||||
@ -1645,7 +1645,7 @@ _0818F858:
|
||||
lsrs r1, 16
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r2, 0x3
|
||||
bl nature_stat_mod
|
||||
bl ModifyStatByNature
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r1, r8
|
||||
@ -1672,7 +1672,7 @@ _0818F890:
|
||||
lsrs r1, 16
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r2, 0x4
|
||||
bl nature_stat_mod
|
||||
bl ModifyStatByNature
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r1, r8
|
||||
@ -1699,7 +1699,7 @@ _0818F8C8:
|
||||
lsrs r1, 16
|
||||
ldr r0, [sp, 0x18]
|
||||
movs r2, 0x5
|
||||
bl nature_stat_mod
|
||||
bl ModifyStatByNature
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r1, r8
|
||||
@ -1941,7 +1941,7 @@ sub_818FA74: @ 818FA74
|
||||
str r4, [sp, 0x4]
|
||||
ldr r7, [sp, 0x14]
|
||||
str r7, [sp, 0x8]
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
add r0, sp, 0xC
|
||||
movs r1, 0x1
|
||||
negs r1, r1
|
||||
|
||||
@ -1960,7 +1960,7 @@ _0819B572:
|
||||
mov r2, r9
|
||||
str r2, [sp, 0x8]
|
||||
ldr r2, [sp, 0x14]
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
movs r1, 0
|
||||
add r0, sp, 0xC
|
||||
strb r1, [r0]
|
||||
@ -2103,7 +2103,7 @@ _0819B678:
|
||||
mov r2, r10
|
||||
str r2, [sp, 0x8]
|
||||
movs r2, 0x1E
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
add r0, sp, 0xC
|
||||
movs r3, 0
|
||||
strb r3, [r0]
|
||||
@ -23864,7 +23864,7 @@ _081A6E0C:
|
||||
ldr r4, [sp, 0x28]
|
||||
str r4, [sp, 0x8]
|
||||
lsrs r2, 24
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
add r0, sp, 0x1C
|
||||
movs r7, 0
|
||||
strb r7, [r0]
|
||||
|
||||
@ -2351,7 +2351,7 @@ _08163368:
|
||||
ldr r2, [sp, 0x30]
|
||||
str r2, [sp, 0x8]
|
||||
ldr r2, [sp, 0x20]
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
movs r0, 0xFF
|
||||
mov r6, sp
|
||||
strb r0, [r6, 0x14]
|
||||
@ -2775,7 +2775,7 @@ _081636CE:
|
||||
str r2, [sp, 0x8]
|
||||
ldr r2, [sp, 0x14]
|
||||
mov r3, r10
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
movs r1, 0
|
||||
add r0, sp, 0xC
|
||||
strb r1, [r0]
|
||||
@ -2894,7 +2894,7 @@ _081637D0:
|
||||
mov r2, r9
|
||||
str r2, [sp, 0x8]
|
||||
movs r2, 0x1E
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
movs r1, 0
|
||||
add r0, sp, 0xC
|
||||
strb r1, [r0]
|
||||
@ -6289,7 +6289,7 @@ _081655A6:
|
||||
str r3, [sp, 0x8]
|
||||
lsrs r2, 24
|
||||
mov r3, r12
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
movs r0, 0xFF
|
||||
str r0, [sp, 0x48]
|
||||
movs r0, 0
|
||||
@ -7550,7 +7550,7 @@ _08165FDA:
|
||||
ldr r2, [sp, 0x2C]
|
||||
str r2, [sp, 0x8]
|
||||
ldr r2, [sp, 0x20]
|
||||
bl sub_8068634
|
||||
bl CreateMonWithEVSpreadPersonalityOTID
|
||||
add r1, sp, 0x14
|
||||
movs r0, 0xFF
|
||||
strb r0, [r1]
|
||||
|
||||
@ -3940,7 +3940,7 @@ AddBirchSpeechObjects: @ 803192C
|
||||
strb r1, [r2]
|
||||
strh r0, [r5, 0x1A]
|
||||
movs r0, 0x3C
|
||||
bl sub_806EFF0
|
||||
bl FacilityClassToPicIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r4, =0x0201c000
|
||||
@ -3970,7 +3970,7 @@ AddBirchSpeechObjects: @ 803192C
|
||||
strb r1, [r2, 0x5]
|
||||
strh r0, [r5, 0x1C]
|
||||
movs r0, 0x3F
|
||||
bl sub_806EFF0
|
||||
bl FacilityClassToPicIndex
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
ldr r1, =0x0201c000
|
||||
|
||||
@ -11943,7 +11943,7 @@ _081B6558:
|
||||
adds r1, r5, 0
|
||||
_081B6572:
|
||||
adds r3, r6, 0
|
||||
bl ExecuteTableBasedItemEffect_
|
||||
bl ExecuteTableBasedItemEffect
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
pop {r4-r6}
|
||||
|
||||
2016
asm/pokemon_1.s
2016
asm/pokemon_1.s
File diff suppressed because it is too large
Load Diff
529
asm/pokemon_3.s
529
asm/pokemon_3.s
@ -1,529 +0,0 @@
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.syntax unified
|
||||
|
||||
.text
|
||||
|
||||
|
||||
|
||||
thumb_func_start sub_806F160
|
||||
sub_806F160: @ 806F160
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
adds r6, r0, 0
|
||||
ldrb r0, [r6]
|
||||
lsls r0, 28
|
||||
movs r4, 0
|
||||
cmp r0, 0
|
||||
beq _0806F1EA
|
||||
_0806F176:
|
||||
ldr r0, [r6, 0xC]
|
||||
lsls r2, r4, 1
|
||||
adds r1, r2, r4
|
||||
lsls r1, 3
|
||||
adds r0, r1, r0
|
||||
ldr r3, =gUnknown_08329D98
|
||||
adds r1, r3
|
||||
ldm r1!, {r3,r5,r7}
|
||||
stm r0!, {r3,r5,r7}
|
||||
ldm r1!, {r3,r5,r7}
|
||||
stm r0!, {r3,r5,r7}
|
||||
movs r5, 0
|
||||
ldrb r3, [r6, 0x1]
|
||||
ldr r7, [r6, 0xC]
|
||||
mov r9, r7
|
||||
mov r8, r2
|
||||
ldr r0, [r6, 0x10]
|
||||
mov r12, r0
|
||||
adds r1, r4, 0x1
|
||||
mov r10, r1
|
||||
cmp r5, r3
|
||||
bcs _0806F1C8
|
||||
mov r7, r12
|
||||
ldr r1, [r6, 0x8]
|
||||
lsls r0, r4, 2
|
||||
adds r0, r1
|
||||
ldr r2, [r0]
|
||||
_0806F1AC:
|
||||
adds r0, r4, 0
|
||||
muls r0, r3
|
||||
adds r0, r5
|
||||
lsls r0, 3
|
||||
adds r0, r7
|
||||
lsls r1, r5, 11
|
||||
adds r1, r2, r1
|
||||
str r1, [r0]
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
ldrb r3, [r6, 0x1]
|
||||
cmp r5, r3
|
||||
bcc _0806F1AC
|
||||
_0806F1C8:
|
||||
mov r3, r8
|
||||
adds r1, r3, r4
|
||||
lsls r1, 3
|
||||
add r1, r9
|
||||
ldrb r0, [r6, 0x1]
|
||||
muls r0, r4
|
||||
lsls r0, 3
|
||||
add r0, r12
|
||||
str r0, [r1, 0xC]
|
||||
mov r5, r10
|
||||
lsls r0, r5, 16
|
||||
lsrs r4, r0, 16
|
||||
ldrb r0, [r6]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
cmp r4, r0
|
||||
blt _0806F176
|
||||
_0806F1EA:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_806F160
|
||||
|
||||
thumb_func_start sub_806F1FC
|
||||
sub_806F1FC: @ 806F1FC
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
adds r4, r0, 0
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
movs r3, 0
|
||||
cmp r0, 0
|
||||
beq _0806F296
|
||||
ldr r0, =gUnknown_08329F28
|
||||
mov r10, r0
|
||||
_0806F216:
|
||||
ldr r0, [r4, 0xC]
|
||||
lsls r2, r3, 1
|
||||
adds r1, r2, r3
|
||||
lsls r1, 3
|
||||
adds r1, r0
|
||||
mov r0, r10
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
ldm r0!, {r5-r7}
|
||||
stm r1!, {r5-r7}
|
||||
movs r5, 0
|
||||
ldr r0, [r4, 0xC]
|
||||
mov r8, r0
|
||||
mov r12, r2
|
||||
ldr r7, [r4, 0x10]
|
||||
adds r1, r3, 0x1
|
||||
mov r9, r1
|
||||
ldrb r6, [r4, 0x1]
|
||||
cmp r5, r6
|
||||
bcs _0806F26A
|
||||
adds r6, r7, 0
|
||||
ldr r1, [r4, 0x8]
|
||||
lsls r0, r3, 2
|
||||
adds r0, r1
|
||||
ldr r2, [r0]
|
||||
_0806F248:
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
adds r1, r3, 0
|
||||
muls r1, r0
|
||||
adds r1, r5
|
||||
lsls r1, 3
|
||||
adds r1, r6
|
||||
lsls r0, r5, 11
|
||||
adds r0, r2, r0
|
||||
str r0, [r1]
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 16
|
||||
lsrs r5, r0, 16
|
||||
ldrb r0, [r4, 0x1]
|
||||
cmp r5, r0
|
||||
bcc _0806F248
|
||||
_0806F26A:
|
||||
mov r5, r12
|
||||
adds r1, r5, r3
|
||||
lsls r1, 3
|
||||
add r1, r8
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
muls r0, r3
|
||||
lsls r0, 3
|
||||
adds r0, r7, r0
|
||||
str r0, [r1, 0xC]
|
||||
ldr r6, =gUnknown_082FF70C
|
||||
str r6, [r1, 0x8]
|
||||
strh r3, [r1, 0x2]
|
||||
mov r7, r9
|
||||
lsls r0, r7, 16
|
||||
lsrs r3, r0, 16
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
cmp r3, r0
|
||||
blt _0806F216
|
||||
_0806F296:
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.pool
|
||||
thumb_func_end sub_806F1FC
|
||||
|
||||
thumb_func_start sub_806F2AC
|
||||
sub_806F2AC: @ 806F2AC
|
||||
push {r4-r7,lr}
|
||||
mov r7, r8
|
||||
push {r7}
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r5, r1, 24
|
||||
movs r7, 0
|
||||
movs r0, 0x1
|
||||
ands r6, r0
|
||||
movs r0, 0x14
|
||||
bl AllocZeroed
|
||||
adds r4, r0, 0
|
||||
cmp r4, 0
|
||||
bne _0806F2D0
|
||||
movs r0, 0
|
||||
b _0806F46E
|
||||
_0806F2D0:
|
||||
cmp r5, 0
|
||||
beq _0806F2E6
|
||||
cmp r5, 0x2
|
||||
bne _0806F2E6
|
||||
movs r0, 0x77
|
||||
strb r0, [r4]
|
||||
movs r0, 0x4
|
||||
strb r0, [r4, 0x1]
|
||||
movs r0, 0x21
|
||||
strb r0, [r4, 0x3]
|
||||
b _0806F30E
|
||||
_0806F2E6:
|
||||
ldrb r1, [r4]
|
||||
movs r2, 0x10
|
||||
negs r2, r2
|
||||
adds r0, r2, 0
|
||||
ands r0, r1
|
||||
movs r1, 0x4
|
||||
orrs r0, r1
|
||||
movs r3, 0xF
|
||||
ands r0, r3
|
||||
movs r1, 0x40
|
||||
orrs r0, r1
|
||||
strb r0, [r4]
|
||||
movs r0, 0x4
|
||||
strb r0, [r4, 0x1]
|
||||
ldrb r0, [r4, 0x3]
|
||||
ands r2, r0
|
||||
movs r0, 0x1
|
||||
orrs r2, r0
|
||||
ands r2, r3
|
||||
strb r2, [r4, 0x3]
|
||||
_0806F30E:
|
||||
ldrb r1, [r4, 0x3]
|
||||
lsls r1, 28
|
||||
lsrs r1, 28
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 15
|
||||
muls r0, r1
|
||||
bl AllocZeroed
|
||||
str r0, [r4, 0x4]
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 23
|
||||
bl AllocZeroed
|
||||
adds r1, r0, 0
|
||||
str r1, [r4, 0x8]
|
||||
ldr r2, [r4, 0x4]
|
||||
cmp r2, 0
|
||||
beq _0806F33A
|
||||
cmp r1, 0
|
||||
bne _0806F344
|
||||
_0806F33A:
|
||||
movs r0, 0x1
|
||||
orrs r7, r0
|
||||
lsls r6, 2
|
||||
mov r8, r6
|
||||
b _0806F378
|
||||
_0806F344:
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
movs r3, 0
|
||||
lsls r6, 2
|
||||
mov r8, r6
|
||||
cmp r0, 0
|
||||
beq _0806F378
|
||||
adds r6, r1, 0
|
||||
adds r5, r2, 0
|
||||
_0806F356:
|
||||
lsls r2, r3, 2
|
||||
adds r2, r6
|
||||
ldrb r0, [r4, 0x3]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
lsls r1, r3, 13
|
||||
muls r0, r1
|
||||
adds r0, r5, r0
|
||||
str r0, [r2]
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
cmp r3, r0
|
||||
blt _0806F356
|
||||
_0806F378:
|
||||
ldrb r1, [r4]
|
||||
lsls r1, 28
|
||||
lsrs r1, 28
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
bl AllocZeroed
|
||||
str r0, [r4, 0xC]
|
||||
ldrb r1, [r4]
|
||||
lsls r1, 28
|
||||
lsrs r1, 28
|
||||
ldrb r0, [r4, 0x1]
|
||||
lsls r0, 3
|
||||
muls r0, r1
|
||||
bl AllocZeroed
|
||||
adds r1, r0, 0
|
||||
str r1, [r4, 0x10]
|
||||
ldr r0, [r4, 0xC]
|
||||
cmp r0, 0
|
||||
beq _0806F3A8
|
||||
cmp r1, 0
|
||||
bne _0806F3B2
|
||||
_0806F3A8:
|
||||
movs r0, 0x2
|
||||
orrs r7, r0
|
||||
lsls r0, r7, 24
|
||||
lsrs r7, r0, 24
|
||||
b _0806F400
|
||||
_0806F3B2:
|
||||
movs r3, 0
|
||||
ldrb r0, [r4, 0x1]
|
||||
ldrb r1, [r4]
|
||||
lsls r1, 28
|
||||
lsrs r1, 28
|
||||
muls r0, r1
|
||||
cmp r3, r0
|
||||
bge _0806F3E2
|
||||
movs r2, 0x80
|
||||
lsls r2, 4
|
||||
_0806F3C6:
|
||||
ldr r1, [r4, 0x10]
|
||||
lsls r0, r3, 3
|
||||
adds r0, r1
|
||||
strh r2, [r0, 0x4]
|
||||
adds r0, r3, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r3, r0, 24
|
||||
ldrb r1, [r4, 0x1]
|
||||
ldrb r0, [r4]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
muls r0, r1
|
||||
cmp r3, r0
|
||||
blt _0806F3C6
|
||||
_0806F3E2:
|
||||
ldrb r0, [r4, 0x3]
|
||||
lsrs r0, 4
|
||||
cmp r0, 0
|
||||
blt _0806F3FA
|
||||
cmp r0, 0x1
|
||||
ble _0806F3FA
|
||||
cmp r0, 0x2
|
||||
bne _0806F3FA
|
||||
adds r0, r4, 0
|
||||
bl sub_806F1FC
|
||||
b _0806F400
|
||||
_0806F3FA:
|
||||
adds r0, r4, 0
|
||||
bl sub_806F160
|
||||
_0806F400:
|
||||
movs r0, 0x2
|
||||
ands r0, r7
|
||||
cmp r0, 0
|
||||
beq _0806F424
|
||||
ldr r0, [r4, 0x10]
|
||||
cmp r0, 0
|
||||
beq _0806F416
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x10]
|
||||
_0806F416:
|
||||
ldr r0, [r4, 0xC]
|
||||
cmp r0, 0
|
||||
beq _0806F424
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0xC]
|
||||
_0806F424:
|
||||
movs r0, 0x1
|
||||
ands r0, r7
|
||||
cmp r0, 0
|
||||
beq _0806F448
|
||||
ldr r0, [r4, 0x8]
|
||||
cmp r0, 0
|
||||
beq _0806F43A
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x8]
|
||||
_0806F43A:
|
||||
ldr r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _0806F448
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x4]
|
||||
_0806F448:
|
||||
cmp r7, 0
|
||||
beq _0806F45E
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x14
|
||||
bl memset
|
||||
adds r0, r4, 0
|
||||
bl Free
|
||||
b _0806F468
|
||||
_0806F45E:
|
||||
movs r0, 0xA3
|
||||
strb r0, [r4, 0x2]
|
||||
ldr r0, =gUnknown_020249B4
|
||||
add r0, r8
|
||||
str r4, [r0]
|
||||
_0806F468:
|
||||
ldr r0, =gUnknown_020249B4
|
||||
add r0, r8
|
||||
ldr r0, [r0]
|
||||
_0806F46E:
|
||||
pop {r3}
|
||||
mov r8, r3
|
||||
pop {r4-r7}
|
||||
pop {r1}
|
||||
bx r1
|
||||
.pool
|
||||
thumb_func_end sub_806F2AC
|
||||
|
||||
thumb_func_start sub_806F47C
|
||||
sub_806F47C: @ 806F47C
|
||||
push {r4,lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
movs r1, 0x1
|
||||
ands r0, r1
|
||||
ldr r1, =gUnknown_020249B4
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldr r4, [r0]
|
||||
cmp r4, 0
|
||||
beq _0806F4F0
|
||||
ldrb r0, [r4, 0x2]
|
||||
cmp r0, 0xA3
|
||||
beq _0806F4A8
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x14
|
||||
bl memset
|
||||
b _0806F4F0
|
||||
.pool
|
||||
_0806F4A8:
|
||||
ldr r0, [r4, 0x10]
|
||||
cmp r0, 0
|
||||
beq _0806F4B6
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x10]
|
||||
_0806F4B6:
|
||||
ldr r0, [r4, 0xC]
|
||||
cmp r0, 0
|
||||
beq _0806F4C4
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0xC]
|
||||
_0806F4C4:
|
||||
ldr r0, [r4, 0x8]
|
||||
cmp r0, 0
|
||||
beq _0806F4D2
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x8]
|
||||
_0806F4D2:
|
||||
ldr r0, [r4, 0x4]
|
||||
cmp r0, 0
|
||||
beq _0806F4E0
|
||||
bl Free
|
||||
movs r0, 0
|
||||
str r0, [r4, 0x4]
|
||||
_0806F4E0:
|
||||
adds r0, r4, 0
|
||||
movs r1, 0
|
||||
movs r2, 0x14
|
||||
bl memset
|
||||
adds r0, r4, 0
|
||||
bl Free
|
||||
_0806F4F0:
|
||||
pop {r4}
|
||||
pop {r0}
|
||||
bx r0
|
||||
thumb_func_end sub_806F47C
|
||||
|
||||
thumb_func_start sub_806F4F8
|
||||
sub_806F4F8: @ 806F4F8
|
||||
push {lr}
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, 24
|
||||
lsrs r3, r1, 24
|
||||
ldr r2, =gUnknown_020249B4
|
||||
movs r1, 0x1
|
||||
ands r0, r1
|
||||
lsls r0, 2
|
||||
adds r0, r2
|
||||
ldr r1, [r0]
|
||||
ldrb r0, [r1, 0x2]
|
||||
cmp r0, 0xA3
|
||||
beq _0806F51C
|
||||
movs r0, 0
|
||||
b _0806F530
|
||||
.pool
|
||||
_0806F51C:
|
||||
ldrb r0, [r1]
|
||||
lsls r0, 28
|
||||
lsrs r0, 28
|
||||
cmp r3, r0
|
||||
blt _0806F528
|
||||
movs r3, 0
|
||||
_0806F528:
|
||||
ldr r0, [r1, 0x8]
|
||||
lsls r1, r3, 2
|
||||
adds r1, r0
|
||||
ldr r0, [r1]
|
||||
_0806F530:
|
||||
pop {r1}
|
||||
bx r1
|
||||
thumb_func_end sub_806F4F8
|
||||
|
||||
.align 2, 0 @ Don't pad with nop.
|
||||
File diff suppressed because it is too large
Load Diff
@ -1173,7 +1173,7 @@ sub_81C47B4: @ 81C47B4
|
||||
ands r0, r1
|
||||
strb r0, [r7, 0x5]
|
||||
ldrh r0, [r6, 0x2]
|
||||
bl IsPokeSpriteNotFlipped
|
||||
bl IsMonSpriteNotFlipped
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _081C4828
|
||||
@ -1221,7 +1221,7 @@ sub_81C4844: @ 81C4844
|
||||
cmp r0, 0x1
|
||||
beq _081C487E
|
||||
ldrh r0, [r4, 0x2E]
|
||||
bl IsPokeSpriteNotFlipped
|
||||
bl IsMonSpriteNotFlipped
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
strh r0, [r4, 0x30]
|
||||
|
||||
@ -7155,7 +7155,7 @@ _0807AD94:
|
||||
bl HandleLoadSpecialPokePic_DontHandleDeoxys
|
||||
_0807ADB2:
|
||||
mov r0, r8
|
||||
bl sub_806E794
|
||||
bl GetMonSpritePalStruct
|
||||
bl LoadCompressedObjectPalette
|
||||
ldr r0, =gUnknown_020322A0
|
||||
ldr r1, [r0]
|
||||
@ -7171,7 +7171,7 @@ _0807ADB2:
|
||||
.pool
|
||||
_0807ADE0:
|
||||
mov r0, r8
|
||||
bl sub_806E794
|
||||
bl GetMonSpritePalStruct
|
||||
ldrh r0, [r0, 0x4]
|
||||
adds r1, r4, 0
|
||||
bl sub_806A068
|
||||
@ -9589,7 +9589,7 @@ _0807C66C:
|
||||
ldr r0, [r5]
|
||||
adds r0, 0xF0
|
||||
ldrh r0, [r0]
|
||||
bl IsPokeSpriteNotFlipped
|
||||
bl IsMonSpriteNotFlipped
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807C6E4
|
||||
@ -11663,7 +11663,7 @@ _0807DA74:
|
||||
ldr r0, [r5]
|
||||
adds r0, 0xF0
|
||||
ldrh r0, [r0]
|
||||
bl IsPokeSpriteNotFlipped
|
||||
bl IsMonSpriteNotFlipped
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _0807DAEC
|
||||
|
||||
@ -4754,7 +4754,7 @@ sub_80C4FF0: @ 80C4FF0
|
||||
ldr r1, =0x00000583
|
||||
adds r0, r1
|
||||
ldrb r0, [r0]
|
||||
bl sub_806EFF0
|
||||
bl FacilityClassToPicIndex
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldr r4, =gUnknown_0856FB18
|
||||
@ -4795,7 +4795,7 @@ _080C5060:
|
||||
adds r0, r1
|
||||
adds r0, r2
|
||||
ldrb r0, [r0]
|
||||
bl sub_806EFF0
|
||||
bl FacilityClassToPicIndex
|
||||
lsls r0, 16
|
||||
lsrs r0, 16
|
||||
ldr r4, =gUnknown_0856FB18
|
||||
|
||||
@ -157,7 +157,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Peggy
|
||||
|
||||
@ 6
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_1
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_M
|
||||
.string "KEITH$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -183,7 +183,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Keith
|
||||
|
||||
@ 7
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_1
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_M
|
||||
.string "GRAYSON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_A
|
||||
@ -209,7 +209,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Grayson
|
||||
|
||||
@ 8
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_1
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_M
|
||||
.string "GLENN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -235,7 +235,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Glenn
|
||||
|
||||
@ 9
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "LILIANA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -261,7 +261,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Liliana
|
||||
|
||||
@ 10
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "ELISE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
@ -287,7 +287,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Elise
|
||||
|
||||
@ 11
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "ZOEY$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_PLEASE
|
||||
@ -2965,7 +2965,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Rayna
|
||||
|
||||
@ 114
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "EVAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_EVERY
|
||||
@ -2991,7 +2991,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Evan
|
||||
|
||||
@ 115
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "JORDAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_GOOD
|
||||
@ -3017,7 +3017,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Jordan
|
||||
|
||||
@ 116
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "JOEL$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_FUFUFU
|
||||
@ -3121,7 +3121,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Chloe
|
||||
|
||||
@ 120
|
||||
.4byte FACILITY_CLASS_PSYCHIC_1
|
||||
.4byte FACILITY_CLASS_PSYCHIC_M
|
||||
.string "NORTON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -3147,7 +3147,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Norton
|
||||
|
||||
@ 121
|
||||
.4byte FACILITY_CLASS_PSYCHIC_1
|
||||
.4byte FACILITY_CLASS_PSYCHIC_M
|
||||
.string "LUKAS$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
@ -3173,7 +3173,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Lukas
|
||||
|
||||
@ 122
|
||||
.4byte FACILITY_CLASS_PSYCHIC_1
|
||||
.4byte FACILITY_CLASS_PSYCHIC_M
|
||||
.string "ZACH$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -3199,7 +3199,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Zach
|
||||
|
||||
@ 123
|
||||
.4byte FACILITY_CLASS_PSYCHIC_2
|
||||
.4byte FACILITY_CLASS_PSYCHIC_F
|
||||
.string "KAITLYN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -3225,7 +3225,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Kaitlyn
|
||||
|
||||
@ 124
|
||||
.4byte FACILITY_CLASS_PSYCHIC_2
|
||||
.4byte FACILITY_CLASS_PSYCHIC_F
|
||||
.string "BREANNA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
@ -3251,7 +3251,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Breanna
|
||||
|
||||
@ 125
|
||||
.4byte FACILITY_CLASS_PSYCHIC_2
|
||||
.4byte FACILITY_CLASS_PSYCHIC_F
|
||||
.string "KENDRA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_IF
|
||||
@ -3641,7 +3641,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Sofia
|
||||
|
||||
@ 140
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "BRADEN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_CHOOSE_YOU
|
||||
@ -3667,7 +3667,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Braden
|
||||
|
||||
@ 141
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "KAYDEN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_THEY
|
||||
@ -3693,7 +3693,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Kayden
|
||||
|
||||
@ 142
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "COOPER$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_THIS
|
||||
@ -3719,7 +3719,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Cooper
|
||||
|
||||
@ 143
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "JULIA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_SPIRIT
|
||||
@ -3745,7 +3745,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Julia
|
||||
|
||||
@ 144
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "AMARA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_WROOOAAR_EXCL
|
||||
@ -3771,7 +3771,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Amara
|
||||
|
||||
@ 145
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "LYNN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_YOUR
|
||||
@ -3797,7 +3797,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Lynn
|
||||
|
||||
@ 146
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_1
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_M
|
||||
.string "JOVAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_YOUR
|
||||
@ -3823,7 +3823,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Jovan
|
||||
|
||||
@ 147
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_1
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_M
|
||||
.string "DOMINIC$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -3849,7 +3849,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Dominic
|
||||
|
||||
@ 148
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_1
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_M
|
||||
.string "NIKOLAS$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -3875,7 +3875,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Nikolas
|
||||
|
||||
@ 149
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_2
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_F
|
||||
.string "VALERIA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -3901,7 +3901,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Valeria
|
||||
|
||||
@ 150
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_2
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_F
|
||||
.string "DELANEY$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_SCHOOL
|
||||
@ -3927,7 +3927,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Delaney
|
||||
|
||||
@ 151
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_2
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_F
|
||||
.string "MEGHAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_SCHOOL
|
||||
@ -4265,7 +4265,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Kaila
|
||||
|
||||
@ 164
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_1
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_M
|
||||
.string "ISIAH$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -4291,7 +4291,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Isiah
|
||||
|
||||
@ 165
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_1
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_M
|
||||
.string "GARRETT$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -4317,7 +4317,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Garrett
|
||||
|
||||
@ 166
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "HAYLIE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -4343,7 +4343,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Haylie
|
||||
|
||||
@ 167
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "MEGAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -5721,7 +5721,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Tess
|
||||
|
||||
@ 220
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "LEON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -5747,7 +5747,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Leon
|
||||
|
||||
@ 221
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "ALONZO$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_VE
|
||||
@ -5773,7 +5773,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Alonzo
|
||||
|
||||
@ 222
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "VINCE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_THE
|
||||
@ -5799,7 +5799,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Vince
|
||||
|
||||
@ 223
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "BRYON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
@ -5825,7 +5825,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Bryon
|
||||
|
||||
@ 224
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "AVA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -5851,7 +5851,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Ava
|
||||
|
||||
@ 225
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "MIRIAM$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_OH
|
||||
@ -5877,7 +5877,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Miriam
|
||||
|
||||
@ 226
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "CARRIE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -5903,7 +5903,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Carrie
|
||||
|
||||
@ 227
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "GILLIAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -5929,7 +5929,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Gillian2
|
||||
|
||||
@ 228
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_1
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_M
|
||||
.string "TYLER$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_YO
|
||||
@ -5955,7 +5955,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Tyler
|
||||
|
||||
@ 229
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_1
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_M
|
||||
.string "CHAZ$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
@ -5981,7 +5981,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Chaz
|
||||
|
||||
@ 230
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_1
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_M
|
||||
.string "NELSON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_WELL_THEN
|
||||
@ -6007,7 +6007,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Nelson
|
||||
|
||||
@ 231
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_2
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_F
|
||||
.string "SHANIA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_ALL
|
||||
@ -6033,7 +6033,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Shania
|
||||
|
||||
@ 232
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_2
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_F
|
||||
.string "STELLA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -6059,7 +6059,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Stella
|
||||
|
||||
@ 233
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_2
|
||||
.4byte FACILITY_CLASS_PKMN_RANGER_F
|
||||
.string "DORINE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -6319,7 +6319,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Alana
|
||||
|
||||
@ 243
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "ALEXAS$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_GOOD
|
||||
@ -6345,7 +6345,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Alexas
|
||||
|
||||
@ 244
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "WESTON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -6371,7 +6371,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Weston
|
||||
|
||||
@ 245
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "JASPER$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -6475,7 +6475,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Emma
|
||||
|
||||
@ 249
|
||||
.4byte FACILITY_CLASS_PSYCHIC_1
|
||||
.4byte FACILITY_CLASS_PSYCHIC_M
|
||||
.string "ROLANDO$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -6501,7 +6501,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Rolando
|
||||
|
||||
@ 250
|
||||
.4byte FACILITY_CLASS_PSYCHIC_1
|
||||
.4byte FACILITY_CLASS_PSYCHIC_M
|
||||
.string "STANLY$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_THIS
|
||||
@ -6527,7 +6527,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Stanly
|
||||
|
||||
@ 251
|
||||
.4byte FACILITY_CLASS_PSYCHIC_1
|
||||
.4byte FACILITY_CLASS_PSYCHIC_M
|
||||
.string "DARIO$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
@ -6553,7 +6553,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Dario
|
||||
|
||||
@ 252
|
||||
.4byte FACILITY_CLASS_PSYCHIC_2
|
||||
.4byte FACILITY_CLASS_PSYCHIC_F
|
||||
.string "KARLEE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_SOMETHING
|
||||
@ -6579,7 +6579,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Karlee
|
||||
|
||||
@ 253
|
||||
.4byte FACILITY_CLASS_PSYCHIC_2
|
||||
.4byte FACILITY_CLASS_PSYCHIC_F
|
||||
.string "JAYLIN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_EVERY
|
||||
@ -6605,7 +6605,7 @@ gBattleFrontierTrainers:: @ 85D5ACC
|
||||
.4byte gBattleFrontierTrainerMons_Jaylin
|
||||
|
||||
@ 254
|
||||
.4byte FACILITY_CLASS_PSYCHIC_2
|
||||
.4byte FACILITY_CLASS_PSYCHIC_F
|
||||
.string "INGRID$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
|
||||
@ -339,7 +339,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
|
||||
.4byte gFallarborBattleTentTrainerMons_Conrad
|
||||
|
||||
@ 13
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "MAKENNA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_SHOW
|
||||
@ -365,7 +365,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
|
||||
.4byte gFallarborBattleTentTrainerMons_Makenna
|
||||
|
||||
@ 14
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "BRAYAN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_CAN
|
||||
@ -391,7 +391,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
|
||||
.4byte gFallarborBattleTentTrainerMons_Brayan
|
||||
|
||||
@ 15
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "MARIANA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_A
|
||||
@ -469,7 +469,7 @@ gFallarborBattleTentTrainers:: @ 85DF084
|
||||
.4byte gFallarborBattleTentTrainerMons_Gianna
|
||||
|
||||
@ 18
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "YAHIR$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_YOU
|
||||
|
||||
@ -339,7 +339,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
|
||||
.4byte gSlateportBattleTentTrainerMons_Kyler
|
||||
|
||||
@ 13
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "MAGGIE$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_POKEMON(VULPIX)
|
||||
@ -365,7 +365,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
|
||||
.4byte gSlateportBattleTentTrainerMons_Maggie
|
||||
|
||||
@ 14
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "STEPHON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I_AM
|
||||
@ -391,7 +391,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
|
||||
.4byte gSlateportBattleTentTrainerMons_Stephon
|
||||
|
||||
@ 15
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "REBECCA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_THAT
|
||||
@ -469,7 +469,7 @@ gSlateportBattleTentTrainers:: @ 85DDA14
|
||||
.4byte gSlateportBattleTentTrainerMons_Janae
|
||||
|
||||
@ 18
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "CAIDEN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_MY
|
||||
|
||||
@ -339,7 +339,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
|
||||
.4byte gVerdanturfBattleTentTrainerMons_Ernesto
|
||||
|
||||
@ 13
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_2
|
||||
.4byte FACILITY_CLASS_SCHOOL_KID_F
|
||||
.string "NALA$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -365,7 +365,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
|
||||
.4byte gVerdanturfBattleTentTrainerMons_Nala
|
||||
|
||||
@ 14
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_1
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_M
|
||||
.string "DARNELL$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -391,7 +391,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
|
||||
.4byte gVerdanturfBattleTentTrainerMons_Darnell
|
||||
|
||||
@ 15
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_2
|
||||
.4byte FACILITY_CLASS_COOLTRAINER_F
|
||||
.string "ASHLYN$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_I
|
||||
@ -469,7 +469,7 @@ gVerdanturfBattleTentTrainers:: @ 85DE610
|
||||
.4byte gVerdanturfBattleTentTrainerMons_Justine
|
||||
|
||||
@ 18
|
||||
.4byte FACILITY_CLASS_EXPERT_1
|
||||
.4byte FACILITY_CLASS_EXPERT_M
|
||||
.string "TYSON$", 8
|
||||
@ pre-battle speech
|
||||
.2byte EC_WORD_YOU_RE
|
||||
|
||||
@ -22,31 +22,31 @@ gUnknown_082FF2B8:: @ 82FF2B8
|
||||
|
||||
.align 2
|
||||
gUnknown_082FF3A8:: @ 82FF3A8
|
||||
.byte 0x00, 0x80, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0x88, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0x90, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0x98, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
obj_frame_tiles gHeap + 0x8000, 0x800
|
||||
obj_frame_tiles gHeap + 0x8800, 0x800
|
||||
obj_frame_tiles gHeap + 0x9000, 0x800
|
||||
obj_frame_tiles gHeap + 0x9800, 0x800
|
||||
|
||||
.align 2
|
||||
gUnknown_082FF3C8:: @ 82FF3C8
|
||||
.byte 0x00, 0xa0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xa8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xb0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xb8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
obj_frame_tiles gHeap + 0xA000, 0x800
|
||||
obj_frame_tiles gHeap + 0xA800, 0x800
|
||||
obj_frame_tiles gHeap + 0xB000, 0x800
|
||||
obj_frame_tiles gHeap + 0xB800, 0x800
|
||||
|
||||
.align 2
|
||||
gUnknown_082FF3E8:: @ 82FF3E8
|
||||
.byte 0x00, 0xc0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xc8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xd0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xd8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
obj_frame_tiles gHeap + 0xC000, 0x800
|
||||
obj_frame_tiles gHeap + 0xC800, 0x800
|
||||
obj_frame_tiles gHeap + 0xD000, 0x800
|
||||
obj_frame_tiles gHeap + 0xD800, 0x800
|
||||
|
||||
.align 2
|
||||
gUnknown_082FF408:: @ 82FF408
|
||||
.byte 0x00, 0xe0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xe8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xf0, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
.byte 0x00, 0xf8, 0x00, 0x02, 0x00, 0x08, 0x00, 0x00
|
||||
obj_frame_tiles gHeap + 0xE000, 0x800
|
||||
obj_frame_tiles gHeap + 0xE800, 0x800
|
||||
obj_frame_tiles gHeap + 0xF000, 0x800
|
||||
obj_frame_tiles gHeap + 0xF800, 0x800
|
||||
|
||||
.align 2
|
||||
gUnknown_082FF428:: @ 82FF428
|
||||
|
||||
151
data/data2e.s
151
data/data2e.s
@ -1,151 +0,0 @@
|
||||
#include "constants/abilities.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/trainers.h"
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
|
||||
.align 2
|
||||
|
||||
@ 83299EC
|
||||
.include "data/graphics/pokemon/front_anim_ids_table.inc"
|
||||
|
||||
@ 8329B87
|
||||
.include "data/graphics/pokemon/animation_delay_table.inc"
|
||||
|
||||
.align 1
|
||||
gUnknown_08329D22:: @ 8329D22
|
||||
@ Masks for getting PP Up count, also PP Max values
|
||||
.byte 0x03, 0x0c, 0x30, 0xc0
|
||||
|
||||
.align 1
|
||||
gUnknown_08329D26:: @ 8329D26
|
||||
@ Masks for setting PP Up count
|
||||
.byte 0xfc, 0xf3, 0xcf, 0x3f
|
||||
|
||||
.align 1
|
||||
gUnknown_08329D2A:: @ 8329D2A
|
||||
@ Values added to PP Up count
|
||||
.byte 0x01, 0x04, 0x10, 0x40
|
||||
|
||||
.align 1
|
||||
gStatStageRatios:: @ 8329D2E
|
||||
.byte 0x0a, 0x28
|
||||
.byte 0x0a, 0x23
|
||||
.byte 0x0a, 0x1e
|
||||
.byte 0x0a, 0x19
|
||||
.byte 0x0a, 0x14
|
||||
.byte 0x0a, 0x0f
|
||||
.byte 0x0a, 0x0a
|
||||
.byte 0x0f, 0x0a
|
||||
.byte 0x14, 0x0a
|
||||
.byte 0x19, 0x0a
|
||||
.byte 0x1e, 0x0a
|
||||
.byte 0x23, 0x0a
|
||||
.byte 0x28, 0x0a
|
||||
|
||||
.align 1
|
||||
gUnknown_08329D48:: @ 8329D48
|
||||
.2byte 0x0032, 0x005f, 0x005a, 0x00b4, 0x005f, 0x005a
|
||||
|
||||
.align 1
|
||||
gUnknown_08329D54:: @ 8329D54
|
||||
.2byte 0x0003, 0x000a, 0x001b, 0x002b, 0x001e, 0x0043, 0x0042, 0x0019
|
||||
.2byte 0x0012, 0x000c, 0x001c, 0x0047, 0x001f, 0x0036, 0x0002, 0x0014
|
||||
|
||||
.align 1
|
||||
gHoldEffectToType:: @ 8329D74
|
||||
.byte 0x1f, 0x06
|
||||
.byte 0x2a, 0x08
|
||||
.byte 0x2e, 0x04
|
||||
.byte 0x2f, 0x05
|
||||
.byte 0x30, 0x0c
|
||||
.byte 0x31, 0x11
|
||||
.byte 0x32, 0x01
|
||||
.byte 0x33, 0x0d
|
||||
.byte 0x34, 0x0b
|
||||
.byte 0x35, 0x02
|
||||
.byte 0x36, 0x03
|
||||
.byte 0x37, 0x0f
|
||||
.byte 0x38, 0x07
|
||||
.byte 0x39, 0x0e
|
||||
.byte 0x3a, 0x0a
|
||||
.byte 0x3b, 0x10
|
||||
.byte 0x3c, 0x00
|
||||
.byte 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_08329D98:: @ 8329D98
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF3A8, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACA8, NULL, gUnknown_082FF3C8, gUnknown_082FF694, oac_poke_opponent
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF3E8, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACA8, NULL, gUnknown_082FF408, gUnknown_082FF694, oac_poke_opponent
|
||||
|
||||
.align 2
|
||||
gUnknown_08329DF8:: @ 8329DF8
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF428, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF448, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF468, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF490, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4B8, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4D8, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF4F8, gUnknown_082FF618, sub_8039BB4
|
||||
spr_template 0xffff, 0x0000, gUnknown_0831ACB0, NULL, gUnknown_082FF518, gUnknown_082FF618, sub_8039BB4
|
||||
|
||||
gSecretBaseTrainerClasses:: @ 8329EB8
|
||||
.byte FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_CAMPER, FACILITY_CLASS_COOLTRAINER_1
|
||||
.byte FACILITY_CLASS_LASS, FACILITY_CLASS_SCHOOL_KID_2, FACILITY_CLASS_LADY, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_COOLTRAINER_2
|
||||
|
||||
gUnknown_08329EC2:: @ 8329EC2
|
||||
.byte 0x1a, 0x1b, 0x1c, 0x1d, 0x1f, 0x1e
|
||||
|
||||
gUnknown_08329EC8:: @ 8329EC8
|
||||
.byte 1, 1, 3, 2, 4, 6
|
||||
|
||||
gUnknown_08329ECE:: @ 8329ECE
|
||||
@ Happiness deltas
|
||||
.byte 0x05, 0x03, 0x02
|
||||
.byte 0x05, 0x03, 0x02
|
||||
.byte 0x01, 0x01, 0x00
|
||||
.byte 0x03, 0x02, 0x01
|
||||
.byte 0x01, 0x01, 0x00
|
||||
.byte 0x01, 0x01, 0x01
|
||||
.byte 0xff, 0xff, 0xff
|
||||
.byte 0xfb, 0xfb, 0xf6
|
||||
.byte 0xfb, 0xfb, 0xf6
|
||||
|
||||
.align 1
|
||||
gHMMoves:: @ 8329EEA
|
||||
.2byte MOVE_CUT
|
||||
.2byte MOVE_FLY
|
||||
.2byte MOVE_SURF
|
||||
.2byte MOVE_STRENGTH
|
||||
.2byte MOVE_FLASH
|
||||
.2byte MOVE_ROCK_SMASH
|
||||
.2byte MOVE_WATERFALL
|
||||
.2byte MOVE_DIVE
|
||||
.2byte 0xffff
|
||||
|
||||
.align 1
|
||||
gAlteringCaveWildMonHeldItems:: @ 8329EFC
|
||||
.2byte 0, ITEM_NONE
|
||||
.2byte SPECIES_MAREEP, ITEM_GANLON_BERRY
|
||||
.2byte SPECIES_PINECO, ITEM_APICOT_BERRY
|
||||
.2byte SPECIES_HOUNDOUR, ITEM_BIG_MUSHROOM
|
||||
.2byte SPECIES_TEDDIURSA, ITEM_PETAYA_BERRY
|
||||
.2byte SPECIES_AIPOM, ITEM_BERRY_JUICE
|
||||
.2byte SPECIES_SHUCKLE, ITEM_BERRY_JUICE
|
||||
.2byte SPECIES_STANTLER, ITEM_PETAYA_BERRY
|
||||
.2byte SPECIES_SMEARGLE, ITEM_SALAC_BERRY
|
||||
|
||||
.align 2
|
||||
gUnknown_08329F20:: @ 8329F20
|
||||
.byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00, 0x00
|
||||
|
||||
.align 2
|
||||
gUnknown_08329F28:: @ 8329F28
|
||||
spr_template 0xffff, 0xffff, gUnknown_08329F20, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
|
||||
|
||||
@ -1,412 +0,0 @@
|
||||
gMonAnimationDelayTable:: @ 8329B87
|
||||
.byte 0x00 @ SPECIES_BULBASAUR
|
||||
.byte 0x00 @ SPECIES_IVYSAUR
|
||||
.byte 0x00 @ SPECIES_VENUSAUR
|
||||
.byte 0x00 @ SPECIES_CHARMANDER
|
||||
.byte 0x00 @ SPECIES_CHARMELEON
|
||||
.byte 0x00 @ SPECIES_CHARIZARD
|
||||
.byte 0x00 @ SPECIES_SQUIRTLE
|
||||
.byte 0x00 @ SPECIES_WARTORTLE
|
||||
.byte 0x32 @ SPECIES_BLASTOISE
|
||||
.byte 0x00 @ SPECIES_CATERPIE
|
||||
.byte 0x00 @ SPECIES_METAPOD
|
||||
.byte 0x00 @ SPECIES_BUTTERFREE
|
||||
.byte 0x0a @ SPECIES_WEEDLE
|
||||
.byte 0x14 @ SPECIES_KAKUNA
|
||||
.byte 0x23 @ SPECIES_BEEDRILL
|
||||
.byte 0x00 @ SPECIES_PIDGEY
|
||||
.byte 0x19 @ SPECIES_PIDGEOTTO
|
||||
.byte 0x00 @ SPECIES_PIDGEOT
|
||||
.byte 0x00 @ SPECIES_RATTATA
|
||||
.byte 0x00 @ SPECIES_RATICATE
|
||||
.byte 0x00 @ SPECIES_SPEAROW
|
||||
.byte 0x02 @ SPECIES_FEAROW
|
||||
.byte 0x1e @ SPECIES_EKANS
|
||||
.byte 0x00 @ SPECIES_ARBOK
|
||||
.byte 0x00 @ SPECIES_PIKACHU
|
||||
.byte 0x00 @ SPECIES_RAICHU
|
||||
.byte 0x00 @ SPECIES_SANDSHREW
|
||||
.byte 0x00 @ SPECIES_SANDSLASH
|
||||
.byte 0x1c @ SPECIES_NIDORAN_F
|
||||
.byte 0x00 @ SPECIES_NIDORINA
|
||||
.byte 0x00 @ SPECIES_NIDOQUEEN
|
||||
.byte 0x00 @ SPECIES_NIDORAN_M
|
||||
.byte 0x00 @ SPECIES_NIDORINO
|
||||
.byte 0x19 @ SPECIES_NIDOKING
|
||||
.byte 0x00 @ SPECIES_CLEFAIRY
|
||||
.byte 0x00 @ SPECIES_CLEFABLE
|
||||
.byte 0x00 @ SPECIES_VULPIX
|
||||
.byte 0x00 @ SPECIES_NINETALES
|
||||
.byte 0x00 @ SPECIES_JIGGLYPUFF
|
||||
.byte 0x00 @ SPECIES_WIGGLYTUFF
|
||||
.byte 0x00 @ SPECIES_ZUBAT
|
||||
.byte 0x00 @ SPECIES_GOLBAT
|
||||
.byte 0x00 @ SPECIES_ODDISH
|
||||
.byte 0x00 @ SPECIES_GLOOM
|
||||
.byte 0x00 @ SPECIES_VILEPLUME
|
||||
.byte 0x0a @ SPECIES_PARAS
|
||||
.byte 0x2d @ SPECIES_PARASECT
|
||||
.byte 0x14 @ SPECIES_VENONAT
|
||||
.byte 0x00 @ SPECIES_VENOMOTH
|
||||
.byte 0x19 @ SPECIES_DIGLETT
|
||||
.byte 0x23 @ SPECIES_DUGTRIO
|
||||
.byte 0x28 @ SPECIES_MEOWTH
|
||||
.byte 0x14 @ SPECIES_PERSIAN
|
||||
.byte 0x00 @ SPECIES_PSYDUCK
|
||||
.byte 0x00 @ SPECIES_GOLDUCK
|
||||
.byte 0x14 @ SPECIES_MANKEY
|
||||
.byte 0x00 @ SPECIES_PRIMEAPE
|
||||
.byte 0x1e @ SPECIES_GROWLITHE
|
||||
.byte 0x28 @ SPECIES_ARCANINE
|
||||
.byte 0x00 @ SPECIES_POLIWAG
|
||||
.byte 0x05 @ SPECIES_POLIWHIRL
|
||||
.byte 0x00 @ SPECIES_POLIWRATH
|
||||
.byte 0x00 @ SPECIES_ABRA
|
||||
.byte 0x00 @ SPECIES_KADABRA
|
||||
.byte 0x00 @ SPECIES_ALAKAZAM
|
||||
.byte 0x00 @ SPECIES_MACHOP
|
||||
.byte 0x00 @ SPECIES_MACHOKE
|
||||
.byte 0x00 @ SPECIES_MACHAMP
|
||||
.byte 0x00 @ SPECIES_BELLSPROUT
|
||||
.byte 0x03 @ SPECIES_WEEPINBELL
|
||||
.byte 0x00 @ SPECIES_VICTREEBEL
|
||||
.byte 0x00 @ SPECIES_TENTACOOL
|
||||
.byte 0x00 @ SPECIES_TENTACRUEL
|
||||
.byte 0x00 @ SPECIES_GEODUDE
|
||||
.byte 0x00 @ SPECIES_GRAVELER
|
||||
.byte 0x00 @ SPECIES_GOLEM
|
||||
.byte 0x00 @ SPECIES_PONYTA
|
||||
.byte 0x00 @ SPECIES_RAPIDASH
|
||||
.byte 0x00 @ SPECIES_SLOWPOKE
|
||||
.byte 0x00 @ SPECIES_SLOWBRO
|
||||
.byte 0x00 @ SPECIES_MAGNEMITE
|
||||
.byte 0x00 @ SPECIES_MAGNETON
|
||||
.byte 0x00 @ SPECIES_FARFETCHD
|
||||
.byte 0x00 @ SPECIES_DODUO
|
||||
.byte 0x00 @ SPECIES_DODRIO
|
||||
.byte 0x00 @ SPECIES_SEEL
|
||||
.byte 0x00 @ SPECIES_DEWGONG
|
||||
.byte 0x00 @ SPECIES_GRIMER
|
||||
.byte 0x2d @ SPECIES_MUK
|
||||
.byte 0x14 @ SPECIES_SHELLDER
|
||||
.byte 0x00 @ SPECIES_CLOYSTER
|
||||
.byte 0x00 @ SPECIES_GASTLY
|
||||
.byte 0x17 @ SPECIES_HAUNTER
|
||||
.byte 0x00 @ SPECIES_GENGAR
|
||||
.byte 0x00 @ SPECIES_ONIX
|
||||
.byte 0x30 @ SPECIES_DROWZEE
|
||||
.byte 0x28 @ SPECIES_HYPNO
|
||||
.byte 0x00 @ SPECIES_KRABBY
|
||||
.byte 0x00 @ SPECIES_KINGLER
|
||||
.byte 0x00 @ SPECIES_VOLTORB
|
||||
.byte 0x00 @ SPECIES_ELECTRODE
|
||||
.byte 0x00 @ SPECIES_EXEGGCUTE
|
||||
.byte 0x00 @ SPECIES_EXEGGUTOR
|
||||
.byte 0x00 @ SPECIES_CUBONE
|
||||
.byte 0x00 @ SPECIES_MAROWAK
|
||||
.byte 0x00 @ SPECIES_HITMONLEE
|
||||
.byte 0x19 @ SPECIES_HITMONCHAN
|
||||
.byte 0x00 @ SPECIES_LICKITUNG
|
||||
.byte 0x00 @ SPECIES_KOFFING
|
||||
.byte 0x00 @ SPECIES_WEEZING
|
||||
.byte 0x00 @ SPECIES_RHYHORN
|
||||
.byte 0x00 @ SPECIES_RHYDON
|
||||
.byte 0x00 @ SPECIES_CHANSEY
|
||||
.byte 0x00 @ SPECIES_TANGELA
|
||||
.byte 0x00 @ SPECIES_KANGASKHAN
|
||||
.byte 0x00 @ SPECIES_HORSEA
|
||||
.byte 0x00 @ SPECIES_SEADRA
|
||||
.byte 0x00 @ SPECIES_GOLDEEN
|
||||
.byte 0x00 @ SPECIES_SEAKING
|
||||
.byte 0x00 @ SPECIES_STARYU
|
||||
.byte 0x00 @ SPECIES_STARMIE
|
||||
.byte 0x00 @ SPECIES_MR_MIME
|
||||
.byte 0x0a @ SPECIES_SCYTHER
|
||||
.byte 0x00 @ SPECIES_JYNX
|
||||
.byte 0x00 @ SPECIES_ELECTABUZZ
|
||||
.byte 0x00 @ SPECIES_MAGMAR
|
||||
.byte 0x00 @ SPECIES_PINSIR
|
||||
.byte 0x0a @ SPECIES_TAUROS
|
||||
.byte 0x00 @ SPECIES_MAGIKARP
|
||||
.byte 0x00 @ SPECIES_GYARADOS
|
||||
.byte 0x00 @ SPECIES_LAPRAS
|
||||
.byte 0x00 @ SPECIES_DITTO
|
||||
.byte 0x00 @ SPECIES_EEVEE
|
||||
.byte 0x00 @ SPECIES_VAPOREON
|
||||
.byte 0x00 @ SPECIES_JOLTEON
|
||||
.byte 0x00 @ SPECIES_FLAREON
|
||||
.byte 0x00 @ SPECIES_PORYGON
|
||||
.byte 0x00 @ SPECIES_OMANYTE
|
||||
.byte 0x00 @ SPECIES_OMASTAR
|
||||
.byte 0x00 @ SPECIES_KABUTO
|
||||
.byte 0x00 @ SPECIES_KABUTOPS
|
||||
.byte 0x00 @ SPECIES_AERODACTYL
|
||||
.byte 0x00 @ SPECIES_SNORLAX
|
||||
.byte 0x00 @ SPECIES_ARTICUNO
|
||||
.byte 0x00 @ SPECIES_ZAPDOS
|
||||
.byte 0x00 @ SPECIES_MOLTRES
|
||||
.byte 0x00 @ SPECIES_DRATINI
|
||||
.byte 0x00 @ SPECIES_DRAGONAIR
|
||||
.byte 0x00 @ SPECIES_DRAGONITE
|
||||
.byte 0x00 @ SPECIES_MEWTWO
|
||||
.byte 0x00 @ SPECIES_MEW
|
||||
.byte 0x00 @ SPECIES_CHIKORITA
|
||||
.byte 0x00 @ SPECIES_BAYLEEF
|
||||
.byte 0x00 @ SPECIES_MEGANIUM
|
||||
.byte 0x00 @ SPECIES_CYNDAQUIL
|
||||
.byte 0x00 @ SPECIES_QUILAVA
|
||||
.byte 0x14 @ SPECIES_TYPHLOSION
|
||||
.byte 0x00 @ SPECIES_TOTODILE
|
||||
.byte 0x00 @ SPECIES_CROCONAW
|
||||
.byte 0x05 @ SPECIES_FERALIGATR
|
||||
.byte 0x00 @ SPECIES_SENTRET
|
||||
.byte 0x00 @ SPECIES_FURRET
|
||||
.byte 0x00 @ SPECIES_HOOTHOOT
|
||||
.byte 0x00 @ SPECIES_NOCTOWL
|
||||
.byte 0x00 @ SPECIES_LEDYBA
|
||||
.byte 0x00 @ SPECIES_LEDIAN
|
||||
.byte 0x00 @ SPECIES_SPINARAK
|
||||
.byte 0x00 @ SPECIES_ARIADOS
|
||||
.byte 0x00 @ SPECIES_CROBAT
|
||||
.byte 0x00 @ SPECIES_CHINCHOU
|
||||
.byte 0x00 @ SPECIES_LANTURN
|
||||
.byte 0x00 @ SPECIES_PICHU
|
||||
.byte 0x00 @ SPECIES_CLEFFA
|
||||
.byte 0x00 @ SPECIES_IGGLYBUFF
|
||||
.byte 0x00 @ SPECIES_TOGEPI
|
||||
.byte 0x00 @ SPECIES_TOGETIC
|
||||
.byte 0x1e @ SPECIES_NATU
|
||||
.byte 0x00 @ SPECIES_XATU
|
||||
.byte 0x32 @ SPECIES_MAREEP
|
||||
.byte 0x00 @ SPECIES_FLAAFFY
|
||||
.byte 0x0a @ SPECIES_AMPHAROS
|
||||
.byte 0x00 @ SPECIES_BELLOSSOM
|
||||
.byte 0x00 @ SPECIES_MARILL
|
||||
.byte 0x00 @ SPECIES_AZUMARILL
|
||||
.byte 0x00 @ SPECIES_SUDOWOODO
|
||||
.byte 0x28 @ SPECIES_POLITOED
|
||||
.byte 0x00 @ SPECIES_HOPPIP
|
||||
.byte 0x00 @ SPECIES_SKIPLOOM
|
||||
.byte 0x00 @ SPECIES_JUMPLUFF
|
||||
.byte 0x00 @ SPECIES_AIPOM
|
||||
.byte 0x00 @ SPECIES_SUNKERN
|
||||
.byte 0x00 @ SPECIES_SUNFLORA
|
||||
.byte 0x00 @ SPECIES_YANMA
|
||||
.byte 0x00 @ SPECIES_WOOPER
|
||||
.byte 0x00 @ SPECIES_QUAGSIRE
|
||||
.byte 0x00 @ SPECIES_ESPEON
|
||||
.byte 0x00 @ SPECIES_UMBREON
|
||||
.byte 0x00 @ SPECIES_MURKROW
|
||||
.byte 0x00 @ SPECIES_SLOWKING
|
||||
.byte 0x00 @ SPECIES_MISDREAVUS
|
||||
.byte 0x00 @ SPECIES_UNOWN
|
||||
.byte 0x00 @ SPECIES_WOBBUFFET
|
||||
.byte 0x00 @ SPECIES_GIRAFARIG
|
||||
.byte 0x00 @ SPECIES_PINECO
|
||||
.byte 0x00 @ SPECIES_FORRETRESS
|
||||
.byte 0x0a @ SPECIES_DUNSPARCE
|
||||
.byte 0x00 @ SPECIES_GLIGAR
|
||||
.byte 0x2d @ SPECIES_STEELIX
|
||||
.byte 0x00 @ SPECIES_SNUBBULL
|
||||
.byte 0x00 @ SPECIES_GRANBULL
|
||||
.byte 0x27 @ SPECIES_QWILFISH
|
||||
.byte 0x13 @ SPECIES_SCIZOR
|
||||
.byte 0x00 @ SPECIES_SHUCKLE
|
||||
.byte 0x00 @ SPECIES_HERACROSS
|
||||
.byte 0x00 @ SPECIES_SNEASEL
|
||||
.byte 0x00 @ SPECIES_TEDDIURSA
|
||||
.byte 0x00 @ SPECIES_URSARING
|
||||
.byte 0x00 @ SPECIES_SLUGMA
|
||||
.byte 0x00 @ SPECIES_MAGCARGO
|
||||
.byte 0x00 @ SPECIES_SWINUB
|
||||
.byte 0x00 @ SPECIES_PILOSWINE
|
||||
.byte 0x00 @ SPECIES_CORSOLA
|
||||
.byte 0x00 @ SPECIES_REMORAID
|
||||
.byte 0x14 @ SPECIES_OCTILLERY
|
||||
.byte 0x00 @ SPECIES_DELIBIRD
|
||||
.byte 0x00 @ SPECIES_MANTINE
|
||||
.byte 0x00 @ SPECIES_SKARMORY
|
||||
.byte 0x00 @ SPECIES_HOUNDOUR
|
||||
.byte 0x00 @ SPECIES_HOUNDOOM
|
||||
.byte 0x00 @ SPECIES_KINGDRA
|
||||
.byte 0x00 @ SPECIES_PHANPY
|
||||
.byte 0x00 @ SPECIES_DONPHAN
|
||||
.byte 0x00 @ SPECIES_PORYGON2
|
||||
.byte 0x00 @ SPECIES_STANTLER
|
||||
.byte 0x00 @ SPECIES_SMEARGLE
|
||||
.byte 0x00 @ SPECIES_TYROGUE
|
||||
.byte 0x00 @ SPECIES_HITMONTOP
|
||||
.byte 0x28 @ SPECIES_SMOOCHUM
|
||||
.byte 0x00 @ SPECIES_ELEKID
|
||||
.byte 0x00 @ SPECIES_MAGBY
|
||||
.byte 0x00 @ SPECIES_MILTANK
|
||||
.byte 0x00 @ SPECIES_BLISSEY
|
||||
.byte 0x00 @ SPECIES_RAIKOU
|
||||
.byte 0x00 @ SPECIES_ENTEI
|
||||
.byte 0x00 @ SPECIES_SUICUNE
|
||||
.byte 0x00 @ SPECIES_LARVITAR
|
||||
.byte 0x00 @ SPECIES_PUPITAR
|
||||
.byte 0x0a @ SPECIES_TYRANITAR
|
||||
.byte 0x14 @ SPECIES_LUGIA
|
||||
.byte 0x00 @ SPECIES_HO_OH
|
||||
.byte 0x00 @ SPECIES_CELEBI
|
||||
.byte 0x00 @ 252
|
||||
.byte 0x00 @ 253
|
||||
.byte 0x00 @ 254
|
||||
.byte 0x00 @ 255
|
||||
.byte 0x00 @ 256
|
||||
.byte 0x00 @ 257
|
||||
.byte 0x00 @ 258
|
||||
.byte 0x00 @ 259
|
||||
.byte 0x00 @ 260
|
||||
.byte 0x00 @ 261
|
||||
.byte 0x00 @ 262
|
||||
.byte 0x00 @ 263
|
||||
.byte 0x00 @ 264
|
||||
.byte 0x00 @ 265
|
||||
.byte 0x00 @ 266
|
||||
.byte 0x00 @ 267
|
||||
.byte 0x00 @ 268
|
||||
.byte 0x00 @ 269
|
||||
.byte 0x00 @ 270
|
||||
.byte 0x00 @ 271
|
||||
.byte 0x00 @ 272
|
||||
.byte 0x00 @ 273
|
||||
.byte 0x00 @ 274
|
||||
.byte 0x00 @ 275
|
||||
.byte 0x00 @ 276
|
||||
.byte 0x00 @ SPECIES_TREECKO
|
||||
.byte 0x00 @ SPECIES_GROVYLE
|
||||
.byte 0x00 @ SPECIES_SCEPTILE
|
||||
.byte 0x00 @ SPECIES_TORCHIC
|
||||
.byte 0x00 @ SPECIES_COMBUSKEN
|
||||
.byte 0x00 @ SPECIES_BLAZIKEN
|
||||
.byte 0x00 @ SPECIES_MUDKIP
|
||||
.byte 0x00 @ SPECIES_MARSHTOMP
|
||||
.byte 0x00 @ SPECIES_SWAMPERT
|
||||
.byte 0x00 @ SPECIES_POOCHYENA
|
||||
.byte 0x00 @ SPECIES_MIGHTYENA
|
||||
.byte 0x00 @ SPECIES_ZIGZAGOON
|
||||
.byte 0x00 @ SPECIES_LINOONE
|
||||
.byte 0x00 @ SPECIES_WURMPLE
|
||||
.byte 0x00 @ SPECIES_SILCOON
|
||||
.byte 0x00 @ SPECIES_BEAUTIFLY
|
||||
.byte 0x00 @ SPECIES_CASCOON
|
||||
.byte 0x00 @ SPECIES_DUSTOX
|
||||
.byte 0x00 @ SPECIES_LOTAD
|
||||
.byte 0x00 @ SPECIES_LOMBRE
|
||||
.byte 0x00 @ SPECIES_LUDICOLO
|
||||
.byte 0x00 @ SPECIES_SEEDOT
|
||||
.byte 0x00 @ SPECIES_NUZLEAF
|
||||
.byte 0x00 @ SPECIES_SHIFTRY
|
||||
.byte 0x00 @ SPECIES_NINCADA
|
||||
.byte 0x00 @ SPECIES_NINJASK
|
||||
.byte 0x00 @ SPECIES_SHEDINJA
|
||||
.byte 0x00 @ SPECIES_TAILLOW
|
||||
.byte 0x00 @ SPECIES_SWELLOW
|
||||
.byte 0x00 @ SPECIES_SHROOMISH
|
||||
.byte 0x00 @ SPECIES_BRELOOM
|
||||
.byte 0x00 @ SPECIES_SPINDA
|
||||
.byte 0x00 @ SPECIES_WINGULL
|
||||
.byte 0x00 @ SPECIES_PELIPPER
|
||||
.byte 0x00 @ SPECIES_SURSKIT
|
||||
.byte 0x00 @ SPECIES_MASQUERAIN
|
||||
.byte 0x00 @ SPECIES_WAILMER
|
||||
.byte 0x0a @ SPECIES_WAILORD
|
||||
.byte 0x00 @ SPECIES_SKITTY
|
||||
.byte 0x00 @ SPECIES_DELCATTY
|
||||
.byte 0x1e @ SPECIES_KECLEON
|
||||
.byte 0x00 @ SPECIES_BALTOY
|
||||
.byte 0x00 @ SPECIES_CLAYDOL
|
||||
.byte 0x00 @ SPECIES_NOSEPASS
|
||||
.byte 0x00 @ SPECIES_TORKOAL
|
||||
.byte 0x00 @ SPECIES_SABLEYE
|
||||
.byte 0x00 @ SPECIES_BARBOACH
|
||||
.byte 0x00 @ SPECIES_WHISCASH
|
||||
.byte 0x00 @ SPECIES_LUVDISC
|
||||
.byte 0x00 @ SPECIES_CORPHISH
|
||||
.byte 0x00 @ SPECIES_CRAWDAUNT
|
||||
.byte 0x00 @ SPECIES_FEEBAS
|
||||
.byte 0x2d @ SPECIES_MILOTIC
|
||||
.byte 0x00 @ SPECIES_CARVANHA
|
||||
.byte 0x00 @ SPECIES_SHARPEDO
|
||||
.byte 0x00 @ SPECIES_TRAPINCH
|
||||
.byte 0x00 @ SPECIES_VIBRAVA
|
||||
.byte 0x00 @ SPECIES_FLYGON
|
||||
.byte 0x00 @ SPECIES_MAKUHITA
|
||||
.byte 0x00 @ SPECIES_HARIYAMA
|
||||
.byte 0x00 @ SPECIES_ELECTRIKE
|
||||
.byte 0x00 @ SPECIES_MANECTRIC
|
||||
.byte 0x00 @ SPECIES_NUMEL
|
||||
.byte 0x00 @ SPECIES_CAMERUPT
|
||||
.byte 0x0f @ SPECIES_SPHEAL
|
||||
.byte 0x00 @ SPECIES_SEALEO
|
||||
.byte 0x00 @ SPECIES_WALREIN
|
||||
.byte 0x00 @ SPECIES_CACNEA
|
||||
.byte 0x00 @ SPECIES_CACTURNE
|
||||
.byte 0x14 @ SPECIES_SNORUNT
|
||||
.byte 0x00 @ SPECIES_GLALIE
|
||||
.byte 0x00 @ SPECIES_LUNATONE
|
||||
.byte 0x00 @ SPECIES_SOLROCK
|
||||
.byte 0x00 @ SPECIES_AZURILL
|
||||
.byte 0x00 @ SPECIES_SPOINK
|
||||
.byte 0x0f @ SPECIES_GRUMPIG
|
||||
.byte 0x00 @ SPECIES_PLUSLE
|
||||
.byte 0x00 @ SPECIES_MINUN
|
||||
.byte 0x00 @ SPECIES_MAWILE
|
||||
.byte 0x00 @ SPECIES_MEDITITE
|
||||
.byte 0x00 @ SPECIES_MEDICHAM
|
||||
.byte 0x00 @ SPECIES_SWABLU
|
||||
.byte 0x00 @ SPECIES_ALTARIA
|
||||
.byte 0x0f @ SPECIES_WYNAUT
|
||||
.byte 0x00 @ SPECIES_DUSKULL
|
||||
.byte 0x1e @ SPECIES_DUSCLOPS
|
||||
.byte 0x00 @ SPECIES_ROSELIA
|
||||
.byte 0x00 @ SPECIES_SLAKOTH
|
||||
.byte 0x00 @ SPECIES_VIGOROTH
|
||||
.byte 0x00 @ SPECIES_SLAKING
|
||||
.byte 0x00 @ SPECIES_GULPIN
|
||||
.byte 0x00 @ SPECIES_SWALOT
|
||||
.byte 0x00 @ SPECIES_TROPIUS
|
||||
.byte 0x00 @ SPECIES_WHISMUR
|
||||
.byte 0x00 @ SPECIES_LOUDRED
|
||||
.byte 0x00 @ SPECIES_EXPLOUD
|
||||
.byte 0x00 @ SPECIES_CLAMPERL
|
||||
.byte 0x00 @ SPECIES_HUNTAIL
|
||||
.byte 0x00 @ SPECIES_GOREBYSS
|
||||
.byte 0x2d @ SPECIES_ABSOL
|
||||
.byte 0x00 @ SPECIES_SHUPPET
|
||||
.byte 0x00 @ SPECIES_BANETTE
|
||||
.byte 0x00 @ SPECIES_SEVIPER
|
||||
.byte 0x00 @ SPECIES_ZANGOOSE
|
||||
.byte 0x00 @ SPECIES_RELICANTH
|
||||
.byte 0x00 @ SPECIES_ARON
|
||||
.byte 0x00 @ SPECIES_LAIRON
|
||||
.byte 0x00 @ SPECIES_AGGRON
|
||||
.byte 0x00 @ SPECIES_CASTFORM
|
||||
.byte 0x00 @ SPECIES_VOLBEAT
|
||||
.byte 0x00 @ SPECIES_ILLUMISE
|
||||
.byte 0x00 @ SPECIES_LILEEP
|
||||
.byte 0x00 @ SPECIES_CRADILY
|
||||
.byte 0x00 @ SPECIES_ANORITH
|
||||
.byte 0x00 @ SPECIES_ARMALDO
|
||||
.byte 0x00 @ SPECIES_RALTS
|
||||
.byte 0x00 @ SPECIES_KIRLIA
|
||||
.byte 0x00 @ SPECIES_GARDEVOIR
|
||||
.byte 0x00 @ SPECIES_BAGON
|
||||
.byte 0x00 @ SPECIES_SHELGON
|
||||
.byte 0x46 @ SPECIES_SALAMENCE
|
||||
.byte 0x00 @ SPECIES_BELDUM
|
||||
.byte 0x00 @ SPECIES_METANG
|
||||
.byte 0x00 @ SPECIES_METAGROSS
|
||||
.byte 0x00 @ SPECIES_REGIROCK
|
||||
.byte 0x00 @ SPECIES_REGICE
|
||||
.byte 0x00 @ SPECIES_REGISTEEL
|
||||
.byte 0x3c @ SPECIES_KYOGRE
|
||||
.byte 0x00 @ SPECIES_GROUDON
|
||||
.byte 0x3c @ SPECIES_RAYQUAZA
|
||||
.byte 0x00 @ SPECIES_LATIAS
|
||||
.byte 0x00 @ SPECIES_LATIOS
|
||||
.byte 0x00 @ SPECIES_JIRACHI
|
||||
.byte 0x00 @ SPECIES_DEOXYS
|
||||
.byte 0x00 @ SPECIES_CHIMECHO
|
||||
@ -1,412 +0,0 @@
|
||||
gMonFrontAnimIdsTable:: @ 83299EC
|
||||
.byte 0x06 @ SPECIES_BULBASAUR
|
||||
.byte 0x17 @ SPECIES_IVYSAUR
|
||||
.byte 0x2f @ SPECIES_VENUSAUR
|
||||
.byte 0x52 @ SPECIES_CHARMANDER
|
||||
.byte 0x25 @ SPECIES_CHARMELEON
|
||||
.byte 0x10 @ SPECIES_CHARIZARD
|
||||
.byte 0x0b @ SPECIES_SQUIRTLE
|
||||
.byte 0x13 @ SPECIES_WARTORTLE
|
||||
.byte 0x19 @ SPECIES_BLASTOISE
|
||||
.byte 0x0b @ SPECIES_CATERPIE
|
||||
.byte 0x0b @ SPECIES_METAPOD
|
||||
.byte 0x1d @ SPECIES_BUTTERFREE
|
||||
.byte 0x46 @ SPECIES_WEEDLE
|
||||
.byte 0x20 @ SPECIES_KAKUNA
|
||||
.byte 0x02 @ SPECIES_BEEDRILL
|
||||
.byte 0x47 @ SPECIES_PIDGEY
|
||||
.byte 0x17 @ SPECIES_PIDGEOTTO
|
||||
.byte 0x29 @ SPECIES_PIDGEOT
|
||||
.byte 0x43 @ SPECIES_RATTATA
|
||||
.byte 0x2b @ SPECIES_RATICATE
|
||||
.byte 0x18 @ SPECIES_SPEAROW
|
||||
.byte 0x2b @ SPECIES_FEAROW
|
||||
.byte 0x16 @ SPECIES_EKANS
|
||||
.byte 0x17 @ SPECIES_ARBOK
|
||||
.byte 0x2c @ SPECIES_PIKACHU
|
||||
.byte 0x17 @ SPECIES_RAICHU
|
||||
.byte 0x2d @ SPECIES_SANDSHREW
|
||||
.byte 0x17 @ SPECIES_SANDSLASH
|
||||
.byte 0x00 @ SPECIES_NIDORAN_F
|
||||
.byte 0x17 @ SPECIES_NIDORINA
|
||||
.byte 0x0f @ SPECIES_NIDOQUEEN
|
||||
.byte 0x09 @ SPECIES_NIDORAN_M
|
||||
.byte 0x13 @ SPECIES_NIDORINO
|
||||
.byte 0x0f @ SPECIES_NIDOKING
|
||||
.byte 0x00 @ SPECIES_CLEFAIRY
|
||||
.byte 0x4a @ SPECIES_CLEFABLE
|
||||
.byte 0x17 @ SPECIES_VULPIX
|
||||
.byte 0x10 @ SPECIES_NINETALES
|
||||
.byte 0x48 @ SPECIES_JIGGLYPUFF
|
||||
.byte 0x31 @ SPECIES_WIGGLYTUFF
|
||||
.byte 0x00 @ SPECIES_ZUBAT
|
||||
.byte 0x1d @ SPECIES_GOLBAT
|
||||
.byte 0x00 @ SPECIES_ODDISH
|
||||
.byte 0x45 @ SPECIES_GLOOM
|
||||
.byte 0x49 @ SPECIES_VILEPLUME
|
||||
.byte 0x46 @ SPECIES_PARAS
|
||||
.byte 0x0f @ SPECIES_PARASECT
|
||||
.byte 0x06 @ SPECIES_VENONAT
|
||||
.byte 0x4b @ SPECIES_VENOMOTH
|
||||
.byte 0x10 @ SPECIES_DIGLETT
|
||||
.byte 0x4c @ SPECIES_DUGTRIO
|
||||
.byte 0x52 @ SPECIES_MEOWTH
|
||||
.byte 0x17 @ SPECIES_PERSIAN
|
||||
.byte 0x06 @ SPECIES_PSYDUCK
|
||||
.byte 0x4c @ SPECIES_GOLDUCK
|
||||
.byte 0x32 @ SPECIES_MANKEY
|
||||
.byte 0x48 @ SPECIES_PRIMEAPE
|
||||
.byte 0x25 @ SPECIES_GROWLITHE
|
||||
.byte 0x02 @ SPECIES_ARCANINE
|
||||
.byte 0x00 @ SPECIES_POLIWAG
|
||||
.byte 0x32 @ SPECIES_POLIWHIRL
|
||||
.byte 0x19 @ SPECIES_POLIWRATH
|
||||
.byte 0x31 @ SPECIES_ABRA
|
||||
.byte 0x09 @ SPECIES_KADABRA
|
||||
.byte 0x17 @ SPECIES_ALAKAZAM
|
||||
.byte 0x00 @ SPECIES_MACHOP
|
||||
.byte 0x10 @ SPECIES_MACHOKE
|
||||
.byte 0x31 @ SPECIES_MACHAMP
|
||||
.byte 0x17 @ SPECIES_BELLSPROUT
|
||||
.byte 0x0d @ SPECIES_WEEPINBELL
|
||||
.byte 0x32 @ SPECIES_VICTREEBEL
|
||||
.byte 0x00 @ SPECIES_TENTACOOL
|
||||
.byte 0x00 @ SPECIES_TENTACRUEL
|
||||
.byte 0x48 @ SPECIES_GEODUDE
|
||||
.byte 0x48 @ SPECIES_GRAVELER
|
||||
.byte 0x2f @ SPECIES_GOLEM
|
||||
.byte 0x20 @ SPECIES_PONYTA
|
||||
.byte 0x11 @ SPECIES_RAPIDASH
|
||||
.byte 0x45 @ SPECIES_SLOWPOKE
|
||||
.byte 0x0b @ SPECIES_SLOWBRO
|
||||
.byte 0x54 @ SPECIES_MAGNEMITE
|
||||
.byte 0x2c @ SPECIES_MAGNETON
|
||||
.byte 0x48 @ SPECIES_FARFETCHD
|
||||
.byte 0x4c @ SPECIES_DODUO
|
||||
.byte 0x41 @ SPECIES_DODRIO
|
||||
.byte 0x0b @ SPECIES_SEEL
|
||||
.byte 0x45 @ SPECIES_DEWGONG
|
||||
.byte 0x46 @ SPECIES_GRIMER
|
||||
.byte 0x30 @ SPECIES_MUK
|
||||
.byte 0x12 @ SPECIES_SHELLDER
|
||||
.byte 0x1d @ SPECIES_CLOYSTER
|
||||
.byte 0x15 @ SPECIES_GASTLY
|
||||
.byte 0x35 @ SPECIES_HAUNTER
|
||||
.byte 0x3a @ SPECIES_GENGAR
|
||||
.byte 0x43 @ SPECIES_ONIX
|
||||
.byte 0x4f @ SPECIES_DROWZEE
|
||||
.byte 0x09 @ SPECIES_HYPNO
|
||||
.byte 0x03 @ SPECIES_KRABBY
|
||||
.byte 0x4b @ SPECIES_KINGLER
|
||||
.byte 0x00 @ SPECIES_VOLTORB
|
||||
.byte 0x00 @ SPECIES_ELECTRODE
|
||||
.byte 0x46 @ SPECIES_EXEGGCUTE
|
||||
.byte 0x32 @ SPECIES_EXEGGUTOR
|
||||
.byte 0x48 @ SPECIES_CUBONE
|
||||
.byte 0x05 @ SPECIES_MAROWAK
|
||||
.byte 0x16 @ SPECIES_HITMONLEE
|
||||
.byte 0x09 @ SPECIES_HITMONCHAN
|
||||
.byte 0x45 @ SPECIES_LICKITUNG
|
||||
.byte 0x13 @ SPECIES_KOFFING
|
||||
.byte 0x04 @ SPECIES_WEEZING
|
||||
.byte 0x10 @ SPECIES_RHYHORN
|
||||
.byte 0x13 @ SPECIES_RHYDON
|
||||
.byte 0x45 @ SPECIES_CHANSEY
|
||||
.byte 0x48 @ SPECIES_TANGELA
|
||||
.byte 0x17 @ SPECIES_KANGASKHAN
|
||||
.byte 0x12 @ SPECIES_HORSEA
|
||||
.byte 0x04 @ SPECIES_SEADRA
|
||||
.byte 0x0d @ SPECIES_GOLDEEN
|
||||
.byte 0x1c @ SPECIES_SEAKING
|
||||
.byte 0x4e @ SPECIES_STARYU
|
||||
.byte 0x12 @ SPECIES_STARMIE
|
||||
.byte 0x46 @ SPECIES_MR_MIME
|
||||
.byte 0x02 @ SPECIES_SCYTHER
|
||||
.byte 0x17 @ SPECIES_JYNX
|
||||
.byte 0x2c @ SPECIES_ELECTABUZZ
|
||||
.byte 0x0f @ SPECIES_MAGMAR
|
||||
.byte 0x09 @ SPECIES_PINSIR
|
||||
.byte 0x19 @ SPECIES_TAUROS
|
||||
.byte 0x05 @ SPECIES_MAGIKARP
|
||||
.byte 0x48 @ SPECIES_GYARADOS
|
||||
.byte 0x17 @ SPECIES_LAPRAS
|
||||
.byte 0x01 @ SPECIES_DITTO
|
||||
.byte 0x17 @ SPECIES_EEVEE
|
||||
.byte 0x17 @ SPECIES_VAPOREON
|
||||
.byte 0x00 @ SPECIES_JOLTEON
|
||||
.byte 0x17 @ SPECIES_FLAREON
|
||||
.byte 0x52 @ SPECIES_PORYGON
|
||||
.byte 0x51 @ SPECIES_OMANYTE
|
||||
.byte 0x09 @ SPECIES_OMASTAR
|
||||
.byte 0x1d @ SPECIES_KABUTO
|
||||
.byte 0x0f @ SPECIES_KABUTOPS
|
||||
.byte 0x47 @ SPECIES_AERODACTYL
|
||||
.byte 0x0b @ SPECIES_SNORLAX
|
||||
.byte 0x09 @ SPECIES_ARTICUNO
|
||||
.byte 0x2c @ SPECIES_ZAPDOS
|
||||
.byte 0x45 @ SPECIES_MOLTRES
|
||||
.byte 0x00 @ SPECIES_DRATINI
|
||||
.byte 0x10 @ SPECIES_DRAGONAIR
|
||||
.byte 0x47 @ SPECIES_DRAGONITE
|
||||
.byte 0x09 @ SPECIES_MEWTWO
|
||||
.byte 0x0d @ SPECIES_MEW
|
||||
.byte 0x00 @ SPECIES_CHIKORITA
|
||||
.byte 0x00 @ SPECIES_BAYLEEF
|
||||
.byte 0x17 @ SPECIES_MEGANIUM
|
||||
.byte 0x52 @ SPECIES_CYNDAQUIL
|
||||
.byte 0x17 @ SPECIES_QUILAVA
|
||||
.byte 0x10 @ SPECIES_TYPHLOSION
|
||||
.byte 0x31 @ SPECIES_TOTODILE
|
||||
.byte 0x0f @ SPECIES_CROCONAW
|
||||
.byte 0x0f @ SPECIES_FERALIGATR
|
||||
.byte 0x00 @ SPECIES_SENTRET
|
||||
.byte 0x32 @ SPECIES_FURRET
|
||||
.byte 0x47 @ SPECIES_HOOTHOOT
|
||||
.byte 0x17 @ SPECIES_NOCTOWL
|
||||
.byte 0x52 @ SPECIES_LEDYBA
|
||||
.byte 0x47 @ SPECIES_LEDIAN
|
||||
.byte 0x4f @ SPECIES_SPINARAK
|
||||
.byte 0x0f @ SPECIES_ARIADOS
|
||||
.byte 0x00 @ SPECIES_CROBAT
|
||||
.byte 0x45 @ SPECIES_CHINCHOU
|
||||
.byte 0x51 @ SPECIES_LANTURN
|
||||
.byte 0x1e @ SPECIES_PICHU
|
||||
.byte 0x52 @ SPECIES_CLEFFA
|
||||
.byte 0x0c @ SPECIES_IGGLYBUFF
|
||||
.byte 0x0b @ SPECIES_TOGEPI
|
||||
.byte 0x00 @ SPECIES_TOGETIC
|
||||
.byte 0x31 @ SPECIES_NATU
|
||||
.byte 0x09 @ SPECIES_XATU
|
||||
.byte 0x00 @ SPECIES_MAREEP
|
||||
.byte 0x1e @ SPECIES_FLAAFFY
|
||||
.byte 0x2c @ SPECIES_AMPHAROS
|
||||
.byte 0x0b @ SPECIES_BELLOSSOM
|
||||
.byte 0x00 @ SPECIES_MARILL
|
||||
.byte 0x4a @ SPECIES_AZUMARILL
|
||||
.byte 0x46 @ SPECIES_SUDOWOODO
|
||||
.byte 0x32 @ SPECIES_POLITOED
|
||||
.byte 0x1c @ SPECIES_HOPPIP
|
||||
.byte 0x18 @ SPECIES_SKIPLOOM
|
||||
.byte 0x51 @ SPECIES_JUMPLUFF
|
||||
.byte 0x32 @ SPECIES_AIPOM
|
||||
.byte 0x52 @ SPECIES_SUNKERN
|
||||
.byte 0x00 @ SPECIES_SUNFLORA
|
||||
.byte 0x2b @ SPECIES_YANMA
|
||||
.byte 0x00 @ SPECIES_WOOPER
|
||||
.byte 0x16 @ SPECIES_QUAGSIRE
|
||||
.byte 0x09 @ SPECIES_ESPEON
|
||||
.byte 0x10 @ SPECIES_UMBREON
|
||||
.byte 0x00 @ SPECIES_MURKROW
|
||||
.byte 0x13 @ SPECIES_SLOWKING
|
||||
.byte 0x1c @ SPECIES_MISDREAVUS
|
||||
.byte 0x0a @ SPECIES_UNOWN
|
||||
.byte 0x30 @ SPECIES_WOBBUFFET
|
||||
.byte 0x1e @ SPECIES_GIRAFARIG
|
||||
.byte 0x0b @ SPECIES_PINECO
|
||||
.byte 0x10 @ SPECIES_FORRETRESS
|
||||
.byte 0x00 @ SPECIES_DUNSPARCE
|
||||
.byte 0x13 @ SPECIES_GLIGAR
|
||||
.byte 0x0f @ SPECIES_STEELIX
|
||||
.byte 0x17 @ SPECIES_SNUBBULL
|
||||
.byte 0x10 @ SPECIES_GRANBULL
|
||||
.byte 0x3a @ SPECIES_QWILFISH
|
||||
.byte 0x02 @ SPECIES_SCIZOR
|
||||
.byte 0x0b @ SPECIES_SHUCKLE
|
||||
.byte 0x41 @ SPECIES_HERACROSS
|
||||
.byte 0x16 @ SPECIES_SNEASEL
|
||||
.byte 0x17 @ SPECIES_TEDDIURSA
|
||||
.byte 0x10 @ SPECIES_URSARING
|
||||
.byte 0x17 @ SPECIES_SLUGMA
|
||||
.byte 0x17 @ SPECIES_MAGCARGO
|
||||
.byte 0x00 @ SPECIES_SWINUB
|
||||
.byte 0x0f @ SPECIES_PILOSWINE
|
||||
.byte 0x03 @ SPECIES_CORSOLA
|
||||
.byte 0x52 @ SPECIES_REMORAID
|
||||
.byte 0x17 @ SPECIES_OCTILLERY
|
||||
.byte 0x52 @ SPECIES_DELIBIRD
|
||||
.byte 0x0d @ SPECIES_MANTINE
|
||||
.byte 0x17 @ SPECIES_SKARMORY
|
||||
.byte 0x17 @ SPECIES_HOUNDOUR
|
||||
.byte 0x10 @ SPECIES_HOUNDOOM
|
||||
.byte 0x42 @ SPECIES_KINGDRA
|
||||
.byte 0x32 @ SPECIES_PHANPY
|
||||
.byte 0x19 @ SPECIES_DONPHAN
|
||||
.byte 0x00 @ SPECIES_PORYGON2
|
||||
.byte 0x00 @ SPECIES_STANTLER
|
||||
.byte 0x31 @ SPECIES_SMEARGLE
|
||||
.byte 0x16 @ SPECIES_TYROGUE
|
||||
.byte 0x02 @ SPECIES_HITMONTOP
|
||||
.byte 0x09 @ SPECIES_SMOOCHUM
|
||||
.byte 0x2c @ SPECIES_ELEKID
|
||||
.byte 0x00 @ SPECIES_MAGBY
|
||||
.byte 0x45 @ SPECIES_MILTANK
|
||||
.byte 0x00 @ SPECIES_BLISSEY
|
||||
.byte 0x2c @ SPECIES_RAIKOU
|
||||
.byte 0x09 @ SPECIES_ENTEI
|
||||
.byte 0x10 @ SPECIES_SUICUNE
|
||||
.byte 0x52 @ SPECIES_LARVITAR
|
||||
.byte 0x10 @ SPECIES_PUPITAR
|
||||
.byte 0x0f @ SPECIES_TYRANITAR
|
||||
.byte 0x3a @ SPECIES_LUGIA
|
||||
.byte 0x09 @ SPECIES_HO_OH
|
||||
.byte 0x18 @ SPECIES_CELEBI
|
||||
.byte 0x00 @ 252
|
||||
.byte 0x00 @ 253
|
||||
.byte 0x00 @ 254
|
||||
.byte 0x00 @ 255
|
||||
.byte 0x00 @ 256
|
||||
.byte 0x00 @ 257
|
||||
.byte 0x00 @ 258
|
||||
.byte 0x00 @ 259
|
||||
.byte 0x00 @ 260
|
||||
.byte 0x00 @ 261
|
||||
.byte 0x00 @ 262
|
||||
.byte 0x00 @ 263
|
||||
.byte 0x00 @ 264
|
||||
.byte 0x00 @ 265
|
||||
.byte 0x00 @ 266
|
||||
.byte 0x00 @ 267
|
||||
.byte 0x00 @ 268
|
||||
.byte 0x00 @ 269
|
||||
.byte 0x00 @ 270
|
||||
.byte 0x00 @ 271
|
||||
.byte 0x00 @ 272
|
||||
.byte 0x00 @ 273
|
||||
.byte 0x00 @ 274
|
||||
.byte 0x00 @ 275
|
||||
.byte 0x00 @ 276
|
||||
.byte 0x00 @ SPECIES_TREECKO
|
||||
.byte 0x17 @ SPECIES_GROVYLE
|
||||
.byte 0x10 @ SPECIES_SCEPTILE
|
||||
.byte 0x16 @ SPECIES_TORCHIC
|
||||
.byte 0x06 @ SPECIES_COMBUSKEN
|
||||
.byte 0x0f @ SPECIES_BLAZIKEN
|
||||
.byte 0x01 @ SPECIES_MUDKIP
|
||||
.byte 0x04 @ SPECIES_MARSHTOMP
|
||||
.byte 0x1e @ SPECIES_SWAMPERT
|
||||
.byte 0x10 @ SPECIES_POOCHYENA
|
||||
.byte 0x10 @ SPECIES_MIGHTYENA
|
||||
.byte 0x03 @ SPECIES_ZIGZAGOON
|
||||
.byte 0x09 @ SPECIES_LINOONE
|
||||
.byte 0x00 @ SPECIES_WURMPLE
|
||||
.byte 0x00 @ SPECIES_SILCOON
|
||||
.byte 0x04 @ SPECIES_BEAUTIFLY
|
||||
.byte 0x04 @ SPECIES_CASCOON
|
||||
.byte 0x06 @ SPECIES_DUSTOX
|
||||
.byte 0x00 @ SPECIES_LOTAD
|
||||
.byte 0x00 @ SPECIES_LOMBRE
|
||||
.byte 0x49 @ SPECIES_LUDICOLO
|
||||
.byte 0x05 @ SPECIES_SEEDOT
|
||||
.byte 0x00 @ SPECIES_NUZLEAF
|
||||
.byte 0x02 @ SPECIES_SHIFTRY
|
||||
.byte 0x00 @ SPECIES_NINCADA
|
||||
.byte 0x46 @ SPECIES_NINJASK
|
||||
.byte 0x1c @ SPECIES_SHEDINJA
|
||||
.byte 0x1e @ SPECIES_TAILLOW
|
||||
.byte 0x01 @ SPECIES_SWELLOW
|
||||
.byte 0x00 @ SPECIES_SHROOMISH
|
||||
.byte 0x00 @ SPECIES_BRELOOM
|
||||
.byte 0x31 @ SPECIES_SPINDA
|
||||
.byte 0x1b @ SPECIES_WINGULL
|
||||
.byte 0x1c @ SPECIES_PELIPPER
|
||||
.byte 0x00 @ SPECIES_SURSKIT
|
||||
.byte 0x00 @ SPECIES_MASQUERAIN
|
||||
.byte 0x01 @ SPECIES_WAILMER
|
||||
.byte 0x1c @ SPECIES_WAILORD
|
||||
.byte 0x00 @ SPECIES_SKITTY
|
||||
.byte 0x17 @ SPECIES_DELCATTY
|
||||
.byte 0x35 @ SPECIES_KECLEON
|
||||
.byte 0x1d @ SPECIES_BALTOY
|
||||
.byte 0x51 @ SPECIES_CLAYDOL
|
||||
.byte 0x49 @ SPECIES_NOSEPASS
|
||||
.byte 0x17 @ SPECIES_TORKOAL
|
||||
.byte 0x15 @ SPECIES_SABLEYE
|
||||
.byte 0x49 @ SPECIES_BARBOACH
|
||||
.byte 0x49 @ SPECIES_WHISCASH
|
||||
.byte 0x1d @ SPECIES_LUVDISC
|
||||
.byte 0x10 @ SPECIES_CORPHISH
|
||||
.byte 0x09 @ SPECIES_CRAWDAUNT
|
||||
.byte 0x49 @ SPECIES_FEEBAS
|
||||
.byte 0x22 @ SPECIES_MILOTIC
|
||||
.byte 0x49 @ SPECIES_CARVANHA
|
||||
.byte 0x56 @ SPECIES_SHARPEDO
|
||||
.byte 0x10 @ SPECIES_TRAPINCH
|
||||
.byte 0x0f @ SPECIES_VIBRAVA
|
||||
.byte 0x4b @ SPECIES_FLYGON
|
||||
.byte 0x0b @ SPECIES_MAKUHITA
|
||||
.byte 0x34 @ SPECIES_HARIYAMA
|
||||
.byte 0x00 @ SPECIES_ELECTRIKE
|
||||
.byte 0x00 @ SPECIES_MANECTRIC
|
||||
.byte 0x04 @ SPECIES_NUMEL
|
||||
.byte 0x10 @ SPECIES_CAMERUPT
|
||||
.byte 0x53 @ SPECIES_SPHEAL
|
||||
.byte 0x17 @ SPECIES_SEALEO
|
||||
.byte 0x0f @ SPECIES_WALREIN
|
||||
.byte 0x49 @ SPECIES_CACNEA
|
||||
.byte 0x04 @ SPECIES_CACTURNE
|
||||
.byte 0x45 @ SPECIES_SNORUNT
|
||||
.byte 0x0a @ SPECIES_GLALIE
|
||||
.byte 0x0e @ SPECIES_LUNATONE
|
||||
.byte 0x08 @ SPECIES_SOLROCK
|
||||
.byte 0x00 @ SPECIES_AZURILL
|
||||
.byte 0x56 @ SPECIES_SPOINK
|
||||
.byte 0x32 @ SPECIES_GRUMPIG
|
||||
.byte 0x00 @ SPECIES_PLUSLE
|
||||
.byte 0x01 @ SPECIES_MINUN
|
||||
.byte 0x00 @ SPECIES_MAWILE
|
||||
.byte 0x05 @ SPECIES_MEDITITE
|
||||
.byte 0x45 @ SPECIES_MEDICHAM
|
||||
.byte 0x04 @ SPECIES_SWABLU
|
||||
.byte 0x16 @ SPECIES_ALTARIA
|
||||
.byte 0x32 @ SPECIES_WYNAUT
|
||||
.byte 0x0a @ SPECIES_DUSKULL
|
||||
.byte 0x02 @ SPECIES_DUSCLOPS
|
||||
.byte 0x45 @ SPECIES_ROSELIA
|
||||
.byte 0x45 @ SPECIES_SLAKOTH
|
||||
.byte 0x31 @ SPECIES_VIGOROTH
|
||||
.byte 0x45 @ SPECIES_SLAKING
|
||||
.byte 0x00 @ SPECIES_GULPIN
|
||||
.byte 0x45 @ SPECIES_SWALOT
|
||||
.byte 0x10 @ SPECIES_TROPIUS
|
||||
.byte 0x03 @ SPECIES_WHISMUR
|
||||
.byte 0x49 @ SPECIES_LOUDRED
|
||||
.byte 0x19 @ SPECIES_EXPLOUD
|
||||
.byte 0x12 @ SPECIES_CLAMPERL
|
||||
.byte 0x09 @ SPECIES_HUNTAIL
|
||||
.byte 0x1c @ SPECIES_GOREBYSS
|
||||
.byte 0x11 @ SPECIES_ABSOL
|
||||
.byte 0x1c @ SPECIES_SHUPPET
|
||||
.byte 0x0d @ SPECIES_BANETTE
|
||||
.byte 0x17 @ SPECIES_SEVIPER
|
||||
.byte 0x09 @ SPECIES_ZANGOOSE
|
||||
.byte 0x1a @ SPECIES_RELICANTH
|
||||
.byte 0x45 @ SPECIES_ARON
|
||||
.byte 0x00 @ SPECIES_LAIRON
|
||||
.byte 0x19 @ SPECIES_AGGRON
|
||||
.byte 0x1d @ SPECIES_CASTFORM
|
||||
.byte 0x00 @ SPECIES_VOLBEAT
|
||||
.byte 0x05 @ SPECIES_ILLUMISE
|
||||
.byte 0x17 @ SPECIES_LILEEP
|
||||
.byte 0x19 @ SPECIES_CRADILY
|
||||
.byte 0x12 @ SPECIES_ANORITH
|
||||
.byte 0x10 @ SPECIES_ARMALDO
|
||||
.byte 0x45 @ SPECIES_RALTS
|
||||
.byte 0x00 @ SPECIES_KIRLIA
|
||||
.byte 0x00 @ SPECIES_GARDEVOIR
|
||||
.byte 0x19 @ SPECIES_BAGON
|
||||
.byte 0x04 @ SPECIES_SHELGON
|
||||
.byte 0x0f @ SPECIES_SALAMENCE
|
||||
.byte 0x0f @ SPECIES_BELDUM
|
||||
.byte 0x04 @ SPECIES_METANG
|
||||
.byte 0x10 @ SPECIES_METAGROSS
|
||||
.byte 0x01 @ SPECIES_REGIROCK
|
||||
.byte 0x44 @ SPECIES_REGICE
|
||||
.byte 0x09 @ SPECIES_REGISTEEL
|
||||
.byte 0x2d @ SPECIES_KYOGRE
|
||||
.byte 0x10 @ SPECIES_GROUDON
|
||||
.byte 0x0f @ SPECIES_RAYQUAZA
|
||||
.byte 0x2d @ SPECIES_LATIAS
|
||||
.byte 0x10 @ SPECIES_LATIOS
|
||||
.byte 0x0d @ SPECIES_JIRACHI
|
||||
.byte 0x1b @ SPECIES_DEOXYS
|
||||
.byte 0x1d @ SPECIES_CHIMECHO
|
||||
@ -86,7 +86,7 @@ BirthIsland_Exterior_EventScript_267FC1:: @ 8267FC1
|
||||
setvar VAR_0x8004, 410
|
||||
setvar VAR_0x8005, 30
|
||||
setvar VAR_0x8006, 0
|
||||
special DoScriptedWildBattle
|
||||
special CreateObedientEnemyMon
|
||||
setflag FLAG_SYS_CTRL_OBJ_DELETE
|
||||
special BattleSetup_StartLegendaryBattle
|
||||
waitstate
|
||||
|
||||
@ -143,7 +143,7 @@ FarawayIsland_Interior_EventScript_267DF2:: @ 8267DF2
|
||||
setvar VAR_0x8004, 151
|
||||
setvar VAR_0x8005, 30
|
||||
setvar VAR_0x8006, 0
|
||||
special DoScriptedWildBattle
|
||||
special CreateObedientEnemyMon
|
||||
setflag FLAG_SYS_CTRL_OBJ_DELETE
|
||||
special BattleSetup_StartLegendaryBattle
|
||||
waitstate
|
||||
|
||||
@ -59,7 +59,7 @@ NavelRock_Bottom_EventScript_2692A2:: @ 82692A2
|
||||
setvar VAR_0x8004, 249
|
||||
setvar VAR_0x8005, 70
|
||||
setvar VAR_0x8006, 0
|
||||
special DoScriptedWildBattle
|
||||
special CreateObedientEnemyMon
|
||||
setflag FLAG_SYS_CTRL_OBJ_DELETE
|
||||
special BattleSetup_StartLegendaryBattle
|
||||
waitstate
|
||||
|
||||
@ -63,7 +63,7 @@ NavelRock_Top_EventScript_26916F:: @ 826916F
|
||||
setvar VAR_0x8004, 250
|
||||
setvar VAR_0x8005, 70
|
||||
setvar VAR_0x8006, 0
|
||||
special DoScriptedWildBattle
|
||||
special CreateObedientEnemyMon
|
||||
setflag FLAG_SYS_CTRL_OBJ_DELETE
|
||||
special BattleSetup_StartLegendaryBattle
|
||||
waitstate
|
||||
|
||||
@ -121,14 +121,14 @@ SouthernIsland_Interior_EventScript_242BA4:: @ 8242BA4
|
||||
setvar VAR_0x8004, 408
|
||||
setvar VAR_0x8005, 50
|
||||
setvar VAR_0x8006, 191
|
||||
special DoScriptedWildBattle
|
||||
special CreateObedientEnemyMon
|
||||
return
|
||||
|
||||
SouthernIsland_Interior_EventScript_242BB7:: @ 8242BB7
|
||||
setvar VAR_0x8004, 407
|
||||
setvar VAR_0x8005, 50
|
||||
setvar VAR_0x8006, 191
|
||||
special DoScriptedWildBattle
|
||||
special CreateObedientEnemyMon
|
||||
return
|
||||
|
||||
SouthernIsland_Interior_Movement_242BCA: @ 8242BCA
|
||||
|
||||
@ -490,7 +490,7 @@ gSpecials:: @ 81DBA64
|
||||
def_special sub_813AF48
|
||||
def_special sub_813AFC8
|
||||
def_special sub_813B1D0
|
||||
def_special DoScriptedWildBattle
|
||||
def_special CreateObedientEnemyMon
|
||||
def_special sub_81BEB54
|
||||
def_special sub_81BEB68
|
||||
def_special sub_81BEB7C
|
||||
|
||||
@ -229,6 +229,14 @@ extern const u8* const gPokeblockWasTooXStringTable[];
|
||||
extern const u8* const gRefereeStringsTable[];
|
||||
extern const u8* const gStatNamesTable2[];
|
||||
|
||||
extern const u8 gText_BadEgg[];
|
||||
extern const u8 gText_StatRose[];
|
||||
extern const u8 gText_PkmnsStatChanged2[];
|
||||
extern const u8 gText_PkmnGettingPumped[];
|
||||
extern const u8 gText_PkmnShroudedInMist[];
|
||||
extern const u8 gText_BattleWallyName[];
|
||||
extern const u8 gText_PkmnsXPreventsSwitching[];
|
||||
|
||||
extern const u16 gMissStringIds[];
|
||||
extern const u16 gTrappingMoves[];
|
||||
|
||||
|
||||
@ -1,6 +0,0 @@
|
||||
#ifndef GUARD_CALCULATE_BASE_DAMAGE_H
|
||||
#define GUARD_CALCULATE_BASE_DAMAGE_H
|
||||
|
||||
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
|
||||
|
||||
#endif // GUARD_CALCULATE_BASE_DAMAGE_H
|
||||
@ -464,4 +464,7 @@
|
||||
#define NUM_TECHNICAL_MACHINES 50
|
||||
#define NUM_HIDDEN_MACHINES 8
|
||||
|
||||
// Check if the item is one that can be used on a Pokemon.
|
||||
#define IS_POKEMON_ITEM(item) ((item) >= ITEM_POTION && (item) <= ITEM_0B2)
|
||||
|
||||
#endif // GUARD_CONSTANTS_ITEMS_H
|
||||
|
||||
@ -956,13 +956,13 @@
|
||||
#define FACILITY_CLASS_HIKER 0x0
|
||||
#define FACILITY_CLASS_TEAM_AQUA_1 0x1
|
||||
#define FACILITY_CLASS_PKMN_BREEDER_1 0x2
|
||||
#define FACILITY_CLASS_COOLTRAINER_1 0x3
|
||||
#define FACILITY_CLASS_COOLTRAINER_M 0x3
|
||||
#define FACILITY_CLASS_BIRD_KEEPER 0x4
|
||||
#define FACILITY_CLASS_COLLECTOR 0x5
|
||||
#define FACILITY_CLASS_TEAM_AQUA_2 0x6
|
||||
#define FACILITY_CLASS_SWIMMER_M 0x7
|
||||
#define FACILITY_CLASS_TEAM_MAGMA_1 0x8
|
||||
#define FACILITY_CLASS_EXPERT_1 0x9
|
||||
#define FACILITY_CLASS_EXPERT_M 0x9
|
||||
#define FACILITY_CLASS_BLACK_BELT 0xa
|
||||
#define FACILITY_CLASS_AQUA_LEADER 0xb
|
||||
#define FACILITY_CLASS_HEX_MANIAC 0xc
|
||||
@ -971,7 +971,7 @@
|
||||
#define FACILITY_CLASS_INTERVIEWER 0xf
|
||||
#define FACILITY_CLASS_TUBER_1 0x10
|
||||
#define FACILITY_CLASS_TUBER_2 0x11
|
||||
#define FACILITY_CLASS_COOLTRAINER_2 0x12
|
||||
#define FACILITY_CLASS_COOLTRAINER_F 0x12
|
||||
#define FACILITY_CLASS_LADY 0x13
|
||||
#define FACILITY_CLASS_BEAUTY 0x14
|
||||
#define FACILITY_CLASS_RICH_BOY 0x15
|
||||
@ -983,16 +983,16 @@
|
||||
#define FACILITY_CLASS_CAMPER 0x1b
|
||||
#define FACILITY_CLASS_PICNICKER 0x1c
|
||||
#define FACILITY_CLASS_BUG_MANIAC 0x1d
|
||||
#define FACILITY_CLASS_PSYCHIC_1 0x1e
|
||||
#define FACILITY_CLASS_PSYCHIC_2 0x1f
|
||||
#define FACILITY_CLASS_PSYCHIC_M 0x1e
|
||||
#define FACILITY_CLASS_PSYCHIC_F 0x1f
|
||||
#define FACILITY_CLASS_GENTLEMAN 0x20
|
||||
#define FACILITY_CLASS_ELITE_FOUR_1 0x21
|
||||
#define FACILITY_CLASS_ELITE_FOUR_2 0x22
|
||||
#define FACILITY_CLASS_LEADER_1 0x23
|
||||
#define FACILITY_CLASS_LEADER_2 0x24
|
||||
#define FACILITY_CLASS_LEADER_3 0x25
|
||||
#define FACILITY_CLASS_SCHOOL_KID_1 0x26
|
||||
#define FACILITY_CLASS_SCHOOL_KID_2 0x27
|
||||
#define FACILITY_CLASS_SCHOOL_KID_M 0x26
|
||||
#define FACILITY_CLASS_SCHOOL_KID_F 0x27
|
||||
#define FACILITY_CLASS_SR_AND_JR 0x28
|
||||
#define FACILITY_CLASS_POKEFAN_1 0x29
|
||||
#define FACILITY_CLASS_POKEFAN_2 0x2a
|
||||
@ -1013,28 +1013,28 @@
|
||||
#define FACILITY_CLASS_TWINS 0x39
|
||||
#define FACILITY_CLASS_SAILOR 0x3a
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_1 0x3b
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_2 0x3c
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_MAY 0x3c
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_3 0x3d
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_4 0x3e
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_5 0x3f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_BRENDAN 0x3f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_6 0x40
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_7 0x41
|
||||
#define FACILITY_CLASS_PKMN_BREEDER_2 0x42
|
||||
#define FACILITY_CLASS_BUG_CATCHER 0x43
|
||||
#define FACILITY_CLASS_PKMN_RANGER_1 0x44
|
||||
#define FACILITY_CLASS_PKMN_RANGER_2 0x45
|
||||
#define FACILITY_CLASS_PKMN_RANGER_M 0x44
|
||||
#define FACILITY_CLASS_PKMN_RANGER_F 0x45
|
||||
#define FACILITY_CLASS_MAGMA_LEADER 0x46
|
||||
#define FACILITY_CLASS_LASS 0x47
|
||||
#define FACILITY_CLASS_YOUNG_COUPLE 0x48
|
||||
#define FACILITY_CLASS_OLD_COUPLE 0x49
|
||||
#define FACILITY_CLASS_SIS_AND_BRO 0x4a
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_8 0x4b
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_STEVEN 0x4b
|
||||
#define FACILITY_CLASS_SALON_MAIDEN 0x4c
|
||||
#define FACILITY_CLASS_DOME_ACE 0x4d
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_9 0x4e
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_10 0x4f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_11 0x50
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_12 0x51
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_RED 0x4e
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_LEAF 0x4f
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN 0x50
|
||||
#define FACILITY_CLASS_PKMN_TRAINER_RS_MAY 0x51
|
||||
|
||||
#define TRAINER_CLASS_PKMN_TRAINER_1 0x0
|
||||
#define TRAINER_CLASS_PKMN_TRAINER_2 0x1
|
||||
|
||||
@ -6,13 +6,13 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_HIKER, // FACILITY_CLASS_HIKER
|
||||
TRAINER_PIC_AQUA_GRUNT_M, // FACILITY_CLASS_TEAM_AQUA_1
|
||||
TRAINER_PIC_POKEMON_BREEDER_F, // FACILITY_CLASS_PKMN_BREEDER_1
|
||||
TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_1
|
||||
TRAINER_PIC_COOL_TRAINER_M, // FACILITY_CLASS_COOLTRAINER_M
|
||||
TRAINER_PIC_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
|
||||
TRAINER_PIC_COLLECTOR, // FACILITY_CLASS_COLLECTOR
|
||||
TRAINER_PIC_AQUA_GRUNT_F, // FACILITY_CLASS_TEAM_AQUA_2
|
||||
TRAINER_PIC_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
|
||||
TRAINER_PIC_MAGMA_GRUNT_M, // FACILITY_CLASS_TEAM_MAGMA_1
|
||||
TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_1
|
||||
TRAINER_PIC_EXPERT_M, // FACILITY_CLASS_EXPERT_M
|
||||
TRAINER_PIC_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
|
||||
TRAINER_PIC_AQUA_LEADER_ARCHIE, // FACILITY_CLASS_AQUA_LEADER
|
||||
TRAINER_PIC_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
|
||||
@ -21,7 +21,7 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
|
||||
TRAINER_PIC_TUBER_F, // FACILITY_CLASS_TUBER_1
|
||||
TRAINER_PIC_TUBER_M, // FACILITY_CLASS_TUBER_2
|
||||
TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_2
|
||||
TRAINER_PIC_COOL_TRAINER_F, // FACILITY_CLASS_COOLTRAINER_F
|
||||
TRAINER_PIC_LADY, // FACILITY_CLASS_LADY
|
||||
TRAINER_PIC_BEAUTY, // FACILITY_CLASS_BEAUTY
|
||||
TRAINER_PIC_RICH_BOY, // FACILITY_CLASS_RICH_BOY
|
||||
@ -33,16 +33,16 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_CAMPER, // FACILITY_CLASS_CAMPER
|
||||
TRAINER_PIC_PICNICKER, // FACILITY_CLASS_PICNICKER
|
||||
TRAINER_PIC_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
|
||||
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_1
|
||||
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_2
|
||||
TRAINER_PIC_PSYCHIC_M, // FACILITY_CLASS_PSYCHIC_M
|
||||
TRAINER_PIC_PSYCHIC_F, // FACILITY_CLASS_PSYCHIC_F
|
||||
TRAINER_PIC_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
|
||||
TRAINER_PIC_ELITE_FOUR_SIDNEY, // FACILITY_CLASS_ELITE_FOUR_1
|
||||
TRAINER_PIC_ELITE_FOUR_PHOEBE, // FACILITY_CLASS_ELITE_FOUR_2
|
||||
TRAINER_PIC_LEADER_ROXANNE, // FACILITY_CLASS_LEADER_1
|
||||
TRAINER_PIC_LEADER_BRAWLY, // FACILITY_CLASS_LEADER_2
|
||||
TRAINER_PIC_LEADER_TATE_AND_LIZA, // FACILITY_CLASS_LEADER_3
|
||||
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_1
|
||||
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_2
|
||||
TRAINER_PIC_SCHOOL_KID_M, // FACILITY_CLASS_SCHOOL_KID_M
|
||||
TRAINER_PIC_SCHOOL_KID_F, // FACILITY_CLASS_SCHOOL_KID_F
|
||||
TRAINER_PIC_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
|
||||
TRAINER_PIC_WINSTRATE_M, // FACILITY_CLASS_POKEFAN_1
|
||||
TRAINER_PIC_WINSTRATE_F, // FACILITY_CLASS_POKEFAN_2
|
||||
@ -63,28 +63,28 @@ const u8 gFacilityClassToPicIndex[] =
|
||||
TRAINER_PIC_TWINS, // FACILITY_CLASS_TWINS
|
||||
TRAINER_PIC_SAILOR, // FACILITY_CLASS_SAILOR
|
||||
TRAINER_PIC_WALLY, // FACILITY_CLASS_PKMN_TRAINER_1
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_2
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_MAY
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_3
|
||||
TRAINER_PIC_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_4
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_5
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_6
|
||||
TRAINER_PIC_MAY, // FACILITY_CLASS_PKMN_TRAINER_7
|
||||
TRAINER_PIC_POKEMON_BREEDER_M, // FACILITY_CLASS_PKMN_BREEDER_2
|
||||
TRAINER_PIC_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
|
||||
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_1
|
||||
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_2
|
||||
TRAINER_PIC_POKEMON_RANGER_M, // FACILITY_CLASS_PKMN_RANGER_M
|
||||
TRAINER_PIC_POKEMON_RANGER_F, // FACILITY_CLASS_PKMN_RANGER_F
|
||||
TRAINER_PIC_MAGMA_LEADER_MAXIE, // FACILITY_CLASS_MAGMA_LEADER
|
||||
TRAINER_PIC_LASS, // FACILITY_CLASS_LASS
|
||||
TRAINER_PIC_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
|
||||
TRAINER_PIC_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
|
||||
TRAINER_PIC_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
|
||||
TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_8
|
||||
TRAINER_PIC_STEVEN, // FACILITY_CLASS_PKMN_TRAINER_STEVEN
|
||||
TRAINER_PIC_SALON_MAIDEN_ANABEL, // FACILITY_CLASS_SALON_MAIDEN
|
||||
TRAINER_PIC_DOME_ACE_TUCKER, // FACILITY_CLASS_DOME_ACE
|
||||
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_9
|
||||
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_10
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_11
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_12
|
||||
TRAINER_PIC_RED, // FACILITY_CLASS_PKMN_TRAINER_RED
|
||||
TRAINER_PIC_LEAF, // FACILITY_CLASS_PKMN_TRAINER_LEAF
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
|
||||
TRAINER_PIC_RUBY_SAPPHIRE_MAY, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
|
||||
};
|
||||
|
||||
const u8 gFacilityClassToTrainerClass[] =
|
||||
@ -92,13 +92,13 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_HIKER, // FACILITY_CLASS_HIKER
|
||||
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_1
|
||||
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_1
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_1
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_M
|
||||
TRAINER_CLASS_BIRD_KEEPER, // FACILITY_CLASS_BIRD_KEEPER
|
||||
TRAINER_CLASS_COLLECTOR, // FACILITY_CLASS_COLLECTOR
|
||||
TRAINER_CLASS_TEAM_AQUA, // FACILITY_CLASS_TEAM_AQUA_2
|
||||
TRAINER_CLASS_SWIMMER_M, // FACILITY_CLASS_SWIMMER_M
|
||||
TRAINER_CLASS_TEAM_MAGMA, // FACILITY_CLASS_TEAM_MAGMA_1
|
||||
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_1
|
||||
TRAINER_CLASS_EXPERT, // FACILITY_CLASS_EXPERT_M
|
||||
TRAINER_CLASS_BLACK_BELT, // FACILITY_CLASS_BLACK_BELT
|
||||
TRAINER_CLASS_AQUA_LEADER, // FACILITY_CLASS_AQUA_LEADER
|
||||
TRAINER_CLASS_HEX_MANIAC, // FACILITY_CLASS_HEX_MANIAC
|
||||
@ -107,7 +107,7 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_INTERVIEWER, // FACILITY_CLASS_INTERVIEWER
|
||||
TRAINER_CLASS_TUBER_1, // FACILITY_CLASS_TUBER_1
|
||||
TRAINER_CLASS_TUBER_2, // FACILITY_CLASS_TUBER_2
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_2
|
||||
TRAINER_CLASS_COOLTRAINER_1, // FACILITY_CLASS_COOLTRAINER_F
|
||||
TRAINER_CLASS_LADY, // FACILITY_CLASS_LADY
|
||||
TRAINER_CLASS_BEAUTY, // FACILITY_CLASS_BEAUTY
|
||||
TRAINER_CLASS_RICH_BOY, // FACILITY_CLASS_RICH_BOY
|
||||
@ -119,16 +119,16 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_CAMPER, // FACILITY_CLASS_CAMPER
|
||||
TRAINER_CLASS_PICNICKER, // FACILITY_CLASS_PICNICKER
|
||||
TRAINER_CLASS_BUG_MANIAC, // FACILITY_CLASS_BUG_MANIAC
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_1
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_2
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_M
|
||||
TRAINER_CLASS_PSYCHIC, // FACILITY_CLASS_PSYCHIC_F
|
||||
TRAINER_CLASS_GENTLEMAN, // FACILITY_CLASS_GENTLEMAN
|
||||
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_1
|
||||
TRAINER_CLASS_ELITE_FOUR, // FACILITY_CLASS_ELITE_FOUR_2
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_1
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_2
|
||||
TRAINER_CLASS_LEADER, // FACILITY_CLASS_LEADER_3
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_1
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_2
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_M
|
||||
TRAINER_CLASS_SCHOOL_KID, // FACILITY_CLASS_SCHOOL_KID_F
|
||||
TRAINER_CLASS_SR_AND_JR, // FACILITY_CLASS_SR_AND_JR
|
||||
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_1
|
||||
TRAINER_CLASS_POKEFAN, // FACILITY_CLASS_POKEFAN_2
|
||||
@ -149,28 +149,28 @@ const u8 gFacilityClassToTrainerClass[] =
|
||||
TRAINER_CLASS_TWINS, // FACILITY_CLASS_TWINS
|
||||
TRAINER_CLASS_SAILOR, // FACILITY_CLASS_SAILOR
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_1
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_2
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_MAY
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_3
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_4
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_5
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_BRENDAN
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_6
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_7
|
||||
TRAINER_CLASS_PKMN_BREEDER, // FACILITY_CLASS_PKMN_BREEDER_2
|
||||
TRAINER_CLASS_BUG_CATCHER, // FACILITY_CLASS_BUG_CATCHER
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_1
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_2
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_M
|
||||
TRAINER_CLASS_PKMN_RANGER, // FACILITY_CLASS_PKMN_RANGER_F
|
||||
TRAINER_CLASS_MAGMA_LEADER, // FACILITY_CLASS_MAGMA_LEADER
|
||||
TRAINER_CLASS_LASS, // FACILITY_CLASS_LASS
|
||||
TRAINER_CLASS_YOUNG_COUPLE, // FACILITY_CLASS_YOUNG_COUPLE
|
||||
TRAINER_CLASS_OLD_COUPLE, // FACILITY_CLASS_OLD_COUPLE
|
||||
TRAINER_CLASS_SIS_AND_BRO, // FACILITY_CLASS_SIS_AND_BRO
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_8
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_STEVEN
|
||||
TRAINER_CLASS_SALON_MAIDEN, // FACILITY_CLASS_SALON_MAIDEN
|
||||
TRAINER_CLASS_DOME_ACE, // FACILITY_CLASS_DOME_ACE
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_9
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_10
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_11
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_12
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_RED
|
||||
TRAINER_CLASS_PKMN_TRAINER_3, // FACILITY_CLASS_PKMN_TRAINER_LEAF
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN
|
||||
TRAINER_CLASS_PKMN_TRAINER_4, // FACILITY_CLASS_PKMN_TRAINER_RS_MAY
|
||||
};
|
||||
|
||||
#endif //POKEEMERALD_TRAINER_CLASS_LOOKUPS_H
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
#define GUARD_POKEMON_H
|
||||
|
||||
#include "constants/pokemon.h"
|
||||
#include "sprite.h"
|
||||
|
||||
#define MON_DATA_PERSONALITY 0
|
||||
#define MON_DATA_OT_ID 1
|
||||
@ -266,6 +267,46 @@ struct UnknownPokemonStruct
|
||||
u8 friendship;
|
||||
};
|
||||
|
||||
struct UnknownPokemonSubStruct2
|
||||
{
|
||||
u16 species;
|
||||
u16 moves[4];
|
||||
u16 item;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct2
|
||||
{
|
||||
u8 field_0_0 : 5;
|
||||
u8 field_0_1 : 2;
|
||||
u8 field_1;
|
||||
u8 field_2;
|
||||
u8 field_3;
|
||||
struct UnknownPokemonSubStruct2 mons[3];
|
||||
u8 field_28[23];
|
||||
u8 language;
|
||||
};
|
||||
|
||||
struct UnknownPokemonStruct3
|
||||
{
|
||||
u8 field_0[48];
|
||||
u16 field_30;
|
||||
u8 field_32[38];
|
||||
};
|
||||
|
||||
struct Unknown_806F160_Struct
|
||||
{
|
||||
u8 field_0_0 : 4;
|
||||
u8 field_0_1 : 4;
|
||||
u8 field_1;
|
||||
u8 magic;
|
||||
u8 field_3_0 : 4;
|
||||
u8 field_3_1 : 4;
|
||||
void *bytes;
|
||||
u8 **byteArrays;
|
||||
struct SpriteTemplate *templates;
|
||||
struct SpriteFrameImage *frameImages;
|
||||
};
|
||||
|
||||
#define BATTLE_STATS_NO 8
|
||||
|
||||
struct BattlePokemon
|
||||
@ -424,17 +465,22 @@ extern u8 gPlayerPartyCount;
|
||||
extern struct Pokemon gPlayerParty[PARTY_SIZE];
|
||||
extern u8 gEnemyPartyCount;
|
||||
extern struct Pokemon gEnemyParty[PARTY_SIZE];
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern struct PokemonStorage* gPokemonStoragePtr;
|
||||
|
||||
extern const u8 gFacilityClassToPicIndex[];
|
||||
extern const u8 gFacilityClassToTrainerClass[];
|
||||
extern const struct BaseStats gBaseStats[];
|
||||
extern const u8 *const gItemEffectTable[];
|
||||
extern const struct Evolution gEvolutionTable[][EVOS_PER_MON];
|
||||
extern struct PokemonStorage* gPokemonStoragePtr;
|
||||
extern const u32 gExperienceTables[][MAX_MON_LEVEL + 1];
|
||||
extern const u16 *const gLevelUpLearnsets[];
|
||||
|
||||
u8 CountAliveMonsInBattle(u8 caseId);
|
||||
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
|
||||
#define BATTLE_ALIVE_ATK_SIDE 1
|
||||
#define BATTLE_ALIVE_DEF_SIDE 2
|
||||
extern const u8 gUnknown_08329D22[];
|
||||
extern const u8 gUnknown_08329D26[];
|
||||
extern const u8 gUnknown_08329D2A[];
|
||||
extern const u8 gStatStageRatios[][2];
|
||||
extern const u16 gUnknown_08329D54[];
|
||||
extern const struct SpriteTemplate gUnknown_08329D98[];
|
||||
|
||||
void ZeroBoxMonData(struct BoxPokemon *boxMon);
|
||||
void ZeroMonData(struct Pokemon *mon);
|
||||
@ -448,26 +494,45 @@ void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level);
|
||||
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality);
|
||||
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId);
|
||||
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread);
|
||||
u16 CalculateBoxMonChecksum(struct BoxPokemon *boxMon);
|
||||
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src);
|
||||
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50);
|
||||
void sub_8068528(struct Pokemon *mon, const struct UnknownPokemonStruct2 *src, u8 monId);
|
||||
void CreateMonWithEVSpreadPersonalityOTID(struct Pokemon *mon, u16 species, u8 level, u8 nature, u8 fixedIV, u8 evSpread, u32 otId);
|
||||
void sub_80686FC(struct Pokemon *mon, struct UnknownPokemonStruct *dest);
|
||||
void CreateObedientMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId);
|
||||
bool8 sub_80688F8(u8 caseId, u8 battlerId);
|
||||
void SetDeoxysStats(void);
|
||||
u16 sub_8068B48(void);
|
||||
u16 sub_8068BB0(void);
|
||||
void CreateObedientEnemyMon(void);
|
||||
void CalculateMonStats(struct Pokemon *mon);
|
||||
void BoxMonToMon(const struct BoxPokemon *src, struct Pokemon *dest);
|
||||
u8 GetLevelFromMonExp(struct Pokemon *mon);
|
||||
u8 GetLevelFromBoxMonExp(struct BoxPokemon *boxMon);
|
||||
u16 GiveMoveToMon(struct Pokemon *mon, u16 move);
|
||||
u16 GiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
|
||||
u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move);
|
||||
void MonRestorePP(struct Pokemon *mon);
|
||||
void SetMonMoveSlot(struct Pokemon *mon, u16 move, u8 slot);
|
||||
void SetBattleMonMoveSlot(struct BattlePokemon *mon, u16 move, u8 slot);
|
||||
void GiveMonInitialMoveset(struct Pokemon *mon);
|
||||
void GiveBoxMonInitialMoveset(struct BoxPokemon *boxMon);
|
||||
u16 MonTryLearningNewMove(struct Pokemon *mon, bool8 firstMove);
|
||||
void DeleteFirstMoveAndGiveMoveToMon(struct Pokemon *mon, u16 move);
|
||||
void DeleteFirstMoveAndGiveMoveToBoxMon(struct BoxPokemon *boxMon, u16 move);
|
||||
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef);
|
||||
|
||||
u8 CountAliveMonsInBattle(u8 caseId);
|
||||
#define BATTLE_ALIVE_EXCEPT_ACTIVE 0
|
||||
#define BATTLE_ALIVE_ATK_SIDE 1
|
||||
#define BATTLE_ALIVE_DEF_SIDE 2
|
||||
|
||||
u8 GetDefaultMoveTarget(u8 battlerId);
|
||||
u8 GetMonGender(struct Pokemon *mon);
|
||||
u8 GetBoxMonGender(struct BoxPokemon *boxMon);
|
||||
u8 GetGenderFromSpeciesAndPersonality(u16 species, u32 personality);
|
||||
void EncryptBoxMon(struct BoxPokemon *boxMon);
|
||||
void DecryptBoxMon(struct BoxPokemon *boxMon);
|
||||
void sub_806A068(u16 species, u8 battlerPosition);
|
||||
void sub_806A12C(u16 trainerSpriteId, u8 battlerPosition);
|
||||
void sub_806A1C0(u16 arg0, u8 battlerPosition);
|
||||
|
||||
// These are full type signatures for GetMonData() and GetBoxMonData(),
|
||||
// but they are not used since some code erroneously omits the third arg.
|
||||
@ -476,93 +541,105 @@ void DecryptBoxMon(struct BoxPokemon *boxMon);
|
||||
u32 GetMonData();
|
||||
u32 GetBoxMonData();
|
||||
|
||||
void SetMonData(struct Pokemon *mon, s32 field, const void *data);
|
||||
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *data);
|
||||
void SetMonData(struct Pokemon *mon, s32 field, const void *dataArg);
|
||||
void SetBoxMonData(struct BoxPokemon *boxMon, s32 field, const void *dataArg);
|
||||
void CopyMon(void *dest, void *src, size_t size);
|
||||
u8 GiveMonToPlayer(struct Pokemon *mon);
|
||||
u8 SendMonToPC(struct Pokemon *mon);
|
||||
u8 SendMonToPC(struct Pokemon* mon);
|
||||
u8 CalculatePlayerPartyCount(void);
|
||||
u8 CalculateEnemyPartyCount(void);
|
||||
|
||||
u8 GetMonsStateToDoubles(void);
|
||||
u8 GetMonsStateToDoubles_2(void);
|
||||
u8 GetAbilityBySpecies(u16 species, bool8 altAbility);
|
||||
u8 GetMonAbility(struct Pokemon *mon);
|
||||
void CreateSecretBaseEnemyParty(struct SecretBaseRecord *secretBaseRecord);
|
||||
u8 GetSecretBaseTrainerPicIndex(void);
|
||||
u8 GetSecretBaseTrainerNameIndex(void);
|
||||
u8 GetSecretBaseTrainerClass(void);
|
||||
bool8 IsPlayerPartyAndPokemonStorageFull(void);
|
||||
bool8 IsPokemonStorageFull(void);
|
||||
void GetSpeciesName(u8 *name, u16 species);
|
||||
u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex);
|
||||
void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex);
|
||||
void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex);
|
||||
void CopyPlayerPartyMonToBattleData(u8 battleIndex, u8 partyIndex);
|
||||
|
||||
void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex);
|
||||
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex);
|
||||
bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e);
|
||||
bool8 HealStatusConditions(struct Pokemon *mon, u32 battlePartyId, u32 healMask, u8 battlerId);
|
||||
u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit);
|
||||
u8 *sub_806CF78(u16 itemId);
|
||||
u8 GetNature(struct Pokemon *mon);
|
||||
u8 GetNatureFromPersonality(u32 personality);
|
||||
|
||||
u16 nature_stat_mod(u8 nature, u16 n, u8 statIndex);
|
||||
|
||||
void MonRestorePP(struct Pokemon *);
|
||||
void BoxMonRestorePP(struct BoxPokemon *);
|
||||
|
||||
u16 NationalPokedexNumToSpecies(u16 nationalNum);
|
||||
u16 NationalToHoennOrder(u16);
|
||||
u16 SpeciesToNationalPokedexNum(u16);
|
||||
u16 HoennToNationalOrder(u16);
|
||||
u16 SpeciesToCryId(u16 species);
|
||||
void DrawSpindaSpots(u16, u32, u8 *, u8);
|
||||
void AdjustFriendship(struct Pokemon *, u8);
|
||||
u8 CheckPartyHasHadPokerus(struct Pokemon *, u8);
|
||||
void UpdatePartyPokerusTime(u16);
|
||||
u32 CanMonLearnTMHM(struct Pokemon *, u8);
|
||||
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
|
||||
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
|
||||
void ClearBattleMonForms(void);
|
||||
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
|
||||
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16, u32, u32);
|
||||
const struct CompressedSpritePalette *sub_80409C8(u16, u32, u32);
|
||||
bool8 IsOtherTrainer(u32, u8 *);
|
||||
void SetWildMonHeldItem(void);
|
||||
u16 GetMonEVCount(struct Pokemon *);
|
||||
|
||||
const struct CompressedSpritePalette *sub_806E794(struct Pokemon *mon);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
|
||||
bool32 IsHMMove2(u16 move);
|
||||
bool8 IsPokeSpriteNotFlipped(u16 species);
|
||||
bool8 IsMonShiny(struct Pokemon *mon);
|
||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||
|
||||
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
|
||||
bool8 IsTradedMon(struct Pokemon *mon);
|
||||
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
|
||||
s32 GetBattlerMultiplayerId(u16 a1);
|
||||
bool16 sub_806D82C(u8 id);
|
||||
u16 MonTryLearningNewMove(struct Pokemon* mon, bool8);
|
||||
void sub_8068AA4(void); // sets stats for deoxys
|
||||
bool8 HasTwoFramesAnimation(u16 species);
|
||||
u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 type, u16 evolutionItem);
|
||||
u16 HoennPokedexNumToSpecies(u16 hoennNum);
|
||||
u16 NationalPokedexNumToSpecies(u16 nationalNum);
|
||||
u16 NationalToHoennOrder(u16 nationalNum);
|
||||
u16 SpeciesToNationalPokedexNum(u16 species);
|
||||
u16 SpeciesToHoennPokedexNum(u16 species);
|
||||
u16 HoennToNationalOrder(u16 hoennNum);
|
||||
u16 SpeciesToCryId(u16 species);
|
||||
void sub_806D544(u16 species, u32 personality, u8 *dest);
|
||||
void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4);
|
||||
void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies);
|
||||
bool8 sub_806D7EC(void);
|
||||
bool16 sub_806D82C(u8 id);
|
||||
s32 GetBattlerMultiplayerId(u16 a1);
|
||||
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
|
||||
u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex);
|
||||
void AdjustFriendship(struct Pokemon *mon, u8 event);
|
||||
void MonGainEVs(struct Pokemon *mon, u16 defeatedSpecies);
|
||||
u16 GetMonEVCount(struct Pokemon *mon);
|
||||
void RandomlyGivePartyPokerus(struct Pokemon *party);
|
||||
u8 CheckPartyPokerus(struct Pokemon *party, u8 selection);
|
||||
u8 CheckPartyHasHadPokerus(struct Pokemon *party, u8 selection);
|
||||
void UpdatePartyPokerusTime(u16 days);
|
||||
void PartySpreadPokerus(struct Pokemon *party);
|
||||
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);
|
||||
void sub_806A1C0(u16 arg0, u8 bankIdentity);
|
||||
void sub_806A12C(u16 trainerSpriteId, u8 bankIdentity);
|
||||
u8 GetSecretBaseTrainerPicIndex(void);
|
||||
bool8 TryIncrementMonLevel(struct Pokemon *mon);
|
||||
void BoxMonToMon(struct BoxPokemon *srcMon, struct Pokemon *dstMon);
|
||||
u32 CanMonLearnTMHM(struct Pokemon *mon, u8 tm);
|
||||
u32 CanSpeciesLearnTMHM(u16 species, u8 tm);
|
||||
u8 GetMoveRelearnerMoves(struct Pokemon *mon, u16 *moves);
|
||||
u8 GetLevelUpMovesBySpecies(u16 species, u16 *moves);
|
||||
u8 GetMonsStateToDoubles_2(void);
|
||||
|
||||
#include "sprite.h"
|
||||
|
||||
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
||||
u8 GetNumberOfRelearnableMoves(struct Pokemon *mon);
|
||||
u16 SpeciesToPokedexNum(u16 species);
|
||||
bool32 sub_806E3F8(u16 species);
|
||||
void ClearBattleMonForms(void);
|
||||
u16 GetBattleBGM(void);
|
||||
void PlayBattleBGM(void);
|
||||
void PlayMapChosenOrBattleBGM(u16 songId);
|
||||
void sub_806E694(u16 songId);
|
||||
const u8 *GetMonFrontSpritePal(struct Pokemon *mon);
|
||||
const u8 *GetFrontSpritePalFromSpeciesAndPersonality(u16 species, u32 otId, u32 personality);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStruct(struct Pokemon *mon);
|
||||
const struct CompressedSpritePalette *GetMonSpritePalStructFromOtIdPersonality(u16 species, u32 otId , u32 personality);
|
||||
bool32 IsHMMove2(u16 move);
|
||||
bool8 IsMonSpriteNotFlipped(u16 species);
|
||||
s8 GetMonFlavorRelation(struct Pokemon *mon, u8 flavor);
|
||||
s8 GetFlavorRelationByPersonality(u32 personality, u8 flavor);
|
||||
bool8 IsTradedMon(struct Pokemon *mon);
|
||||
bool8 IsOtherTrainer(u32 otId, u8 *otName);
|
||||
void MonRestorePP(struct Pokemon *mon);
|
||||
void BoxMonRestorePP(struct BoxPokemon *boxMon);
|
||||
void sub_806E994(void);
|
||||
void SetWildMonHeldItem(void);
|
||||
bool8 IsMonShiny(struct Pokemon *mon);
|
||||
bool8 IsShinyOtIdPersonality(u32 otId, u32 personality);
|
||||
const u8 *GetTrainerPartnerName(void);
|
||||
void BattleAnimateFrontSprite(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
||||
void DoMonFrontSpriteAnimation(struct Sprite* sprite, u16 species, bool8 noCry, u8 arg3);
|
||||
void PokemonSummaryDoMonAnimation(struct Sprite* sprite, u16 species, bool8 oneFrame);
|
||||
void sub_806EE98(void);
|
||||
void BattleAnimateBackSprite(struct Sprite* sprite, u16 species);
|
||||
u8 sub_806EF08(u8 arg0);
|
||||
u8 sub_806EF84(u8 arg0, u8 arg1);
|
||||
u16 sub_806EFF0(u16 arg0);
|
||||
u16 FacilityClassToPicIndex(u16 facilityClass);
|
||||
u16 PlayerGenderToFrontTrainerPicId(u8 playerGender);
|
||||
void HandleSetPokedexFlag(u16 nationalNum, u8 caseId, u32 personality);
|
||||
const u8 *GetTrainerClassNameFromId(u16 trainerId);
|
||||
const u8 *GetTrainerNameFromId(u16 trainerId);
|
||||
bool8 HasTwoFramesAnimation(u16 species);
|
||||
bool8 sub_806F104(void);
|
||||
struct Unknown_806F160_Struct *sub_806F2AC(u8 id, u8 arg1);
|
||||
void sub_806F47C(u8 id);
|
||||
u8 *sub_806F4F8(u8 id, u8 arg1);
|
||||
|
||||
#endif // GUARD_POKEMON_H
|
||||
|
||||
@ -1,9 +0,0 @@
|
||||
#ifndef GUARD_POKEMON_3_H
|
||||
#define GUARD_POKEMON_3_H
|
||||
|
||||
const u8* GetTrainerClassNameFromId(u16 trainerId);
|
||||
const u8* GetTrainerNameFromId(u16 trainerId);
|
||||
void PlayMapChosenOrBattleBGM(u16 song);
|
||||
u8 GetTrainerEncounterMusicId(u16 trainerOpponentId);
|
||||
|
||||
#endif // GUARD_POKEMON_3_H
|
||||
@ -1,62 +0,0 @@
|
||||
#ifndef GUARD_POKEMON_ITEM_EFFECTS
|
||||
#define GUARD_POKEMON_ITEM_EFFECTS
|
||||
|
||||
#include "pokemon.h"
|
||||
|
||||
// TODO once pokemon item effects is decompiled
|
||||
/*
|
||||
struct PokemonItemEffect
|
||||
{
|
||||
//field 0
|
||||
u8 xAtk : 4; // x1, x2, x4, x8 = xF
|
||||
u8 field_0_x10 : 1; // x10
|
||||
u8 critRatioUp : 1; // x20
|
||||
u8 field_0_x40 : 1; // x40
|
||||
u8 cureInfatuation : 1; // x80
|
||||
|
||||
/*field 1
|
||||
u8 xSpeed : 4; // x1, x2, x4, x8 = xF
|
||||
u8 xDefense : 4; // x10, x20, x40, xF0
|
||||
|
||||
/*field 2
|
||||
u8 xSpAtk : 4; // x1, x2, x4, x8 = xF
|
||||
u8 xAccuracy : 4; // x10, x20, x40, xF0
|
||||
|
||||
/*field 3
|
||||
u8 cureConfusion : 1; // x1
|
||||
u8 cureParalysis : 1; // x2
|
||||
u8 cureFreeze : 1; // x4
|
||||
u8 cureBurn : 1; // x8
|
||||
u8 curePoison : 1; // x10
|
||||
u8 cureSleep : 1; // x20
|
||||
u8 field_3_x40 : 1; // x40
|
||||
u8 cantLowerStats : 1; // x80
|
||||
|
||||
/*field 4
|
||||
u8 hpEv : 1; // x1
|
||||
u8 attackEv : 1; // x2
|
||||
u8 healHp : 1; // x4
|
||||
u8 field_4_x8 : 1; // x8
|
||||
u8 field_4_x10 : 1; // x10
|
||||
u8 ppUp : 1; // x20
|
||||
u8 levelUp : 1; // x40
|
||||
u8 evolutionStone : 1; // x80
|
||||
|
||||
/*field 5
|
||||
u8 defEv: 1; // x1
|
||||
u8 speedEv : 1; // x2
|
||||
u8 spDefEv : 1; // x4
|
||||
u8 spAtkEv : 1; // x8
|
||||
u8 ppMax : 1; // x10
|
||||
u8 field_5_x20 : 1; // x20
|
||||
u8 field_5_x40 : 1; // x40
|
||||
u8 field_5_x80 : 1; // x80
|
||||
|
||||
/*field 6
|
||||
u8 value;
|
||||
};
|
||||
*/
|
||||
|
||||
bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 itemId, u8 partyId, u8 monMoveIndex, u8 a5);
|
||||
|
||||
#endif // GUARD_POKEMON_ITEM_EFFECTS
|
||||
@ -71,13 +71,7 @@ SECTIONS {
|
||||
src/battle_controller_opponent.o(.text);
|
||||
src/battle_ai_switch_items.o(.text);
|
||||
src/battle_controller_link_opponent.o(.text);
|
||||
src/pokemon_1.o(.text);
|
||||
asm/pokemon_1.o(.text);
|
||||
src/calculate_base_damage.o(.text);
|
||||
src/pokemon_2.o(.text);
|
||||
asm/pokemon_item_effect.o(.text);
|
||||
src/pokemon_3.o(.text);
|
||||
asm/pokemon_3.o(.text);
|
||||
src/pokemon.o(.text);
|
||||
src/trig.o(.text);
|
||||
src/random.o(.text);
|
||||
src/util.o(.text);
|
||||
@ -388,8 +382,7 @@ SECTIONS {
|
||||
src/battle_controller_opponent.o(.rodata);
|
||||
src/battle_controller_link_opponent.o(.rodata);
|
||||
data/data2c.o(.rodata);
|
||||
src/pokemon_1.o(.rodata);
|
||||
data/data2e.o(.rodata);
|
||||
src/pokemon.o(.rodata);
|
||||
src/trig.o(.rodata);
|
||||
src/util.o(.rodata);
|
||||
src/daycare.o(.rodata);
|
||||
|
||||
@ -8,7 +8,6 @@
|
||||
#include "random.h"
|
||||
#include "util.h"
|
||||
#include "constants/items.h"
|
||||
#include "pokemon_item_effects.h"
|
||||
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
extern const u8 gTypeEffectiveness[];
|
||||
|
||||
@ -26,7 +26,6 @@
|
||||
#include "data2.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
@ -34,7 +33,6 @@ extern struct UnusedControllerStruct gUnknown_02022D0C;
|
||||
|
||||
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
extern const u8 gFacilityClassToPicIndex[];
|
||||
|
||||
extern void sub_8172EF0(u8 bank, struct Pokemon *mon);
|
||||
extern void sub_806A068(u16, u8);
|
||||
@ -1246,7 +1244,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_BATTLE_TOWER)
|
||||
{
|
||||
if (gActiveBattler == 1)
|
||||
if (gActiveBattler == B_POSITION_OPPONENT_LEFT)
|
||||
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_A);
|
||||
else
|
||||
trainerPicId = GetFrontierTrainerFrontSpriteId(gTrainerBattleOpponent_B);
|
||||
@ -1256,18 +1254,18 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED
|
||||
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN)
|
||||
{
|
||||
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0)
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_10];
|
||||
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE)
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF];
|
||||
else
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_9];
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED];
|
||||
}
|
||||
else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY
|
||||
|| (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE)
|
||||
{
|
||||
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != 0)
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_12];
|
||||
if (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender != MALE)
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY];
|
||||
else
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_11];
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN];
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1286,17 +1284,17 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
|| (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_LEAF_GREEN)
|
||||
{
|
||||
if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0)
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_10];
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_LEAF];
|
||||
else
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_9];
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RED];
|
||||
}
|
||||
else if ((gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_RUBY
|
||||
|| (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].version & 0xFF) == VERSION_SAPPHIRE)
|
||||
{
|
||||
if (gLinkPlayers[GetMultiplayerId() ^ BIT_SIDE].gender != 0)
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_12];
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_MAY];
|
||||
else
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_11];
|
||||
trainerPicId = gFacilityClassToPicIndex[FACILITY_CLASS_PKMN_TRAINER_RS_BRENDAN];
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -25,7 +25,6 @@
|
||||
#include "data2.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern struct UnusedControllerStruct gUnknown_02022D0C;
|
||||
|
||||
@ -29,7 +29,6 @@
|
||||
#include "data2.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
|
||||
@ -25,7 +25,6 @@
|
||||
#include "battle_setup.h"
|
||||
#include "item_use.h"
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern struct UnusedControllerStruct gUnknown_02022D0C;
|
||||
|
||||
@ -27,7 +27,6 @@
|
||||
#include "item_use.h"
|
||||
#include "battle_setup.h"
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
|
||||
@ -25,7 +25,6 @@
|
||||
#include "data2.h"
|
||||
#include "item_use.h"
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern u32 gTransformedPersonalities[MAX_BATTLERS_COUNT];
|
||||
|
||||
@ -24,7 +24,6 @@
|
||||
#include "item_use.h"
|
||||
|
||||
extern struct BattlePokemon gBattleMons[MAX_BATTLERS_COUNT];
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
|
||||
|
||||
@ -30,8 +30,6 @@
|
||||
#include "battle_setup.h"
|
||||
#include "item_use.h"
|
||||
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern u16 gBattle_BG0_X;
|
||||
extern u16 gBattle_BG0_Y;
|
||||
extern s32 gUnknown_0203CD70;
|
||||
|
||||
@ -39,7 +39,6 @@ extern const struct CompressedSpriteSheet gTrainerBackPicTable[];
|
||||
extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
|
||||
extern const struct CompressedSpritePalette gTrainerBackPicPaletteTable[];
|
||||
extern const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[];
|
||||
extern const struct SpriteTemplate gUnknown_08329D98[4];
|
||||
extern const struct CompressedSpriteSheet gSpriteSheet_EnemyShadow;
|
||||
extern const struct SpriteTemplate gSpriteTemplate_EnemyShadow;
|
||||
extern const u8 gEnemyMonElevation[];
|
||||
|
||||
@ -51,7 +51,7 @@
|
||||
#include "international_string_util.h"
|
||||
#include "pokeball.h"
|
||||
|
||||
struct UnknownPokemonStruct2
|
||||
struct UnknownPokemonStruct4
|
||||
{
|
||||
/*0x00*/ u16 species;
|
||||
/*0x02*/ u16 heldItem;
|
||||
@ -86,7 +86,6 @@ extern const u16 gBattleTextboxPalette[]; // battle textbox palette
|
||||
extern const struct BgTemplate gUnknown_0831AA08[];
|
||||
extern const struct WindowTemplate * const gUnknown_0831ABA0[];
|
||||
extern const u8 gUnknown_0831ACE0[];
|
||||
extern const u8 gStatStageRatios[][2];
|
||||
extern const u8 * const gBattleScriptsForMoveEffects[];
|
||||
extern const u8 * const gBattlescriptsForBallThrow[];
|
||||
extern const u8 * const gBattlescriptsForRunningByItem[];
|
||||
@ -199,8 +198,8 @@ EWRAM_DATA static u32 sUnusedUnknownArray[25] = {0};
|
||||
EWRAM_DATA u32 gBattleTypeFlags = 0;
|
||||
EWRAM_DATA u8 gBattleTerrain = 0;
|
||||
EWRAM_DATA u32 gUnknown_02022FF4 = 0;
|
||||
EWRAM_DATA struct UnknownPokemonStruct2 gUnknown_02022FF8[3] = {0}; // what is it used for?
|
||||
EWRAM_DATA struct UnknownPokemonStruct2* gUnknown_02023058 = NULL; // what is it used for?
|
||||
EWRAM_DATA struct UnknownPokemonStruct4 gUnknown_02022FF8[3] = {0}; // what is it used for?
|
||||
EWRAM_DATA struct UnknownPokemonStruct4* gUnknown_02023058 = NULL; // what is it used for?
|
||||
EWRAM_DATA u8 *gUnknown_0202305C = NULL;
|
||||
EWRAM_DATA u8 *gUnknown_02023060 = NULL;
|
||||
EWRAM_DATA u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200] = {0};
|
||||
@ -791,7 +790,7 @@ static void CB2_HandleStartBattle(void)
|
||||
gTasks[taskId].data[4] = gBlockRecvBuffer[enemyMultiplayerId][1];
|
||||
sub_8185F90(gBlockRecvBuffer[playerMultiplayerId][1]);
|
||||
sub_8185F90(gBlockRecvBuffer[enemyMultiplayerId][1]);
|
||||
sub_8068AA4();
|
||||
SetDeoxysStats();
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
}
|
||||
break;
|
||||
@ -1203,9 +1202,9 @@ static void CB2_PreInitMultiBattle(void)
|
||||
case 0:
|
||||
if (gReceivedRemoteLinkPlayers != 0 && sub_800A520())
|
||||
{
|
||||
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3);
|
||||
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
|
||||
sub_80379F8(0);
|
||||
SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct2) * 3);
|
||||
SendBlock(bitmask_all_link_players_but_self(), gUnknown_02023058, sizeof(struct UnknownPokemonStruct4) * 3);
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
}
|
||||
break;
|
||||
@ -1223,12 +1222,12 @@ static void CB2_PreInitMultiBattle(void)
|
||||
if ((!(gLinkPlayers[i].lp_field_18 & 1) && !(gLinkPlayers[playerMultiplierId].lp_field_18 & 1))
|
||||
|| (gLinkPlayers[i].lp_field_18 & 1 && gLinkPlayers[playerMultiplierId].lp_field_18 & 1))
|
||||
{
|
||||
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3);
|
||||
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct2) * 3);
|
||||
memcpy(gUnknown_02022FF8, gBlockRecvBuffer[i], sizeof(struct UnknownPokemonStruct4) * 3);
|
||||
}
|
||||
}
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
@ -1287,7 +1286,7 @@ static void CB2_PreInitIngamePlayerPartnerBattle(void)
|
||||
switch (gBattleCommunication[MULTIUSE_STATE])
|
||||
{
|
||||
case 0:
|
||||
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct2) * 3);
|
||||
gUnknown_02023058 = Alloc(sizeof(struct UnknownPokemonStruct4) * 3);
|
||||
sub_80379F8(3);
|
||||
gBattleCommunication[MULTIUSE_STATE]++;
|
||||
*savedCallback = gMain.savedCallback;
|
||||
@ -1370,7 +1369,7 @@ static void CB2_HandleStartMultiBattle(void)
|
||||
ResetBlockReceivedFlags();
|
||||
sub_8036EB8(4, playerMultiplayerId);
|
||||
SetAllPlayersBerryData();
|
||||
sub_8068AA4();
|
||||
SetDeoxysStats();
|
||||
var = CreateTask(sub_8035D74, 0);
|
||||
gTasks[var].data[1] = 0x10E;
|
||||
gTasks[var].data[2] = 0x5A;
|
||||
|
||||
@ -1968,7 +1968,7 @@ u32 BattleStringExpandPlaceholders(const u8* src, u8* dst)
|
||||
break;
|
||||
case B_TXT_TRAINER1_CLASS: // trainer class name
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_SECRET_BASE)
|
||||
toCpy = gTrainerClassNames[GetSecretBaseTrainerNameIndex()];
|
||||
toCpy = gTrainerClassNames[GetSecretBaseTrainerClass()];
|
||||
else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00)
|
||||
toCpy = gTrainerClassNames[sub_8068BB0()];
|
||||
else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_3FE)
|
||||
|
||||
@ -12,7 +12,6 @@
|
||||
#include "constants/hold_effects.h"
|
||||
#include "util.h"
|
||||
#include "pokemon.h"
|
||||
#include "calculate_base_damage.h"
|
||||
#include "random.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "battle_interface.h"
|
||||
@ -32,7 +31,6 @@
|
||||
#include "bg.h"
|
||||
#include "string_util.h"
|
||||
#include "pokemon_icon.h"
|
||||
#include "pokemon_item_effects.h"
|
||||
#include "m4a.h"
|
||||
#include "mail.h"
|
||||
#include "event_data.h"
|
||||
@ -6882,8 +6880,7 @@ static void atk74_hpthresholds2(void)
|
||||
static void atk75_useitemonopponent(void)
|
||||
{
|
||||
gBattlerInMenuId = gBattlerAttacker;
|
||||
ExecuteTableBasedItemEffect(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1);
|
||||
|
||||
PokemonUseItemEffects(&gEnemyParty[gBattlerPartyIndexes[gBattlerAttacker]], gLastUsedItem, gBattlerPartyIndexes[gBattlerAttacker], 0, 1);
|
||||
gBattlescriptCurrInstr += 1;
|
||||
}
|
||||
|
||||
|
||||
@ -5,7 +5,6 @@
|
||||
#include "battle_transition.h"
|
||||
#include "main.h"
|
||||
#include "task.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "safari_zone.h"
|
||||
#include "script.h"
|
||||
#include "constants/game_stat.h"
|
||||
|
||||
@ -20,7 +20,6 @@
|
||||
#include "battle_ai_script_commands.h"
|
||||
#include "battle_controllers.h"
|
||||
#include "event_data.h"
|
||||
#include "calculate_base_damage.h"
|
||||
#include "link.h"
|
||||
#include "berry.h"
|
||||
|
||||
|
||||
@ -1,275 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "battle.h"
|
||||
#include "battle_setup.h"
|
||||
#include "constants/hold_effects.h"
|
||||
#include "event_data.h"
|
||||
#include "item.h"
|
||||
#include "constants/items.h"
|
||||
#include "pokemon.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/battle_move_effects.h"
|
||||
|
||||
bool8 ShouldGetStatBadgeBoost(u16 flagId, u8 bank);
|
||||
|
||||
extern const struct BattleMove gBattleMoves[];
|
||||
extern const u8 gHoldEffectToType[][2];
|
||||
extern const u8 gStatStageRatios[][2];
|
||||
|
||||
#define APPLY_STAT_MOD(var, mon, stat, statIndex) \
|
||||
{ \
|
||||
(var) = (stat) * (gStatStageRatios)[(mon)->statStages[(statIndex)]][0]; \
|
||||
(var) /= (gStatStageRatios)[(mon)->statStages[(statIndex)]][1]; \
|
||||
}
|
||||
|
||||
s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 sideStatus, u16 powerOverride, u8 typeOverride, u8 bankAtk, u8 bankDef)
|
||||
{
|
||||
u32 i;
|
||||
s32 damage = 0;
|
||||
s32 damageHelper;
|
||||
u8 type;
|
||||
u16 attack, defense;
|
||||
u16 spAttack, spDefense;
|
||||
u8 defenderHoldEffect;
|
||||
u8 defenderHoldEffectParam;
|
||||
u8 attackerHoldEffect;
|
||||
u8 attackerHoldEffectParam;
|
||||
|
||||
if (!powerOverride)
|
||||
gBattleMovePower = gBattleMoves[move].power;
|
||||
else
|
||||
gBattleMovePower = powerOverride;
|
||||
|
||||
if (!typeOverride)
|
||||
type = gBattleMoves[move].type;
|
||||
else
|
||||
type = typeOverride & 0x3F;
|
||||
|
||||
attack = attacker->attack;
|
||||
defense = defender->defense;
|
||||
spAttack = attacker->spAttack;
|
||||
spDefense = defender->spDefense;
|
||||
|
||||
if (attacker->item == ITEM_ENIGMA_BERRY)
|
||||
{
|
||||
attackerHoldEffect = gEnigmaBerries[bankAtk].holdEffect;
|
||||
attackerHoldEffectParam = gEnigmaBerries[bankAtk].holdEffectParam;
|
||||
}
|
||||
else
|
||||
{
|
||||
attackerHoldEffect = ItemId_GetHoldEffect(attacker->item);
|
||||
attackerHoldEffectParam = ItemId_GetHoldEffectParam(attacker->item);
|
||||
}
|
||||
|
||||
if (defender->item == ITEM_ENIGMA_BERRY)
|
||||
{
|
||||
defenderHoldEffect = gEnigmaBerries[bankDef].holdEffect;
|
||||
defenderHoldEffectParam = gEnigmaBerries[bankDef].holdEffectParam;
|
||||
}
|
||||
else
|
||||
{
|
||||
defenderHoldEffect = ItemId_GetHoldEffect(defender->item);
|
||||
defenderHoldEffectParam = ItemId_GetHoldEffectParam(defender->item);
|
||||
}
|
||||
|
||||
if (attacker->ability == ABILITY_HUGE_POWER || attacker->ability == ABILITY_PURE_POWER)
|
||||
attack *= 2;
|
||||
|
||||
if (ShouldGetStatBadgeBoost(FLAG_BADGE01_GET, bankAtk))
|
||||
attack = (110 * attack) / 100;
|
||||
if (ShouldGetStatBadgeBoost(FLAG_BADGE05_GET, bankDef))
|
||||
defense = (110 * defense) / 100;
|
||||
if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, bankAtk))
|
||||
spAttack = (110 * spAttack) / 100;
|
||||
if (ShouldGetStatBadgeBoost(FLAG_BADGE07_GET, bankDef))
|
||||
spDefense = (110 * spDefense) / 100;
|
||||
|
||||
for (i = 0; i < 17; i++)
|
||||
{
|
||||
if (attackerHoldEffect == gHoldEffectToType[i][0]
|
||||
&& type == gHoldEffectToType[i][1])
|
||||
{
|
||||
if (type <= 8)
|
||||
attack = (attack * (attackerHoldEffectParam + 100)) / 100;
|
||||
else
|
||||
spAttack = (spAttack * (attackerHoldEffectParam + 100)) / 100;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (attackerHoldEffect == HOLD_EFFECT_CHOICE_BAND)
|
||||
attack = (150 * attack) / 100;
|
||||
if (attackerHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER)) && (attacker->species == SPECIES_LATIAS || attacker->species == SPECIES_LATIOS))
|
||||
spAttack = (150 * spAttack) / 100;
|
||||
if (defenderHoldEffect == HOLD_EFFECT_SOUL_DEW && !(gBattleTypeFlags & (BATTLE_TYPE_FRONTIER)) && (defender->species == SPECIES_LATIAS || defender->species == SPECIES_LATIOS))
|
||||
spDefense = (150 * spDefense) / 100;
|
||||
if (attackerHoldEffect == HOLD_EFFECT_DEEP_SEA_TOOTH && attacker->species == SPECIES_CLAMPERL)
|
||||
spAttack *= 2;
|
||||
if (defenderHoldEffect == HOLD_EFFECT_DEEP_SEA_SCALE && defender->species == SPECIES_CLAMPERL)
|
||||
spDefense *= 2;
|
||||
if (attackerHoldEffect == HOLD_EFFECT_LIGHT_BALL && attacker->species == SPECIES_PIKACHU)
|
||||
spAttack *= 2;
|
||||
if (defenderHoldEffect == HOLD_EFFECT_METAL_POWDER && defender->species == SPECIES_DITTO)
|
||||
defense *= 2;
|
||||
if (attackerHoldEffect == HOLD_EFFECT_THICK_CLUB && (attacker->species == SPECIES_CUBONE || attacker->species == SPECIES_MAROWAK))
|
||||
attack *= 2;
|
||||
if (defender->ability == ABILITY_THICK_FAT && (type == TYPE_FIRE || type == TYPE_ICE))
|
||||
spAttack /= 2;
|
||||
if (attacker->ability == ABILITY_HUSTLE)
|
||||
attack = (150 * attack) / 100;
|
||||
if (attacker->ability == ABILITY_PLUS && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_MINUS, 0, 0))
|
||||
spAttack = (150 * spAttack) / 100;
|
||||
if (attacker->ability == ABILITY_MINUS && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_PLUS, 0, 0))
|
||||
spAttack = (150 * spAttack) / 100;
|
||||
if (attacker->ability == ABILITY_GUTS && attacker->status1)
|
||||
attack = (150 * attack) / 100;
|
||||
if (defender->ability == ABILITY_MARVEL_SCALE && defender->status1)
|
||||
defense = (150 * defense) / 100;
|
||||
if (type == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, 0xFD, 0))
|
||||
gBattleMovePower /= 2;
|
||||
if (type == TYPE_FIRE && AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, 0, 0xFE, 0))
|
||||
gBattleMovePower /= 2;
|
||||
if (type == TYPE_GRASS && attacker->ability == ABILITY_OVERGROW && attacker->hp <= (attacker->maxHP / 3))
|
||||
gBattleMovePower = (150 * gBattleMovePower) / 100;
|
||||
if (type == TYPE_FIRE && attacker->ability == ABILITY_BLAZE && attacker->hp <= (attacker->maxHP / 3))
|
||||
gBattleMovePower = (150 * gBattleMovePower) / 100;
|
||||
if (type == TYPE_WATER && attacker->ability == ABILITY_TORRENT && attacker->hp <= (attacker->maxHP / 3))
|
||||
gBattleMovePower = (150 * gBattleMovePower) / 100;
|
||||
if (type == TYPE_BUG && attacker->ability == ABILITY_SWARM && attacker->hp <= (attacker->maxHP / 3))
|
||||
gBattleMovePower = (150 * gBattleMovePower) / 100;
|
||||
if (gBattleMoves[gCurrentMove].effect == EFFECT_EXPLOSION)
|
||||
defense /= 2;
|
||||
|
||||
if (IS_MOVE_PHYSICAL(type))
|
||||
{
|
||||
if (gCritMultiplier == 2)
|
||||
{
|
||||
if (attacker->statStages[STAT_ATK] > 6)
|
||||
APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK)
|
||||
else
|
||||
damage = attack;
|
||||
}
|
||||
else
|
||||
APPLY_STAT_MOD(damage, attacker, attack, STAT_ATK)
|
||||
|
||||
damage = damage * gBattleMovePower;
|
||||
damage *= (2 * attacker->level / 5 + 2);
|
||||
|
||||
if (gCritMultiplier == 2)
|
||||
{
|
||||
if (defender->statStages[STAT_DEF] < 6)
|
||||
APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF)
|
||||
else
|
||||
damageHelper = defense;
|
||||
}
|
||||
else
|
||||
APPLY_STAT_MOD(damageHelper, defender, defense, STAT_DEF)
|
||||
|
||||
damage = damage / damageHelper;
|
||||
damage /= 50;
|
||||
|
||||
if ((attacker->status1 & STATUS1_BURN) && attacker->ability != ABILITY_GUTS)
|
||||
damage /= 2;
|
||||
|
||||
if ((sideStatus & SIDE_STATUS_REFLECT) && gCritMultiplier == 1)
|
||||
{
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && CountAliveMonsInBattle(2) == 2)
|
||||
damage = 2 * (damage / 3);
|
||||
else
|
||||
damage /= 2;
|
||||
}
|
||||
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && CountAliveMonsInBattle(2) == 2)
|
||||
damage /= 2;
|
||||
|
||||
// moves always do at least 1 damage.
|
||||
if (damage == 0)
|
||||
damage = 1;
|
||||
}
|
||||
|
||||
if (type == TYPE_MYSTERY)
|
||||
damage = 0; // is ??? type. does 0 damage.
|
||||
|
||||
if (IS_MOVE_SPECIAL(type))
|
||||
{
|
||||
if (gCritMultiplier == 2)
|
||||
{
|
||||
if (attacker->statStages[STAT_SPATK] > 6)
|
||||
APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK)
|
||||
else
|
||||
damage = spAttack;
|
||||
}
|
||||
else
|
||||
APPLY_STAT_MOD(damage, attacker, spAttack, STAT_SPATK)
|
||||
|
||||
damage = damage * gBattleMovePower;
|
||||
damage *= (2 * attacker->level / 5 + 2);
|
||||
|
||||
if (gCritMultiplier == 2)
|
||||
{
|
||||
if (defender->statStages[STAT_SPDEF] < 6)
|
||||
APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
|
||||
else
|
||||
damageHelper = spDefense;
|
||||
}
|
||||
else
|
||||
APPLY_STAT_MOD(damageHelper, defender, spDefense, STAT_SPDEF)
|
||||
|
||||
damage = (damage / damageHelper);
|
||||
damage /= 50;
|
||||
|
||||
if ((sideStatus & SIDE_STATUS_LIGHTSCREEN) && gCritMultiplier == 1)
|
||||
{
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && CountAliveMonsInBattle(2) == 2)
|
||||
damage = 2 * (damage / 3);
|
||||
else
|
||||
damage /= 2;
|
||||
}
|
||||
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && gBattleMoves[move].target == 8 && CountAliveMonsInBattle(2) == 2)
|
||||
damage /= 2;
|
||||
|
||||
// are effects of weather negated with cloud nine or air lock
|
||||
if (!AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_CLOUD_NINE, 0, 0)
|
||||
&& !AbilityBattleEffects(ABILITYEFFECT_FIELD_SPORT, 0, ABILITY_AIR_LOCK, 0, 0))
|
||||
{
|
||||
if (gBattleWeather & WEATHER_RAIN_TEMPORARY)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_FIRE:
|
||||
damage /= 2;
|
||||
break;
|
||||
case TYPE_WATER:
|
||||
damage = (15 * damage) / 10;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// any weather except sun weakens solar beam
|
||||
if ((gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SANDSTORM_ANY | WEATHER_HAIL)) && gCurrentMove == MOVE_SOLAR_BEAM)
|
||||
damage /= 2;
|
||||
|
||||
// sunny
|
||||
if (gBattleWeather & WEATHER_SUN_ANY)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case TYPE_FIRE:
|
||||
damage = (15 * damage) / 10;
|
||||
break;
|
||||
case TYPE_WATER:
|
||||
damage /= 2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// flash fire triggered
|
||||
if ((gBattleResources->flags->flags[bankAtk] & UNKNOWN_FLAG_FLASH_FIRE) && type == TYPE_FIRE)
|
||||
damage = (15 * damage) / 10;
|
||||
}
|
||||
|
||||
return damage + 2;
|
||||
}
|
||||
@ -44,7 +44,6 @@ struct EggHatchData
|
||||
u8 textColor[3];
|
||||
};
|
||||
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern void (*gFieldCallback)(void);
|
||||
|
||||
extern const struct CompressedSpriteSheet gMonFrontPicTable[];
|
||||
@ -434,12 +433,12 @@ static u8 EggHatchCreateMonSprite(u8 a0, u8 switchID, u8 pokeID, u16* speciesLoc
|
||||
HandleLoadSpecialPokePic_DontHandleDeoxys(&gMonFrontPicTable[species],
|
||||
gMonSpritesGfxPtr->sprites[(a0 * 2) + 1],
|
||||
species, pid);
|
||||
LoadCompressedObjectPalette(sub_806E794(mon));
|
||||
LoadCompressedObjectPalette(GetMonSpritePalStruct(mon));
|
||||
*speciesLoc = species;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
sub_806A068(sub_806E794(mon)->tag, r5);
|
||||
sub_806A068(GetMonSpritePalStruct(mon)->tag, r5);
|
||||
spriteID = CreateSprite(&gUnknown_0202499C, 120, 75, 6);
|
||||
gSprites[spriteID].invisible = 1;
|
||||
gSprites[spriteID].callback = SpriteCallbackDummy;
|
||||
|
||||
@ -48,7 +48,6 @@ extern u16 gBattle_BG2_X;
|
||||
extern u16 gBattle_BG2_Y;
|
||||
extern u16 gBattle_BG3_X;
|
||||
extern u16 gBattle_BG3_Y;
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
extern bool8 gAffineAnimsDisabled;
|
||||
extern u16 gMoveToLearn;
|
||||
extern const u8 gSpeciesNames[][11];
|
||||
|
||||
@ -87,7 +87,6 @@ extern void sub_81ABA88(u8);
|
||||
extern void sub_80B7CC8(void);
|
||||
extern void flagmods_08054D70(void);
|
||||
extern u8* sub_806CF78(u16);
|
||||
extern bool8 ExecuteTableBasedItemEffect_(struct Pokemon*, u16, u8, u8);
|
||||
extern void sub_81B89F0(void);
|
||||
extern u8 GetItemEffectType(u16);
|
||||
extern struct MapConnection *sub_8088A8C(s16, s16);
|
||||
@ -984,7 +983,7 @@ void ItemUseInBattle_StatIncrease(u8 taskId)
|
||||
{
|
||||
u16 partyId = gBattlerPartyIndexes[gBattlerInMenuId];
|
||||
|
||||
if (ExecuteTableBasedItemEffect_(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE)
|
||||
if (ExecuteTableBasedItemEffect(&gPlayerParty[partyId], gSpecialVar_ItemId, partyId, 0) != FALSE)
|
||||
{
|
||||
if (!InBattlePyramid())
|
||||
DisplayItemMessage(taskId, 1, gText_WontHaveEffect, bag_menu_inits_lists_menu);
|
||||
|
||||
@ -50,7 +50,6 @@ struct PokeblockFeedStruct
|
||||
|
||||
extern u16 gSpecialVar_ItemId;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
|
||||
extern const u8 gBattleTerrainPalette_Frontier[];
|
||||
extern const u8 gBattleTerrainTiles_Building[];
|
||||
@ -837,7 +836,7 @@ static u8 CreateMonSprite(struct Pokemon* mon)
|
||||
gSprites[spriteId].callback = SpriteCallbackDummy;
|
||||
|
||||
sPokeblockFeed->noMonFlip = TRUE;
|
||||
if (!IsPokeSpriteNotFlipped(species))
|
||||
if (!IsMonSpriteNotFlipped(species))
|
||||
{
|
||||
gSprites[spriteId].affineAnims = sSpriteAffineAnimTable_MonNoFlip;
|
||||
gSprites[spriteId].oam.affineMode = 3;
|
||||
|
||||
6094
src/pokemon.c
Normal file
6094
src/pokemon.c
Normal file
File diff suppressed because it is too large
Load Diff
457
src/pokemon_1.c
457
src/pokemon_1.c
@ -1,457 +0,0 @@
|
||||
#include "global.h"
|
||||
#include "pokemon.h"
|
||||
#include "random.h"
|
||||
#include "main.h"
|
||||
#include "constants/species.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "constants/items.h"
|
||||
#include "constants/trainers.h"
|
||||
#include "constants/moves.h"
|
||||
#include "string_util.h"
|
||||
#include "text.h"
|
||||
|
||||
//Extracts the upper 16 bits of a 32-bit number
|
||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||
|
||||
//Extracts the lower 16 bits of a 32-bit number
|
||||
#define LOHALF(n) ((n) & 0xFFFF)
|
||||
|
||||
extern u8 sav1_map_get_name(void);
|
||||
|
||||
// EWRAM vars
|
||||
EWRAM_DATA u8 sLearningMoveTableID = 0;
|
||||
EWRAM_DATA u8 gPlayerPartyCount = 0;
|
||||
EWRAM_DATA u8 gEnemyPartyCount = 0;
|
||||
EWRAM_DATA struct Pokemon gPlayerParty[PARTY_SIZE] = {0};
|
||||
EWRAM_DATA struct Pokemon gEnemyParty[PARTY_SIZE] = {0};
|
||||
|
||||
// const rom data
|
||||
const u16 gSpeciesToHoennPokedexNum[] = {203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 156, 157, 112, 113, 227, 228, 229, 230, 231, 232, 233, 234, 153, 154, 138, 139, 63, 64, 88, 89, 90, 235, 236, 237, 238, 239, 240, 241, 242, 158, 159, 243, 244, 245, 246, 247, 248, 249, 39, 40, 41, 73, 74, 75, 250, 251, 252, 66, 67, 57, 58, 59, 253, 254, 255, 256, 82, 83, 257, 92, 93, 258, 259, 106, 107, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 84, 85, 270, 271, 272, 273, 274, 275, 276, 108, 109, 169, 170, 277, 278, 279, 184, 185, 50, 51, 143, 144, 280, 281, 282, 283, 284, 167, 285, 52, 53, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 65, 181, 182, 155, 324, 137, 325, 326, 162, 163, 327, 328, 329, 91, 55, 56, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 161, 164, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 168, 357, 358, 359, 103, 104, 360, 361, 180, 362, 363, 364, 365, 115, 366, 367, 186, 165, 166, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 42, 43, 44, 25, 26, 34, 35, 114, 27, 28, 32, 33, 99, 100, 61, 62, 145, 131, 132, 60, 105, 68, 127, 128, 183, 129, 130, 140, 141, 97, 98, 116, 117, 118, 48, 49, 78, 79, 101, 102, 173, 174, 175, 119, 120, 171, 172, 125, 126, 54, 110, 111, 80, 81, 69, 76, 77, 121, 122, 160, 148, 149, 94, 36, 37, 38, 95, 96, 150, 45, 46, 47, 176, 177, 178, 152, 146, 147, 124, 123, 179, 70, 71, 72, 142, 86, 87, 133, 134, 135, 136, 29, 30, 31, 187, 188, 189, 190, 191, 192, 193, 194, 195, 198, 199, 200, 196, 197, 201, 202, 151};
|
||||
const u16 gSpeciesToNationalPokedexNum[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 290, 291, 292, 276, 277, 285, 286, 327, 278, 279, 283, 284, 320, 321, 300, 301, 352, 343, 344, 299, 324, 302, 339, 340, 370, 341, 342, 349, 350, 318, 319, 328, 329, 330, 296, 297, 309, 310, 322, 323, 363, 364, 365, 331, 332, 361, 362, 337, 338, 298, 325, 326, 311, 312, 303, 307, 308, 333, 334, 360, 355, 356, 315, 287, 288, 289, 316, 317, 357, 293, 294, 295, 366, 367, 368, 359, 353, 354, 336, 335, 369, 304, 305, 306, 351, 313, 314, 345, 346, 347, 348, 280, 281, 282, 371, 372, 373, 374, 375, 376, 377, 378, 379, 382, 383, 384, 380, 381, 385, 386, 358};
|
||||
const u16 gHoennToNationalOrder[] = {252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 63, 64, 65, 290, 291, 292, 293, 294, 295, 296, 297, 118, 119, 129, 130, 298, 183, 184, 74, 75, 76, 299, 300, 301, 41, 42, 169, 72, 73, 302, 303, 304, 305, 306, 66, 67, 68, 307, 308, 309, 310, 311, 312, 81, 82, 100, 101, 313, 314, 43, 44, 45, 182, 84, 85, 315, 316, 317, 318, 319, 320, 321, 322, 323, 218, 219, 324, 88, 89, 109, 110, 325, 326, 27, 28, 327, 227, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 174, 39, 40, 349, 350, 351, 120, 121, 352, 353, 354, 355, 356, 357, 358, 359, 37, 38, 172, 25, 26, 54, 55, 360, 202, 177, 178, 203, 231, 232, 127, 214, 111, 112, 361, 362, 363, 364, 365, 366, 367, 368, 369, 222, 170, 171, 370, 116, 117, 230, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 29, 30, 31, 32, 33, 34, 35, 36, 46, 47, 48, 49, 50, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 69, 70, 71, 77, 78, 79, 80, 83, 86, 87, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 102, 103, 104, 105, 106, 107, 108, 113, 114, 115, 122, 123, 124, 125, 126, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 173, 175, 176, 179, 180, 181, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 215, 216, 217, 220, 221, 223, 224, 225, 226, 228, 229, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411};
|
||||
|
||||
const struct SpindaSpot gSpindaSpotGraphics[] =
|
||||
{
|
||||
{16, 7, INCBIN_U16("graphics/spinda_spots/spot_0.bin")},
|
||||
{40, 8, INCBIN_U16("graphics/spinda_spots/spot_1.bin")},
|
||||
{22, 25, INCBIN_U16("graphics/spinda_spots/spot_2.bin")},
|
||||
{34, 26, INCBIN_U16("graphics/spinda_spots/spot_3.bin")}
|
||||
};
|
||||
|
||||
#include "data/pokemon/item_effects.h"
|
||||
|
||||
const s8 gNatureStatTable[][5] =
|
||||
{
|
||||
// Atk Def Spd Sp.Atk Sp.Def
|
||||
{ 0, 0, 0, 0, 0}, // Hardy
|
||||
{ +1, -1, 0, 0, 0}, // Lonely
|
||||
{ +1, 0, -1, 0, 0}, // Brave
|
||||
{ +1, 0, 0, -1, 0}, // Adamant
|
||||
{ +1, 0, 0, 0, -1}, // Naughty
|
||||
{ -1, +1, 0, 0, 0}, // Bold
|
||||
{ 0, 0, 0, 0, 0}, // Docile
|
||||
{ 0, +1, -1, 0, 0}, // Relaxed
|
||||
{ 0, +1, 0, -1, 0}, // Impish
|
||||
{ 0, +1, 0, 0, -1}, // Lax
|
||||
{ -1, 0, +1, 0, 0}, // Timid
|
||||
{ 0, -1, +1, 0, 0}, // Hasty
|
||||
{ 0, 0, 0, 0, 0}, // Serious
|
||||
{ 0, 0, +1, -1, 0}, // Jolly
|
||||
{ 0, 0, +1, 0, -1}, // Naive
|
||||
{ -1, 0, 0, +1, 0}, // Modest
|
||||
{ 0, -1, 0, +1, 0}, // Mild
|
||||
{ 0, 0, -1, +1, 0}, // Quiet
|
||||
{ 0, 0, 0, 0, 0}, // Bashful
|
||||
{ 0, 0, 0, +1, -1}, // Rash
|
||||
{ -1, 0, 0, 0, +1}, // Calm
|
||||
{ 0, -1, 0, 0, +1}, // Gentle
|
||||
{ 0, 0, -1, 0, +1}, // Sassy
|
||||
{ 0, 0, 0, -1, +1}, // Careful
|
||||
{ 0, 0, 0, 0, 0}, // Quirky
|
||||
};
|
||||
|
||||
#include "data/pokemon/tmhm_learnsets.h"
|
||||
#include "data/pokemon/trainer_class_lookups.h"
|
||||
#include "data/pokemon/cry_ids.h"
|
||||
#include "data/pokemon/experience_tables.h"
|
||||
#include "data/pokemon/base_stats.h"
|
||||
#include "data/pokemon/level_up_learnsets.h"
|
||||
#include "data/pokemon/evolution.h"
|
||||
#include "data/pokemon/level_up_learnset_pointers.h"
|
||||
|
||||
// code
|
||||
void ZeroBoxMonData(struct BoxPokemon *boxMon)
|
||||
{
|
||||
u8 *raw = (u8 *)boxMon;
|
||||
u32 i;
|
||||
for (i = 0; i < sizeof(struct BoxPokemon); i++)
|
||||
raw[i] = 0;
|
||||
}
|
||||
|
||||
void ZeroMonData(struct Pokemon *mon)
|
||||
{
|
||||
u32 arg;
|
||||
ZeroBoxMonData(&mon->box);
|
||||
arg = 0;
|
||||
SetMonData(mon, MON_DATA_STATUS, &arg);
|
||||
SetMonData(mon, MON_DATA_LEVEL, &arg);
|
||||
SetMonData(mon, MON_DATA_HP, &arg);
|
||||
SetMonData(mon, MON_DATA_MAX_HP, &arg);
|
||||
SetMonData(mon, MON_DATA_ATK, &arg);
|
||||
SetMonData(mon, MON_DATA_DEF, &arg);
|
||||
SetMonData(mon, MON_DATA_SPEED, &arg);
|
||||
SetMonData(mon, MON_DATA_SPATK, &arg);
|
||||
SetMonData(mon, MON_DATA_SPDEF, &arg);
|
||||
arg = 255;
|
||||
SetMonData(mon, MON_DATA_MAIL, &arg);
|
||||
}
|
||||
|
||||
void ZeroPlayerPartyMons(void)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
ZeroMonData(&gPlayerParty[i]);
|
||||
}
|
||||
|
||||
void ZeroEnemyPartyMons(void)
|
||||
{
|
||||
s32 i;
|
||||
for (i = 0; i < PARTY_SIZE; i++)
|
||||
ZeroMonData(&gEnemyParty[i]);
|
||||
}
|
||||
|
||||
void CreateMon(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
|
||||
{
|
||||
u32 arg;
|
||||
ZeroMonData(mon);
|
||||
CreateBoxMon(&mon->box, species, level, fixedIV, hasFixedPersonality, fixedPersonality, otIdType, fixedOtId);
|
||||
SetMonData(mon, MON_DATA_LEVEL, &level);
|
||||
arg = 255;
|
||||
SetMonData(mon, MON_DATA_MAIL, &arg);
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void CreateBoxMon(struct BoxPokemon *boxMon, u16 species, u8 level, u8 fixedIV, u8 hasFixedPersonality, u32 fixedPersonality, u8 otIdType, u32 fixedOtId)
|
||||
{
|
||||
u8 speciesName[POKEMON_NAME_LENGTH + 1];
|
||||
u32 personality;
|
||||
u32 value;
|
||||
u16 checksum;
|
||||
|
||||
ZeroBoxMonData(boxMon);
|
||||
|
||||
if (hasFixedPersonality)
|
||||
personality = fixedPersonality;
|
||||
else
|
||||
personality = Random32();
|
||||
|
||||
SetBoxMonData(boxMon, MON_DATA_PERSONALITY, &personality);
|
||||
|
||||
//Determine original trainer ID
|
||||
if (otIdType == OT_ID_RANDOM_NO_SHINY) //Pokemon cannot be shiny
|
||||
{
|
||||
u32 shinyValue;
|
||||
do
|
||||
{
|
||||
value = Random32();
|
||||
shinyValue = HIHALF(value) ^ LOHALF(value) ^ HIHALF(personality) ^ LOHALF(personality);
|
||||
} while (shinyValue < 8);
|
||||
}
|
||||
else if (otIdType == OT_ID_PRESET) //Pokemon has a preset OT ID
|
||||
{
|
||||
value = fixedOtId;
|
||||
}
|
||||
else //Player is the OT
|
||||
{
|
||||
value = gSaveBlock2Ptr->playerTrainerId[0]
|
||||
| (gSaveBlock2Ptr->playerTrainerId[1] << 8)
|
||||
| (gSaveBlock2Ptr->playerTrainerId[2] << 16)
|
||||
| (gSaveBlock2Ptr->playerTrainerId[3] << 24);
|
||||
}
|
||||
|
||||
SetBoxMonData(boxMon, MON_DATA_OT_ID, &value);
|
||||
|
||||
checksum = CalculateBoxMonChecksum(boxMon);
|
||||
SetBoxMonData(boxMon, MON_DATA_CHECKSUM, &checksum);
|
||||
EncryptBoxMon(boxMon);
|
||||
GetSpeciesName(speciesName, species);
|
||||
SetBoxMonData(boxMon, MON_DATA_NICKNAME, speciesName);
|
||||
SetBoxMonData(boxMon, MON_DATA_LANGUAGE, &gGameLanguage);
|
||||
SetBoxMonData(boxMon, MON_DATA_OT_NAME, gSaveBlock2Ptr->playerName);
|
||||
SetBoxMonData(boxMon, MON_DATA_SPECIES, &species);
|
||||
SetBoxMonData(boxMon, MON_DATA_EXP, &gExperienceTables[gBaseStats[species].growthRate][level]);
|
||||
SetBoxMonData(boxMon, MON_DATA_FRIENDSHIP, &gBaseStats[species].friendship);
|
||||
value = sav1_map_get_name();
|
||||
SetBoxMonData(boxMon, MON_DATA_MET_LOCATION, &value);
|
||||
SetBoxMonData(boxMon, MON_DATA_MET_LEVEL, &level);
|
||||
SetBoxMonData(boxMon, MON_DATA_MET_GAME, &gGameVersion);
|
||||
value = ITEM_POKE_BALL;
|
||||
SetBoxMonData(boxMon, MON_DATA_POKEBALL, &value);
|
||||
SetBoxMonData(boxMon, MON_DATA_OT_GENDER, &gSaveBlock2Ptr->playerGender);
|
||||
|
||||
if (fixedIV < 32)
|
||||
{
|
||||
SetBoxMonData(boxMon, MON_DATA_HP_IV, &fixedIV);
|
||||
SetBoxMonData(boxMon, MON_DATA_ATK_IV, &fixedIV);
|
||||
SetBoxMonData(boxMon, MON_DATA_DEF_IV, &fixedIV);
|
||||
SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &fixedIV);
|
||||
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &fixedIV);
|
||||
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &fixedIV);
|
||||
}
|
||||
else
|
||||
{
|
||||
u32 iv;
|
||||
value = Random();
|
||||
|
||||
iv = value & 0x1F;
|
||||
SetBoxMonData(boxMon, MON_DATA_HP_IV, &iv);
|
||||
iv = (value & 0x3E0) >> 5;
|
||||
SetBoxMonData(boxMon, MON_DATA_ATK_IV, &iv);
|
||||
iv = (value & 0x7C00) >> 10;
|
||||
SetBoxMonData(boxMon, MON_DATA_DEF_IV, &iv);
|
||||
|
||||
value = Random();
|
||||
|
||||
iv = value & 0x1F;
|
||||
SetBoxMonData(boxMon, MON_DATA_SPEED_IV, &iv);
|
||||
iv = (value & 0x3E0) >> 5;
|
||||
SetBoxMonData(boxMon, MON_DATA_SPATK_IV, &iv);
|
||||
iv = (value & 0x7C00) >> 10;
|
||||
SetBoxMonData(boxMon, MON_DATA_SPDEF_IV, &iv);
|
||||
}
|
||||
|
||||
if (gBaseStats[species].ability2)
|
||||
{
|
||||
value = personality & 1;
|
||||
SetBoxMonData(boxMon, MON_DATA_ALT_ABILITY, &value);
|
||||
}
|
||||
|
||||
GiveBoxMonInitialMoveset(boxMon);
|
||||
}
|
||||
|
||||
void CreateMonWithNature(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 nature)
|
||||
{
|
||||
u32 personality;
|
||||
|
||||
do
|
||||
{
|
||||
personality = Random32();
|
||||
}
|
||||
while (nature != GetNatureFromPersonality(personality));
|
||||
|
||||
CreateMon(mon, species, level, fixedIV, 1, personality, OT_ID_PLAYER_ID, 0);
|
||||
}
|
||||
|
||||
void CreateMonWithGenderNatureLetter(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 gender, u8 nature, u8 unownLetter)
|
||||
{
|
||||
u32 personality;
|
||||
|
||||
if ((u8)(unownLetter - 1) < 28)
|
||||
{
|
||||
u16 actualLetter;
|
||||
|
||||
do
|
||||
{
|
||||
personality = Random32();
|
||||
actualLetter = ((((personality & 0x3000000) >> 18) | ((personality & 0x30000) >> 12) | ((personality & 0x300) >> 6) | (personality & 0x3)) % 28);
|
||||
}
|
||||
while (nature != GetNatureFromPersonality(personality)
|
||||
|| gender != GetGenderFromSpeciesAndPersonality(species, personality)
|
||||
|| actualLetter != unownLetter - 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
do
|
||||
{
|
||||
personality = Random32();
|
||||
}
|
||||
while (nature != GetNatureFromPersonality(personality)
|
||||
|| gender != GetGenderFromSpeciesAndPersonality(species, personality));
|
||||
}
|
||||
|
||||
CreateMon(mon, species, level, fixedIV, 1, personality, OT_ID_PLAYER_ID, 0);
|
||||
}
|
||||
|
||||
// This is only used to create Wally's Ralts.
|
||||
void CreateMaleMon(struct Pokemon *mon, u16 species, u8 level)
|
||||
{
|
||||
u32 personality;
|
||||
u32 otId;
|
||||
|
||||
do
|
||||
{
|
||||
otId = Random32();
|
||||
personality = Random32();
|
||||
}
|
||||
while (GetGenderFromSpeciesAndPersonality(species, personality) != MON_MALE);
|
||||
CreateMon(mon, species, level, 32, 1, personality, OT_ID_PRESET, otId);
|
||||
}
|
||||
|
||||
void CreateMonWithIVsPersonality(struct Pokemon *mon, u16 species, u8 level, u32 ivs, u32 personality)
|
||||
{
|
||||
CreateMon(mon, species, level, 0, 1, personality, OT_ID_PLAYER_ID, 0);
|
||||
SetMonData(mon, MON_DATA_IVS, &ivs);
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void CreateMonWithIVsOTID(struct Pokemon *mon, u16 species, u8 level, u8 *ivs, u32 otId)
|
||||
{
|
||||
CreateMon(mon, species, level, 0, 0, 0, OT_ID_PRESET, otId);
|
||||
SetMonData(mon, MON_DATA_HP_IV, &ivs[0]);
|
||||
SetMonData(mon, MON_DATA_ATK_IV, &ivs[1]);
|
||||
SetMonData(mon, MON_DATA_DEF_IV, &ivs[2]);
|
||||
SetMonData(mon, MON_DATA_SPEED_IV, &ivs[3]);
|
||||
SetMonData(mon, MON_DATA_SPATK_IV, &ivs[4]);
|
||||
SetMonData(mon, MON_DATA_SPDEF_IV, &ivs[5]);
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void CreateMonWithEVSpread(struct Pokemon *mon, u16 species, u8 level, u8 fixedIV, u8 evSpread)
|
||||
{
|
||||
s32 i;
|
||||
s32 statCount = 0;
|
||||
u16 evAmount;
|
||||
u8 temp;
|
||||
|
||||
CreateMon(mon, species, level, fixedIV, 0, 0, 0, 0);
|
||||
|
||||
temp = evSpread;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
if (temp & 1)
|
||||
statCount++;
|
||||
temp >>= 1;
|
||||
}
|
||||
|
||||
evAmount = 510 / statCount;
|
||||
|
||||
temp = 1;
|
||||
|
||||
for (i = 0; i < 6; i++)
|
||||
{
|
||||
if (evSpread & temp)
|
||||
SetMonData(mon, MON_DATA_HP_EV + i, &evAmount);
|
||||
temp <<= 1;
|
||||
}
|
||||
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
void sub_806819C(struct Pokemon *mon, struct UnknownPokemonStruct *src)
|
||||
{
|
||||
s32 i;
|
||||
u8 nickname[30];
|
||||
u8 language;
|
||||
u8 value;
|
||||
|
||||
CreateMon(mon, src->species, src->level, 0, 1, src->personality, 1, src->otId);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
SetMonMoveSlot(mon, src->moves[i], i);
|
||||
|
||||
SetMonData(mon, MON_DATA_PP_BONUSES, &src->ppBonuses);
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, &src->heldItem);
|
||||
SetMonData(mon, MON_DATA_FRIENDSHIP, &src->friendship);
|
||||
|
||||
StringCopy(nickname, src->nickname);
|
||||
|
||||
if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN)
|
||||
{
|
||||
language = LANGUAGE_JAPANESE;
|
||||
StripExtCtrlCodes(nickname);
|
||||
}
|
||||
else
|
||||
{
|
||||
language = GAME_LANGUAGE;
|
||||
}
|
||||
|
||||
SetMonData(mon, MON_DATA_LANGUAGE, &language);
|
||||
SetMonData(mon, MON_DATA_NICKNAME, nickname);
|
||||
SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
|
||||
SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV);
|
||||
SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV);
|
||||
SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV);
|
||||
SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV);
|
||||
SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV);
|
||||
value = src->altAbility;
|
||||
SetMonData(mon, MON_DATA_ALT_ABILITY, &value);
|
||||
value = src->hpIV;
|
||||
SetMonData(mon, MON_DATA_HP_IV, &value);
|
||||
value = src->attackIV;
|
||||
SetMonData(mon, MON_DATA_ATK_IV, &value);
|
||||
value = src->defenseIV;
|
||||
SetMonData(mon, MON_DATA_DEF_IV, &value);
|
||||
value = src->speedIV;
|
||||
SetMonData(mon, MON_DATA_SPEED_IV, &value);
|
||||
value = src->spAttackIV;
|
||||
SetMonData(mon, MON_DATA_SPATK_IV, &value);
|
||||
value = src->spDefenseIV;
|
||||
SetMonData(mon, MON_DATA_SPDEF_IV, &value);
|
||||
MonRestorePP(mon);
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
|
||||
u8 BattleFrontierGetOpponentLvl(u8);
|
||||
|
||||
void sub_8068338(struct Pokemon *mon, struct UnknownPokemonStruct *src, bool8 lvl50)
|
||||
{
|
||||
s32 i;
|
||||
u8 nickname[30];
|
||||
u8 level;
|
||||
u8 language;
|
||||
u8 value;
|
||||
|
||||
if (gSaveBlock2Ptr->frontierChosenLvl != 0)
|
||||
level = BattleFrontierGetOpponentLvl(gSaveBlock2Ptr->frontierChosenLvl);
|
||||
else if (lvl50)
|
||||
level = 50;
|
||||
else
|
||||
level = src->level;
|
||||
|
||||
CreateMon(mon, src->species, level, 0, 1, src->personality, 1, src->otId);
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
SetMonMoveSlot(mon, src->moves[i], i);
|
||||
|
||||
SetMonData(mon, MON_DATA_PP_BONUSES, &src->ppBonuses);
|
||||
SetMonData(mon, MON_DATA_HELD_ITEM, &src->heldItem);
|
||||
SetMonData(mon, MON_DATA_FRIENDSHIP, &src->friendship);
|
||||
|
||||
StringCopy(nickname, src->nickname);
|
||||
|
||||
if (nickname[0] == EXT_CTRL_CODE_BEGIN && nickname[1] == EXT_CTRL_CODE_JPN)
|
||||
{
|
||||
language = LANGUAGE_JAPANESE;
|
||||
StripExtCtrlCodes(nickname);
|
||||
}
|
||||
else
|
||||
{
|
||||
language = GAME_LANGUAGE;
|
||||
}
|
||||
|
||||
SetMonData(mon, MON_DATA_LANGUAGE, &language);
|
||||
SetMonData(mon, MON_DATA_NICKNAME, nickname);
|
||||
SetMonData(mon, MON_DATA_HP_EV, &src->hpEV);
|
||||
SetMonData(mon, MON_DATA_ATK_EV, &src->attackEV);
|
||||
SetMonData(mon, MON_DATA_DEF_EV, &src->defenseEV);
|
||||
SetMonData(mon, MON_DATA_SPEED_EV, &src->speedEV);
|
||||
SetMonData(mon, MON_DATA_SPATK_EV, &src->spAttackEV);
|
||||
SetMonData(mon, MON_DATA_SPDEF_EV, &src->spDefenseEV);
|
||||
value = src->altAbility;
|
||||
SetMonData(mon, MON_DATA_ALT_ABILITY, &value);
|
||||
value = src->hpIV;
|
||||
SetMonData(mon, MON_DATA_HP_IV, &value);
|
||||
value = src->attackIV;
|
||||
SetMonData(mon, MON_DATA_ATK_IV, &value);
|
||||
value = src->defenseIV;
|
||||
SetMonData(mon, MON_DATA_DEF_IV, &value);
|
||||
value = src->speedIV;
|
||||
SetMonData(mon, MON_DATA_SPEED_IV, &value);
|
||||
value = src->spAttackIV;
|
||||
SetMonData(mon, MON_DATA_SPATK_IV, &value);
|
||||
value = src->spDefenseIV;
|
||||
SetMonData(mon, MON_DATA_SPDEF_IV, &value);
|
||||
MonRestorePP(mon);
|
||||
CalculateMonStats(mon);
|
||||
}
|
||||
1365
src/pokemon_2.c
1365
src/pokemon_2.c
File diff suppressed because it is too large
Load Diff
1749
src/pokemon_3.c
1749
src/pokemon_3.c
File diff suppressed because it is too large
Load Diff
@ -21,6 +21,11 @@
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
#include "event_data.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "menu.h"
|
||||
#include "international_string_util.h"
|
||||
#include "scanline_effect.h"
|
||||
#include "menu_helpers.h"
|
||||
|
||||
struct ContestMove
|
||||
{
|
||||
@ -42,7 +47,6 @@ extern struct BgTemplate gUnknown_0861CBB4;
|
||||
extern u8 gUnknown_0203CF20;
|
||||
extern struct MusicPlayerInfo gMPlayInfo_BGM;
|
||||
extern s8 gUnknown_0861CC1C[];
|
||||
extern u8 gUnknown_08329D22[];
|
||||
extern u8 gUnknown_0203CF21;
|
||||
extern struct UnkStruct_61CC04 gUnknown_0861CC04;
|
||||
extern struct UnkStruct_61CC04 gUnknown_0861CC10;
|
||||
@ -65,20 +69,9 @@ extern u8 gUnknown_0861CE7B[];
|
||||
extern struct WindowTemplate gUnknown_0861CCEC;
|
||||
extern struct WindowTemplate gUnknown_0861CD14;
|
||||
|
||||
extern void sub_806F2AC(u8 a, u8 b);
|
||||
void sub_81C488C(u8 a);
|
||||
extern void do_scheduled_bg_tilemap_copies_to_vram(void);
|
||||
extern u8 sub_81221EC();
|
||||
extern u8 sub_81221AC();
|
||||
extern void SetVBlankHBlankCallbacksToNull();
|
||||
extern void ResetVramOamAndBgCntRegs();
|
||||
extern void clear_scheduled_bg_copies_to_vram();
|
||||
extern void ScanlineEffect_Stop();
|
||||
extern void ResetBgsAndClearDma3BusyFlags(u32 leftoverFireRedLeafGreenVariable);
|
||||
extern void ShowBg(u8 a);
|
||||
extern void SetGpuReg(u8 regOffset, u16 value);
|
||||
extern void schedule_bg_copy_tilemap_to_vram(u8 a);
|
||||
extern void SetBgTilemapBuffer(u8 bg, void *tilemap);
|
||||
extern u8 gUnknown_08D9862C;
|
||||
extern u8 gUnknown_08D98CC8;
|
||||
extern u8 gUnknown_08D987FC;
|
||||
@ -93,9 +86,6 @@ extern struct CompressedSpritePalette gUnknown_0861D100;
|
||||
extern struct CompressedSpritePalette gUnknown_0861D07C;
|
||||
extern u8 gMoveTypes_Pal;
|
||||
extern u8 gUnknown_08D97D0C;
|
||||
extern void reset_temp_tile_data_buffers();
|
||||
extern void decompress_and_copy_tile_data_to_vram(u8 a, void* tiledata, u8 b, u8 c, u8 d);
|
||||
extern u8 free_temp_tile_data_buffers_if_possible();
|
||||
extern void sub_81C1E20(u8 taskId);
|
||||
extern u8 *GetMonNickname(struct Pokemon *mon, u8 *dest);
|
||||
extern u16 SpeciesToPokedexNum(u16 species);
|
||||
@ -158,11 +148,7 @@ extern u8 gText_ThreeDashes[];
|
||||
extern u8 gUnknown_0861CE97[];
|
||||
extern struct BattleMove gBattleMoves[];
|
||||
|
||||
extern u32 ChangeBgX(u8 bg, u32 value, u8 op);
|
||||
extern void sub_8199C30(u8 a, u8 b, u8 c, u8 d, u8 e, u8 f);
|
||||
extern void AddTextPrinterParameterized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSpacing, u8 lineSpacing, const u8* colors, s8 speed, u8 *str);
|
||||
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 UnkTextUtil_Reset();
|
||||
|
||||
@ -100,7 +100,6 @@ EWRAM_DATA static u16 sUnknown_0203CCDC[6] = {0};
|
||||
EWRAM_DATA static u8 sUnknown_0203CCE8 = 0;
|
||||
|
||||
extern u32 sub_81A513C(void);
|
||||
extern void PlayMapChosenOrBattleBGM(bool8);
|
||||
|
||||
// this file's functions
|
||||
static u8 sub_8185278(u8 *arg0, u8 *arg1, u8 *arg2);
|
||||
|
||||
@ -22,7 +22,6 @@ extern u16 gBattle_BG2_X;
|
||||
extern u16 gBattle_BG2_Y;
|
||||
extern u16 gBattle_BG3_X;
|
||||
extern u16 gBattle_BG3_Y;
|
||||
extern struct SpriteTemplate gUnknown_0202499C;
|
||||
|
||||
extern const union AnimCmd * const * const gMonAnimationsSpriteAnimsPtrTable[];
|
||||
|
||||
|
||||
@ -31,7 +31,6 @@
|
||||
#include "mystery_event_script.h"
|
||||
#include "palette.h"
|
||||
#include "party_menu.h"
|
||||
#include "pokemon_3.h"
|
||||
#include "pokemon_storage_system.h"
|
||||
#include "random.h"
|
||||
#include "overworld.h"
|
||||
|
||||
@ -180,14 +180,7 @@ gBattle_WIN1V: @ 2022E2A
|
||||
.include "src/battle_message.o"
|
||||
.include "src/battle_main.o"
|
||||
|
||||
.include "src/pokemon_1.o"
|
||||
|
||||
gUnknown_0202499C: @ 202499C
|
||||
.space 0x18
|
||||
|
||||
gUnknown_020249B4: @ 20249B4
|
||||
.space 0x8
|
||||
|
||||
.include "src/pokemon.o"
|
||||
.include "src/random.o"
|
||||
.include "src/daycare.o"
|
||||
.include "src/load_save.o"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user