all matching except Task_DoPokeballSendOutAnim
This commit is contained in:
@@ -1219,7 +1219,7 @@ sub_80EF5AC: @ 80EF5AC
|
|||||||
lsls r0, r1, 1
|
lsls r0, r1, 1
|
||||||
adds r0, r1
|
adds r0, r1
|
||||||
lsls r0, 3
|
lsls r0, 3
|
||||||
ldr r1, _080EF678 @ =gUnknown_82606F4
|
ldr r1, _080EF678 @ =gBallSpriteTemplates
|
||||||
adds r0, r1
|
adds r0, r1
|
||||||
movs r1, 0x20
|
movs r1, 0x20
|
||||||
movs r2, 0x50
|
movs r2, 0x50
|
||||||
@@ -1298,7 +1298,7 @@ sub_80EF5AC: @ 80EF5AC
|
|||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080EF674: .4byte gLastUsedItem
|
_080EF674: .4byte gLastUsedItem
|
||||||
_080EF678: .4byte gUnknown_82606F4
|
_080EF678: .4byte gBallSpriteTemplates
|
||||||
_080EF67C: .4byte gSprites
|
_080EF67C: .4byte gSprites
|
||||||
_080EF680: .4byte gBattleAnimTarget
|
_080EF680: .4byte gBattleAnimTarget
|
||||||
_080EF684: .4byte sub_80EF8C0
|
_080EF684: .4byte sub_80EF8C0
|
||||||
@@ -1387,7 +1387,7 @@ _080EF708:
|
|||||||
lsls r0, r4, 1
|
lsls r0, r4, 1
|
||||||
adds r0, r4
|
adds r0, r4
|
||||||
lsls r0, 3
|
lsls r0, 3
|
||||||
ldr r1, _080EF7CC @ =gUnknown_82606F4
|
ldr r1, _080EF7CC @ =gBallSpriteTemplates
|
||||||
adds r0, r1
|
adds r0, r1
|
||||||
movs r1, 0x20
|
movs r1, 0x20
|
||||||
orrs r5, r1
|
orrs r5, r1
|
||||||
@@ -1458,7 +1458,7 @@ _080EF708:
|
|||||||
.align 2, 0
|
.align 2, 0
|
||||||
_080EF7C4: .4byte gSaveBlock2Ptr
|
_080EF7C4: .4byte gSaveBlock2Ptr
|
||||||
_080EF7C8: .4byte gLastUsedItem
|
_080EF7C8: .4byte gLastUsedItem
|
||||||
_080EF7CC: .4byte gUnknown_82606F4
|
_080EF7CC: .4byte gBallSpriteTemplates
|
||||||
_080EF7D0: .4byte gSprites
|
_080EF7D0: .4byte gSprites
|
||||||
_080EF7D4: .4byte gBattleAnimTarget
|
_080EF7D4: .4byte gBattleAnimTarget
|
||||||
_080EF7D8: .4byte SpriteCallbackDummy
|
_080EF7D8: .4byte SpriteCallbackDummy
|
||||||
|
|||||||
@@ -10638,7 +10638,7 @@ _08139CDA:
|
|||||||
lsls r0, r4, 1
|
lsls r0, r4, 1
|
||||||
adds r0, r4
|
adds r0, r4
|
||||||
lsls r0, 3
|
lsls r0, 3
|
||||||
ldr r1, _08139D40 @ =gUnknown_82606F4
|
ldr r1, _08139D40 @ =gBallSpriteTemplates
|
||||||
adds r0, r1
|
adds r0, r1
|
||||||
movs r1, 0x6A
|
movs r1, 0x6A
|
||||||
movs r2, 0x58
|
movs r2, 0x58
|
||||||
@@ -10677,7 +10677,7 @@ _08139CDA:
|
|||||||
pop {r0}
|
pop {r0}
|
||||||
bx r0
|
bx r0
|
||||||
.align 2, 0
|
.align 2, 0
|
||||||
_08139D40: .4byte gUnknown_82606F4
|
_08139D40: .4byte gBallSpriteTemplates
|
||||||
_08139D44: .4byte gUnknown_203B140
|
_08139D44: .4byte gUnknown_203B140
|
||||||
_08139D48: .4byte 0x0000300c
|
_08139D48: .4byte 0x0000300c
|
||||||
_08139D4C: .4byte gSprites
|
_08139D4C: .4byte gSprites
|
||||||
|
|||||||
+25
-25
@@ -46,103 +46,103 @@ gFile_graphics_battle_anims_sprites_smokescreen_impact_palette:: @ 8D0170C
|
|||||||
.incbin "graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz"
|
.incbin "graphics/battle_anims/sprites/smokescreen_impact.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Poke_sheet:: @ 8D01724
|
gInterfaceGfx_PokeBall:: @ 8D01724
|
||||||
.incbin "graphics/interface/ball/poke.4bpp.lz"
|
.incbin "graphics/interface/ball/poke.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Poke_palette:: @ 8D017E0
|
gInterfacePal_PokeBall:: @ 8D017E0
|
||||||
.incbin "graphics/interface/ball/poke.gbapal.lz"
|
.incbin "graphics/interface/ball/poke.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Great_sheet:: @ 8D01800
|
gInterfaceGfx_GreatBall:: @ 8D01800
|
||||||
.incbin "graphics/interface/ball/great.4bpp.lz"
|
.incbin "graphics/interface/ball/great.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Great_palette:: @ 8D018BC
|
gInterfacePal_GreatBall:: @ 8D018BC
|
||||||
.incbin "graphics/interface/ball/great.gbapal.lz"
|
.incbin "graphics/interface/ball/great.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Safari_sheet:: @ 8D018E0
|
gInterfaceGfx_SafariBall:: @ 8D018E0
|
||||||
.incbin "graphics/interface/ball/safari.4bpp.lz"
|
.incbin "graphics/interface/ball/safari.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Safari_palette:: @ 8D019A4
|
gInterfacePal_SafariBall:: @ 8D019A4
|
||||||
.incbin "graphics/interface/ball/safari.gbapal.lz"
|
.incbin "graphics/interface/ball/safari.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Ultra_sheet:: @ 8D019C8
|
gInterfaceGfx_UltraBall:: @ 8D019C8
|
||||||
.incbin "graphics/interface/ball/ultra.4bpp.lz"
|
.incbin "graphics/interface/ball/ultra.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Ultra_palette:: @ 8D01A7C
|
gInterfacePal_UltraBall:: @ 8D01A7C
|
||||||
.incbin "graphics/interface/ball/ultra.gbapal.lz"
|
.incbin "graphics/interface/ball/ultra.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Master_sheet:: @ 8D01A9C
|
gInterfaceGfx_MasterBall:: @ 8D01A9C
|
||||||
.incbin "graphics/interface/ball/master.4bpp.lz"
|
.incbin "graphics/interface/ball/master.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Master_palette:: @ 8D01B5C
|
gInterfacePal_MasterBall:: @ 8D01B5C
|
||||||
.incbin "graphics/interface/ball/master.gbapal.lz"
|
.incbin "graphics/interface/ball/master.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Net_sheet:: @ 8D01B80
|
gInterfaceGfx_NetBall:: @ 8D01B80
|
||||||
.incbin "graphics/interface/ball/net.4bpp.lz"
|
.incbin "graphics/interface/ball/net.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Net_palette:: @ 8D01C40
|
gInterfacePal_NetBall:: @ 8D01C40
|
||||||
.incbin "graphics/interface/ball/net.gbapal.lz"
|
.incbin "graphics/interface/ball/net.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Dive_sheet:: @ 8D01C60
|
gInterfaceGfx_DiveBall:: @ 8D01C60
|
||||||
.incbin "graphics/interface/ball/dive.4bpp.lz"
|
.incbin "graphics/interface/ball/dive.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Dive_palette:: @ 8D01D74
|
gInterfacePal_DiveBall:: @ 8D01D74
|
||||||
.incbin "graphics/interface/ball/dive.gbapal.lz"
|
.incbin "graphics/interface/ball/dive.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Nest_sheet:: @ 8D01D9C
|
gInterfaceGfx_NestBall:: @ 8D01D9C
|
||||||
.incbin "graphics/interface/ball/nest.4bpp.lz"
|
.incbin "graphics/interface/ball/nest.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Nest_palette:: @ 8D01E60
|
gInterfacePal_NestBall:: @ 8D01E60
|
||||||
.incbin "graphics/interface/ball/nest.gbapal.lz"
|
.incbin "graphics/interface/ball/nest.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Repeat_sheet:: @ 8D01E84
|
gInterfaceGfx_RepeatBall:: @ 8D01E84
|
||||||
.incbin "graphics/interface/ball/repeat.4bpp.lz"
|
.incbin "graphics/interface/ball/repeat.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Repeat_palette:: @ 8D01F44
|
gInterfacePal_RepeatBall:: @ 8D01F44
|
||||||
.incbin "graphics/interface/ball/repeat.gbapal.lz"
|
.incbin "graphics/interface/ball/repeat.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Timer_sheet:: @ 8D01F68
|
gInterfaceGfx_TimerBall:: @ 8D01F68
|
||||||
.incbin "graphics/interface/ball/timer.4bpp.lz"
|
.incbin "graphics/interface/ball/timer.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Timer_palette:: @ 8D02060
|
gInterfacePal_TimerBall:: @ 8D02060
|
||||||
.incbin "graphics/interface/ball/timer.gbapal.lz"
|
.incbin "graphics/interface/ball/timer.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Luxury_sheet:: @ 8D02084
|
gInterfaceGfx_LuxuryBall:: @ 8D02084
|
||||||
.incbin "graphics/interface/ball/luxury.4bpp.lz"
|
.incbin "graphics/interface/ball/luxury.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Luxury_palette:: @ 8D021B0
|
gInterfacePal_LuxuryBall:: @ 8D021B0
|
||||||
.incbin "graphics/interface/ball/luxury.gbapal.lz"
|
.incbin "graphics/interface/ball/luxury.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Premier_sheet:: @ 8D021D8
|
gInterfaceGfx_PremierBall:: @ 8D021D8
|
||||||
.incbin "graphics/interface/ball/premier.4bpp.lz"
|
.incbin "graphics/interface/ball/premier.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Premier_palette:: @ 8D022C8
|
gInterfacePal_PremierBall:: @ 8D022C8
|
||||||
.incbin "graphics/interface/ball/premier.gbapal.lz"
|
.incbin "graphics/interface/ball/premier.gbapal.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
gFile_graphics_interface_ball_Open_sheet:: @ 8D022E8
|
gOpenPokeballGfx:: @ 8D022E8
|
||||||
.incbin "graphics/interface/ball_open.4bpp.lz"
|
.incbin "graphics/interface/ball_open.4bpp.lz"
|
||||||
|
|
||||||
.align 2
|
.align 2
|
||||||
|
|||||||
-116
@@ -1,116 +0,0 @@
|
|||||||
.include "asm/macros.inc"
|
|
||||||
.include "constants/constants.inc"
|
|
||||||
|
|
||||||
.section .rodata
|
|
||||||
.align 2, 0
|
|
||||||
|
|
||||||
gUnknown_826056C:: @ 826056C
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Poke_sheet, 0x180, 55000
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Great_sheet, 0x180, 55001
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Safari_sheet, 0x180, 55002
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Ultra_sheet, 0x180, 55003
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Master_sheet, 0x180, 55004
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Net_sheet, 0x180, 55005
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Dive_sheet, 0x180, 55006
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Nest_sheet, 0x180, 55007
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Repeat_sheet, 0x180, 55008
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Timer_sheet, 0x180, 55009
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Luxury_sheet, 0x180, 55010
|
|
||||||
obj_tiles gFile_graphics_interface_ball_Premier_sheet, 0x180, 55011
|
|
||||||
|
|
||||||
gUnknown_82605CC:: @ 82605CC
|
|
||||||
obj_pal gFile_graphics_interface_ball_Poke_palette, 55000
|
|
||||||
obj_pal gFile_graphics_interface_ball_Great_palette, 55001
|
|
||||||
obj_pal gFile_graphics_interface_ball_Safari_palette, 55002
|
|
||||||
obj_pal gFile_graphics_interface_ball_Ultra_palette, 55003
|
|
||||||
obj_pal gFile_graphics_interface_ball_Master_palette, 55004
|
|
||||||
obj_pal gFile_graphics_interface_ball_Net_palette, 55005
|
|
||||||
obj_pal gFile_graphics_interface_ball_Dive_palette, 55006
|
|
||||||
obj_pal gFile_graphics_interface_ball_Nest_palette, 55007
|
|
||||||
obj_pal gFile_graphics_interface_ball_Repeat_palette, 55008
|
|
||||||
obj_pal gFile_graphics_interface_ball_Timer_palette, 55009
|
|
||||||
obj_pal gFile_graphics_interface_ball_Luxury_palette, 55010
|
|
||||||
obj_pal gFile_graphics_interface_ball_Premier_palette, 55011
|
|
||||||
|
|
||||||
gOamData_826062C:: @ 826062C
|
|
||||||
.4byte 0x40000300, 0x00000800
|
|
||||||
|
|
||||||
gSpriteAnim_8260634:: @ 8260634
|
|
||||||
obj_image_anim_frame 0x0, 0x5
|
|
||||||
obj_image_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAnim_826063C:: @ 826063C
|
|
||||||
obj_image_anim_frame 0x4, 0x1
|
|
||||||
obj_image_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAnim_8260644:: @ 8260644
|
|
||||||
obj_image_anim_frame 0x8, 0x5
|
|
||||||
obj_image_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAnim_826064C:: @ 826064C
|
|
||||||
obj_image_anim_frame 0xc, 0x1
|
|
||||||
obj_image_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAnim_8260654:: @ 8260654
|
|
||||||
obj_image_anim_frame 0x0, 0x1
|
|
||||||
obj_image_anim_end
|
|
||||||
|
|
||||||
gSpriteAnim_826065C:: @ 826065C
|
|
||||||
obj_image_anim_frame 0x4, 0x5
|
|
||||||
obj_image_anim_frame 0x8, 0x5
|
|
||||||
obj_image_anim_end
|
|
||||||
|
|
||||||
gSpriteAnim_8260668:: @ 8260668
|
|
||||||
obj_image_anim_frame 0x4, 0x5
|
|
||||||
obj_image_anim_frame 0x0, 0x5
|
|
||||||
obj_image_anim_end
|
|
||||||
|
|
||||||
gSpriteAnimTable_8260674::
|
|
||||||
.4byte gSpriteAnim_8260654
|
|
||||||
.4byte gSpriteAnim_826065C
|
|
||||||
.4byte gSpriteAnim_8260668
|
|
||||||
.4byte gSpriteAnim_8260634
|
|
||||||
.4byte gSpriteAnim_8260644
|
|
||||||
.4byte gSpriteAnim_826063C
|
|
||||||
.4byte gSpriteAnim_826064C
|
|
||||||
|
|
||||||
gSpriteAffineAnims_8260690::
|
|
||||||
obj_rot_scal_anim_frame 0x0, 0x0, 0x0, 0x1
|
|
||||||
obj_rot_scal_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAffineAnims_82606A0::
|
|
||||||
obj_rot_scal_anim_frame 0x0, 0x0, 0xfd, 0x1
|
|
||||||
obj_rot_scal_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAffineAnims_82606B0::
|
|
||||||
obj_rot_scal_anim_frame 0x0, 0x0, 0x3, 0x1
|
|
||||||
obj_rot_scal_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAffineAnims_82606C0::
|
|
||||||
obj_rot_scal_anim_frame 0x100, 0x100, 0x0, 0x0
|
|
||||||
obj_rot_scal_anim_end
|
|
||||||
|
|
||||||
gSpriteAffineAnims_82606D0::
|
|
||||||
obj_rot_scal_anim_frame 0x0, 0x0, 0x19, 0x1
|
|
||||||
obj_rot_scal_anim_jump 0
|
|
||||||
|
|
||||||
gSpriteAffineAnimTable_82606E0::
|
|
||||||
.4byte gSpriteAffineAnims_8260690
|
|
||||||
.4byte gSpriteAffineAnims_82606A0
|
|
||||||
.4byte gSpriteAffineAnims_82606B0
|
|
||||||
.4byte gSpriteAffineAnims_82606C0
|
|
||||||
.4byte gSpriteAffineAnims_82606D0
|
|
||||||
|
|
||||||
gUnknown_82606F4:: @ 82606F4
|
|
||||||
spr_template 55000, 55000, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55001, 55001, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55002, 55002, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55003, 55003, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55004, 55004, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55005, 55005, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55006, 55006, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55007, 55007, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55008, 55008, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55009, 55009, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55010, 55010, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
spr_template 55011, 55011, gOamData_826062C, gSpriteAnimTable_8260674, NULL, gSpriteAffineAnimTable_82606E0, SpriteCB_TestBallThrow
|
|
||||||
+25
-25
@@ -7,31 +7,31 @@
|
|||||||
|
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
|
|
||||||
extern const u8 gInterfaceGfx_PokeBall[];
|
extern const u32 gInterfaceGfx_PokeBall[];
|
||||||
extern const u8 gInterfacePal_PokeBall[];
|
extern const u32 gInterfacePal_PokeBall[];
|
||||||
extern const u8 gInterfaceGfx_GreatBall[];
|
extern const u32 gInterfaceGfx_GreatBall[];
|
||||||
extern const u8 gInterfacePal_GreatBall[];
|
extern const u32 gInterfacePal_GreatBall[];
|
||||||
extern const u8 gInterfaceGfx_SafariBall[];
|
extern const u32 gInterfaceGfx_SafariBall[];
|
||||||
extern const u8 gInterfacePal_SafariBall[];
|
extern const u32 gInterfacePal_SafariBall[];
|
||||||
extern const u8 gInterfaceGfx_UltraBall[];
|
extern const u32 gInterfaceGfx_UltraBall[];
|
||||||
extern const u8 gInterfacePal_UltraBall[];
|
extern const u32 gInterfacePal_UltraBall[];
|
||||||
extern const u8 gInterfaceGfx_MasterBall[];
|
extern const u32 gInterfaceGfx_MasterBall[];
|
||||||
extern const u8 gInterfacePal_MasterBall[];
|
extern const u32 gInterfacePal_MasterBall[];
|
||||||
extern const u8 gInterfaceGfx_NetBall[];
|
extern const u32 gInterfaceGfx_NetBall[];
|
||||||
extern const u8 gInterfacePal_NetBall[];
|
extern const u32 gInterfacePal_NetBall[];
|
||||||
extern const u8 gInterfaceGfx_DiveBall[];
|
extern const u32 gInterfaceGfx_DiveBall[];
|
||||||
extern const u8 gInterfacePal_DiveBall[];
|
extern const u32 gInterfacePal_DiveBall[];
|
||||||
extern const u8 gInterfaceGfx_NestBall[];
|
extern const u32 gInterfaceGfx_NestBall[];
|
||||||
extern const u8 gInterfacePal_NestBall[];
|
extern const u32 gInterfacePal_NestBall[];
|
||||||
extern const u8 gInterfaceGfx_RepeatBall[];
|
extern const u32 gInterfaceGfx_RepeatBall[];
|
||||||
extern const u8 gInterfacePal_RepeatBall[];
|
extern const u32 gInterfacePal_RepeatBall[];
|
||||||
extern const u8 gInterfaceGfx_TimerBall[];
|
extern const u32 gInterfaceGfx_TimerBall[];
|
||||||
extern const u8 gInterfacePal_TimerBall[];
|
extern const u32 gInterfacePal_TimerBall[];
|
||||||
extern const u8 gInterfaceGfx_LuxuryBall[];
|
extern const u32 gInterfaceGfx_LuxuryBall[];
|
||||||
extern const u8 gInterfacePal_LuxuryBall[];
|
extern const u32 gInterfacePal_LuxuryBall[];
|
||||||
extern const u8 gInterfaceGfx_PremierBall[];
|
extern const u32 gInterfaceGfx_PremierBall[];
|
||||||
extern const u8 gInterfacePal_PremierBall[];
|
extern const u32 gInterfacePal_PremierBall[];
|
||||||
extern const u8 gOpenPokeballGfx[];
|
extern const u32 gOpenPokeballGfx[];
|
||||||
|
|
||||||
// pokemon gfx
|
// pokemon gfx
|
||||||
extern const u32 gMonFrontPic_Bulbasaur[];
|
extern const u32 gMonFrontPic_Bulbasaur[];
|
||||||
|
|||||||
+1
-1
@@ -24,7 +24,6 @@ enum
|
|||||||
#define POKEBALL_OPPONENT_SENDOUT 0xFE
|
#define POKEBALL_OPPONENT_SENDOUT 0xFE
|
||||||
|
|
||||||
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow);
|
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow);
|
||||||
//void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h, u16 species)
|
|
||||||
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h);
|
void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h);
|
||||||
u8 CreateTradePokeballSprite(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h);
|
u8 CreateTradePokeballSprite(u8 monSpriteId, u8 bank, u8 x, u8 y, u8 oamPriority, u8 subpriortiy, u8 g, u32 h);
|
||||||
u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h);
|
u8 sub_807671C(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h);
|
||||||
@@ -33,5 +32,6 @@ void DoHitAnimHealthboxEffect(u8 bank);
|
|||||||
void LoadBallGfx(u8 ballId);
|
void LoadBallGfx(u8 ballId);
|
||||||
void FreeBallGfx(u8 ballId);
|
void FreeBallGfx(u8 ballId);
|
||||||
void sub_804BD94(u8 battler);
|
void sub_804BD94(u8 battler);
|
||||||
|
void DestroySpriteAndFreeResources2(struct Sprite *sprite);
|
||||||
|
|
||||||
#endif // GUARD_POKEBALL_H
|
#endif // GUARD_POKEBALL_H
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@ struct Task
|
|||||||
/*0x05*/ u8 prev;
|
/*0x05*/ u8 prev;
|
||||||
/*0x06*/ u8 next;
|
/*0x06*/ u8 next;
|
||||||
/*0x07*/ u8 priority;
|
/*0x07*/ u8 priority;
|
||||||
/*0x08*/ s16 data[16]; //8, a, c, e, 10, 12, 14, 16, 18, 1a, 1c, 1e, 20, 22, 24, 26
|
/*0x08*/ s16 data[16];
|
||||||
}; /*size = 0x28*/
|
}; /*size = 0x28*/
|
||||||
|
|
||||||
extern struct Task gTasks[];
|
extern struct Task gTasks[];
|
||||||
|
|||||||
+1
-1
@@ -400,7 +400,7 @@ SECTIONS {
|
|||||||
src/daycare.o(.rodata);
|
src/daycare.o(.rodata);
|
||||||
src/battle_gfx_sfx_util.o(.rodata);
|
src/battle_gfx_sfx_util.o(.rodata);
|
||||||
data/battle_interface.o(.rodata);
|
data/battle_interface.o(.rodata);
|
||||||
data/pokeball.o(.rodata);
|
src/pokeball.o(.rodata);
|
||||||
src/trade.o(.rodata);
|
src/trade.o(.rodata);
|
||||||
src/trade_scene.o(.rodata);
|
src/trade_scene.o(.rodata);
|
||||||
data/overworld.o(.rodata);
|
data/overworld.o(.rodata);
|
||||||
|
|||||||
+296
-55
@@ -25,6 +25,19 @@
|
|||||||
|
|
||||||
#define sBattler data[6]
|
#define sBattler data[6]
|
||||||
|
|
||||||
|
#define GFX_TAG_POKE_BALL 55000
|
||||||
|
#define GFX_TAG_GREAT_BALL 55001
|
||||||
|
#define GFX_TAG_SAFARI_BALL 55002
|
||||||
|
#define GFX_TAG_ULTRA_BALL 55003
|
||||||
|
#define GFX_TAG_MASTER_BALL 55004
|
||||||
|
#define GFX_TAG_NET_BALL 55005
|
||||||
|
#define GFX_TAG_DIVE_BALL 55006
|
||||||
|
#define GFX_TAG_NEST_BALL 55007
|
||||||
|
#define GFX_TAG_REPEAT_BALL 55008
|
||||||
|
#define GFX_TAG_TIMER_BALL 55009
|
||||||
|
#define GFX_TAG_LUXURY_BALL 55010
|
||||||
|
#define GFX_TAG_PREMIER_BALL 55011
|
||||||
|
|
||||||
// Function Declarations
|
// Function Declarations
|
||||||
static void Task_DoPokeballSendOutAnim(u8 taskId);
|
static void Task_DoPokeballSendOutAnim(u8 taskId);
|
||||||
static void SpriteCB_TestBallThrow(struct Sprite *sprite);
|
static void SpriteCB_TestBallThrow(struct Sprite *sprite);
|
||||||
@@ -51,18 +64,266 @@ static void sub_804BAA4(struct Sprite *sprite);
|
|||||||
static void sub_804BC50(struct Sprite *sprite);
|
static void sub_804BC50(struct Sprite *sprite);
|
||||||
static void sub_804BCF8(struct Sprite *sprite);
|
static void sub_804BCF8(struct Sprite *sprite);
|
||||||
static void sub_804BD6C(struct Sprite *sprite);
|
static void sub_804BD6C(struct Sprite *sprite);
|
||||||
static void DestroySpriteAndFreeResources2(struct Sprite *sprite);
|
|
||||||
static void sub_804BE24(struct Sprite *sprite);
|
static void sub_804BE24(struct Sprite *sprite);
|
||||||
static void sub_804BE48(struct Sprite *sprite);
|
static void sub_804BE48(struct Sprite *sprite);
|
||||||
static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite);
|
static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite);
|
||||||
static u16 GetBattlerPokeballItemId(u8 battlerId);
|
static u16 GetBattlerPokeballItemId(u8 battlerId);
|
||||||
|
|
||||||
// Data
|
// Data
|
||||||
extern const struct SpriteTemplate gUnknown_82606F4[];
|
const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] =
|
||||||
|
{
|
||||||
|
{gInterfaceGfx_PokeBall, 384, GFX_TAG_POKE_BALL},
|
||||||
|
{gInterfaceGfx_GreatBall, 384, GFX_TAG_GREAT_BALL},
|
||||||
|
{gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARI_BALL},
|
||||||
|
{gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRA_BALL},
|
||||||
|
{gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTER_BALL},
|
||||||
|
{gInterfaceGfx_NetBall, 384, GFX_TAG_NET_BALL},
|
||||||
|
{gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVE_BALL},
|
||||||
|
{gInterfaceGfx_NestBall, 384, GFX_TAG_NEST_BALL},
|
||||||
|
{gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEAT_BALL},
|
||||||
|
{gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMER_BALL},
|
||||||
|
{gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURY_BALL},
|
||||||
|
{gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIER_BALL},
|
||||||
|
};
|
||||||
|
|
||||||
extern const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT];
|
const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] =
|
||||||
extern const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT];
|
{
|
||||||
extern const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT];
|
{gInterfacePal_PokeBall, GFX_TAG_POKE_BALL},
|
||||||
|
{gInterfacePal_GreatBall, GFX_TAG_GREAT_BALL},
|
||||||
|
{gInterfacePal_SafariBall, GFX_TAG_SAFARI_BALL},
|
||||||
|
{gInterfacePal_UltraBall, GFX_TAG_ULTRA_BALL},
|
||||||
|
{gInterfacePal_MasterBall, GFX_TAG_MASTER_BALL},
|
||||||
|
{gInterfacePal_NetBall, GFX_TAG_NET_BALL},
|
||||||
|
{gInterfacePal_DiveBall, GFX_TAG_DIVE_BALL},
|
||||||
|
{gInterfacePal_NestBall, GFX_TAG_NEST_BALL},
|
||||||
|
{gInterfacePal_RepeatBall, GFX_TAG_REPEAT_BALL},
|
||||||
|
{gInterfacePal_TimerBall, GFX_TAG_TIMER_BALL},
|
||||||
|
{gInterfacePal_LuxuryBall, GFX_TAG_LUXURY_BALL},
|
||||||
|
{gInterfacePal_PremierBall, GFX_TAG_PREMIER_BALL},
|
||||||
|
};
|
||||||
|
|
||||||
|
static const struct OamData sBallOamData =
|
||||||
|
{
|
||||||
|
.y = 0,
|
||||||
|
.affineMode = 3,
|
||||||
|
.objMode = 0,
|
||||||
|
.mosaic = 0,
|
||||||
|
.bpp = 0,
|
||||||
|
.shape = SPRITE_SHAPE(16x16),
|
||||||
|
.x = 0,
|
||||||
|
.matrixNum = 0,
|
||||||
|
.size = SPRITE_SIZE(16x16),
|
||||||
|
.tileNum = 0,
|
||||||
|
.priority = 2,
|
||||||
|
.paletteNum = 0,
|
||||||
|
.affineParam = 0,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq3[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(0, 5),
|
||||||
|
ANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq5[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(4, 1),
|
||||||
|
ANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq4[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(8, 5),
|
||||||
|
ANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq6[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(12, 1),
|
||||||
|
ANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq0[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(0, 1),
|
||||||
|
ANIMCMD_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq1[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(4, 5),
|
||||||
|
ANIMCMD_FRAME(8, 5),
|
||||||
|
ANIMCMD_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd sBallAnimSeq2[] =
|
||||||
|
{
|
||||||
|
ANIMCMD_FRAME(4, 5),
|
||||||
|
ANIMCMD_FRAME(0, 5),
|
||||||
|
ANIMCMD_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AnimCmd *const sBallAnimSequences[] =
|
||||||
|
{
|
||||||
|
sBallAnimSeq0,
|
||||||
|
sBallAnimSeq1,
|
||||||
|
sBallAnimSeq2,
|
||||||
|
sBallAnimSeq3,
|
||||||
|
sBallAnimSeq4,
|
||||||
|
sBallAnimSeq5,
|
||||||
|
sBallAnimSeq6,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AffineAnimCmd sBallAffineAnimSeq0[] =
|
||||||
|
{
|
||||||
|
AFFINEANIMCMD_FRAME(0, 0, 0, 1),
|
||||||
|
AFFINEANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AffineAnimCmd sBallAffineAnimSeq1[] =
|
||||||
|
{
|
||||||
|
AFFINEANIMCMD_FRAME(0, 0, -3, 1),
|
||||||
|
AFFINEANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AffineAnimCmd sBallAffineAnimSeq2[] =
|
||||||
|
{
|
||||||
|
AFFINEANIMCMD_FRAME(0, 0, 3, 1),
|
||||||
|
AFFINEANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AffineAnimCmd sBallAffineAnimSeq3[] =
|
||||||
|
{
|
||||||
|
AFFINEANIMCMD_FRAME(256, 256, 0, 0),
|
||||||
|
AFFINEANIMCMD_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AffineAnimCmd sBallAffineAnimSeq4[] =
|
||||||
|
{
|
||||||
|
AFFINEANIMCMD_FRAME(0, 0, 25, 1),
|
||||||
|
AFFINEANIMCMD_JUMP(0),
|
||||||
|
};
|
||||||
|
|
||||||
|
static const union AffineAnimCmd *const sBallAffineAnimSequences[] =
|
||||||
|
{
|
||||||
|
sBallAffineAnimSeq0,
|
||||||
|
sBallAffineAnimSeq1,
|
||||||
|
sBallAffineAnimSeq2,
|
||||||
|
sBallAffineAnimSeq3,
|
||||||
|
sBallAffineAnimSeq4,
|
||||||
|
};
|
||||||
|
|
||||||
|
const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
|
||||||
|
{
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_POKE_BALL,
|
||||||
|
.paletteTag = GFX_TAG_POKE_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_GREAT_BALL,
|
||||||
|
.paletteTag = GFX_TAG_GREAT_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_SAFARI_BALL,
|
||||||
|
.paletteTag = GFX_TAG_SAFARI_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_ULTRA_BALL,
|
||||||
|
.paletteTag = GFX_TAG_ULTRA_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_MASTER_BALL,
|
||||||
|
.paletteTag = GFX_TAG_MASTER_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_NET_BALL,
|
||||||
|
.paletteTag = GFX_TAG_NET_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_DIVE_BALL,
|
||||||
|
.paletteTag = GFX_TAG_DIVE_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_NEST_BALL,
|
||||||
|
.paletteTag = GFX_TAG_NEST_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_REPEAT_BALL,
|
||||||
|
.paletteTag = GFX_TAG_REPEAT_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_TIMER_BALL,
|
||||||
|
.paletteTag = GFX_TAG_TIMER_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_LUXURY_BALL,
|
||||||
|
.paletteTag = GFX_TAG_LUXURY_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
.tileTag = GFX_TAG_PREMIER_BALL,
|
||||||
|
.paletteTag = GFX_TAG_PREMIER_BALL,
|
||||||
|
.oam = &sBallOamData,
|
||||||
|
.anims = sBallAnimSequences,
|
||||||
|
.images = NULL,
|
||||||
|
.affineAnims = sBallAffineAnimSequences,
|
||||||
|
.callback = SpriteCB_TestBallThrow,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
// Functions
|
// Functions
|
||||||
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow)
|
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow)
|
||||||
@@ -79,6 +340,7 @@ u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef NONMATCHING
|
#ifdef NONMATCHING
|
||||||
|
//gender is an unused variable that still manages to show up in the assembly, can't get temporary variables to make it work.
|
||||||
static void Task_DoPokeballSendOutAnim(u8 taskId)
|
static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||||
{
|
{
|
||||||
u16 throwCaseId;
|
u16 throwCaseId;
|
||||||
@@ -86,7 +348,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
|||||||
u16 itemId, ballId;
|
u16 itemId, ballId;
|
||||||
u8 ballSpriteId;
|
u8 ballSpriteId;
|
||||||
bool8 notSendOut = FALSE;
|
bool8 notSendOut = FALSE;
|
||||||
u8 gender;
|
u8 gender, temp;
|
||||||
|
|
||||||
if (gTasks[taskId].tFrames == 0)
|
if (gTasks[taskId].tFrames == 0)
|
||||||
{
|
{
|
||||||
@@ -104,12 +366,14 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
|||||||
|
|
||||||
ballId = ItemIdToBallId(itemId);
|
ballId = ItemIdToBallId(itemId);
|
||||||
LoadBallGfx(ballId);
|
LoadBallGfx(ballId);
|
||||||
|
|
||||||
|
// r10 is set to gender byte here and loaded into a temporary variable to be immediately overwritten by an unused variable..
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||||
gender = gLinkPlayers[GetBattlerMultiplayerId(battlerId)].gender;
|
gender = gLinkPlayers[GetBattlerMultiplayerId(battlerId)].gender;
|
||||||
else
|
else
|
||||||
gender = gSaveBlock2Ptr->playerGender;
|
gender = gSaveBlock2Ptr->playerGender;
|
||||||
|
|
||||||
ballSpriteId = CreateSprite(&gUnknown_82606F4[ballId], 32, 80, 29);
|
ballSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29);
|
||||||
gSprites[ballSpriteId].data[0] = 0x80;
|
gSprites[ballSpriteId].data[0] = 0x80;
|
||||||
gSprites[ballSpriteId].data[1] = 0;
|
gSprites[ballSpriteId].data[1] = 0;
|
||||||
gSprites[ballSpriteId].data[7] = throwCaseId;
|
gSprites[ballSpriteId].data[7] = throwCaseId;
|
||||||
@@ -124,7 +388,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gender == gender;
|
temp = gender; //mov r0, r10 (r10 = gender), but this is never actually used
|
||||||
gSprites[ballSpriteId].pos1.x = 48;
|
gSprites[ballSpriteId].pos1.x = 48;
|
||||||
gSprites[ballSpriteId].pos1.y = 70;
|
gSprites[ballSpriteId].pos1.y = 70;
|
||||||
}
|
}
|
||||||
@@ -153,7 +417,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// this will perform an unused ball throw animation
|
// this will perform an unused ball throw animation
|
||||||
gSprites[ballSpriteId].data[0] = 0x22;
|
gSprites[ballSpriteId].data[0] = 34;
|
||||||
gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_X);
|
gSprites[ballSpriteId].data[2] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_X);
|
||||||
gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_Y) - 16;
|
gSprites[ballSpriteId].data[4] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_Y) - 16;
|
||||||
gSprites[ballSpriteId].data[5] = -40;
|
gSprites[ballSpriteId].data[5] = -40;
|
||||||
@@ -263,7 +527,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
|||||||
"\tlsls r0, r5, 1\n"
|
"\tlsls r0, r5, 1\n"
|
||||||
"\tadds r0, r5\n"
|
"\tadds r0, r5\n"
|
||||||
"\tlsls r0, 3\n"
|
"\tlsls r0, 3\n"
|
||||||
"\tldr r1, _0804AABC @ =gUnknown_82606F4\n"
|
"\tldr r1, _0804AABC @ =gBallSpriteTemplates\n"
|
||||||
"\tadds r0, r1\n"
|
"\tadds r0, r1\n"
|
||||||
"\tmovs r1, 0x20\n"
|
"\tmovs r1, 0x20\n"
|
||||||
"\tmovs r2, 0x50\n"
|
"\tmovs r2, 0x50\n"
|
||||||
@@ -300,7 +564,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
|||||||
"\tb _0804AACE\n"
|
"\tb _0804AACE\n"
|
||||||
"\t.align 2, 0\n"
|
"\t.align 2, 0\n"
|
||||||
"_0804AAB8: .4byte gSaveBlock2Ptr\n"
|
"_0804AAB8: .4byte gSaveBlock2Ptr\n"
|
||||||
"_0804AABC: .4byte gUnknown_82606F4\n"
|
"_0804AABC: .4byte gBallSpriteTemplates\n"
|
||||||
"_0804AAC0: .4byte gSprites\n"
|
"_0804AAC0: .4byte gSprites\n"
|
||||||
"_0804AAC4: .4byte gBattleTypeFlags\n"
|
"_0804AAC4: .4byte gBattleTypeFlags\n"
|
||||||
"_0804AAC8:\n"
|
"_0804AAC8:\n"
|
||||||
@@ -485,6 +749,7 @@ static void sub_804AD00(struct Sprite *sprite)
|
|||||||
sprite->data[5]++;
|
sprite->data[5]++;
|
||||||
if (sprite->data[5] == 11)
|
if (sprite->data[5] == 11)
|
||||||
PlaySE(SE_SUIKOMU);
|
PlaySE(SE_SUIKOMU);
|
||||||
|
|
||||||
if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded)
|
if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded)
|
||||||
{
|
{
|
||||||
StartSpriteAnim(sprite, 2);
|
StartSpriteAnim(sprite, 2);
|
||||||
@@ -654,6 +919,7 @@ static void sub_804AF24(struct Sprite *sprite)
|
|||||||
StartSpriteAffineAnim(sprite, 2);
|
StartSpriteAffineAnim(sprite, 2);
|
||||||
else
|
else
|
||||||
StartSpriteAffineAnim(sprite, 1);
|
StartSpriteAffineAnim(sprite, 1);
|
||||||
|
|
||||||
PlaySE(SE_BOWA);
|
PlaySE(SE_BOWA);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -663,35 +929,33 @@ static void sub_804AF24(struct Sprite *sprite)
|
|||||||
#define tCryTaskSpecies data[0]
|
#define tCryTaskSpecies data[0]
|
||||||
#define tCryTaskPan data[1]
|
#define tCryTaskPan data[1]
|
||||||
#define tCryTaskWantedCry data[2]
|
#define tCryTaskWantedCry data[2]
|
||||||
#define tCryTaskBattler data[3]
|
#define tCryTaskMonPtr1 data[3]
|
||||||
#define tCryTaskMonSpriteId data[4]
|
#define tCryTaskMonPtr2 data[4]
|
||||||
#define tCryTaskMonPtr1 data[5]
|
|
||||||
#define tCryTaskMonPtr2 data[6]
|
|
||||||
#define tCryTaskFrames data[10]
|
#define tCryTaskFrames data[10]
|
||||||
#define tCryTaskState data[15]
|
#define tCryTaskState data[15]
|
||||||
|
|
||||||
static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 wantedCry = gTasks[taskId].tCryTaskWantedCry;
|
u8 state2 = gTasks[taskId].data[2];
|
||||||
s8 pan = gTasks[taskId].tCryTaskPan;
|
s8 pan = gTasks[taskId].tCryTaskPan;
|
||||||
u16 species = gTasks[taskId].tCryTaskSpecies;
|
u16 species = gTasks[taskId].tCryTaskSpecies;
|
||||||
u8 battlerId = gTasks[taskId].tCryTaskBattler;
|
struct Pokemon *mon = (void*)(u32)((u32)(gTasks[taskId].tCryTaskMonPtr1 << 0x10) | ((u16)gTasks[taskId].tCryTaskMonPtr2));
|
||||||
u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId;
|
|
||||||
struct Pokemon *mon = (void*)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 0x10) | (u16)(gTasks[taskId].tCryTaskMonPtr2));
|
|
||||||
|
|
||||||
switch (gTasks[taskId].tCryTaskState)
|
switch (gTasks[taskId].tCryTaskState)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
default:
|
default:
|
||||||
if (gSprites[monSpriteId].affineAnimEnded)
|
if (gTasks[taskId].data[8] < 3)
|
||||||
gTasks[taskId].tCryTaskState = wantedCry + 1;
|
gTasks[taskId].data[8]++;
|
||||||
|
else
|
||||||
|
gTasks[taskId].tCryTaskState = state2 + 1;
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if (ShouldPlayNormalPokeCry(mon) == TRUE)
|
if (ShouldPlayNormalPokeCry(mon) == TRUE)
|
||||||
PlayCry3(species, pan, 0);
|
PlayCry3(species, pan, 0);
|
||||||
else
|
else
|
||||||
PlayCry3(species, pan, 11);
|
PlayCry3(species, pan, 11);
|
||||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0;
|
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
@@ -707,7 +971,6 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
|||||||
else
|
else
|
||||||
PlayCry4(species, pan, 12);
|
PlayCry4(species, pan, 12);
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0;
|
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -726,7 +989,6 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
gTasks[taskId].tCryTaskState++;
|
gTasks[taskId].tCryTaskState++;
|
||||||
// fall through
|
|
||||||
case 31:
|
case 31:
|
||||||
if (!IsCryPlayingOrClearCrySongs())
|
if (!IsCryPlayingOrClearCrySongs())
|
||||||
{
|
{
|
||||||
@@ -741,12 +1003,12 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
|||||||
gTasks[taskId].tCryTaskFrames--;
|
gTasks[taskId].tCryTaskFrames--;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ShouldPlayNormalPokeCry(mon) == TRUE)
|
if (ShouldPlayNormalPokeCry(mon) == TRUE)
|
||||||
PlayCry4(species, pan, 0);
|
PlayCry4(species, pan, 0);
|
||||||
else
|
else
|
||||||
PlayCry4(species, pan, 11);
|
PlayCry4(species, pan, 11);
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0;
|
|
||||||
DestroyTask(taskId);
|
DestroyTask(taskId);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -786,7 +1048,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
|||||||
if ((battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
|
if ((battlerId == GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) || battlerId == GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT))
|
||||||
&& IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1)
|
&& IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1)
|
||||||
{
|
{
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||||
{
|
{
|
||||||
if (IsBGMPlaying())
|
if (IsBGMPlaying())
|
||||||
m4aMPlayStop(&gMPlayInfo_BGM);
|
m4aMPlayStop(&gMPlayInfo_BGM);
|
||||||
@@ -804,28 +1066,16 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
|||||||
else
|
else
|
||||||
wantedCryCase = 2;
|
wantedCryCase = 2;
|
||||||
|
|
||||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 1;
|
|
||||||
|
|
||||||
taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3);
|
taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3);
|
||||||
gTasks[taskId].tCryTaskSpecies = species;
|
gTasks[taskId].tCryTaskSpecies = species;
|
||||||
gTasks[taskId].tCryTaskPan = pan;
|
gTasks[taskId].tCryTaskPan = pan;
|
||||||
gTasks[taskId].tCryTaskWantedCry = wantedCryCase;
|
gTasks[taskId].tCryTaskWantedCry = wantedCryCase;
|
||||||
gTasks[taskId].tCryTaskBattler = battlerId;
|
|
||||||
gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBattler];
|
|
||||||
gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10;
|
gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10;
|
||||||
gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon);
|
gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon);
|
||||||
gTasks[taskId].tCryTaskState = 0;
|
gTasks[taskId].tCryTaskState = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 1);
|
StartSpriteAffineAnim(&gSprites[gBattlerSpriteIds[sprite->sBattler]], 1);
|
||||||
|
|
||||||
/*
|
|
||||||
if (GetBattlerSide(sprite->sBattler) == B_SIDE_OPPONENT)
|
|
||||||
gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = sub_8039B58;
|
|
||||||
else
|
|
||||||
gSprites[gBattlerSpriteIds[sprite->sBattler]].callback = sub_8039E44;
|
|
||||||
*/
|
|
||||||
|
|
||||||
AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]);
|
AnimateSprite(&gSprites[gBattlerSpriteIds[sprite->sBattler]]);
|
||||||
gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0x1000;
|
gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0x1000;
|
||||||
}
|
}
|
||||||
@@ -833,8 +1083,6 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
|||||||
#undef tCryTaskSpecies
|
#undef tCryTaskSpecies
|
||||||
#undef tCryTaskPan
|
#undef tCryTaskPan
|
||||||
#undef tCryTaskWantedCry
|
#undef tCryTaskWantedCry
|
||||||
#undef tCryTaskBattler
|
|
||||||
#undef tCryTaskMonSpriteId
|
|
||||||
#undef tCryTaskMonPtr1
|
#undef tCryTaskMonPtr1
|
||||||
#undef tCryTaskMonPtr2
|
#undef tCryTaskMonPtr2
|
||||||
#undef tCryTaskFrames
|
#undef tCryTaskFrames
|
||||||
@@ -903,7 +1151,7 @@ static void sub_804B5C8(struct Sprite *sprite)
|
|||||||
{
|
{
|
||||||
gDoingBattleAnim = FALSE;
|
gDoingBattleAnim = FALSE;
|
||||||
m4aMPlayAllStop();
|
m4aMPlayAllStop();
|
||||||
PlaySE(MUS_FANFA5);
|
PlaySE(MUS_FAN6);
|
||||||
}
|
}
|
||||||
else if (sprite->data[4] == 315)
|
else if (sprite->data[4] == 315)
|
||||||
{
|
{
|
||||||
@@ -1026,22 +1274,17 @@ void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y,
|
|||||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]);
|
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]);
|
||||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]);
|
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]);
|
||||||
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy);
|
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy);
|
||||||
|
|
||||||
gSprites[spriteId].data[0] = monSpriteId;
|
gSprites[spriteId].data[0] = monSpriteId;
|
||||||
gSprites[spriteId].data[5] = gSprites[monSpriteId].pos1.x;
|
gSprites[spriteId].data[5] = gSprites[monSpriteId].pos1.x;
|
||||||
gSprites[spriteId].data[6] = gSprites[monSpriteId].pos1.y;
|
gSprites[spriteId].data[6] = gSprites[monSpriteId].pos1.y;
|
||||||
|
|
||||||
gSprites[monSpriteId].pos1.x = x;
|
gSprites[monSpriteId].pos1.x = x;
|
||||||
gSprites[monSpriteId].pos1.y = y;
|
gSprites[monSpriteId].pos1.y = y;
|
||||||
//gSprites[monSpriteId].data[7] = species;
|
|
||||||
|
|
||||||
gSprites[spriteId].data[1] = g;
|
gSprites[spriteId].data[1] = g;
|
||||||
gSprites[spriteId].data[2] = battlerId;
|
gSprites[spriteId].data[2] = battlerId;
|
||||||
gSprites[spriteId].data[3] = h;
|
gSprites[spriteId].data[3] = h;
|
||||||
gSprites[spriteId].data[4] = h >> 0x10;
|
gSprites[spriteId].data[4] = h >> 0x10;
|
||||||
gSprites[spriteId].oam.priority = oamPriority;
|
gSprites[spriteId].oam.priority = oamPriority;
|
||||||
gSprites[spriteId].callback = sub_804B9E8;
|
gSprites[spriteId].callback = sub_804B9E8;
|
||||||
|
|
||||||
gSprites[monSpriteId].invisible = TRUE;
|
gSprites[monSpriteId].invisible = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1085,11 +1328,13 @@ static void sub_804BAA4(struct Sprite *sprite)
|
|||||||
|
|
||||||
if (sprite->animEnded)
|
if (sprite->animEnded)
|
||||||
sprite->invisible = TRUE;
|
sprite->invisible = TRUE;
|
||||||
|
|
||||||
if (gSprites[monSpriteId].affineAnimEnded)
|
if (gSprites[monSpriteId].affineAnimEnded)
|
||||||
{
|
{
|
||||||
StartSpriteAffineAnim(&gSprites[monSpriteId], 0);
|
StartSpriteAffineAnim(&gSprites[monSpriteId], 0);
|
||||||
r12 = TRUE;
|
r12 = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
var1 = (sprite->data[5] - sprite->pos1.x) * sprite->data[7] / 128 + sprite->pos1.x;
|
var1 = (sprite->data[5] - sprite->pos1.x) * sprite->data[7] / 128 + sprite->pos1.x;
|
||||||
var2 = (sprite->data[6] - sprite->pos1.y) * sprite->data[7] / 128 + sprite->pos1.y;
|
var2 = (sprite->data[6] - sprite->pos1.y) * sprite->data[7] / 128 + sprite->pos1.y;
|
||||||
gSprites[monSpriteId].pos1.x = var1;
|
gSprites[monSpriteId].pos1.x = var1;
|
||||||
@@ -1110,16 +1355,9 @@ static void sub_804BAA4(struct Sprite *sprite)
|
|||||||
gSprites[monSpriteId].pos2.y = 0;
|
gSprites[monSpriteId].pos2.y = 0;
|
||||||
r6 = TRUE;
|
r6 = TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (sprite->animEnded && r12 && r6)
|
if (sprite->animEnded && r12 && r6)
|
||||||
{
|
|
||||||
/*
|
|
||||||
if (gSprites[monSpriteId].data[7] == SPECIES_EGG)
|
|
||||||
DoMonFrontSpriteAnimation(&gSprites[monSpriteId], gSprites[monSpriteId].data[7], TRUE, 0);
|
|
||||||
else
|
|
||||||
DoMonFrontSpriteAnimation(&gSprites[monSpriteId], gSprites[monSpriteId].data[7], FALSE, 0);
|
|
||||||
*/
|
|
||||||
DestroySpriteAndFreeResources(sprite);
|
DestroySpriteAndFreeResources(sprite);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h)
|
u8 CreateTradePokeballSprite(u8 a, u8 b, u8 x, u8 y, u8 oamPriority, u8 subPriority, u8 g, u32 h)
|
||||||
@@ -1174,6 +1412,7 @@ static void sub_804BCF8(struct Sprite *sprite)
|
|||||||
sprite->data[5]++;
|
sprite->data[5]++;
|
||||||
if (sprite->data[5] == 11)
|
if (sprite->data[5] == 11)
|
||||||
PlaySE(SE_SUIKOMU);
|
PlaySE(SE_SUIKOMU);
|
||||||
|
|
||||||
r1 = sprite->data[0];
|
r1 = sprite->data[0];
|
||||||
if (gSprites[r1].affineAnimEnded)
|
if (gSprites[r1].affineAnimEnded)
|
||||||
{
|
{
|
||||||
@@ -1195,7 +1434,7 @@ static void sub_804BD6C(struct Sprite *sprite)
|
|||||||
sprite->callback = SpriteCallbackDummy;
|
sprite->callback = SpriteCallbackDummy;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void DestroySpriteAndFreeResources2(struct Sprite *sprite)
|
void DestroySpriteAndFreeResources2(struct Sprite *sprite)
|
||||||
{
|
{
|
||||||
DestroySpriteAndFreeResources(sprite);
|
DestroySpriteAndFreeResources(sprite);
|
||||||
}
|
}
|
||||||
@@ -1216,6 +1455,7 @@ void sub_804BD94(u8 battlerId)
|
|||||||
healthboxSprite->pos2.x = -healthboxSprite->pos2.x;
|
healthboxSprite->pos2.x = -healthboxSprite->pos2.x;
|
||||||
healthboxSprite->pos2.y = -healthboxSprite->pos2.y;
|
healthboxSprite->pos2.y = -healthboxSprite->pos2.y;
|
||||||
}
|
}
|
||||||
|
|
||||||
gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]);
|
gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]);
|
||||||
if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)
|
if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)
|
||||||
healthboxSprite->callback = sub_804BE24;
|
healthboxSprite->callback = sub_804BE24;
|
||||||
@@ -1273,6 +1513,7 @@ void LoadBallGfx(u8 ballId)
|
|||||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[ballId]);
|
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[ballId]);
|
||||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[ballId]);
|
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[ballId]);
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (ballId)
|
switch (ballId)
|
||||||
{
|
{
|
||||||
case BALL_DIVE:
|
case BALL_DIVE:
|
||||||
|
|||||||
Reference in New Issue
Block a user