Merge branch 'master' of github.com:pret/pokeemerald into trade

This commit is contained in:
Diegoisawesome 2018-12-18 19:31:04 -06:00
commit 2592803460
59 changed files with 11858 additions and 23135 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1632
asm/battle_anim_effects_3.s Normal file

File diff suppressed because it is too large Load Diff

View File

@ -447,7 +447,7 @@ sub_8113A58: @ 8113A58
cmp r0, 0
bne _08113A8A
adds r0, r3, 0
bl move_anim_8074EE0
bl DestroySpriteAndMatrix
_08113A8A:
pop {r0}
bx r0
@ -581,7 +581,7 @@ sub_8113B90: @ 8113B90
cmp r0, 0
beq _08113BA4
adds r0, r4, 0
bl move_anim_8074EE0
bl DestroySpriteAndMatrix
_08113BA4:
pop {r4}
pop {r0}
@ -1684,7 +1684,7 @@ sub_81144BC: @ 81144BC
ldrb r1, [r1, 0x4]
adds r0, r4, 0
bl StartSpriteAnim
ldr r0, =sub_80A67D8
ldr r0, =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
@ -1895,7 +1895,7 @@ _0811465C:
bne _08114708
adds r0, r1, 0
movs r1, 0
bl sub_80A750C
bl SetGreyscaleOrOriginalPalette
b _08114714
.pool
_08114708:
@ -1984,7 +1984,7 @@ _08114776:
bne _081147B8
adds r0, r1, 0
movs r1, 0x1
bl sub_80A750C
bl SetGreyscaleOrOriginalPalette
_081147B8:
movs r0, 0x8
ldrsh r1, [r4, r0]
@ -2159,7 +2159,7 @@ _0811492E:
adds r0, 0x10
ldr r1, =gBattleAnimArgs
ldrb r1, [r1, 0x2]
bl sub_80A750C
bl SetGreyscaleOrOriginalPalette
_0811494A:
adds r0, r5, 0
bl DestroyAnimVisualTask

View File

@ -201,7 +201,7 @@ _0810DFC8:
strh r0, [r6, 0x36]
adds r0, r6, 0
bl InitAnimLinearTranslation
ldr r0, =sub_80A67BC
ldr r0, =RunStoredCallbackWhenAffineAnimEnds
str r0, [r6, 0x1C]
ldr r1, =sub_810E028
adds r0, r6, 0
@ -2056,7 +2056,7 @@ _0810EE42:
str r0, [sp]
adds r0, r5, 0
movs r1, 0
bl sub_80A73E0
bl TrySetSpriteRotScale
ldrh r0, [r5, 0x2E]
adds r0, 0x1
strh r0, [r5, 0x2E]
@ -2085,7 +2085,7 @@ _0810EE92:
ldrsh r3, [r5, r0]
str r1, [sp]
adds r0, r5, 0
bl sub_80A73E0
bl TrySetSpriteRotScale
ldrb r1, [r5, 0x3]
lsls r1, 26
lsrs r1, 27
@ -2409,7 +2409,7 @@ sub_810F084: @ 810F084
mov r0, r8
movs r1, 0x1
adds r2, r3, 0
bl sub_80A73E0
bl TrySetSpriteRotScale
ldr r0, =sub_810F140
mov r2, r8
str r0, [r2, 0x1C]
@ -2456,7 +2456,7 @@ sub_810F140: @ 810F140
bge _0810F180
_0810F17A:
adds r0, r2, 0
bl move_anim_8074EE0
bl DestroySpriteAndMatrix
_0810F180:
pop {r0}
bx r0

View File

@ -355,7 +355,7 @@ sub_810B8AC: @ 810B8AC
ldr r1, =DestroyAnimSprite
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r1, =sub_80A634C
ldr r1, =TranslateSpriteInGrowingCircleOverDuration
str r1, [r4, 0x1C]
adds r0, r4, 0
bl _call_via_r1
@ -466,7 +466,7 @@ _0810B9C6:
ldr r1, =sub_810B9E8
adds r0, r4, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67BC
ldr r0, =RunStoredCallbackWhenAffineAnimEnds
str r0, [r4, 0x1C]
pop {r4,r5}
pop {r0}
@ -501,7 +501,7 @@ sub_810B9E8: @ 810B9E8
cmp r0, 0x14
bne _0810BA1E
adds r0, r3, 0
bl move_anim_8074EE0
bl DestroySpriteAndMatrix
_0810BA1E:
pop {r0}
bx r0
@ -2816,7 +2816,7 @@ sub_810CD1C: @ 810CD1C
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAnim
ldr r0, =sub_80A67D8
ldr r0, =RunStoredCallbackWhenAnimEnds
str r0, [r4, 0x1C]
ldr r1, =DestroyAnimSprite
adds r0, r4, 0

View File

@ -535,7 +535,7 @@ _0810F618:
cmp r0, 0
beq _0810F62C
adds r0, r4, 0
bl move_anim_8074EE0
bl DestroySpriteAndMatrix
_0810F62C:
pop {r4-r6}
pop {r0}
@ -589,7 +589,7 @@ _0810F692:
ldr r1, =DestroyAnimSprite
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
ldr r0, =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4,r5}
pop {r0}
@ -656,7 +656,7 @@ _0810F722:
ldr r1, =sub_810F740
adds r0, r5, 0
bl StoreSpriteCallbackInData6
ldr r0, =sub_80A67D8
ldr r0, =RunStoredCallbackWhenAnimEnds
str r0, [r5, 0x1C]
pop {r4-r7}
pop {r0}
@ -760,7 +760,7 @@ sub_810F7D4: @ 810F7D4
strh r1, [r4, 0x8]
ldr r2, =gUnknown_0859675C
adds r0, r4, 0
bl sub_80A7CFC
bl PrepareAffineAnimInTaskData
ldr r0, =sub_810F810
str r0, [r4]
pop {r4}
@ -779,7 +779,7 @@ sub_810F810: @ 810F810
lsls r0, 3
ldr r1, =gTasks
adds r0, r1
bl sub_80A7D34
bl RunAffineAnimFromTaskData
lsls r0, 24
cmp r0, 0
bne _0810F830
@ -823,7 +823,7 @@ _0810F870:
ldrb r1, [r4, 0x8]
ldr r2, =gUnknown_0859677C
adds r0, r4, 0
bl sub_80A7CFC
bl PrepareAffineAnimInTaskData
ldr r0, =sub_810F898
str r0, [r4]
pop {r4}
@ -852,7 +852,7 @@ sub_810F898: @ 810F898
.pool
_0810F8BC:
adds r0, r4, 0
bl sub_80A7D34
bl RunAffineAnimFromTaskData
ldrh r0, [r4, 0xC]
adds r0, 0x1
strh r0, [r4, 0xC]
@ -907,7 +907,7 @@ _0810F900:
lsls r1, 1
strh r1, [r0, 0x20]
ldrb r0, [r4, 0x8]
bl sub_80A7344
bl ResetSpriteRotScale
adds r0, r5, 0
bl DestroyAnimVisualTask
_0810F936:
@ -1805,7 +1805,7 @@ sub_8110034: @ 8110034
_0811006C:
ldr r1, =gBattleAnimArgs
ldrb r0, [r1]
bl duplicate_obj_of_side_rel2move_in_transparent_mode
bl CloneBattlerSpriteWithBlend
lsls r0, 16
lsrs r1, r0, 16
mov r9, r1
@ -1860,7 +1860,7 @@ _08110094:
lsls r2, 1
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
bl SetSpriteRotScale
ldrb r3, [r4, 0x1]
lsrs r1, r3, 6
ldrb r2, [r4, 0x3]
@ -1942,14 +1942,14 @@ _08110166:
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x22]
lsls r1, 24
lsrs r1, 24
bl sub_80A7EC0
bl SetBattlerSpriteYOffsetFromOtherYScale
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0x30
@ -1980,14 +1980,14 @@ _081101B8:
ldrsh r2, [r4, r1]
adds r1, r2, 0
movs r3, 0
bl obj_id_set_rotscale
bl SetSpriteRotScale
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
ldrh r1, [r4, 0x22]
lsls r1, 24
lsrs r1, 24
bl sub_80A7EC0
bl SetBattlerSpriteYOffsetFromOtherYScale
movs r2, 0xA
ldrsh r0, [r4, r2]
cmp r0, 0

View File

@ -315,7 +315,7 @@ sub_8107408: @ 8107408
negs r1, r1
ands r1, r2
strb r1, [r3]
ldr r1, =sub_80A67D8
ldr r1, =RunStoredCallbackWhenAnimEnds
str r1, [r0, 0x1C]
ldr r1, =sub_8107430
bl StoreSpriteCallbackInData6
@ -331,7 +331,7 @@ sub_8107430: @ 8107430
strh r1, [r0, 0x2E]
ldr r1, =WaitAnimForDuration
str r1, [r0, 0x1C]
ldr r1, =move_anim_8074EE0
ldr r1, =DestroySpriteAndMatrix
bl StoreSpriteCallbackInData6
pop {r0}
bx r0
@ -711,7 +711,7 @@ sub_8107730: @ 8107730
ldr r6, =0x0000fff6
strh r6, [r4, 0x26]
ldrb r0, [r7]
bl GetBattlerSubpriority
bl GetBattlerSpriteSubpriority
lsls r0, 24
lsrs r5, r0, 24
bl IsContest
@ -1906,7 +1906,7 @@ sub_81080E4: @ 81080E4
lsls r0, 24
lsrs r0, 24
movs r1, 0
bl sub_80A7270
bl PrepareBattlerSpriteForRotScale
ldr r0, =sub_8108140
str r0, [r4]
pop {r4}
@ -2026,7 +2026,7 @@ _08108222:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_80A7E6C
bl SetBattlerSpriteYOffsetFromYScale
ldr r2, =gSprites
movs r0, 0x26
ldrsh r1, [r4, r0]
@ -2166,7 +2166,7 @@ _08108320:
ldrh r0, [r4, 0x26]
lsls r0, 24
lsrs r0, 24
bl sub_80A7344
bl ResetSpriteRotScale
movs r0, 0x26
ldrsh r1, [r4, r0]
lsls r0, r1, 4
@ -2286,7 +2286,7 @@ sub_8108408: @ 8108408
lsrs r6, r0, 24
movs r5, 0xAC
ldrb r0, [r4]
bl GetBattlerSubpriority
bl GetBattlerSpriteSubpriority
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
@ -3517,7 +3517,7 @@ _08108DE2:
strh r0, [r4, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSubpriority
bl GetBattlerSpriteSubpriority
subs r0, 0x1
adds r1, r4, 0
adds r1, 0x43
@ -3572,7 +3572,7 @@ _08108E58:
strh r0, [r4, 0x30]
ldr r0, =gBattleAnimAttacker
ldrb r0, [r0]
bl GetBattlerSubpriority
bl GetBattlerSpriteSubpriority
subs r0, 0x1
adds r1, r4, 0
adds r1, 0x43

View File

@ -1,510 +0,0 @@
#include "constants/battle_anim.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_085CE004:: @ 85CE004
.2byte 0x0000, 0x0004, 0x0010, 0x0004
.2byte 0x0020, 0x0004, 0x0030, 0x0004
.2byte 0x0040, 0x0004, 0xffff, 0x0000
.align 2
gUnknown_085CE01C:: @ 85CE01C
.4byte gUnknown_085CE004
.align 2
gUnknown_085CE020:: @ 85CE020
spr_template ANIM_TAG_SCRATCH, ANIM_TAG_SCRATCH, gUnknown_08524A34, gUnknown_085CE01C, NULL, gDummySpriteAffineAnimTable, sub_80A77C8
.align 2
gUnknown_085CE038:: @ 85CE038
spr_template ANIM_TAG_BLACK_SMOKE, ANIM_TAG_BLACK_SMOKE, gUnknown_08524934, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A0D4
.align 2
gUnknown_085CE050:: @ 85CE050
spr_template ANIM_TAG_BLACK_BALL, ANIM_TAG_BLACK_BALL, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80A78AC
.align 2
gUnknown_085CE068:: @ 85CE068
.2byte 0x0000, 0x0028, 0x0010, 0x0008
.2byte 0x0020, 0x0028, 0xffff, 0x0000
.align 2
gUnknown_085CE078:: @ 85CE078
.4byte gUnknown_085CE068
.align 2
gUnknown_085CE07C:: @ 85CE07C
spr_template ANIM_TAG_OPENING_EYE, ANIM_TAG_OPENING_EYE, gUnknown_08524914, gUnknown_085CE078, NULL, gDummySpriteAffineAnimTable, sub_80A77C8
.align 2
gUnknown_085CE094::
spr_template ANIM_TAG_ROUND_WHITE_HALO, ANIM_TAG_ROUND_WHITE_HALO, gUnknown_08524A3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A1B0
.align 2
gUnknown_085CE0AC::
spr_template ANIM_TAG_TEAL_ALERT, ANIM_TAG_TEAL_ALERT, gUnknown_08524974, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A254
.align 2
gUnknown_085CE0C4:: @ 85CE0C4
.2byte 0x0180, 0x0180, 0x0000, 0x0000
.2byte 0xffe0, 0x0018, 0x0500, 0x0000
.2byte 0x0018, 0xffe0, 0x0500, 0x0000
.2byte 0x7ffe, 0x0001, 0x0000, 0x0000
.align 2
gUnknown_085CE0E4:: @ 85CE0E4
.2byte 0x0030, 0x0030, 0x0000, 0x0000
.2byte 0x0020, 0x0020, 0x0600, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE0FC:: @ 85CE0FC
.4byte gUnknown_085CE0C4
.4byte gUnknown_085CE0E4
.align 2
gUnknown_085CE104:: @ 85CE104
spr_template ANIM_TAG_EYE, ANIM_TAG_EYE, gUnknown_08524AFC, gDummySpriteAnimTable, NULL, gUnknown_085CE0FC, sub_815A2F0
.align 2
gUnknown_085CE11C:: @ 85CE11C
spr_template ANIM_TAG_SPIKES, ANIM_TAG_SPIKES, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815A6C4
.align 2
gUnknown_085CE134:: @ 85CE134
.2byte 0x0000, 0x0003, 0x0010, 0x0003
.2byte 0x0020, 0x0003, 0x0030, 0x0003
.2byte 0x0040, 0x0003, 0xffff, 0x0000
.align 2
gUnknown_085CE14C:: @ 85CE14C
.4byte gUnknown_085CE134
.align 2
gUnknown_085CE150:: @ 85CE150
spr_template ANIM_TAG_LEER, ANIM_TAG_LEER, gUnknown_08524914, gUnknown_085CE14C, NULL, gDummySpriteAffineAnimTable, sub_815A7B0
.align 2
gUnknown_085CE168:: @ 85CE168
.2byte 0x0000, 0x0003, 0xffff, 0x0000
.align 2
gUnknown_085CE170:: @ 85CE170
.4byte gUnknown_085CE168
.align 2
gUnknown_085CE174:: @ 85CE174
.2byte 0xfff9, 0xfff9, 0x10fd, 0x0000
.2byte 0x0007, 0x0007, 0x1003, 0x0000
.2byte 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE18C:: @ 85CE18C
.4byte gUnknown_085CE174
.align 2
gUnknown_085CE190:: @ 85CE190
spr_template ANIM_TAG_LETTER_Z, ANIM_TAG_LETTER_Z, gUnknown_08524974, gUnknown_085CE170, NULL, gUnknown_085CE18C, sub_815A7EC
.align 2
gUnknown_085CE1A8:: @ 85CE1A8
.2byte 0x0000, 0x0008, 0x0010, 0x0010, 0x0020, 0x0004, 0x0030, 0x0004, 0xffff, 0x0000
.align 2
gUnknown_085CE1BC:: @ 85CE1BC
.4byte gUnknown_085CE1A8
.align 2
gUnknown_085CE1C0:: @ 85CE1C0
.2byte 0x0200, 0x0200, 0x0000, 0x0000
.2byte 0xffe0, 0xffe0, 0x0800, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE1D8:: @ 85CE1D8
.4byte gUnknown_085CE1C0
.align 2
gUnknown_085CE1DC:: @ 85CE1DC
spr_template ANIM_TAG_FANG_ATTACK, ANIM_TAG_FANG_ATTACK, gUnknown_085249D4, gUnknown_085CE1BC, NULL, gUnknown_085CE1D8, sub_815A8AC
.align 2
gUnknown_085CE1F4:: @ 85CE1F4
.2byte 0x0000, 0x0180, 0x0000, 0x0000
.2byte 0x0010, 0x0000, 0x1400, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE20C:: @ 85CE20C
.2byte 0x0140, 0x0180, 0x0000, 0x0000
.2byte 0xfff0, 0x0000, 0x1300, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE224:: @ 85CE224
.4byte gUnknown_085CE1F4
.4byte gUnknown_085CE20C
.align 2
gUnknown_085CE22C:: @ 85CE22C
spr_template ANIM_TAG_SPOTLIGHT, ANIM_TAG_SPOTLIGHT, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815A934
.align 2
gUnknown_085CE244::
spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815AAA4
.align 2
gUnknown_085CE25C::
spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815ABD0
.align 2
gUnknown_085CE274:: @ 85CE274
.2byte 0x0000, 0x0002, 0x0008, 0x0002
.2byte 0x0010, 0x0002, 0xfffe, 0x0000
.align 2
gUnknown_085CE284:: @ 85CE284
.4byte gUnknown_085CE274
.align 2
gUnknown_085CE288:: @ 85CE288
spr_template ANIM_TAG_RAPID_SPIN, ANIM_TAG_RAPID_SPIN, gUnknown_08524934, gUnknown_085CE284, NULL, gDummySpriteAffineAnimTable, sub_815ACD0
.align 2
gUnknown_085CE2A0:: @ 85CE2A0
.2byte 0xfff4, 0x0008, 0x0400, 0x0000, 0x0014, 0xffec, 0x0400, 0x0000, 0xfff8, 0x000c, 0x0400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE2C0:: @ 85CE2C0
.2byte 0x0000, 0x0008, 0xffff, 0x0000
.align 2
gUnknown_085CE2C8:: @ 85CE2C8
.4byte gUnknown_085CE2C0
.align 2
gUnknown_085CE2CC:: @ 85CE2CC
.2byte 0x0000, 0x0000, 0x2805, 0x0000, 0x0000, 0x0000, 0x0a0a, 0x0000, 0x0000, 0x0000, 0x0a0f, 0x0000, 0x0000, 0x0000, 0x2814, 0x0000
.2byte 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE2F4:: @ 85CE2F4
.4byte gUnknown_085CE2CC
.align 2
gUnknown_085CE2F8:: @ 85CE2F8
spr_template ANIM_TAG_TRI_FORCE_TRIANGLE, ANIM_TAG_TRI_FORCE_TRIANGLE, gUnknown_085249DC, gUnknown_085CE2C8, NULL, gUnknown_085CE2F4, sub_815B27C
.align 2
gUnknown_085CE310:: @ 85CE310
.2byte 0x0000, 0x0003, 0x0010, 0x0003, 0x0020, 0x0003, 0x0030, 0x0003, 0x0020, 0x0043, 0x0010, 0x0043, 0x0000, 0x0043, 0xfffd, 0x0001
.2byte 0xffff, 0x0000
.align 2
gUnknown_085CE334:: @ 85CE334
.4byte gUnknown_085CE310
.align 2
gUnknown_085CE338:: @ 85CE338
spr_template ANIM_TAG_ECLIPSING_ORB, ANIM_TAG_ECLIPSING_ORB, gUnknown_08524914, gUnknown_085CE334, NULL, gDummySpriteAffineAnimTable, sub_80A77C8
.align 2
gUnknown_085CE350:: @ 85CE350
.2byte 0xfff4, 0x0014, 0x0800, 0x0000, 0x000c, 0xffec, 0x0800, 0x0000, 0x7ffd, 0x0002, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE370:: @ 85CE370
spr_template ANIM_TAG_POKEBALL, ANIM_TAG_POKEBALL, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B394
.align 2
gUnknown_085CE388:: @ 85CE388
spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B49C
.align 2
gUnknown_085CE3A0:: @ 85CE3A0
spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B570
.align 2
gUnknown_085CE3B8:: @ 85CE3B8
.2byte 0x0008, 0xfff8, 0x0c00, 0x0000, 0xfff0, 0x0010, 0x0c00, 0x0000, 0x0008, 0xfff8, 0x0c00, 0x0000, 0x7ffd, 0x0001, 0x0000, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE3E0:: @ 85CE3E0
.2byte 0x0000, 0x0006, 0x1400, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000, 0x0000, 0xffee, 0x0600, 0x0000, 0xffee, 0xffee, 0x0300, 0x0000
.2byte 0x0000, 0x0000, 0x0f00, 0x0000, 0x0004, 0x0004, 0x0d00, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE418:: @ 85CE418
spr_template ANIM_TAG_BLUE_ORB, ANIM_TAG_BLUE_ORB, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815B70C
.align 2
gUnknown_085CE430:: @ 85CE430
.2byte 0x0000, 0x0006, 0x1400, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000, 0x0007, 0xffe2, 0x0600, 0x0000, 0x0000, 0x0000, 0x1400, 0x0000
.2byte 0xfffe, 0x0003, 0x1400, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE460:: @ 85CE460
.byte 0xe8, 0x18, 0xfc, 0x00
.align 2
gUnknown_085CE464:: @ 85CE464
.2byte 0x0000, 0x0006, 0x0004, 0x0006, 0xfffe, 0x0000
.align 2
gUnknown_085CE470:: @ 85CE470
.2byte 0x0008, 0x0006, 0xffff, 0x0000
.align 2
gUnknown_085CE478:: @ 85CE478
.2byte 0x000c, 0x0006, 0xffff, 0x0000
.align 2
gUnknown_085CE480:: @ 85CE480
.4byte gUnknown_085CE464
.4byte gUnknown_085CE470
.4byte gUnknown_085CE478
.align 2
gUnknown_085CE48C:: @ 85CE48C
spr_template ANIM_TAG_GREEN_STAR, ANIM_TAG_GREEN_STAR, gUnknown_0852490C, gUnknown_085CE480, NULL, gDummySpriteAffineAnimTable, sub_815BE04
.align 2
gUnknown_085CE4A4:: @ 85CE4A4
.byte 0x78, 0x50, 0x28, 0x00
.align 2
gUnknown_085CE4A8:: @ 85CE4A8
.2byte 0x0000, 0x0000, 0x0032, 0x0000
.align 2
gUnknown_085CE4B0:: @ 85CE4B0
.2byte 0x0000, 0xfff1, 0x0700, 0x0000, 0x0000, 0x000f, 0x0700, 0x0000, 0x7ffd, 0x0002, 0x0000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE4D0:: @ 85CE4D0
spr_template ANIM_TAG_ANGER, ANIM_TAG_ANGER, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815C400
.align 2
gUnknown_085CE4E8:: @ 85CE4E8
.2byte 0x0000, 0x0008, 0x0001, 0x0008, 0x0002, 0x0008, 0x0003, 0x0008, 0x0003, 0x0088, 0x0002, 0x0088, 0x0000, 0x0088, 0x0001, 0x0088
.2byte 0xfffe, 0x0000
.align 2
gUnknown_085CE50C:: @ 85CE50C
.2byte 0x0000, 0x0048, 0x0001, 0x0048, 0x0002, 0x0048, 0x0003, 0x0048, 0x0003, 0x00c8, 0x0002, 0x00c8, 0x0000, 0x00c8, 0x0001, 0x00c8
.2byte 0xfffe, 0x0000
.align 2
gUnknown_085CE530:: @ 85CE530
.2byte 0x0000, 0x0008, 0xffff, 0x0000
.align 2
gUnknown_085CE538:: @ 85CE538
.4byte gUnknown_085CE4E8
.4byte gUnknown_085CE50C
.4byte gUnknown_085CE530
.align 2
gUnknown_085CE544:: @ 85CE544
spr_template ANIM_TAG_PINK_PETAL, ANIM_TAG_PINK_PETAL, gUnknown_08524904, gUnknown_085CE538, NULL, gDummySpriteAffineAnimTable, sub_815C6B0
.align 2
gUnknown_085CE55C:: @ 85CE55C
.byte 0x0c, 0x18, 0x10, 0x16, 0x13, 0x13, 0x15, 0x10, 0x17, 0x0c, 0x16, 0x07, 0x13, 0x04, 0x10, 0x01, 0x0b, 0x00, 0x06, 0x01, 0x04, 0x04, 0x01, 0x07, 0x00, 0x0c, 0x02, 0x11, 0x04, 0x13, 0x08, 0x16
.align 2
gUnknown_085CE57C:: @ 85CE57C
.2byte 0x0000, 0x0005, 0x0004, 0x0009, 0x0008, 0x0005, 0xffff, 0x0000
.align 2
gUnknown_085CE58C:: @ 85CE58C
.4byte gUnknown_085CE57C
.align 2
gUnknown_085CE590:: @ 85CE590
spr_template ANIM_TAG_PAIN_SPLIT, ANIM_TAG_PAIN_SPLIT, gUnknown_0852490C, gUnknown_085CE58C, NULL, gDummySpriteAffineAnimTable, sub_815C95C
gUnknown_085CE5A8::
spr_template ANIM_TAG_CONFETTI, ANIM_TAG_CONFETTI, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815CB88
gUnknown_085CE5C0::
spr_template ANIM_TAG_SPOTLIGHT, ANIM_TAG_SPOTLIGHT, gUnknown_085249DC, gDummySpriteAnimTable, NULL, gUnknown_085CE224, sub_815CC94
gBattleAnimSpriteTemplate_85CE5D8::
spr_template ANIM_TAG_BLUE_ORB, ANIM_TAG_BLUE_ORB, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815CDB4
.align 2
gUnknown_085CE5F0:: @ 85CE5F0
.2byte 0x0010, 0x0000, 0x0400, 0x0000, 0x0000, 0xfffd, 0x1000, 0x0000, 0x0004, 0x0000, 0x0400, 0x0000, 0x0000, 0x0000, 0x1800, 0x0000
.2byte 0xfffb, 0x0003, 0x1000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE620:: @ 85CE620
.2byte 0x0080, 0x0080, 0x0000, 0x0000, 0xfff8, 0xfff8, 0x0800, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE640:: @ 85CE640
.2byte 0x00c0, 0x00c0, 0x0000, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0800, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE660:: @ 85CE660
.2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0008, 0x0008, 0x0800, 0x0000, 0xfff8, 0xfff8, 0x0800, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE680:: @ 85CE680
.4byte gUnknown_085CE620
.4byte gUnknown_085CE640
.4byte gUnknown_085CE660
.align 2
gUnknown_085CE68C:: @ 85CE68C
spr_template ANIM_TAG_PINK_CLOUD, ANIM_TAG_PINK_CLOUD, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085CE680, sub_815D7B4
.align 2
gUnknown_085CE6A4:: @ 85CE6A4
.2byte 0x0080, 0x0080, 0x0000, 0x0000, 0xfffc, 0xfffa, 0x1000, 0x0000, 0x0004, 0x0006, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE6C4:: @ 85CE6C4
.2byte 0x00c0, 0x00c0, 0x0000, 0x0000, 0x0004, 0x0006, 0x1000, 0x0000, 0xfffc, 0xfffa, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE6E4:: @ 85CE6E4
.2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0004, 0x0006, 0x1000, 0x0000, 0xfffc, 0xfffa, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE704:: @ 85CE704
.2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0008, 0x000a, 0x1e00, 0x0000, 0xfff8, 0xfff6, 0x1000, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE724:: @ 85CE724
.4byte gUnknown_085CE6A4
.4byte gUnknown_085CE6C4
.4byte gUnknown_085CE6E4
.4byte gUnknown_085CE704
.align 2
gUnknown_085CE734:: @ 85CE734
spr_template ANIM_TAG_PINK_CLOUD, ANIM_TAG_PINK_CLOUD, gUnknown_085249D4, gDummySpriteAnimTable, NULL, gUnknown_085CE724, sub_815D870
.align 2
gUnknown_085CE74C:: @ 85CE74C
.2byte 0xfff0, 0x0010, 0x0600, 0x0000, 0x0010, 0xfff0, 0x0c00, 0x0000, 0xfff0, 0x0010, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE76C:: @ 85CE76C
spr_template ANIM_TAG_SWEAT_DROP, ANIM_TAG_SWEAT_DROP, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815DEBC
.align 2
gUnknown_085CE784:: @ 85CE784
.byte 0x3c, 0x07, 0xbc, 0x16, 0x5b, 0x22, 0xdb, 0x2d, 0x5a, 0x3d, 0xfa, 0x48, 0x79, 0x54, 0x19, 0x64, 0x19, 0x5c, 0x19, 0x50, 0x19, 0x40, 0x19, 0x34, 0x1a, 0x28, 0x1a, 0x18, 0x1a, 0x0c, 0x1b, 0x00
.byte 0x3b, 0x00, 0xbb, 0x00, 0x3b, 0x01, 0x9b, 0x01, 0x1c, 0x02, 0x7c, 0x02, 0xfc, 0x02, 0x7d, 0x03
.align 2
gUnknown_085CE7B4:: @ 85CE7B4
.2byte 0x0000, 0x0003, 0x0010, 0x0003, 0xfffe, 0x0000
.align 2
gUnknown_085CE7C0:: @ 85CE7C0
.2byte 0x0020, 0x0003, 0x0030, 0x0003, 0xfffe, 0x0000
.align 2
gUnknown_085CE7CC:: @ 85CE7CC
.4byte gUnknown_085CE7B4
.4byte gUnknown_085CE7C0
.align 2
gUnknown_085CE7D4:: @ 85CE7D4
spr_template ANIM_TAG_NOISE_LINE, ANIM_TAG_NOISE_LINE, gUnknown_08524914, gUnknown_085CE7CC, NULL, gDummySpriteAffineAnimTable, sub_815E01C
.align 2
gUnknown_085CE7EC:: @ 85CE7EC
spr_template ANIM_TAG_SMALL_RED_EYE, ANIM_TAG_SMALL_RED_EYE, gUnknown_08524904, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E404
gUnknown_085CE804::
spr_template ANIM_TAG_PAW_PRINT, ANIM_TAG_PAW_PRINT, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E444
.align 2
gUnknown_085CE81C:: @ 85CE81C
.2byte 0x0000, 0x0000, 0x18fc, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE82C:: @ 85CE82C
.2byte 0x0100, 0x0100, 0x00c0, 0x0000, 0x0000, 0x0000, 0x1804, 0x0000
.2byte 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE844:: @ 85CE844
.4byte gUnknown_085CE81C
.4byte gUnknown_085CE82C
.align 2
gUnknown_085CE84C:: @ 85CE84C
spr_template ANIM_TAG_RED_BALL, ANIM_TAG_RED_BALL, gUnknown_08524974, gDummySpriteAnimTable, NULL, gUnknown_085CE844, SpriteCallbackDummy
.align 2
gUnknown_085CE864::
spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E6D8
.align 2
gUnknown_085CE87C:: @ 85CE87C
.2byte 0x0000, 0xfff0, 0x0600, 0x0000, 0x0000, 0x0010, 0x0600, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE894:: @ 85CE894
spr_template ANIM_TAG_SMELLINGSALT_EFFECT, ANIM_TAG_SMELLINGSALT_EFFECT, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815E954
gUnknown_085CE8AC::
spr_template ANIM_TAG_TAG_HAND, ANIM_TAG_TAG_HAND, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815EA14
gUnknown_085CE8C4::
spr_template ANIM_TAG_MAGNIFYING_GLASS, ANIM_TAG_MAGNIFYING_GLASS, gUnknown_08524A34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815EE84
gUnknown_085CE8DC::
spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815F18C
gUnknown_085CE8F4::
spr_template ANIM_TAG_GOLD_STARS, ANIM_TAG_GOLD_STARS, gUnknown_0852490C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81061C4
gUnknown_085CE90C::
spr_template ANIM_TAG_X_SIGN, ANIM_TAG_X_SIGN, gUnknown_0852491C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815F48C
gUnknown_085CE924::
spr_template ANIM_TAG_ITEM_BAG, ANIM_TAG_ITEM_BAG, gUnknown_08524914, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_815FE80
.align 2
gUnknown_085CE93C:: @ 85CE93C
.2byte 0x0000, 0x0004, 0x0040, 0x0004, 0xffff, 0x0000
.align 2
gUnknown_085CE948:: @ 85CE948
.4byte gUnknown_085CE93C
.align 2
gUnknown_085CE94C:: @ 85CE94C
.2byte 0x0100, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x08fc, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE964:: @ 85CE964
.2byte 0xff00, 0x0100, 0x0000, 0x0000, 0x0000, 0x0000, 0x0804, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE97C:: @ 85CE97C
.4byte gUnknown_085CE94C
.4byte gUnknown_085CE964
.align 2
gUnknown_085CE984:: @ 85CE984
spr_template ANIM_TAG_SLAM_HIT_2, ANIM_TAG_SLAM_HIT_2, gUnknown_0852497C, gUnknown_085CE948, NULL, gUnknown_085CE97C, sub_8160338
.align 2
gUnknown_085CE99C:: @ 85CE99C
.2byte 0x0000, 0x0000, 0x40fc, 0x0000, 0x7ffe, 0x0000, 0x0000, 0x0000
.align 2
gUnknown_085CE9AC:: @ 85CE9AC
.4byte gUnknown_085CE99C
.align 2
gUnknown_085CE9B0:: @ 85CE9B0
spr_template ANIM_TAG_RECYCLE, ANIM_TAG_RECYCLE, gUnknown_08524A9C, gDummySpriteAnimTable, NULL, gUnknown_085CE9AC, sub_81603A8
.align 2
gUnknown_085CE9C8:: @ 85CE9C8
.2byte 0x0000, 0x0010, 0x0400, 0x0000, 0xfffe, 0x0000, 0x0800, 0x0000, 0x0000, 0x0004, 0x0400, 0x0000, 0x0000, 0x0000, 0x1800, 0x0000
.2byte 0x0001, 0xfffb, 0x1000, 0x0000, 0x7fff, 0x0000, 0x0000, 0x0000

View File

@ -1326,7 +1326,7 @@ Move_SWORDS_DANCE:
setalpha 12, 8
playsewithpan SE_W014, SOUND_PAN_ATTACKER
createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 16, 6, 1, 4
createsprite gBattleAnimSpriteTemplate_8593380, ANIM_ATTACKER, 2, 0, 0
createsprite gSwordsDanceBladeSpriteTemplate, ANIM_ATTACKER, 2, 0, 0
delay 22
createvisualtask sub_8115D94, 2, ANIM_TAG_SWORD, 2, 2, RGB(18, 31, 31), 16, 0, 0
waitforvisualfinish
@ -1712,10 +1712,10 @@ Frustration_Strongest:
waitforvisualfinish
delay 20
playsewithpan SE_W207B, SOUND_PAN_ATTACKER
createsprite gUnknown_0859368C, ANIM_ATTACKER, 2, 0, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28
waitforvisualfinish
playsewithpan SE_W207B, SOUND_PAN_ATTACKER
createsprite gUnknown_0859368C, ANIM_ATTACKER, 2, 0, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28
waitforvisualfinish
delay 10
createvisualtask AnimTask_SwayMon, 5, 0, 16, 6144, 8, ANIM_ATTACKER
@ -1748,7 +1748,7 @@ Frustration_Strong:
waitforvisualfinish
delay 20
playsewithpan SE_W207B, SOUND_PAN_ATTACKER
createsprite gUnknown_0859368C, ANIM_ATTACKER, 2, 0, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28
waitforvisualfinish
delay 5
createvisualtask sub_815C3A8, 5
@ -1769,7 +1769,7 @@ Frustration_Strong:
goto Frustration_Continue
Frustration_Medium:
playsewithpan SE_W207B, SOUND_PAN_ATTACKER
createsprite gUnknown_0859368C, ANIM_ATTACKER, 2, 0, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28
waitforvisualfinish
delay 5
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 4
@ -1843,8 +1843,8 @@ Move_VICE_GRIP:
monbg ANIM_DEF_PARTNER
setalpha 12, 8
playsewithpan SE_W011, SOUND_PAN_TARGET
createsprite gUnknown_08593590, ANIM_ATTACKER, 2, 0
createsprite gUnknown_08593590, ANIM_ATTACKER, 2, 1
createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 0
createsprite gViceGripSpriteTemplate, ANIM_ATTACKER, 2, 1
delay 9
createsprite gBasicHitSplatSpriteTemplate, ANIM_ATTACKER, 1, 0, 0, 1, 2
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 5, 1
@ -1861,8 +1861,8 @@ Move_GUILLOTINE:
fadetobgfromset BG_GUILLOTINE_OPPONENT, BG_GUILLOTINE_PLAYER, BG_GUILLOTINE_CONTESTS
waitbgfadein
playsewithpan SE_W011, SOUND_PAN_TARGET
createsprite gUnknown_085935D0, ANIM_ATTACKER, 2, 0
createsprite gUnknown_085935D0, ANIM_ATTACKER, 2, 1
createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 0
createsprite gGuillotineSpriteTemplate, ANIM_ATTACKER, 2, 1
createvisualtask sub_8116620, 10, 4, 2, 0, 16, RGB_BLACK
delay 9
createvisualtask AnimTask_ShakeMon2, 5, ANIM_TARGET, 2, 0, 23, 1
@ -2750,10 +2750,10 @@ Move_RAGE:
monbg ANIM_TARGET
setalpha 12, 8
createvisualtask AnimTask_BlendMonInAndOut, 3, ANIM_ATTACKER, RGB_RED, 10, 0, 2
createsprite gUnknown_0859368C, ANIM_ATTACKER, 2, 0, -20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28
playsewithpan SE_W207B, SOUND_PAN_ATTACKER
delay 20
createsprite gUnknown_0859368C, ANIM_ATTACKER, 2, 0, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28
playsewithpan SE_W207B, SOUND_PAN_ATTACKER
waitforvisualfinish
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 4, 6
@ -2803,7 +2803,7 @@ Move_DOUBLE_TEAM:
Move_MINIMIZE:
setalpha 10, 8
createvisualtask sub_8104674, 2
createvisualtask AnimTask_Minimize, 2
loopsewithpan SE_W107, SOUND_PAN_ATTACKER, 34, 3
waitforvisualfinish
blendoff
@ -2872,8 +2872,8 @@ Move_KINESIS:
playsewithpan SE_W060, SOUND_PAN_ATTACKER
call SetPsychicBackground
createsprite gUnknown_085966DC, ANIM_ATTACKER, 20
createsprite gUnknown_08593344, ANIM_ATTACKER, 19, 32, -8, 0
createsprite gUnknown_08593344, ANIM_ATTACKER, 19, 32, 16, 1
createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, -8, 0
createsprite gKinesisZapEnergySpriteTemplate, ANIM_ATTACKER, 19, 32, 16, 1
loopsewithpan SE_W109, SOUND_PAN_ATTACKER, 21, 2
delay 60
playsewithpan SE_W146, SOUND_PAN_ATTACKER
@ -2987,7 +2987,7 @@ Move_FLASH:
end
Move_SPLASH:
createvisualtask sub_8104938, 2, 0, 3
createvisualtask AnimTask_Splash, 2, 0, 3
delay 8
loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 38, 3
waitforvisualfinish
@ -3066,7 +3066,7 @@ Move_SKETCH:
createsprite gUnknown_085936D4, ANIM_TARGET, 2
waitforvisualfinish
clearmonbg ANIM_TARGET
createvisualtask sub_8104938, 2, 0, 2
createvisualtask AnimTask_Splash, 2, 0, 2
loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 38, 2
end
@ -3278,17 +3278,17 @@ Move_FALSE_SWIPE:
Move_SWAGGER:
loadspritegfx ANIM_TAG_BREATH
loadspritegfx ANIM_TAG_ANGER
createvisualtask sub_8104AB4, 2
createvisualtask AnimTask_GrowAndShrink, 2
playsewithpan SE_W207, SOUND_PAN_ATTACKER
waitforvisualfinish
createsprite gUnknown_08593658, ANIM_ATTACKER, 2
createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2
loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 4, 2
waitforvisualfinish
delay 24
createsprite gUnknown_0859368C, ANIM_TARGET, 2, 1, -20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28
playsewithpan SE_W207B, SOUND_PAN_TARGET
delay 12
createsprite gUnknown_0859368C, ANIM_TARGET, 2, 1, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28
playsewithpan SE_W207B, SOUND_PAN_TARGET
waitforvisualfinish
end
@ -3496,10 +3496,10 @@ Move_TORMENT:
createvisualtask sub_815AFF0, 2
waitforvisualfinish
createvisualtask AnimTask_BlendMonInAndOut, 2, ANIM_TARGET, RGB_RED, 10, 1, 1
createsprite gUnknown_0859368C, ANIM_TARGET, 2, 1, -20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28
playsewithpan SE_W207B, SOUND_PAN_TARGET
delay 20
createsprite gUnknown_0859368C, ANIM_TARGET, 2, 1, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28
playsewithpan SE_W207B, SOUND_PAN_TARGET
end
@ -3606,11 +3606,11 @@ Move_TAUNT:
loopsewithpan SE_W039, SOUND_PAN_ATTACKER, 16, 2
waitforvisualfinish
delay 8
createsprite gUnknown_0859368C, ANIM_TARGET, 2, 1, -20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -28
playsewithpan SE_W207B, SOUND_PAN_TARGET
waitforvisualfinish
delay 12
createsprite gUnknown_0859368C, ANIM_TARGET, 2, 1, 20, -28
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -28
playsewithpan SE_W207B, SOUND_PAN_TARGET
end
@ -4008,7 +4008,7 @@ Move_TEETER_DANCE:
Move_MUD_SPORT:
loadspritegfx ANIM_TAG_MUD_SAND
createvisualtask sub_8104938, 2, 0, 6
createvisualtask AnimTask_Splash, 2, 0, 6
delay 24
createsprite gUnknown_085971E4, ANIM_TARGET, 2, 0, -4, -16
createsprite gUnknown_085971E4, ANIM_TARGET, 2, 0, 4, -12
@ -4381,10 +4381,10 @@ Move_HOWL:
Move_BULK_UP:
loadspritegfx ANIM_TAG_BREATH
createvisualtask sub_8104AB4, 2
createvisualtask AnimTask_GrowAndShrink, 2
playsewithpan SE_W207, SOUND_PAN_ATTACKER
waitforvisualfinish
createsprite gUnknown_08593658, ANIM_ATTACKER, 2
createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2
loopsewithpan SE_W207, SOUND_PAN_ATTACKER, 4, 2
waitforvisualfinish
end
@ -5386,7 +5386,7 @@ IceBeam1:
Move_WITHDRAW:
playsewithpan SE_W029, SOUND_PAN_ATTACKER
createvisualtask sub_81036A0, 5
createvisualtask AnimTask_Withdraw, 5
waitforvisualfinish
end
@ -7509,9 +7509,9 @@ RazorWindContinue:
RazorWindSetUp:
loadspritegfx ANIM_TAG_GUST
playsewithpan SE_W016, SOUND_PAN_ATTACKER
createsprite gUnknown_08593550, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40
createsprite gUnknown_08593550, ANIM_ATTACKER, 2, 32, 0, 16, 16, 85, 7, 40
createsprite gUnknown_08593550, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40
createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 0, 7, 40
createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 85, 7, 40
createsprite gRazorWindTornadoSpriteTemplate, ANIM_ATTACKER, 2, 32, 0, 16, 16, 170, 7, 40
waitforvisualfinish
playsewithpan SE_W016B, SOUND_PAN_ATTACKER
goto RazorWindContinue
@ -7546,7 +7546,7 @@ Move_DISABLE:
playsewithpan SE_W197, SOUND_PAN_ATTACKER
createsprite gUnknown_0853EE84, ANIM_ATTACKER, 13, 24, -16
waitforvisualfinish
createvisualtask sub_81045B0, 5
createvisualtask AnimTask_GrowAndGreyscale, 5
loopsewithpan SE_W020, SOUND_PAN_TARGET, 15, 4
waitforvisualfinish
delay 1

View File

@ -0,0 +1,19 @@
JASC-PAL
0100
16
98 0 49
131 131 41
156 197 32
172 0 32
189 0 24
180 197 8
156 0 8
131 65 0
90 0 0
49 65 0
32 0 8
8 197 8
0 0 24
16 65 32
32 197 32
65 131 41

View File

@ -623,7 +623,7 @@ struct BattleHealthboxInfo
u8 battlerBounceSpriteId;
u8 animationState;
u8 field_5;
u8 field_6;
u8 matrixNum;
u8 shadowSpriteId;
u8 field_8;
u8 field_9;

View File

@ -76,8 +76,8 @@ int GetAnimBgAttribute(u8 bgId, u8 attributeId);
// battle_anim_80A5C6C.s
void sub_80A6450(struct Sprite *sprite);
void SetAverageBattlerPositions(u8 battlerId, bool8 a2, s16 *x, s16 *y);
void move_anim_8074EE0(struct Sprite *sprite);
void sub_80A656C(struct Sprite *sprite);
void DestroySpriteAndMatrix(struct Sprite *sprite);
void TranslateAnimLinearSimple(struct Sprite *sprite);
void InitAnimSpritePos(struct Sprite *sprite, u8 a2);
void sub_80A6980(struct Sprite *sprite, bool8 a2);
void StartAnimLinearTranslation(struct Sprite *sprite);
@ -88,11 +88,11 @@ void sub_80A8EE4(struct Sprite *sprite);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId);
void sub_80A6FD4(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b);
void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
void sub_80A67BC(struct Sprite *sprite);
void TrySetSpriteRotScale(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation);
void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite);
void sub_80A66DC(struct Sprite *sprite);
void sub_80A6838(struct Sprite *sprite);
void sub_80A67D8(struct Sprite *sprite);
void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite);
void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite);
void sub_80A6864(struct Sprite *sprite, s16 a2);
s16 sub_80A861C(u8 battlerId, u8 a2);
u8 GetBattlerYCoordWithElevation(u8 battlerId);
@ -101,32 +101,32 @@ void sub_80A7938(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void sub_80A6F98(struct Sprite *sprite);
u8 sub_80A8328(u8 battlerId);
void *sub_80A8050(s16 bottom, s16 top);
void sub_80A8048(s16 *bottom, s16 *top, const void *ptr);
void *LoadPointerFromVars(s16 bottom, s16 top);
void StorePointerInVars(s16 *bottom, s16 *top, const void *ptr);
void sub_80A8278(void);
void sub_80A6B30(struct UnknownAnimStruct2*);
void sub_80A6B90(struct UnknownAnimStruct2*, u32 arg1);
u8 GetBattlerSubpriority(u8 battlerId);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
bool8 TranslateAnimArc(struct Sprite *sprite);
void sub_80A6630(struct Sprite *sprite);
void sub_80A6680(struct Sprite *sprite);
void sub_80A7344(u8 spriteId);
void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void ResetSpriteRotScale(u8 spriteId);
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void sub_80A7270(u8 spriteId, u8 objMode);
void sub_80A73A0(u8 spriteId);
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId);
u32 sub_80A75AC(u8 a1, u8 a2, u8 a3, u8 a4, u8 a5, u8 a6, u8 a7);
u32 sub_80A76C4(u8 a1, u8 a2, u8 a3, u8 a4);
u8 sub_80A77AC(u8 a1);
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8);
s16 CloneBattlerSpriteWithBlend(u8);
void obj_delete_but_dont_free_vram(struct Sprite*);
u8 sub_80A89C8(int, u8, int);
void sub_80A6D60(struct UnknownAnimStruct2*, const void*, u32);
void sub_80A6CC0(u32, const void*, u32);
void sub_80A6DAC(bool8);
void sub_80A634C(struct Sprite *);
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *);
void sub_80A653C(struct Sprite *);
void sub_80A7E6C(u8 spriteId);
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7);
u8 sub_80A80C8(struct Task *task);
void sub_80A8EE4(struct Sprite *);
@ -138,14 +138,25 @@ void sub_80A70C0(struct Sprite *sprite);
void TranslateMonBGUntil(struct Sprite *sprite);
void TranslateSpriteOverDuration(struct Sprite *sprite);
void sub_80A77C8(struct Sprite *sprite);
void sub_80A7000(struct Sprite *sprite);
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite);
void SetGreyscaleOrOriginalPalette(u16 a1, bool8 a2);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task);
void sub_80A78AC(struct Sprite *sprite);
void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused);
u8 sub_80A8394(u16 species, bool8 isBackpic, u8 a3, s16 x, s16 y, u8 subpriority, u32 personality, u32 trainerId, u32 battlerId, u32 a10);
void sub_80A749C(struct Sprite *sprite);
void sub_80A6814(u8 taskId);
void sub_80A8610(struct Sprite *sprite);
enum
{
BATTLER_COORD_X,
BATTLER_COORD_Y,
BATTLER_COORD_X_2,
BATTLER_COORD_3,
BATTLER_COORD_4,
BATTLER_COORD_Y_PIC_OFFSET,
BATTLER_COORD_Y_PIC_OFFSET_DEFAULT,
};
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId);
@ -179,6 +190,7 @@ u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 battlerId, u32 selectedPalettes,
// battle_anim_utility_funcs.s
void sub_8116EB4(u8);
void sub_8117854(u8 taskId, int unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u8 *arg8, const u8 *arg9, const u16 *palette);
u32 UnpackSelectedBattleAnimPalettes(s16);

