Merge pull request #207 from DizzyEggg/decompile_pokemon_123

Decompile and clean pokemon files
This commit is contained in:
Diegoisawesome 2018-02-11 22:13:15 -06:00 committed by GitHub
commit a4787bc06a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
63 changed files with 6451 additions and 9732 deletions

View File

@ -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

View File

@ -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]

View File

@ -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]

View File

@ -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

View File

@ -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}

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

@ -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]

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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[];

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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);

View File

@ -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[];

View File

@ -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
{

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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];

View File

@ -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;

View File

@ -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;

View File

@ -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[];

View File

@ -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;

View File

@ -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)

View File

@ -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;
}

View File

@ -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"

View File

@ -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"

View File

@ -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;
}

View File

@ -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;

View File

@ -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];

View File

@ -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);

View File

@ -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

File diff suppressed because it is too large Load Diff

View File

@ -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);
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -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();

View File

@ -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);

View File

@ -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[];

View File

@ -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"

View File

@ -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"