all matching except Task_DoPokeballSendOutAnim
This commit is contained in:
1 parent
52013cf052
commit
b626882708
9 files changed
+355
-230
No files matched your search
@@ -1219,7 +1219,7 @@ sub_80EF5AC: @ 80EF5AC
|
||||
lsls r0, r1, 1
|
||||
adds r0, r1
|
||||
lsls r0, 3
|
||||
ldr r1, _080EF678 @ =gUnknown_82606F4
|
||||
ldr r1, _080EF678 @ =gBallSpriteTemplates
|
||||
adds r0, r1
|
||||
movs r1, 0x20
|
||||
movs r2, 0x50
|
||||
@@ -1298,7 +1298,7 @@ sub_80EF5AC: @ 80EF5AC
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080EF674: .4byte gLastUsedItem
|
||||
_080EF678: .4byte gUnknown_82606F4
|
||||
_080EF678: .4byte gBallSpriteTemplates
|
||||
_080EF67C: .4byte gSprites
|
||||
_080EF680: .4byte gBattleAnimTarget
|
||||
_080EF684: .4byte sub_80EF8C0
|
||||
@@ -1387,7 +1387,7 @@ _080EF708:
|
||||
lsls r0, r4, 1
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
ldr r1, _080EF7CC @ =gUnknown_82606F4
|
||||
ldr r1, _080EF7CC @ =gBallSpriteTemplates
|
||||
adds r0, r1
|
||||
movs r1, 0x20
|
||||
orrs r5, r1
|
||||
@@ -1458,7 +1458,7 @@ _080EF708:
|
||||
.align 2, 0
|
||||
_080EF7C4: .4byte gSaveBlock2Ptr
|
||||
_080EF7C8: .4byte gLastUsedItem
|
||||
_080EF7CC: .4byte gUnknown_82606F4
|
||||
_080EF7CC: .4byte gBallSpriteTemplates
|
||||
_080EF7D0: .4byte gSprites
|
||||
_080EF7D4: .4byte gBattleAnimTarget
|
||||
_080EF7D8: .4byte SpriteCallbackDummy
|
||||
|
||||
@@ -10638,7 +10638,7 @@ _08139CDA:
|
||||
lsls r0, r4, 1
|
||||
adds r0, r4
|
||||
lsls r0, 3
|
||||
ldr r1, _08139D40 @ =gUnknown_82606F4
|
||||
ldr r1, _08139D40 @ =gBallSpriteTemplates
|
||||
adds r0, r1
|
||||
movs r1, 0x6A
|
||||
movs r2, 0x58
|
||||
@@ -10677,7 +10677,7 @@ _08139CDA:
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08139D40: .4byte gUnknown_82606F4
|
||||
_08139D40: .4byte gBallSpriteTemplates
|
||||
_08139D44: .4byte gUnknown_203B140
|
||||
_08139D48: .4byte 0x0000300c
|
||||
_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"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Poke_sheet:: @ 8D01724
|
||||
gInterfaceGfx_PokeBall:: @ 8D01724
|
||||
.incbin "graphics/interface/ball/poke.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Poke_palette:: @ 8D017E0
|
||||
gInterfacePal_PokeBall:: @ 8D017E0
|
||||
.incbin "graphics/interface/ball/poke.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Great_sheet:: @ 8D01800
|
||||
gInterfaceGfx_GreatBall:: @ 8D01800
|
||||
.incbin "graphics/interface/ball/great.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Great_palette:: @ 8D018BC
|
||||
gInterfacePal_GreatBall:: @ 8D018BC
|
||||
.incbin "graphics/interface/ball/great.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Safari_sheet:: @ 8D018E0
|
||||
gInterfaceGfx_SafariBall:: @ 8D018E0
|
||||
.incbin "graphics/interface/ball/safari.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Safari_palette:: @ 8D019A4
|
||||
gInterfacePal_SafariBall:: @ 8D019A4
|
||||
.incbin "graphics/interface/ball/safari.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Ultra_sheet:: @ 8D019C8
|
||||
gInterfaceGfx_UltraBall:: @ 8D019C8
|
||||
.incbin "graphics/interface/ball/ultra.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Ultra_palette:: @ 8D01A7C
|
||||
gInterfacePal_UltraBall:: @ 8D01A7C
|
||||
.incbin "graphics/interface/ball/ultra.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Master_sheet:: @ 8D01A9C
|
||||
gInterfaceGfx_MasterBall:: @ 8D01A9C
|
||||
.incbin "graphics/interface/ball/master.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Master_palette:: @ 8D01B5C
|
||||
gInterfacePal_MasterBall:: @ 8D01B5C
|
||||
.incbin "graphics/interface/ball/master.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Net_sheet:: @ 8D01B80
|
||||
gInterfaceGfx_NetBall:: @ 8D01B80
|
||||
.incbin "graphics/interface/ball/net.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Net_palette:: @ 8D01C40
|
||||
gInterfacePal_NetBall:: @ 8D01C40
|
||||
.incbin "graphics/interface/ball/net.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Dive_sheet:: @ 8D01C60
|
||||
gInterfaceGfx_DiveBall:: @ 8D01C60
|
||||
.incbin "graphics/interface/ball/dive.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Dive_palette:: @ 8D01D74
|
||||
gInterfacePal_DiveBall:: @ 8D01D74
|
||||
.incbin "graphics/interface/ball/dive.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Nest_sheet:: @ 8D01D9C
|
||||
gInterfaceGfx_NestBall:: @ 8D01D9C
|
||||
.incbin "graphics/interface/ball/nest.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Nest_palette:: @ 8D01E60
|
||||
gInterfacePal_NestBall:: @ 8D01E60
|
||||
.incbin "graphics/interface/ball/nest.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Repeat_sheet:: @ 8D01E84
|
||||
gInterfaceGfx_RepeatBall:: @ 8D01E84
|
||||
.incbin "graphics/interface/ball/repeat.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Repeat_palette:: @ 8D01F44
|
||||
gInterfacePal_RepeatBall:: @ 8D01F44
|
||||
.incbin "graphics/interface/ball/repeat.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Timer_sheet:: @ 8D01F68
|
||||
gInterfaceGfx_TimerBall:: @ 8D01F68
|
||||
.incbin "graphics/interface/ball/timer.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Timer_palette:: @ 8D02060
|
||||
gInterfacePal_TimerBall:: @ 8D02060
|
||||
.incbin "graphics/interface/ball/timer.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Luxury_sheet:: @ 8D02084
|
||||
gInterfaceGfx_LuxuryBall:: @ 8D02084
|
||||
.incbin "graphics/interface/ball/luxury.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Luxury_palette:: @ 8D021B0
|
||||
gInterfacePal_LuxuryBall:: @ 8D021B0
|
||||
.incbin "graphics/interface/ball/luxury.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Premier_sheet:: @ 8D021D8
|
||||
gInterfaceGfx_PremierBall:: @ 8D021D8
|
||||
.incbin "graphics/interface/ball/premier.4bpp.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Premier_palette:: @ 8D022C8
|
||||
gInterfacePal_PremierBall:: @ 8D022C8
|
||||
.incbin "graphics/interface/ball/premier.gbapal.lz"
|
||||
|
||||
.align 2
|
||||
gFile_graphics_interface_ball_Open_sheet:: @ 8D022E8
|
||||
gOpenPokeballGfx:: @ 8D022E8
|
||||
.incbin "graphics/interface/ball_open.4bpp.lz"
|
||||
|
||||
.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"
|
||||
|
||||
extern const u8 gInterfaceGfx_PokeBall[];
|
||||
extern const u8 gInterfacePal_PokeBall[];
|
||||
extern const u8 gInterfaceGfx_GreatBall[];
|
||||
extern const u8 gInterfacePal_GreatBall[];
|
||||
extern const u8 gInterfaceGfx_SafariBall[];
|
||||
extern const u8 gInterfacePal_SafariBall[];
|
||||
extern const u8 gInterfaceGfx_UltraBall[];
|
||||
extern const u8 gInterfacePal_UltraBall[];
|
||||
extern const u8 gInterfaceGfx_MasterBall[];
|
||||
extern const u8 gInterfacePal_MasterBall[];
|
||||
extern const u8 gInterfaceGfx_NetBall[];
|
||||
extern const u8 gInterfacePal_NetBall[];
|
||||
extern const u8 gInterfaceGfx_DiveBall[];
|
||||
extern const u8 gInterfacePal_DiveBall[];
|
||||
extern const u8 gInterfaceGfx_NestBall[];
|
||||
extern const u8 gInterfacePal_NestBall[];
|
||||
extern const u8 gInterfaceGfx_RepeatBall[];
|
||||
extern const u8 gInterfacePal_RepeatBall[];
|
||||
extern const u8 gInterfaceGfx_TimerBall[];
|
||||
extern const u8 gInterfacePal_TimerBall[];
|
||||
extern const u8 gInterfaceGfx_LuxuryBall[];
|
||||
extern const u8 gInterfacePal_LuxuryBall[];
|
||||
extern const u8 gInterfaceGfx_PremierBall[];
|
||||
extern const u8 gInterfacePal_PremierBall[];
|
||||
extern const u8 gOpenPokeballGfx[];
|
||||
extern const u32 gInterfaceGfx_PokeBall[];
|
||||
extern const u32 gInterfacePal_PokeBall[];
|
||||
extern const u32 gInterfaceGfx_GreatBall[];
|
||||
extern const u32 gInterfacePal_GreatBall[];
|
||||
extern const u32 gInterfaceGfx_SafariBall[];
|
||||
extern const u32 gInterfacePal_SafariBall[];
|
||||
extern const u32 gInterfaceGfx_UltraBall[];
|
||||
extern const u32 gInterfacePal_UltraBall[];
|
||||
extern const u32 gInterfaceGfx_MasterBall[];
|
||||
extern const u32 gInterfacePal_MasterBall[];
|
||||
extern const u32 gInterfaceGfx_NetBall[];
|
||||
extern const u32 gInterfacePal_NetBall[];
|
||||
extern const u32 gInterfaceGfx_DiveBall[];
|
||||
extern const u32 gInterfacePal_DiveBall[];
|
||||
extern const u32 gInterfaceGfx_NestBall[];
|
||||
extern const u32 gInterfacePal_NestBall[];
|
||||
extern const u32 gInterfaceGfx_RepeatBall[];
|
||||
extern const u32 gInterfacePal_RepeatBall[];
|
||||
extern const u32 gInterfaceGfx_TimerBall[];
|
||||
extern const u32 gInterfacePal_TimerBall[];
|
||||
extern const u32 gInterfaceGfx_LuxuryBall[];
|
||||
extern const u32 gInterfacePal_LuxuryBall[];
|
||||
extern const u32 gInterfaceGfx_PremierBall[];
|
||||
extern const u32 gInterfacePal_PremierBall[];
|
||||
extern const u32 gOpenPokeballGfx[];
|
||||
|
||||
// pokemon gfx
|
||||
extern const u32 gMonFrontPic_Bulbasaur[];
|
||||
|
||||
+1
-1
@@ -24,7 +24,6 @@ enum
|
||||
#define POKEBALL_OPPONENT_SENDOUT 0xFE
|
||||
|
||||
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);
|
||||
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);
|
||||
@@ -33,5 +32,6 @@ void DoHitAnimHealthboxEffect(u8 bank);
|
||||
void LoadBallGfx(u8 ballId);
|
||||
void FreeBallGfx(u8 ballId);
|
||||
void sub_804BD94(u8 battler);
|
||||
void DestroySpriteAndFreeResources2(struct Sprite *sprite);
|
||||
|
||||
#endif // GUARD_POKEBALL_H
|
||||
+1
-1
@@ -15,7 +15,7 @@ struct Task
|
||||
/*0x05*/ u8 prev;
|
||||
/*0x06*/ u8 next;
|
||||
/*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*/
|
||||
|
||||
extern struct Task gTasks[];
|
||||
|
||||
+1
-1
@@ -400,7 +400,7 @@ SECTIONS {
|
||||
src/daycare.o(.rodata);
|
||||
src/battle_gfx_sfx_util.o(.rodata);
|
||||
data/battle_interface.o(.rodata);
|
||||
data/pokeball.o(.rodata);
|
||||
src/pokeball.o(.rodata);
|
||||
src/trade.o(.rodata);
|
||||
src/trade_scene.o(.rodata);
|
||||
data/overworld.o(.rodata);
|
||||
|
||||
+296
-55
@@ -25,6 +25,19 @@
|
||||
|
||||
#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
|
||||
static void Task_DoPokeballSendOutAnim(u8 taskId);
|
||||
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_804BCF8(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_804BE48(struct Sprite *sprite);
|
||||
static void SpriteCB_HitAnimHealthoxEffect(struct Sprite *sprite);
|
||||
static u16 GetBattlerPokeballItemId(u8 battlerId);
|
||||
|
||||
// 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];
|
||||
extern const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT];
|
||||
extern const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT];
|
||||
const struct CompressedSpritePalette gBallSpritePalettes[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
|
||||
u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow)
|
||||
@@ -79,6 +340,7 @@ u8 DoPokeballSendOutAnimation(s16 pan, u8 kindOfThrow)
|
||||
}
|
||||
|
||||
#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)
|
||||
{
|
||||
u16 throwCaseId;
|
||||
@@ -86,7 +348,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
u16 itemId, ballId;
|
||||
u8 ballSpriteId;
|
||||
bool8 notSendOut = FALSE;
|
||||
u8 gender;
|
||||
u8 gender, temp;
|
||||
|
||||
if (gTasks[taskId].tFrames == 0)
|
||||
{
|
||||
@@ -104,12 +366,14 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
|
||||
ballId = ItemIdToBallId(itemId);
|
||||
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)
|
||||
gender = gLinkPlayers[GetBattlerMultiplayerId(battlerId)].gender;
|
||||
else
|
||||
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[1] = 0;
|
||||
gSprites[ballSpriteId].data[7] = throwCaseId;
|
||||
@@ -124,7 +388,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
}
|
||||
else
|
||||
{
|
||||
gender == gender;
|
||||
temp = gender; //mov r0, r10 (r10 = gender), but this is never actually used
|
||||
gSprites[ballSpriteId].pos1.x = 48;
|
||||
gSprites[ballSpriteId].pos1.y = 70;
|
||||
}
|
||||
@@ -153,7 +417,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
}
|
||||
|
||||
// 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[4] = GetBattlerSpriteCoord(gBattlerTarget, BATTLER_COORD_Y) - 16;
|
||||
gSprites[ballSpriteId].data[5] = -40;
|
||||
@@ -263,7 +527,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
"\tlsls r0, r5, 1\n"
|
||||
"\tadds r0, r5\n"
|
||||
"\tlsls r0, 3\n"
|
||||
"\tldr r1, _0804AABC @ =gUnknown_82606F4\n"
|
||||
"\tldr r1, _0804AABC @ =gBallSpriteTemplates\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tmovs r1, 0x20\n"
|
||||
"\tmovs r2, 0x50\n"
|
||||
@@ -300,7 +564,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
"\tb _0804AACE\n"
|
||||
"\t.align 2, 0\n"
|
||||
"_0804AAB8: .4byte gSaveBlock2Ptr\n"
|
||||
"_0804AABC: .4byte gUnknown_82606F4\n"
|
||||
"_0804AABC: .4byte gBallSpriteTemplates\n"
|
||||
"_0804AAC0: .4byte gSprites\n"
|
||||
"_0804AAC4: .4byte gBattleTypeFlags\n"
|
||||
"_0804AAC8:\n"
|
||||
@@ -485,6 +749,7 @@ static void sub_804AD00(struct Sprite *sprite)
|
||||
sprite->data[5]++;
|
||||
if (sprite->data[5] == 11)
|
||||
PlaySE(SE_SUIKOMU);
|
||||
|
||||
if (gSprites[gBattlerSpriteIds[sprite->sBattler]].affineAnimEnded)
|
||||
{
|
||||
StartSpriteAnim(sprite, 2);
|
||||
@@ -654,6 +919,7 @@ static void sub_804AF24(struct Sprite *sprite)
|
||||
StartSpriteAffineAnim(sprite, 2);
|
||||
else
|
||||
StartSpriteAffineAnim(sprite, 1);
|
||||
|
||||
PlaySE(SE_BOWA);
|
||||
}
|
||||
break;
|
||||
@@ -663,35 +929,33 @@ static void sub_804AF24(struct Sprite *sprite)
|
||||
#define tCryTaskSpecies data[0]
|
||||
#define tCryTaskPan data[1]
|
||||
#define tCryTaskWantedCry data[2]
|
||||
#define tCryTaskBattler data[3]
|
||||
#define tCryTaskMonSpriteId data[4]
|
||||
#define tCryTaskMonPtr1 data[5]
|
||||
#define tCryTaskMonPtr2 data[6]
|
||||
#define tCryTaskMonPtr1 data[3]
|
||||
#define tCryTaskMonPtr2 data[4]
|
||||
#define tCryTaskFrames data[10]
|
||||
#define tCryTaskState data[15]
|
||||
|
||||
static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
||||
{
|
||||
u8 wantedCry = gTasks[taskId].tCryTaskWantedCry;
|
||||
u8 state2 = gTasks[taskId].data[2];
|
||||
s8 pan = gTasks[taskId].tCryTaskPan;
|
||||
u16 species = gTasks[taskId].tCryTaskSpecies;
|
||||
u8 battlerId = gTasks[taskId].tCryTaskBattler;
|
||||
u8 monSpriteId = gTasks[taskId].tCryTaskMonSpriteId;
|
||||
struct Pokemon *mon = (void*)(u32)((gTasks[taskId].tCryTaskMonPtr1 << 0x10) | (u16)(gTasks[taskId].tCryTaskMonPtr2));
|
||||
struct Pokemon *mon = (void*)(u32)((u32)(gTasks[taskId].tCryTaskMonPtr1 << 0x10) | ((u16)gTasks[taskId].tCryTaskMonPtr2));
|
||||
|
||||
switch (gTasks[taskId].tCryTaskState)
|
||||
{
|
||||
case 0:
|
||||
default:
|
||||
if (gSprites[monSpriteId].affineAnimEnded)
|
||||
gTasks[taskId].tCryTaskState = wantedCry + 1;
|
||||
if (gTasks[taskId].data[8] < 3)
|
||||
gTasks[taskId].data[8]++;
|
||||
else
|
||||
gTasks[taskId].tCryTaskState = state2 + 1;
|
||||
break;
|
||||
case 1:
|
||||
if (ShouldPlayNormalPokeCry(mon) == TRUE)
|
||||
PlayCry3(species, pan, 0);
|
||||
else
|
||||
PlayCry3(species, pan, 11);
|
||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0;
|
||||
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
case 2:
|
||||
@@ -707,7 +971,6 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
||||
else
|
||||
PlayCry4(species, pan, 12);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0;
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
else
|
||||
@@ -726,7 +989,6 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
||||
break;
|
||||
}
|
||||
gTasks[taskId].tCryTaskState++;
|
||||
// fall through
|
||||
case 31:
|
||||
if (!IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
@@ -741,12 +1003,12 @@ static void Task_PlayCryWhenReleasedFromBall(u8 taskId)
|
||||
gTasks[taskId].tCryTaskFrames--;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ShouldPlayNormalPokeCry(mon) == TRUE)
|
||||
PlayCry4(species, pan, 0);
|
||||
else
|
||||
PlayCry4(species, pan, 11);
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 0;
|
||||
DestroyTask(taskId);
|
||||
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))
|
||||
&& IsDoubleBattle() && gBattleSpritesDataPtr->animationData->field_9_x1)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_MULTI)
|
||||
{
|
||||
if (IsBGMPlaying())
|
||||
m4aMPlayStop(&gMPlayInfo_BGM);
|
||||
@@ -804,28 +1066,16 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
||||
else
|
||||
wantedCryCase = 2;
|
||||
|
||||
gBattleSpritesDataPtr->healthBoxesData[battlerId].field_1_x40 = 1;
|
||||
|
||||
taskId = CreateTask(Task_PlayCryWhenReleasedFromBall, 3);
|
||||
gTasks[taskId].tCryTaskSpecies = species;
|
||||
gTasks[taskId].tCryTaskPan = pan;
|
||||
gTasks[taskId].tCryTaskWantedCry = wantedCryCase;
|
||||
gTasks[taskId].tCryTaskBattler = battlerId;
|
||||
gTasks[taskId].tCryTaskMonSpriteId = gBattlerSpriteIds[sprite->sBattler];
|
||||
gTasks[taskId].tCryTaskMonPtr1 = (u32)(mon) >> 0x10;
|
||||
gTasks[taskId].tCryTaskMonPtr2 = (u32)(mon);
|
||||
gTasks[taskId].tCryTaskState = 0;
|
||||
}
|
||||
|
||||
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]]);
|
||||
gSprites[gBattlerSpriteIds[sprite->sBattler]].data[1] = 0x1000;
|
||||
}
|
||||
@@ -833,8 +1083,6 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite)
|
||||
#undef tCryTaskSpecies
|
||||
#undef tCryTaskPan
|
||||
#undef tCryTaskWantedCry
|
||||
#undef tCryTaskBattler
|
||||
#undef tCryTaskMonSpriteId
|
||||
#undef tCryTaskMonPtr1
|
||||
#undef tCryTaskMonPtr2
|
||||
#undef tCryTaskFrames
|
||||
@@ -903,7 +1151,7 @@ static void sub_804B5C8(struct Sprite *sprite)
|
||||
{
|
||||
gDoingBattleAnim = FALSE;
|
||||
m4aMPlayAllStop();
|
||||
PlaySE(MUS_FANFA5);
|
||||
PlaySE(MUS_FAN6);
|
||||
}
|
||||
else if (sprite->data[4] == 315)
|
||||
{
|
||||
@@ -1026,22 +1274,17 @@ void CreatePokeballSpriteToReleaseMon(u8 monSpriteId, u8 battlerId, u8 x, u8 y,
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[0]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[0]);
|
||||
spriteId = CreateSprite(&gBallSpriteTemplates[0], x, y, subpriortiy);
|
||||
|
||||
gSprites[spriteId].data[0] = monSpriteId;
|
||||
gSprites[spriteId].data[5] = gSprites[monSpriteId].pos1.x;
|
||||
gSprites[spriteId].data[6] = gSprites[monSpriteId].pos1.y;
|
||||
|
||||
gSprites[monSpriteId].pos1.x = x;
|
||||
gSprites[monSpriteId].pos1.y = y;
|
||||
//gSprites[monSpriteId].data[7] = species;
|
||||
|
||||
gSprites[spriteId].data[1] = g;
|
||||
gSprites[spriteId].data[2] = battlerId;
|
||||
gSprites[spriteId].data[3] = h;
|
||||
gSprites[spriteId].data[4] = h >> 0x10;
|
||||
gSprites[spriteId].oam.priority = oamPriority;
|
||||
gSprites[spriteId].callback = sub_804B9E8;
|
||||
|
||||
gSprites[monSpriteId].invisible = TRUE;
|
||||
}
|
||||
|
||||
@@ -1085,11 +1328,13 @@ static void sub_804BAA4(struct Sprite *sprite)
|
||||
|
||||
if (sprite->animEnded)
|
||||
sprite->invisible = TRUE;
|
||||
|
||||
if (gSprites[monSpriteId].affineAnimEnded)
|
||||
{
|
||||
StartSpriteAffineAnim(&gSprites[monSpriteId], 0);
|
||||
r12 = TRUE;
|
||||
}
|
||||
|
||||
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;
|
||||
gSprites[monSpriteId].pos1.x = var1;
|
||||
@@ -1110,16 +1355,9 @@ static void sub_804BAA4(struct Sprite *sprite)
|
||||
gSprites[monSpriteId].pos2.y = 0;
|
||||
r6 = TRUE;
|
||||
}
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
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]++;
|
||||
if (sprite->data[5] == 11)
|
||||
PlaySE(SE_SUIKOMU);
|
||||
|
||||
r1 = sprite->data[0];
|
||||
if (gSprites[r1].affineAnimEnded)
|
||||
{
|
||||
@@ -1195,7 +1434,7 @@ static void sub_804BD6C(struct Sprite *sprite)
|
||||
sprite->callback = SpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void DestroySpriteAndFreeResources2(struct Sprite *sprite)
|
||||
void DestroySpriteAndFreeResources2(struct Sprite *sprite)
|
||||
{
|
||||
DestroySpriteAndFreeResources(sprite);
|
||||
}
|
||||
@@ -1216,6 +1455,7 @@ void sub_804BD94(u8 battlerId)
|
||||
healthboxSprite->pos2.x = -healthboxSprite->pos2.x;
|
||||
healthboxSprite->pos2.y = -healthboxSprite->pos2.y;
|
||||
}
|
||||
|
||||
gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]);
|
||||
if (GetBattlerPosition(battlerId) == B_POSITION_PLAYER_RIGHT)
|
||||
healthboxSprite->callback = sub_804BE24;
|
||||
@@ -1273,6 +1513,7 @@ void LoadBallGfx(u8 ballId)
|
||||
LoadCompressedSpriteSheetUsingHeap(&gBallSpriteSheets[ballId]);
|
||||
LoadCompressedSpritePaletteUsingHeap(&gBallSpritePalettes[ballId]);
|
||||
}
|
||||
|
||||
switch (ballId)
|
||||
{
|
||||
case BALL_DIVE:
|
||||
|
||||
Reference in new issue
Block a user