View File

@ -416,7 +416,6 @@ extern struct ContestResources *gContestResources;
#define eContestAI (gContestResources->field_C)
#define shared19328 (*gContestResources->field_10)
#define shared19338 (*gContestResources->field_14)
#define shared19348 (*gContestResources->field_18)
#define shared15800 (gHeap + 0x18000)
#define shared18000 (*(struct Shared18000 *)(gHeap + 0x1a000))

View File

@ -4154,6 +4154,8 @@ extern const u32 gBattleAnimSpriteSheet_050[];
extern const u32 gBattleAnimSpriteSheet_051[];
extern const u32 gBattleAnimSpriteSheet_052[];
extern const u32 gBattleAnimSpriteSheet_053[];
extern const u32 gUnknown_08C2EA50[];
extern const u32 gUnknown_08C2EA9C[];
extern const u32 gBattleAnimSpriteSheet_054[];
extern const u32 gBattleAnimSpriteSheet_055[];
extern const u32 gBattleAnimSpriteSheet_056[];
@ -4372,6 +4374,9 @@ extern const u32 gBattleAnimSpriteSheet_280[];
extern const u32 gBattleAnimSpriteSheet_281[];
extern const u32 gBattleAnimSpriteSheet_282[];
extern const u32 gBattleAnimSpriteSheet_283[];
extern const u32 gBattleAnimBackgroundTilemap_ScaryFacePlayer[];
extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceOpponent[];
extern const u32 gBattleAnimBackgroundTilemap_ScaryFaceContest[];
extern const u32 gBattleAnimSpriteSheet_284[];
extern const u32 gBattleAnimSpriteSheet_285[];
@ -4584,10 +4589,15 @@ extern const u32 gBattleAnimSpritePalette_209[];
extern const u32 gBattleAnimSpritePalette_210[];
extern const u32 gBattleAnimSpritePalette_211[];
extern const u32 gBattleAnimSpritePalette_215[];
extern const u32 gUnknown_08C249D0[];
extern const u32 gUnknown_08C249F8[];
extern const u32 gBattleAnimSpritePalette_216[];
extern const u32 gBattleAnimSpritePalette_217[];
extern const u32 gBattleAnimSpritePalette_218[];
extern const u32 gBattleAnimSpritePalette_219[];
extern const u32 gUnknown_08C232E0;
extern const u32 gUnknown_08C23D50;
extern const u32 gUnknown_08C23D78;
extern const u32 gBattleAnimSpritePalette_220[];
extern const u32 gBattleAnimSpritePalette_221[];
extern const u32 gBattleAnimSpritePalette_222[];
@ -4611,6 +4621,9 @@ extern const u32 gBattleAnimSpritePalette_241[];
extern const u32 gBattleAnimSpritePalette_242[];
extern const u32 gBattleAnimSpritePalette_243[];
extern const u32 gBattleAnimSpritePalette_244[];
extern const u32 gUnknown_08C2DC68[];
extern const u32 gUnknown_08C2DDA4[];
extern const u32 gUnknown_08C2DDC4[];
extern const u32 gBattleAnimSpritePalette_245[];
extern const u32 gBattleAnimSpritePalette_248[];
extern const u32 gBattleAnimSpritePalette_249[];
@ -4689,6 +4702,9 @@ extern const u32 gBattleAnimBackgroundTilemap_07[];
extern const u32 gBattleAnimBackgroundTilemap_08[];
extern const u32 gBattleAnimBackgroundTilemap_09[];
extern const u32 gBattleAnimBackgroundTilemap_10[];
extern const u32 gUnknown_08C2A634[];
extern const u32 gUnknown_08C2A6D4[];
extern const u32 gUnknown_08C2A6EC[];
extern const u32 gBattleAnimBackgroundTilemap_11[];
extern const u32 gBattleAnimBackgroundTilemap_12[];
extern const u32 gBattleAnimBackgroundTilemap_13[];
@ -4749,11 +4765,6 @@ extern const u32 gCableCarDoor_Gfx[];
extern const u32 gCableCarCord_Gfx[];
extern const u16 gCableCar_Pal[];
// Battle Anim
extern const u32 gUnknown_08C2DDA4[];
extern const u32 gUnknown_08C2EA50[];
extern const u32 gUnknown_08C2EA9C[];
// Trade
extern const u16 gUnknown_08DDB3E4[];
extern const u8 gUnknown_08DDB464[];

14
include/math_util.h Executable file
View File

@ -0,0 +1,14 @@
#ifndef GUARD_MATH_UTIL_H
#define GUARD_MATH_UTIL_H
s16 sub_8151534(s16 x, s16 y);
s16 sub_8151550(u8 s, s16 x, s16 y);
s32 sub_8151574(s32 x, s32 y);
s16 sub_81515B0(s16 x, s16 y);
s16 sub_81515D4(u8 s, s16 x, s16 y);
s32 sub_81515FC(s32 x, s32 y);
s16 sub_8151624(s16 y);
s16 sub_815163C(u8 s, s16 y);
s32 sub_815165C(s32 y);
#endif // GUARD_MATH_UTIL_H

View File

@ -3,6 +3,7 @@
// DMA control value to transfer a single 16-bit value at HBlank
#define SCANLINE_EFFECT_DMACNT_16BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_16BIT | DMA_DEST_RELOAD) << 16) | 1)
#define SCANLINE_EFFECT_DMACNT_32BIT (((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_SRC_INC | DMA_DEST_INC | DMA_32BIT | DMA_DEST_RELOAD) << 16) | 1)
#define SCANLINE_EFFECT_REG_BG0HOFS (REG_ADDR_BG0HOFS - REG_ADDR_BG0HOFS)
#define SCANLINE_EFFECT_REG_BG0VOFS (REG_ADDR_BG0VOFS - REG_ADDR_BG0HOFS)

View File

@ -159,7 +159,7 @@ SECTIONS {
asm/contest_link_80FC4F4.o(.text);
src/item_use.o(.text);
src/battle_anim_effects_1.o(.text);
asm/battle_anim_effects_2.o(.text);
src/battle_anim_effects_2.o(.text);
asm/water.o(.text);
src/fire.o(.text);
src/electric.o(.text);
@ -225,7 +225,8 @@ SECTIONS {
src/battle_anim_sound_tasks.o(.text);
src/battle_controller_safari.o(.text);
src/fldeff_sweetscent.o(.text);
asm/battle_anim_815A0D4.o(.text);
src/battle_anim_effects_3.o(.text);
asm/battle_anim_effects_3.o(.text);
src/learn_move.o(.text);
src/fldeff_softboiled.o(.text);
src/decoration_inventory.o(.text);
@ -485,7 +486,7 @@ SECTIONS {
src/rotating_gate.o(.rodata);
src/item_use.o(.rodata);
src/battle_anim_effects_1.o(.rodata);
src/effects_2.o(.rodata);
src/battle_anim_effects_2.o(.rodata);
src/water.o(.rodata);
src/fire.o(.rodata);
src/electric.o(.rodata);
@ -539,7 +540,7 @@ SECTIONS {
data/field_effect_helpers.o(.rodata);
src/contest_ai.o(.rodata);
src/battle_controller_safari.o(.rodata);
data/battle_anim_815A0D4.o(.rodata);
src/battle_anim_effects_3.o(.rodata);
src/learn_move.o(.rodata);
src/roamer.o(.rodata);
src/battle_tower.o(.rodata);

View File

@ -1656,7 +1656,7 @@ static void ScriptCmd_createsprite(void)
else
argVar *= -1;
subpriority = GetBattlerSubpriority(gBattleAnimTarget) + (s8)(argVar);
subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + (s8)(argVar);
}
else
{
@ -1665,7 +1665,7 @@ static void ScriptCmd_createsprite(void)
else
argVar *= -1;
subpriority = GetBattlerSubpriority(gBattleAnimAttacker) + (s8)(argVar);
subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) + (s8)(argVar);
}
if (subpriority < 3)

View File

@ -40,18 +40,17 @@ void sub_80A7144(struct Sprite *sprite);
void sub_80A791C(struct Sprite *sprite);
void sub_80A8DFC(struct Sprite *sprite);
void sub_80A8E88(struct Sprite *sprite);
void sub_80A7E6C(u8 spriteId);
u16 sub_80A7F18(u8 spriteId);
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
u16 GetBattlerYDeltaFromSpriteId(u8 spriteId);
void AnimTask_BlendMonInAndOutSetup(struct Task *task);
void sub_80A7AFC(u8 taskId);
void sub_80A8CAC(u8 taskId);
void AnimTask_BlendMonInAndOutStep(u8 taskId);
bool8 sub_80A7238(void);
u8 GetBattlerSubpriority(u8 battlerId);
void sub_80A8D78(struct Task *task, u8 taskId);
// EWRAM vars
EWRAM_DATA static union AffineAnimCmd *gUnknown_02038444 = NULL;
EWRAM_DATA static union AffineAnimCmd *gAnimTaskAffineAnim = NULL;
// Const rom data
static const struct UCoords8 sBattlerCoords[][4] =
@ -124,8 +123,7 @@ static const struct SpriteSheet sUnknown_08525FC0[] =
{ gMiscBlank_Gfx, 0x800, 55126, },
};
// code
u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType)
{
u8 retVal;
u16 species;
@ -133,11 +131,11 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
if (IsContest())
{
if (attributeId == BATTLER_COORD_3 && battlerId == 3)
attributeId = BATTLER_COORD_Y;
if (coordType == BATTLER_COORD_Y_PIC_OFFSET && battlerId == 3)
coordType = BATTLER_COORD_Y;
}
switch (attributeId)
switch (coordType)
{
case BATTLER_COORD_X:
case BATTLER_COORD_X_2:
@ -146,15 +144,15 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
case BATTLER_COORD_Y:
retVal = sBattlerCoords[IS_DOUBLE_BATTLE()][GetBattlerPosition(battlerId)].y;
break;
case BATTLER_COORD_3:
case BATTLER_COORD_4:
case BATTLER_COORD_Y_PIC_OFFSET:
case BATTLER_COORD_Y_PIC_OFFSET_DEFAULT:
default:
if (IsContest())
{
if (shared19348.unk4_0)
species = shared19348.unk2;
if (gContestResources->field_18->unk4_0)
species = gContestResources->field_18->unk2;
else
species = shared19348.species;
species = gContestResources->field_18->species;
}
else
{
@ -175,7 +173,7 @@ u8 GetBattlerSpriteCoord(u8 battlerId, u8 attributeId)
species = spriteInfo[battlerId].transformSpecies;
}
}
if (attributeId == BATTLER_COORD_3)
if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
retVal = GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
else
retVal = GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
@ -199,10 +197,10 @@ u8 GetBattlerYDelta(u8 battlerId, u16 species)
{
if (IsContest())
{
if (shared19348.unk4_0)
personality = shared19348.unk10;
if (gContestResources->field_18->unk4_0)
personality = gContestResources->field_18->unk10;
else
personality = shared19348.unk8;
personality = gContestResources->field_18->unk8;
}
else
{
@ -307,19 +305,19 @@ u8 GetBattlerSpriteFinal_Y(u8 battlerId, u16 species, bool8 a3)
return y;
}
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId)
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType)
{
u16 species;
struct BattleSpriteInfo *spriteInfo;
if (attributeId == BATTLER_COORD_3 || attributeId == BATTLER_COORD_4)
if (coordType == BATTLER_COORD_Y_PIC_OFFSET || coordType == BATTLER_COORD_Y_PIC_OFFSET_DEFAULT)
{
if (IsContest())
{
if (shared19348.unk4_0)
species = shared19348.unk2;
if (gContestResources->field_18->unk4_0)
species = gContestResources->field_18->unk2;
else
species = shared19348.species;
species = gContestResources->field_18->species;
}
else
{
@ -329,20 +327,20 @@ u8 GetBattlerSpriteCoord2(u8 battlerId, u8 attributeId)
else
species = spriteInfo[battlerId].transformSpecies;
}
if (attributeId == BATTLER_COORD_3)
if (coordType == BATTLER_COORD_Y_PIC_OFFSET)
return GetBattlerSpriteFinal_Y(battlerId, species, TRUE);
else
return GetBattlerSpriteFinal_Y(battlerId, species, FALSE);
}
else
{
return GetBattlerSpriteCoord(battlerId, attributeId);
return GetBattlerSpriteCoord(battlerId, coordType);
}
}
u8 GetBattlerSpriteDefault_Y(u8 battlerId)
{
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_4);
return GetBattlerSpriteCoord(battlerId, BATTLER_COORD_Y_PIC_OFFSET_DEFAULT);
}
u8 GetSubstituteSpriteDefault_Y(u8 battlerId)
@ -386,11 +384,11 @@ u8 GetBattlerYCoordWithElevation(u8 battlerId)
return y;
}
u8 GetAnimBattlerSpriteId(u8 which)
u8 GetAnimBattlerSpriteId(u8 animBattler)
{
u8 *sprites;
if (which == ANIM_ATTACKER)
if (animBattler == ANIM_ATTACKER)
{
if (IsBattlerSpritePresent(gBattleAnimAttacker))
{
@ -402,7 +400,7 @@ u8 GetAnimBattlerSpriteId(u8 which)
return 0xff;
}
}
else if (which == ANIM_TARGET)
else if (animBattler == ANIM_TARGET)
{
if (IsBattlerSpritePresent(gBattleAnimTarget))
{
@ -414,7 +412,7 @@ u8 GetAnimBattlerSpriteId(u8 which)
return 0xff;
}
}
else if (which == ANIM_ATK_PARTNER)
else if (animBattler == ANIM_ATK_PARTNER)
{
if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
return 0xff;
@ -442,7 +440,7 @@ void SetCallbackToStoredInData6(struct Sprite *sprite)
sprite->callback = (void (*)(struct Sprite *))callback;
}
void sub_80A62EC(struct Sprite *sprite)
void TranslateSpriteInCircleOverDuration(struct Sprite *sprite)
{
if (sprite->data[3])
{
@ -461,7 +459,7 @@ void sub_80A62EC(struct Sprite *sprite)
}
}
void sub_80A634C(struct Sprite *sprite)
void TranslateSpriteInGrowingCircleOverDuration(struct Sprite *sprite)
{
if (sprite->data[3])
{
@ -570,7 +568,7 @@ void TranslateSpriteOverDuration(struct Sprite *sprite)
}
}
void sub_80A656C(struct Sprite *sprite)
void TranslateAnimLinearSimple(struct Sprite *sprite)
{
if (sprite->data[0] > 0)
{
@ -665,7 +663,7 @@ void sub_80A66DC(struct Sprite *sprite)
}
}
void move_anim_8074EE0(struct Sprite *sprite)
void DestroySpriteAndMatrix(struct Sprite *sprite)
{
FreeSpriteOamMatrix(sprite);
DestroyAnimSprite(sprite);
@ -683,16 +681,16 @@ void sub_80A6760(struct Sprite *sprite)
void sub_80A67A4(struct Sprite *sprite)
{
ResetPaletteStructByUid(sprite->data[5]);
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
void sub_80A67BC(struct Sprite *sprite)
void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
SetCallbackToStoredInData6(sprite);
}
void sub_80A67D8(struct Sprite *sprite)
void RunStoredCallbackWhenAnimEnds(struct Sprite *sprite)
{
if (sprite->animEnded)
SetCallbackToStoredInData6(sprite);
@ -712,31 +710,31 @@ void sub_80A6814(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80A6838(struct Sprite *sprite)
void SetSpriteCoordsToAnimAttackerCoords(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
void sub_80A6864(struct Sprite *sprite, s16 a2)
void sub_80A6864(struct Sprite *sprite, s16 xOffset)
{
u16 v1 = GetBattlerSpriteCoord(gBattleAnimAttacker, 0);
u16 v2 = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
u16 attackerX = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X);
u16 targetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X);
if (v1 > v2)
if (attackerX > targetX)
{
sprite->pos1.x -= a2;
sprite->pos1.x -= xOffset;
}
else if (v1 < v2)
else if (attackerX < targetX)
{
sprite->pos1.x += a2;
sprite->pos1.x += xOffset;
}
else
{
if (GetBattlerSide(gBattleAnimAttacker) != 0)
sprite->pos1.x -= a2;
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->pos1.x -= xOffset;
else
sprite->pos1.x += a2;
sprite->pos1.x += xOffset;
}
}
@ -779,24 +777,24 @@ void sub_80A6980(struct Sprite *sprite, bool8 a2)
{
if (!a2)
{
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, 0);
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, 1);
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_X);
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimTarget, BATTLER_COORD_Y);
}
sub_80A6864(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
}
void InitAnimSpritePos(struct Sprite *sprite, u8 a2)
void InitAnimSpritePos(struct Sprite *sprite, u8 respectMonPicOffsets)
{
if (!a2)
if (!respectMonPicOffsets)
{
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 0);
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 1);
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X);
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y);
}
else
{
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, 3);
sprite->pos1.x = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord2(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
sub_80A6864(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@ -908,7 +906,7 @@ void sub_80A6B90(struct UnknownAnimStruct2 *unk, u32 arg1)
}
}
void sub_80A6BFC(struct UnknownAnimStruct2 *unk)
void sub_80A6BFC(struct UnknownAnimStruct2 *unk, u8 unused)
{
unk->bgTiles = gUnknown_0202305C;
unk->unk4 = (u16 *)gUnknown_02023060;
@ -1208,7 +1206,7 @@ void sub_80A718C(struct Sprite *sprite)
sprite->callback(sprite);
}
void obj_id_set_rotscale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation)
{
int i;
struct ObjAffineSrcData src;
@ -1242,7 +1240,7 @@ bool8 sub_80A7238(void)
}
}
void sub_80A7270(u8 spriteId, u8 objMode)
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode)
{
u8 battlerId = gSprites[spriteId].data[0];
@ -1251,32 +1249,34 @@ void sub_80A7270(u8 spriteId, u8 objMode)
gSprites[spriteId].oam.objMode = objMode;
gSprites[spriteId].affineAnimPaused = TRUE;
if (!IsContest() && !gSprites[spriteId].oam.affineMode)
gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].field_6;
gSprites[spriteId].oam.affineMode = 3;
gSprites[spriteId].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[battlerId].matrixNum;
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_DOUBLE;
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
}
void sub_80A7344(u8 spriteId)
void ResetSpriteRotScale(u8 spriteId)
{
obj_id_set_rotscale(spriteId, 0x100, 0x100, 0);
gSprites[spriteId].oam.affineMode = 1;
SetSpriteRotScale(spriteId, 0x100, 0x100, 0);
gSprites[spriteId].oam.affineMode = ST_OAM_AFFINE_NORMAL;
gSprites[spriteId].oam.objMode = 0;
gSprites[spriteId].affineAnimPaused = FALSE;
CalcCenterToCornerVec(&gSprites[spriteId], gSprites[spriteId].oam.shape, gSprites[spriteId].oam.size, gSprites[spriteId].oam.affineMode);
}
void sub_80A73A0(u8 spriteId)
// Sets the sprite's y offset equal to the y displacement caused by the
// matrix's rotation.
void SetBattlerSpriteYOffsetFromRotation(u8 spriteId)
{
u16 matrix = gSprites[spriteId].oam.matrixNum;
s16 c = gOamMatrices[matrix].c;
u16 matrixNum = gSprites[spriteId].oam.matrixNum;
// The "c" component of the battler sprite matrix contains the sine of the rotation angle divided by some scale amount.
s16 c = gOamMatrices[matrixNum].c;
if (c < 0)
c = -c;
gSprites[spriteId].pos2.y = c >> 3;
}
// related to obj_id_set_rotscale
void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 rotation)
void TrySetSpriteRotScale(struct Sprite *sprite, bool8 recalcCenterVector, s16 xScale, s16 yScale, u16 rotation)
{
int i;
struct ObjAffineSrcData src;
@ -1285,7 +1285,7 @@ void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 ro
if (sprite->oam.affineMode & 1)
{
sprite->affineAnimPaused = TRUE;
if (a2)
if (recalcCenterVector)
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
src.xScale = xScale;
src.yScale = yScale;
@ -1303,7 +1303,7 @@ void sub_80A73E0(struct Sprite *sprite, bool8 a2, s16 xScale, s16 yScale, u16 ro
void sub_80A749C(struct Sprite *sprite)
{
sub_80A73E0(sprite, TRUE, 0x100, 0x100, 0);
TrySetSpriteRotScale(sprite, TRUE, 0x100, 0x100, 0);
sprite->affineAnimPaused = FALSE;
CalcCenterToCornerVec(sprite, sprite->oam.shape, sprite->oam.size, sprite->oam.affineMode);
}
@ -1319,32 +1319,32 @@ u16 ArcTan2Neg(s16 a, s16 b)
return -var;
}
void sub_80A750C(u16 a1, bool8 a2)
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor)
{
int i;
struct PlttData *c;
struct PlttData *c2;
struct PlttData *originalColor;
struct PlttData *destColor;
u16 average;
a1 *= 0x10;
paletteNum *= 16;
if (!a2)
if (!restoreOriginalColor)
{
for (i = 0; i < 0x10; i++)
for (i = 0; i < 16; i++)
{
c = (struct PlttData *)&gPlttBufferUnfaded[a1 + i];
average = c->r + c->g + c->b;
originalColor = (struct PlttData *)&gPlttBufferUnfaded[paletteNum + i];
average = originalColor->r + originalColor->g + originalColor->b;
average /= 3;
c2 = (struct PlttData *)&gPlttBufferFaded[a1 + i];
c2->r = average;
c2->g = average;
c2->b = average;
destColor = (struct PlttData *)&gPlttBufferFaded[paletteNum + i];
destColor->r = average;
destColor->g = average;
destColor->b = average;
}
}
else
{
CpuCopy32(&gPlttBufferUnfaded[a1], &gPlttBufferFaded[a1], 0x20);
CpuCopy32(&gPlttBufferUnfaded[paletteNum], &gPlttBufferFaded[paletteNum], 32);
}
}
@ -1479,7 +1479,7 @@ void sub_80A77C8(struct Sprite *sprite)
}
else if (sprite->animEnded || sprite->affineAnimEnded)
{
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
}
@ -1494,7 +1494,7 @@ void sub_80A77C8(struct Sprite *sprite)
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
{
bool8 v1;
u8 attributeId;
u8 coordType;
if (!(gBattleAnimArgs[5] & 0xff00))
v1 = TRUE;
@ -1502,9 +1502,9 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
v1 = FALSE;
if (!(gBattleAnimArgs[5] & 0xff))
attributeId = BATTLER_COORD_3;
coordType = BATTLER_COORD_Y_PIC_OFFSET;
else
attributeId = BATTLER_COORD_Y;
coordType = BATTLER_COORD_Y;
InitAnimSpritePos(sprite, v1);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@ -1512,7 +1512,7 @@ void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[2];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, attributeId) + gBattleAnimArgs[3];
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, coordType) + gBattleAnimArgs[3];
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@ -1544,7 +1544,7 @@ void sub_80A7938(struct Sprite *sprite)
if (!gBattleAnimArgs[6])
{
r4 = TRUE;
attributeId = BATTLER_COORD_3;
attributeId = BATTLER_COORD_Y_PIC_OFFSET;
}
else
{
@ -1571,19 +1571,19 @@ void sub_80A7938(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
s16 duplicate_obj_of_side_rel2move_in_transparent_mode(u8 whichBattler)
s16 CloneBattlerSpriteWithBlend(u8 animBattler)
{
u16 i;
u8 spriteId = GetAnimBattlerSpriteId(whichBattler);
u8 spriteId = GetAnimBattlerSpriteId(animBattler);
if (spriteId != 0xff)
if (spriteId != 0xFF)
{
for (i = 0; i < MAX_SPRITES; i++)
{
if (!gSprites[i].inUse)
{
gSprites[i] = gSprites[spriteId];
gSprites[i].oam.objMode = 1;
gSprites[i].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[i].invisible = FALSE;
return i;
}
@ -1730,49 +1730,49 @@ void sub_80A7CB4(u8 task)
AnimTask_BlendMonInAndOutSetup(&gTasks[task]);
}
void sub_80A7CFC(struct Task *task, u8 a2, const void *a3)
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds)
{
task->data[7] = 0;
task->data[8] = 0;
task->data[9] = 0;
task->data[15] = a2;
task->data[15] = spriteId;
task->data[10] = 0x100;
task->data[11] = 0x100;
task->data[12] = 0;
sub_80A8048(&task->data[13], &task->data[14], a3);
sub_80A7270(a2, 0);
StorePointerInVars(&task->data[13], &task->data[14], affineAnimCmds);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
}
bool8 sub_80A7D34(struct Task *task)
bool8 RunAffineAnimFromTaskData(struct Task *task)
{
gUnknown_02038444 = sub_80A8050(task->data[13], task->data[14]) + (task->data[7] << 3);
switch (gUnknown_02038444->type)
gAnimTaskAffineAnim = LoadPointerFromVars(task->data[13], task->data[14]) + (task->data[7] << 3);
switch (gAnimTaskAffineAnim->type)
{
default:
if (!gUnknown_02038444->frame.duration)
if (!gAnimTaskAffineAnim->frame.duration)
{
task->data[10] = gUnknown_02038444->frame.xScale;
task->data[11] = gUnknown_02038444->frame.yScale;
task->data[12] = gUnknown_02038444->frame.rotation;
task->data[10] = gAnimTaskAffineAnim->frame.xScale;
task->data[11] = gAnimTaskAffineAnim->frame.yScale;
task->data[12] = gAnimTaskAffineAnim->frame.rotation;
task->data[7]++;
gUnknown_02038444++;
gAnimTaskAffineAnim++;
}
task->data[10] += gUnknown_02038444->frame.xScale;
task->data[11] += gUnknown_02038444->frame.yScale;
task->data[12] += gUnknown_02038444->frame.rotation;
obj_id_set_rotscale(task->data[15], task->data[10], task->data[11], task->data[12]);
sub_80A7E6C(task->data[15]);
if (++task->data[8] >= gUnknown_02038444->frame.duration)
task->data[10] += gAnimTaskAffineAnim->frame.xScale;
task->data[11] += gAnimTaskAffineAnim->frame.yScale;
task->data[12] += gAnimTaskAffineAnim->frame.rotation;
SetSpriteRotScale(task->data[15], task->data[10], task->data[11], task->data[12]);
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
if (++task->data[8] >= gAnimTaskAffineAnim->frame.duration)
{
task->data[8] = 0;
task->data[7]++;
}
break;
case AFFINEANIMCMDTYPE_JUMP:
task->data[7] = gUnknown_02038444->jump.target;
task->data[7] = gAnimTaskAffineAnim->jump.target;
break;
case AFFINEANIMCMDTYPE_LOOP:
if (gUnknown_02038444->loop.count)
if (gAnimTaskAffineAnim->loop.count)
{
if (task->data[9])
{
@ -1784,7 +1784,7 @@ bool8 sub_80A7D34(struct Task *task)
}
else
{
task->data[9] = gUnknown_02038444->loop.count;
task->data[9] = gAnimTaskAffineAnim->loop.count;
}
if (!task->data[7])
{
@ -1793,8 +1793,8 @@ bool8 sub_80A7D34(struct Task *task)
for (;;)
{
task->data[7]--;
gUnknown_02038444--;
if (gUnknown_02038444->type == AFFINEANIMCMDTYPE_LOOP)
gAnimTaskAffineAnim--;
if (gAnimTaskAffineAnim->type == AFFINEANIMCMDTYPE_LOOP)
{
task->data[7]++;
return TRUE;
@ -1807,36 +1807,40 @@ bool8 sub_80A7D34(struct Task *task)
break;
case AFFINEANIMCMDTYPE_END:
gSprites[task->data[15]].pos2.y = 0;
sub_80A7344(task->data[15]);
ResetSpriteRotScale(task->data[15]);
return FALSE;
}
return TRUE;
}
void sub_80A7E6C(u8 spriteId)
// Sets the sprite's y offset equal to the y displacement caused by the
// matrix's scale in the y dimension.
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId)
{
int var = 0x40 - sub_80A7F18(spriteId) * 2;
int var = 64 - GetBattlerYDeltaFromSpriteId(spriteId) * 2;
u16 matrix = gSprites[spriteId].oam.matrixNum;
int var2 = (var << 8) / gOamMatrices[matrix].d;
if (var2 > 0x80)
var2 = 0x80;
if (var2 > 128)
var2 = 128;
gSprites[spriteId].pos2.y = (var - var2) / 2;
}
void sub_80A7EC0(u8 spriteId, u8 spriteId2)
// Sets the sprite's y offset equal to the y displacement caused by another sprite
// matrix's scale in the y dimension.
void SetBattlerSpriteYOffsetFromOtherYScale(u8 spriteId, u8 otherSpriteId)
{
int var = 0x40 - sub_80A7F18(spriteId2) * 2;
int var = 64 - GetBattlerYDeltaFromSpriteId(otherSpriteId) * 2;
u16 matrix = gSprites[spriteId].oam.matrixNum;
int var2 = (var << 8) / gOamMatrices[matrix].d;
if (var2 > 0x80)
var2 = 0x80;
if (var2 > 128)
var2 = 128;
gSprites[spriteId].pos2.y = (var - var2) / 2;
}
u16 sub_80A7F18(u8 spriteId)
u16 GetBattlerYDeltaFromSpriteId(u8 spriteId)
{
struct BattleSpriteInfo *spriteInfo;
u8 battlerId = gSprites[spriteId].data[0];
@ -1849,7 +1853,7 @@ u16 sub_80A7F18(u8 spriteId)
{
if (IsContest())
{
species = shared19348.species;
species = gContestResources->field_18->species;
return gMonBackPicCoords[species].y_offset;
}
else
@ -1883,18 +1887,18 @@ u16 sub_80A7F18(u8 spriteId)
}
}
}
return 0x40;
return 64;
}
void sub_80A8048(s16 *bottom, s16 *top, const void *ptr)
void StorePointerInVars(s16 *lo, s16 *hi, const void *ptr)
{
*bottom = ((intptr_t) ptr) & 0xffff;
*top = (((intptr_t) ptr) >> 16) & 0xffff;
*lo = ((intptr_t) ptr) & 0xffff;
*hi = (((intptr_t) ptr) >> 16) & 0xffff;
}
void *sub_80A8050(s16 bottom, s16 top)
void *LoadPointerFromVars(s16 lo, s16 hi)
{
return (void *)((u16)bottom | ((u16)top << 16));
return (void *)((u16)lo | ((u16)hi << 16));
}
void sub_80A805C(struct Task *task, u8 a2, s16 a3, s16 a4, s16 a5, s16 a6, u16 a7)
@ -1924,9 +1928,9 @@ u8 sub_80A80C8(struct Task *task)
task->data[9] = task->data[13];
task->data[10] = task->data[14];
}
obj_id_set_rotscale(task->data[15], task->data[9], task->data[10], 0);
SetSpriteRotScale(task->data[15], task->data[9], task->data[10], 0);
if (task->data[8])
sub_80A7E6C(task->data[15]);
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
else
gSprites[task->data[15]].pos2.y = 0;
return task->data[8];
@ -1968,16 +1972,16 @@ void sub_80A8278(void)
{
if (IsBattlerSpriteVisible(i))
{
gSprites[gBattlerSpriteIds[i]].subpriority = GetBattlerSubpriority(i);
gSprites[gBattlerSpriteIds[i]].subpriority = GetBattlerSpriteSubpriority(i);
gSprites[gBattlerSpriteIds[i]].oam.priority = 2;
}
}
}
u8 GetBattlerSubpriority(u8 battlerId)
u8 GetBattlerSpriteSubpriority(u8 battlerId)
{
u8 position;
u8 ret;
u8 subpriority;
if (IsContest())
{
@ -1990,15 +1994,16 @@ u8 GetBattlerSubpriority(u8 battlerId)
{
position = GetBattlerPosition(battlerId);
if (position == B_POSITION_PLAYER_LEFT)
ret = 30;
subpriority = 30;
else if (position == B_POSITION_PLAYER_RIGHT)
ret = 20;
subpriority = 20;
else if (position == B_POSITION_OPPONENT_LEFT)
ret = 40;
subpriority = 40;
else
ret = 50;
subpriority = 50;
}
return ret;
return subpriority;
}
u8 sub_80A8328(u8 battlerId)
@ -2100,15 +2105,15 @@ s16 sub_80A861C(u8 battlerId, u8 a2)
if (IsContest())
{
if (shared19348.unk4_0)
if (gContestResources->field_18->unk4_0)
{
species = shared19348.unk2;
personality = shared19348.unk10;
species = gContestResources->field_18->unk2;
personality = gContestResources->field_18->unk10;
}
else
{
species = shared19348.species;
personality = shared19348.unk8;
species = gContestResources->field_18->species;
personality = gContestResources->field_18->unk8;
}
if (species == SPECIES_UNOWN)
{
@ -2270,7 +2275,7 @@ u8 sub_80A89C8(int battlerId, u8 spriteId, int species)
void sub_80A8A6C(struct Sprite *sprite)
{
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
{
sprite->pos1.x -= gBattleAnimArgs[0];
@ -2286,7 +2291,7 @@ void sub_80A8A6C(struct Sprite *sprite)
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[3] = gBattleAnimArgs[4];
sprite->data[5] = gBattleAnimArgs[5];
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_80A66DC;
}
@ -2307,19 +2312,19 @@ void sub_80A8AEC(struct Sprite *sprite)
sprite->data[3] = gBattleAnimArgs[4];
sprite->data[5] = gBattleAnimArgs[5];
StartSpriteAnim(sprite, gBattleAnimArgs[6]);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_80A66DC;
}
void sub_80A8B64(struct Sprite *sprite)
{
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
sprite->pos1.x -= gBattleAnimArgs[0];
else
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@ -2339,7 +2344,7 @@ void sub_80A8BC4(u8 taskId)
dest = (task->data[4] + 0x10) * 0x10;
src = (gSprites[task->data[0]].oam.paletteNum + 0x10) * 0x10;
task->data[6] = GetBattlerSubpriority(gBattleAnimAttacker);
task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker);
if (task->data[6] == 20 || task->data[6] == 40)
task->data[6] = 2;
else
@ -2384,7 +2389,7 @@ void sub_80A8CAC(u8 taskId)
void sub_80A8D78(struct Task *task, u8 taskId)
{
s16 spriteId = duplicate_obj_of_side_rel2move_in_transparent_mode(0);
s16 spriteId = CloneBattlerSpriteWithBlend(0);
if (spriteId >= 0)
{
gSprites[spriteId].oam.priority = task->data[6];
@ -2410,7 +2415,7 @@ void sub_80A8DFC(struct Sprite *sprite)
void sub_80A8E30(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_3);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
if (!GetBattlerSide(gBattleAnimAttacker))
sprite->data[0] = 5;
else

View File

@ -175,7 +175,7 @@ static void sub_80A9E78(struct Sprite *sprite)
void sub_80A9EF4(u8 taskId)
{
s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32;
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_3) - 36;
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36;
u8 spriteId;
if (IsContest())

View File

@ -834,7 +834,7 @@ void AnimTask_ScaleMonAndRestore(u8 taskId)
{
u8 spriteId;
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[3]);
sub_80A7270(spriteId, gBattleAnimArgs[4]);
PrepareBattlerSpriteForRotScale(spriteId, gBattleAnimArgs[4]);
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1];
gTasks[taskId].data[2] = gBattleAnimArgs[2];
@ -851,7 +851,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
gTasks[taskId].data[10] += gTasks[taskId].data[0];
gTasks[taskId].data[11] += gTasks[taskId].data[1];
spriteId = gTasks[taskId].data[4];
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[11], 0);
if (--gTasks[taskId].data[2] == 0)
{
if (gTasks[taskId].data[3] > 0)
@ -863,7 +863,7 @@ void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
}
else
{
sub_80A7344(spriteId);
ResetSpriteRotScale(spriteId);
DestroyAnimVisualTask(taskId);
return;
}
@ -874,7 +874,7 @@ void sub_80D6134(u8 taskId)
{
u8 spriteId;
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
sub_80A7270(spriteId, 0);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[3] != 1)
@ -918,7 +918,7 @@ void sub_80D622C(u8 taskId)
{
u8 spriteId;
spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
sub_80A7270(spriteId, 0);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[1] = 0;
gTasks[taskId].data[2] = gBattleAnimArgs[0];
if (gBattleAnimArgs[2] == 0)
@ -955,17 +955,17 @@ void sub_80D622C(u8 taskId)
void sub_80D6308(u8 taskId)
{
gTasks[taskId].data[3] += gTasks[taskId].data[4];
obj_id_set_rotscale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
SetSpriteRotScale(gTasks[taskId].data[5], 0x100, 0x100, gTasks[taskId].data[3]);
if (gTasks[taskId].data[7])
{
sub_80A73A0(gTasks[taskId].data[5]);
SetBattlerSpriteYOffsetFromRotation(gTasks[taskId].data[5]);
}
if (++gTasks[taskId].data[1] >= gTasks[taskId].data[2])
{
switch (gTasks[taskId].data[6])
{
case 1:
sub_80A7344(gTasks[taskId].data[5]);
ResetSpriteRotScale(gTasks[taskId].data[5]);
case 0:
default:
DestroyAnimVisualTask(taskId);

View File

@ -604,19 +604,19 @@ void sub_8170B04(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
sub_80A7270(spriteId, 0);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[10] = 0x100;
gTasks[taskId].data[0]++;
break;
case 1:
gTasks[taskId].data[10] += 0x30;
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
sub_80A7E6C(spriteId);
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
SetBattlerSpriteYOffsetFromYScale(spriteId);
if (gTasks[taskId].data[10] >= 0x2D0)
gTasks[taskId].data[0]++;
break;
case 2:
sub_80A7344(spriteId);
ResetSpriteRotScale(spriteId);
gSprites[spriteId].invisible = 1;
DestroyAnimVisualTask(taskId);
break;
@ -756,7 +756,7 @@ void sub_8170F2C(u8 taskId)
}
ballId = ItemIdToBallId(gLastUsedItem);
subpriority = GetBattlerSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
subpriority = GetBattlerSpriteSubpriority(GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)) + 1;
spriteId = CreateSprite(&gBallSpriteTemplates[ballId], x + 32, y | 80, subpriority);
gSprites[spriteId].data[0] = 34;
gSprites[spriteId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
@ -862,7 +862,7 @@ static void sub_8171240(struct Sprite *sprite)
switch (gTasks[taskId].data[0])
{
case 0:
sub_80A7270(spriteId, 0);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_NORMAL);
gTasks[taskId].data[10] = 256;
gUnknown_030062DC = 28;
gUnknown_030062E4 = (gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y) - (sprite->pos1.y + sprite->pos2.y);
@ -872,14 +872,14 @@ static void sub_8171240(struct Sprite *sprite)
break;
case 1:
gTasks[taskId].data[10] += 0x20;
obj_id_set_rotscale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
SetSpriteRotScale(spriteId, gTasks[taskId].data[10], gTasks[taskId].data[10], 0);
gTasks[taskId].data[3] += gTasks[taskId].data[2];
gSprites[spriteId].pos2.y = -gTasks[taskId].data[3] >> 8;
if (gTasks[taskId].data[10] >= 0x480)
gTasks[taskId].data[0]++;
break;
case 2:
sub_80A7344(spriteId);
ResetSpriteRotScale(spriteId);
gSprites[spriteId].invisible = 1;
gTasks[taskId].data[0]++;
break;

View File

@ -1,9 +1,15 @@
#include "global.h"
#include "alloc.h"
#include "battle_anim.h"
#include "battle_interface.h"
#include "decompress.h"
#include "gpu_regs.h"
#include "graphics.h"
#include "main.h"
#include "math_util.h"
#include "palette.h"
#include "random.h"
#include "scanline_effect.h"
#include "sound.h"
#include "trig.h"
#include "util.h"
@ -2220,7 +2226,7 @@ void sub_80FE8E0(struct Sprite* sprite)
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
void sub_80FE930(struct Sprite* sprite)
@ -2257,9 +2263,9 @@ static void sub_80FE9E4(struct Sprite* sprite)
else
{
if (sprite->data[5] > 0x7F)
sprite->subpriority = GetBattlerSubpriority(gBattleAnimTarget) + 1;
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1;
else
sprite->subpriority = GetBattlerSubpriority(gBattleAnimTarget) + 6;
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimTarget) + 6;
sprite->pos2.x += Sin(sprite->data[5], 5);
sprite->pos2.y += Cos(sprite->data[5], 14);
@ -2278,7 +2284,7 @@ void sub_80FEA58(u8 taskId)
gBattleAnimArgs[1] = 0;
gBattleAnimArgs[2] = 80;
gBattleAnimArgs[3] = 0;
CreateSpriteAndAnimate(&gUnknown_08592210, 0, 0, GetBattlerSubpriority(gBattleAnimTarget) + 1);
CreateSpriteAndAnimate(&gUnknown_08592210, 0, 0, GetBattlerSpriteSubpriority(gBattleAnimTarget) + 1);
}
if (gTasks[taskId].data[1] == 15)
@ -2465,9 +2471,9 @@ static void sub_80FEECC(struct Sprite* sprite)
sprite->pos2.x += Sin(sprite->data[5], 32);
sprite->pos2.y += Cos(sprite->data[5], -5);
if ((u16)(sprite->data[5] - 0x40) < 0x80)
sprite->subpriority = GetBattlerSubpriority(gBattleAnimAttacker) - 1;
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 1;
else
sprite->subpriority = GetBattlerSubpriority(gBattleAnimAttacker) + 1;
sprite->subpriority = GetBattlerSpriteSubpriority(gBattleAnimAttacker) + 1;
sprite->data[5] = (sprite->data[5] + 5) & 0xFF;
}
@ -2731,7 +2737,7 @@ void sub_80FF458(u8 taskId)
}
else
{
sub_80A7270(spriteId, 1);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND);
gTasks[taskId].data[14] = gSprites[spriteId].oam.priority;
gSprites[spriteId].oam.priority = sub_80A8328(gBattleAnimTarget);
spriteId = GetAnimBattlerSpriteId(ANIM_DEF_PARTNER);
@ -2753,8 +2759,8 @@ static void sub_80FF53C(u8 taskId)
gSprites[spriteId].pos2.x = -gSprites[spriteId].pos2.x;
gTasks[taskId].data[11] += 16;
obj_id_set_rotscale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0);
sub_80A7E6C(spriteId);
SetSpriteRotScale(spriteId, gTasks[taskId].data[11], gTasks[taskId].data[11], 0);
SetBattlerSpriteYOffsetFromYScale(spriteId);
if (--gTasks[taskId].data[1] == 0)
{
gTasks[taskId].data[0] = 0;
@ -2769,7 +2775,7 @@ static void sub_80FF5CC(u8 taskId)
if (gTasks[taskId].data[0] == 0)
{
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
sub_80A7344(spriteId);
ResetSpriteRotScale(spriteId);
gSprites[spriteId].pos2.x = 0;
gSprites[spriteId].pos2.y = 0;
gSprites[spriteId].oam.priority = gTasks[taskId].data[14];
@ -2795,7 +2801,6 @@ void sub_80FF698(struct Sprite* sprite)
switch (sprite->data[0])
{
case 0:
{
if (GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
gBattleAnimArgs[0] *= -1;
@ -2804,9 +2809,7 @@ void sub_80FF698(struct Sprite* sprite)
sprite->invisible = 1;
sprite->data[0]++;
break;
}
case 1:
{
sprite->invisible = 0;
if (sprite->affineAnimEnded)
{
@ -2819,7 +2822,6 @@ void sub_80FF698(struct Sprite* sprite)
break;
}
}
}
}
void sub_80FF768(struct Sprite* sprite)
@ -3205,7 +3207,7 @@ void sub_80FFFC0(u8 taskId)
{
struct Task *task = &gTasks[taskId];
task->data[4] = GetBattlerSubpriority(gBattleAnimTarget) - 1;
task->data[4] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 1;
task->data[6] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
task->data[7] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
task->data[10] = sub_80A861C(gBattleAnimTarget, 1);
@ -3529,7 +3531,7 @@ static void sub_810074C(struct Sprite* sprite)
return;
}
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
void sub_81007C4(u8 taskId)
@ -3613,7 +3615,7 @@ void sub_8100898(struct Sprite* sprite)
if (IsContest())
c -= 0x8000;
sub_80A73E0(sprite, 0, 0x100, 0x100, c);
TrySetSpriteRotScale(sprite, 0, 0x100, 0x100, c);
sprite->callback = sub_81009A0;
}
}
@ -3630,7 +3632,7 @@ static void sub_81009A0(struct Sprite* sprite)
}
else
{
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
}
@ -3653,7 +3655,7 @@ void sub_81009F8(struct Sprite* sprite)
sprite->pos1.y += gBattleAnimArgs[1];
}
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@ -3676,7 +3678,7 @@ void sub_8100A94(struct Sprite* sprite)
sprite->data[3] = gBattleAnimArgs[4];
sprite->data[5] = gBattleAnimArgs[5];
StartSpriteAffineAnim(sprite, gBattleAnimArgs[6]);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_80A66DC;
}
@ -4024,7 +4026,7 @@ static void sub_8101298(struct Sprite* sprite, int unk1, int unk2)
void sub_810130C(struct Sprite* sprite)
{
if (!gBattleAnimArgs[2])
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
sub_80A6864(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@ -4032,7 +4034,7 @@ void sub_810130C(struct Sprite* sprite)
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[2] = gBattleAnimArgs[4];
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A656C;
sprite->callback = TranslateAnimLinearSimple;
}
void sub_810135C(struct Sprite* sprite)
@ -4069,13 +4071,13 @@ void sub_810135C(struct Sprite* sprite)
sprite->data[1] = gBattleAnimArgs[3];
sprite->data[2] = gBattleAnimArgs[4];
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A656C;
sprite->callback = TranslateAnimLinearSimple;
}
void sub_8101440(struct Sprite* sprite)
{
sub_80A6838(sprite);
if (GetBattlerSide(gBattleAnimAttacker) == 0)
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
@ -4105,7 +4107,7 @@ static void sub_81014A0(struct Sprite* sprite)
void sub_81014F4(struct Sprite* sprite)
{
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{
sprite->pos1.x += gBattleAnimArgs[0];
@ -4130,7 +4132,7 @@ static void sub_8101560(struct Sprite* sprite)
sprite->data[4] += sprite->data[3] * 2;
sprite->data[0] += sprite->data[1];
if (++sprite->data[1] > 60)
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
void sub_81015AC(struct Sprite* sprite)
@ -4347,14 +4349,14 @@ static void sub_81019E8(struct Sprite* sprite)
if (sprite->data[0] == 0)
{
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
sub_80A7270(sprite->data[3], 0);
PrepareBattlerSpriteForRotScale(sprite->data[3], ST_OAM_OBJ_NORMAL);
sprite->data[4] = (sprite->data[6] = GetBattlerSide(gBattleAnimAttacker)) ? 0x300 : 0xFFFFFD00;
sprite->data[5] = 0;
}
sprite->data[5] += sprite->data[4];
obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
sub_80A73A0(sprite->data[3]);
SetSpriteRotScale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
SetBattlerSpriteYOffsetFromRotation(sprite->data[3]);
if (++sprite->data[0] > 3)
{
sprite->data[0] = 0;
@ -4400,11 +4402,11 @@ static void sub_8101AE8(struct Sprite* sprite)
}
sprite->data[5] += sprite->data[4];
obj_id_set_rotscale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
sub_80A73A0(sprite->data[3]);
SetSpriteRotScale(sprite->data[3], 0x100, 0x100, sprite->data[5]);
SetBattlerSpriteYOffsetFromRotation(sprite->data[3]);
if (++sprite->data[0] > 2)
{
sub_80A7344(sprite->data[3]);
ResetSpriteRotScale(sprite->data[3]);
sprite->callback = sub_8101B84;
}
}
@ -4430,13 +4432,13 @@ static void sub_8101BA0(struct Sprite *sprite)
sprite->data[3] = GetBattlerSide(gBattleAnimAttacker);
sprite->data[4] = (sprite->data[3] != B_SIDE_PLAYER) ? 0x200 : -0x200;
sprite->data[5] = 0;
sub_80A7270(sprite->data[2], 0);
PrepareBattlerSpriteForRotScale(sprite->data[2], ST_OAM_OBJ_NORMAL);
sprite->data[0]++;
// fall through
case 1:
sprite->data[5] += sprite->data[4];
obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
sub_80A73A0(sprite->data[2]);
SetSpriteRotScale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
SetBattlerSpriteYOffsetFromRotation(sprite->data[2]);
if (++sprite->data[1] > 3)
{
sprite->data[1] = 0;
@ -4446,11 +4448,11 @@ static void sub_8101BA0(struct Sprite *sprite)
break;
case 2:
sprite->data[5] += sprite->data[4];
obj_id_set_rotscale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
sub_80A73A0(sprite->data[2]);
SetSpriteRotScale(sprite->data[2], 0x100, 0x100, sprite->data[5]);
SetBattlerSpriteYOffsetFromRotation(sprite->data[2]);
if (++sprite->data[1] > 3)
{
sub_80A7344(sprite->data[2]);
ResetSpriteRotScale(sprite->data[2]);
DestroyAnimSprite(sprite);
}
break;
@ -4512,7 +4514,7 @@ static void sub_8101D2C(u8 taskId)
task->data[3] = 8;
task->data[4] = 0;
task->data[5] = (task->data[1] == 0) ? -0xC0 : 0xC0;
sub_80A7270(task->data[0], 0);
PrepareBattlerSpriteForRotScale(task->data[0], ST_OAM_OBJ_NORMAL);
task->data[2]++;
}
break;
@ -4520,8 +4522,8 @@ static void sub_8101D2C(u8 taskId)
if (task->data[3])
{
task->data[4] += task->data[5];
obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]);
sub_80A73A0(task->data[0]);
SetSpriteRotScale(task->data[0], 0x100, 0x100, task->data[4]);
SetBattlerSpriteYOffsetFromRotation(task->data[0]);
task->data[3]--;
}
else
@ -4592,13 +4594,13 @@ static void sub_8101EEC(u8 taskId)
if (task->data[3])
{
task->data[4] -= task->data[5];
obj_id_set_rotscale(task->data[0], 0x100, 0x100, task->data[4]);
sub_80A73A0(task->data[0]);
SetSpriteRotScale(task->data[0], 0x100, 0x100, task->data[4]);
SetBattlerSpriteYOffsetFromRotation(task->data[0]);
task->data[3]--;
}
else
{
sub_80A7344(task->data[0]);
ResetSpriteRotScale(task->data[0]);
DestroyAnimVisualTask(taskId);
}
}
@ -4619,7 +4621,7 @@ void sub_8101F40(struct Sprite* sprite)
sprite->data[0] = 0;
sprite->data[1] = 0;
StoreSpriteCallbackInData6(sprite, sub_810208C);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
void sub_8101FA8(struct Sprite* sprite)
@ -4627,7 +4629,7 @@ void sub_8101FA8(struct Sprite* sprite)
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + 0xFFD0;
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
StoreSpriteCallbackInData6(sprite, sub_8102044);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
void sub_8101FF0(struct Sprite* sprite)
@ -4914,7 +4916,7 @@ void sub_81025C0(u8 taskId)
gTasks[taskId].data[9] = 15;
b = sub_80A76C4(1, 1, 1, 1);
c = a | b;
sub_80A8048(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void*)c);
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
d = IndexOfSpritePaletteTag(ANIM_TAG_GREEN_SPARKLE);
BeginNormalPaletteFade((0x10000 << d) | b, 0, 0, 16, RGB(27, 29, 31));
@ -4989,7 +4991,7 @@ void sub_81026A8(u8 taskId)
case 2:
if (++task->data[1] > 30)
{
BeginNormalPaletteFade((u32)sub_80A8050(task->data[14], task->data[15]), 0, 16, 0, RGB(27, 29, 31));
BeginNormalPaletteFade((u32)LoadPointerFromVars(task->data[14], task->data[15]), 0, 16, 0, RGB(27, 29, 31));
task->data[0]++;
}
break;
@ -5080,7 +5082,7 @@ void sub_81029B4(u8 taskId)
BlendPalette(r3, 16, 11, RGB(0, 0, 0));
task->data[3] = 0;
i = 0;
while (i < 2 && (obj = duplicate_obj_of_side_rel2move_in_transparent_mode(0)) >= 0)
while (i < 2 && (obj = CloneBattlerSpriteWithBlend(0)) >= 0)
{
gSprites[obj].oam.paletteNum = task->data[1];
gSprites[obj].data[0] = 0;
@ -5138,7 +5140,7 @@ static void sub_8102B3C(struct Sprite* sprite)
void sub_8102BCC(struct Sprite* sprite)
{
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
void sub_8102BE8(u8 taskId)
@ -5183,7 +5185,7 @@ void sub_8102CD4(struct Sprite* sprite)
u8 index;
u8 a;
u8 b;
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
StartSpriteAnim(sprite, gBattleAnimArgs[0]);
if ((index = IndexOfSpritePaletteTag(gUnknown_08593020[gBattleAnimArgs[1]][0])) != 0xFF)
sprite->oam.paletteNum = index;
@ -5242,7 +5244,7 @@ static void sub_8102DE4(struct Sprite* sprite)
if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80)
{
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
else
{
@ -5296,7 +5298,7 @@ static void sub_8102F40(struct Sprite* sprite)
}
if (++sprite->data[0] == 48)
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
void sub_8102FB8(struct Sprite* sprite)
@ -5323,7 +5325,7 @@ void sub_8103028(struct Sprite* sprite)
{
s16 xDiff;
u8 index;
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
sprite->pos1.y += 8;
StartSpriteAnim(sprite, gBattleAnimArgs[1]);
index = IndexOfSpritePaletteTag(gUnknown_08593020[gBattleAnimArgs[2]][0]);
@ -5385,7 +5387,7 @@ void sub_8103164(struct Sprite* sprite)
sprite->data[1] = a + 2;
StartSpriteAnim(sprite, a);
StoreSpriteCallbackInData6(sprite, sub_81031D0);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
static void sub_81031D0(struct Sprite* sprite)
@ -5394,7 +5396,7 @@ static void sub_81031D0(struct Sprite* sprite)
{
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
StartSpriteAnim(sprite, sprite->data[1]);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
}
@ -5409,7 +5411,7 @@ void sub_8103208(struct Sprite* sprite)
sub_810310C(battler, sprite);
sprite->data[0] = 0;
StoreSpriteCallbackInData6(sprite, sub_8103250);
sprite->callback = sub_80A67BC;
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_8103250(struct Sprite* sprite)
@ -5417,8 +5419,8 @@ static void sub_8103250(struct Sprite* sprite)
if (++sprite->data[0] > 16)
{
StartSpriteAffineAnim(sprite, 1);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67BC;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
}
@ -5441,7 +5443,7 @@ void sub_8103284(struct Sprite* sprite)
sprite->data[3] = sprite->subpriority + 4;
sprite->data[4] = 0;
StoreSpriteCallbackInData6(sprite, sub_8103300);
sprite->callback = sub_80A67BC;
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_8103300(struct Sprite* sprite)
@ -5509,7 +5511,7 @@ static void sub_81033F0(struct Sprite* sprite)
sprite->data[1] = 0;
StartSpriteAnim(sprite, sprite->data[0]);
StoreSpriteCallbackInData6(sprite, sub_810342C);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
}

3884
src/battle_anim_effects_2.c Executable file

File diff suppressed because it is too large Load Diff

4889
src/battle_anim_effects_3.c Executable file

File diff suppressed because it is too large Load Diff

View File

@ -236,7 +236,7 @@ static void sub_81169F8(u8 taskId)
}
else
{
task->data[6] = duplicate_obj_of_side_rel2move_in_transparent_mode(task->data[0]);
task->data[6] = CloneBattlerSpriteWithBlend(task->data[0]);
if (task->data[6] >= 0)
{
gSprites[task->data[6]].oam.priority = task->data[0] ? 1 : 2;

View File

@ -1136,7 +1136,7 @@ static void LinkOpponentHandleLoadMonSprite(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2),
GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
@ -1170,7 +1170,7 @@ static void sub_8066494(u8 battlerId, bool8 dontClearSubstituteBit)
&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
@ -1302,7 +1302,7 @@ static void LinkOpponentHandleDrawTrainerPic(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;

View File

@ -1024,7 +1024,7 @@ static void LinkPartnerHandleLoadMonSprite(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2),
GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@ -1055,7 +1055,7 @@ static void sub_814CC98(u8 battlerId, bool8 dontClearSubstituteBit)
&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
@ -1143,7 +1143,7 @@ static void LinkPartnerHandleDrawTrainerPic(void)
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, (8 - gTrainerBackPicCoords[trainerPicId].coords) * 4 + 80, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;

View File

@ -1128,7 +1128,7 @@ static void OpponentHandleLoadMonSprite(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2),
GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
@ -1163,7 +1163,7 @@ static void sub_80613DC(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gBattlerSpriteIds[battlerId]].data[0] = battlerId;
gSprites[gBattlerSpriteIds[battlerId]].data[2] = species;
@ -1293,7 +1293,7 @@ static void OpponentHandleDrawTrainerPic(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;

View File

@ -2200,7 +2200,7 @@ static void sub_805B258(u8 battlerId, bool8 dontClearSubstituteBit)
&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
@ -2314,7 +2314,7 @@ static void PlayerHandleDrawTrainerPic(void)
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
@ -2329,7 +2329,7 @@ static void PlayerHandleDrawTrainerPic(void)
{
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;

View File

@ -1211,7 +1211,7 @@ static void PlayerPartnerHandleLoadMonSprite(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2),
GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@ -1242,7 +1242,7 @@ static void sub_81BD0E4(u8 battlerId, bool8 dontClearSubstituteBit)
&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
@ -1322,7 +1322,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
{
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
@ -1333,7 +1333,7 @@ static void PlayerPartnerHandleDrawTrainerPic(void)
{
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;

View File

@ -1119,9 +1119,7 @@ static void RecordedOpponentHandleLoadMonSprite(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2),
GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
@ -1154,7 +1152,7 @@ static void sub_81885D8(u8 battlerId, bool8 dontClearSubstituteBit)
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
@ -1251,7 +1249,7 @@ static void RecordedOpponentHandleDrawTrainerPic(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
xPos,
(8 - gTrainerFrontPicCoords[trainerPicId].coords) * 4 + 40,
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 2;

View File

@ -1105,7 +1105,7 @@ static void RecordedPlayerHandleLoadMonSprite(void)
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(gActiveBattler, 2),
GetBattlerSpriteDefault_Y(gActiveBattler),
GetBattlerSubpriority(gActiveBattler));
GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = -240;
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
@ -1136,7 +1136,7 @@ static void sub_818BA6C(u8 battlerId, bool8 dontClearSubstituteBit)
&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;
@ -1236,7 +1236,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
trainerPicId = PlayerGenderToFrontTrainerPicId(gSaveBlock2Ptr->playerGender);
DecompressTrainerFrontPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerFront(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = IndexOfSpritePaletteTag(gTrainerFrontPicPaletteTable[trainerPicId].tag);
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;
@ -1250,7 +1250,7 @@ static void RecordedPlayerHandleDrawTrainerPic(void)
{
DecompressTrainerBackPic(trainerPicId, gActiveBattler);
SetMultiuseSpriteTemplateToTrainerBack(trainerPicId, GetBattlerPosition(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSubpriority(gActiveBattler));
gBattlerSpriteIds[gActiveBattler] = CreateSprite(&gMultiuseSpriteTemplate, xPos, yPos, GetBattlerSpriteSubpriority(gActiveBattler));
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.paletteNum = gActiveBattler;
gSprites[gBattlerSpriteIds[gActiveBattler]].pos2.x = 240;

View File

@ -1464,7 +1464,7 @@ static void sub_816AA80(u8 battlerId)
gBattlerSpriteIds[battlerId] = CreateSprite(&gMultiuseSpriteTemplate,
GetBattlerSpriteCoord(battlerId, 2),
GetBattlerSpriteDefault_Y(battlerId),
GetBattlerSubpriority(battlerId));
GetBattlerSpriteSubpriority(battlerId));
gSprites[gUnknown_03005D7C[battlerId]].data[1] = gBattlerSpriteIds[battlerId];
gSprites[gUnknown_03005D7C[battlerId]].data[2] = battlerId;

View File

@ -526,7 +526,7 @@ static void sub_81A67EC(void)
}
var_40 = sub_81A6F70(factoryBattleMode, factoryLvlMode);
currSpecies = 0;
currSpecies = SPECIES_NONE;
i = 0;
while (i != PARTY_SIZE)
{
@ -546,7 +546,7 @@ static void sub_81A67EC(void)
break;
if (species[j] == gFacilityTrainerMons[monSetId].species)
{
if (currSpecies == 0)
if (currSpecies == SPECIES_NONE)
currSpecies = gFacilityTrainerMons[monSetId].species;
else
break;
@ -561,7 +561,7 @@ static void sub_81A67EC(void)
if (heldItems[j] != 0 && heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
{
if (gFacilityTrainerMons[monSetId].species == currSpecies)
currSpecies = 0;
currSpecies = SPECIES_NONE;
break;
}
}
@ -579,7 +579,7 @@ static void sub_81A67EC(void)
static void sub_81A6A08(void)
{
u8 i;
u8 typesCount[18];
u8 typesCount[NUMBER_OF_MON_TYPES];
u8 usedType[2];
gFacilityTrainerMons = gBattleFrontierMons;

View File

@ -1097,14 +1097,14 @@ void sub_805EB9C(u8 affineMode)
if (IsBattlerSpritePresent(i))
{
gSprites[gBattlerSpriteIds[i]].oam.affineMode = affineMode;
if (affineMode == 0)
if (affineMode == ST_OAM_AFFINE_OFF)
{
gBattleSpritesDataPtr->healthBoxesData[i].field_6 = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
gBattleSpritesDataPtr->healthBoxesData[i].matrixNum = gSprites[gBattlerSpriteIds[i]].oam.matrixNum;
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = 0;
}
else
{
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].field_6;
gSprites[gBattlerSpriteIds[i]].oam.matrixNum = gBattleSpritesDataPtr->healthBoxesData[i].matrixNum;
}
}
}

View File

@ -2122,12 +2122,12 @@ static void sub_8038B94(u8 taskId)
if (species != SPECIES_EGG && hp != 0 && status == 0)
r7 |= 1 << i * 2;
if (species == 0)
if (species == SPECIES_NONE)
continue;
if (hp != 0 && (species == SPECIES_EGG || status != 0))
r7 |= 2 << i * 2;
if (species == 0)
if (species == SPECIES_NONE)
continue;
if (species != SPECIES_EGG && hp == 0)
r7 |= 3 << i * 2;

View File

@ -8648,7 +8648,7 @@ static void atkAE_healpartystatus(void)
u16 species = GetMonData(&party[i], MON_DATA_SPECIES2);
u8 abilityBit = GetMonData(&party[i], MON_DATA_ALT_ABILITY);
if (species != 0 && species != SPECIES_EGG)
if (species != SPECIES_NONE && species != SPECIES_EGG)
{
u8 ability;

View File

@ -13,6 +13,7 @@
#include "string_util.h"
#include "constants/items.h"
#include "constants/region_map_sections.h"
#include "constants/species.h"
// This file's functions.
static void sub_81B99D4(void);
@ -292,7 +293,7 @@ static void sub_81B9EC0(void)
heldItems[i] = 0;
}
gFacilityTrainerMons = gSlateportBattleTentMons;
currSpecies = 0;
currSpecies = SPECIES_NONE;
i = 0;
while (i != PARTY_SIZE)
{
@ -305,7 +306,7 @@ static void sub_81B9EC0(void)
break;
if (species[j] == gFacilityTrainerMons[monSetId].species)
{
if (currSpecies == 0)
if (currSpecies == SPECIES_NONE)
currSpecies = gFacilityTrainerMons[monSetId].species;
else
break;
@ -320,7 +321,7 @@ static void sub_81B9EC0(void)
if (heldItems[j] != 0 && heldItems[j] == gBattleFrontierHeldItems[gFacilityTrainerMons[monSetId].itemTableId])
{
if (gFacilityTrainerMons[monSetId].species == currSpecies)
currSpecies = 0;
currSpecies = SPECIES_NONE;
break;
}
}

View File

@ -395,7 +395,7 @@ void AnimTranslateStinger(struct Sprite *sprite)
lVarY = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[3];
rot = ArcTan2Neg(lVarX - sprite->pos1.x, lVarY - sprite->pos1.y);
rot += 0xC000;
sub_80A73E0(sprite, FALSE, 0x100, 0x100, rot);
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rot);
sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = lVarX;
@ -458,7 +458,7 @@ static void AnimMissileArcStep(struct Sprite *sprite)
u16 rotation = ArcTan2Neg(sprite->pos1.x + sprite->pos2.x - x2,
sprite->pos1.y + sprite->pos2.y - y2);
rotation += 0xC000;
sub_80A73E0(sprite, FALSE, 0x100, 0x100, rotation);
TrySetSpriteRotScale(sprite, FALSE, 0x100, 0x100, rotation);
for (i = 0; i < 8; i++)
data[i] = tempData[i];
@ -479,6 +479,6 @@ void sub_8110994(struct Sprite *sprite)
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + 18;
}
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67BC;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}

View File

@ -2520,7 +2520,7 @@ u8 sub_80DB174(u16 species, u32 otId, u32 personality, u32 index)
spriteId = CreateSprite(&gMultiuseSpriteTemplate, 0x70, GetBattlerSpriteFinal_Y(2, species, FALSE), 30);
gSprites[spriteId].oam.paletteNum = 2;
gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].subpriority = GetBattlerSubpriority(2);
gSprites[spriteId].subpriority = GetBattlerSpriteSubpriority(2);
gSprites[spriteId].callback = SpriteCallbackDummy;
gSprites[spriteId].data[0] = gSprites[spriteId].oam.paletteNum;
gSprites[spriteId].data[2] = species;

View File

@ -1,4 +1,4 @@

const union AnimCmd gAnimCmd_NONE_1[] =
{
ANIMCMD_FRAME(0, 30),
@ -6946,446 +6946,449 @@ const union AnimCmd *const gAnims_UNOWN_QMARK[] ={
gAnimCmd_UNOWN_QMARK_1,
};
#define ANIM_CMD(name) [SPECIES_##name] = gAnims_##name
#define ANIM_CMD_FULL(name, anims) [SPECIES_##name] = anims
const union AnimCmd* const * const gMonAnimationsSpriteAnimsPtrTable[] =
{
gAnims_NONE,
gAnims_BULBASAUR,
gAnims_IVYSAUR,
gAnims_VENUSAUR,
gAnims_CHARMANDER,
gAnims_CHARMELEON,
gAnims_CHARIZARD,
gAnims_SQUIRTLE,
gAnims_WARTORTLE,
gAnims_BLASTOISE,
gAnims_CATERPIE,
gAnims_METAPOD,
gAnims_BUTTERFREE,
gAnims_WEEDLE,
gAnims_KAKUNA,
gAnims_BEEDRILL,
gAnims_PIDGEY,
gAnims_PIDGEOTTO,
gAnims_PIDGEOT,
gAnims_RATTATA,
gAnims_RATICATE,
gAnims_SPEAROW,
gAnims_FEAROW,
gAnims_EKANS,
gAnims_ARBOK,
gAnims_PIKACHU,
gAnims_RAICHU,
gAnims_SANDSHREW,
gAnims_SANDSLASH,
gAnims_NIDORAN_F,
gAnims_NIDORINA,
gAnims_NIDOQUEEN,
gAnims_NIDORAN_M,
gAnims_NIDORINO,
gAnims_NIDOKING,
gAnims_CLEFAIRY,
gAnims_CLEFABLE,
gAnims_VULPIX,
gAnims_NINETALES,
gAnims_JIGGLYPUFF,
gAnims_WIGGLYTUFF,
gAnims_ZUBAT,
gAnims_GOLBAT,
gAnims_ODDISH,
gAnims_GLOOM,
gAnims_VILEPLUME,
gAnims_PARAS,
gAnims_PARASECT,
gAnims_VENONAT,
gAnims_VENOMOTH,
gAnims_DIGLETT,
gAnims_DUGTRIO,
gAnims_MEOWTH,
gAnims_PERSIAN,
gAnims_PSYDUCK,
gAnims_GOLDUCK,
gAnims_MANKEY,
gAnims_PRIMEAPE,
gAnims_GROWLITHE,
gAnims_ARCANINE,
gAnims_POLIWAG,
gAnims_POLIWHIRL,
gAnims_POLIWRATH,
gAnims_ABRA,
gAnims_KADABRA,
gAnims_ALAKAZAM,
gAnims_MACHOP,
gAnims_MACHOKE,
gAnims_MACHAMP,
gAnims_BELLSPROUT,
gAnims_WEEPINBELL,
gAnims_VICTREEBEL,
gAnims_TENTACOOL,
gAnims_TENTACRUEL,
gAnims_GEODUDE,
gAnims_GRAVELER,
gAnims_GOLEM,
gAnims_PONYTA,
gAnims_RAPIDASH,
gAnims_SLOWPOKE,
gAnims_SLOWBRO,
gAnims_MAGNEMITE,
gAnims_MAGNETON,
gAnims_FARFETCHD,
gAnims_DODUO,
gAnims_DODRIO,
gAnims_SEEL,
gAnims_DEWGONG,
gAnims_GRIMER,
gAnims_MUK,
gAnims_SHELLDER,
gAnims_CLOYSTER,
gAnims_GASTLY,
gAnims_HAUNTER,
gAnims_GENGAR,
gAnims_ONIX,
gAnims_DROWZEE,
gAnims_HYPNO,
gAnims_KRABBY,
gAnims_KINGLER,
gAnims_VOLTORB,
gAnims_ELECTRODE,
gAnims_EXEGGCUTE,
gAnims_EXEGGUTOR,
gAnims_CUBONE,
gAnims_MAROWAK,
gAnims_HITMONLEE,
gAnims_HITMONCHAN,
gAnims_LICKITUNG,
gAnims_KOFFING,
gAnims_WEEZING,
gAnims_RHYHORN,
gAnims_RHYDON,
gAnims_CHANSEY,
gAnims_TANGELA,
gAnims_KANGASKHAN,
gAnims_HORSEA,
gAnims_SEADRA,
gAnims_GOLDEEN,
gAnims_SEAKING,
gAnims_STARYU,
gAnims_STARMIE,
gAnims_MR_MIME,
gAnims_SCYTHER,
gAnims_JYNX,
gAnims_ELECTABUZZ,
gAnims_MAGMAR,
gAnims_PINSIR,
gAnims_TAUROS,
gAnims_MAGIKARP,
gAnims_GYARADOS,
gAnims_LAPRAS,
gAnims_DITTO,
gAnims_EEVEE,
gAnims_VAPOREON,
gAnims_JOLTEON,
gAnims_FLAREON,
gAnims_PORYGON,
gAnims_OMANYTE,
gAnims_OMASTAR,
gAnims_KABUTO,
gAnims_KABUTOPS,
gAnims_AERODACTYL,
gAnims_SNORLAX,
gAnims_ARTICUNO,
gAnims_ZAPDOS,
gAnims_MOLTRES,
gAnims_DRATINI,
gAnims_DRAGONAIR,
gAnims_DRAGONITE,
gAnims_MEWTWO,
gAnims_MEW,
gAnims_CHIKORITA,
gAnims_BAYLEEF,
gAnims_MEGANIUM,
gAnims_CYNDAQUIL,
gAnims_QUILAVA,
gAnims_TYPHLOSION,
gAnims_TOTODILE,
gAnims_CROCONAW,
gAnims_FERALIGATR,
gAnims_SENTRET,
gAnims_FURRET,
gAnims_HOOTHOOT,
gAnims_NOCTOWL,
gAnims_LEDYBA,
gAnims_LEDIAN,
gAnims_SPINARAK,
gAnims_ARIADOS,
gAnims_CROBAT,
gAnims_CHINCHOU,
gAnims_LANTURN,
gAnims_PICHU,
gAnims_CLEFFA,
gAnims_IGGLYBUFF,
gAnims_TOGEPI,
gAnims_TOGETIC,
gAnims_NATU,
gAnims_XATU,
gAnims_MAREEP,
gAnims_FLAAFFY,
gAnims_AMPHAROS,
gAnims_BELLOSSOM,
gAnims_MARILL,
gAnims_AZUMARILL,
gAnims_SUDOWOODO,
gAnims_POLITOED,
gAnims_HOPPIP,
gAnims_SKIPLOOM,
gAnims_JUMPLUFF,
gAnims_AIPOM,
gAnims_SUNKERN,
gAnims_SUNFLORA,
gAnims_YANMA,
gAnims_WOOPER,
gAnims_QUAGSIRE,
gAnims_ESPEON,
gAnims_UMBREON,
gAnims_MURKROW,
gAnims_SLOWKING,
gAnims_MISDREAVUS,
gAnims_UNOWN,
gAnims_WOBBUFFET,
gAnims_GIRAFARIG,
gAnims_PINECO,
gAnims_FORRETRESS,
gAnims_DUNSPARCE,
gAnims_GLIGAR,
gAnims_STEELIX,
gAnims_SNUBBULL,
gAnims_GRANBULL,
gAnims_QWILFISH,
gAnims_SCIZOR,
gAnims_SHUCKLE,
gAnims_HERACROSS,
gAnims_SNEASEL,
gAnims_TEDDIURSA,
gAnims_URSARING,
gAnims_SLUGMA,
gAnims_MAGCARGO,
gAnims_SWINUB,
gAnims_PILOSWINE,
gAnims_CORSOLA,
gAnims_REMORAID,
gAnims_OCTILLERY,
gAnims_DELIBIRD,
gAnims_MANTINE,
gAnims_SKARMORY,
gAnims_HOUNDOUR,
gAnims_HOUNDOOM,
gAnims_KINGDRA,
gAnims_PHANPY,
gAnims_DONPHAN,
gAnims_PORYGON2,
gAnims_STANTLER,
gAnims_SMEARGLE,
gAnims_TYROGUE,
gAnims_HITMONTOP,
gAnims_SMOOCHUM,
gAnims_ELEKID,
gAnims_MAGBY,
gAnims_MILTANK,
gAnims_BLISSEY,
gAnims_RAIKOU,
gAnims_ENTEI,
gAnims_SUICUNE,
gAnims_LARVITAR,
gAnims_PUPITAR,
gAnims_TYRANITAR,
gAnims_LUGIA,
gAnims_HO_OH,
gAnims_CELEBI,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_OLD_UNOWN_B,
gAnims_TREECKO,
gAnims_GROVYLE,
gAnims_SCEPTILE,
gAnims_TORCHIC,
gAnims_COMBUSKEN,
gAnims_BLAZIKEN,
gAnims_MUDKIP,
gAnims_MARSHTOMP,
gAnims_SWAMPERT,
gAnims_POOCHYENA,
gAnims_MIGHTYENA,
gAnims_ZIGZAGOON,
gAnims_LINOONE,
gAnims_WURMPLE,
gAnims_SILCOON,
gAnims_BEAUTIFLY,
gAnims_CASCOON,
gAnims_DUSTOX,
gAnims_LOTAD,
gAnims_LOMBRE,
gAnims_LUDICOLO,
gAnims_SEEDOT,
gAnims_NUZLEAF,
gAnims_SHIFTRY,
gAnims_NINCADA,
gAnims_NINJASK,
gAnims_SHEDINJA,
gAnims_TAILLOW,
gAnims_SWELLOW,
gAnims_SHROOMISH,
gAnims_BRELOOM,
gAnims_SPINDA,
gAnims_WINGULL,
gAnims_PELIPPER,
gAnims_SURSKIT,
gAnims_MASQUERAIN,
gAnims_WAILMER,
gAnims_WAILORD,
gAnims_SKITTY,
gAnims_DELCATTY,
gAnims_KECLEON,
gAnims_BALTOY,
gAnims_CLAYDOL,
gAnims_NOSEPASS,
gAnims_TORKOAL,
gAnims_SABLEYE,
gAnims_BARBOACH,
gAnims_WHISCASH,
gAnims_LUVDISC,
gAnims_CORPHISH,
gAnims_CRAWDAUNT,
gAnims_FEEBAS,
gAnims_MILOTIC,
gAnims_CARVANHA,
gAnims_SHARPEDO,
gAnims_TRAPINCH,
gAnims_VIBRAVA,
gAnims_FLYGON,
gAnims_MAKUHITA,
gAnims_HARIYAMA,
gAnims_ELECTRIKE,
gAnims_MANECTRIC,
gAnims_NUMEL,
gAnims_CAMERUPT,
gAnims_SPHEAL,
gAnims_SEALEO,
gAnims_WALREIN,
gAnims_CACNEA,
gAnims_CACTURNE,
gAnims_SNORUNT,
gAnims_GLALIE,
gAnims_LUNATONE,
gAnims_SOLROCK,
gAnims_AZURILL,
gAnims_SPOINK,
gAnims_GRUMPIG,
gAnims_PLUSLE,
gAnims_MINUN,
gAnims_MAWILE,
gAnims_MEDITITE,
gAnims_MEDICHAM,
gAnims_SWABLU,
gAnims_ALTARIA,
gAnims_WYNAUT,
gAnims_DUSKULL,
gAnims_DUSCLOPS,
gAnims_ROSELIA,
gAnims_SLAKOTH,
gAnims_VIGOROTH,
gAnims_SLAKING,
gAnims_GULPIN,
gAnims_SWALOT,
gAnims_TROPIUS,
gAnims_WHISMUR,
gAnims_LOUDRED,
gAnims_EXPLOUD,
gAnims_CLAMPERL,
gAnims_HUNTAIL,
gAnims_GOREBYSS,
gAnims_ABSOL,
gAnims_SHUPPET,
gAnims_BANETTE,
gAnims_SEVIPER,
gAnims_ZANGOOSE,
gAnims_RELICANTH,
gAnims_ARON,
gAnims_LAIRON,
gAnims_AGGRON,
gAnims_CASTFORM,
gAnims_VOLBEAT,
gAnims_ILLUMISE,
gAnims_LILEEP,
gAnims_CRADILY,
gAnims_ANORITH,
gAnims_ARMALDO,
gAnims_RALTS,
gAnims_KIRLIA,
gAnims_GARDEVOIR,
gAnims_BAGON,
gAnims_SHELGON,
gAnims_SALAMENCE,
gAnims_BELDUM,
gAnims_METANG,
gAnims_METAGROSS,
gAnims_REGIROCK,
gAnims_REGICE,
gAnims_REGISTEEL,
gAnims_KYOGRE,
gAnims_GROUDON,
gAnims_RAYQUAZA,
gAnims_LATIAS,
gAnims_LATIOS,
gAnims_JIRACHI,
gAnims_DEOXYS,
gAnims_CHIMECHO,
gAnims_EGG,
gAnims_UNOWN_B,
gAnims_UNOWN_C,
gAnims_UNOWN_D,
gAnims_UNOWN_E,
gAnims_UNOWN_F,
gAnims_UNOWN_G,
gAnims_UNOWN_H,
gAnims_UNOWN_I,
gAnims_UNOWN_J,
gAnims_UNOWN_K,
gAnims_UNOWN_L,
gAnims_UNOWN_M,
gAnims_UNOWN_N,
gAnims_UNOWN_O,
gAnims_UNOWN_P,
gAnims_UNOWN_Q,
gAnims_UNOWN_R,
gAnims_UNOWN_S,
gAnims_UNOWN_T,
gAnims_UNOWN_U,
gAnims_UNOWN_V,
gAnims_UNOWN_W,
gAnims_UNOWN_X,
gAnims_UNOWN_Y,
gAnims_UNOWN_Z,
gAnims_UNOWN_EMARK,
gAnims_UNOWN_QMARK,
ANIM_CMD(NONE),
ANIM_CMD(BULBASAUR),
ANIM_CMD(IVYSAUR),
ANIM_CMD(VENUSAUR),
ANIM_CMD(CHARMANDER),
ANIM_CMD(CHARMELEON),
ANIM_CMD(CHARIZARD),
ANIM_CMD(SQUIRTLE),
ANIM_CMD(WARTORTLE),
ANIM_CMD(BLASTOISE),
ANIM_CMD(CATERPIE),
ANIM_CMD(METAPOD),
ANIM_CMD(BUTTERFREE),
ANIM_CMD(WEEDLE),
ANIM_CMD(KAKUNA),
ANIM_CMD(BEEDRILL),
ANIM_CMD(PIDGEY),
ANIM_CMD(PIDGEOTTO),
ANIM_CMD(PIDGEOT),
ANIM_CMD(RATTATA),
ANIM_CMD(RATICATE),
ANIM_CMD(SPEAROW),
ANIM_CMD(FEAROW),
ANIM_CMD(EKANS),
ANIM_CMD(ARBOK),
ANIM_CMD(PIKACHU),
ANIM_CMD(RAICHU),
ANIM_CMD(SANDSHREW),
ANIM_CMD(SANDSLASH),
ANIM_CMD(NIDORAN_F),
ANIM_CMD(NIDORINA),
ANIM_CMD(NIDOQUEEN),
ANIM_CMD(NIDORAN_M),
ANIM_CMD(NIDORINO),
ANIM_CMD(NIDOKING),
ANIM_CMD(CLEFAIRY),
ANIM_CMD(CLEFABLE),
ANIM_CMD(VULPIX),
ANIM_CMD(NINETALES),
ANIM_CMD(JIGGLYPUFF),
ANIM_CMD(WIGGLYTUFF),
ANIM_CMD(ZUBAT),
ANIM_CMD(GOLBAT),
ANIM_CMD(ODDISH),
ANIM_CMD(GLOOM),
ANIM_CMD(VILEPLUME),
ANIM_CMD(PARAS),
ANIM_CMD(PARASECT),
ANIM_CMD(VENONAT),
ANIM_CMD(VENOMOTH),
ANIM_CMD(DIGLETT),
ANIM_CMD(DUGTRIO),
ANIM_CMD(MEOWTH),
ANIM_CMD(PERSIAN),
ANIM_CMD(PSYDUCK),
ANIM_CMD(GOLDUCK),
ANIM_CMD(MANKEY),
ANIM_CMD(PRIMEAPE),
ANIM_CMD(GROWLITHE),
ANIM_CMD(ARCANINE),
ANIM_CMD(POLIWAG),
ANIM_CMD(POLIWHIRL),
ANIM_CMD(POLIWRATH),
ANIM_CMD(ABRA),
ANIM_CMD(KADABRA),
ANIM_CMD(ALAKAZAM),
ANIM_CMD(MACHOP),
ANIM_CMD(MACHOKE),
ANIM_CMD(MACHAMP),
ANIM_CMD(BELLSPROUT),
ANIM_CMD(WEEPINBELL),
ANIM_CMD(VICTREEBEL),
ANIM_CMD(TENTACOOL),
ANIM_CMD(TENTACRUEL),
ANIM_CMD(GEODUDE),
ANIM_CMD(GRAVELER),
ANIM_CMD(GOLEM),
ANIM_CMD(PONYTA),
ANIM_CMD(RAPIDASH),
ANIM_CMD(SLOWPOKE),
ANIM_CMD(SLOWBRO),
ANIM_CMD(MAGNEMITE),
ANIM_CMD(MAGNETON),
ANIM_CMD(FARFETCHD),
ANIM_CMD(DODUO),
ANIM_CMD(DODRIO),
ANIM_CMD(SEEL),
ANIM_CMD(DEWGONG),
ANIM_CMD(GRIMER),
ANIM_CMD(MUK),
ANIM_CMD(SHELLDER),
ANIM_CMD(CLOYSTER),
ANIM_CMD(GASTLY),
ANIM_CMD(HAUNTER),
ANIM_CMD(GENGAR),
ANIM_CMD(ONIX),
ANIM_CMD(DROWZEE),
ANIM_CMD(HYPNO),
ANIM_CMD(KRABBY),
ANIM_CMD(KINGLER),
ANIM_CMD(VOLTORB),
ANIM_CMD(ELECTRODE),
ANIM_CMD(EXEGGCUTE),
ANIM_CMD(EXEGGUTOR),
ANIM_CMD(CUBONE),
ANIM_CMD(MAROWAK),
ANIM_CMD(HITMONLEE),
ANIM_CMD(HITMONCHAN),
ANIM_CMD(LICKITUNG),
ANIM_CMD(KOFFING),
ANIM_CMD(WEEZING),
ANIM_CMD(RHYHORN),
ANIM_CMD(RHYDON),
ANIM_CMD(CHANSEY),
ANIM_CMD(TANGELA),
ANIM_CMD(KANGASKHAN),
ANIM_CMD(HORSEA),
ANIM_CMD(SEADRA),
ANIM_CMD(GOLDEEN),
ANIM_CMD(SEAKING),
ANIM_CMD(STARYU),
ANIM_CMD(STARMIE),
ANIM_CMD(MR_MIME),
ANIM_CMD(SCYTHER),
ANIM_CMD(JYNX),
ANIM_CMD(ELECTABUZZ),
ANIM_CMD(MAGMAR),
ANIM_CMD(PINSIR),
ANIM_CMD(TAUROS),
ANIM_CMD(MAGIKARP),
ANIM_CMD(GYARADOS),
ANIM_CMD(LAPRAS),
ANIM_CMD(DITTO),
ANIM_CMD(EEVEE),
ANIM_CMD(VAPOREON),
ANIM_CMD(JOLTEON),
ANIM_CMD(FLAREON),
ANIM_CMD(PORYGON),
ANIM_CMD(OMANYTE),
ANIM_CMD(OMASTAR),
ANIM_CMD(KABUTO),
ANIM_CMD(KABUTOPS),
ANIM_CMD(AERODACTYL),
ANIM_CMD(SNORLAX),
ANIM_CMD(ARTICUNO),
ANIM_CMD(ZAPDOS),
ANIM_CMD(MOLTRES),
ANIM_CMD(DRATINI),
ANIM_CMD(DRAGONAIR),
ANIM_CMD(DRAGONITE),
ANIM_CMD(MEWTWO),
ANIM_CMD(MEW),
ANIM_CMD(CHIKORITA),
ANIM_CMD(BAYLEEF),
ANIM_CMD(MEGANIUM),
ANIM_CMD(CYNDAQUIL),
ANIM_CMD(QUILAVA),
ANIM_CMD(TYPHLOSION),
ANIM_CMD(TOTODILE),
ANIM_CMD(CROCONAW),
ANIM_CMD(FERALIGATR),
ANIM_CMD(SENTRET),
ANIM_CMD(FURRET),
ANIM_CMD(HOOTHOOT),
ANIM_CMD(NOCTOWL),
ANIM_CMD(LEDYBA),
ANIM_CMD(LEDIAN),
ANIM_CMD(SPINARAK),
ANIM_CMD(ARIADOS),
ANIM_CMD(CROBAT),
ANIM_CMD(CHINCHOU),
ANIM_CMD(LANTURN),
ANIM_CMD(PICHU),
ANIM_CMD(CLEFFA),
ANIM_CMD(IGGLYBUFF),
ANIM_CMD(TOGEPI),
ANIM_CMD(TOGETIC),
ANIM_CMD(NATU),
ANIM_CMD(XATU),
ANIM_CMD(MAREEP),
ANIM_CMD(FLAAFFY),
ANIM_CMD(AMPHAROS),
ANIM_CMD(BELLOSSOM),
ANIM_CMD(MARILL),
ANIM_CMD(AZUMARILL),
ANIM_CMD(SUDOWOODO),
ANIM_CMD(POLITOED),
ANIM_CMD(HOPPIP),
ANIM_CMD(SKIPLOOM),
ANIM_CMD(JUMPLUFF),
ANIM_CMD(AIPOM),
ANIM_CMD(SUNKERN),
ANIM_CMD(SUNFLORA),
ANIM_CMD(YANMA),
ANIM_CMD(WOOPER),
ANIM_CMD(QUAGSIRE),
ANIM_CMD(ESPEON),
ANIM_CMD(UMBREON),
ANIM_CMD(MURKROW),
ANIM_CMD(SLOWKING),
ANIM_CMD(MISDREAVUS),
ANIM_CMD(UNOWN),
ANIM_CMD(WOBBUFFET),
ANIM_CMD(GIRAFARIG),
ANIM_CMD(PINECO),
ANIM_CMD(FORRETRESS),
ANIM_CMD(DUNSPARCE),
ANIM_CMD(GLIGAR),
ANIM_CMD(STEELIX),
ANIM_CMD(SNUBBULL),
ANIM_CMD(GRANBULL),
ANIM_CMD(QWILFISH),
ANIM_CMD(SCIZOR),
ANIM_CMD(SHUCKLE),
ANIM_CMD(HERACROSS),
ANIM_CMD(SNEASEL),
ANIM_CMD(TEDDIURSA),
ANIM_CMD(URSARING),
ANIM_CMD(SLUGMA),
ANIM_CMD(MAGCARGO),
ANIM_CMD(SWINUB),
ANIM_CMD(PILOSWINE),
ANIM_CMD(CORSOLA),
ANIM_CMD(REMORAID),
ANIM_CMD(OCTILLERY),
ANIM_CMD(DELIBIRD),
ANIM_CMD(MANTINE),
ANIM_CMD(SKARMORY),
ANIM_CMD(HOUNDOUR),
ANIM_CMD(HOUNDOOM),
ANIM_CMD(KINGDRA),
ANIM_CMD(PHANPY),
ANIM_CMD(DONPHAN),
ANIM_CMD(PORYGON2),
ANIM_CMD(STANTLER),
ANIM_CMD(SMEARGLE),
ANIM_CMD(TYROGUE),
ANIM_CMD(HITMONTOP),
ANIM_CMD(SMOOCHUM),
ANIM_CMD(ELEKID),
ANIM_CMD(MAGBY),
ANIM_CMD(MILTANK),
ANIM_CMD(BLISSEY),
ANIM_CMD(RAIKOU),
ANIM_CMD(ENTEI),
ANIM_CMD(SUICUNE),
ANIM_CMD(LARVITAR),
ANIM_CMD(PUPITAR),
ANIM_CMD(TYRANITAR),
ANIM_CMD(LUGIA),
ANIM_CMD(HO_OH),
ANIM_CMD(CELEBI),
ANIM_CMD(OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_C, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_D, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_E, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_F, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_G, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_H, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_I, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_J, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_K, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_L, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_M, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_N, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_O, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_P, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_Q, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_R, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_S, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_T, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_U, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_V, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_W, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_X, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_Y, gAnims_OLD_UNOWN_B),
ANIM_CMD_FULL(OLD_UNOWN_Z, gAnims_OLD_UNOWN_B),
ANIM_CMD(TREECKO),
ANIM_CMD(GROVYLE),
ANIM_CMD(SCEPTILE),
ANIM_CMD(TORCHIC),
ANIM_CMD(COMBUSKEN),
ANIM_CMD(BLAZIKEN),
ANIM_CMD(MUDKIP),
ANIM_CMD(MARSHTOMP),
ANIM_CMD(SWAMPERT),
ANIM_CMD(POOCHYENA),
ANIM_CMD(MIGHTYENA),
ANIM_CMD(ZIGZAGOON),
ANIM_CMD(LINOONE),
ANIM_CMD(WURMPLE),
ANIM_CMD(SILCOON),
ANIM_CMD(BEAUTIFLY),
ANIM_CMD(CASCOON),
ANIM_CMD(DUSTOX),
ANIM_CMD(LOTAD),
ANIM_CMD(LOMBRE),
ANIM_CMD(LUDICOLO),
ANIM_CMD(SEEDOT),
ANIM_CMD(NUZLEAF),
ANIM_CMD(SHIFTRY),
ANIM_CMD(NINCADA),
ANIM_CMD(NINJASK),
ANIM_CMD(SHEDINJA),
ANIM_CMD(TAILLOW),
ANIM_CMD(SWELLOW),
ANIM_CMD(SHROOMISH),
ANIM_CMD(BRELOOM),
ANIM_CMD(SPINDA),
ANIM_CMD(WINGULL),
ANIM_CMD(PELIPPER),
ANIM_CMD(SURSKIT),
ANIM_CMD(MASQUERAIN),
ANIM_CMD(WAILMER),
ANIM_CMD(WAILORD),
ANIM_CMD(SKITTY),
ANIM_CMD(DELCATTY),
ANIM_CMD(KECLEON),
ANIM_CMD(BALTOY),
ANIM_CMD(CLAYDOL),
ANIM_CMD(NOSEPASS),
ANIM_CMD(TORKOAL),
ANIM_CMD(SABLEYE),
ANIM_CMD(BARBOACH),
ANIM_CMD(WHISCASH),
ANIM_CMD(LUVDISC),
ANIM_CMD(CORPHISH),
ANIM_CMD(CRAWDAUNT),
ANIM_CMD(FEEBAS),
ANIM_CMD(MILOTIC),
ANIM_CMD(CARVANHA),
ANIM_CMD(SHARPEDO),
ANIM_CMD(TRAPINCH),
ANIM_CMD(VIBRAVA),
ANIM_CMD(FLYGON),
ANIM_CMD(MAKUHITA),
ANIM_CMD(HARIYAMA),
ANIM_CMD(ELECTRIKE),
ANIM_CMD(MANECTRIC),
ANIM_CMD(NUMEL),
ANIM_CMD(CAMERUPT),
ANIM_CMD(SPHEAL),
ANIM_CMD(SEALEO),
ANIM_CMD(WALREIN),
ANIM_CMD(CACNEA),
ANIM_CMD(CACTURNE),
ANIM_CMD(SNORUNT),
ANIM_CMD(GLALIE),
ANIM_CMD(LUNATONE),
ANIM_CMD(SOLROCK),
ANIM_CMD(AZURILL),
ANIM_CMD(SPOINK),
ANIM_CMD(GRUMPIG),
ANIM_CMD(PLUSLE),
ANIM_CMD(MINUN),
ANIM_CMD(MAWILE),
ANIM_CMD(MEDITITE),
ANIM_CMD(MEDICHAM),
ANIM_CMD(SWABLU),
ANIM_CMD(ALTARIA),
ANIM_CMD(WYNAUT),
ANIM_CMD(DUSKULL),
ANIM_CMD(DUSCLOPS),
ANIM_CMD(ROSELIA),
ANIM_CMD(SLAKOTH),
ANIM_CMD(VIGOROTH),
ANIM_CMD(SLAKING),
ANIM_CMD(GULPIN),
ANIM_CMD(SWALOT),
ANIM_CMD(TROPIUS),
ANIM_CMD(WHISMUR),
ANIM_CMD(LOUDRED),
ANIM_CMD(EXPLOUD),
ANIM_CMD(CLAMPERL),
ANIM_CMD(HUNTAIL),
ANIM_CMD(GOREBYSS),
ANIM_CMD(ABSOL),
ANIM_CMD(SHUPPET),
ANIM_CMD(BANETTE),
ANIM_CMD(SEVIPER),
ANIM_CMD(ZANGOOSE),
ANIM_CMD(RELICANTH),
ANIM_CMD(ARON),
ANIM_CMD(LAIRON),
ANIM_CMD(AGGRON),
ANIM_CMD(CASTFORM),
ANIM_CMD(VOLBEAT),
ANIM_CMD(ILLUMISE),
ANIM_CMD(LILEEP),
ANIM_CMD(CRADILY),
ANIM_CMD(ANORITH),
ANIM_CMD(ARMALDO),
ANIM_CMD(RALTS),
ANIM_CMD(KIRLIA),
ANIM_CMD(GARDEVOIR),
ANIM_CMD(BAGON),
ANIM_CMD(SHELGON),
ANIM_CMD(SALAMENCE),
ANIM_CMD(BELDUM),
ANIM_CMD(METANG),
ANIM_CMD(METAGROSS),
ANIM_CMD(REGIROCK),
ANIM_CMD(REGICE),
ANIM_CMD(REGISTEEL),
ANIM_CMD(KYOGRE),
ANIM_CMD(GROUDON),
ANIM_CMD(RAYQUAZA),
ANIM_CMD(LATIAS),
ANIM_CMD(LATIOS),
ANIM_CMD(JIRACHI),
ANIM_CMD(DEOXYS),
ANIM_CMD(CHIMECHO),
ANIM_CMD(EGG),
ANIM_CMD(UNOWN_B),
ANIM_CMD(UNOWN_C),
ANIM_CMD(UNOWN_D),
ANIM_CMD(UNOWN_E),
ANIM_CMD(UNOWN_F),
ANIM_CMD(UNOWN_G),
ANIM_CMD(UNOWN_H),
ANIM_CMD(UNOWN_I),
ANIM_CMD(UNOWN_J),
ANIM_CMD(UNOWN_K),
ANIM_CMD(UNOWN_L),
ANIM_CMD(UNOWN_M),
ANIM_CMD(UNOWN_N),
ANIM_CMD(UNOWN_O),
ANIM_CMD(UNOWN_P),
ANIM_CMD(UNOWN_Q),
ANIM_CMD(UNOWN_R),
ANIM_CMD(UNOWN_S),
ANIM_CMD(UNOWN_T),
ANIM_CMD(UNOWN_U),
ANIM_CMD(UNOWN_V),
ANIM_CMD(UNOWN_W),
ANIM_CMD(UNOWN_X),
ANIM_CMD(UNOWN_Y),
ANIM_CMD(UNOWN_Z),
ANIM_CMD(UNOWN_EMARK),
ANIM_CMD(UNOWN_QMARK),
};

View File

@ -1,446 +1,448 @@
#define STILL_FRONT_PIC(species, frontpic) [SPECIES_##species] = {frontpic, 0x800, SPECIES_##species}
const struct CompressedSpriteSheet gMonStillFrontPicTable[] =
{ //.data .size .tag
gMonStillFrontPic_CircledQuestionMark, 0x800, 0,
gMonStillFrontPic_Bulbasaur, 0x800, 1,
gMonStillFrontPic_Ivysaur, 0x800, 2,
gMonStillFrontPic_Venusaur, 0x800, 3,
gMonStillFrontPic_Charmander, 0x800, 4,
gMonStillFrontPic_Charmeleon, 0x800, 5,
gMonStillFrontPic_Charizard, 0x800, 6,
gMonStillFrontPic_Squirtle, 0x800, 7,
gMonStillFrontPic_Wartortle, 0x800, 8,
gMonStillFrontPic_Blastoise, 0x800, 9,
gMonStillFrontPic_Caterpie, 0x800, 10,
gMonStillFrontPic_Metapod, 0x800, 11,
gMonStillFrontPic_Butterfree, 0x800, 12,
gMonStillFrontPic_Weedle, 0x800, 13,
gMonStillFrontPic_Kakuna, 0x800, 14,
gMonStillFrontPic_Beedrill, 0x800, 15,
gMonStillFrontPic_Pidgey, 0x800, 16,
gMonStillFrontPic_Pidgeotto, 0x800, 17,
gMonStillFrontPic_Pidgeot, 0x800, 18,
gMonStillFrontPic_Rattata, 0x800, 19,
gMonStillFrontPic_Raticate, 0x800, 20,
gMonStillFrontPic_Spearow, 0x800, 21,
gMonStillFrontPic_Fearow, 0x800, 22,
gMonStillFrontPic_Ekans, 0x800, 23,
gMonStillFrontPic_Arbok, 0x800, 24,
gMonStillFrontPic_Pikachu, 0x800, 25,
gMonStillFrontPic_Raichu, 0x800, 26,
gMonStillFrontPic_Sandshrew, 0x800, 27,
gMonStillFrontPic_Sandslash, 0x800, 28,
gMonStillFrontPic_NidoranF, 0x800, 29,
gMonStillFrontPic_Nidorina, 0x800, 30,
gMonStillFrontPic_Nidoqueen, 0x800, 31,
gMonStillFrontPic_NidoranM, 0x800, 32,
gMonStillFrontPic_Nidorino, 0x800, 33,
gMonStillFrontPic_Nidoking, 0x800, 34,
gMonStillFrontPic_Clefairy, 0x800, 35,
gMonStillFrontPic_Clefable, 0x800, 36,
gMonStillFrontPic_Vulpix, 0x800, 37,
gMonStillFrontPic_Ninetales, 0x800, 38,
gMonStillFrontPic_Jigglypuff, 0x800, 39,
gMonStillFrontPic_Wigglytuff, 0x800, 40,
gMonStillFrontPic_Zubat, 0x800, 41,
gMonStillFrontPic_Golbat, 0x800, 42,
gMonStillFrontPic_Oddish, 0x800, 43,
gMonStillFrontPic_Gloom, 0x800, 44,
gMonStillFrontPic_Vileplume, 0x800, 45,
gMonStillFrontPic_Paras, 0x800, 46,
gMonStillFrontPic_Parasect, 0x800, 47,
gMonStillFrontPic_Venonat, 0x800, 48,
gMonStillFrontPic_Venomoth, 0x800, 49,
gMonStillFrontPic_Diglett, 0x800, 50,
gMonStillFrontPic_Dugtrio, 0x800, 51,
gMonStillFrontPic_Meowth, 0x800, 52,
gMonStillFrontPic_Persian, 0x800, 53,
gMonStillFrontPic_Psyduck, 0x800, 54,
gMonStillFrontPic_Golduck, 0x800, 55,
gMonStillFrontPic_Mankey, 0x800, 56,
gMonStillFrontPic_Primeape, 0x800, 57,
gMonStillFrontPic_Growlithe, 0x800, 58,
gMonStillFrontPic_Arcanine, 0x800, 59,
gMonStillFrontPic_Poliwag, 0x800, 60,
gMonStillFrontPic_Poliwhirl, 0x800, 61,
gMonStillFrontPic_Poliwrath, 0x800, 62,
gMonStillFrontPic_Abra, 0x800, 63,
gMonStillFrontPic_Kadabra, 0x800, 64,
gMonStillFrontPic_Alakazam, 0x800, 65,
gMonStillFrontPic_Machop, 0x800, 66,
gMonStillFrontPic_Machoke, 0x800, 67,
gMonStillFrontPic_Machamp, 0x800, 68,
gMonStillFrontPic_Bellsprout, 0x800, 69,
gMonStillFrontPic_Weepinbell, 0x800, 70,
gMonStillFrontPic_Victreebel, 0x800, 71,
gMonStillFrontPic_Tentacool, 0x800, 72,
gMonStillFrontPic_Tentacruel, 0x800, 73,
gMonStillFrontPic_Geodude, 0x800, 74,
gMonStillFrontPic_Graveler, 0x800, 75,
gMonStillFrontPic_Golem, 0x800, 76,
gMonStillFrontPic_Ponyta, 0x800, 77,
gMonStillFrontPic_Rapidash, 0x800, 78,
gMonStillFrontPic_Slowpoke, 0x800, 79,
gMonStillFrontPic_Slowbro, 0x800, 80,
gMonStillFrontPic_Magnemite, 0x800, 81,
gMonStillFrontPic_Magneton, 0x800, 82,
gMonStillFrontPic_Farfetchd, 0x800, 83,
gMonStillFrontPic_Doduo, 0x800, 84,
gMonStillFrontPic_Dodrio, 0x800, 85,
gMonStillFrontPic_Seel, 0x800, 86,
gMonStillFrontPic_Dewgong, 0x800, 87,
gMonStillFrontPic_Grimer, 0x800, 88,
gMonStillFrontPic_Muk, 0x800, 89,
gMonStillFrontPic_Shellder, 0x800, 90,
gMonStillFrontPic_Cloyster, 0x800, 91,
gMonStillFrontPic_Gastly, 0x800, 92,
gMonStillFrontPic_Haunter, 0x800, 93,
gMonStillFrontPic_Gengar, 0x800, 94,
gMonStillFrontPic_Onix, 0x800, 95,
gMonStillFrontPic_Drowzee, 0x800, 96,
gMonStillFrontPic_Hypno, 0x800, 97,
gMonStillFrontPic_Krabby, 0x800, 98,
gMonStillFrontPic_Kingler, 0x800, 99,
gMonStillFrontPic_Voltorb, 0x800, 100,
gMonStillFrontPic_Electrode, 0x800, 101,
gMonStillFrontPic_Exeggcute, 0x800, 102,
gMonStillFrontPic_Exeggutor, 0x800, 103,
gMonStillFrontPic_Cubone, 0x800, 104,
gMonStillFrontPic_Marowak, 0x800, 105,
gMonStillFrontPic_Hitmonlee, 0x800, 106,
gMonStillFrontPic_Hitmonchan, 0x800, 107,
gMonStillFrontPic_Lickitung, 0x800, 108,
gMonStillFrontPic_Koffing, 0x800, 109,
gMonStillFrontPic_Weezing, 0x800, 110,
gMonStillFrontPic_Rhyhorn, 0x800, 111,
gMonStillFrontPic_Rhydon, 0x800, 112,
gMonStillFrontPic_Chansey, 0x800, 113,
gMonStillFrontPic_Tangela, 0x800, 114,
gMonStillFrontPic_Kangaskhan, 0x800, 115,
gMonStillFrontPic_Horsea, 0x800, 116,
gMonStillFrontPic_Seadra, 0x800, 117,
gMonStillFrontPic_Goldeen, 0x800, 118,
gMonStillFrontPic_Seaking, 0x800, 119,
gMonStillFrontPic_Staryu, 0x800, 120,
gMonStillFrontPic_Starmie, 0x800, 121,
gMonStillFrontPic_Mrmime, 0x800, 122,
gMonStillFrontPic_Scyther, 0x800, 123,
gMonStillFrontPic_Jynx, 0x800, 124,
gMonStillFrontPic_Electabuzz, 0x800, 125,
gMonStillFrontPic_Magmar, 0x800, 126,
gMonStillFrontPic_Pinsir, 0x800, 127,
gMonStillFrontPic_Tauros, 0x800, 128,
gMonStillFrontPic_Magikarp, 0x800, 129,
gMonStillFrontPic_Gyarados, 0x800, 130,
gMonStillFrontPic_Lapras, 0x800, 131,
gMonStillFrontPic_Ditto, 0x800, 132,
gMonStillFrontPic_Eevee, 0x800, 133,
gMonStillFrontPic_Vaporeon, 0x800, 134,
gMonStillFrontPic_Jolteon, 0x800, 135,
gMonStillFrontPic_Flareon, 0x800, 136,
gMonStillFrontPic_Porygon, 0x800, 137,
gMonStillFrontPic_Omanyte, 0x800, 138,
gMonStillFrontPic_Omastar, 0x800, 139,
gMonStillFrontPic_Kabuto, 0x800, 140,
gMonStillFrontPic_Kabutops, 0x800, 141,
gMonStillFrontPic_Aerodactyl, 0x800, 142,
gMonStillFrontPic_Snorlax, 0x800, 143,
gMonStillFrontPic_Articuno, 0x800, 144,
gMonStillFrontPic_Zapdos, 0x800, 145,
gMonStillFrontPic_Moltres, 0x800, 146,
gMonStillFrontPic_Dratini, 0x800, 147,
gMonStillFrontPic_Dragonair, 0x800, 148,
gMonStillFrontPic_Dragonite, 0x800, 149,
gMonStillFrontPic_Mewtwo, 0x800, 150,
gMonStillFrontPic_Mew, 0x800, 151,
{
STILL_FRONT_PIC(NONE, gMonStillFrontPic_CircledQuestionMark),
STILL_FRONT_PIC(BULBASAUR, gMonStillFrontPic_Bulbasaur),
STILL_FRONT_PIC(IVYSAUR, gMonStillFrontPic_Ivysaur),
STILL_FRONT_PIC(VENUSAUR, gMonStillFrontPic_Venusaur),
STILL_FRONT_PIC(CHARMANDER, gMonStillFrontPic_Charmander),
STILL_FRONT_PIC(CHARMELEON, gMonStillFrontPic_Charmeleon),
STILL_FRONT_PIC(CHARIZARD, gMonStillFrontPic_Charizard),
STILL_FRONT_PIC(SQUIRTLE, gMonStillFrontPic_Squirtle),
STILL_FRONT_PIC(WARTORTLE, gMonStillFrontPic_Wartortle),
STILL_FRONT_PIC(BLASTOISE, gMonStillFrontPic_Blastoise),
STILL_FRONT_PIC(CATERPIE, gMonStillFrontPic_Caterpie),
STILL_FRONT_PIC(METAPOD, gMonStillFrontPic_Metapod),
STILL_FRONT_PIC(BUTTERFREE, gMonStillFrontPic_Butterfree),
STILL_FRONT_PIC(WEEDLE, gMonStillFrontPic_Weedle),
STILL_FRONT_PIC(KAKUNA, gMonStillFrontPic_Kakuna),
STILL_FRONT_PIC(BEEDRILL, gMonStillFrontPic_Beedrill),
STILL_FRONT_PIC(PIDGEY, gMonStillFrontPic_Pidgey),
STILL_FRONT_PIC(PIDGEOTTO, gMonStillFrontPic_Pidgeotto),
STILL_FRONT_PIC(PIDGEOT, gMonStillFrontPic_Pidgeot),
STILL_FRONT_PIC(RATTATA, gMonStillFrontPic_Rattata),
STILL_FRONT_PIC(RATICATE, gMonStillFrontPic_Raticate),
STILL_FRONT_PIC(SPEAROW, gMonStillFrontPic_Spearow),
STILL_FRONT_PIC(FEAROW, gMonStillFrontPic_Fearow),
STILL_FRONT_PIC(EKANS, gMonStillFrontPic_Ekans),
STILL_FRONT_PIC(ARBOK, gMonStillFrontPic_Arbok),
STILL_FRONT_PIC(PIKACHU, gMonStillFrontPic_Pikachu),
STILL_FRONT_PIC(RAICHU, gMonStillFrontPic_Raichu),
STILL_FRONT_PIC(SANDSHREW, gMonStillFrontPic_Sandshrew),
STILL_FRONT_PIC(SANDSLASH, gMonStillFrontPic_Sandslash),
STILL_FRONT_PIC(NIDORAN_F, gMonStillFrontPic_NidoranF),
STILL_FRONT_PIC(NIDORINA, gMonStillFrontPic_Nidorina),
STILL_FRONT_PIC(NIDOQUEEN, gMonStillFrontPic_Nidoqueen),
STILL_FRONT_PIC(NIDORAN_M, gMonStillFrontPic_NidoranM),
STILL_FRONT_PIC(NIDORINO, gMonStillFrontPic_Nidorino),
STILL_FRONT_PIC(NIDOKING, gMonStillFrontPic_Nidoking),
STILL_FRONT_PIC(CLEFAIRY, gMonStillFrontPic_Clefairy),
STILL_FRONT_PIC(CLEFABLE, gMonStillFrontPic_Clefable),
STILL_FRONT_PIC(VULPIX, gMonStillFrontPic_Vulpix),
STILL_FRONT_PIC(NINETALES, gMonStillFrontPic_Ninetales),
STILL_FRONT_PIC(JIGGLYPUFF, gMonStillFrontPic_Jigglypuff),
STILL_FRONT_PIC(WIGGLYTUFF, gMonStillFrontPic_Wigglytuff),
STILL_FRONT_PIC(ZUBAT, gMonStillFrontPic_Zubat),
STILL_FRONT_PIC(GOLBAT, gMonStillFrontPic_Golbat),
STILL_FRONT_PIC(ODDISH, gMonStillFrontPic_Oddish),
STILL_FRONT_PIC(GLOOM, gMonStillFrontPic_Gloom),
STILL_FRONT_PIC(VILEPLUME, gMonStillFrontPic_Vileplume),
STILL_FRONT_PIC(PARAS, gMonStillFrontPic_Paras),
STILL_FRONT_PIC(PARASECT, gMonStillFrontPic_Parasect),
STILL_FRONT_PIC(VENONAT, gMonStillFrontPic_Venonat),
STILL_FRONT_PIC(VENOMOTH, gMonStillFrontPic_Venomoth),
STILL_FRONT_PIC(DIGLETT, gMonStillFrontPic_Diglett),
STILL_FRONT_PIC(DUGTRIO, gMonStillFrontPic_Dugtrio),
STILL_FRONT_PIC(MEOWTH, gMonStillFrontPic_Meowth),
STILL_FRONT_PIC(PERSIAN, gMonStillFrontPic_Persian),
STILL_FRONT_PIC(PSYDUCK, gMonStillFrontPic_Psyduck),
STILL_FRONT_PIC(GOLDUCK, gMonStillFrontPic_Golduck),
STILL_FRONT_PIC(MANKEY, gMonStillFrontPic_Mankey),
STILL_FRONT_PIC(PRIMEAPE, gMonStillFrontPic_Primeape),
STILL_FRONT_PIC(GROWLITHE, gMonStillFrontPic_Growlithe),
STILL_FRONT_PIC(ARCANINE, gMonStillFrontPic_Arcanine),
STILL_FRONT_PIC(POLIWAG, gMonStillFrontPic_Poliwag),
STILL_FRONT_PIC(POLIWHIRL, gMonStillFrontPic_Poliwhirl),
STILL_FRONT_PIC(POLIWRATH, gMonStillFrontPic_Poliwrath),
STILL_FRONT_PIC(ABRA, gMonStillFrontPic_Abra),
STILL_FRONT_PIC(KADABRA, gMonStillFrontPic_Kadabra),
STILL_FRONT_PIC(ALAKAZAM, gMonStillFrontPic_Alakazam),
STILL_FRONT_PIC(MACHOP, gMonStillFrontPic_Machop),
STILL_FRONT_PIC(MACHOKE, gMonStillFrontPic_Machoke),
STILL_FRONT_PIC(MACHAMP, gMonStillFrontPic_Machamp),
STILL_FRONT_PIC(BELLSPROUT, gMonStillFrontPic_Bellsprout),
STILL_FRONT_PIC(WEEPINBELL, gMonStillFrontPic_Weepinbell),
STILL_FRONT_PIC(VICTREEBEL, gMonStillFrontPic_Victreebel),
STILL_FRONT_PIC(TENTACOOL, gMonStillFrontPic_Tentacool),
STILL_FRONT_PIC(TENTACRUEL, gMonStillFrontPic_Tentacruel),
STILL_FRONT_PIC(GEODUDE, gMonStillFrontPic_Geodude),
STILL_FRONT_PIC(GRAVELER, gMonStillFrontPic_Graveler),
STILL_FRONT_PIC(GOLEM, gMonStillFrontPic_Golem),
STILL_FRONT_PIC(PONYTA, gMonStillFrontPic_Ponyta),
STILL_FRONT_PIC(RAPIDASH, gMonStillFrontPic_Rapidash),
STILL_FRONT_PIC(SLOWPOKE, gMonStillFrontPic_Slowpoke),
STILL_FRONT_PIC(SLOWBRO, gMonStillFrontPic_Slowbro),
STILL_FRONT_PIC(MAGNEMITE, gMonStillFrontPic_Magnemite),
STILL_FRONT_PIC(MAGNETON, gMonStillFrontPic_Magneton),
STILL_FRONT_PIC(FARFETCHD, gMonStillFrontPic_Farfetchd),
STILL_FRONT_PIC(DODUO, gMonStillFrontPic_Doduo),
STILL_FRONT_PIC(DODRIO, gMonStillFrontPic_Dodrio),
STILL_FRONT_PIC(SEEL, gMonStillFrontPic_Seel),
STILL_FRONT_PIC(DEWGONG, gMonStillFrontPic_Dewgong),
STILL_FRONT_PIC(GRIMER, gMonStillFrontPic_Grimer),
STILL_FRONT_PIC(MUK, gMonStillFrontPic_Muk),
STILL_FRONT_PIC(SHELLDER, gMonStillFrontPic_Shellder),
STILL_FRONT_PIC(CLOYSTER, gMonStillFrontPic_Cloyster),
STILL_FRONT_PIC(GASTLY, gMonStillFrontPic_Gastly),
STILL_FRONT_PIC(HAUNTER, gMonStillFrontPic_Haunter),
STILL_FRONT_PIC(GENGAR, gMonStillFrontPic_Gengar),
STILL_FRONT_PIC(ONIX, gMonStillFrontPic_Onix),
STILL_FRONT_PIC(DROWZEE, gMonStillFrontPic_Drowzee),
STILL_FRONT_PIC(HYPNO, gMonStillFrontPic_Hypno),
STILL_FRONT_PIC(KRABBY, gMonStillFrontPic_Krabby),
STILL_FRONT_PIC(KINGLER, gMonStillFrontPic_Kingler),
STILL_FRONT_PIC(VOLTORB, gMonStillFrontPic_Voltorb),
STILL_FRONT_PIC(ELECTRODE, gMonStillFrontPic_Electrode),
STILL_FRONT_PIC(EXEGGCUTE, gMonStillFrontPic_Exeggcute),
STILL_FRONT_PIC(EXEGGUTOR, gMonStillFrontPic_Exeggutor),
STILL_FRONT_PIC(CUBONE, gMonStillFrontPic_Cubone),
STILL_FRONT_PIC(MAROWAK, gMonStillFrontPic_Marowak),
STILL_FRONT_PIC(HITMONLEE, gMonStillFrontPic_Hitmonlee),
STILL_FRONT_PIC(HITMONCHAN, gMonStillFrontPic_Hitmonchan),
STILL_FRONT_PIC(LICKITUNG, gMonStillFrontPic_Lickitung),
STILL_FRONT_PIC(KOFFING, gMonStillFrontPic_Koffing),
STILL_FRONT_PIC(WEEZING, gMonStillFrontPic_Weezing),
STILL_FRONT_PIC(RHYHORN, gMonStillFrontPic_Rhyhorn),
STILL_FRONT_PIC(RHYDON, gMonStillFrontPic_Rhydon),
STILL_FRONT_PIC(CHANSEY, gMonStillFrontPic_Chansey),
STILL_FRONT_PIC(TANGELA, gMonStillFrontPic_Tangela),
STILL_FRONT_PIC(KANGASKHAN, gMonStillFrontPic_Kangaskhan),
STILL_FRONT_PIC(HORSEA, gMonStillFrontPic_Horsea),
STILL_FRONT_PIC(SEADRA, gMonStillFrontPic_Seadra),
STILL_FRONT_PIC(GOLDEEN, gMonStillFrontPic_Goldeen),
STILL_FRONT_PIC(SEAKING, gMonStillFrontPic_Seaking),
STILL_FRONT_PIC(STARYU, gMonStillFrontPic_Staryu),
STILL_FRONT_PIC(STARMIE, gMonStillFrontPic_Starmie),
STILL_FRONT_PIC(MR_MIME, gMonStillFrontPic_Mrmime),
STILL_FRONT_PIC(SCYTHER, gMonStillFrontPic_Scyther),
STILL_FRONT_PIC(JYNX, gMonStillFrontPic_Jynx),
STILL_FRONT_PIC(ELECTABUZZ, gMonStillFrontPic_Electabuzz),
STILL_FRONT_PIC(MAGMAR, gMonStillFrontPic_Magmar),
STILL_FRONT_PIC(PINSIR, gMonStillFrontPic_Pinsir),
STILL_FRONT_PIC(TAUROS, gMonStillFrontPic_Tauros),
STILL_FRONT_PIC(MAGIKARP, gMonStillFrontPic_Magikarp),
STILL_FRONT_PIC(GYARADOS, gMonStillFrontPic_Gyarados),
STILL_FRONT_PIC(LAPRAS, gMonStillFrontPic_Lapras),
STILL_FRONT_PIC(DITTO, gMonStillFrontPic_Ditto),
STILL_FRONT_PIC(EEVEE, gMonStillFrontPic_Eevee),
STILL_FRONT_PIC(VAPOREON, gMonStillFrontPic_Vaporeon),
STILL_FRONT_PIC(JOLTEON, gMonStillFrontPic_Jolteon),
STILL_FRONT_PIC(FLAREON, gMonStillFrontPic_Flareon),
STILL_FRONT_PIC(PORYGON, gMonStillFrontPic_Porygon),
STILL_FRONT_PIC(OMANYTE, gMonStillFrontPic_Omanyte),
STILL_FRONT_PIC(OMASTAR, gMonStillFrontPic_Omastar),
STILL_FRONT_PIC(KABUTO, gMonStillFrontPic_Kabuto),
STILL_FRONT_PIC(KABUTOPS, gMonStillFrontPic_Kabutops),
STILL_FRONT_PIC(AERODACTYL, gMonStillFrontPic_Aerodactyl),
STILL_FRONT_PIC(SNORLAX, gMonStillFrontPic_Snorlax),
STILL_FRONT_PIC(ARTICUNO, gMonStillFrontPic_Articuno),
STILL_FRONT_PIC(ZAPDOS, gMonStillFrontPic_Zapdos),
STILL_FRONT_PIC(MOLTRES, gMonStillFrontPic_Moltres),
STILL_FRONT_PIC(DRATINI, gMonStillFrontPic_Dratini),
STILL_FRONT_PIC(DRAGONAIR, gMonStillFrontPic_Dragonair),
STILL_FRONT_PIC(DRAGONITE, gMonStillFrontPic_Dragonite),
STILL_FRONT_PIC(MEWTWO, gMonStillFrontPic_Mewtwo),
STILL_FRONT_PIC(MEW, gMonStillFrontPic_Mew),
// Gen II
gMonStillFrontPic_Chikorita, 0x800, 152,
gMonStillFrontPic_Bayleef, 0x800, 153,
gMonStillFrontPic_Meganium, 0x800, 154,
gMonStillFrontPic_Cyndaquil, 0x800, 155,
gMonStillFrontPic_Quilava, 0x800, 156,
gMonStillFrontPic_Typhlosion, 0x800, 157,
gMonStillFrontPic_Totodile, 0x800, 158,
gMonStillFrontPic_Croconaw, 0x800, 159,
gMonStillFrontPic_Feraligatr, 0x800, 160,
gMonStillFrontPic_Sentret, 0x800, 161,
gMonStillFrontPic_Furret, 0x800, 162,
gMonStillFrontPic_Hoothoot, 0x800, 163,
gMonStillFrontPic_Noctowl, 0x800, 164,
gMonStillFrontPic_Ledyba, 0x800, 165,
gMonStillFrontPic_Ledian, 0x800, 166,
gMonStillFrontPic_Spinarak, 0x800, 167,
gMonStillFrontPic_Ariados, 0x800, 168,
gMonStillFrontPic_Crobat, 0x800, 169,
gMonStillFrontPic_Chinchou, 0x800, 170,
gMonStillFrontPic_Lanturn, 0x800, 171,
gMonStillFrontPic_Pichu, 0x800, 172,
gMonStillFrontPic_Cleffa, 0x800, 173,
gMonStillFrontPic_Igglybuff, 0x800, 174,
gMonStillFrontPic_Togepi, 0x800, 175,
gMonStillFrontPic_Togetic, 0x800, 176,
gMonStillFrontPic_Natu, 0x800, 177,
gMonStillFrontPic_Xatu, 0x800, 178,
gMonStillFrontPic_Mareep, 0x800, 179,
gMonStillFrontPic_Flaaffy, 0x800, 180,
gMonStillFrontPic_Ampharos, 0x800, 181,
gMonStillFrontPic_Bellossom, 0x800, 182,
gMonStillFrontPic_Marill, 0x800, 183,
gMonStillFrontPic_Azumarill, 0x800, 184,
gMonStillFrontPic_Sudowoodo, 0x800, 185,
gMonStillFrontPic_Politoed, 0x800, 186,
gMonStillFrontPic_Hoppip, 0x800, 187,
gMonStillFrontPic_Skiploom, 0x800, 188,
gMonStillFrontPic_Jumpluff, 0x800, 189,
gMonStillFrontPic_Aipom, 0x800, 190,
gMonStillFrontPic_Sunkern, 0x800, 191,
gMonStillFrontPic_Sunflora, 0x800, 192,
gMonStillFrontPic_Yanma, 0x800, 193,
gMonStillFrontPic_Wooper, 0x800, 194,
gMonStillFrontPic_Quagsire, 0x800, 195,
gMonStillFrontPic_Espeon, 0x800, 196,
gMonStillFrontPic_Umbreon, 0x800, 197,
gMonStillFrontPic_Murkrow, 0x800, 198,
gMonStillFrontPic_Slowking, 0x800, 199,
gMonStillFrontPic_Misdreavus, 0x800, 200,
gMonStillFrontPic_UnownA, 0x800, 201,
gMonStillFrontPic_Wobbuffet, 0x800, 202,
gMonStillFrontPic_Girafarig, 0x800, 203,
gMonStillFrontPic_Pineco, 0x800, 204,
gMonStillFrontPic_Forretress, 0x800, 205,
gMonStillFrontPic_Dunsparce, 0x800, 206,
gMonStillFrontPic_Gligar, 0x800, 207,
gMonStillFrontPic_Steelix, 0x800, 208,
gMonStillFrontPic_Snubbull, 0x800, 209,
gMonStillFrontPic_Granbull, 0x800, 210,
gMonStillFrontPic_Qwilfish, 0x800, 211,
gMonStillFrontPic_Scizor, 0x800, 212,
gMonStillFrontPic_Shuckle, 0x800, 213,
gMonStillFrontPic_Heracross, 0x800, 214,
gMonStillFrontPic_Sneasel, 0x800, 215,
gMonStillFrontPic_Teddiursa, 0x800, 216,
gMonStillFrontPic_Ursaring, 0x800, 217,
gMonStillFrontPic_Slugma, 0x800, 218,
gMonStillFrontPic_Magcargo, 0x800, 219,
gMonStillFrontPic_Swinub, 0x800, 220,
gMonStillFrontPic_Piloswine, 0x800, 221,
gMonStillFrontPic_Corsola, 0x800, 222,
gMonStillFrontPic_Remoraid, 0x800, 223,
gMonStillFrontPic_Octillery, 0x800, 224,
gMonStillFrontPic_Delibird, 0x800, 225,
gMonStillFrontPic_Mantine, 0x800, 226,
gMonStillFrontPic_Skarmory, 0x800, 227,
gMonStillFrontPic_Houndour, 0x800, 228,
gMonStillFrontPic_Houndoom, 0x800, 229,
gMonStillFrontPic_Kingdra, 0x800, 230,
gMonStillFrontPic_Phanpy, 0x800, 231,
gMonStillFrontPic_Donphan, 0x800, 232,
gMonStillFrontPic_Porygon2, 0x800, 233,
gMonStillFrontPic_Stantler, 0x800, 234,
gMonStillFrontPic_Smeargle, 0x800, 235,
gMonStillFrontPic_Tyrogue, 0x800, 236,
gMonStillFrontPic_Hitmontop, 0x800, 237,
gMonStillFrontPic_Smoochum, 0x800, 238,
gMonStillFrontPic_Elekid, 0x800, 239,
gMonStillFrontPic_Magby, 0x800, 240,
gMonStillFrontPic_Miltank, 0x800, 241,
gMonStillFrontPic_Blissey, 0x800, 242,
gMonStillFrontPic_Raikou, 0x800, 243,
gMonStillFrontPic_Entei, 0x800, 244,
gMonStillFrontPic_Suicune, 0x800, 245,
gMonStillFrontPic_Larvitar, 0x800, 246,
gMonStillFrontPic_Pupitar, 0x800, 247,
gMonStillFrontPic_Tyranitar, 0x800, 248,
gMonStillFrontPic_Lugia, 0x800, 249,
gMonStillFrontPic_HoOh, 0x800, 250,
gMonStillFrontPic_Celebi, 0x800, 251,
STILL_FRONT_PIC(CHIKORITA, gMonStillFrontPic_Chikorita),
STILL_FRONT_PIC(BAYLEEF, gMonStillFrontPic_Bayleef),
STILL_FRONT_PIC(MEGANIUM, gMonStillFrontPic_Meganium),
STILL_FRONT_PIC(CYNDAQUIL, gMonStillFrontPic_Cyndaquil),
STILL_FRONT_PIC(QUILAVA, gMonStillFrontPic_Quilava),
STILL_FRONT_PIC(TYPHLOSION, gMonStillFrontPic_Typhlosion),
STILL_FRONT_PIC(TOTODILE, gMonStillFrontPic_Totodile),
STILL_FRONT_PIC(CROCONAW, gMonStillFrontPic_Croconaw),
STILL_FRONT_PIC(FERALIGATR, gMonStillFrontPic_Feraligatr),
STILL_FRONT_PIC(SENTRET, gMonStillFrontPic_Sentret),
STILL_FRONT_PIC(FURRET, gMonStillFrontPic_Furret),
STILL_FRONT_PIC(HOOTHOOT, gMonStillFrontPic_Hoothoot),
STILL_FRONT_PIC(NOCTOWL, gMonStillFrontPic_Noctowl),
STILL_FRONT_PIC(LEDYBA, gMonStillFrontPic_Ledyba),
STILL_FRONT_PIC(LEDIAN, gMonStillFrontPic_Ledian),
STILL_FRONT_PIC(SPINARAK, gMonStillFrontPic_Spinarak),
STILL_FRONT_PIC(ARIADOS, gMonStillFrontPic_Ariados),
STILL_FRONT_PIC(CROBAT, gMonStillFrontPic_Crobat),
STILL_FRONT_PIC(CHINCHOU, gMonStillFrontPic_Chinchou),
STILL_FRONT_PIC(LANTURN, gMonStillFrontPic_Lanturn),
STILL_FRONT_PIC(PICHU, gMonStillFrontPic_Pichu),
STILL_FRONT_PIC(CLEFFA, gMonStillFrontPic_Cleffa),
STILL_FRONT_PIC(IGGLYBUFF, gMonStillFrontPic_Igglybuff),
STILL_FRONT_PIC(TOGEPI, gMonStillFrontPic_Togepi),
STILL_FRONT_PIC(TOGETIC, gMonStillFrontPic_Togetic),
STILL_FRONT_PIC(NATU, gMonStillFrontPic_Natu),
STILL_FRONT_PIC(XATU, gMonStillFrontPic_Xatu),
STILL_FRONT_PIC(MAREEP, gMonStillFrontPic_Mareep),
STILL_FRONT_PIC(FLAAFFY, gMonStillFrontPic_Flaaffy),
STILL_FRONT_PIC(AMPHAROS, gMonStillFrontPic_Ampharos),
STILL_FRONT_PIC(BELLOSSOM, gMonStillFrontPic_Bellossom),
STILL_FRONT_PIC(MARILL, gMonStillFrontPic_Marill),
STILL_FRONT_PIC(AZUMARILL, gMonStillFrontPic_Azumarill),
STILL_FRONT_PIC(SUDOWOODO, gMonStillFrontPic_Sudowoodo),
STILL_FRONT_PIC(POLITOED, gMonStillFrontPic_Politoed),
STILL_FRONT_PIC(HOPPIP, gMonStillFrontPic_Hoppip),
STILL_FRONT_PIC(SKIPLOOM, gMonStillFrontPic_Skiploom),
STILL_FRONT_PIC(JUMPLUFF, gMonStillFrontPic_Jumpluff),
STILL_FRONT_PIC(AIPOM, gMonStillFrontPic_Aipom),
STILL_FRONT_PIC(SUNKERN, gMonStillFrontPic_Sunkern),
STILL_FRONT_PIC(SUNFLORA, gMonStillFrontPic_Sunflora),
STILL_FRONT_PIC(YANMA, gMonStillFrontPic_Yanma),
STILL_FRONT_PIC(WOOPER, gMonStillFrontPic_Wooper),
STILL_FRONT_PIC(QUAGSIRE, gMonStillFrontPic_Quagsire),
STILL_FRONT_PIC(ESPEON, gMonStillFrontPic_Espeon),
STILL_FRONT_PIC(UMBREON, gMonStillFrontPic_Umbreon),
STILL_FRONT_PIC(MURKROW, gMonStillFrontPic_Murkrow),
STILL_FRONT_PIC(SLOWKING, gMonStillFrontPic_Slowking),
STILL_FRONT_PIC(MISDREAVUS, gMonStillFrontPic_Misdreavus),
STILL_FRONT_PIC(UNOWN, gMonStillFrontPic_UnownA),
STILL_FRONT_PIC(WOBBUFFET, gMonStillFrontPic_Wobbuffet),
STILL_FRONT_PIC(GIRAFARIG, gMonStillFrontPic_Girafarig),
STILL_FRONT_PIC(PINECO, gMonStillFrontPic_Pineco),
STILL_FRONT_PIC(FORRETRESS, gMonStillFrontPic_Forretress),
STILL_FRONT_PIC(DUNSPARCE, gMonStillFrontPic_Dunsparce),
STILL_FRONT_PIC(GLIGAR, gMonStillFrontPic_Gligar),
STILL_FRONT_PIC(STEELIX, gMonStillFrontPic_Steelix),
STILL_FRONT_PIC(SNUBBULL, gMonStillFrontPic_Snubbull),
STILL_FRONT_PIC(GRANBULL, gMonStillFrontPic_Granbull),
STILL_FRONT_PIC(QWILFISH, gMonStillFrontPic_Qwilfish),
STILL_FRONT_PIC(SCIZOR, gMonStillFrontPic_Scizor),
STILL_FRONT_PIC(SHUCKLE, gMonStillFrontPic_Shuckle),
STILL_FRONT_PIC(HERACROSS, gMonStillFrontPic_Heracross),
STILL_FRONT_PIC(SNEASEL, gMonStillFrontPic_Sneasel),
STILL_FRONT_PIC(TEDDIURSA, gMonStillFrontPic_Teddiursa),
STILL_FRONT_PIC(URSARING, gMonStillFrontPic_Ursaring),
STILL_FRONT_PIC(SLUGMA, gMonStillFrontPic_Slugma),
STILL_FRONT_PIC(MAGCARGO, gMonStillFrontPic_Magcargo),
STILL_FRONT_PIC(SWINUB, gMonStillFrontPic_Swinub),
STILL_FRONT_PIC(PILOSWINE, gMonStillFrontPic_Piloswine),
STILL_FRONT_PIC(CORSOLA, gMonStillFrontPic_Corsola),
STILL_FRONT_PIC(REMORAID, gMonStillFrontPic_Remoraid),
STILL_FRONT_PIC(OCTILLERY, gMonStillFrontPic_Octillery),
STILL_FRONT_PIC(DELIBIRD, gMonStillFrontPic_Delibird),
STILL_FRONT_PIC(MANTINE, gMonStillFrontPic_Mantine),
STILL_FRONT_PIC(SKARMORY, gMonStillFrontPic_Skarmory),
STILL_FRONT_PIC(HOUNDOUR, gMonStillFrontPic_Houndour),
STILL_FRONT_PIC(HOUNDOOM, gMonStillFrontPic_Houndoom),
STILL_FRONT_PIC(KINGDRA, gMonStillFrontPic_Kingdra),
STILL_FRONT_PIC(PHANPY, gMonStillFrontPic_Phanpy),
STILL_FRONT_PIC(DONPHAN, gMonStillFrontPic_Donphan),
STILL_FRONT_PIC(PORYGON2, gMonStillFrontPic_Porygon2),
STILL_FRONT_PIC(STANTLER, gMonStillFrontPic_Stantler),
STILL_FRONT_PIC(SMEARGLE, gMonStillFrontPic_Smeargle),
STILL_FRONT_PIC(TYROGUE, gMonStillFrontPic_Tyrogue),
STILL_FRONT_PIC(HITMONTOP, gMonStillFrontPic_Hitmontop),
STILL_FRONT_PIC(SMOOCHUM, gMonStillFrontPic_Smoochum),
STILL_FRONT_PIC(ELEKID, gMonStillFrontPic_Elekid),
STILL_FRONT_PIC(MAGBY, gMonStillFrontPic_Magby),
STILL_FRONT_PIC(MILTANK, gMonStillFrontPic_Miltank),
STILL_FRONT_PIC(BLISSEY, gMonStillFrontPic_Blissey),
STILL_FRONT_PIC(RAIKOU, gMonStillFrontPic_Raikou),
STILL_FRONT_PIC(ENTEI, gMonStillFrontPic_Entei),
STILL_FRONT_PIC(SUICUNE, gMonStillFrontPic_Suicune),
STILL_FRONT_PIC(LARVITAR, gMonStillFrontPic_Larvitar),
STILL_FRONT_PIC(PUPITAR, gMonStillFrontPic_Pupitar),
STILL_FRONT_PIC(TYRANITAR, gMonStillFrontPic_Tyranitar),
STILL_FRONT_PIC(LUGIA, gMonStillFrontPic_Lugia),
STILL_FRONT_PIC(HO_OH, gMonStillFrontPic_HoOh),
STILL_FRONT_PIC(CELEBI, gMonStillFrontPic_Celebi),
// Empty slots
gMonStillFrontPic_DoubleQuestionMark, 0x800, 252,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 253,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 254,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 255,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 256,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 257,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 258,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 259,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 260,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 261,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 262,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 263,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 264,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 265,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 266,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 267,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 268,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 269,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 270,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 271,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 272,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 273,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 274,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 275,
gMonStillFrontPic_DoubleQuestionMark, 0x800, 276,
STILL_FRONT_PIC(OLD_UNOWN_B, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_C, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_D, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_E, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_F, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_G, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_H, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_I, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_J, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_K, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_L, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_M, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_N, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_O, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_P, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_Q, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_R, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_S, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_T, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_U, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_V, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_W, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_X, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_Y, gMonStillFrontPic_DoubleQuestionMark),
STILL_FRONT_PIC(OLD_UNOWN_Z, gMonStillFrontPic_DoubleQuestionMark),
// Gen III
gMonStillFrontPic_Treecko, 0x800, 277,
gMonStillFrontPic_Grovyle, 0x800, 278,
gMonStillFrontPic_Sceptile, 0x800, 279,
gMonStillFrontPic_Torchic, 0x800, 280,
gMonStillFrontPic_Combusken, 0x800, 281,
gMonStillFrontPic_Blaziken, 0x800, 282,
gMonStillFrontPic_Mudkip, 0x800, 283,
gMonStillFrontPic_Marshtomp, 0x800, 284,
gMonStillFrontPic_Swampert, 0x800, 285,
gMonStillFrontPic_Poochyena, 0x800, 286,
gMonStillFrontPic_Mightyena, 0x800, 287,
gMonStillFrontPic_Zigzagoon, 0x800, 288,
gMonStillFrontPic_Linoone, 0x800, 289,
gMonStillFrontPic_Wurmple, 0x800, 290,
gMonStillFrontPic_Silcoon, 0x800, 291,
gMonStillFrontPic_Beautifly, 0x800, 292,
gMonStillFrontPic_Cascoon, 0x800, 293,
gMonStillFrontPic_Dustox, 0x800, 294,
gMonStillFrontPic_Lotad, 0x800, 295,
gMonStillFrontPic_Lombre, 0x800, 296,
gMonStillFrontPic_Ludicolo, 0x800, 297,
gMonStillFrontPic_Seedot, 0x800, 298,
gMonStillFrontPic_Nuzleaf, 0x800, 299,
gMonStillFrontPic_Shiftry, 0x800, 300,
gMonStillFrontPic_Nincada, 0x800, 301,
gMonStillFrontPic_Ninjask, 0x800, 302,
gMonStillFrontPic_Shedinja, 0x800, 303,
gMonStillFrontPic_Taillow, 0x800, 304,
gMonStillFrontPic_Swellow, 0x800, 305,
gMonStillFrontPic_Shroomish, 0x800, 306,
gMonStillFrontPic_Breloom, 0x800, 307,
gMonStillFrontPic_Spinda, 0x800, 308,
gMonStillFrontPic_Wingull, 0x800, 309,
gMonStillFrontPic_Pelipper, 0x800, 310,
gMonStillFrontPic_Surskit, 0x800, 311,
gMonStillFrontPic_Masquerain, 0x800, 312,
gMonStillFrontPic_Wailmer, 0x800, 313,
gMonStillFrontPic_Wailord, 0x800, 314,
gMonStillFrontPic_Skitty, 0x800, 315,
gMonStillFrontPic_Delcatty, 0x800, 316,
gMonStillFrontPic_Kecleon, 0x800, 317,
gMonStillFrontPic_Baltoy, 0x800, 318,
gMonStillFrontPic_Claydol, 0x800, 319,
gMonStillFrontPic_Nosepass, 0x800, 320,
gMonStillFrontPic_Torkoal, 0x800, 321,
gMonStillFrontPic_Sableye, 0x800, 322,
gMonStillFrontPic_Barboach, 0x800, 323,
gMonStillFrontPic_Whiscash, 0x800, 324,
gMonStillFrontPic_Luvdisc, 0x800, 325,
gMonStillFrontPic_Corphish, 0x800, 326,
gMonStillFrontPic_Crawdaunt, 0x800, 327,
gMonStillFrontPic_Feebas, 0x800, 328,
gMonStillFrontPic_Milotic, 0x800, 329,
gMonStillFrontPic_Carvanha, 0x800, 330,
gMonStillFrontPic_Sharpedo, 0x800, 331,
gMonStillFrontPic_Trapinch, 0x800, 332,
gMonStillFrontPic_Vibrava, 0x800, 333,
gMonStillFrontPic_Flygon, 0x800, 334,
gMonStillFrontPic_Makuhita, 0x800, 335,
gMonStillFrontPic_Hariyama, 0x800, 336,
gMonStillFrontPic_Electrike, 0x800, 337,
gMonStillFrontPic_Manectric, 0x800, 338,
gMonStillFrontPic_Numel, 0x800, 339,
gMonStillFrontPic_Camerupt, 0x800, 340,
gMonStillFrontPic_Spheal, 0x800, 341,
gMonStillFrontPic_Sealeo, 0x800, 342,
gMonStillFrontPic_Walrein, 0x800, 343,
gMonStillFrontPic_Cacnea, 0x800, 344,
gMonStillFrontPic_Cacturne, 0x800, 345,
gMonStillFrontPic_Snorunt, 0x800, 346,
gMonStillFrontPic_Glalie, 0x800, 347,
gMonStillFrontPic_Lunatone, 0x800, 348,
gMonStillFrontPic_Solrock, 0x800, 349,
gMonStillFrontPic_Azurill, 0x800, 350,
gMonStillFrontPic_Spoink, 0x800, 351,
gMonStillFrontPic_Grumpig, 0x800, 352,
gMonStillFrontPic_Plusle, 0x800, 353,
gMonStillFrontPic_Minun, 0x800, 354,
gMonStillFrontPic_Mawile, 0x800, 355,
gMonStillFrontPic_Meditite, 0x800, 356,
gMonStillFrontPic_Medicham, 0x800, 357,
gMonStillFrontPic_Swablu, 0x800, 358,
gMonStillFrontPic_Altaria, 0x800, 359,
gMonStillFrontPic_Wynaut, 0x800, 360,
gMonStillFrontPic_Duskull, 0x800, 361,
gMonStillFrontPic_Dusclops, 0x800, 362,
gMonStillFrontPic_Roselia, 0x800, 363,
gMonStillFrontPic_Slakoth, 0x800, 364,
gMonStillFrontPic_Vigoroth, 0x800, 365,
gMonStillFrontPic_Slaking, 0x800, 366,
gMonStillFrontPic_Gulpin, 0x800, 367,
gMonStillFrontPic_Swalot, 0x800, 368,
gMonStillFrontPic_Tropius, 0x800, 369,
gMonStillFrontPic_Whismur, 0x800, 370,
gMonStillFrontPic_Loudred, 0x800, 371,
gMonStillFrontPic_Exploud, 0x800, 372,
gMonStillFrontPic_Clamperl, 0x800, 373,
gMonStillFrontPic_Huntail, 0x800, 374,
gMonStillFrontPic_Gorebyss, 0x800, 375,
gMonStillFrontPic_Absol, 0x800, 376,
gMonStillFrontPic_Shuppet, 0x800, 377,
gMonStillFrontPic_Banette, 0x800, 378,
gMonStillFrontPic_Seviper, 0x800, 379,
gMonStillFrontPic_Zangoose, 0x800, 380,
gMonStillFrontPic_Relicanth, 0x800, 381,
gMonStillFrontPic_Aron, 0x800, 382,
gMonStillFrontPic_Lairon, 0x800, 383,
gMonStillFrontPic_Aggron, 0x800, 384,
gMonStillFrontPic_Castform, 0x800, 385,
gMonStillFrontPic_Volbeat, 0x800, 386,
gMonStillFrontPic_Illumise, 0x800, 387,
gMonStillFrontPic_Lileep, 0x800, 388,
gMonStillFrontPic_Cradily, 0x800, 389,
gMonStillFrontPic_Anorith, 0x800, 390,
gMonStillFrontPic_Armaldo, 0x800, 391,
gMonStillFrontPic_Ralts, 0x800, 392,
gMonStillFrontPic_Kirlia, 0x800, 393,
gMonStillFrontPic_Gardevoir, 0x800, 394,
gMonStillFrontPic_Bagon, 0x800, 395,
gMonStillFrontPic_Shelgon, 0x800, 396,
gMonStillFrontPic_Salamence, 0x800, 397,
gMonStillFrontPic_Beldum, 0x800, 398,
gMonStillFrontPic_Metang, 0x800, 399,
gMonStillFrontPic_Metagross, 0x800, 400,
gMonStillFrontPic_Regirock, 0x800, 401,
gMonStillFrontPic_Regice, 0x800, 402,
gMonStillFrontPic_Registeel, 0x800, 403,
gMonStillFrontPic_Kyogre, 0x800, 404,
gMonStillFrontPic_Groudon, 0x800, 405,
gMonStillFrontPic_Rayquaza, 0x800, 406,
gMonStillFrontPic_Latias, 0x800, 407,
gMonStillFrontPic_Latios, 0x800, 408,
gMonStillFrontPic_Jirachi, 0x800, 409,
gMonStillFrontPic_Deoxys, 0x800, 410,
gMonStillFrontPic_Chimecho, 0x800, 411,
gMonStillFrontPic_Egg, 0x800, 412,
gMonStillFrontPic_UnownB, 0x800, 413,
gMonStillFrontPic_UnownC, 0x800, 414,
gMonStillFrontPic_UnownD, 0x800, 415,
gMonStillFrontPic_UnownE, 0x800, 416,
gMonStillFrontPic_UnownF, 0x800, 417,
gMonStillFrontPic_UnownG, 0x800, 418,
gMonStillFrontPic_UnownH, 0x800, 419,
gMonStillFrontPic_UnownI, 0x800, 420,
gMonStillFrontPic_UnownJ, 0x800, 421,
gMonStillFrontPic_UnownK, 0x800, 422,
gMonStillFrontPic_UnownL, 0x800, 423,
gMonStillFrontPic_UnownM, 0x800, 424,
gMonStillFrontPic_UnownN, 0x800, 425,
gMonStillFrontPic_UnownO, 0x800, 426,
gMonStillFrontPic_UnownP, 0x800, 427,
gMonStillFrontPic_UnownQ, 0x800, 428,
gMonStillFrontPic_UnownR, 0x800, 429,
gMonStillFrontPic_UnownS, 0x800, 430,
gMonStillFrontPic_UnownT, 0x800, 431,
gMonStillFrontPic_UnownU, 0x800, 432,
gMonStillFrontPic_UnownV, 0x800, 433,
gMonStillFrontPic_UnownW, 0x800, 434,
gMonStillFrontPic_UnownX, 0x800, 435,
gMonStillFrontPic_UnownY, 0x800, 436,
gMonStillFrontPic_UnownZ, 0x800, 437,
gMonStillFrontPic_UnownExclamationMark, 0x800, 438,
gMonStillFrontPic_UnownQuestionMark, 0x800, 439,
STILL_FRONT_PIC(TREECKO, gMonStillFrontPic_Treecko),
STILL_FRONT_PIC(GROVYLE, gMonStillFrontPic_Grovyle),
STILL_FRONT_PIC(SCEPTILE, gMonStillFrontPic_Sceptile),
STILL_FRONT_PIC(TORCHIC, gMonStillFrontPic_Torchic),
STILL_FRONT_PIC(COMBUSKEN, gMonStillFrontPic_Combusken),
STILL_FRONT_PIC(BLAZIKEN, gMonStillFrontPic_Blaziken),
STILL_FRONT_PIC(MUDKIP, gMonStillFrontPic_Mudkip),
STILL_FRONT_PIC(MARSHTOMP, gMonStillFrontPic_Marshtomp),
STILL_FRONT_PIC(SWAMPERT, gMonStillFrontPic_Swampert),
STILL_FRONT_PIC(POOCHYENA, gMonStillFrontPic_Poochyena),
STILL_FRONT_PIC(MIGHTYENA, gMonStillFrontPic_Mightyena),
STILL_FRONT_PIC(ZIGZAGOON, gMonStillFrontPic_Zigzagoon),
STILL_FRONT_PIC(LINOONE, gMonStillFrontPic_Linoone),
STILL_FRONT_PIC(WURMPLE, gMonStillFrontPic_Wurmple),
STILL_FRONT_PIC(SILCOON, gMonStillFrontPic_Silcoon),
STILL_FRONT_PIC(BEAUTIFLY, gMonStillFrontPic_Beautifly),
STILL_FRONT_PIC(CASCOON, gMonStillFrontPic_Cascoon),
STILL_FRONT_PIC(DUSTOX, gMonStillFrontPic_Dustox),
STILL_FRONT_PIC(LOTAD, gMonStillFrontPic_Lotad),
STILL_FRONT_PIC(LOMBRE, gMonStillFrontPic_Lombre),
STILL_FRONT_PIC(LUDICOLO, gMonStillFrontPic_Ludicolo),
STILL_FRONT_PIC(SEEDOT, gMonStillFrontPic_Seedot),
STILL_FRONT_PIC(NUZLEAF, gMonStillFrontPic_Nuzleaf),
STILL_FRONT_PIC(SHIFTRY, gMonStillFrontPic_Shiftry),
STILL_FRONT_PIC(NINCADA, gMonStillFrontPic_Nincada),
STILL_FRONT_PIC(NINJASK, gMonStillFrontPic_Ninjask),
STILL_FRONT_PIC(SHEDINJA, gMonStillFrontPic_Shedinja),
STILL_FRONT_PIC(TAILLOW, gMonStillFrontPic_Taillow),
STILL_FRONT_PIC(SWELLOW, gMonStillFrontPic_Swellow),
STILL_FRONT_PIC(SHROOMISH, gMonStillFrontPic_Shroomish),
STILL_FRONT_PIC(BRELOOM, gMonStillFrontPic_Breloom),
STILL_FRONT_PIC(SPINDA, gMonStillFrontPic_Spinda),
STILL_FRONT_PIC(WINGULL, gMonStillFrontPic_Wingull),
STILL_FRONT_PIC(PELIPPER, gMonStillFrontPic_Pelipper),
STILL_FRONT_PIC(SURSKIT, gMonStillFrontPic_Surskit),
STILL_FRONT_PIC(MASQUERAIN, gMonStillFrontPic_Masquerain),
STILL_FRONT_PIC(WAILMER, gMonStillFrontPic_Wailmer),
STILL_FRONT_PIC(WAILORD, gMonStillFrontPic_Wailord),
STILL_FRONT_PIC(SKITTY, gMonStillFrontPic_Skitty),
STILL_FRONT_PIC(DELCATTY, gMonStillFrontPic_Delcatty),
STILL_FRONT_PIC(KECLEON, gMonStillFrontPic_Kecleon),
STILL_FRONT_PIC(BALTOY, gMonStillFrontPic_Baltoy),
STILL_FRONT_PIC(CLAYDOL, gMonStillFrontPic_Claydol),
STILL_FRONT_PIC(NOSEPASS, gMonStillFrontPic_Nosepass),
STILL_FRONT_PIC(TORKOAL, gMonStillFrontPic_Torkoal),
STILL_FRONT_PIC(SABLEYE, gMonStillFrontPic_Sableye),
STILL_FRONT_PIC(BARBOACH, gMonStillFrontPic_Barboach),
STILL_FRONT_PIC(WHISCASH, gMonStillFrontPic_Whiscash),
STILL_FRONT_PIC(LUVDISC, gMonStillFrontPic_Luvdisc),
STILL_FRONT_PIC(CORPHISH, gMonStillFrontPic_Corphish),
STILL_FRONT_PIC(CRAWDAUNT, gMonStillFrontPic_Crawdaunt),
STILL_FRONT_PIC(FEEBAS, gMonStillFrontPic_Feebas),
STILL_FRONT_PIC(MILOTIC, gMonStillFrontPic_Milotic),
STILL_FRONT_PIC(CARVANHA, gMonStillFrontPic_Carvanha),
STILL_FRONT_PIC(SHARPEDO, gMonStillFrontPic_Sharpedo),
STILL_FRONT_PIC(TRAPINCH, gMonStillFrontPic_Trapinch),
STILL_FRONT_PIC(VIBRAVA, gMonStillFrontPic_Vibrava),
STILL_FRONT_PIC(FLYGON, gMonStillFrontPic_Flygon),
STILL_FRONT_PIC(MAKUHITA, gMonStillFrontPic_Makuhita),
STILL_FRONT_PIC(HARIYAMA, gMonStillFrontPic_Hariyama),
STILL_FRONT_PIC(ELECTRIKE, gMonStillFrontPic_Electrike),
STILL_FRONT_PIC(MANECTRIC, gMonStillFrontPic_Manectric),
STILL_FRONT_PIC(NUMEL, gMonStillFrontPic_Numel),
STILL_FRONT_PIC(CAMERUPT, gMonStillFrontPic_Camerupt),
STILL_FRONT_PIC(SPHEAL, gMonStillFrontPic_Spheal),
STILL_FRONT_PIC(SEALEO, gMonStillFrontPic_Sealeo),
STILL_FRONT_PIC(WALREIN, gMonStillFrontPic_Walrein),
STILL_FRONT_PIC(CACNEA, gMonStillFrontPic_Cacnea),
STILL_FRONT_PIC(CACTURNE, gMonStillFrontPic_Cacturne),
STILL_FRONT_PIC(SNORUNT, gMonStillFrontPic_Snorunt),
STILL_FRONT_PIC(GLALIE, gMonStillFrontPic_Glalie),
STILL_FRONT_PIC(LUNATONE, gMonStillFrontPic_Lunatone),
STILL_FRONT_PIC(SOLROCK, gMonStillFrontPic_Solrock),
STILL_FRONT_PIC(AZURILL, gMonStillFrontPic_Azurill),
STILL_FRONT_PIC(SPOINK, gMonStillFrontPic_Spoink),
STILL_FRONT_PIC(GRUMPIG, gMonStillFrontPic_Grumpig),
STILL_FRONT_PIC(PLUSLE, gMonStillFrontPic_Plusle),
STILL_FRONT_PIC(MINUN, gMonStillFrontPic_Minun),
STILL_FRONT_PIC(MAWILE, gMonStillFrontPic_Mawile),
STILL_FRONT_PIC(MEDITITE, gMonStillFrontPic_Meditite),
STILL_FRONT_PIC(MEDICHAM, gMonStillFrontPic_Medicham),
STILL_FRONT_PIC(SWABLU, gMonStillFrontPic_Swablu),
STILL_FRONT_PIC(ALTARIA, gMonStillFrontPic_Altaria),
STILL_FRONT_PIC(WYNAUT, gMonStillFrontPic_Wynaut),
STILL_FRONT_PIC(DUSKULL, gMonStillFrontPic_Duskull),
STILL_FRONT_PIC(DUSCLOPS, gMonStillFrontPic_Dusclops),
STILL_FRONT_PIC(ROSELIA, gMonStillFrontPic_Roselia),
STILL_FRONT_PIC(SLAKOTH, gMonStillFrontPic_Slakoth),
STILL_FRONT_PIC(VIGOROTH, gMonStillFrontPic_Vigoroth),
STILL_FRONT_PIC(SLAKING, gMonStillFrontPic_Slaking),
STILL_FRONT_PIC(GULPIN, gMonStillFrontPic_Gulpin),
STILL_FRONT_PIC(SWALOT, gMonStillFrontPic_Swalot),
STILL_FRONT_PIC(TROPIUS, gMonStillFrontPic_Tropius),
STILL_FRONT_PIC(WHISMUR, gMonStillFrontPic_Whismur),
STILL_FRONT_PIC(LOUDRED, gMonStillFrontPic_Loudred),
STILL_FRONT_PIC(EXPLOUD, gMonStillFrontPic_Exploud),
STILL_FRONT_PIC(CLAMPERL, gMonStillFrontPic_Clamperl),
STILL_FRONT_PIC(HUNTAIL, gMonStillFrontPic_Huntail),
STILL_FRONT_PIC(GOREBYSS, gMonStillFrontPic_Gorebyss),
STILL_FRONT_PIC(ABSOL, gMonStillFrontPic_Absol),
STILL_FRONT_PIC(SHUPPET, gMonStillFrontPic_Shuppet),
STILL_FRONT_PIC(BANETTE, gMonStillFrontPic_Banette),
STILL_FRONT_PIC(SEVIPER, gMonStillFrontPic_Seviper),
STILL_FRONT_PIC(ZANGOOSE, gMonStillFrontPic_Zangoose),
STILL_FRONT_PIC(RELICANTH, gMonStillFrontPic_Relicanth),
STILL_FRONT_PIC(ARON, gMonStillFrontPic_Aron),
STILL_FRONT_PIC(LAIRON, gMonStillFrontPic_Lairon),
STILL_FRONT_PIC(AGGRON, gMonStillFrontPic_Aggron),
STILL_FRONT_PIC(CASTFORM, gMonStillFrontPic_Castform),
STILL_FRONT_PIC(VOLBEAT, gMonStillFrontPic_Volbeat),
STILL_FRONT_PIC(ILLUMISE, gMonStillFrontPic_Illumise),
STILL_FRONT_PIC(LILEEP, gMonStillFrontPic_Lileep),
STILL_FRONT_PIC(CRADILY, gMonStillFrontPic_Cradily),
STILL_FRONT_PIC(ANORITH, gMonStillFrontPic_Anorith),
STILL_FRONT_PIC(ARMALDO, gMonStillFrontPic_Armaldo),
STILL_FRONT_PIC(RALTS, gMonStillFrontPic_Ralts),
STILL_FRONT_PIC(KIRLIA, gMonStillFrontPic_Kirlia),
STILL_FRONT_PIC(GARDEVOIR, gMonStillFrontPic_Gardevoir),
STILL_FRONT_PIC(BAGON, gMonStillFrontPic_Bagon),
STILL_FRONT_PIC(SHELGON, gMonStillFrontPic_Shelgon),
STILL_FRONT_PIC(SALAMENCE, gMonStillFrontPic_Salamence),
STILL_FRONT_PIC(BELDUM, gMonStillFrontPic_Beldum),
STILL_FRONT_PIC(METANG, gMonStillFrontPic_Metang),
STILL_FRONT_PIC(METAGROSS, gMonStillFrontPic_Metagross),
STILL_FRONT_PIC(REGIROCK, gMonStillFrontPic_Regirock),
STILL_FRONT_PIC(REGICE, gMonStillFrontPic_Regice),
STILL_FRONT_PIC(REGISTEEL, gMonStillFrontPic_Registeel),
STILL_FRONT_PIC(KYOGRE, gMonStillFrontPic_Kyogre),
STILL_FRONT_PIC(GROUDON, gMonStillFrontPic_Groudon),
STILL_FRONT_PIC(RAYQUAZA, gMonStillFrontPic_Rayquaza),
STILL_FRONT_PIC(LATIAS, gMonStillFrontPic_Latias),
STILL_FRONT_PIC(LATIOS, gMonStillFrontPic_Latios),
STILL_FRONT_PIC(JIRACHI, gMonStillFrontPic_Jirachi),
STILL_FRONT_PIC(DEOXYS, gMonStillFrontPic_Deoxys),
STILL_FRONT_PIC(CHIMECHO, gMonStillFrontPic_Chimecho),
STILL_FRONT_PIC(EGG, gMonStillFrontPic_Egg),
STILL_FRONT_PIC(UNOWN_B, gMonStillFrontPic_UnownB),
STILL_FRONT_PIC(UNOWN_C, gMonStillFrontPic_UnownC),
STILL_FRONT_PIC(UNOWN_D, gMonStillFrontPic_UnownD),
STILL_FRONT_PIC(UNOWN_E, gMonStillFrontPic_UnownE),
STILL_FRONT_PIC(UNOWN_F, gMonStillFrontPic_UnownF),
STILL_FRONT_PIC(UNOWN_G, gMonStillFrontPic_UnownG),
STILL_FRONT_PIC(UNOWN_H, gMonStillFrontPic_UnownH),
STILL_FRONT_PIC(UNOWN_I, gMonStillFrontPic_UnownI),
STILL_FRONT_PIC(UNOWN_J, gMonStillFrontPic_UnownJ),
STILL_FRONT_PIC(UNOWN_K, gMonStillFrontPic_UnownK),
STILL_FRONT_PIC(UNOWN_L, gMonStillFrontPic_UnownL),
STILL_FRONT_PIC(UNOWN_M, gMonStillFrontPic_UnownM),
STILL_FRONT_PIC(UNOWN_N, gMonStillFrontPic_UnownN),
STILL_FRONT_PIC(UNOWN_O, gMonStillFrontPic_UnownO),
STILL_FRONT_PIC(UNOWN_P, gMonStillFrontPic_UnownP),
STILL_FRONT_PIC(UNOWN_Q, gMonStillFrontPic_UnownQ),
STILL_FRONT_PIC(UNOWN_R, gMonStillFrontPic_UnownR),
STILL_FRONT_PIC(UNOWN_S, gMonStillFrontPic_UnownS),
STILL_FRONT_PIC(UNOWN_T, gMonStillFrontPic_UnownT),
STILL_FRONT_PIC(UNOWN_U, gMonStillFrontPic_UnownU),
STILL_FRONT_PIC(UNOWN_V, gMonStillFrontPic_UnownV),
STILL_FRONT_PIC(UNOWN_W, gMonStillFrontPic_UnownW),
STILL_FRONT_PIC(UNOWN_X, gMonStillFrontPic_UnownX),
STILL_FRONT_PIC(UNOWN_Y, gMonStillFrontPic_UnownY),
STILL_FRONT_PIC(UNOWN_Z, gMonStillFrontPic_UnownZ),
STILL_FRONT_PIC(UNOWN_EMARK, gMonStillFrontPic_UnownExclamationMark),
STILL_FRONT_PIC(UNOWN_QMARK, gMonStillFrontPic_UnownQuestionMark),
};

View File

@ -208,13 +208,13 @@ void sub_8113064(struct Sprite *sprite)
sprite->data[3] = gBattleAnimArgs[4];
sprite->data[5] = gBattleAnimArgs[5];
sprite->invisible = 1;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_80A66DC;
}
static void sub_8113100(struct Sprite *sprite)
{
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@ -235,7 +235,7 @@ static void sub_8113100(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[4];
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
void sub_81131B4(struct Sprite *sprite)
@ -253,8 +253,8 @@ void sub_81131B4(struct Sprite *sprite)
sub_80A6864(sprite, gBattleAnimArgs[1]);
sprite->pos1.y += gBattleAnimArgs[2];
sprite->callback = sub_80A67D8;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = RunStoredCallbackWhenAnimEnds;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
void sub_8113224(struct Sprite *sprite)

File diff suppressed because it is too large Load Diff

View File

@ -5,7 +5,6 @@
#include "constants/songs.h"
#include "sound.h"
extern void sub_80A62EC(struct Sprite *);
extern void sub_810E2C8(struct Sprite *);
extern bool8 sub_810B614(struct Task *task, u8 taskId);
extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *);
@ -487,13 +486,13 @@ static void sub_810A214(struct Sprite *sprite)
static void sub_810A258(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
static void sub_810A274(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@ -509,65 +508,55 @@ static void sub_810A274(struct Sprite *sprite)
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[2] = gBattleAnimArgs[3];
sprite->data[3] = gBattleAnimArgs[4];
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A62EC;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = TranslateSpriteInCircleOverDuration;
}
static void sub_810A308(struct Sprite *sprite)
{
u8 slot;
u8 battler;
u32 matrixNum;
s16 sineVal;
switch (gBattleAnimArgs[4])
{
case 0:
slot = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
break;
case 1:
default:
slot = gBattleAnimTarget;
battler = gBattleAnimTarget;
break;
case 2:
if (!IsBattlerSpriteVisible(gBattleAnimAttacker ^ 2))
{
slot = gBattleAnimAttacker;
}
if (!IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
battler = gBattleAnimAttacker;
else
{
slot = gBattleAnimAttacker ^ 2;
}
battler = BATTLE_PARTNER(gBattleAnimAttacker);
break;
case 3:
if (IsBattlerSpriteVisible(gBattleAnimAttacker ^ 2))
{
slot = gBattleAnimTarget ^ 2;
}
if (IsBattlerSpriteVisible(BATTLE_PARTNER(gBattleAnimAttacker)))
battler = BATTLE_PARTNER(gBattleAnimTarget);
else
{
slot = gBattleAnimTarget;
}
battler = gBattleAnimTarget;
break;
}
if (gBattleAnimArgs[5] == 0)
{
sprite->pos1.x = GetBattlerSpriteCoord(slot, 0);
sprite->pos1.y = GetBattlerSpriteCoord(slot, 1);
sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X);
sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y);
}
else
{
sprite->pos1.x = GetBattlerSpriteCoord(slot, 2);
sprite->pos1.y = GetBattlerSpriteCoord(slot, 3);
sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET);
}
sprite->pos2.x = (gSineTable[gBattleAnimArgs[0]] * gBattleAnimArgs[1]) >> 8;
sprite->pos2.y = (gSineTable[gBattleAnimArgs[0] + 64] * gBattleAnimArgs[1]) >> 8;
if (gBattleAnimArgs[6] & 1)
{
sprite->oam.priority = sub_80A8328(slot) + 1;
}
sprite->oam.priority = sub_80A8328(battler) + 1;
matrixNum = sprite->oam.matrixNum;
sineVal = gSineTable[gBattleAnimArgs[2]];
@ -585,9 +574,9 @@ static void sub_810A46C(struct Sprite *sprite)
InitAnimSpritePos(sprite, 1);
sprite->data[0] = gBattleAnimArgs[3];
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->data[2] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->data[3] = sprite->pos1.y;
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
InitAnimLinearTranslation(sprite);
sprite->data[5] = gBattleAnimArgs[2];
sprite->data[6] = gBattleAnimArgs[5];
@ -627,8 +616,8 @@ static void sub_810A5BC(struct Sprite *sprite)
if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2) + gBattleAnimArgs[1];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3) + gBattleAnimArgs[2];
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) + gBattleAnimArgs[1];
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[2];
sprite->data[3] = gBattleAnimArgs[0];
sprite->data[4] = gBattleAnimArgs[3];
sprite->data[5] = gBattleAnimArgs[3];
@ -637,19 +626,19 @@ static void sub_810A5BC(struct Sprite *sprite)
static void sub_810A628(struct Sprite *sprite)
{
u8 bank;
u8 battler;
sprite->data[0] = gBattleAnimArgs[3];
if (gBattleAnimArgs[7] & 0x8000)
bank = gBattleAnimTarget;
battler = gBattleAnimTarget;
else
bank = gBattleAnimAttacker;
battler = gBattleAnimAttacker;
if (IsContest() || GetBattlerSide(bank) == B_SIDE_PLAYER)
if (IsContest() || GetBattlerSide(battler) == B_SIDE_PLAYER)
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
sprite->pos1.x = GetBattlerSpriteCoord(bank, 2) + gBattleAnimArgs[0];
sprite->pos1.y = GetBattlerSpriteCoord(bank, 3) + gBattleAnimArgs[1];
sprite->pos1.x = GetBattlerSpriteCoord(battler, BATTLER_COORD_X_2) + gBattleAnimArgs[0];
sprite->pos1.y = GetBattlerSpriteCoord(battler, BATTLER_COORD_Y_PIC_OFFSET) + gBattleAnimArgs[1];
sprite->data[4] = gBattleAnimArgs[7] & 0x7FFF;
sprite->data[5] = gBattleAnimArgs[2];
@ -658,7 +647,7 @@ static void sub_810A628(struct Sprite *sprite)
sprite->oam.tileNum += gBattleAnimArgs[6] * 4;
sprite->callback = sub_810A6EC;
sub_810A6EC(sprite);
sprite->callback(sprite);
}
static void sub_810A6EC(struct Sprite *sprite)
@ -1015,13 +1004,13 @@ void sub_810AAFC(u8 taskId)
if (!gBattleAnimArgs[0])
{
task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
task->data[15] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
task->data[14] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
task->data[6] = gBattleAnimArgs[1];
@ -1061,7 +1050,7 @@ void sub_810AB78(u8 taskId)
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, sub_810ACC0);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
if (++task->data[9] > 15)
task->data[9] = 0;
@ -1101,43 +1090,43 @@ static void sub_810ACD8(struct Sprite *sprite)
{
if (!gBattleAnimArgs[0])
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67BC;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_810AD30(struct Sprite *sprite)
{
if (!gBattleAnimArgs[0])
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
}
else
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
}
sprite->pos2.x = gBattleAnimArgs[1];
sprite->pos2.y = gBattleAnimArgs[2];
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
static void sub_810AD98(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, 1);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
sprite->data[6] = GetAnimBattlerSpriteId(0);
sprite->data[7] = 16;
@ -1159,7 +1148,7 @@ static void sub_810ADF8(struct Sprite *sprite)
sprite->pos1.x += sprite->data[7];
gSprites[sprite->data[6]].pos2.x += sprite->data[7];
if ((u16)(sprite->pos1.x + 80) > 400)
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
}
@ -1171,7 +1160,7 @@ void sub_810AE5C(u8 taskId)
{
case 0:
task->data[15] = GetAnimBattlerSpriteId(0);
task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
task->data[14] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER)
{
task->data[14] = -32;
@ -1230,14 +1219,14 @@ void sub_810AFCC(u8 taskId)
switch (gBattleAnimArgs[0])
{
case 0:
task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
task->data[5] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
task->data[3] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
task->data[5] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
task->data[4] = (task->data[1] * 128) + 120;
break;
case 4:
task->data[3] = 120 - (task->data[1] * 128);
task->data[5] = GetBattlerSpriteCoord(gBattleAnimTarget, 3);
task->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, 2) - (task->data[1] * 32);
task->data[5] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET);
task->data[4] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - (task->data[1] * 32);
break;
default:
if ((gBattleAnimArgs[0] & 1) != 0)
@ -1337,14 +1326,14 @@ static void sub_810B23C(struct Sprite *sprite)
switch (sprite->data[0])
{
case 0:
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
StartSpriteAffineAnim(sprite, 2);
sprite->data[0]++;
break;
case 1:
if (sprite->affineAnimEnded)
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
}
@ -1355,10 +1344,10 @@ void sub_810B29C(u8 taskId)
switch (task->data[0])
{
case 0:
task->data[6] = GetBattlerSpriteCoord(gBattleAnimAttacker, 2);
task->data[7] = GetBattlerSpriteCoord(gBattleAnimAttacker, 3);
task->data[6] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
task->data[7] = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
task->data[8] = 4;
task->data[10] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
task->data[10] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
task->data[9] = (task->data[10] - task->data[6]) / 5;
task->data[4] = 7;
task->data[5] = -1;
@ -1479,15 +1468,15 @@ void sub_810B55C(u8 taskId)
switch (task->data[0])
{
case 0:
task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + 32;
task->data[15] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y) + 32;
task->data[14] = task->data[15];
while (task->data[14] > 16)
{
task->data[14] -= 32;
}
task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, 2);
task->data[12] = GetBattlerSubpriority(gBattleAnimTarget) - 2;
task->data[13] = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2);
task->data[12] = GetBattlerSpriteSubpriority(gBattleAnimTarget) - 2;
task->data[0]++;
break;
case 1:

View File

@ -828,7 +828,7 @@ static void sub_810D6A8(struct Sprite *sprite)
sprite->data[4] = GetBattlerSpriteCoord(sprite->data[7], 3);
InitAnimLinearTranslation(sprite);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_80A6F98;
}
}
@ -839,7 +839,7 @@ void sub_810D714(struct Sprite *sprite)
sprite->pos1.y = 120;
sprite->data[0] = gBattleAnimArgs[3];
sub_80A8048(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8));
StorePointerInVars(&sprite->data[4], &sprite->data[5], (void *)(sprite->pos1.y << 8));
sprite->data[6] = gBattleAnimArgs[1];
sprite->oam.tileNum += gBattleAnimArgs[2] * 4;
@ -853,9 +853,9 @@ static void sub_810D770(struct Sprite *sprite)
if (sprite->data[0] != 0)
{
var0 = sub_80A8050(sprite->data[4], sprite->data[5]);
var0 = LoadPointerFromVars(sprite->data[4], sprite->data[5]);
var0 -= sprite->data[6];
sub_80A8048(&sprite->data[4], &sprite->data[5], var0);
StorePointerInVars(&sprite->data[4], &sprite->data[5], var0);
var0 = (void *)(((intptr_t)var0) >> 8);
sprite->pos1.y = (intptr_t)var0;
@ -978,7 +978,7 @@ void sub_810DA10(struct Sprite *sprite)
StartSpriteAnim(sprite, 1);
}
sprite->callback = sub_80A67D8;
sprite->callback = RunStoredCallbackWhenAnimEnds;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}

View File

@ -466,7 +466,7 @@ static void sub_8108EC8(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = sub_80A634C;
sprite->callback = TranslateSpriteInGrowingCircleOverDuration;
sprite->callback(sprite);
}
@ -479,13 +479,13 @@ static void sub_8108F08(struct Sprite *sprite)
sprite->data[1] = gBattleAnimArgs[2];
sprite->data[2] = gBattleAnimArgs[3];
sprite->callback = sub_80A656C;
sprite->callback = TranslateAnimLinearSimple;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_8108F4C(struct Sprite *sprite)
{
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
{
@ -538,12 +538,12 @@ static void sub_8109028(struct Sprite *sprite)
}
if (sprite->data[0] == sprite->data[1])
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
static void sub_8109064(struct Sprite *sprite)
{
sub_80A6838(sprite);
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker))
{
@ -588,7 +588,7 @@ static void sub_81090D8(struct Sprite *sprite)
}
else
{
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
}
}
@ -779,7 +779,7 @@ void sub_8109460(u8 taskId) // initialize animation task for Move_ERUPTION?
task->data[5] = GetBattlerSide(gBattleAnimAttacker);
task->data[6] = 0;
sub_80A7270(task->data[15], 0);
PrepareBattlerSpriteForRotScale(task->data[15], ST_OAM_OBJ_NORMAL);
task->func = sub_81094D0;
}
@ -816,7 +816,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
if(!sub_80A80C8(task))
{
sub_80A7E6C(task->data[15]);
SetBattlerSpriteYOffsetFromYScale(task->data[15]);
gSprites[task->data[15]].pos2.x = 0;
task->data[1] = 0;
@ -879,7 +879,7 @@ static void sub_81094D0(u8 taskId) // animate Move_ERUPTION?
if (!sub_80A80C8(task))
{
gSprites[task->data[15]].pos1.y = task->data[4];
sub_80A7344(task->data[15]);
ResetSpriteRotScale(task->data[15]);
task->data[2] = 0;
task->data[0]++;

View File

@ -342,8 +342,8 @@ void sub_811188C(u8 taskId)
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 0x10));
spriteId = GetAnimBattlerSpriteId(0);
sub_80A7270(spriteId, 1);
obj_id_set_rotscale(spriteId, 128, 128, 0);
PrepareBattlerSpriteForRotScale(spriteId, ST_OAM_OBJ_BLEND);
SetSpriteRotScale(spriteId, 128, 128, 0);
gSprites[spriteId].invisible = FALSE;
gTasks[taskId].data[0] = 128;
gTasks[taskId].data[1] = *gBattleAnimArgs;
@ -381,11 +381,11 @@ static void sub_811196C(u8 taskId)
gTasks[taskId].data[0] += 8;
if (gTasks[taskId].data[0] <= 0xFF)
{
obj_id_set_rotscale(spriteId, gTasks[taskId].data[0], gTasks[taskId].data[0], 0);
SetSpriteRotScale(spriteId, gTasks[taskId].data[0], gTasks[taskId].data[0], 0);
}
else
{
sub_80A7344(spriteId);
ResetSpriteRotScale(spriteId);
DestroyAnimVisualTask(taskId);
SetGpuReg(REG_OFFSET_BLDCNT, 0);
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
@ -454,7 +454,7 @@ static void AnimShadowBallStep(struct Sprite *sprite)
sprite->data[0] += 1;
break;
case 3:
move_anim_8074EE0(sprite);
DestroySpriteAndMatrix(sprite);
break;
}
}
@ -510,7 +510,7 @@ void sub_8111C50(u8 taskId)
struct Task *task;
task = &gTasks[taskId];
task->data[0] = duplicate_obj_of_side_rel2move_in_transparent_mode(1);
task->data[0] = CloneBattlerSpriteWithBlend(1);
if (task->data[0] < 0)
{
DestroyAnimVisualTask(taskId);
@ -536,7 +536,7 @@ void sub_8111C50(u8 taskId)
gSprites[task->data[0]].data[3] = 0;
gSprites[task->data[0]].data[4] = 0;
StoreSpriteCallbackInData6(&gSprites[task->data[0]], SpriteCallbackDummy);
gSprites[task->data[0]].callback = sub_80A656C;
gSprites[task->data[0]].callback = TranslateAnimLinearSimple;
task->func = sub_8111D78;
}
@ -602,7 +602,7 @@ static void sub_8111E78(u8 taskId)
}
else
{
task->data[0] = duplicate_obj_of_side_rel2move_in_transparent_mode(1);
task->data[0] = CloneBattlerSpriteWithBlend(1);
if (task->data[0] < 0)
{
FreeSpritePaletteByTag(0x2771);
@ -1171,7 +1171,7 @@ void sub_8112C6C(u8 taskId)
task->data[11] = (sub_80A861C(gBattleAnimAttacker, 1) / 2) + 8;
task->data[7] = 0;
task->data[5] = sub_80A8328(gBattleAnimAttacker);
task->data[6] = GetBattlerSubpriority(gBattleAnimAttacker) - 2;
task->data[6] = GetBattlerSpriteSubpriority(gBattleAnimAttacker) - 2;
task->data[3] = 0;
task->data[4] = 16;
SetGpuReg(REG_OFFSET_BLDCNT, (BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_ALL));
@ -1322,6 +1322,6 @@ static void sub_8112FB8(struct Sprite *sprite)
gSprites[sprite->data[5]].pos2.x = 0;
gSprites[sprite->data[5]].pos2.y = 0;
gSprites[sprite->data[5]].pos1.y -= 8;
sprite->callback = move_anim_8074EE0;
sprite->callback = DestroySpriteAndMatrix;
}
}

View File

@ -897,9 +897,9 @@ const u32 gBattleStatMask6_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat6
const u32 gBattleStatMask7_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat7.gbapal.lz");
const u32 gBattleStatMask8_Pal[] = INCBIN_U32("graphics/battle_anims/masks/stat8.gbapal.lz");
const u32 gUnknown_08C2DC68[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
const u32 gUnknown_08C2DDA4[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
const u32 gUnknown_08C2DDC4[] = INCBIN_U32("graphics/battle_anims/masks/cure_bubbles.bin.lz");
const u8 gUnknown_08C2DC68[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.4bpp.lz");
const u16 gUnknown_08C2DDA4[] = INCBIN_U16("graphics/battle_anims/masks/cure_bubbles.gbapal.lz");
const u8 gUnknown_08C2DDC4[] = INCBIN_U8("graphics/battle_anims/masks/cure_bubbles.bin.lz");
const u32 gBattleAnimSpritePalette_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.gbapal.lz");
const u32 gBattleAnimSpriteSheet_245[] = INCBIN_U32("graphics/battle_anims/sprites/245.4bpp.lz");

View File

@ -221,7 +221,7 @@ void AnimDirtScatter(struct Sprite *sprite)
sprite->data[2] = targetXPos + xOffset;
sprite->data[4] = targetYPos + yOffset;
sprite->callback = StartAnimLinearTranslation;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
// Moves a particle of dirt in the Mud Sport animation.

View File

@ -497,7 +497,7 @@ static void Task_Hof_InitTeamSaveData(u8 taskId)
for (i = 0; i < HALL_OF_FAME_MAX_TEAMS; i++, lastSavedTeam++)
{
if (lastSavedTeam->mon[0].species == 0)
if (lastSavedTeam->mon[0].species == SPECIES_NONE)
break;
}
if (i >= HALL_OF_FAME_MAX_TEAMS)

View File

@ -410,8 +410,8 @@ void sub_81159B4(struct Sprite *sprite)
sprite->data[3] = 40;
sprite->data[4] = 112;
sprite->data[5] = 0;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A634C;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = TranslateSpriteInGrowingCircleOverDuration;
sprite->callback(sprite);
}
@ -884,7 +884,7 @@ void sub_8116388(struct Sprite *sprite)
else
sub_80A6980(sprite, TRUE);
sprite->callback = sub_80A67BC;
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@ -897,7 +897,7 @@ static void sub_81163D0(struct Sprite *sprite)
sub_80A6980(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[4];
sprite->callback = sub_80A67BC;
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
StoreSpriteCallbackInData6(sprite, sub_810E2C8);
}
@ -923,8 +923,8 @@ void sub_8116458(struct Sprite *sprite)
sprite->pos2.x += (Random2() % 48) - 24;
sprite->pos2.y += (Random2() % 24) - 12;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67BC;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
void sub_81164F0(struct Sprite *sprite)
@ -935,8 +935,8 @@ void sub_81164F0(struct Sprite *sprite)
sprite->pos2.x = gBattleAnimArgs[1];
sprite->pos2.y = gBattleAnimArgs[2];
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = sub_80A67BC;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
void sub_8116560(struct Sprite *sprite)

View File

@ -258,7 +258,7 @@ void sub_810DCD0(struct Sprite *sprite)
static void sub_810DD24(struct Sprite *sprite)
{
sub_80A656C(sprite);
TranslateAnimLinearSimple(sprite);
sprite->data[1] -= sprite->data[5];
sprite->data[2] -= sprite->data[6];

View File

@ -5929,13 +5929,13 @@ u16 HoennToNationalOrder(u16 hoennNum)
u16 SpeciesToCryId(u16 species)
{
if (species <= 250)
if (species <= SPECIES_CELEBI - 1)
return species;
if (species < 276)
return 200;
if (species < SPECIES_TREECKO - 1)
return SPECIES_UNOWN - 1;
return gSpeciesIdToCryId[species - 276];
return gSpeciesIdToCryId[species - (SPECIES_TREECKO - 1)];
}
void sub_806D544(u16 species, u32 personality, u8 *dest)

View File

@ -226,7 +226,7 @@ static void CreateBattlerSprite(u8 battler)
return;
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSubpriority(battler));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
@ -241,7 +241,7 @@ static void CreateBattlerSprite(u8 battler)
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(B_POSITION_PLAYER_LEFT));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
(8 - gTrainerBackPicCoords[gSaveBlock2Ptr->playerGender].coords) * 4 + 80,
GetBattlerSubpriority(0));
GetBattlerSpriteSubpriority(0));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
@ -251,7 +251,7 @@ static void CreateBattlerSprite(u8 battler)
SetMultiuseSpriteTemplateToTrainerBack(TRAINER_BACK_PIC_WALLY, GetBattlerPosition(0));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, 0x50,
(8 - gTrainerBackPicCoords[TRAINER_BACK_PIC_WALLY].coords) * 4 + 80,
GetBattlerSubpriority(0));
GetBattlerSpriteSubpriority(0));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;
@ -262,7 +262,7 @@ static void CreateBattlerSprite(u8 battler)
return;
SetMultiuseSpriteTemplateToPokemon(GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES), GetBattlerPosition(battler));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSubpriority(battler));
gBattlerSpriteIds[battler] = CreateSprite(&gMultiuseSpriteTemplate, GetBattlerSpriteCoord(battler, 2), posY, GetBattlerSpriteSubpriority(battler));
gSprites[gBattlerSpriteIds[battler]].oam.paletteNum = battler;
gSprites[gBattlerSpriteIds[battler]].callback = SpriteCallbackDummy;
gSprites[gBattlerSpriteIds[battler]].data[0] = battler;

View File

@ -340,7 +340,7 @@ static void sub_8110A70(struct Sprite *sprite)
sprite->data[3] = 32;
sprite->data[4] = -24;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
sprite->callback = sub_80A6450;
sprite->callback(sprite);
}
@ -367,8 +367,8 @@ void sub_8110AB4(struct Sprite *sprite)
sprite->data[3] = 0;
sprite->data[4] = 0;
sprite->callback = sub_80A656C;
StoreSpriteCallbackInData6(sprite, move_anim_8074EE0);
sprite->callback = TranslateAnimLinearSimple;
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
void sub_8110B38(struct Sprite *sprite)

View File

@ -3231,7 +3231,7 @@ u16 TV_GetSomeOtherSpeciesAlreadySeenByPlayer(u16 passedSpecies)
initSpecies = species;
while (GetSetPokedexFlag(SpeciesToNationalPokedexNum(species), FLAG_GET_SEEN) != TRUE || species == passedSpecies)
{
if (species == 1)
if (species == SPECIES_NONE + 1)
{
species = NUM_SPECIES - 1;
}