This commit is contained in:
luckytyphlosion
2020-06-13 13:40:57 -04:00
63 changed files with 6898 additions and 8919 deletions
+2
View File
@@ -16,6 +16,7 @@
*.gbapal
*.hwjpnfont
*.i
*.idb
*.id0
*.id1
*.id2
@@ -54,3 +55,4 @@ types_*.taghl
!sound/programmable_wave_samples/*.pcm
_Deparsed_XSubs.pm
porymap.project.cfg
.vscode/*.*
+1 -1
View File
@@ -76,7 +76,7 @@ ASFLAGS := -mcpu=arm7tdmi --defsym $(GAME_VERSION)=1 --defsym REVISION=$(GAME_RE
LDFLAGS = -Map ../../$(MAP)
LIB := $(LIBPATH) -lgcc -lc
LIB := $(LIBPATH) -lc -lgcc
#ifneq ($(MODERN),0)
#LIB += -lsysbase
#endif
-3775
View File
File diff suppressed because it is too large Load Diff
-210
View File
@@ -1,210 +0,0 @@
#include "constants/maps.h"
#include "constants/species.h"
.include "asm/macros.inc"
.include "constants/constants.inc"
.section .rodata
.align 2
gUnknown_83E44F4:: @ 83E44F4
.incbin "graphics/battle_anims/unk_83E4874.4bpp"
gUnknown_83E4874::
.incbin "graphics/battle_anims/unk_83E4874.bin"
gUnknown_83E5874:: @ 83E5874
obj_image_anim_frame 0, 2
obj_image_anim_frame 8, 2
obj_image_anim_frame 16, 2
obj_image_anim_frame 24, 6
obj_image_anim_frame 32, 2
obj_image_anim_frame 40, 2
obj_image_anim_frame 48, 2
obj_image_anim_end
gUnknown_83E5894:: @ 83E5894
.4byte gUnknown_83E5874
gUnknown_83E5898:: @ 83E5898
spr_template 10115, 10115, gOamData_AffineOff_ObjNormal_16x32, gUnknown_83E5894, NULL, gDummySpriteAffineAnimTable, sub_80AAC54
gUnknown_83E58B0:: @ 83E58B0
obj_rot_scal_anim_frame -5, -5, 0, 10
obj_rot_scal_anim_frame 5, 5, 0, 10
obj_rot_scal_anim_jump 0
gUnknown_83E58C8:: @ 83E58C8
.4byte gUnknown_83E58B0
gUnknown_83E58CC:: @ 83E58CC
obj_image_anim_frame 0, 1
obj_image_anim_frame 4, 5
obj_image_anim_frame 8, 5
obj_image_anim_end
gUnknown_83E58DC:: @ 83E58DC
.4byte gUnknown_83E58CC
gUnknown_83E58E0:: @ 83E58E0
spr_template 10146, 10146, gOamData_AffineNormal_ObjBlend_16x16, gUnknown_83E58DC, NULL, gUnknown_83E58C8, sub_80AAC98
gUnknown_83E58F8:: @ 83E58F8
obj_image_anim_frame 0, 1
obj_image_anim_end
gUnknown_83E5900:: @ 83E5900
obj_image_anim_frame 4, 1
obj_image_anim_end
gUnknown_83E5908:: @ 83E5908
.4byte gUnknown_83E58F8
.4byte gUnknown_83E5900
gUnknown_83E5910:: @ 83E5910
obj_rot_scal_anim_frame 0, 0, 0, 1
obj_rot_scal_anim_frame 96, 96, 0, 1
obj_rot_scal_anim_end
gUnknown_83E5928:: @ 83E5928
.4byte gUnknown_83E5910
gUnknown_83E592C:: @ 83E592C
spr_template 10140, 10140, gOamData_AffineDouble_ObjNormal_8x16, gUnknown_83E5908, NULL, gUnknown_83E5928, sub_80AAE84
gUnknown_83E5944:: @ 83E5944
obj_image_anim_frame 0, 1
obj_image_anim_frame 4, 1
obj_image_anim_frame 8, 1
obj_image_anim_frame 12, 1
obj_image_anim_jump 0
gUnknown_83E5958:: @ 83E5958
.4byte gUnknown_83E5944
gUnknown_83E595C:: @ 83E595C
spr_template 10149, 10149, gOamData_AffineOff_ObjBlend_16x16, gUnknown_83E5958, NULL, gDummySpriteAffineAnimTable, sub_80AB024
gUnknown_83E5974:: @ 83E5974
spr_template 10259, 10259, gOamData_AffineOff_ObjBlend_16x16, gUnknown_83E5958, NULL, gDummySpriteAffineAnimTable, sub_80AB024
gUnknown_83E598C:: @ 83E598C
spr_template 10264, 10264, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AB024
gUnknown_83E59A4:: @ 83E59A4
spr_template 10265, 10265, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80AB024
gUnknown_83E59BC:: @ 83E59BC
obj_image_anim_frame 16, 2
obj_image_anim_frame 32, 2
obj_image_anim_frame 48, 2
obj_image_anim_jump 0
gUnknown_83E59CC:: @ 83E59CC
.4byte gUnknown_83E59BC
gUnknown_83E59D0:: @ 83E59D0
spr_template 10029, 10029, gOamData_AffineOff_ObjNormal_32x32, gUnknown_83E59CC, NULL, gDummySpriteAffineAnimTable, sub_80AB024
gUnknown_83E59E8:: @ 83E59E8
spr_template 10165, 10165, gOamData_AffineDouble_ObjNormal_16x32, gDummySpriteAnimTable, NULL, gGrowingRingAffineAnimTable, sub_80AB024
gUnknown_83E5A00:: @ 83E5A00
obj_rot_scal_anim_frame 3, 3, 10, 50
obj_rot_scal_anim_frame 0, 0, 0, 10
obj_rot_scal_anim_frame -20, -20, 246, 20
obj_rot_scal_anim_end
gUnknown_83E5A20:: @ 83E5A20
obj_rot_scal_anim_frame 336, 336, 0, 0
obj_rot_scal_anim_end
gUnknown_83E5A30:: @ 83E5A30
.4byte gUnknown_83E5A00
gUnknown_83E5A34:: @ 83E5A34
.4byte gUnknown_83E5A20
gUnknown_83E5A38:: @ 83E5A38
spr_template 10149, 10149, gOamData_AffineDouble_ObjBlend_16x16, gUnknown_83E5958, NULL, gUnknown_83E5A30, sub_80AB168
gUnknown_83E5A50:: @ 83E5A50
spr_template 10149, 10149, gOamData_AffineDouble_ObjBlend_16x16, gUnknown_83E5958, NULL, gUnknown_83E5A34, sub_80AB1F8
gUnknown_83E5A68:: @ 83E5A68
obj_image_anim_frame 0, 1
obj_image_anim_end
gUnknown_83E5A70:: @ 83E5A70
obj_image_anim_frame 4, 1
obj_image_anim_end
gUnknown_83E5A78:: @ 83E5A78
.4byte gUnknown_83E5A68
gUnknown_83E5A7C:: @ 83E5A7C
.4byte gUnknown_83E5A70
gUnknown_83E5A80:: @ 83E5A80
spr_template 10155, 10155, gOamData_AffineOff_ObjBlend_16x16, gUnknown_83E5A78, NULL, gDummySpriteAffineAnimTable, AnimThrowProjectile
gUnknown_83E5A98:: @ 83E5A98
spr_template 10155, 10155, gOamData_AffineDouble_ObjBlend_16x16, gUnknown_83E5A7C, NULL, gUnknown_83E6A80, sub_80AB2CC
gUnknown_83E5AB0:: @ 83E5AB0
spr_template 10141, 10141, gOamData_AffineOff_ObjNormal_8x8, gUnknown_83E6330, NULL, gDummySpriteAffineAnimTable, sub_80AB308
gUnknown_83E5AC8:: @ 83E5AC8
spr_template 10155, 10155, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80ABA78
gUnknown_83E5AE0:: @ 83E5AE0
spr_template 10268, 10268, gOamData_AffineOff_ObjNormal_8x8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80ABF60
gUnknown_83E5AF8:: @ 83E5AF8
obj_image_anim_frame 8, 1
obj_image_anim_end
gUnknown_83E5B00:: @ 83E5B00
obj_image_anim_frame 9, 1
obj_image_anim_end
gUnknown_83E5B08:: @ 83E5B08
obj_image_anim_frame 4, 1
obj_image_anim_end
gUnknown_83E5B10:: @ 83E5B10
.4byte gUnknown_83E5AF8
.4byte gUnknown_83E5B00
gUnknown_83E5B18:: @ 83E5B18
.4byte gUnknown_83E5B08
gUnknown_83E5B1C:: @ 83E5B1C
obj_rot_scal_anim_frame 256, 256, 0, 0
obj_rot_scal_anim_frame -10, -10, 0, 15
obj_rot_scal_anim_end
gUnknown_83E5B34:: @ 83E5B34
obj_rot_scal_anim_frame 224, 224, 0, 0
obj_rot_scal_anim_frame -8, -8, 0, 15
obj_rot_scal_anim_end
gUnknown_83E5B4C:: @ 83E5B4C
obj_rot_scal_anim_frame 336, 336, 0, 0
obj_rot_scal_anim_frame 0, 0, 0, 15
obj_rot_scal_anim_end
gUnknown_83E5B64:: @ 83E5B64
.4byte gUnknown_83E5B1C
.4byte gUnknown_83E5B34
gUnknown_83E5B6C:: @ 83E5B6C
.4byte gUnknown_83E5B4C
gUnknown_83E5B70:: @ 83E5B70
spr_template 10155, 10155, gOamData_AffineOff_ObjNormal_8x8, gUnknown_83E5B10, NULL, gDummySpriteAffineAnimTable, sub_80AC624
gUnknown_83E5B88:: @ 83E5B88
spr_template 10155, 10155, gOamData_AffineNormal_ObjNormal_8x8, gUnknown_83E5B10, NULL, gUnknown_83E5B64, sub_80AC698
gUnknown_83E5BA0:: @ 83E5BA0
spr_template 10155, 10155, gOamData_AffineNormal_ObjNormal_16x16, gUnknown_83E5B18, NULL, gUnknown_83E5B6C, sub_8077350
+2417 -2447
View File
File diff suppressed because it is too large Load Diff
@@ -1174,9 +1174,9 @@ PalletTown_ProfessorOaksLab_EventScript_ConfirmStarterChoice:: @ 8169BE1
compare PLAYER_STARTER_NUM, 0
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur
compare PLAYER_STARTER_NUM, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander
compare PLAYER_STARTER_NUM, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle
compare PLAYER_STARTER_NUM, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur:: @ 8169C14
@@ -1187,7 +1187,7 @@ PalletTown_ProfessorOaksLab_EventScript_ConfirmBulbasaur:: @ 8169C14
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander:: @ 8169C33
PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle:: @ 8169C33
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingSquirtle, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
@@ -1195,7 +1195,7 @@ PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander:: @ 8169C33
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_DeclinedStarter
end
PalletTown_ProfessorOaksLab_EventScript_ConfirmSquirtle:: @ 8169C52
PalletTown_ProfessorOaksLab_EventScript_ConfirmCharmander:: @ 8169C52
msgbox PalletTown_ProfessorOaksLab_Text_OakChoosingCharmander, MSGBOX_YESNO
compare VAR_RESULT, YES
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_ChoseStarter
@@ -1240,9 +1240,9 @@ PalletTown_ProfessorOaksLab_EventScript_RivalPicksStarter:: @ 8169CDC
compare PLAYER_STARTER_NUM, 0
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander
compare PLAYER_STARTER_NUM, 1
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle
compare PLAYER_STARTER_NUM, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur
compare PLAYER_STARTER_NUM, 2
goto_if_eq PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander:: @ 8169CFF
@@ -1251,14 +1251,14 @@ PalletTown_ProfessorOaksLab_EventScript_RivalWalksToCharmander:: @ 8169CFF
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur:: @ 8169D0F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle:: @ 8169D0F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToSquirtle:: @ 8169D1F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle
PalletTown_ProfessorOaksLab_EventScript_RivalWalksToBulbasaur:: @ 8169D1F
applymovement LOCALID_RIVAL, PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur
waitmovement 0
goto PalletTown_ProfessorOaksLab_EventScript_RivalTakesStarter
end
@@ -1293,7 +1293,7 @@ PalletTown_ProfessorOaksLab_Movement_RivalWalksToCharmander:: @ 8169D62
walk_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: @ 8169D6B
PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle:: @ 8169D6B
walk_down
walk_right
walk_right
@@ -1302,7 +1302,7 @@ PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: @ 8169D6B
walk_in_place_fastest_up
step_end
PalletTown_ProfessorOaksLab_Movement_RivalWalksToSquirtle:: @ 8169D72
PalletTown_ProfessorOaksLab_Movement_RivalWalksToBulbasaur:: @ 8169D72
walk_down
walk_right
walk_right
+78 -74
View File
@@ -215,9 +215,10 @@ void AnimMetronomeFinger(struct Sprite *);
void AnimFollowMeFinger(struct Sprite *);
void AnimTauntFinger(struct Sprite *);
void SetSpriteNextToMonHead(u8 battler, struct Sprite* sprite);
void sub_80A2F0C(u8 taskId);
void AnimTask_ShrinkTargetCopy(u8 taskId);
// battle_anim_effects_2.c
extern const union AffineAnimCmd *const gGrowingRingAffineAnimTable[];
void sub_80A6E48(struct Sprite *);
void sub_80A6E98(struct Sprite *);
void sub_80A6F8C(struct Sprite *);
@@ -345,7 +346,6 @@ void LaunchStatusAnimation(u8 battlerId, u8 statusAnimId);
// battle_anim_mons.c
extern const struct MonCoords gCastformFrontSpriteCoords[];
u8 GetBattlerSpriteCoord(u8 battlerId, u8 coordType);
u8 GetBattlerSpriteCoord2(u8 battlerId, u8 coordType);
u8 GetBattlerSpriteDefault_Y(u8 battlerId);
@@ -421,9 +421,9 @@ void AnimThrowProjectile(struct Sprite *sprite);
void AnimSnoreZ(struct Sprite *sprite);
s16 CloneBattlerSpriteWithBlend(u8 animBattler);
void obj_delete_but_dont_free_vram(struct Sprite *sprite);
void sub_8076048(u8 taskId);
void AnimTask_AlphaFadeIn(u8 taskId);
void AnimTask_BlendMonInAndOut(u8 task);
void sub_8076288(u8 taskId);
void AnimTask_BlendPalInAndOutByTag(u8 taskId);
void PrepareAffineAnimInTaskData(struct Task *task, u8 spriteId, const union AffineAnimCmd *affineAnimCmds);
bool8 RunAffineAnimFromTaskData(struct Task *task);
void SetBattlerSpriteYOffsetFromYScale(u8 spriteId);
@@ -445,9 +445,9 @@ u8 sub_8076E34(s32 battlerId, u8 spriteId, s32 species);
void sub_8076ED8(struct Sprite *sprite);
void sub_8076F58(struct Sprite *sprite);
void sub_8076FD0(struct Sprite *sprite);
void sub_8077030(u8 taskId);
void AnimTask_AttackerPunchWithTrace(u8 taskId);
void sub_807729C(struct Sprite *sprite);
void sub_8077350(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite);
// battle_anim_mon_movement.c
void AnimTask_ShakeMon(u8 taskId);
@@ -457,107 +457,111 @@ void AnimTask_ShakeAndSinkMon(u8 taskId);
void AnimTask_TranslateMonElliptical(u8 taskId);
void AnimTask_TranslateMonEllipticalRespectSide(u8 taskId);
void AnimTask_WindUpLunge(u8 taskId);
void sub_80995FC(u8 taskId);
void AnimTask_SlideOffScreen(u8 taskId);
void AnimTask_SwayMon(u8 taskId);
void AnimTask_ScaleMonAndRestore(u8 taskId);
void sub_8099980(u8 taskId);
void sub_8099A78(u8 taskId);
void sub_8099BD4(u8 taskId);
void AnimTask_RotateMonSpriteToSide(u8 taskId);
void AnimTask_RotateMonToSideAndRestore(u8 taskId);
void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId);
// normal.c
extern const struct SpriteTemplate gUnknown_83E7C98;
extern const struct SpriteTemplate gFlashingHitSplatSpriteTemplate;
extern const struct SpriteTemplate gBasicHitSplatSpriteTemplate;
extern const struct SpriteTemplate gWaterHitSplatSpriteTemplate;
u32 UnpackSelectedBattleAnimPalettes(s16 selector);
void AnimTask_CurseBlendEffect(u8 taskId);
void sub_80B9CE4(u8 taskId);
void sub_80B9E58(u8 taskId);
void sub_80B9F6C(u8 taskId);
void sub_80BA0E8(u8 taskId);
void sub_80BA47C(u8 taskId);
void AnimTask_BlendColorCycleExclude(u8 taskId);
void AnimTask_BlendColorCycleByTag(u8 taskId);
void AnimTask_FlashAnimTagWithColor(u8 taskId);
void AnimTask_InvertScreenColor(u8 taskId);
void AnimTask_ShakeBattleTerrain(u8 taskId);
// ground.c
void sub_80B8E94(u8 taskId);
void sub_80B90EC(u8 taskId);
void sub_80B94B4(u8 taskId);
void AnimTask_DigDownMovement(u8 taskId);
void AnimTask_DigUpMovement(u8 taskId);
void AnimTask_HorizontalShake(u8 taskId);
void AnimTask_IsPowerOver99(u8 taskId);
void sub_80B9800(u8 taskId);
void AnimTask_PositionFissureBgOnBattler(u8 taskId);
// dragon.c
void sub_80B75E0(u8 taskId);
void AnimTask_DragonDanceWaver(u8 taskId);
// ghost.c
void sub_80B54E8(u8 taskId);
void sub_80B58AC(u8 taskId);
void sub_80B5AAC(u8 taskId);
void sub_80B6020(u8 taskId);
void sub_80B63B4(u8 taskId);
void sub_80B68C8(u8 taskId);
void AnimTask_NightShadeClone(u8 taskId);
void AnimTask_NightmareClone(u8 taskId);
void AnimTask_SpiteTargetShadow(u8 taskId);
void AnimTask_DestinyBondWhiteShadow(u8 taskId);
void AnimTask_CurseStretchingBlackBg(u8 taskId);
void AnimTask_GrudgeFlames(u8 taskId);
void sub_80B6BBC(u8 taskId);
// rock.c
void AnimTask_LoadSandstormBackground(u8 taskId);
void sub_80B4BD0(u8 taskId);
void AnimTask_Rollout(u8 taskId);
void AnimTask_GetSeismicTossDamageLevel(u8 taskId);
void sub_80B5188(u8 taskId);
void sub_80B51EC(u8 taskId);
void AnimTask_MoveSeismicTossBg(u8 taskId);
void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId);
// psychic.c
void sub_80B3418(u8 taskId);
void sub_80B3480(u8 taskId);
void sub_80B3584(u8 taskId);
void sub_80B3834(u8 taskId);
void sub_80B3A58(u8 taskId);
void sub_80B3C78(u8 taskId);
void AnimTask_MeditateStretchAttacker(u8 taskId);
void AnimTask_Teleport(u8 taskId);
void AnimTask_ImprisonOrbs(u8 taskId);
void AnimTask_SkillSwap(u8 taskId);
void AnimTask_ExtrasensoryDistortion(u8 taskId);
void AnimTask_TransparentCloneGrowAndShrink(u8 taskId);
// dark.c
extern const union AffineAnimCmd *const gUnknown_83E7910[];
void sub_80B78E0(u8 taskId);
void sub_80B79DC(u8 taskId);
void sub_80B7A80(u8 taskId);
void sub_80B7DA4(u8 taskId);
void sub_80B8070(u8 taskId);
void sub_80B85B8(u8 taskId);
extern const union AffineAnimCmd *const gAffineAnims_Bite[];
void AnimTask_AttackerFadeToInvisible(u8 taskId);
void AnimTask_AttackerFadeFromInvisible(u8 taskId);
void AnimTask_InitAttackerFadeFromInvisible(u8 taskId);
void AnimTask_MoveAttackerMementoShadow(u8 taskId);
void AnimTask_MoveTargetMementoShadow(u8 taskId);
void AnimTask_InitMementoShadow(u8 taskId);
void sub_80B8664(u8 taskId);
void AnimTask_MetallicShine(u8 taskId);
void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId);
void sub_80B8B38(u8 taskId);
void GetIsDoomDesireHitTurn(u8 taskId);
// flying.c
void sub_80B194C(u8 taskId);
void AnimTask_AnimateGustTornadoPalette(u8 taskId);
void sub_80B1D3C(struct Sprite *sprite);
void sub_80B2868(u8 taskId);
void AnimTask_DrillPeckHitSplats(u8 taskId);
// poison.c
extern const union AffineAnimCmd *const gAffineAnims_Droplet[];
// fighting.c
void sub_80B1530(u8 taskId);
void AnimTask_MoveSkyUppercutBg(u8 taskId);
// ice.c
extern const union AnimCmd *const gAnims_SmallBubblePair[];
void AnimTask_Haze1(u8 taskId);
void AnimTask_LoadMistTiles(u8 taskId);
void AnimTask_Hail1(u8 taskId);
void AnimTask_GetRolloutCounter(u8 taskId);
// electric.c
void sub_80AE220(u8 taskId);
void sub_80AE540(u8 taskId);
void sub_80AE8A0(u8 taskId);
void sub_80AEA10(u8 taskId);
void sub_80AECE0(u8 taskId);
void sub_80AEFA0(u8 taskId);
void AnimTask_ElectricBolt(u8 taskId);
void AnimTask_ElectricChargingParticles(u8 taskId);
void AnimTask_VoltTackleAttackerReappear(u8 taskId);
void AnimTask_VoltTackleBolt(u8 taskId);
void AnimTask_ShockWaveProgressingBolt(u8 taskId);
void AnimTask_ShockWaveLightning(u8 taskId);
// fire.c
extern const union AnimCmd *const gUnknown_83E5D48[];
void sub_80ACEA4(u8 taskId);
void sub_80ADAD8(u8 taskId);
extern const union AnimCmd *const gAnims_BasicFire[];
void AnimTask_EruptionLaunchRocks(u8 taskId);
void AnimTask_ShakeTargetInPattern(u8 taskId);
void AnimTask_BlendBackground(u8 taskId);
void sub_80AD800(u8 taskId);
void AnimTask_MoveHeatWaveTargets(u8 taskId);
// water.s
extern const union AnimCmd *const gUnknown_83E5958[];
extern const union AnimCmd *const gUnknown_83E5A78[];
// water.c
extern const union AnimCmd *const gAnims_WaterMudOrb[];
extern const union AnimCmd *const gAnims_WaterBubble[];
void AnimWaterPulseRing(struct Sprite *sprite);
// smokescreen.s
// smokescreen.c
u8 SmokescreenImpact(s16 x, s16 y, u8 a3);
// battle_anim_utility_funcs.c
@@ -570,25 +574,25 @@ void AnimTask_CloneBattlerSpriteWithBlend(u8 taskId);
void AnimTask_SetUpCurseBackground(u8 taskId);
void sub_80BB088(u8 taskId);
void sub_80BB660(u8 taskId);
void sub_80BB7DC(u8 taskId);
void sub_80BB82C(u8 taskId);
void AnimTask_BlendNonAttackerPalettes(u8 taskId);
void AnimTask_StartSlidingBg(u8 taskId);
void AnimTask_GetAttackerSide(u8 taskId);
void AnimTask_GetTargetSide(u8 taskId);
void AnimTask_GetTargetIsAttackerPartner(u8 taskId);
void sub_80BB9B0(u8 taskId);
void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId);
void sub_80BBA20(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 arg4, u8 arg5, u8 arg6, u8 arg7, const u32 *gfx, const u32 *tilemap, const u32 *palette);
void AnimTask_GetBattleTerrain(u8 taskId);
void sub_80BBE10(u8 taskId);
void sub_80BBE3C(u8 taskId);
void sub_80BBE6C(u8 taskId);
void sub_80BBF08(u8 taskId);
void sub_80BBFA4(u8 taskId);
void AnimTask_AllocBackupPalBuffer(u8 taskId);
void AnimTask_FreeBackupPalBuffer(u8 taskId);
void AnimTask_CopyPalUnfadedToBackup(u8 taskId);
void AnimTask_CopyPalUnfadedFromBackup(u8 taskId);
void AnimTask_CopyPalFadedToUnfaded(u8 taskId);
void AnimTask_IsContest(u8 taskId);
void sub_80BC060(u8 taskId);
void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId);
void AnimTask_IsTargetSameSide(u8 taskId);
void sub_80BC0DC(u8 taskId);
void sub_80BC0FC(u8 taskId);
void sub_80BC12C(u8 taskId);
void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId);
void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId);
void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId);
// battle_anim_scripts.s
extern const u8 *const gBattleAnims_StatusConditions[];
+2 -1
View File
@@ -9,7 +9,8 @@
#define NUM_METATILES_TOTAL 1024
#define NUM_PALS_IN_PRIMARY 7
#define NUM_PALS_TOTAL 13
#define VIRTUAL_MAP_SIZE 0x2800
#define MAX_MAP_DATA_SIZE 0x2800
#define VIRTUAL_MAP_SIZE (MAX_MAP_DATA_SIZE)
extern struct BackupMapLayout VMap;
extern const struct MapLayout Route1_Layout;
+2 -2
View File
@@ -94,7 +94,7 @@ struct ObjectEventTemplate
{
/*0x00*/ u8 localId;
/*0x01*/ u8 graphicsId;
/*0x02*/ u8 unk2;
/*0x02*/ u8 inConnection;
/*0x04*/ s16 x;
/*0x06*/ s16 y;
/*0x08*/ u8 elevation;
@@ -304,7 +304,7 @@ enum {
#define PLAYER_AVATAR_FLAG_UNDERWATER (1 << PLAYER_AVATAR_STATE_UNDERWATER)
#define PLAYER_AVATAR_FLAG_FIELD_MOVE (1 << PLAYER_AVATAR_STATE_FIELD_MOVE)
#define PLAYER_AVATAR_FLAG_FISHING (1 << PLAYER_AVATAR_STATE_FISHING)
#define PLAYER_AVATAR_FLAG_WATERING (1 << PLAYER_AVATAR_STATE_WATERING)
#define PLAYER_AVATAR_FLAG_DASH (1 << PLAYER_AVATAR_STATE_WATERING)
enum
{
+6
View File
@@ -4241,6 +4241,7 @@ extern const u32 gBattleAnimBgImage_Cosmic[];
extern const u32 gBattleAnimBgImage_InAir[];
extern const u32 gBattleAnimBgImage_Aurora[];
extern const u32 gBattleAnimBgImage_Fissure[];
extern const u32 gBattleAnimBgImage_Surf[];
extern const u32 gBattleAnimBgPalette_Dark[];
extern const u32 gBattleAnimBgPalette_Ghost[];
extern const u32 gBattleAnimBgPalette_Psychic[];
@@ -4252,11 +4253,13 @@ extern const u32 gBattleAnimBgPalette_Guillotine[];
extern const u32 gBattleAnimBgPalette_Ice[];
extern const u32 gBattleAnimBgPalette_Cosmic[];
extern const u32 gBattleAnimBgPalette_InAir[];
extern const u32 gBattleAnimBgPalette_MuddyWater[];
extern const u32 gBattleAnimBgPalette_Sky[];
extern const u32 gBattleAnimBgPalette_Aurora[];
extern const u32 gBattleAnimBgPalette_Fissure[];
extern const u32 gBattleAnimBgPalette_Bug[];
extern const u32 gBattleAnimBgPalette_Solarbeam[];
extern const u32 gBattleAnimBgPalette_Surf[];
extern const u32 gBattleAnimBgTilemap_Dark[];
extern const u32 gBattleAnimBgTilemap_Ghost[];
extern const u32 gBattleAnimBgTilemap_Psychic[];
@@ -4276,6 +4279,9 @@ extern const u32 gBattleAnimBgTilemap_Cosmic[];
extern const u32 gBattleAnimBgTilemap_InAir[];
extern const u32 gBattleAnimBgTilemap_Aurora[];
extern const u32 gBattleAnimBgTilemap_Fissure[];
extern const u32 gBattleAnimBgTilemap_SurfOpponent[];
extern const u32 gBattleAnimBgTilemap_SurfPlayer[];
extern const u32 gBattleAnimBgTilemap_SurfContest[];
// dark
extern const u32 gMetalShineGfx[];
+1 -7
View File
@@ -90,13 +90,8 @@
#define RFU_MBOOT_DOWNLOADER_SERIAL_NO 0x0000 // The game serial number of the multi-boot downloader (programs that boot without a Game Pak)
#if LIBRFU_VERSION >= 1028
#define RFU_API_BUFF_SIZE_RAM 0x0e8c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM)
#define RFU_API_BUFF_SIZE_ROM 0x052c // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM)
#else
#define RFU_API_BUFF_SIZE_RAM 0x0e64 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in RAM)
#define RFU_API_BUFF_SIZE_ROM 0x0504 // Necessary size for buffer specified by rfu_initializeAPI (fast communication version that operates the library SIO interrupt routines in ROM)
#endif
#define RFU_CHILD_MAX 4 // Maximum number of slaves that can be connected to one parent device
@@ -376,8 +371,7 @@ struct NIComm
u16 state; // Communication state of slot
u16 failCounter; // Count of failed transmissions/receptions (Count is increased when transmission/reception of data does not succeed within 1PF=16.7 ms)
const u8 *now_p[WINDOW_COUNT]; // Address of current send/receive (The data is divided into WINDOW_COUNT blocks and sent in payloadSize units.)
// remainSize is u32 in SDK. This is a hack to match ASM
s32 remainSize; // Size of remaining communication data
u32 remainSize; // Size of remaining communication data
u16 errorCode; // Error code
u8 bmSlot; // Expresses the current communication slot in bits
// (When sending from the Master, because multiple slaves can be specified with bmSlot, communications are terminated based on the failCounter for each child device)
+14 -14
View File
@@ -188,7 +188,7 @@ extern const u8 gText_Ghost[];
// pokemon
extern const u8 gBattleText_Rose[];
extern const u8 gBattleText_UnknownString3[];
extern const u8 gText_PkmnsStatChanged2[];
extern const u8 gBattleText_GetPumped[];
extern const u8 gBattleText_MistShroud[];
extern const u8 gText_BadEgg[];
@@ -215,9 +215,9 @@ extern const u8 gString_QuitPlaying[];
extern const u8 gString_SlotMachineControls[];
// battle_controller_safari
extern const u8 gUnknown_83FDA4C[];
extern const u8 gText_EmptyString3[];
extern const u8 gUnknown_83FE747[];
extern const u8 gUnknown_83FE6E6[];
extern const u8 gText_WhatWillPlayerThrow[];
// battle_controller_player
extern const u8 gText_BattleSwitchWhich[];
@@ -225,23 +225,23 @@ extern const u8 gUnknown_83FE770[];
extern const u8 gText_MoveInterfacePP[];
extern const u8 gText_MoveInterfaceType[];
extern const u8 gText_LinkStandby[];
extern const u8 gUnknown_83FE725[];
extern const u8 gText_BattleMenu[];
extern const u8 gText_WhatWillPkmnDo[];
// battle_script_commands
extern const u8 gText_BattleYesNoChoice[];
// battle_controller_oak_old_man
extern const u8 gUnknown_83FDAE2[];
extern const u8 gUnknown_83FDB92[];
extern const u8 gUnknown_83FDBEF[];
extern const u8 gUnknown_83FDC58[];
extern const u8 gUnknown_83FDC95[];
extern const u8 gUnknown_83FDD23[];
extern const u8 gUnknown_83FDD64[];
extern const u8 gUnknown_83FDDEB[];
extern const u8 gUnknown_83FDCD2[];
extern const u8 gUnknown_83FE6FA[];
extern const u8 gText_ForPetesSake[];
extern const u8 gText_TheTrainerThat[];
extern const u8 gText_TryBattling[];
extern const u8 gText_InflictingDamageIsKey[];
extern const u8 gText_LoweringStats[];
extern const u8 gText_KeepAnEyeOnHP[];
extern const u8 gText_OakNoRunningFromATrainer[];
extern const u8 gText_WinEarnsPrizeMoney[];
extern const u8 gText_HowDissapointing[];
extern const u8 gText_WhatWillOldManDo[];
// battle_controller_pokedude
extern const u8 Pokedude_Text_SpeedierBattlerGoesFirst[];
+2 -2
View File
@@ -162,7 +162,7 @@ SECTIONS {
src/item_use.o(.text);
src/battle_anim_effects_1.o(.text);
src/battle_anim_effects_2.o(.text);
asm/water.o(.text);
src/water.o(.text);
src/fire.o(.text);
src/electric.o(.text);
src/ice.o(.text);
@@ -483,7 +483,7 @@ SECTIONS {
src/item_use.o(.rodata);
src/battle_anim_effects_1.o(.rodata);
src/battle_anim_effects_2.o(.rodata);
data/battle_anim_effects_misc.o(.rodata);
src/water.o(.rodata);
src/fire.o(.rodata);
src/electric.o(.rodata);
src/ice.o(.rodata);
+2 -2
View File
@@ -2767,7 +2767,7 @@ static void AnimConstrictBindingStep2(struct Sprite* sprite)
}
}
void sub_80A2F0C(u8 taskId)
void AnimTask_ShrinkTargetCopy(u8 taskId)
{
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
@@ -3605,7 +3605,7 @@ static void AnimFlyingParticleStep(struct Sprite* sprite)
DestroySpriteAndMatrix(sprite);
}
void sub_80A41C4(u8 taskId)
void AnimTask_CycleMagicalLeafPal(u8 taskId)
{
struct Task* task = &gTasks[taskId];
+9 -9
View File
@@ -32,7 +32,7 @@ static void AnimTask_SplashStep(u8);
static void AnimTask_GrowAndShrinkStep(u8);
static void ThrashMoveMonStep(u8);
static void ThrashMoveMon(u8);
static void AnimTask_SketchDrawMon(u8);
static void AnimTask_SketchDrawMon_Step(u8);
static void AnimPencil_Step(struct Sprite *);
static void AnimSoftBoiledEgg_Step1(struct Sprite *);
static void AnimSoftBoiledEgg_Step2(struct Sprite *);
@@ -115,7 +115,7 @@ static const struct SpriteTemplate sUnknown_83E3B30 =
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7910,
.affineAnims = gAffineAnims_Bite,
.callback = sub_80A7020,
};
@@ -2347,7 +2347,7 @@ static void ThrashMoveMon(u8 taskId)
}
}
void sub_80A8874(u8 taskId)
void AnimTask_SketchDrawMon(u8 taskId)
{
struct Task* task = &gTasks[taskId];
struct ScanlineEffectParams params;
@@ -2385,10 +2385,10 @@ void sub_80A8874(u8 taskId)
params.initState = 1;
params.unused9 = 0;
ScanlineEffect_SetParams(params);
task->func = AnimTask_SketchDrawMon;
task->func = AnimTask_SketchDrawMon_Step;
}
static void AnimTask_SketchDrawMon(u8 taskId)
static void AnimTask_SketchDrawMon_Step(u8 taskId)
{
struct Task* task = &gTasks[taskId];
@@ -2983,7 +2983,7 @@ void AnimSpeedDust(struct Sprite *sprite)
}
}
void sub_80A96B4(u8 taskId)
void AnimTask_LoadMusicNotesPals(u8 taskId)
{
int i;
u8 paletteNums[3];
@@ -3001,7 +3001,7 @@ void sub_80A96B4(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80A9760(u8 taskId)
void AnimTask_FreeMusicNotesPals(u8 taskId)
{
int i;
@@ -3101,7 +3101,7 @@ static void FakeOutStep2(u8 taskId)
}
}
void sub_80A9A20(u8 taskId)
void AnimTask_StretchTargetUp(u8 taskId)
{
u8 spriteId = GetAnimBattlerSpriteId(ANIM_TARGET);
@@ -3122,7 +3122,7 @@ void sub_80A9A20(u8 taskId)
}
}
void sub_80A9AB0(u8 taskId)
void AnimTask_StretchAttackerUp(u8 taskId)
{
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
+2 -2
View File
@@ -3571,7 +3571,7 @@ static void sub_80E1AD8(u8 taskId)
}
}
void sub_80E1C48(u8 taskId)
void AnimTask_SlideMonForFocusBand(u8 taskId)
{
gTasks[taskId].data[15] = gBattlerSpriteIds[gBattleAnimAttacker];
gTasks[taskId].data[14] = gBattleAnimArgs[0];
@@ -3751,7 +3751,7 @@ static void AnimTask_FacadeColorBlendStep(u8 taskId)
}
}
void sub_80E2084(u8 taskId)
void AnimTask_StatusClearedEffect(u8 taskId)
{
sub_80BBA20(taskId, 0, 0x1A0, gBattleAnimAttacker, gBattleAnimArgs[0], 10, 2, 30, gCureBubblesGfx, gCureBubblesTilemap, gCureBubblesPal);
}
+5 -5
View File
@@ -73,7 +73,7 @@ const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate =
.callback = SlideMonToOffset,
};
const struct SpriteTemplate gUnknown_83D4EB4 =
const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -620,7 +620,7 @@ static void AnimTask_WindUpLungePart2(u8 taskId)
}
}
void sub_80995FC(u8 taskId)
void AnimTask_SlideOffScreen(u8 taskId)
{
u8 spriteId;
@@ -772,7 +772,7 @@ static void AnimTask_ScaleMonAndRestoreStep(u8 taskId)
}
}
void sub_8099980(u8 taskId)
void AnimTask_RotateMonSpriteToSide(u8 taskId)
{
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
PrepareBattlerSpriteForRotScale(spriteId, 0);
@@ -805,7 +805,7 @@ void sub_8099980(u8 taskId)
gTasks[taskId].func = sub_8099B54;
}
void sub_8099A78(u8 taskId)
void AnimTask_RotateMonToSideAndRestore(u8 taskId)
{
u8 spriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[2]);
PrepareBattlerSpriteForRotScale(spriteId, 0);
@@ -866,7 +866,7 @@ static void sub_8099B54(u8 taskId)
}
}
void sub_8099BD4(u8 taskId)
void AnimTask_ShakeTargetBasedOnMovePowerOrDmg(u8 taskId)
{
if (gBattleAnimArgs[0] == 0)
{
+4 -4
View File
@@ -1466,7 +1466,7 @@ void obj_delete_but_dont_free_vram(struct Sprite *sprite)
DestroySprite(sprite);
}
void sub_8076048(u8 taskId)
void AnimTask_AlphaFadeIn(u8 taskId)
{
s16 v1 = 0, v2 = 0;
@@ -1584,7 +1584,7 @@ static void AnimTask_BlendMonInAndOutStep(u8 taskId)
}
}
void sub_8076288(u8 taskId)
void AnimTask_BlendPalInAndOutByTag(u8 taskId)
{
u8 palette = IndexOfSpritePaletteTag(gBattleAnimArgs[0]);
@@ -2117,7 +2117,7 @@ void sub_8076FD0(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
void sub_8077030(u8 taskId)
void AnimTask_AttackerPunchWithTrace(u8 taskId)
{
u16 src;
u16 dest;
@@ -2225,7 +2225,7 @@ static void sub_80772F4(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_8077350(struct Sprite *sprite)
void AnimWeatherBallDown(struct Sprite *sprite)
{
s32 x;
+7 -7
View File
@@ -66,7 +66,7 @@ static void sub_80DCEE4(u8 taskId)
}
}
void mas_80DCF38(u8 taskId)
void SoundTask_LoopSEAdjustPanning(u8 taskId)
{
u16 songId = gBattleAnimArgs[0];
s8 targetPan = gBattleAnimArgs[2];
@@ -116,7 +116,7 @@ static void sub_80DCFE8(u8 taskId)
}
}
void sub_80DD06C(u8 taskId)
void SoundTask_PlayCryHighPitch(u8 taskId)
{
u16 species = SPECIES_NONE;
u8 battlerId;
@@ -147,7 +147,7 @@ void sub_80DD06C(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80DD148(u8 taskId)
void SoundTask_PlayDoubleCry(u8 taskId)
{
u16 species = SPECIES_NONE;
u8 battlerId;
@@ -214,7 +214,7 @@ static void sub_80DD270(u8 taskId)
}
}
void sub_80DD2F4(u8 taskId)
void SoundTask_WaitForCry(u8 taskId)
{
if (gTasks[taskId].data[9] < 2)
++gTasks[taskId].data[9];
@@ -259,7 +259,7 @@ static void sub_80DD390(u8 taskId)
}
}
void sub_80DD3DC(u8 taskId)
void SoundTask_PlaySE1WithPanning(u8 taskId)
{
u16 songId = gBattleAnimArgs[0];
s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
@@ -268,7 +268,7 @@ void sub_80DD3DC(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80DD410(u8 taskId)
void SoundTask_PlaySE2WithPanning(u8 taskId)
{
u16 songId = gBattleAnimArgs[0];
s8 pan = BattleAnimAdjustPanning(gBattleAnimArgs[1]);
@@ -277,7 +277,7 @@ void sub_80DD410(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80DD444(u8 taskId)
void SoundTask_AdjustPanningVar(u8 taskId)
{
s8 targetPan = gBattleAnimArgs[1];
s8 panIncrement = gBattleAnimArgs[2];
+12 -12
View File
@@ -397,7 +397,7 @@ static const union AnimCmd *const sSpriteAnimTable_840C20C[] =
sUnknown_840C204,
};
const struct SpriteTemplate gUnknown_840C210 =
const struct SpriteTemplate gSafariRockTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
@@ -534,7 +534,7 @@ void sub_80EEFC8(u8 *paletteId1, u8 *paletteId2, u8 battler)
gSprites[spriteId2].oam.paletteNum = *paletteId2;
}
void sub_80EF0B4(u8 taskId)
void AnimTask_LoadHealthboxPalsForLevelUp(u8 taskId)
{
u8 paletteId1, paletteId2;
@@ -560,13 +560,13 @@ void sub_80EF0E0(u8 battler)
gSprites[spriteId2].oam.paletteNum = paletteId2;
}
void sub_80EF180(u8 taskId)
void AnimTask_FreeHealthboxPalsForLevelUp(u8 taskId)
{
sub_80EF0E0(gBattleAnimAttacker);
DestroyAnimVisualTask(taskId);
}
void sub_80EF1A0(u8 taskId)
void AnimTask_FlashHealthboxOnLevelUp(u8 taskId)
{
gTasks[taskId].data[10] = gBattleAnimArgs[0];
gTasks[taskId].data[11] = gBattleAnimArgs[1];
@@ -610,7 +610,7 @@ static void sub_80EF1CC(u8 taskId)
}
}
void sub_80EF298(u8 taskId)
void AnimTask_SwitchOutShrinkMon(u8 taskId)
{
u8 spriteId;
@@ -637,7 +637,7 @@ void sub_80EF298(u8 taskId)
}
}
void sub_80EF344(u8 taskId)
void AnimTask_SwitchOutBallEffect(u8 taskId)
{
u8 spriteId;
u16 ball;
@@ -672,7 +672,7 @@ void sub_80EF344(u8 taskId)
}
}
void sub_80EF490(u8 taskId)
void AnimTask_LoadBallGfx(u8 taskId)
{
u8 ballId = ItemIdToBallId(gLastUsedItem);
@@ -680,7 +680,7 @@ void sub_80EF490(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80EF4B8(u8 taskId)
void AnimTask_FreeBallGfx(u8 taskId)
{
u8 ballId = ItemIdToBallId(gLastUsedItem);
@@ -738,7 +738,7 @@ u8 ItemIdToBallId(u16 ballItem)
}
}
void sub_80EF5AC(u8 taskId)
void AnimTask_ThrowBall(u8 taskId)
{
u8 ballId;
u8 spriteId;
@@ -762,7 +762,7 @@ static void sub_80EF698(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80EF6D4(u8 taskId)
void AnimTask_ThrowBallSpecial(u8 taskId)
{
int x, y;
u8 ballId;
@@ -1942,7 +1942,7 @@ static void sub_80F13C0(u8 taskId)
}
}
void sub_80F1420(u8 taskId)
void AnimTask_SwapMonSpriteToFromSubstitute(u8 taskId)
{
u8 spriteId;
u32 x;
@@ -2000,7 +2000,7 @@ void sub_80F1420(u8 taskId)
}
}
void sub_80F15C8(u8 taskId)
void AnimTask_SubstituteFadeToInvisible(u8 taskId)
{
u8 spriteId;
+4 -4
View File
@@ -68,7 +68,7 @@ static const union AnimCmd *const sSpriteAnimTable_83BF430[] =
sUnknown_83BF428
};
const struct SpriteTemplate gSpriteTemplate_83BF434 =
const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
{
.tileTag = ANIM_TAG_WEATHER_BALL,
.paletteTag = ANIM_TAG_WEATHER_BALL,
@@ -79,7 +79,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF434 =
.callback = sub_807729C,
};
const struct SpriteTemplate gSpriteTemplate_83BF44C =
const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
{
.tileTag = ANIM_TAG_WEATHER_BALL,
.paletteTag = ANIM_TAG_WEATHER_BALL,
@@ -87,7 +87,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF44C =
.anims = sSpriteAnimTable_83BF430,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8077350,
.callback = AnimWeatherBallDown,
};
static const union AnimCmd sUnknown_83BF464[] =
@@ -343,7 +343,7 @@ static void sub_8078380(struct Sprite *sprite)
}
}
void sub_80783FC(u8 taskId)
void AnimTask_FrozenIceCube(u8 taskId)
{
s16 x = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X_2) - 32;
s16 y = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_Y_PIC_OFFSET) - 36;
+13 -13
View File
@@ -577,7 +577,7 @@ static void sub_80BB4B8(u8 taskId)
}
}
void sub_80BB660(u8 taskId)
void AnimTask_Flash(u8 taskId)
{
u32 selectedPalettes = SelectBattlerSpritePalettes(1, 1, 1, 1);
@@ -646,7 +646,7 @@ static void sub_80BB790(u32 selectedPalettes, u16 color)
gPlttBufferFaded[curOffset] = color;
}
void sub_80BB7DC(u8 taskId)
void AnimTask_BlendNonAttackerPalettes(u8 taskId)
{
s32 j;
u32 battler, selectedPalettes = 0;
@@ -659,7 +659,7 @@ void sub_80BB7DC(u8 taskId)
StartBlendAnimSpriteColor(taskId, selectedPalettes);
}
void sub_80BB82C(u8 taskId)
void AnimTask_StartSlidingBg(u8 taskId)
{
u8 newTaskId;
@@ -712,7 +712,7 @@ void AnimTask_GetTargetIsAttackerPartner(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80BB9B0(u8 taskId)
void AnimTask_SetAllNonAttackersInvisiblity(u8 taskId)
{
u16 battler;
@@ -837,19 +837,19 @@ void AnimTask_GetBattleTerrain(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80BBE10(u8 taskId)
void AnimTask_AllocBackupPalBuffer(u8 taskId)
{
gMonSpritesGfxPtr->field_17C = AllocZeroed(0x2000);
DestroyAnimVisualTask(taskId);
}
void sub_80BBE3C(u8 taskId)
void AnimTask_FreeBackupPalBuffer(u8 taskId)
{
FREE_AND_SET_NULL(gMonSpritesGfxPtr->field_17C);
DestroyAnimVisualTask(taskId);
}
void sub_80BBE6C(u8 taskId)
void AnimTask_CopyPalUnfadedToBackup(u8 taskId)
{
u32 selectedPalettes;
s32 paletteIndex = 0;
@@ -867,7 +867,7 @@ void sub_80BBE6C(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80BBF08(u8 taskId)
void AnimTask_CopyPalUnfadedFromBackup(u8 taskId)
{
u32 selectedPalettes;
s32 paletteIndex = 0;
@@ -885,7 +885,7 @@ void sub_80BBF08(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80BBFA4(u8 taskId)
void AnimTask_CopyPalFadedToUnfaded(u8 taskId)
{
u32 selectedPalettes;
s32 paletteIndex = 0;
@@ -912,7 +912,7 @@ void AnimTask_IsContest(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80BC060(u8 taskId)
void AnimTask_SetAnimAttackerAndTargetForEffectTgt(u8 taskId)
{
gBattleAnimAttacker = gBattlerTarget;
gBattleAnimTarget = gEffectBattler;
@@ -928,20 +928,20 @@ void AnimTask_IsTargetSameSide(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80BC0DC(u8 taskId)
void AnimTask_SetAnimTargetToBattlerTarget(u8 taskId)
{
gBattleAnimTarget = gBattlerTarget;
DestroyAnimVisualTask(taskId);
}
void sub_80BC0FC(u8 taskId)
void AnimTask_SetAnimAttackerAndTargetForEffectAtk(u8 taskId)
{
gBattleAnimAttacker = gBattlerAttacker;
gBattleAnimTarget = gEffectBattler;
DestroyAnimVisualTask(taskId);
}
void sub_80BC12C(u8 taskId)
void AnimTask_SetAttackerInvisibleWaitForSignal(u8 taskId)
{
if (IsContest())
{
+12 -12
View File
@@ -645,7 +645,7 @@ static void sub_80E835C(void)
}
break;
case 2:
BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDAE2);
BattleStringExpandPlaceholdersToDisplayedString(gText_ForPetesSake);
BattlePutTextOnWindow(gDisplayedStringBattle, 24);
++gBattleStruct->field_94;
break;
@@ -664,7 +664,7 @@ static void sub_80E835C(void)
case 4:
if (!gPaletteFade.active)
{
BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDB92);
BattleStringExpandPlaceholdersToDisplayedString(gText_TheTrainerThat);
BattlePutTextOnWindow(gDisplayedStringBattle, 24);
++gBattleStruct->field_94;
}
@@ -684,7 +684,7 @@ static void sub_80E835C(void)
case 6:
if (!gPaletteFade.active)
{
BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDBEF);
BattleStringExpandPlaceholdersToDisplayedString(gText_TryBattling);
BattlePutTextOnWindow(gDisplayedStringBattle, 24);
++gBattleStruct->field_94;
}
@@ -714,27 +714,27 @@ static void sub_80E835C(void)
void sub_80E8570(void)
{
sub_80E85D4(gUnknown_83FDC58, 1);
sub_80E85D4(gText_InflictingDamageIsKey, 1);
}
static void sub_80E8584(void)
{
sub_80E85D4(gUnknown_83FDC95, 64);
sub_80E85D4(gText_LoweringStats, 64);
}
void sub_80E8598(void)
{
sub_80E85D4(gUnknown_83FDD23, 1);
sub_80E85D4(gText_OakNoRunningFromATrainer, 1);
}
static void sub_80E85AC(void)
{
sub_80E85D4(gUnknown_83FDD64, 64);
sub_80E85D4(gText_WinEarnsPrizeMoney, 64);
}
void sub_80E85C0(void)
{
sub_80E85D4(gUnknown_83FDDEB, 64);
sub_80E85D4(gText_HowDissapointing, 64);
}
static void sub_80E85D4(const u8 *text, u8 a2)
@@ -835,7 +835,7 @@ static void sub_80E8704(void)
}
break;
case 3:
BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FDCD2);
BattleStringExpandPlaceholdersToDisplayedString(gText_KeepAnEyeOnHP);
BattlePutTextOnWindow(gDisplayedStringBattle, 24);
++gBattleStruct->field_94;
break;
@@ -1809,15 +1809,15 @@ static void OakOldManHandleChooseAction(void)
s32 i;
gBattlerControllerFuncs[gActiveBattler] = sub_80EA690;
BattlePutTextOnWindow(gUnknown_83FDA4C, 0);
BattlePutTextOnWindow(gUnknown_83FE725, 2);
BattlePutTextOnWindow(gText_EmptyString3, 0);
BattlePutTextOnWindow(gText_BattleMenu, 2);
for (i = 0; i < MAX_MON_MOVES; ++i)
ActionSelectionDestroyCursorAt((u8)i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
if (gBattleTypeFlags & BATTLE_TYPE_FIRST_BATTLE)
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo);
else
BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FE6FA);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillOldManDo);
BattlePutTextOnWindow(gDisplayedStringBattle, 1);
}
+2 -2
View File
@@ -2406,8 +2406,8 @@ static void PlayerHandleChooseAction(void)
s32 i;
gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattlePutTextOnWindow(gUnknown_83FDA4C, 0);
BattlePutTextOnWindow(gUnknown_83FE725, 2);
BattlePutTextOnWindow(gText_EmptyString3, 0);
BattlePutTextOnWindow(gText_BattleMenu, 2);
for (i = 0; i < 4; ++i)
ActionSelectionDestroyCursorAt(i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+2 -2
View File
@@ -1928,8 +1928,8 @@ static void PokedudeHandleChooseAction(void)
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
{
gBattlerControllerFuncs[gActiveBattler] = sub_8158B20;
BattlePutTextOnWindow(gUnknown_83FDA4C, 0);
BattlePutTextOnWindow(gUnknown_83FE725, 2);
BattlePutTextOnWindow(gText_EmptyString3, 0);
BattlePutTextOnWindow(gText_BattleMenu, 2);
for (i = 0; i < MAX_MON_MOVES; ++i)
ActionSelectionDestroyCursorAt((u8)i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
+2 -2
View File
@@ -438,12 +438,12 @@ static void SafariHandleChooseAction(void)
s32 i;
gBattlerControllerFuncs[gActiveBattler] = HandleChooseActionAfterDma3;
BattlePutTextOnWindow(gUnknown_83FDA4C, 0);
BattlePutTextOnWindow(gText_EmptyString3, 0);
BattlePutTextOnWindow(gUnknown_83FE747, 2);
for (i = 0; i < 4; ++i)
ActionSelectionDestroyCursorAt(i);
ActionSelectionCreateCursorAt(gActionSelectionCursor[gActiveBattler], 0);
BattleStringExpandPlaceholdersToDisplayedString(gUnknown_83FE6E6);
BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPlayerThrow);
BattlePutTextOnWindow(gDisplayedStringBattle, 1);
}
+714 -714
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -1,3 +1,4 @@
#include <limits.h>
#include "global.h"
#include "bg.h"
#include "dma3.h"
@@ -1136,20 +1137,19 @@ void CopyTileMapEntry(const u16 *src, u16 *dest, s32 palette1, s32 tileOffset, s
{
u16 var;
if (palette1 == 16)
goto CASE_16;
switch (palette1)
{
case 0 ... 16:
case 0 ... 15:
var = ((*src + tileOffset) & 0xFFF) + ((palette1 + palette2) << 12);
break;
CASE_16:
case 16:
var = *dest;
var &= 0xFC00;
var += palette2 << 12;
var |= (*src + tileOffset) & 0x3FF;
break;
default:
case 17 ... INT_MAX:
var = *src + tileOffset + (palette2 << 12);
break;
}
+1 -1
View File
@@ -374,7 +374,7 @@ s16 GetPlayerSpeed(void)
return exp[gPlayerAvatar.bikeFrameCounter];
else if (gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_ACRO_BIKE)
return 3;
else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_WATERING))
else if (gPlayerAvatar.flags & (PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_DASH))
return 2;
else
return 1;
+43 -43
View File
@@ -3,90 +3,90 @@
#include "gpu_regs.h"
#include "trig.h"
static void sub_80B3FAC(struct Sprite *sprite);
static void sub_80B407C(struct Sprite *sprite);
static void AnimMegahornHorn(struct Sprite *sprite);
static void AnimLeechLifeNeedle(struct Sprite *sprite);
static void AnimTranslateWebThread(struct Sprite *sprite);
static void sub_80B41F8(struct Sprite *sprite);
static void sub_80B42C0(struct Sprite *sprite);
static void AnimStringWrap(struct Sprite *sprite);
static void AnimSpiderWeb(struct Sprite *sprite);
static void AnimTranslateStinger(struct Sprite *sprite);
static void AnimMissileArc(struct Sprite *sprite);
static void sub_80B45D8(struct Sprite *sprite);
static void AnimTailGlowOrb(struct Sprite *sprite);
static void sub_80B41C0(struct Sprite *sprite);
static void sub_80B4274(struct Sprite *sprite);
static void sub_80B42E8(struct Sprite *sprite);
static void sub_80B4344(struct Sprite *sprite);
static void AnimMissileArcStep(struct Sprite *sprite);
static const union AffineAnimCmd gUnknown_83E71E8[] =
static const union AffineAnimCmd sAffineAnim_MegahornHorn_0[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 30, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E71F8[] =
static const union AffineAnimCmd sAffineAnim_MegahornHorn_1[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7208[] =
static const union AffineAnimCmd sAffineAnim_MegahornHorn_2[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E7218[] =
static const union AffineAnimCmd *const sAffineAnims_MegahornHorn[] =
{
gUnknown_83E71E8,
gUnknown_83E71F8,
gUnknown_83E7208,
sAffineAnim_MegahornHorn_0,
sAffineAnim_MegahornHorn_1,
sAffineAnim_MegahornHorn_2,
};
const struct SpriteTemplate gUnknown_83E7224 =
const struct SpriteTemplate gMegahornHornSpriteTemplate =
{
.tileTag = ANIM_TAG_HORN_HIT_2,
.paletteTag = ANIM_TAG_HORN_HIT_2,
.oam = &gOamData_AffineDouble_ObjNormal_32x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7218,
.callback = sub_80B3FAC,
.affineAnims = sAffineAnims_MegahornHorn,
.callback = AnimMegahornHorn,
};
static const union AffineAnimCmd gUnknown_83E723C[] =
static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_0[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E724C[] =
static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_1[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E725C[] =
static const union AffineAnimCmd sAffineAnim_LeechLifeNeedle_2[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E726C[] =
static const union AffineAnimCmd *const sAffineAnims_LeechLifeNeedle[] =
{
gUnknown_83E723C,
gUnknown_83E724C,
gUnknown_83E725C,
sAffineAnim_LeechLifeNeedle_0,
sAffineAnim_LeechLifeNeedle_1,
sAffineAnim_LeechLifeNeedle_2,
};
const struct SpriteTemplate gUnknown_83E7278 =
const struct SpriteTemplate gLeechLifeNeedleSpriteTemplate =
{
.tileTag = ANIM_TAG_NEEDLE,
.paletteTag = ANIM_TAG_NEEDLE,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E726C,
.callback = sub_80B407C,
.affineAnims = sAffineAnims_LeechLifeNeedle,
.callback = AnimLeechLifeNeedle,
};
const struct SpriteTemplate gWebThreadSpriteTemplate =
@@ -100,7 +100,7 @@ const struct SpriteTemplate gWebThreadSpriteTemplate =
.callback = AnimTranslateWebThread,
};
const struct SpriteTemplate gUnknown_83E72A8 =
const struct SpriteTemplate gStringWrapSpriteTemplate =
{
.tileTag = ANIM_TAG_STRING,
.paletteTag = ANIM_TAG_STRING,
@@ -108,19 +108,19 @@ const struct SpriteTemplate gUnknown_83E72A8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B41F8,
.callback = AnimStringWrap,
};
static const union AffineAnimCmd gUnknown_83E72C0[] =
static const union AffineAnimCmd sAffineAnim_SpiderWeb[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1),
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E72D8[] =
static const union AffineAnimCmd *const sAffineAnims_SpiderWeb[] =
{
gUnknown_83E72C0,
sAffineAnim_SpiderWeb,
};
const struct SpriteTemplate gSpiderWebSpriteTemplate =
@@ -130,8 +130,8 @@ const struct SpriteTemplate gSpiderWebSpriteTemplate =
.oam = &gOamData_AffineDouble_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E72D8,
.callback = sub_80B42C0,
.affineAnims = sAffineAnims_SpiderWeb,
.callback = AnimSpiderWeb,
};
const struct SpriteTemplate gLinearStingerSpriteTemplate =
@@ -167,7 +167,7 @@ const struct SpriteTemplate gIcicleSpearSpriteTemplate =
.callback = AnimMissileArc,
};
static const union AffineAnimCmd gUnknown_83E733C[] =
static const union AffineAnimCmd sAffineAnim_TailGlowOrb[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 18),
@@ -178,23 +178,23 @@ static const union AffineAnimCmd gUnknown_83E733C[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E7374[] =
static const union AffineAnimCmd *const sAffineAnims_TailGlowOrb[] =
{
gUnknown_83E733C,
sAffineAnim_TailGlowOrb,
};
const struct SpriteTemplate gUnknown_83E7378 =
const struct SpriteTemplate gTailGlowOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7374,
.callback = sub_80B45D8,
.affineAnims = sAffineAnims_TailGlowOrb,
.callback = AnimTailGlowOrb,
};
static void sub_80B3FAC(struct Sprite *sprite)
static void AnimMegahornHorn(struct Sprite *sprite)
{
if (IsContest())
{
@@ -219,7 +219,7 @@ static void sub_80B3FAC(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80B407C(struct Sprite *sprite)
static void AnimLeechLifeNeedle(struct Sprite *sprite)
{
if (IsContest())
{
@@ -280,7 +280,7 @@ static void sub_80B41C0(struct Sprite *sprite)
sprite->data[6] = (sprite->data[6] + 13) & 0xFF;
}
static void sub_80B41F8(struct Sprite *sprite)
static void AnimStringWrap(struct Sprite *sprite)
{
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -306,7 +306,7 @@ static void sub_80B4274(struct Sprite *sprite)
}
}
static void sub_80B42C0(struct Sprite *sprite)
static void AnimSpiderWeb(struct Sprite *sprite)
{
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(16, 0));
@@ -445,7 +445,7 @@ static void AnimMissileArcStep(struct Sprite *sprite)
}
}
static void sub_80B45D8(struct Sprite *sprite)
static void AnimTailGlowOrb(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
{
+2
View File
@@ -9,6 +9,8 @@
#include "graphics.h"
#include "strings.h"
#include "trainer_pokemon_sprites.h"
#include "menu.h"
#include "field_weather.h"
#include "constants/species.h"
#include "constants/maps.h"
#include "constants/field_weather.h"
+58 -58
View File
@@ -7,11 +7,11 @@
#include "util.h"
static void sub_80B7ACC(struct Sprite *sprite);
static void sub_80B7BD4(struct Sprite *sprite);
static void sub_80B7C88(struct Sprite *sprite);
static void sub_80B86B0(struct Sprite *sprite);
static void sub_80B7954(u8 taskId);
static void sub_80B7A14(u8 taskId);
static void AnimBite(struct Sprite *sprite);
static void AnimTearDrop(struct Sprite *sprite);
static void AnimClawSlash(struct Sprite *sprite);
static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId);
static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId);
static void sub_80B7B48(struct Sprite *sprite);
static void sub_80B7C10(struct Sprite *sprite);
static void sub_80B7C50(struct Sprite *sprite);
@@ -33,120 +33,120 @@ const struct SpriteTemplate gUnknown_83E7878 =
.callback = sub_80B7ACC,
};
static const union AffineAnimCmd gUnknown_83E7890[] =
static const union AffineAnimCmd sAffineAnim_Bite_0[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E78A0[] =
static const union AffineAnimCmd sAffineAnim_Bite_1[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 32, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E78B0[] =
static const union AffineAnimCmd sAffineAnim_Bite_2[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 64, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E78C0[] =
static const union AffineAnimCmd sAffineAnim_Bite_3[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E78D0[] =
static const union AffineAnimCmd sAffineAnim_Bite_4[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -128, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E78E0[] =
static const union AffineAnimCmd sAffineAnim_Bite_5[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E78F0[] =
static const union AffineAnimCmd sAffineAnim_Bite_6[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -64, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7900[] =
static const union AffineAnimCmd sAffineAnim_Bite_7[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -32, 1),
AFFINEANIMCMD_END,
};
const union AffineAnimCmd *const gUnknown_83E7910[] =
const union AffineAnimCmd *const gAffineAnims_Bite[] =
{
gUnknown_83E7890,
gUnknown_83E78A0,
gUnknown_83E78B0,
gUnknown_83E78C0,
gUnknown_83E78D0,
gUnknown_83E78E0,
gUnknown_83E78F0,
gUnknown_83E7900,
sAffineAnim_Bite_0,
sAffineAnim_Bite_1,
sAffineAnim_Bite_2,
sAffineAnim_Bite_3,
sAffineAnim_Bite_4,
sAffineAnim_Bite_5,
sAffineAnim_Bite_6,
sAffineAnim_Bite_7,
};
const struct SpriteTemplate gUnknown_83E7930 =
const struct SpriteTemplate gSharpTeethSpriteTemplate =
{
.tileTag = ANIM_TAG_SHARP_TEETH,
.paletteTag = ANIM_TAG_SHARP_TEETH,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7910,
.callback = sub_80B7BD4,
.affineAnims = gAffineAnims_Bite,
.callback = AnimBite,
};
const struct SpriteTemplate gUnknown_83E7948 =
const struct SpriteTemplate gClampJawSpriteTemplate =
{
.tileTag = ANIM_TAG_CLAMP,
.paletteTag = ANIM_TAG_CLAMP,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7910,
.callback = sub_80B7BD4,
.affineAnims = gAffineAnims_Bite,
.callback = AnimBite,
};
static const union AffineAnimCmd gUnknown_83E7960[] =
static const union AffineAnimCmd sAffineAnim_TearDrop_0[] =
{
AFFINEANIMCMD_FRAME(0xC0, 0xC0, 80, 0),
AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7978[] =
static const union AffineAnimCmd sAffineAnim_TearDrop_1[] =
{
AFFINEANIMCMD_FRAME(0xC0, 0xC0, -80, 0),
AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E7990[] =
static const union AffineAnimCmd *const sAffineAnims_TearDrop[] =
{
gUnknown_83E7960,
gUnknown_83E7978,
sAffineAnim_TearDrop_0,
sAffineAnim_TearDrop_1,
};
const struct SpriteTemplate gUnknown_83E7998 =
const struct SpriteTemplate gTearDropSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_BUBBLES,
.paletteTag = ANIM_TAG_SMALL_BUBBLES,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7990,
.callback = sub_80B7C88,
.affineAnims = sAffineAnims_TearDrop,
.callback = AnimTearDrop,
};
static const union AnimCmd gUnknown_83E79B0[] =
static const union AnimCmd sAnim_ClawSlash_0[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
@@ -156,7 +156,7 @@ static const union AnimCmd gUnknown_83E79B0[] =
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E79C8[] =
static const union AnimCmd sAnim_ClawSlash_1[] =
{
ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
ANIMCMD_FRAME(16, 4, .hFlip = TRUE),
@@ -166,24 +166,24 @@ static const union AnimCmd gUnknown_83E79C8[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E79E0[] =
static const union AnimCmd *const sAnims_ClawSlash[] =
{
gUnknown_83E79B0,
gUnknown_83E79C8,
sAnim_ClawSlash_0,
sAnim_ClawSlash_1,
};
const struct SpriteTemplate gUnknown_83E79E8 =
const struct SpriteTemplate gClawSlashSpriteTemplate =
{
.tileTag = ANIM_TAG_CLAW_SLASH,
.paletteTag = ANIM_TAG_CLAW_SLASH,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E79E0,
.anims = sAnims_ClawSlash,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B86B0,
.callback = AnimClawSlash,
};
void sub_80B78E0(u8 taskId)
void AnimTask_AttackerFadeToInvisible(u8 taskId)
{
s32 battler;
@@ -195,10 +195,10 @@ void sub_80B78E0(u8 taskId)
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG1);
else
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT2_ALL | BLDCNT_EFFECT_BLEND | BLDCNT_TGT1_BG2);
gTasks[taskId].func = sub_80B7954;
gTasks[taskId].func = AnimTask_AttackerFadeToInvisible_Step;
}
static void sub_80B7954(u8 taskId)
static void AnimTask_AttackerFadeToInvisible_Step(u8 taskId)
{
u8 blendA = gTasks[taskId].data[1] >> 8;
u8 blendB = gTasks[taskId].data[1];
@@ -222,15 +222,15 @@ static void sub_80B7954(u8 taskId)
}
}
void sub_80B79DC(u8 taskId)
void AnimTask_AttackerFadeFromInvisible(u8 taskId)
{
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = BLDALPHA_BLEND(0, 16);
gTasks[taskId].func = sub_80B7A14;
gTasks[taskId].func = AnimTask_AttackerFadeFromInvisible_Step;
SetGpuReg(REG_OFFSET_BLDALPHA, gTasks[taskId].data[1]);
}
static void sub_80B7A14(u8 taskId)
static void AnimTask_AttackerFadeFromInvisible_Step(u8 taskId)
{
u8 blendA = gTasks[taskId].data[1] >> 8;
u8 blendB = gTasks[taskId].data[1];
@@ -255,7 +255,7 @@ static void sub_80B7A14(u8 taskId)
}
}
void sub_80B7A80(u8 taskId)
void AnimTask_InitAttackerFadeFromInvisible(u8 taskId)
{
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(0, 16));
if (GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) == 1)
@@ -306,7 +306,7 @@ static void sub_80B7B48(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B7BD4(struct Sprite *sprite)
static void AnimBite(struct Sprite *sprite)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
@@ -337,7 +337,7 @@ static void sub_80B7C50(struct Sprite *sprite)
DestroySpriteAndMatrix(sprite);
}
static void sub_80B7C88(struct Sprite *sprite)
static void AnimTearDrop(struct Sprite *sprite)
{
u8 battler;
s8 xOffset;
@@ -385,7 +385,7 @@ static void sub_80B7D88(struct Sprite *sprite)
DestroySpriteAndMatrix(sprite);
}
void sub_80B7DA4(u8 taskId)
void AnimTask_MoveAttackerMementoShadow(u8 taskId)
{
struct ScanlineEffectParams scanlineParams;
struct BattleAnimBgData animBg;
@@ -502,7 +502,7 @@ static void sub_80B7F58(u8 taskId)
}
}
void sub_80B8070(u8 taskId)
void AnimTask_MoveTargetMementoShadow(u8 taskId)
{
struct BattleAnimBgData animBg;
struct ScanlineEffectParams scanlineParams;
@@ -724,7 +724,7 @@ static void sub_80B856C(u8 priority)
}
}
void sub_80B85B8(u8 taskId)
void AnimTask_InitMementoShadow(u8 taskId)
{
bool8 toBG2 = GetBattlerSpriteBGPriorityRank(gBattleAnimAttacker) ^ 1 ? TRUE : FALSE;
@@ -748,7 +748,7 @@ void sub_80B8664(u8 taskId)
DestroyAnimVisualTask(taskId);
}
static void sub_80B86B0(struct Sprite *sprite)
static void AnimClawSlash(struct Sprite *sprite)
{
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
@@ -910,7 +910,7 @@ void AnimTask_SetGreyscaleOrOriginalPal(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80B8B38(u8 taskId)
void GetIsDoomDesireHitTurn(u8 taskId)
{
if (gAnimMoveTurn < 2)
gBattleAnimArgs[7] = 0;
+106 -414
View File
@@ -117,457 +117,149 @@ static void Unused_LZDecompressWramIndirect(const void **src, void *dest)
LZ77UnCompWram(*src, dest);
}
#ifdef NONMATCHING
static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3)
static void sub_800EDDC(s32 object_size, s32 object_count, u8 *src_tiles, u8 *dest_tiles)
{
u8 *v1, *v2;
int i, j, k, l;
/*
This function appears to emulate behaviour found in the GB(C) versions regarding how the Pokemon images
are stitched together to be displayed on the battle screen.
Given "compacted" tiles, an object count and a bounding box/object size, place the tiles in such a way
that the result will have each object centered in a 8x8 tile canvas.
*/
s32 i, j, k, l;
u8 *src = src_tiles, *dest = dest_tiles;
u8 bottom_off;
if (a0 & 1)
if (object_size & 1)
{
u8 v40 = ((a0 >> 1) + 4);
for (i = 0; i < a1; ++i)
// Object size is odd
bottom_off = (object_size >> 1) + 4;
for (l = 0; l < object_count; l++)
{
// this nested loop failed to match
for (j = 0; j < 8 - a0; ++j)
// Clear all unused rows of tiles plus the half-tile required due to centering
for (j = 0; j < 8-object_size; j++)
{
for (k = 0; k < 8; ++k)
for (k = 0; k < 8; k++)
{
v1 = a3 + 0x100 * v40 + 0x100 * (j >> 1) + 0x20 * k;
v2 = a3 + 0x20 * k + 0x100 * (j >> 1);
for (l = 0; l < 0x10; ++l)
for (i = 0; i < 16; i++)
{
if (!(j & 1))
if (j % 2 == 0)
{
v2[0] = j & 1;
v1[16] = 0;
// a3[0x100 * (j / 2) + 0x20 * k + l] = 0;
// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0;
// Clear top half of top tile and bottom half of bottom tile when on even j
((dest+i) + (k << 5))[((j >> 1) << 8)] = 0;
((bottom_off << 8) + (dest+i) + (k << 5) + 16)[((j >> 1) << 8)] = 0;
}
else
{
v2[16] = 0;
v1[0x100] = 0;
// a3[0x100 * (j / 2) + 0x20 * k + l + 0x10] = 0;
// a3[0x100 * v40 + 0x100 * (j / 2) + 0x20 * k + l + 0x100] = 0;
// Clear bottom half of top tile and top half of tile following bottom tile when on odd j
((dest+i) + (k << 5) + 16)[((j >> 1) << 8)] = 0;
((bottom_off << 8) + (dest+i) + (k << 5) + 256)[((j >> 1) << 8)] = 0;
}
++v1;
++v2; // this should be generated if you write stuff inside operator [] instead of declaring v1/v2
}
}
}
for (j = 0; j < 2; ++j)
// Clear the columns to the left and right that wont be used completely
// Unlike the previous loops, this will clear the later used space as well
for (j = 0; j < 2; j++)
{
for (k = 0; k < 8; ++k)
for (i = 0; i < 8; i++)
{
for (l = 0; l < 0x20; ++l)
for (k = 0; k < 32; k++)
{
a3[0x100 * k + 0x20 * j + l] = 0;
a3[0x100 * k + 0xC0 + 0x20 * j + l] = 0;
// Left side
((dest+k) + (i << 8))[(j << 5)] = 0;
// Right side
((dest+k) + (i << 8))[(j << 5)+192] = 0;
}
}
}
if (a0 == 5)
a3 += 0x120;
for (j = 0; j < a0; ++j)
// Skip the top row and first tile on the second row for objects of size 5
if (object_size == 5) dest += 0x120;
// Copy tile data
for (j = 0; j < object_size; j++)
{
for (k = 0; k < a0; ++k)
for (k = 0; k < object_size; k++)
{
for (l = 0; l < 4; ++l)
for (i = 0; i < 4; i++)
{
a3[0x12 + 4 * l] = a2[0 + 4 * l];
a3[0x13 + 4 * l] = a2[1 + 4 * l];
a3[0x12 + 0x1E + 4 * l] = a2[2 + 4 * l];
a3[0x12 + 0x1F + 4 * l] = a2[3 + 4 * l];
a3[0x102 + 4 * l] = a2[0x10 + 4 * l];
a3[0x103 + 4 * l] = a2[0x11 + 4 * l];
a3[0x120 + 4 * l] = a2[0x12 + 4 * l];
a3[0x121 + 4 * l] = a2[0x13 + 4 * l];
// Offset the tile by +4px in both x and y directions
(dest + (i << 2))[18] = (src + (i << 2))[0];
(dest + (i << 2))[19] = (src + (i << 2))[1];
(dest + (i << 2))[48] = (src + (i << 2))[2];
(dest + (i << 2))[49] = (src + (i << 2))[3];
(dest + (i << 2))[258] = (src + (i << 2))[16];
(dest + (i << 2))[259] = (src + (i << 2))[17];
(dest + (i << 2))[288] = (src + (i << 2))[18];
(dest + (i << 2))[289] = (src + (i << 2))[19];
}
a2 += 0x20;
a3 += 0x20;
src += 32;
dest += 32;
}
if (a0 == 7)
a3 += 0x20;
else if (a0 == 5)
a3 += 0x60;
// At the end of a row, skip enough tiles to get to the beginning of the next row
if (object_size == 7) dest += 0x20;
else if (object_size == 5) dest += 0x60;
}
if (a0 == 7)
a3 += 0x100;
else if (a0 == 5)
a3 += 0x1E0;
// Skip remaining unused space to go to the beginning of the next object
if (object_size == 7) dest += 0x100;
else if (object_size == 5) dest += 0x1e0;
}
}
else
{
for (i = 0; i < a1; ++i)
// Object size is even
for (i = 0; i < object_count; i++)
{
if (a0 == 6)
for (j = 0; j < 0x100; ++j)
*a3++ = 0;
for (j = 0; j < a0; ++j)
// For objects of size 6, the first and last row and column will be cleared
// While the remaining space will be filled with actual data
if (object_size == 6)
{
if (a0 == 6)
for (k = 0; k < 0x20; ++k)
*a3++ = 0;
for (k = 0; k < 0x20 * a0; ++k)
*a3++ = *a2++;
if (a0 == 6)
for (k = 0; k < 0x20; ++k)
*a3++ = 0;
for (k = 0; k < 256; k++) {
*dest = 0;
dest++;
}
}
for (j = 0; j < object_size; j++)
{
if (object_size == 6)
{
for (k = 0; k < 32; k++) {
*dest = 0;
dest++;
}
}
// Copy tile data
for (k = 0; k < 32 * object_size; k++) {
*dest = *src;
src++;
dest++;
}
if (object_size == 6)
{
for (k = 0; k < 32; k++) {
*dest = 0;
dest++;
}
}
}
if (object_size == 6)
{
for (k = 0; k < 256; k++) {
*dest = 0;
dest++;
}
}
if (a0 == 6)
for (j = 0; j < 0x100; ++j)
*a3++ = 0;
}
}
}
#else
NAKED
static void sub_800EDDC(s32 a0, s32 a1, const u8 *a2, u8 *a3)
{
asm_unified("\n\
push {r4-r7,lr}\n\
mov r7, r10\n\
mov r6, r9\n\
mov r5, r8\n\
push {r5-r7}\n\
sub sp, 0x24\n\
mov r9, r0\n\
str r1, [sp]\n\
str r2, [sp, 0x4]\n\
adds r5, r3, 0\n\
movs r0, 0x1\n\
mov r1, r9\n\
ands r0, r1\n\
cmp r0, 0\n\
bne _0800EDFC\n\
b _0800EF94\n\
_0800EDFC:\n\
asrs r0, r1, 1\n\
adds r0, 0x4\n\
lsls r0, 24\n\
lsrs r0, 24\n\
str r0, [sp, 0x8]\n\
movs r0, 0\n\
ldr r2, [sp]\n\
cmp r0, r2\n\
blt _0800EE10\n\
b _0800F024\n\
_0800EE10:\n\
movs r4, 0x8\n\
subs r1, r4, r1\n\
str r1, [sp, 0x10]\n\
_0800EE16:\n\
movs r7, 0\n\
adds r0, 0x1\n\
str r0, [sp, 0x14]\n\
ldr r0, [sp, 0x10]\n\
cmp r7, r0\n\
bge _0800EE92\n\
ldr r1, [sp, 0x8]\n\
lsls r1, 8\n\
str r1, [sp, 0x18]\n\
movs r2, 0\n\
mov r10, r2\n\
mov r0, r9\n\
movs r4, 0x8\n\
subs r0, r4, r0\n\
str r0, [sp, 0xC]\n\
_0800EE34:\n\
movs r3, 0\n\
asrs r0, r7, 1\n\
adds r1, r7, 0\n\
movs r2, 0x1\n\
ands r1, r2\n\
str r1, [sp, 0x20]\n\
lsls r0, 8\n\
mov r8, r0\n\
mov r12, r5\n\
_0800EE46:\n\
lsls r1, r3, 5\n\
ldr r4, [sp, 0x18]\n\
adds r0, r5, r4\n\
adds r0, r1\n\
mov r1, r8\n\
adds r2, r0, r1\n\
mov r1, r12\n\
add r1, r8\n\
movs r6, 0xF\n\
_0800EE58:\n\
ldr r4, [sp, 0x20]\n\
cmp r4, 0\n\
bne _0800EE68\n\
strb r4, [r1]\n\
add r4, sp, 0x20\n\
ldrb r4, [r4]\n\
strb r4, [r2, 0x10]\n\
b _0800EE76\n\
_0800EE68:\n\
mov r0, r10\n\
strb r0, [r1, 0x10]\n\
movs r4, 0x80\n\
lsls r4, 1\n\
adds r4, r2, r4\n\
str r4, [sp, 0x1C]\n\
strb r0, [r4]\n\
_0800EE76:\n\
adds r2, 0x1\n\
adds r1, 0x1\n\
subs r6, 0x1\n\
cmp r6, 0\n\
bge _0800EE58\n\
movs r0, 0x20\n\
add r12, r0\n\
adds r3, 0x1\n\
cmp r3, 0x7\n\
ble _0800EE46\n\
adds r7, 0x1\n\
ldr r1, [sp, 0xC]\n\
cmp r7, r1\n\
blt _0800EE34\n\
_0800EE92:\n\
movs r7, 0\n\
movs r2, 0\n\
_0800EE96:\n\
movs r6, 0\n\
adds r4, r7, 0x1\n\
mov r8, r4\n\
lsls r4, r7, 5\n\
_0800EE9E:\n\
adds r0, r6, 0x1\n\
mov r10, r0\n\
lsls r1, r6, 8\n\
adds r0, r1, 0\n\
adds r0, 0xC0\n\
adds r0, r5, r0\n\
adds r0, r4\n\
adds r1, r5, r1\n\
adds r1, r4\n\
movs r3, 0x1F\n\
_0800EEB2:\n\
strb r2, [r1]\n\
strb r2, [r0]\n\
adds r0, 0x1\n\
adds r1, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0800EEB2\n\
mov r6, r10\n\
cmp r6, 0x7\n\
ble _0800EE9E\n\
mov r7, r8\n\
cmp r7, 0x1\n\
ble _0800EE96\n\
mov r1, r9\n\
cmp r1, 0x5\n\
bne _0800EED8\n\
movs r2, 0x90\n\
lsls r2, 1\n\
adds r5, r2\n\
_0800EED8:\n\
movs r7, 0\n\
cmp r7, r9\n\
bge _0800EF6E\n\
_0800EEDE:\n\
movs r3, 0\n\
adds r7, 0x1\n\
mov r8, r7\n\
cmp r3, r9\n\
bge _0800EF4E\n\
_0800EEE8:\n\
adds r3, 0x1\n\
mov r10, r3\n\
ldr r4, [sp, 0x4]\n\
adds r4, 0x20\n\
adds r7, r5, 0\n\
adds r7, 0x20\n\
movs r0, 0x12\n\
adds r0, r5\n\
mov r12, r0\n\
ldr r2, [sp, 0x4]\n\
adds r3, r5, 0\n\
movs r6, 0x3\n\
_0800EF00:\n\
ldrb r0, [r2]\n\
mov r1, r12\n\
strb r0, [r1]\n\
ldrb r0, [r2, 0x1]\n\
strb r0, [r1, 0x1]\n\
ldrb r0, [r2, 0x2]\n\
strb r0, [r1, 0x1E]\n\
ldrb r0, [r2, 0x3]\n\
strb r0, [r1, 0x1F]\n\
movs r0, 0x81\n\
lsls r0, 1\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x10]\n\
strb r0, [r1]\n\
ldr r0, _0800EF58 @ =0x00000103\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x11]\n\
strb r0, [r1]\n\
movs r0, 0x90\n\
lsls r0, 1\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x12]\n\
strb r0, [r1]\n\
ldr r0, _0800EF5C @ =0x00000121\n\
adds r1, r3, r0\n\
ldrb r0, [r2, 0x13]\n\
strb r0, [r1]\n\
movs r1, 0x4\n\
add r12, r1\n\
adds r2, 0x4\n\
adds r3, 0x4\n\
subs r6, 0x1\n\
cmp r6, 0\n\
bge _0800EF00\n\
str r4, [sp, 0x4]\n\
adds r5, r7, 0\n\
mov r3, r10\n\
cmp r3, r9\n\
blt _0800EEE8\n\
_0800EF4E:\n\
mov r2, r9\n\
cmp r2, 0x7\n\
bne _0800EF60\n\
adds r5, 0x20\n\
b _0800EF68\n\
.align 2, 0\n\
_0800EF58: .4byte 0x00000103\n\
_0800EF5C: .4byte 0x00000121\n\
_0800EF60:\n\
mov r4, r9\n\
cmp r4, 0x5\n\
bne _0800EF68\n\
adds r5, 0x60\n\
_0800EF68:\n\
mov r7, r8\n\
cmp r7, r9\n\
blt _0800EEDE\n\
_0800EF6E:\n\
mov r0, r9\n\
cmp r0, 0x7\n\
bne _0800EF7C\n\
movs r1, 0x80\n\
lsls r1, 1\n\
adds r5, r1\n\
b _0800EF88\n\
_0800EF7C:\n\
mov r2, r9\n\
cmp r2, 0x5\n\
bne _0800EF88\n\
movs r4, 0xF0\n\
lsls r4, 1\n\
adds r5, r4\n\
_0800EF88:\n\
ldr r0, [sp, 0x14]\n\
ldr r1, [sp]\n\
cmp r0, r1\n\
bge _0800EF92\n\
b _0800EE16\n\
_0800EF92:\n\
b _0800F024\n\
_0800EF94:\n\
movs r6, 0\n\
ldr r2, [sp]\n\
cmp r6, r2\n\
bge _0800F024\n\
_0800EF9C:\n\
adds r6, 0x1\n\
mov r10, r6\n\
mov r4, r9\n\
cmp r4, 0x6\n\
bne _0800EFB4\n\
movs r0, 0\n\
movs r3, 0xFF\n\
_0800EFAA:\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0800EFAA\n\
_0800EFB4:\n\
movs r7, 0\n\
cmp r7, r9\n\
bge _0800F008\n\
_0800EFBA:\n\
adds r7, 0x1\n\
mov r8, r7\n\
mov r1, r9\n\
lsls r0, r1, 5\n\
cmp r1, 0x6\n\
bne _0800EFD4\n\
movs r1, 0\n\
movs r3, 0x1F\n\
_0800EFCA:\n\
strb r1, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0800EFCA\n\
_0800EFD4:\n\
adds r1, r0, 0\n\
cmp r1, 0\n\
ble _0800EFEE\n\
adds r3, r1, 0\n\
_0800EFDC:\n\
ldr r2, [sp, 0x4]\n\
ldrb r0, [r2]\n\
strb r0, [r5]\n\
adds r2, 0x1\n\
str r2, [sp, 0x4]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bne _0800EFDC\n\
_0800EFEE:\n\
mov r4, r9\n\
cmp r4, 0x6\n\
bne _0800F002\n\
movs r0, 0\n\
movs r3, 0x1F\n\
_0800EFF8:\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0800EFF8\n\
_0800F002:\n\
mov r7, r8\n\
cmp r7, r9\n\
blt _0800EFBA\n\
_0800F008:\n\
mov r0, r9\n\
cmp r0, 0x6\n\
bne _0800F01C\n\
movs r0, 0\n\
movs r3, 0xFF\n\
_0800F012:\n\
strb r0, [r5]\n\
adds r5, 0x1\n\
subs r3, 0x1\n\
cmp r3, 0\n\
bge _0800F012\n\
_0800F01C:\n\
mov r6, r10\n\
ldr r1, [sp]\n\
cmp r6, r1\n\
blt _0800EF9C\n\
_0800F024:\n\
add sp, 0x24\n\
pop {r3-r5}\n\
mov r8, r3\n\
mov r9, r4\n\
mov r10, r5\n\
pop {r4-r7}\n\
pop {r0}\n\
bx r0\n\
");
}
#endif
bool8 LoadCompressedSpriteSheetUsingHeap(const struct CompressedSpriteSheet* src)
{
+47 -47
View File
@@ -5,10 +5,10 @@
#include "trig.h"
static void sub_80B725C(struct Sprite *sprite);
static void sub_80B741C(struct Sprite *sprite);
static void sub_80B73AC(struct Sprite *sprite);
static void sub_80B7448(struct Sprite *sprite);
static void sub_80B77E4(struct Sprite *sprite);
static void AnimDragonFireToTarget(struct Sprite *sprite);
static void AnimDragonRageFirePlume(struct Sprite *sprite);
static void AnimDragonDanceOrb(struct Sprite *sprite);
static void AnimOverheatFlame(struct Sprite *sprite);
static void sub_80B74D8(struct Sprite *sprite);
static void sub_80B76B0(u8 taskId);
static void sub_80B776C(struct Task *task);
@@ -31,7 +31,7 @@ static const union AnimCmd *const gUnknown_83E7728[] =
gUnknown_83E7710,
};
const struct SpriteTemplate gUnknown_83E772C =
const struct SpriteTemplate gOutrageFlameSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
@@ -42,7 +42,7 @@ const struct SpriteTemplate gUnknown_83E772C =
.callback = sub_80B725C,
};
static const union AnimCmd gUnknown_83E7744[] =
static const union AnimCmd sAnim_DragonBreathFire_0[] =
{
ANIMCMD_FRAME(16, 3),
ANIMCMD_FRAME(32, 3),
@@ -50,7 +50,7 @@ static const union AnimCmd gUnknown_83E7744[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd gUnknown_83E7754[] =
static const union AnimCmd sAnim_DragonBreathFire_1[] =
{
ANIMCMD_FRAME(16, 3, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_FRAME(32, 3, .vFlip = TRUE, .hFlip = TRUE),
@@ -58,44 +58,44 @@ static const union AnimCmd gUnknown_83E7754[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E7764[] =
static const union AnimCmd *const sAnims_DragonBreathFire[] =
{
gUnknown_83E7744,
gUnknown_83E7754,
sAnim_DragonBreathFire_0,
sAnim_DragonBreathFire_1,
};
static const union AffineAnimCmd gUnknown_83E776C[] =
static const union AffineAnimCmd sAffineAnim_DragonBreathFire_0[] =
{
AFFINEANIMCMD_FRAME(0x50, 0x50, 127, 0),
AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7784[] =
static const union AffineAnimCmd sAffineAnim_DragonBreathFire_1[] =
{
AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0),
AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E779C[] =
static const union AffineAnimCmd *const sAffineAnims_DragonBreathFire[] =
{
gUnknown_83E776C,
gUnknown_83E7784,
sAffineAnim_DragonBreathFire_0,
sAffineAnim_DragonBreathFire_1,
};
const struct SpriteTemplate gUnknown_83E77A4 =
const struct SpriteTemplate gDragonBreathFireSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = gUnknown_83E7764,
.anims = sAnims_DragonBreathFire,
.images = NULL,
.affineAnims = gUnknown_83E779C,
.callback = sub_80B741C,
.affineAnims = sAffineAnims_DragonBreathFire,
.callback = AnimDragonFireToTarget,
};
const union AnimCmd gUnknown_83E77BC[] =
const union AnimCmd sAnim_DragonRageFirePlume[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(16, 5),
@@ -105,23 +105,23 @@ const union AnimCmd gUnknown_83E77BC[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E77D4[] =
static const union AnimCmd *const sAnims_DragonRageFirePlume[] =
{
gUnknown_83E77BC,
sAnim_DragonRageFirePlume,
};
const struct SpriteTemplate gUnknown_83E77D8 =
const struct SpriteTemplate gDragonRageFirePlumeSpriteTemplate =
{
.tileTag = ANIM_TAG_FIRE_PLUME,
.paletteTag = ANIM_TAG_FIRE_PLUME,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E77D4,
.anims = sAnims_DragonRageFirePlume,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B73AC,
.callback = AnimDragonRageFirePlume,
};
static const union AnimCmd gUnknown_83E77F0[] =
static const union AnimCmd sAnim_DragonRageFire[] =
{
ANIMCMD_FRAME(16, 3),
ANIMCMD_FRAME(32, 3),
@@ -129,42 +129,42 @@ static const union AnimCmd gUnknown_83E77F0[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E7800[] =
static const union AnimCmd *const sAnims_DragonRageFire[] =
{
gUnknown_83E77F0,
gUnknown_83E77F0,
sAnim_DragonRageFire,
sAnim_DragonRageFire,
};
static const union AffineAnimCmd gUnknown_83E7808[] =
static const union AffineAnimCmd sAffineAnim_DragonRageFire_0[] =
{
AFFINEANIMCMD_FRAME(0x64, 0x64, 127, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7818[] =
static const union AffineAnimCmd sAffineAnim_DragonRageFire_1[] =
{
AFFINEANIMCMD_FRAME(0x64, 0x64, 0, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E7828[] =
static const union AffineAnimCmd *const sAffineAnims_DragonRageFire[] =
{
gUnknown_83E7808,
gUnknown_83E7818,
sAffineAnim_DragonRageFire_0,
sAffineAnim_DragonRageFire_1,
};
const struct SpriteTemplate gUnknown_83E7830 =
const struct SpriteTemplate gDragonRageFireSpitSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = gUnknown_83E7800,
.anims = sAnims_DragonRageFire,
.images = NULL,
.affineAnims = gUnknown_83E7828,
.callback = sub_80B741C,
.affineAnims = sAffineAnims_DragonRageFire,
.callback = AnimDragonFireToTarget,
};
const struct SpriteTemplate gUnknown_83E7848 =
const struct SpriteTemplate gDragonDanceOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_HOLLOW_ORB,
.paletteTag = ANIM_TAG_HOLLOW_ORB,
@@ -172,10 +172,10 @@ const struct SpriteTemplate gUnknown_83E7848 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B7448,
.callback = AnimDragonDanceOrb,
};
const struct SpriteTemplate gUnknown_83E7860 =
const struct SpriteTemplate gOverheatFlameSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
@@ -183,7 +183,7 @@ const struct SpriteTemplate gUnknown_83E7860 =
.anims = gUnknown_83E7728,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B77E4,
.callback = AnimOverheatFlame,
};
static void sub_80B725C(struct Sprite *sprite)
@@ -235,7 +235,7 @@ static void sub_80B72F8(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
static void sub_80B73AC(struct Sprite *sprite)
static void AnimDragonRageFirePlume(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
{
@@ -253,14 +253,14 @@ static void sub_80B73AC(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
static void sub_80B741C(struct Sprite *sprite)
static void AnimDragonFireToTarget(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
StartSpriteAffineAnim(sprite, 1);
sub_80B72F8(sprite);
}
static void sub_80B7448(struct Sprite *sprite)
static void AnimDragonDanceOrb(struct Sprite *sprite)
{
u16 r5;
u16 r0;
@@ -319,7 +319,7 @@ static void sub_80B74D8(struct Sprite *sprite)
}
}
void sub_80B75E0(u8 taskId)
void AnimTask_DragonDanceWaver(u8 taskId)
{
struct ScanlineEffectParams sp;
struct Task *task = &gTasks[taskId];
@@ -404,7 +404,7 @@ static void sub_80B776C(struct Task *task)
task->data[5] = (task->data[5] + 9) & 0xFF;
}
static void sub_80B77E4(struct Sprite *sprite)
static void AnimOverheatFlame(struct Sprite *sprite)
{
s32 i, r6 = (gBattleAnimArgs[2] * 3) / 5;
+124 -124
View File
@@ -4,22 +4,22 @@
#include "sound.h"
#include "constants/songs.h"
static void sub_80ADBEC(struct Sprite *sprite);
static void AnimLightning(struct Sprite *sprite);
static void sub_80ADC58(struct Sprite *sprite);
static void sub_80ADCB8(struct Sprite *sprite);
static void sub_80ADD4C(struct Sprite *sprite);
static void sub_80ADEB0(struct Sprite *sprite);
static void sub_80AE000(struct Sprite *sprite);
static void sub_80AE06C(struct Sprite *sprite);
static void sub_80AE1A0(struct Sprite *sprite);
static void sub_80AE420(struct Sprite *sprite);
static void sub_80AE470(struct Sprite *sprite);
static void sub_80AE71C(struct Sprite *sprite);
static void sub_80AE774(struct Sprite *sprite);
static void sub_80AE7DC(struct Sprite *sprite);
static void sub_80AEC34(struct Sprite *sprite);
static void sub_80AEC80(struct Sprite *sprite);
static void sub_80AEF60(struct Sprite *sprite);
static void AnimZapCannonSpark(struct Sprite *sprite);
static void AnimThunderboltOrb(struct Sprite *sprite);
static void AnimSparkElectricityFlashing(struct Sprite *sprite);
static void AnimElectricity(struct Sprite *sprite);
static void AnimElectricBoltSegment(struct Sprite *sprite);
static void AnimThunderWave(struct Sprite *sprite);
static void AnimGrowingChargeOrb(struct Sprite *sprite);
static void AnimElectricPuff(struct Sprite *sprite);
static void AnimVoltTackleOrbSlide(struct Sprite *sprite);
static void AnimVoltTackleBolt(struct Sprite *sprite);
static void AnimGrowingShockWaveOrb(struct Sprite *sprite);
static void AnimShockWaveProgressingBolt(struct Sprite *sprite);
static void sub_80ADC3C(struct Sprite *sprite);
static void sub_80ADC9C(struct Sprite *sprite);
static void sub_80ADF38(struct Sprite *sprite);
@@ -34,7 +34,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId);
static bool8 sub_80AF058(struct Task *task, u8 taskId);
static void sub_80AF0C8(struct Sprite *sprite);
static const union AnimCmd gUnknown_83E5F1C[] =
static const union AnimCmd sAnim_Lightning[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(16, 5),
@@ -44,20 +44,20 @@ static const union AnimCmd gUnknown_83E5F1C[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E5F34[] =
static const union AnimCmd *const sAnims_Lightning[] =
{
gUnknown_83E5F1C,
sAnim_Lightning,
};
const struct SpriteTemplate gUnknown_83E5F38 =
const struct SpriteTemplate gLightningSpriteTemplate =
{
.tileTag = ANIM_TAG_LIGHTNING,
.paletteTag = ANIM_TAG_LIGHTNING,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5F34,
.anims = sAnims_Lightning,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80ADBEC,
.callback = AnimLightning,
};
static const union AffineAnimCmd gUnknown_83E5F50[] =
@@ -111,7 +111,7 @@ const struct SpriteTemplate gUnknown_83E5FAC =
.callback = sub_80ADCB8,
};
const struct SpriteTemplate gUnknown_83E5FC4 =
const struct SpriteTemplate gSparkElectricitySpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK_2,
.paletteTag = ANIM_TAG_SPARK_2,
@@ -122,7 +122,7 @@ const struct SpriteTemplate gUnknown_83E5FC4 =
.callback = sub_80ADD4C,
};
const struct SpriteTemplate gUnknown_83E5FDC =
const struct SpriteTemplate gZapCannonBallSpriteTemplate =
{
.tileTag = ANIM_TAG_BLACK_BALL_2,
.paletteTag = ANIM_TAG_BLACK_BALL_2,
@@ -133,29 +133,29 @@ const struct SpriteTemplate gUnknown_83E5FDC =
.callback = TranslateAnimSpriteToTargetMonLocation,
};
static const union AffineAnimCmd gUnknown_83E5FF4[] =
static const union AffineAnimCmd sAffineAnim_FlashingSpark[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E6004[] =
static const union AffineAnimCmd *const sAffineAnims_FlashingSpark[] =
{
gUnknown_83E5FF4,
sAffineAnim_FlashingSpark,
};
const struct SpriteTemplate gUnknown_83E6008 =
const struct SpriteTemplate gZapCannonSparkSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK_2,
.paletteTag = ANIM_TAG_SPARK_2,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6004,
.callback = sub_80ADEB0,
.affineAnims = sAffineAnims_FlashingSpark,
.callback = AnimZapCannonSpark,
};
static const union AnimCmd gUnknown_83E6020[] =
static const union AnimCmd sAnim_ThunderboltOrb[] =
{
ANIMCMD_FRAME(0, 6),
ANIMCMD_FRAME(16, 6),
@@ -163,12 +163,12 @@ static const union AnimCmd gUnknown_83E6020[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E6030[] =
static const union AnimCmd *const sAnims_ThunderboltOrb[] =
{
gUnknown_83E6020,
sAnim_ThunderboltOrb,
};
static const union AffineAnimCmd gUnknown_83E6034[] =
static const union AffineAnimCmd sAffineAnim_ThunderboltOrb[] =
{
AFFINEANIMCMD_FRAME(0xE8, 0xE8, 0, 0),
AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 10),
@@ -176,31 +176,31 @@ static const union AffineAnimCmd gUnknown_83E6034[] =
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E6054[] =
static const union AffineAnimCmd *const sAffineAnims_ThunderboltOrb[] =
{
gUnknown_83E6034,
sAffineAnim_ThunderboltOrb,
};
const struct SpriteTemplate gUnknown_83E6058 =
const struct SpriteTemplate gThunderboltOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_SHOCK_3,
.paletteTag = ANIM_TAG_SHOCK_3,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E6030,
.anims = sAnims_ThunderboltOrb,
.images = NULL,
.affineAnims = gUnknown_83E6054,
.callback = sub_80AE000,
.affineAnims = sAffineAnims_ThunderboltOrb,
.callback = AnimThunderboltOrb,
};
const struct SpriteTemplate gUnknown_83E6070 =
const struct SpriteTemplate gSparkElectricityFlashingSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK_2,
.paletteTag = ANIM_TAG_SPARK_2,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6004,
.callback = sub_80AE06C,
.affineAnims = sAffineAnims_FlashingSpark,
.callback = AnimSparkElectricityFlashing,
};
const struct SpriteTemplate gElectricitySpriteTemplate =
@@ -211,10 +211,10 @@ const struct SpriteTemplate gElectricitySpriteTemplate =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AE1A0,
.callback = AnimElectricity,
};
static const struct SpriteTemplate gUnknown_83E60A0 =
static const struct SpriteTemplate sElectricBoltSegmentSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK,
.paletteTag = ANIM_TAG_SPARK,
@@ -222,10 +222,10 @@ static const struct SpriteTemplate gUnknown_83E60A0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AE420,
.callback = AnimElectricBoltSegment,
};
const struct SpriteTemplate gUnknown_83E60B8 =
const struct SpriteTemplate gThunderWaveSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK_H,
.paletteTag = ANIM_TAG_SPARK_H,
@@ -233,10 +233,10 @@ const struct SpriteTemplate gUnknown_83E60B8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AE470,
.callback = AnimThunderWave,
};
static const s8 gUnknown_83E60D0[][2] =
static const s8 sElectricChargingParticleCoordOffsets[][2] =
{
{ 58, -60},
{-56, -36},
@@ -256,7 +256,7 @@ static const s8 gUnknown_83E60D0[][2] =
{ 48, 48},
};
static const union AnimCmd gUnknown_83E60F0[] =
static const union AnimCmd sAnim_ElectricChargingParticles_0[] =
{
ANIMCMD_FRAME(3, 1),
ANIMCMD_FRAME(2, 1),
@@ -265,7 +265,7 @@ static const union AnimCmd gUnknown_83E60F0[] =
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6104[] =
static const union AnimCmd sAnim_ElectricChargingParticles_1[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(1, 5),
@@ -274,24 +274,24 @@ static const union AnimCmd gUnknown_83E6104[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6118[] =
static const union AnimCmd *const sAnims_ElectricChargingParticles[] =
{
gUnknown_83E60F0,
gUnknown_83E6104,
sAnim_ElectricChargingParticles_0,
sAnim_ElectricChargingParticles_1,
};
static const struct SpriteTemplate gUnknown_83E6120 =
static const struct SpriteTemplate gElectricChargingParticlesSpriteTemplate =
{
.tileTag = ANIM_TAG_ELECTRIC_ORBS,
.paletteTag = ANIM_TAG_ELECTRIC_ORBS,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = gUnknown_83E6118,
.anims = sAnims_ElectricChargingParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
};
static const union AffineAnimCmd gUnknown_83E6138[] =
static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_0[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 60),
@@ -303,7 +303,7 @@ static const union AffineAnimCmd gUnknown_83E6138[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6178[] =
static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_1[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30),
@@ -313,7 +313,7 @@ static const union AffineAnimCmd gUnknown_83E6178[] =
AFFINEANIMCMD_JUMP(3),
};
static const union AffineAnimCmd gUnknown_83E61A8[] =
static const union AffineAnimCmd sAffineAnim_GrowingElectricOrb_2[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0),
AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30),
@@ -321,25 +321,25 @@ static const union AffineAnimCmd gUnknown_83E61A8[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E61C8[] =
static const union AffineAnimCmd *const sAffineAnims_GrowingElectricOrb[] =
{
gUnknown_83E6138,
gUnknown_83E6178,
gUnknown_83E61A8,
sAffineAnim_GrowingElectricOrb_0,
sAffineAnim_GrowingElectricOrb_1,
sAffineAnim_GrowingElectricOrb_2,
};
const struct SpriteTemplate gUnknown_83E61D4 =
const struct SpriteTemplate gGrowingChargeOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E61C8,
.callback = sub_80AE71C,
.affineAnims = sAffineAnims_GrowingElectricOrb,
.callback = AnimGrowingChargeOrb,
};
static const union AnimCmd gUnknown_83E61EC[] =
static const union AnimCmd sAnim_ElectricPuff[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3),
@@ -348,99 +348,99 @@ static const union AnimCmd gUnknown_83E61EC[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6200[] =
static const union AnimCmd *const sAnims_ElectricPuff[] =
{
gUnknown_83E61EC,
sAnim_ElectricPuff,
};
const struct SpriteTemplate gUnknown_83E6204 =
const struct SpriteTemplate gElectricPuffSpriteTemplate =
{
.tileTag = ANIM_TAG_ELECTRICITY,
.paletteTag = ANIM_TAG_ELECTRICITY,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E6200,
.anims = sAnims_ElectricPuff,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AE774,
.callback = AnimElectricPuff,
};
const struct SpriteTemplate gUnknown_83E621C =
const struct SpriteTemplate gVoltTackleOrbSlideSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E61C8,
.callback = sub_80AE7DC,
.affineAnims = sAffineAnims_GrowingElectricOrb,
.callback = AnimVoltTackleOrbSlide,
};
static const union AnimCmd gUnknown_83E6234[] =
static const union AnimCmd sAnim_VoltTackleBolt_0[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E623C[] =
static const union AnimCmd sAnim_VoltTackleBolt_1[] =
{
ANIMCMD_FRAME(2, 3),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6244[] =
static const union AnimCmd sAnim_VoltTackleBolt_2[] =
{
ANIMCMD_FRAME(4, 3),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E624C[] =
static const union AnimCmd sAnim_VoltTackleBolt_3[] =
{
ANIMCMD_FRAME(6, 3),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6254[] =
static const union AnimCmd *const sAnims_VoltTackleBolt[] =
{
gUnknown_83E6234,
gUnknown_83E623C,
gUnknown_83E6244,
gUnknown_83E624C,
sAnim_VoltTackleBolt_0,
sAnim_VoltTackleBolt_1,
sAnim_VoltTackleBolt_2,
sAnim_VoltTackleBolt_3,
};
static const union AffineAnimCmd gUnknown_83E6264[] =
static const union AffineAnimCmd sAffineAnim_VoltTackleBolt[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6274[] =
static const union AffineAnimCmd *const sAffineAnims_VoltTackleBolt[] =
{
gUnknown_83E6264,
sAffineAnim_VoltTackleBolt,
};
static const struct SpriteTemplate gUnknown_83E6278 =
static const struct SpriteTemplate gVoltTackleBoltSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK,
.paletteTag = ANIM_TAG_SPARK,
.oam = &gOamData_AffineDouble_ObjNormal_8x16,
.anims = gUnknown_83E6254,
.anims = sAnims_VoltTackleBolt,
.images = NULL,
.affineAnims = gUnknown_83E6274,
.callback = sub_80AEC34,
.affineAnims = sAffineAnims_VoltTackleBolt,
.callback = AnimVoltTackleBolt,
};
const struct SpriteTemplate gUnknown_83E6290 =
const struct SpriteTemplate gGrowingShockWaveOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E61C8,
.callback = sub_80AEC80,
.affineAnims = sAffineAnims_GrowingElectricOrb,
.callback = AnimGrowingShockWaveOrb,
};
static const struct SpriteTemplate gUnknown_83E62A8 =
static const struct SpriteTemplate sShockWaveProgressingBoltSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARK,
.paletteTag = ANIM_TAG_SPARK,
@@ -448,10 +448,10 @@ static const struct SpriteTemplate gUnknown_83E62A8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AEF60,
.callback = AnimShockWaveProgressingBolt,
};
static void sub_80ADBEC(struct Sprite *sprite)
static void AnimLightning(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
sprite->pos1.x -= gBattleAnimArgs[0];
@@ -555,7 +555,7 @@ static void sub_80ADD4C(struct Sprite *sprite)
sprite->callback = sub_80B1D3C;
}
static void sub_80ADEB0(struct Sprite *sprite)
static void AnimZapCannonSpark(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 1);
sprite->data[0] = gBattleAnimArgs[3];
@@ -599,7 +599,7 @@ static void sub_80ADFB0(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80AE000(struct Sprite *sprite)
static void AnimThunderboltOrb(struct Sprite *sprite)
{
if (IsContest() || GetBattlerSide(gBattleAnimTarget) == B_SIDE_PLAYER)
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
@@ -611,7 +611,7 @@ static void sub_80AE000(struct Sprite *sprite)
sprite->callback = sub_80ADFB0;
}
static void sub_80AE06C(struct Sprite *sprite)
static void AnimSparkElectricityFlashing(struct Sprite *sprite)
{
u8 battler;
@@ -644,7 +644,7 @@ static void sub_80AE130(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80AE1A0(struct Sprite *sprite)
static void AnimElectricity(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, FALSE);
sprite->oam.tileNum += gBattleAnimArgs[3] * 4;
@@ -657,7 +657,7 @@ static void sub_80AE1A0(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
void sub_80AE220(u8 taskId)
void AnimTask_ElectricBolt(u8 taskId)
{
gTasks[taskId].data[0] = GetBattlerSpriteCoord(gBattleAnimTarget, 0) + gBattleAnimArgs[0];
gTasks[taskId].data[1] = GetBattlerSpriteCoord(gBattleAnimTarget, 1) + gBattleAnimArgs[1];
@@ -692,30 +692,30 @@ static void sub_80AE278(u8 taskId)
{
case 0:
r12 *= 1;
spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2);
spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2);
++r7;
break;
case 2:
r12 *= 2;
r8 += r2;
spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2);
spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2);
++r7;
break;
case 4:
r12 *= 3;
r8 += r2 * 2;
spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2);
spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2);
++r7;
break;
case 6:
r12 *= 4;
r8 += r2 * 3;
spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2);
spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2);
++r7;
break;
case 8:
r12 *= 5;
spriteId = CreateSprite(&gUnknown_83E60A0, x, y + r12, 2);
spriteId = CreateSprite(&sElectricBoltSegmentSpriteTemplate, x, y + r12, 2);
++r7;
break;
case 10:
@@ -731,7 +731,7 @@ static void sub_80AE278(u8 taskId)
++gTasks[taskId].data[10];
}
static void sub_80AE420(struct Sprite *sprite)
static void AnimElectricBoltSegment(struct Sprite *sprite)
{
if (!sprite->data[0])
{
@@ -747,13 +747,13 @@ static void sub_80AE420(struct Sprite *sprite)
DestroySprite(sprite);
}
static void sub_80AE470(struct Sprite *sprite)
static void AnimThunderWave(struct Sprite *sprite)
{
u8 spriteId;
sprite->pos1.x += gBattleAnimArgs[0];
sprite->pos1.y += gBattleAnimArgs[1];
spriteId = CreateSprite(&gUnknown_83E60B8, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority);
spriteId = CreateSprite(&gThunderWaveSpriteTemplate, sprite->pos1.x + 32, sprite->pos1.y, sprite->subpriority);
gSprites[spriteId].oam.tileNum += 8;
++gAnimVisualTaskCount;
gSprites[spriteId].callback = sub_80AE4F4;
@@ -771,7 +771,7 @@ static void sub_80AE4F4(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80AE540(u8 taskId)
void AnimTask_ElectricChargingParticles(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -807,13 +807,13 @@ static void sub_80AE5BC(u8 taskId)
u8 spriteId;
task->data[12] = 0;
spriteId = CreateSprite(&gUnknown_83E6120, task->data[14], task->data[15], 2);
spriteId = CreateSprite(&gElectricChargingParticlesSpriteTemplate, task->data[14], task->data[15], 2);
if (spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
sprite->pos1.x += gUnknown_83E60D0[task->data[9]][0];
sprite->pos1.y += gUnknown_83E60D0[task->data[9]][1];
sprite->pos1.x += sElectricChargingParticleCoordOffsets[task->data[9]][0];
sprite->pos1.y += sElectricChargingParticleCoordOffsets[task->data[9]][1];
sprite->data[0] = 40 - task->data[8] * 5;
sprite->data[1] = sprite->pos1.x;
sprite->data[2] = task->data[14];
@@ -857,7 +857,7 @@ static void sub_80AE704(struct Sprite *sprite)
sprite->callback = sub_80AE6D0;
}
static void sub_80AE71C(struct Sprite *sprite)
static void AnimGrowingChargeOrb(struct Sprite *sprite)
{
if (!gBattleAnimArgs[0])
{
@@ -873,7 +873,7 @@ static void sub_80AE71C(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_80AE774(struct Sprite *sprite)
static void AnimElectricPuff(struct Sprite *sprite)
{
if (!gBattleAnimArgs[0])
{
@@ -891,7 +891,7 @@ static void sub_80AE774(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
static void sub_80AE7DC(struct Sprite *sprite)
static void AnimVoltTackleOrbSlide(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, 1);
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
@@ -920,7 +920,7 @@ static void sub_80AE83C(struct Sprite *sprite)
}
}
void sub_80AE8A0(u8 taskId)
void AnimTask_VoltTackleAttackerReappear(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -975,7 +975,7 @@ void sub_80AE8A0(u8 taskId)
}
}
void sub_80AEA10(u8 taskId)
void AnimTask_VoltTackleBolt(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1049,7 +1049,7 @@ void sub_80AEA10(u8 taskId)
static bool8 sub_80AEB98(struct Task *task, u8 taskId)
{
u8 spriteId = CreateSprite(&gUnknown_83E6278, task->data[3], task->data[5], 35);
u8 spriteId = CreateSprite(&gVoltTackleBoltSpriteTemplate, task->data[3], task->data[5], 35);
if (spriteId != MAX_SPRITES)
{
@@ -1070,7 +1070,7 @@ static bool8 sub_80AEB98(struct Task *task, u8 taskId)
return FALSE;
}
static void sub_80AEC34(struct Sprite *sprite)
static void AnimVoltTackleBolt(struct Sprite *sprite)
{
if (++sprite->data[0] > 12)
{
@@ -1080,7 +1080,7 @@ static void sub_80AEC34(struct Sprite *sprite)
}
}
static void sub_80AEC80(struct Sprite *sprite)
static void AnimGrowingShockWaveOrb(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1097,7 +1097,7 @@ static void sub_80AEC80(struct Sprite *sprite)
}
}
void sub_80AECE0(u8 taskId)
void AnimTask_ShockWaveProgressingBolt(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1174,7 +1174,7 @@ void sub_80AECE0(u8 taskId)
static bool8 sub_80AEE74(struct Task *task, u8 taskId)
{
u8 spriteId = CreateSprite(&gUnknown_83E62A8, task->data[6], task->data[7], 35);
u8 spriteId = CreateSprite(&sShockWaveProgressingBoltSpriteTemplate, task->data[6], task->data[7], 35);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].oam.tileNum += task->data[4];
@@ -1206,7 +1206,7 @@ static bool8 sub_80AEE74(struct Task *task, u8 taskId)
}
}
static void sub_80AEF60(struct Sprite *sprite)
static void AnimShockWaveProgressingBolt(struct Sprite *sprite)
{
if (++sprite->data[0] > 12)
{
@@ -1215,7 +1215,7 @@ static void sub_80AEF60(struct Sprite *sprite)
}
}
void sub_80AEFA0(u8 taskId)
void AnimTask_ShockWaveLightning(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1247,7 +1247,7 @@ void sub_80AEFA0(u8 taskId)
static bool8 sub_80AF058(struct Task *task, u8 taskId)
{
u8 spriteId = CreateSprite(&gUnknown_83E5F38, task->data[13], task->data[14], task->data[12]);
u8 spriteId = CreateSprite(&gLightningSpriteTemplate, task->data[13], task->data[14], task->data[12]);
if (spriteId != MAX_SPRITES)
{
+3 -3
View File
@@ -1335,7 +1335,7 @@ static u8 InitObjectEventStateFromTemplate(struct ObjectEventTemplate *template,
s16 y2;
s16 elevation2;
if(template->unk2 == 0xFF)
if(template->inConnection == 0xFF)
{
var = 1;
mapNum = template2->trainerType;
@@ -1904,7 +1904,7 @@ int SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8
y -= 7;
objectEventTemplate.localId = localId;
objectEventTemplate.graphicsId = graphicsId;
objectEventTemplate.unk2 = 0;
objectEventTemplate.inConnection = 0;
objectEventTemplate.x = x;
objectEventTemplate.y = y;
objectEventTemplate.elevation = z;
@@ -3037,7 +3037,7 @@ bool8 ObjectEventIsTrainerAndCloseToPlayer(struct ObjectEvent *objectEvent)
s16 minY;
s16 maxY;
if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_WATERING))
if (!TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_DASH))
{
return FALSE;
}
+3 -3
View File
@@ -181,7 +181,7 @@ static void npc_clear_strange_bits(struct ObjectEvent *objEvent)
objEvent->inanimate = FALSE;
objEvent->disableAnim = FALSE;
objEvent->facingDirectionLocked = FALSE;
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_WATERING;
gPlayerAvatar.flags &= ~PLAYER_AVATAR_FLAG_DASH;
}
static void MovePlayerAvatarUsingKeypadInput(u8 direction, u16 newKeys, u16 heldKeys)
@@ -517,7 +517,7 @@ static void PlayerNotOnBikeMoving(u8 direction, u16 heldKeys)
PlayerRunSlow(direction);
else
PlayerRun(direction);
gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_WATERING;
gPlayerAvatar.flags |= PLAYER_AVATAR_FLAG_DASH;
return;
}
else
@@ -1228,7 +1228,7 @@ void ClearPlayerAvatarInfo(void)
void SetPlayerAvatarStateMask(u8 flags)
{
gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_WATERING | PLAYER_AVATAR_FLAG_FISHING | PLAYER_AVATAR_FLAG_FIELD_MOVE);
gPlayerAvatar.flags &= (PLAYER_AVATAR_FLAG_DASH | PLAYER_AVATAR_FLAG_FISHING | PLAYER_AVATAR_FLAG_FIELD_MOVE);
gPlayerAvatar.flags |= flags;
}
+118 -118
View File
@@ -6,23 +6,23 @@
#include "trig.h"
static void unc_080B08A0(struct Sprite *sprite);
static void sub_80B08DC(struct Sprite *sprite);
static void sub_80B0928(struct Sprite *sprite);
static void AnimSlideHandOrFootToTarget(struct Sprite *sprite);
static void AnimJumpKick(struct Sprite *sprite);
static void AnimBasicFistOrFoot(struct Sprite *sprite);
static void sub_80B09A4(struct Sprite *sprite);
static void sub_80B0B80(struct Sprite *sprite);
static void sub_80B0C28(struct Sprite *sprite);
static void AnimFistOrFootRandomPos(struct Sprite *sprite);
static void AnimCrossChopHand(struct Sprite *sprite);
static void AnimSlidingKick(struct Sprite *sprite);
static void AnimSpinningKickOrPunch(struct Sprite *sprite);
static void AnimStompFoot(struct Sprite *sprite);
static void sub_80B0DF0(struct Sprite *sprite);
static void sub_80B0E80(struct Sprite *sprite);
static void sub_80B0F68(struct Sprite *sprite);
static void sub_80B107C(struct Sprite *sprite);
static void sub_80B1188(struct Sprite *sprite);
static void sub_80B12E8(struct Sprite *sprite);
static void sub_80B13F8(struct Sprite *sprite);
static void sub_80B1484(struct Sprite *sprite);
static void sub_80B14F0(struct Sprite *sprite);
static void AnimDizzyPunchDuck(struct Sprite *sprite);
static void AnimBrickBreakWall(struct Sprite *sprite);
static void AnimBrickBreakWallShard(struct Sprite *sprite);
static void AnimSuperpowerOrb(struct Sprite *sprite);
static void AnimSuperpowerRock(struct Sprite *sprite);
static void AnimSuperpowerFireball(struct Sprite *sprite);
static void AnimArmThrustHit(struct Sprite *sprite);
static void AnimRevengeScratch(struct Sprite *sprite);
static void AnimFocusPunchFist(struct Sprite *sprite);
static void sub_80B0B2C(struct Sprite *sprite);
static void sub_80B0BD8(struct Sprite *sprite);
static void sub_80B0CB4(struct Sprite *sprite);
@@ -46,73 +46,73 @@ const struct SpriteTemplate gUnknown_83E668C =
.callback = unc_080B08A0,
};
static const union AnimCmd gUnknown_83E66A4[] =
static const union AnimCmd sAnim_HandOrFoot[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E66AC[] =
static const union AnimCmd sAnim_SlidingKick_0[] =
{
ANIMCMD_FRAME(16, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E66B4[] =
static const union AnimCmd sAnim_SlidingKick_1[] =
{
ANIMCMD_FRAME(32, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E66BC[] =
static const union AnimCmd sAnim_CrossChopHand_0[] =
{
ANIMCMD_FRAME(48, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E66C4[] =
static const union AnimCmd sAnim_CrossChopHand_1[] =
{
ANIMCMD_FRAME(48, 1, .hFlip = TRUE),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E66CC[] =
static const union AnimCmd *const sAnims_HandOrFoot[] =
{
gUnknown_83E66A4,
sAnim_HandOrFoot,
};
static const union AnimCmd *const gUnknown_83E66D0[] =
static const union AnimCmd *const sAnims_SlidingKick[] =
{
gUnknown_83E66AC,
gUnknown_83E66B4,
sAnim_SlidingKick_0,
sAnim_SlidingKick_1,
};
static const union AnimCmd *const gUnknown_83E66D8[] =
static const union AnimCmd *const sAnims_CrossChopHand[] =
{
gUnknown_83E66BC,
gUnknown_83E66C4,
sAnim_CrossChopHand_0,
sAnim_CrossChopHand_1,
};
const struct SpriteTemplate gUnknown_83E66E0 =
const struct SpriteTemplate gKarateChopSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B08DC,
.callback = AnimSlideHandOrFootToTarget,
};
const struct SpriteTemplate gUnknown_83E66F8 =
const struct SpriteTemplate gJumpKickSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B0928,
.callback = AnimJumpKick,
};
const struct SpriteTemplate gFistFootSpriteTemplate =
@@ -120,78 +120,78 @@ const struct SpriteTemplate gFistFootSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimBasicFistOrFoot,
};
const struct SpriteTemplate gUnknown_83E6728 =
const struct SpriteTemplate gFistFootRandomPosSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B09A4,
.callback = AnimFistOrFootRandomPos,
};
const struct SpriteTemplate gUnknown_83E6740 =
const struct SpriteTemplate gCrossChopHandSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66D8,
.anims = sAnims_CrossChopHand,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B0B80,
.callback = AnimCrossChopHand,
};
const struct SpriteTemplate gUnknown_83E6758 =
const struct SpriteTemplate gSlidingKickSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66D0,
.anims = sAnims_SlidingKick,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B0C28,
.callback = AnimSlidingKick,
};
static const union AffineAnimCmd gUnknown_83E6770[] =
static const union AffineAnimCmd sAffineAnim_SpinningHandOrFoot[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(-0x8, -0x8, 20, 1),
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E6788[] =
static const union AffineAnimCmd *const sAffineAnims_SpinningHandOrFoot[] =
{
gUnknown_83E6770,
sAffineAnim_SpinningHandOrFoot,
};
const struct SpriteTemplate gUnknown_83E678C =
const struct SpriteTemplate gSpinningHandOrFootSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gUnknown_83E6788,
.affineAnims = sAffineAnims_SpinningHandOrFoot,
.callback = AnimSpinningKickOrPunch,
};
static const union AffineAnimCmd gUnknown_83E67A4[] =
static const union AffineAnimCmd sAffineAnim_MegaPunchKick[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(-0x4, -0x4, 20, 1),
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E67BC[] =
static const union AffineAnimCmd *const sAffineAnims_MegaPunchKick[] =
{
gUnknown_83E67A4,
sAffineAnim_MegaPunchKick,
};
const struct SpriteTemplate gMegaPunchKickSpriteTemplate =
@@ -199,24 +199,24 @@ const struct SpriteTemplate gMegaPunchKickSpriteTemplate =
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gUnknown_83E67BC,
.affineAnims = sAffineAnims_MegaPunchKick,
.callback = AnimSpinningKickOrPunch,
};
const struct SpriteTemplate gUnknown_83E67D8 =
const struct SpriteTemplate gStompFootSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66D0,
.anims = sAnims_SlidingKick,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimStompFoot,
};
const struct SpriteTemplate gUnknown_83E67F0 =
const struct SpriteTemplate gDizzyPunchDuckSpriteTemplate =
{
.tileTag = ANIM_TAG_DUCK,
.paletteTag = ANIM_TAG_DUCK,
@@ -224,10 +224,10 @@ const struct SpriteTemplate gUnknown_83E67F0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B0DF0,
.callback = AnimDizzyPunchDuck,
};
const struct SpriteTemplate gUnknown_83E6808 =
const struct SpriteTemplate gBrickBreakWallSpriteTemplate =
{
.tileTag = ANIM_TAG_BLUE_LIGHT_WALL,
.paletteTag = ANIM_TAG_BLUE_LIGHT_WALL,
@@ -235,10 +235,10 @@ const struct SpriteTemplate gUnknown_83E6808 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B0E80,
.callback = AnimBrickBreakWall,
};
const struct SpriteTemplate gUnknown_83E6820 =
const struct SpriteTemplate gBrickBreakWallShardSpriteTemplate =
{
.tileTag = ANIM_TAG_TORN_METAL,
.paletteTag = ANIM_TAG_TORN_METAL,
@@ -246,10 +246,10 @@ const struct SpriteTemplate gUnknown_83E6820 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B0F68,
.callback = AnimBrickBreakWallShard,
};
static const union AffineAnimCmd gUnknown_83E6838[] =
static const union AffineAnimCmd sAffineAnim_SuperpowerOrb[] =
{
AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0),
AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 64),
@@ -258,23 +258,23 @@ static const union AffineAnimCmd gUnknown_83E6838[] =
AFFINEANIMCMD_JUMP(2),
};
static const union AffineAnimCmd *const gUnknown_83E6860[] =
static const union AffineAnimCmd *const sAffineAnims_SuperpowerOrb[] =
{
gUnknown_83E6838,
sAffineAnim_SuperpowerOrb,
};
const struct SpriteTemplate gUnknown_83E6864 =
const struct SpriteTemplate gSuperpowerOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineDouble_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6860,
.callback = sub_80B107C,
.affineAnims = sAffineAnims_SuperpowerOrb,
.callback = AnimSuperpowerOrb,
};
const struct SpriteTemplate gUnknown_83E687C =
const struct SpriteTemplate gSuperpowerRockSpriteTemplate =
{
.tileTag = ANIM_TAG_FLAT_ROCK,
.paletteTag = ANIM_TAG_FLAT_ROCK,
@@ -282,10 +282,10 @@ const struct SpriteTemplate gUnknown_83E687C =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B1188,
.callback = AnimSuperpowerRock,
};
const struct SpriteTemplate gUnknown_83E6894 =
const struct SpriteTemplate gSuperpowerFireballSpriteTemplate =
{
.tileTag = ANIM_TAG_METEOR,
.paletteTag = ANIM_TAG_METEOR,
@@ -293,21 +293,21 @@ const struct SpriteTemplate gUnknown_83E6894 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B12E8,
.callback = AnimSuperpowerFireball,
};
const struct SpriteTemplate gUnknown_83E68AC =
const struct SpriteTemplate gArmThrustHandSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B13F8,
.callback = AnimArmThrustHit,
};
static const union AnimCmd gUnknown_83E68C4[] =
static const union AnimCmd sAnim_RevengeSmallScratch_0[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
@@ -315,7 +315,7 @@ static const union AnimCmd gUnknown_83E68C4[] =
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E68D4[] =
static const union AnimCmd sAnim_RevengeSmallScratch_1[] =
{
ANIMCMD_FRAME(0, 4, .vFlip = TRUE),
ANIMCMD_FRAME(16, 4, .vFlip = TRUE),
@@ -323,7 +323,7 @@ static const union AnimCmd gUnknown_83E68D4[] =
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E68E4[] =
static const union AnimCmd sAnim_RevengeSmallScratch_2[] =
{
ANIMCMD_FRAME(0, 4, .hFlip = TRUE),
ANIMCMD_FRAME(16, 4, .hFlip = TRUE),
@@ -331,84 +331,84 @@ static const union AnimCmd gUnknown_83E68E4[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E68F4[] =
static const union AnimCmd *const sAnims_RevengeSmallScratch[] =
{
gUnknown_83E68C4,
gUnknown_83E68D4,
gUnknown_83E68E4,
sAnim_RevengeSmallScratch_0,
sAnim_RevengeSmallScratch_1,
sAnim_RevengeSmallScratch_2,
};
const struct SpriteTemplate gUnknown_83E6900 =
const struct SpriteTemplate gRevengeSmallScratchSpriteTemplate =
{
.tileTag = ANIM_TAG_PURPLE_SCRATCH,
.paletteTag = ANIM_TAG_PURPLE_SCRATCH,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E68F4,
.anims = sAnims_RevengeSmallScratch,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B1484,
.callback = AnimRevengeScratch,
};
static const union AnimCmd gUnknown_83E6918[] =
static const union AnimCmd sAnim_RevengeBigScratch_0[] =
{
ANIMCMD_FRAME(0, 6),
ANIMCMD_FRAME(64, 6),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6924[] =
static const union AnimCmd sAnim_RevengeBigScratch_1[] =
{
ANIMCMD_FRAME(0, 6, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_FRAME(64, 6, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6930[] =
static const union AnimCmd sAnim_RevengeBigScratch_2[] =
{
ANIMCMD_FRAME(0, 6, .hFlip = TRUE),
ANIMCMD_FRAME(64, 6, .hFlip = TRUE),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E693C[] =
static const union AnimCmd *const sAnims_RevengeBigScratch[] =
{
gUnknown_83E6918,
gUnknown_83E6924,
gUnknown_83E6930,
sAnim_RevengeBigScratch_0,
sAnim_RevengeBigScratch_1,
sAnim_RevengeBigScratch_2,
};
const struct SpriteTemplate gUnknown_83E6948 =
const struct SpriteTemplate gRevengeBigScratchSpriteTemplate =
{
.tileTag = ANIM_TAG_PURPLE_SWIPE,
.paletteTag = ANIM_TAG_PURPLE_SWIPE,
.oam = &gOamData_AffineOff_ObjNormal_64x64,
.anims = gUnknown_83E693C,
.anims = sAnims_RevengeBigScratch,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B1484,
.callback = AnimRevengeScratch,
};
static const union AffineAnimCmd gUnknown_83E6960[] =
static const union AffineAnimCmd sAffineAnim_FocusPunchFist[] =
{
AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0),
AFFINEANIMCMD_FRAME(-0x20, -0x20, 0, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6978[] =
static const union AffineAnimCmd *const sAffineAnims_FocusPunchFist[] =
{
gUnknown_83E6960,
sAffineAnim_FocusPunchFist,
};
const struct SpriteTemplate gUnknown_83E697C =
const struct SpriteTemplate gFocusPunchFistSpriteTemplate =
{
.tileTag = ANIM_TAG_HANDS_AND_FEET,
.paletteTag = ANIM_TAG_HANDS_AND_FEET,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = gUnknown_83E66CC,
.anims = sAnims_HandOrFoot,
.images = NULL,
.affineAnims = gUnknown_83E6978,
.callback = sub_80B14F0,
.affineAnims = sAffineAnims_FocusPunchFist,
.callback = AnimFocusPunchFist,
};
static void unc_080B08A0(struct Sprite *sprite)
@@ -420,7 +420,7 @@ static void unc_080B08A0(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80B08DC(struct Sprite *sprite)
static void AnimSlideHandOrFootToTarget(struct Sprite *sprite)
{
if (gBattleAnimArgs[7] == 1 && GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -432,14 +432,14 @@ static void sub_80B08DC(struct Sprite *sprite)
AnimSnoreZ(sprite);
}
static void sub_80B0928(struct Sprite *sprite)
static void AnimJumpKick(struct Sprite *sprite)
{
if (IsContest())
{
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
gBattleAnimArgs[3] = -gBattleAnimArgs[3];
}
sub_80B08DC(sprite);
AnimSlideHandOrFootToTarget(sprite);
}
// Displays a basic fist or foot sprite for a given duration.
@@ -461,7 +461,7 @@ static void AnimBasicFistOrFoot(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80B09A4(struct Sprite *sprite)
static void AnimFistOrFootRandomPos(struct Sprite *sprite)
{
u8 battler;
s16 xMod, yMod;
@@ -516,7 +516,7 @@ static void sub_80B0B2C(struct Sprite *sprite)
}
}
static void sub_80B0B80(struct Sprite *sprite)
static void AnimCrossChopHand(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, TRUE);
sprite->data[0] = 30;
@@ -550,7 +550,7 @@ static void sub_80B0BD8(struct Sprite *sprite)
}
}
static void sub_80B0C28(struct Sprite *sprite)
static void AnimSlidingKick(struct Sprite *sprite)
{
if (BATTLE_PARTNER(gBattleAnimAttacker) == gBattleAnimTarget && GetBattlerPosition(gBattleAnimTarget) < B_POSITION_PLAYER_RIGHT)
gBattleAnimArgs[0] *= -1;
@@ -636,7 +636,7 @@ static void AnimStompFootEnd(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80B0DF0(struct Sprite *sprite)
static void AnimDizzyPunchDuck(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
@@ -658,7 +658,7 @@ static void sub_80B0DF0(struct Sprite *sprite)
}
}
static void sub_80B0E80(struct Sprite *sprite)
static void AnimBrickBreakWall(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
{
@@ -709,7 +709,7 @@ static void sub_80B0EF0(struct Sprite *sprite)
}
}
static void sub_80B0F68(struct Sprite *sprite)
static void AnimBrickBreakWallShard(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
{
@@ -756,7 +756,7 @@ static void sub_80B1050(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B107C(struct Sprite *sprite)
static void AnimSuperpowerOrb(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
{
@@ -792,7 +792,7 @@ static void sub_80B111C(struct Sprite *sprite)
}
}
static void sub_80B1188(struct Sprite *sprite)
static void AnimSuperpowerRock(struct Sprite *sprite)
{
sprite->pos1.x = gBattleAnimArgs[0];
sprite->pos1.y = 120;
@@ -847,7 +847,7 @@ static void sub_80B12A4(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B12E8(struct Sprite *sprite)
static void AnimSuperpowerFireball(struct Sprite *sprite)
{
u8 battler;
@@ -884,7 +884,7 @@ static void sub_80B13D4(struct Sprite *sprite)
++sprite->data[0];
}
static void sub_80B13F8(struct Sprite *sprite)
static void AnimArmThrustHit(struct Sprite *sprite)
{
u8 turn;
@@ -908,7 +908,7 @@ static void sub_80B13F8(struct Sprite *sprite)
sprite->callback = sub_80B13D4;
}
static void sub_80B1484(struct Sprite *sprite)
static void AnimRevengeScratch(struct Sprite *sprite)
{
if (gBattleAnimArgs[2] == 0)
InitSpritePosToAnimAttacker(sprite, 0);
@@ -922,7 +922,7 @@ static void sub_80B1484(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80B14F0(struct Sprite *sprite)
static void AnimFocusPunchFist(struct Sprite *sprite)
{
if (sprite->affineAnimEnded)
{
@@ -933,7 +933,7 @@ static void sub_80B14F0(struct Sprite *sprite)
}
}
void sub_80B1530(u8 taskId)
void AnimTask_MoveSkyUppercutBg(u8 taskId)
{
struct Task *task = &gTasks[taskId];
+112 -109
View File
@@ -6,21 +6,21 @@
#include "trig.h"
#include "constants/songs.h"
static void sub_80AC90C(struct Sprite *sprite);
static void sub_80AC94C(struct Sprite *sprite);
static void sub_80ACA00(struct Sprite *sprite);
static void sub_80AC990(struct Sprite *sprite);
static void AnimFireSpiralInward(struct Sprite *sprite);
static void AnimFireSpread(struct Sprite *sprite);
static void AnimLargeFlame(struct Sprite *sprite);
static void AnimFirePlume(struct Sprite *sprite);
static void sub_80ACAA8(struct Sprite *sprite);
static void sub_80ACBB0(struct Sprite *sprite);
static void AnimEmberFlare(struct Sprite *sprite);
static void sub_80ACC44(struct Sprite *sprite);
static void AnimBurnFlame(struct Sprite *sprite);
static void AnimFireRing(struct Sprite *sprite);
static void AnimFireCross(struct Sprite *sprite);
static void sub_80ACDE8(struct Sprite *sprite);
static void sub_80AD330(struct Sprite *sprite);
static void sub_80AD454(struct Sprite *sprite);
static void sub_80AD540(struct Sprite *sprite);
static void sub_80AD6F4(struct Sprite *sprite);
static void AnimFireSpiralOutward(struct Sprite *sprite);
static void AnimEruptionLaunchRock(struct Sprite *sprite);
static void AnimEruptionFallingRock(struct Sprite *sprite);
static void AnimWillOWispOrb(struct Sprite *sprite);
static void AnimWillOWispFire(struct Sprite *sprite);
static void sub_80ACA6C(struct Sprite *sprite);
static void sub_80ACB1C(struct Sprite *sprite);
static void AnimFireRing_Step1(struct Sprite *sprite);
@@ -38,7 +38,7 @@ static void sub_80AD4A8(struct Sprite *sprite);
static void sub_80AD690(struct Sprite *sprite);
static void sub_80AD870(u8 taskId);
static const union AnimCmd gUnknown_83E5BB8[] =
static const union AnimCmd sAnim_FireSpiralSpread_0[] =
{
ANIMCMD_FRAME(16, 4),
ANIMCMD_FRAME(32, 4),
@@ -46,7 +46,7 @@ static const union AnimCmd gUnknown_83E5BB8[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd gUnknown_83E5BC8[] =
static const union AnimCmd sAnim_FireSpiralSpread_1[] =
{
ANIMCMD_FRAME(16, 4, .vFlip = TRUE, .hFlip = TRUE),
ANIMCMD_FRAME(32, 4, .vFlip = TRUE, .hFlip = TRUE),
@@ -54,35 +54,35 @@ static const union AnimCmd gUnknown_83E5BC8[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E5BD8[] =
static const union AnimCmd *const sAnims_FireSpiralSpread[] =
{
gUnknown_83E5BB8,
gUnknown_83E5BC8,
sAnim_FireSpiralSpread_0,
sAnim_FireSpiralSpread_1,
};
const struct SpriteTemplate gUnknown_83E5BE0 =
const struct SpriteTemplate gFireSpiralInwardSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5BD8,
.anims = sAnims_FireSpiralSpread,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AC90C,
.callback = AnimFireSpiralInward,
};
const struct SpriteTemplate gUnknown_83E5BF8 =
const struct SpriteTemplate gFireSpreadSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5BD8,
.anims = sAnims_FireSpiralSpread,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AC94C,
.callback = AnimFireSpread,
};
static const union AnimCmd gUnknown_83E5C10[] =
static const union AnimCmd sAnim_LargeFlame[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3),
@@ -95,12 +95,12 @@ static const union AnimCmd gUnknown_83E5C10[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E5C34[] =
static const union AnimCmd *const sAnims_LargeFlame[] =
{
gUnknown_83E5C10,
sAnim_LargeFlame,
};
static const union AnimCmd gUnknown_83E5C38[] =
static const union AnimCmd sAnim_FirePlume[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(16, 5),
@@ -110,54 +110,54 @@ static const union AnimCmd gUnknown_83E5C38[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E5C50[] =
static const union AnimCmd *const sAnims_FirePlume[] =
{
gUnknown_83E5C38,
sAnim_FirePlume,
};
static const union AffineAnimCmd gUnknown_83E5C54[] =
static const union AffineAnimCmd sAffineAnim_LargeFlame[] =
{
AFFINEANIMCMD_FRAME(0x32, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0x20, 0x0, 0, 7),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E5C6C[] =
static const union AffineAnimCmd *const sAffineAnims_LargeFlame[] =
{
gUnknown_83E5C54,
sAffineAnim_LargeFlame,
};
const struct SpriteTemplate gUnknown_83E5C70 =
const struct SpriteTemplate gLargeFlameSpriteTemplate =
{
.tileTag = ANIM_TAG_FIRE,
.paletteTag = ANIM_TAG_FIRE,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E5C34,
.anims = sAnims_LargeFlame,
.images = NULL,
.affineAnims = gUnknown_83E5C6C,
.callback = sub_80ACA00,
.affineAnims = sAffineAnims_LargeFlame,
.callback = AnimLargeFlame,
};
const struct SpriteTemplate gUnknown_83E5C88 =
const struct SpriteTemplate gLargeFlameScatterSpriteTemplate =
{
.tileTag = ANIM_TAG_FIRE,
.paletteTag = ANIM_TAG_FIRE,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5C34,
.anims = sAnims_LargeFlame,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80ACA00,
.callback = AnimLargeFlame,
};
const struct SpriteTemplate gUnknown_83E5CA0 =
const struct SpriteTemplate gFirePlumeSpriteTemplate =
{
.tileTag = ANIM_TAG_FIRE_PLUME,
.paletteTag = ANIM_TAG_FIRE_PLUME,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5C50,
.anims = sAnims_FirePlume,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AC990,
.callback = AnimFirePlume,
};
const struct SpriteTemplate gUnknown_83E5CB8 =
@@ -165,10 +165,10 @@ const struct SpriteTemplate gUnknown_83E5CB8 =
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5C50,
.anims = sAnims_FirePlume,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AC990,
.callback = AnimFirePlume,
};
static const union AnimCmd gUnknown_83E5CD0[] =
@@ -195,30 +195,30 @@ const struct SpriteTemplate gUnknown_83E5CE4 =
.callback = sub_80ACAA8,
};
static const union AffineAnimCmd gUnknown_83E5CFC[] =
static const union AffineAnimCmd sAffineAnim_SunlightRay[] =
{
AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0),
AFFINEANIMCMD_FRAME(0x2, 0x2, 10, 1),
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E5D14[] =
static const union AffineAnimCmd *const sAffineAnims_SunlightRay[] =
{
gUnknown_83E5CFC,
sAffineAnim_SunlightRay,
};
const struct SpriteTemplate gUnknown_83E5D18 =
const struct SpriteTemplate gSunlightRaySpriteTemplate =
{
.tileTag = ANIM_TAG_SUNLIGHT,
.paletteTag = ANIM_TAG_SUNLIGHT,
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E5D14,
.affineAnims = sAffineAnims_SunlightRay,
.callback = sub_80ACBB0,
};
static const union AnimCmd gUnknown_83E5D30[] =
static const union AnimCmd sAnim_BasicFire[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(16, 4),
@@ -228,9 +228,9 @@ static const union AnimCmd gUnknown_83E5D30[] =
ANIMCMD_JUMP(0),
};
const union AnimCmd *const gUnknown_83E5D48[] =
const union AnimCmd *const gAnims_BasicFire[] =
{
gUnknown_83E5D30,
sAnim_BasicFire,
};
const struct SpriteTemplate gEmberSpriteTemplate =
@@ -249,44 +249,44 @@ const struct SpriteTemplate gEmberFlareSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5D48,
.anims = gAnims_BasicFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimEmberFlare,
};
const struct SpriteTemplate gUnknown_83E5D7C =
const struct SpriteTemplate gBurnFlameSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5D48,
.anims = gAnims_BasicFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80ACC44,
.callback = AnimBurnFlame,
};
const struct SpriteTemplate gUnknown_83E5D94 =
const struct SpriteTemplate gFireBlastRingSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5D48,
.anims = gAnims_BasicFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimFireRing,
};
static const union AnimCmd gUnknown_83E5DAC[] =
static const union AnimCmd sAnim_FireBlastCross[] =
{
ANIMCMD_FRAME(32, 6),
ANIMCMD_FRAME(48, 6),
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E5DB8[] =
static const union AnimCmd *const sAnims_FireBlastCross[] =
{
gUnknown_83E5DAC,
sAnim_FireBlastCross,
};
static const union AffineAnimCmd gUnknown_83E5DBC[] =
@@ -307,40 +307,40 @@ static const union AffineAnimCmd *const gUnknown_83E5DDC[] =
gUnknown_83E5DCC,
};
const struct SpriteTemplate gUnknown_83E5DE4 =
const struct SpriteTemplate gFireBlastCrossSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5DB8,
.anims = sAnims_FireBlastCross,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimFireCross,
};
const struct SpriteTemplate gUnknown_83E5DFC =
const struct SpriteTemplate gFireSpiralOutwardSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5D48,
.anims = gAnims_BasicFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80ACDE8,
.callback = AnimFireSpiralOutward,
};
const struct SpriteTemplate gUnknown_83E5E14 =
const struct SpriteTemplate gWeatherBallFireDownSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5D48,
.anims = gAnims_BasicFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_8077350,
.callback = AnimWeatherBallDown,
};
static const struct SpriteTemplate gUnknown_83E5E2C =
static const struct SpriteTemplate gEruptionLaunchRockSpriteTemplate =
{
.tileTag = ANIM_TAG_WARM_ROCK,
.paletteTag = ANIM_TAG_WARM_ROCK,
@@ -348,10 +348,10 @@ static const struct SpriteTemplate gUnknown_83E5E2C =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AD330,
.callback = AnimEruptionLaunchRock,
};
static const s16 sHeatedRockCoords[][2] =
static const s16 sEruptionLaunchRockCoords[][2] =
{
{-2, -5},
{-1, -1},
@@ -362,7 +362,7 @@ static const s16 sHeatedRockCoords[][2] =
{ 4, -7},
};
const struct SpriteTemplate gUnknown_83E5E60 =
const struct SpriteTemplate gEruptionFallingRockSpriteTemplate =
{
.tileTag = ANIM_TAG_WARM_ROCK,
.paletteTag = ANIM_TAG_WARM_ROCK,
@@ -370,10 +370,10 @@ const struct SpriteTemplate gUnknown_83E5E60 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AD454,
.callback = AnimEruptionFallingRock,
};
static const union AnimCmd gUnknown_83E5E78[] =
static const union AnimCmd sAnim_WillOWispOrb_0[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(4, 5),
@@ -382,44 +382,44 @@ static const union AnimCmd gUnknown_83E5E78[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd gUnknown_83E5E8C[] =
static const union AnimCmd sAnim_WillOWispOrb_1[] =
{
ANIMCMD_FRAME(16, 5),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E5E94[] =
static const union AnimCmd sAnim_WillOWispOrb_2[] =
{
ANIMCMD_FRAME(20, 5),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E5E9C[] =
static const union AnimCmd sAnim_WillOWispOrb_3[] =
{
ANIMCMD_FRAME(20, 5),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E5EA4[] =
static const union AnimCmd *const sAnims_WillOWispOrb[] =
{
gUnknown_83E5E78,
gUnknown_83E5E8C,
gUnknown_83E5E94,
gUnknown_83E5E9C,
sAnim_WillOWispOrb_0,
sAnim_WillOWispOrb_1,
sAnim_WillOWispOrb_2,
sAnim_WillOWispOrb_3,
};
const struct SpriteTemplate gUnknown_83E5EB4 =
const struct SpriteTemplate gWillOWispOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_WISP_ORB,
.paletteTag = ANIM_TAG_WISP_ORB,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = gUnknown_83E5EA4,
.anims = sAnims_WillOWispOrb,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AD540,
.callback = AnimWillOWispOrb,
};
static const union AnimCmd gUnknown_83E5ECC[] =
static const union AnimCmd sAnim_WillOWispFire[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(16, 5),
@@ -428,33 +428,36 @@ static const union AnimCmd gUnknown_83E5ECC[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E5EE0[] =
static const union AnimCmd *const sAnims_WillOWispFire[] =
{
gUnknown_83E5ECC,
sAnim_WillOWispFire,
};
const struct SpriteTemplate gUnknown_83E5EE4 =
const struct SpriteTemplate gWillOWispFireSpriteTemplate =
{
.tileTag = ANIM_TAG_WISP_FIRE,
.paletteTag = ANIM_TAG_WISP_FIRE,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5EE0,
.anims = sAnims_WillOWispFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80AD6F4,
.callback = AnimWillOWispFire,
};
static const s8 gUnknown_83E5EFC[16] =
// Directions for shaking up/down or left/right in AnimTask_ShakeTargetInPattern
// Only first 10 values are ever accessed.
// First pattern results in larger shakes, second results in faster oscillation
static const s8 sShakeDirsPattern0[16] =
{
-1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1,
};
static const s8 gUnknown_83E5F0C[16] =
static const s8 sShakeDirsPattern1[16] =
{
-1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1,
};
static void sub_80AC90C(struct Sprite *sprite)
static void AnimFireSpiralInward(struct Sprite *sprite)
{
sprite->data[0] = gBattleAnimArgs[0];
sprite->data[1] = 0x3C;
@@ -466,7 +469,7 @@ static void sub_80AC90C(struct Sprite *sprite)
sprite->callback(sprite);
}
static void sub_80AC94C(struct Sprite *sprite)
static void AnimFireSpread(struct Sprite *sprite)
{
SetAnimSpriteInitialXOffset(sprite, gBattleAnimArgs[0]);
sprite->pos1.y += gBattleAnimArgs[1];
@@ -477,7 +480,7 @@ static void sub_80AC94C(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80AC990(struct Sprite *sprite)
static void AnimFirePlume(struct Sprite *sprite)
{
SetSpriteCoordsToAnimAttackerCoords(sprite);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -498,7 +501,7 @@ static void sub_80AC990(struct Sprite *sprite)
sprite->callback = sub_80ACA6C;
}
static void sub_80ACA00(struct Sprite *sprite)
static void AnimLargeFlame(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -606,7 +609,7 @@ static void AnimEmberFlare(struct Sprite *sprite)
sprite->callback(sprite);
}
static void sub_80ACC44(struct Sprite *sprite)
static void AnimBurnFlame(struct Sprite *sprite)
{
gBattleAnimArgs[0] = -gBattleAnimArgs[0];
gBattleAnimArgs[2] = -gBattleAnimArgs[2];
@@ -696,7 +699,7 @@ static void AnimFireCross(struct Sprite *sprite)
sprite->callback = TranslateSpriteLinear;
}
static void sub_80ACDE8(struct Sprite *sprite)
static void AnimFireSpiralOutward(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 1);
sprite->data[1] = gBattleAnimArgs[2];
@@ -725,7 +728,7 @@ static void sub_80ACE50(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80ACEA4(u8 taskId) // initialize animation task for Move_ERUPTION?
void AnimTask_EruptionLaunchRocks(u8 taskId) // initialize animation task for Move_ERUPTION?
{
struct Task *task = &gTasks[taskId];
@@ -857,14 +860,14 @@ static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3)
}
for (i = 0, j = 0; i <= 6; ++i)
{
u8 spriteId = CreateSprite(&gUnknown_83E5E2C, x, y, 2);
u8 spriteId = CreateSprite(&gEruptionLaunchRockSpriteTemplate, x, y, 2);
if (spriteId != 0x40)
{
gSprites[spriteId].oam.tileNum += j * 4 + 0x40;
if (++j >= 5)
j = 0;
sub_80AD3C8(&gSprites[spriteId], sHeatedRockCoords[i][0] * sign, sHeatedRockCoords[i][1]);
sub_80AD3C8(&gSprites[spriteId], sEruptionLaunchRockCoords[i][0] * sign, sEruptionLaunchRockCoords[i][1]);
gSprites[spriteId].data[6] = taskId;
gSprites[spriteId].data[7] = a3;
++gTasks[taskId].data[a3];
@@ -872,7 +875,7 @@ static void sub_80AD1F8(u8 spriteId, u8 taskId, u8 a3)
}
}
static void sub_80AD330(struct Sprite *sprite)
static void AnimEruptionLaunchRock(struct Sprite *sprite)
{
sub_80AD3E4(sprite);
if (sprite->invisible)
@@ -922,7 +925,7 @@ static void sub_80AD3E4(struct Sprite *sprite)
sprite->invisible = TRUE;
}
static void sub_80AD454(struct Sprite *sprite)
static void AnimEruptionFallingRock(struct Sprite *sprite)
{
sprite->pos1.x = gBattleAnimArgs[0];
sprite->pos1.y = gBattleAnimArgs[1];
@@ -971,7 +974,7 @@ static void sub_80AD4A8(struct Sprite *sprite)
}
//wisp orb
static void sub_80AD540(struct Sprite *sprite)
static void AnimWillOWispOrb(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1040,7 +1043,7 @@ static void sub_80AD690(struct Sprite *sprite)
}
//wisp fire
static void sub_80AD6F4(struct Sprite *sprite)
static void AnimWillOWispFire(struct Sprite *sprite)
{
if (!sprite->data[0])
{
@@ -1072,7 +1075,7 @@ static void sub_80AD6F4(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80AD800(u8 taskId)
void AnimTask_MoveHeatWaveTargets(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1162,7 +1165,7 @@ void AnimTask_BlendBackground(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80ADAD8(u8 taskId)
void AnimTask_ShakeTargetInPattern(u8 taskId)
{
s8 unk;
u8 spriteId;
@@ -1177,9 +1180,9 @@ void sub_80ADAD8(u8 taskId)
++gTasks[taskId].data[0];
spriteId = gBattlerSpriteIds[gBattleAnimTarget];
if (!gTasks[taskId].data[4])
unk = gUnknown_83E5EFC[gTasks[taskId].data[0] % 10];
unk = sShakeDirsPattern0[gTasks[taskId].data[0] % 10];
else
unk = gUnknown_83E5F0C[gTasks[taskId].data[0] % 10];
unk = sShakeDirsPattern1[gTasks[taskId].data[0] % 10];
if (gTasks[taskId].data[3] == 1)
gSprites[spriteId].pos2.y = gBattleAnimArgs[1] * unk < 0 ? -(gBattleAnimArgs[1] * unk) : gBattleAnimArgs[1] * unk;
else
+96 -96
View File
@@ -5,22 +5,22 @@
#include "constants/battle_anim.h"
#include "random.h"
static void sub_80B18E4(struct Sprite *sprite);
static void sub_80B1A1C(struct Sprite *sprite);
static void sub_80B1AB8(struct Sprite *sprite);
static void sub_80B1BB0(struct Sprite *sprite);
static void sub_80B1C3C(struct Sprite *sprite);
static void sub_80B1D88(struct Sprite *sprite);
static void AnimEllipticalGust(struct Sprite *sprite);
static void AnimGustToTarget(struct Sprite *sprite);
static void AnimAirWaveCrescent(struct Sprite *sprite);
static void AnimFlyBallUp(struct Sprite *sprite);
static void AnimFlyBallAttack(struct Sprite *sprite);
static void AnimFallingFeather(struct Sprite *sprite);
static void sub_80B24C0(struct Sprite *sprite);
static void sub_80B2514(struct Sprite *sprite);
static void sub_80B2780(struct Sprite *sprite);
static void sub_80B2914(struct Sprite *sprite);
static void sub_80B2974(struct Sprite *sprite);
static void sub_80B2A08(struct Sprite *sprite);
static void sub_80B2AF4(struct Sprite *sprite);
static void sub_80B2BD8(struct Sprite *sprite);
static void AnimWhirlwindLine(struct Sprite *sprite);
static void AnimBounceBallShrink(struct Sprite *sprite);
static void AnimBounceBallLand(struct Sprite *sprite);
static void AnimDiveBall(struct Sprite *sprite);
static void AnimDiveWaterSplash(struct Sprite *sprite);
static void AnimSprayWaterDroplet(struct Sprite *sprite);
static void sub_80B2CE4(struct Sprite *sprite);
static void sub_80B2D64(struct Sprite *sprite);
static void AnimSkyAttackBird(struct Sprite *sprite);
static void sub_80B190C(struct Sprite *sprite);
static void sub_80B198C(u8 taskId);
static void sub_80B1A9C(struct Sprite *sprite);
@@ -35,7 +35,7 @@ static void sub_80B2C88(struct Sprite *sprite);
static void sub_80B2CF8(struct Sprite *sprite);
static void sub_80B2E20(struct Sprite *sprite);
const struct SpriteTemplate gUnknown_83E6AE8 =
const struct SpriteTemplate gEllipticalGustSpriteTemplate =
{
.tileTag = ANIM_TAG_GUST,
.paletteTag = ANIM_TAG_GUST,
@@ -43,33 +43,33 @@ const struct SpriteTemplate gUnknown_83E6AE8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B18E4,
.callback = AnimEllipticalGust,
};
static const union AffineAnimCmd gUnknown_83E6B00[] =
static const union AffineAnimCmd sAffineAnim_GustToTarget[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0xA, 0x0, 0, 24),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6B18[] =
static const union AffineAnimCmd *const sAffineAnims_GustToTarget[] =
{
gUnknown_83E6B00,
sAffineAnim_GustToTarget,
};
const struct SpriteTemplate gUnknown_83E6B1C =
const struct SpriteTemplate gGustToTargetSpriteTemplate =
{
.tileTag = ANIM_TAG_GUST,
.paletteTag = ANIM_TAG_GUST,
.oam = &gOamData_AffineNormal_ObjNormal_32x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6B18,
.callback = sub_80B1A1C,
.affineAnims = sAffineAnims_GustToTarget,
.callback = AnimGustToTarget,
};
static const union AnimCmd gUnknown_83E6B34[] =
static const union AnimCmd sAffineAnim_AirWaveCrescent[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(0, 3, .hFlip = TRUE),
@@ -78,23 +78,23 @@ static const union AnimCmd gUnknown_83E6B34[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E6B48[] =
static const union AnimCmd *const sAffineAnims_AirWaveCrescent[] =
{
gUnknown_83E6B34,
sAffineAnim_AirWaveCrescent,
};
const struct SpriteTemplate gUnknown_83E6B4C =
const struct SpriteTemplate gAirWaveCrescentSpriteTemplate =
{
.tileTag = ANIM_TAG_AIR_WAVE_2,
.paletteTag = ANIM_TAG_AIR_WAVE_2,
.oam = &gOamData_AffineOff_ObjNormal_32x16,
.anims = gUnknown_83E6B48,
.anims = sAffineAnims_AirWaveCrescent,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B1AB8,
.callback = AnimAirWaveCrescent,
};
static const union AffineAnimCmd gUnknown_83E6B64[] =
static const union AffineAnimCmd sAffineAnim_FlyBallUp[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6),
@@ -103,78 +103,78 @@ static const union AffineAnimCmd gUnknown_83E6B64[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6B8C[] =
static const union AffineAnimCmd *const sAffineAnims_FlyBallUp[] =
{
gUnknown_83E6B64,
sAffineAnim_FlyBallUp,
};
static const union AffineAnimCmd gUnknown_83E6B90[] =
static const union AffineAnimCmd sAffineAnim_FlyBallAttack_0[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 50, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6B9C[] =
static const union AffineAnimCmd sAffineAnim_FlyBallAttack_1[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -40, 1),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6BB0[] =
static const union AffineAnimCmd *const sAffineAnims_FlyBallAttack[] =
{
gUnknown_83E6B90,
gUnknown_83E6B9C,
sAffineAnim_FlyBallAttack_0,
sAffineAnim_FlyBallAttack_1,
};
const struct SpriteTemplate gUnknown_83E6BB8 =
const struct SpriteTemplate gFlyBallUpSpriteTemplate =
{
.tileTag = ANIM_TAG_ROUND_SHADOW,
.paletteTag = ANIM_TAG_ROUND_SHADOW,
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6B8C,
.callback = sub_80B1BB0,
.affineAnims = sAffineAnims_FlyBallUp,
.callback = AnimFlyBallUp,
};
const struct SpriteTemplate gUnknown_83E6BD0 =
const struct SpriteTemplate gFlyBallAttackSpriteTemplate =
{
.tileTag = ANIM_TAG_ROUND_SHADOW,
.paletteTag = ANIM_TAG_ROUND_SHADOW,
.oam = &gOamData_AffineNormal_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6BB0,
.callback = sub_80B1C3C,
.affineAnims = sAffineAnims_FlyBallAttack,
.callback = AnimFlyBallAttack,
};
static const union AnimCmd gUnknown_83E6BE8[] =
static const union AnimCmd sAnim_FallingFeather_0[] =
{
ANIMCMD_FRAME(0, 0),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6BF0[] =
static const union AnimCmd sAnim_FallingFeather_1[] =
{
ANIMCMD_FRAME(16, 0, .hFlip = TRUE),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6BF8[] =
static const union AnimCmd *const sAnims_FallingFeather[] =
{
gUnknown_83E6BE8,
gUnknown_83E6BF0,
sAnim_FallingFeather_0,
sAnim_FallingFeather_1,
};
const struct SpriteTemplate gUnknown_83E6C00 =
const struct SpriteTemplate gFallingFeatherSpriteTemplate =
{
.tileTag = ANIM_TAG_WHITE_FEATHER,
.paletteTag = ANIM_TAG_WHITE_FEATHER,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E6BF8,
.anims = sAnims_FallingFeather,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B1D88,
.callback = AnimFallingFeather,
};
// not used
@@ -196,13 +196,13 @@ const struct SpriteTemplate gUnknown_83E6C50 =
.tileTag = ANIM_TAG_WHITE_FEATHER,
.paletteTag = ANIM_TAG_WHITE_FEATHER,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E6BF8,
.anims = sAnims_FallingFeather,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2514,
};
static const union AnimCmd gUnknown_83E6C68[] =
static const union AnimCmd sAnim_WhirlwindLines[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_FRAME(8, 1),
@@ -212,23 +212,23 @@ static const union AnimCmd gUnknown_83E6C68[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6C80[] =
static const union AnimCmd *const sAnims_WhirlwindLines[] =
{
gUnknown_83E6C68,
sAnim_WhirlwindLines,
};
const struct SpriteTemplate gUnknown_83E6C84 =
const struct SpriteTemplate gWhirlwindLineSpriteTemplate =
{
.tileTag = ANIM_TAG_WHIRLWIND_LINES,
.paletteTag = ANIM_TAG_WHIRLWIND_LINES,
.oam = &gOamData_AffineOff_ObjNormal_32x16,
.anims = gUnknown_83E6C80,
.anims = sAnims_WhirlwindLines,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2780,
.callback = AnimWhirlwindLine,
};
static const union AffineAnimCmd gUnknown_83E6C9C[] =
static const union AffineAnimCmd sAffineAnim_BounceBallShrink[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6),
@@ -238,45 +238,45 @@ static const union AffineAnimCmd gUnknown_83E6C9C[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6CCC[] =
static const union AffineAnimCmd *const sAffineAnims_BounceBallShrink[] =
{
gUnknown_83E6C9C,
sAffineAnim_BounceBallShrink,
};
const struct SpriteTemplate gUnknown_83E6CD0 =
const struct SpriteTemplate gBounceBallShrinkSpriteTemplate =
{
.tileTag = ANIM_TAG_ROUND_SHADOW,
.paletteTag = ANIM_TAG_ROUND_SHADOW,
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6CCC,
.callback = sub_80B2914,
.affineAnims = sAffineAnims_BounceBallShrink,
.callback = AnimBounceBallShrink,
};
static const union AffineAnimCmd gUnknown_83E6CE8[] =
static const union AffineAnimCmd sAffineAnim_BounceBallLand[] =
{
AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6CF8[] =
static const union AffineAnimCmd *const sAffineAnims_BounceBallLand[] =
{
gUnknown_83E6CE8,
sAffineAnim_BounceBallLand,
};
const struct SpriteTemplate gUnknown_83E6CFC =
const struct SpriteTemplate gBounceBallLandSpriteTemplate =
{
.tileTag = ANIM_TAG_ROUND_SHADOW,
.paletteTag = ANIM_TAG_ROUND_SHADOW,
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6CF8,
.callback = sub_80B2974,
.affineAnims = sAffineAnims_BounceBallLand,
.callback = AnimBounceBallLand,
};
static const union AffineAnimCmd gUnknown_83E6D14[] =
static const union AffineAnimCmd sAffineAnim_DiveBall[] =
{
AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6),
@@ -285,20 +285,20 @@ static const union AffineAnimCmd gUnknown_83E6D14[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6D3C[] =
static const union AffineAnimCmd *const sAffineAnims_DiveBall[] =
{
gUnknown_83E6D14,
sAffineAnim_DiveBall,
};
const struct SpriteTemplate gUnknown_83E6D40 =
const struct SpriteTemplate gDiveBallSpriteTemplate =
{
.tileTag = ANIM_TAG_ROUND_SHADOW,
.paletteTag = ANIM_TAG_ROUND_SHADOW,
.oam = &gOamData_AffineDouble_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6D3C,
.callback = sub_80B2A08,
.affineAnims = sAffineAnims_DiveBall,
.callback = AnimDiveBall,
};
// not used
@@ -316,7 +316,7 @@ static const union AffineAnimCmd *const gUnknown_83E6D80[] =
gUnknown_83E6D58,
};
const struct SpriteTemplate gUnknown_83E6D7C =
const struct SpriteTemplate gDiveWaterSplashSpriteTemplate =
{
.tileTag = ANIM_TAG_SPLASH,
.paletteTag = ANIM_TAG_SPLASH,
@@ -324,10 +324,10 @@ const struct SpriteTemplate gUnknown_83E6D7C =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2AF4,
.callback = AnimDiveWaterSplash,
};
const struct SpriteTemplate gUnknown_83E6D94 =
const struct SpriteTemplate gSprayWaterDropletSpriteTemplate =
{
.tileTag = ANIM_TAG_SWEAT_BEAD,
.paletteTag = ANIM_TAG_SWEAT_BEAD,
@@ -335,7 +335,7 @@ const struct SpriteTemplate gUnknown_83E6D94 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2BD8,
.callback = AnimSprayWaterDroplet,
};
const struct SpriteTemplate gUnknown_83E6DAC =
@@ -349,7 +349,7 @@ const struct SpriteTemplate gUnknown_83E6DAC =
.callback = sub_80B2CE4,
};
const struct SpriteTemplate gUnknown_83E6DB4 =
const struct SpriteTemplate gSkyAttackBirdSpriteTemplate =
{
.tileTag = ANIM_TAG_BIRD,
.paletteTag = ANIM_TAG_BIRD,
@@ -357,10 +357,10 @@ const struct SpriteTemplate gUnknown_83E6DB4 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2D64,
.callback = AnimSkyAttackBird,
};
static void sub_80B18E4(struct Sprite *sprite)
static void AnimEllipticalGust(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, FALSE);
sprite->pos1.y += 20;
@@ -379,7 +379,7 @@ static void sub_80B190C(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80B194C(u8 taskId)
void AnimTask_AnimateGustTornadoPalette(u8 taskId)
{
gTasks[taskId].data[0] = gBattleAnimArgs[1];
gTasks[taskId].data[1] = gBattleAnimArgs[0];
@@ -411,7 +411,7 @@ static void sub_80B198C(u8 taskId)
DestroyAnimVisualTask(taskId);
}
static void sub_80B1A1C(struct Sprite *sprite)
static void AnimGustToTarget(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, TRUE);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
@@ -432,7 +432,7 @@ static void sub_80B1A9C(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B1AB8(struct Sprite *sprite)
static void AnimAirWaveCrescent(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -467,7 +467,7 @@ static void sub_80B1AB8(struct Sprite *sprite)
SeekSpriteAnim(sprite, gBattleAnimArgs[5]);
}
static void sub_80B1BB0(struct Sprite *sprite)
static void AnimFlyBallUp(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, TRUE);
sprite->data[0] = gBattleAnimArgs[2];
@@ -491,7 +491,7 @@ static void sub_80B1BF8(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B1C3C(struct Sprite *sprite)
static void AnimFlyBallAttack(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
{
@@ -564,7 +564,7 @@ struct FeatherDanceData
u16 unkE_1:15;
};
static void sub_80B1D88(struct Sprite *sprite)
static void AnimFallingFeather(struct Sprite *sprite)
{
u8 battler, matrixNum, sinIndex;
s16 spriteCoord, sinVal;
@@ -986,7 +986,7 @@ static void sub_80B268C(struct Sprite *sprite)
sprite->callback = sub_80B1F94;
}
static void sub_80B2780(struct Sprite *sprite)
static void AnimWhirlwindLine(struct Sprite *sprite)
{
u16 arg;
u8 mult;
@@ -1023,7 +1023,7 @@ static void sub_80B2820(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80B2868(u8 taskId)
void AnimTask_DrillPeckHitSplats(u8 taskId)
{
if (!(gTasks[taskId].data[0] % 32))
{
@@ -1032,7 +1032,7 @@ void sub_80B2868(u8 taskId)
gBattleAnimArgs[1] = Cos(gTasks[taskId].data[0], -13);
gBattleAnimArgs[2] = 1;
gBattleAnimArgs[3] = 3;
CreateSpriteAndAnimate(&gUnknown_83E7C98,
CreateSpriteAndAnimate(&gFlashingHitSplatSpriteTemplate,
GetBattlerSpriteCoord(gBattleAnimTarget, 2),
GetBattlerSpriteCoord(gBattleAnimTarget, 3),
3);
@@ -1042,7 +1042,7 @@ void sub_80B2868(u8 taskId)
DestroyAnimVisualTask(taskId);
}
static void sub_80B2914(struct Sprite *sprite)
static void AnimBounceBallShrink(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1058,7 +1058,7 @@ static void sub_80B2914(struct Sprite *sprite)
}
}
static void sub_80B2974(struct Sprite *sprite)
static void AnimBounceBallLand(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1083,7 +1083,7 @@ static void sub_80B2974(struct Sprite *sprite)
}
}
static void sub_80B2A08(struct Sprite *sprite)
static void AnimDiveBall(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
@@ -1120,7 +1120,7 @@ static void sub_80B2AB0(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B2AF4(struct Sprite *sprite)
static void AnimDiveWaterSplash(struct Sprite *sprite)
{
u32 matrixNum;
s32 t1, t2;
@@ -1165,7 +1165,7 @@ static void sub_80B2AF4(struct Sprite *sprite)
}
}
static void sub_80B2BD8(struct Sprite *sprite)
static void AnimSprayWaterDroplet(struct Sprite *sprite)
{
s32 v1 = 0x1FF & Random();
s32 v2 = 0x7F & Random();
@@ -1241,7 +1241,7 @@ static void sub_80B2CF8(struct Sprite *sprite)
}
}
static void sub_80B2D64(struct Sprite *sprite)
static void AnimSkyAttackBird(struct Sprite *sprite)
{
u16 rotation;
s16 posx = sprite->pos1.x;
+58 -58
View File
@@ -8,65 +8,65 @@
#include "decompress.h"
#include "constants/songs.h"
static void sub_80B5268(struct Sprite *sprite);
static void AnimConfuseRayBallBounce(struct Sprite *sprite);
static void sub_80B52D0(struct Sprite *sprite);
static void sub_80B5344(struct Sprite *sprite);
static void sub_80B53C0(struct Sprite *sprite);
static void sub_80B5450(struct Sprite *sprite);
static void AnimConfuseRayBallSpiral(struct Sprite *sprite);
static void sub_80B5470(struct Sprite *sprite);
static void sub_80B5570(u8 taskId);
static void sub_80B55C8(u8 taskId);
static void InitAnimShadowBall(struct Sprite *sprite);
static void AnimShadowBall(struct Sprite *sprite);
static void AnimShadowBallStep(struct Sprite *sprite);
static void sub_80B57F8(struct Sprite *sprite);
static void AnimLick(struct Sprite *sprite);
static void sub_80B5810(struct Sprite *sprite);
static void sub_80B59D4(u8 taskId);
static void sub_80B5AD4(u8 taskId);
static void sub_80B5D38(u8 taskId);
static void sub_80B5DCC(u8 taskId);
static void sub_80B5EC0(struct Sprite *sprite);
static void AnimDestinyBondWhiteShadow(struct Sprite *sprite);
static void sub_80B5FE0(struct Sprite *sprite);
static void sub_80B623C(u8 taskId);
static void sub_80B6468(u8 taskId);
static void sub_80B65F0(u8 taskId);
static void sub_80B664C(struct Sprite *sprite);
static void AnimCurseNail(struct Sprite *sprite);
static void sub_80B66A8(struct Sprite *sprite);
static void sub_80B6728(struct Sprite *sprite);
static void sub_80B67A0(struct Sprite *sprite);
static void sub_80B67D4(struct Sprite *sprite);
static void AnimGhostStatusSprite(struct Sprite *sprite);
static void sub_80B68A8(struct Sprite *sprite);
static void sub_80B696C(u8 taskId);
static void sub_80B6AF8(struct Sprite *sprite);
static void AnimGrudgeFlame(struct Sprite *sprite);
static void sub_80B7158(struct Sprite *sprite);
static void sub_80B6BE4(u8 taskId);
static void sub_80B6F30(u8 taskId);
static void sub_80B6FC4(u8 taskId);
static void sub_80B71B0(struct Sprite *sprite);
static const union AffineAnimCmd gUnknown_83E75A8[] =
static const union AffineAnimCmd sAffineAnim_ConfuseRayBallBounce[] =
{
AFFINEANIMCMD_FRAME(0x1E, 0x1E, 10, 5),
AFFINEANIMCMD_FRAME(-0x1E, -0x1E, 10, 5),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E75C0[] =
static const union AffineAnimCmd *const sAffineAnims_ConfuseRayBallBounce[] =
{
gUnknown_83E75A8,
sAffineAnim_ConfuseRayBallBounce,
};
const struct SpriteTemplate gUnknown_83E75C4 =
const struct SpriteTemplate gConfuseRayBallBounceSpriteTemplate =
{
.tileTag = ANIM_TAG_YELLOW_BALL,
.paletteTag = ANIM_TAG_YELLOW_BALL,
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E75C0,
.callback = sub_80B5268,
.affineAnims = sAffineAnims_ConfuseRayBallBounce,
.callback = AnimConfuseRayBallBounce,
};
const struct SpriteTemplate gUnknown_83E75DC =
const struct SpriteTemplate gConfuseRayBallSpiralSpriteTemplate =
{
.tileTag = ANIM_TAG_YELLOW_BALL,
.paletteTag = ANIM_TAG_YELLOW_BALL,
@@ -74,18 +74,18 @@ const struct SpriteTemplate gUnknown_83E75DC =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B5450,
.callback = AnimConfuseRayBallSpiral,
};
static const union AffineAnimCmd gUnknown_83E75F4[] =
static const union AffineAnimCmd sAffineAnim_ShadowBall[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E7604[] =
static const union AffineAnimCmd *const sAffineAnims_ShadowBall[] =
{
gUnknown_83E75F4,
sAffineAnim_ShadowBall,
};
const struct SpriteTemplate gShadowBallSpriteTemplate =
@@ -95,11 +95,11 @@ const struct SpriteTemplate gShadowBallSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7604,
.callback = InitAnimShadowBall,
.affineAnims = sAffineAnims_ShadowBall,
.callback = AnimShadowBall,
};
const union AnimCmd gUnknown_83E7620[] =
const union AnimCmd sAnim_Lick[] =
{
ANIMCMD_FRAME(0, 2),
ANIMCMD_FRAME(8, 2),
@@ -109,20 +109,20 @@ const union AnimCmd gUnknown_83E7620[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E7638[] =
static const union AnimCmd *const sAnims_Lick[] =
{
gUnknown_83E7620,
sAnim_Lick,
};
const struct SpriteTemplate gUnknown_83E763C =
const struct SpriteTemplate gLickSpriteTemplate =
{
.tileTag = ANIM_TAG_LICK,
.paletteTag = ANIM_TAG_LICK,
.oam = &gOamData_AffineOff_ObjNormal_16x32,
.anims = gUnknown_83E7638,
.anims = sAnims_Lick,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B57F8,
.callback = AnimLick,
};
// not used
@@ -138,7 +138,7 @@ static const union AffineAnimCmd *const gUnknown_83E7664[] =
gUnknown_83E7654,
};
const struct SpriteTemplate gUnknown_83E7668 =
const struct SpriteTemplate gDestinyBondWhiteShadowSpriteTemplate =
{
.tileTag = ANIM_TAG_WHITE_SHADOW,
.paletteTag = ANIM_TAG_WHITE_SHADOW,
@@ -146,10 +146,10 @@ const struct SpriteTemplate gUnknown_83E7668 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B5EC0,
.callback = AnimDestinyBondWhiteShadow,
};
const struct SpriteTemplate gUnknown_83E7680 =
const struct SpriteTemplate gCurseNailSpriteTemplate =
{
.tileTag = ANIM_TAG_NAIL,
.paletteTag = ANIM_TAG_NAIL,
@@ -157,10 +157,10 @@ const struct SpriteTemplate gUnknown_83E7680 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B664C,
.callback = AnimCurseNail,
};
const struct SpriteTemplate gUnknown_83E7698 =
const struct SpriteTemplate gCurseGhostSpriteTemplate =
{
.tileTag = ANIM_TAG_GHOSTLY_SPIRIT,
.paletteTag = ANIM_TAG_GHOSTLY_SPIRIT,
@@ -168,10 +168,10 @@ const struct SpriteTemplate gUnknown_83E7698 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B67D4,
.callback = AnimGhostStatusSprite,
};
const struct SpriteTemplate gUnknown_83E76B0 =
const struct SpriteTemplate gNightmareDevilSpriteTemplate =
{
.tileTag = ANIM_TAG_DEVIL,
.paletteTag = ANIM_TAG_DEVIL,
@@ -179,10 +179,10 @@ const struct SpriteTemplate gUnknown_83E76B0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B67D4,
.callback = AnimGhostStatusSprite,
};
static const union AnimCmd gUnknown_83E76C8[] =
static const union AnimCmd sAnim_GrudgeFlame[] =
{
ANIMCMD_FRAME(0, 4),
ANIMCMD_FRAME(8, 4),
@@ -191,20 +191,20 @@ static const union AnimCmd gUnknown_83E76C8[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E76DC[] =
static const union AnimCmd *const sAnims_GrudgeFlame[] =
{
gUnknown_83E76C8,
sAnim_GrudgeFlame,
};
const struct SpriteTemplate gUnknown_83E76E0 =
const struct SpriteTemplate gGrudgeFlameSpriteTemplate =
{
.tileTag = ANIM_TAG_PURPLE_FLAME,
.paletteTag = ANIM_TAG_PURPLE_FLAME,
.oam = &gOamData_AffineOff_ObjBlend_16x32,
.anims = gUnknown_83E76DC,
.anims = sAnims_GrudgeFlame,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B6AF8,
.callback = AnimGrudgeFlame,
};
const struct SpriteTemplate gUnknown_83E76F8 =
@@ -218,7 +218,7 @@ const struct SpriteTemplate gUnknown_83E76F8 =
.callback = sub_80B7158,
};
static void sub_80B5268(struct Sprite *sprite)
static void AnimConfuseRayBallBounce(struct Sprite *sprite)
{
InitSpritePosToAnimAttacker(sprite, 1);
sprite->data[0] = gBattleAnimArgs[2];
@@ -306,7 +306,7 @@ static void sub_80B53C0(struct Sprite *sprite)
}
}
static void sub_80B5450(struct Sprite *sprite)
static void AnimConfuseRayBallSpiral(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, TRUE);
sprite->callback = sub_80B5470;
@@ -332,7 +332,7 @@ static void sub_80B5470(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80B54E8(u8 taskId)
void AnimTask_NightShadeClone(u8 taskId)
{
u8 spriteId;
@@ -393,7 +393,7 @@ static void sub_80B55C8(u8 taskId)
// arg 0: duration step 1 (attacker -> center)
// arg 1: duration step 2 (spin center)
// arg 2: duration step 3 (center -> target)
static void InitAnimShadowBall(struct Sprite *sprite)
static void AnimShadowBall(struct Sprite *sprite)
{
s16 oldPosX = sprite->pos1.x;
s16 oldPosY = sprite->pos1.y;
@@ -455,7 +455,7 @@ static void AnimShadowBallStep(struct Sprite *sprite)
}
}
static void sub_80B57F8(struct Sprite *sprite)
static void AnimLick(struct Sprite *sprite)
{
InitSpritePosToAnimTarget(sprite, TRUE);
sprite->callback = sub_80B5810;
@@ -507,7 +507,7 @@ static void sub_80B5810(struct Sprite *sprite)
}
}
void sub_80B58AC(u8 taskId)
void AnimTask_NightmareClone(u8 taskId)
{
struct Task *task;
@@ -579,7 +579,7 @@ static void sub_80B59D4(u8 taskId)
}
}
void sub_80B5AAC(u8 taskId)
void AnimTask_SpiteTargetShadow(u8 taskId)
{
struct Task *task;
@@ -732,7 +732,7 @@ static void sub_80B5DCC(u8 taskId)
++task->data[15];
}
static void sub_80B5EC0(struct Sprite *sprite)
static void AnimDestinyBondWhiteShadow(struct Sprite *sprite)
{
s16 battler1X, battler1Y;
s16 battler2X, battler2Y;
@@ -781,7 +781,7 @@ static void sub_80B5FE0(struct Sprite *sprite)
}
}
void sub_80B6020(u8 taskId)
void AnimTask_DestinyBondWhiteShadow(u8 taskId)
{
struct Task *task;
s16 battler;
@@ -808,7 +808,7 @@ void sub_80B6020(u8 taskId)
&& battler != (gBattleAnimAttacker ^ 2)
&& IsBattlerSpriteVisible(battler))
{
spriteId = CreateSprite(&gUnknown_83E7668, baseX, baseY, 55);
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
if (spriteId != MAX_SPRITES)
{
x = GetBattlerSpriteCoord(battler, 2);
@@ -829,7 +829,7 @@ void sub_80B6020(u8 taskId)
}
else
{
spriteId = CreateSprite(&gUnknown_83E7668, baseX, baseY, 55);
spriteId = CreateSprite(&gDestinyBondWhiteShadowSpriteTemplate, baseX, baseY, 55);
if (spriteId != MAX_SPRITES)
{
x = 48;
@@ -921,7 +921,7 @@ static void sub_80B623C(u8 taskId)
}
}
void sub_80B63B4(u8 taskId)
void AnimTask_CurseStretchingBlackBg(u8 taskId)
{
s16 startX, startY;
s16 leftDistance, topDistance, bottomDistance, rightDistance;
@@ -1004,7 +1004,7 @@ static void sub_80B65F0(u8 taskId)
}
}
static void sub_80B664C(struct Sprite *sprite)
static void AnimCurseNail(struct Sprite *sprite)
{
s16 xDelta, xDelta2;
@@ -1093,7 +1093,7 @@ static void sub_80B67A0(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B67D4(struct Sprite *sprite)
static void AnimGhostStatusSprite(struct Sprite *sprite)
{
u16 coeffB, coeffA;
@@ -1137,7 +1137,7 @@ static void sub_80B68A8(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
void sub_80B68C8(u8 taskId)
void AnimTask_GrudgeFlames(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -1168,7 +1168,7 @@ static void sub_80B696C(u8 taskId)
case 0:
for (i = 0; i < 6; ++i)
{
spriteId = CreateSprite(&gUnknown_83E76E0, task->data[9], task->data[10], task->data[6]);
spriteId = CreateSprite(&gGrudgeFlameSpriteTemplate, task->data[9], task->data[10], task->data[6]);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].data[0] = taskId;
@@ -1235,7 +1235,7 @@ static void sub_80B696C(u8 taskId)
}
}
static void sub_80B6AF8(struct Sprite *sprite)
static void AnimGrudgeFlame(struct Sprite *sprite)
{
u16 index;
+7 -6
View File
@@ -1019,7 +1019,7 @@ const u32 gBattleAnimBgTilemap_InAir[] = INCBIN_U32("graphics/battle_anims/backg
const u32 gBattleAnimSpriteGfx_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.4bpp.lz");
const u32 gBattleAnimSpritePal_Protect[] = INCBIN_U32("graphics/battle_anims/sprites/protect.gbapal.lz");
const u32 gFile_graphics_battle_anims_backgrounds_water_muddy_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz");
const u32 gBattleAnimBgPalette_MuddyWater[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_muddy.gbapal.lz");
const u32 gFile_graphics_battle_interface_enemy_mon_shadow_sheet[] = INCBIN_U32("graphics/battle_interface/enemy_mon_shadow.4bpp.lz");
@@ -1085,11 +1085,12 @@ const u32 gBattleAnimSpritePal_Bird[] = INCBIN_U32("graphics/battle_anims/sprite
const u32 gBattleAnimSpriteGfx_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.4bpp.lz");
const u32 gBattleAnimSpritePal_CrossImpact[] = INCBIN_U32("graphics/battle_anims/sprites/cross_impact.gbapal.lz");
const u32 gFile_graphics_battle_anims_backgrounds_water_sheet[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz");
const u32 gFile_graphics_battle_anims_backgrounds_water_palette[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz");
const u32 gFile_graphics_unknown_unknown_E81D14_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81D14.bin.lz");
const u32 gFile_graphics_unknown_unknown_E81FE4_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E81FE4.bin.lz");
const u32 gFile_graphics_unknown_unknown_E822B8_tilemap[] = INCBIN_U32("graphics/unknown/unknown_E822B8.bin.lz");
const u32 gBattleAnimBgImage_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.4bpp.lz");
const u32 gBattleAnimBgPalette_Surf[] = INCBIN_U32("graphics/battle_anims/backgrounds/water.gbapal.lz");
const u32 gBattleAnimBgTilemap_SurfOpponent[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_opponent.bin.lz");
const u32 gBattleAnimBgTilemap_SurfPlayer[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_player.bin.lz");
const u32 gBattleAnimBgTilemap_SurfContest[] = INCBIN_U32("graphics/battle_anims/backgrounds/water_contest.bin.lz");
const u32 gBattleAnimSpritePal_Slash2[] = INCBIN_U32("graphics/battle_anims/sprites/slash_2.gbapal.lz");
+23 -23
View File
@@ -26,51 +26,51 @@ static void sub_80B967C(u8 taskId);
static void sub_80B9760(struct Task *task);
static void sub_80B98A8(u8 taskId);
static const union AffineAnimCmd gUnknown_83E7A00[] =
static const union AffineAnimCmd sAffineAnim_Bonemerang[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 15, 1),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd gUnknown_83E7A10[] =
static const union AffineAnimCmd sAffineAnim_SpinningBone[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E7A20[] =
static const union AffineAnimCmd *const sAffineAnims_Bonemerang[] =
{
gUnknown_83E7A00,
sAffineAnim_Bonemerang,
};
static const union AffineAnimCmd *const gUnknown_83E7A24[] =
static const union AffineAnimCmd *const sAffineAnims_SpinningBone[] =
{
gUnknown_83E7A10,
sAffineAnim_SpinningBone,
};
const struct SpriteTemplate gUnknown_83E7A28 =
const struct SpriteTemplate gBonemerangSpriteTemplate =
{
.tileTag = ANIM_TAG_BONE,
.paletteTag = ANIM_TAG_BONE,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7A20,
.affineAnims = sAffineAnims_Bonemerang,
.callback = AnimBonemerangProjectile,
};
const struct SpriteTemplate gUnknown_83E7A40 =
const struct SpriteTemplate gSpinningBoneSpriteTemplate =
{
.tileTag = ANIM_TAG_BONE,
.paletteTag = ANIM_TAG_BONE,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7A24,
.affineAnims = sAffineAnims_SpinningBone,
.callback = AnimBoneHitProjectile,
};
const struct SpriteTemplate gUnknown_83E7A58 =
const struct SpriteTemplate gSandAttackDirtSpriteTemplate =
{
.tileTag = ANIM_TAG_MUD_SAND,
.paletteTag = ANIM_TAG_MUD_SAND,
@@ -81,29 +81,29 @@ const struct SpriteTemplate gUnknown_83E7A58 =
.callback = AnimDirtScatter,
};
static const union AnimCmd gUnknown_83E7A70[] =
static const union AnimCmd sAnim_MudSlapMud[] =
{
ANIMCMD_FRAME(1, 1),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E7A78[] =
static const union AnimCmd *const sAnims_MudSlapMud[] =
{
gUnknown_83E7A70,
sAnim_MudSlapMud,
};
const struct SpriteTemplate gUnknown_83E7A7C =
const struct SpriteTemplate gMudSlapMudSpriteTemplate =
{
.tileTag = ANIM_TAG_MUD_SAND,
.paletteTag = ANIM_TAG_MUD_SAND,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = gUnknown_83E7A78,
.anims = sAnims_MudSlapMud,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimDirtScatter,
};
const struct SpriteTemplate gUnknown_83E7A94 =
const struct SpriteTemplate gMudsportMudSpriteTemplate =
{
.tileTag = ANIM_TAG_MUD_SAND,
.paletteTag = ANIM_TAG_MUD_SAND,
@@ -114,7 +114,7 @@ const struct SpriteTemplate gUnknown_83E7A94 =
.callback = AnimMudSportDirt,
};
const struct SpriteTemplate gUnknown_83E7AAC =
const struct SpriteTemplate gDirtPlumeSpriteTemplate =
{
.tileTag = ANIM_TAG_MUD_SAND,
.paletteTag = ANIM_TAG_MUD_SAND,
@@ -125,7 +125,7 @@ const struct SpriteTemplate gUnknown_83E7AAC =
.callback = AnimFissureDirtPlumeParticle,
};
const struct SpriteTemplate gUnknown_83E7AC4 =
const struct SpriteTemplate gDirtMoundSpriteTemplate =
{
.tileTag = ANIM_TAG_DIRT_MOUND,
.paletteTag = ANIM_TAG_DIRT_MOUND,
@@ -279,7 +279,7 @@ static void AnimMudSportDirtFalling(struct Sprite *sprite)
}
}
void sub_80B8E94(u8 taskId)
void AnimTask_DigDownMovement(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -372,7 +372,7 @@ static void sub_80B908C(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80B90EC(u8 taskId)
void AnimTask_DigUpMovement(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -538,7 +538,7 @@ static void AnimDigDirtMound(struct Sprite *sprite)
sprite->callback = WaitAnimForDuration;
}
void sub_80B94B4(u8 taskId)
void AnimTask_HorizontalShake(u8 taskId)
{
u16 i;
struct Task *task = &gTasks[taskId];
@@ -689,7 +689,7 @@ void AnimTask_IsPowerOver99(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80B9800(u8 taskId)
void AnimTask_PositionFissureBgOnBattler(u8 taskId)
{
struct Task *newTask;
u8 battler = (gBattleAnimArgs[0] & 1) ? gBattleAnimTarget : gBattleAnimAttacker;
+2
View File
@@ -1,5 +1,7 @@
#include "global.h"
#include "malloc.h"
#include "menu.h"
#include "malloc.h"
static EWRAM_DATA u8 sHelpMessageWindowId = 0;
+2
View File
@@ -2,9 +2,11 @@
#include "gflib.h"
#include "decompress.h"
#include "m4a.h"
#include "event_data.h"
#include "help_system.h"
#include "list_menu.h"
#include "strings.h"
#include "event_data.h"
#include "constants/songs.h"
extern u8 gGlyphInfo[];
+107 -106
View File
@@ -74,134 +74,135 @@ static const union AnimCmd gUnknown_83E62E8[] =
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E62F0[] =
static const union AnimCmd sAnim_IceCrystalLarge[] =
{
ANIMCMD_FRAME(4, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E62F8[] =
static const union AnimCmd sAnim_IceCrystalSmall[] =
{
ANIMCMD_FRAME(6, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6300[] =
static const union AnimCmd sAnim_Snowball[] =
{
ANIMCMD_FRAME(7, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6308[] =
static const union AnimCmd sAnim_BlizzardIceCrystal[] =
{
ANIMCMD_FRAME(8, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E6310[] =
static const union AnimCmd sAnim_SmallBubblePair[] =
{
ANIMCMD_FRAME(12, 6),
ANIMCMD_FRAME(13, 6),
ANIMCMD_JUMP(0),
};
// unused
static const union AnimCmd *const gUnknown_83E631C[] =
{
gUnknown_83E62E8,
};
static const union AnimCmd *const gUnknown_83E6320[] =
static const union AnimCmd *const sAnims_IceCrystalLarge[] =
{
gUnknown_83E62F0,
sAnim_IceCrystalLarge,
};
static const union AnimCmd *const gUnknown_83E6324[] =
static const union AnimCmd *const sAnims_IceCrystalSmall[] =
{
gUnknown_83E62F8,
sAnim_IceCrystalSmall,
};
static const union AnimCmd *const gUnknown_83E6328[] =
static const union AnimCmd *const sAnims_Snowball[] =
{
gUnknown_83E6300,
sAnim_Snowball,
};
static const union AnimCmd *const gUnknown_83E632C[] =
static const union AnimCmd *const sAnims_BlizzardIceCrystal[] =
{
gUnknown_83E6308,
sAnim_BlizzardIceCrystal,
};
const union AnimCmd *const gUnknown_83E6330[] =
const union AnimCmd *const gAnims_SmallBubblePair[] =
{
gUnknown_83E6310,
sAnim_SmallBubblePair,
};
static const union AffineAnimCmd gUnknown_83E6334[] =
static const union AffineAnimCmd sAffineAnim_IceCrystalSpiralInwardLarge[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 40, 1),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E6344[] =
static const union AffineAnimCmd *const sAffineAnims_IceCrystalSpiralInwardLarge[] =
{
gUnknown_83E6334,
sAffineAnim_IceCrystalSpiralInwardLarge,
};
const struct SpriteTemplate gUnknown_83E6348 =
const struct SpriteTemplate gIceCrystalSpiralInwardLarge =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineDouble_ObjBlend_8x16,
.anims = gUnknown_83E6320,
.anims = sAnims_IceCrystalLarge,
.images = NULL,
.affineAnims = gUnknown_83E6344,
.affineAnims = sAffineAnims_IceCrystalSpiralInwardLarge,
.callback = AnimIcePunchSwirlingParticle,
};
const struct SpriteTemplate gUnknown_83E6360 =
const struct SpriteTemplate gIceCrystalSpiralInwardSmall =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjBlend_8x8,
.anims = gUnknown_83E6324,
.anims = sAnims_IceCrystalSmall,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimIcePunchSwirlingParticle,
};
static const union AffineAnimCmd gUnknown_83E6378[] =
static const union AffineAnimCmd sAffineAnim_IceBeamInnerCrystal[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E6388[] =
static const union AffineAnimCmd *const sAffineAnims_IceBeamInnerCrystal[] =
{
gUnknown_83E6378,
sAffineAnim_IceBeamInnerCrystal,
};
const struct SpriteTemplate gUnknown_83E638C =
const struct SpriteTemplate gIceBeamInnerCrystalSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineNormal_ObjBlend_8x16,
.anims = gUnknown_83E6320,
.anims = sAnims_IceCrystalLarge,
.images = NULL,
.affineAnims = gUnknown_83E6388,
.affineAnims = sAffineAnims_IceBeamInnerCrystal,
.callback = AnimIceBeamParticle,
};
const struct SpriteTemplate gUnknown_83E63A4 =
const struct SpriteTemplate gIceBeamOuterCrystalSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjBlend_8x8,
.anims = gUnknown_83E6324,
.anims = sAnims_IceCrystalSmall,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimIceBeamParticle,
};
static const union AffineAnimCmd gUnknown_83E63BC[] =
static const union AffineAnimCmd sAffineAnim_IceCrystalHit[] =
{
AFFINEANIMCMD_FRAME(0xCE, 0xCE, 0, 0),
AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10),
@@ -209,67 +210,67 @@ static const union AffineAnimCmd gUnknown_83E63BC[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E63DC[] =
static const union AffineAnimCmd *const sAffineAnims_IceCrystalHit[] =
{
gUnknown_83E63BC,
sAffineAnim_IceCrystalHit,
};
const struct SpriteTemplate gUnknown_83E63E0 =
const struct SpriteTemplate gIceCrystalHitLargeSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineNormal_ObjBlend_8x16,
.anims = gUnknown_83E6320,
.anims = sAnims_IceCrystalLarge,
.images = NULL,
.affineAnims = gUnknown_83E63DC,
.affineAnims = sAffineAnims_IceCrystalHit,
.callback = AnimIceEffectParticle,
};
const struct SpriteTemplate gUnknown_83E63F8 =
const struct SpriteTemplate gIceCrystalHitSmallSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineNormal_ObjBlend_8x8,
.anims = gUnknown_83E6324,
.anims = sAnims_IceCrystalSmall,
.images = NULL,
.affineAnims = gUnknown_83E63DC,
.affineAnims = sAffineAnims_IceCrystalHit,
.callback = AnimIceEffectParticle,
};
const struct SpriteTemplate gUnknown_83E6410 =
const struct SpriteTemplate gSwirlingSnowballSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = gUnknown_83E6328,
.anims = sAnims_Snowball,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSwirlingSnowball_Step1,
};
const struct SpriteTemplate gUnknown_83E6428 =
const struct SpriteTemplate gBlizzardIceCrystalSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = gUnknown_83E632C,
.anims = sAnims_BlizzardIceCrystal,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimMoveParticleBeyondTarget,
};
const struct SpriteTemplate gUnknown_83E6440 =
const struct SpriteTemplate gPowderSnowSnowballSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = gUnknown_83E6328,
.anims = sAnims_Snowball,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimMoveParticleBeyondTarget,
};
static const union AnimCmd gUnknown_83E6458[] =
static const union AnimCmd sAnim_IceGroundSpike[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(2, 5),
@@ -281,51 +282,51 @@ static const union AnimCmd gUnknown_83E6458[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6478[] =
static const union AnimCmd *const sAnims_IceGroundSpike[] =
{
gUnknown_83E6458,
sAnim_IceGroundSpike,
};
const struct SpriteTemplate gUnknown_83E647C =
const struct SpriteTemplate gIceGroundSpikeSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_SPIKES,
.paletteTag = ANIM_TAG_ICE_SPIKES,
.oam = &gOamData_AffineOff_ObjBlend_8x16,
.anims = gUnknown_83E6478,
.anims = sAnims_IceGroundSpike,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimWaveFromCenterOfTarget,
};
static const union AnimCmd gUnknown_83E6494[] =
static const union AnimCmd sAnim_Cloud[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(8, 8),
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E64A0[] =
static const union AnimCmd *const sAnims_Cloud[] =
{
gUnknown_83E6494,
sAnim_Cloud,
};
const struct SpriteTemplate gUnknown_83E64A4 =
const struct SpriteTemplate gMistCloudSpriteTemplate =
{
.tileTag = ANIM_TAG_MIST_CLOUD,
.paletteTag = ANIM_TAG_MIST_CLOUD,
.oam = &gOamData_AffineOff_ObjBlend_32x16,
.anims = gUnknown_83E64A0,
.anims = sAnims_Cloud,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = InitSwirlingFogAnim,
};
const struct SpriteTemplate gUnknown_83E64BC =
const struct SpriteTemplate gSmogCloudSpriteTemplate =
{
.tileTag = ANIM_TAG_PURPLE_GAS_CLOUD,
.paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD,
.oam = &gOamData_AffineOff_ObjBlend_32x16,
.anims = gUnknown_83E64A0,
.anims = sAnims_Cloud,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = InitSwirlingFogAnim,
@@ -336,7 +337,7 @@ static const u8 gUnknown_83E64D4[] =
0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9,
};
const struct SpriteTemplate gUnknown_83E64E8 =
const struct SpriteTemplate gMistBallSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_BUBBLES,
.paletteTag = ANIM_TAG_SMALL_BUBBLES,
@@ -352,18 +353,18 @@ static const u8 gUnknown_83E6500[] =
0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5,
};
const struct SpriteTemplate gUnknown_83E6514 =
const struct SpriteTemplate gPoisonGasCloudSpriteTemplate =
{
.tileTag = ANIM_TAG_PURPLE_GAS_CLOUD,
.paletteTag = ANIM_TAG_PURPLE_GAS_CLOUD,
.oam = &gOamData_AffineOff_ObjBlend_32x16,
.anims = gUnknown_83E64A0,
.anims = sAnims_Cloud,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = InitPoisonGasCloudAnim,
};
static const struct HailStruct gUnknown_83E652C[] =
static const struct HailStruct sHailCoordData[] =
{
{100, 120, 0, 2},
{85, 120, 0, 0},
@@ -377,71 +378,71 @@ static const struct HailStruct gUnknown_83E652C[] =
{38, 120, 2, 0},
};
static const union AffineAnimCmd gUnknown_83E6554[] =
static const union AffineAnimCmd sAffineAnim_HailParticle_0[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6564[] =
static const union AffineAnimCmd sAffineAnim_HailParticle_1[] =
{
AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6574[] =
static const union AffineAnimCmd sAffineAnim_HailParticle_2[] =
{
AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6584[] =
static const union AffineAnimCmd sAffineAnim_WeatherBallIceDown[] =
{
AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6594[] =
static const union AffineAnimCmd *const sAffineAnims_HailParticle[] =
{
gUnknown_83E6554,
gUnknown_83E6564,
gUnknown_83E6574,
sAffineAnim_HailParticle_0,
sAffineAnim_HailParticle_1,
sAffineAnim_HailParticle_2,
};
static const union AffineAnimCmd *const gUnknown_83E65A0[] =
static const union AffineAnimCmd *const sAffineAnims_WeatherBallIceDown[] =
{
gUnknown_83E6584,
sAffineAnim_WeatherBallIceDown,
};
static const struct SpriteTemplate gUnknown_83E65A4 =
static const struct SpriteTemplate sHailParticleSpriteTemplate =
{
.tileTag = ANIM_TAG_HAIL,
.paletteTag = ANIM_TAG_HAIL,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6594,
.affineAnims = sAffineAnims_HailParticle,
.callback = AnimHailBegin,
};
const struct SpriteTemplate gUnknown_83E65BC =
const struct SpriteTemplate gWeatherBallIceDownSpriteTemplate =
{
.tileTag = ANIM_TAG_HAIL,
.paletteTag = ANIM_TAG_HAIL,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E65A0,
.callback = sub_8077350,
.affineAnims = sAffineAnims_WeatherBallIceDown,
.callback = AnimWeatherBallDown,
};
static const union AnimCmd gUnknown_83E65D4[] =
static const union AnimCmd sAnim_IceBallChunk_0[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E65DC[] =
static const union AnimCmd sAnim_IceBallChunk_1[] =
{
ANIMCMD_FRAME(16, 4),
ANIMCMD_FRAME(32, 4),
@@ -450,68 +451,68 @@ static const union AnimCmd gUnknown_83E65DC[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E65F0[] =
static const union AnimCmd *const sAnims_IceBallChunk[] =
{
gUnknown_83E65D4,
gUnknown_83E65DC,
sAnim_IceBallChunk_0,
sAnim_IceBallChunk_1,
};
static const union AffineAnimCmd gUnknown_83E65F8[] =
static const union AffineAnimCmd sAffineAnim_IceBallChunk_0[] =
{
AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6608[] =
static const union AffineAnimCmd sAffineAnim_IceBallChunk_1[] =
{
AFFINEANIMCMD_FRAME(0x118, 0x118, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6618[] =
static const union AffineAnimCmd sAffineAnim_IceBallChunk_2[] =
{
AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6628[] =
static const union AffineAnimCmd sAffineAnim_IceBallChunk_3[] =
{
AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E6638[] =
static const union AffineAnimCmd sAffineAnim_IceBallChunk_4[] =
{
AFFINEANIMCMD_FRAME(0x1C0, 0x1C0, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6648[] =
static const union AffineAnimCmd *const sAffineAnims_IceBallChunk[] =
{
gUnknown_83E65F8,
gUnknown_83E6608,
gUnknown_83E6618,
gUnknown_83E6628,
gUnknown_83E6638,
sAffineAnim_IceBallChunk_0,
sAffineAnim_IceBallChunk_1,
sAffineAnim_IceBallChunk_2,
sAffineAnim_IceBallChunk_3,
sAffineAnim_IceBallChunk_4,
};
const struct SpriteTemplate gUnknown_83E665C =
const struct SpriteTemplate gIceBallChunkSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CHUNK,
.paletteTag = ANIM_TAG_ICE_CHUNK,
.oam = &gOamData_AffineDouble_ObjNormal_32x32,
.anims = gUnknown_83E65F0,
.anims = sAnims_IceBallChunk,
.images = NULL,
.affineAnims = gUnknown_83E6648,
.affineAnims = sAffineAnims_IceBallChunk,
.callback = InitIceBallAnim,
};
const struct SpriteTemplate gUnknown_83E6674 =
const struct SpriteTemplate gIceBallImpactShardSpriteTemplate =
{
.tileTag = ANIM_TAG_ICE_CRYSTALS,
.paletteTag = ANIM_TAG_ICE_CRYSTALS,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = gUnknown_83E6324,
.anims = sAnims_IceCrystalSmall,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = InitIceBallParticle,
@@ -1305,11 +1306,11 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId,
s16 battlerX, battlerY;
s16 spriteX;
bool8 possibleBool = FALSE;
s8 unk = gUnknown_83E652C[hailStructId].unk3;
s8 unk = sHailCoordData[hailStructId].unk3;
if (unk != 2)
{
id = GetBattlerAtPosition(gUnknown_83E652C[hailStructId].unk2);
id = GetBattlerAtPosition(sHailCoordData[hailStructId].unk2);
if (IsBattlerSpriteVisible(id))
{
possibleBool = TRUE;
@@ -1329,17 +1330,17 @@ static bool8 GenerateHailParticle(u8 hailStructId, u8 affineAnimNum, u8 taskId,
}
else
{
battlerX = (gUnknown_83E652C[hailStructId].unk0);
battlerY = (gUnknown_83E652C[hailStructId].unk1);
battlerX = (sHailCoordData[hailStructId].unk0);
battlerY = (sHailCoordData[hailStructId].unk1);
}
}
else
{
battlerX = (gUnknown_83E652C[hailStructId].unk0);
battlerY = (gUnknown_83E652C[hailStructId].unk1);
battlerX = (sHailCoordData[hailStructId].unk0);
battlerY = (sHailCoordData[hailStructId].unk1);
}
spriteX = battlerX - ((battlerY + 8) / 2);
id = CreateSprite(&gUnknown_83E65A4, spriteX, -8, 18);
id = CreateSprite(&sHailParticleSpriteTemplate, spriteX, -8, 18);
if (id == MAX_SPRITES)
{
return FALSE;
@@ -1367,7 +1368,7 @@ static void AnimHailBegin(struct Sprite *sprite)
return;
if (sprite->data[0] == 1 && sprite->data[5] == 0)
{
spriteId = CreateSprite(&gUnknown_83E63E0, sprite->data[3], sprite->data[4], sprite->subpriority);
spriteId = CreateSprite(&gIceCrystalHitLargeSpriteTemplate, sprite->data[3], sprite->data[4], sprite->subpriority);
sprite->data[0] = spriteId;
if (spriteId != 64)
{
+26 -31
View File
@@ -1,3 +1,4 @@
#include <limits.h>
#include "librfu.h"
struct LLSFStruct
@@ -110,7 +111,7 @@ static const struct LLSFStruct llsf_struct[2] = {
#define xstr(s) str(s)
#define str(s) #s
const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION);
static const char version_string[] = "RFU_V" xstr(LIBRFU_VERSION);
static const char str_checkMbootLL[] = "RFU-MBOOT";
@@ -154,16 +155,13 @@ u16 rfu_initializeAPI(u32 *APIBuffer, u16 buffByteSize, IntrFunc *sioIntrTable_p
gRfuStatic = (void *)APIBuffer + 0xb4; // + sizeof(*gRfuLinkStatus)
gRfuFixed = (void *)APIBuffer + 0xdc; // + sizeof(*gRfuStatic)
gRfuSlotStatusNI[0] = (void *)APIBuffer + 0x1bc; // + sizeof(*gRfuFixed)
gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0])
gRfuSlotStatusUNI[0] = (void *)APIBuffer + 0x37c; // + sizeof(*gRfuSlotStatusNI[0]) * RFU_CHILD_MAX
for (i = 1; i < RFU_CHILD_MAX; ++i)
{
gRfuSlotStatusNI[i] = &gRfuSlotStatusNI[i - 1][1];
gRfuSlotStatusUNI[i] = &gRfuSlotStatusUNI[i - 1][1];
}
// TODO: Is it possible to fix the following 2 statements?
// It's equivalent to:
// gRfuFixed->STWIBuffer = &APIBuffer->intr;
// STWI_init_all(&APIBuffer->intr, sioIntrTable_p, copyInterruptToRam);
// remaining space in API buffer is used for `struct RfuIntrStruct`.
gRfuFixed->STWIBuffer = (struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1];
STWI_init_all((struct RfuIntrStruct *)&gRfuSlotStatusUNI[3][1], sioIntrTable_p, copyInterruptToRam);
rfu_STC_clearAPIVariables();
@@ -1800,7 +1798,7 @@ static u16 rfu_STC_NI_constructLLSF(u8 bm_slot_id, u8 **dest_pp, struct NIComm *
}
else
{
if ((u32)NI_comm->remainSize >= NI_comm->payloadSize)
if (NI_comm->remainSize >= NI_comm->payloadSize)
size = NI_comm->payloadSize;
else
size = NI_comm->remainSize;
@@ -2095,34 +2093,31 @@ static void rfu_STC_NI_receive_Sender(u8 NI_slot, u8 bm_flag, const struct RfuLo
else
NI_comm->now_p[llsf_NI->phase] += NI_comm->payloadSize << 2;
NI_comm->remainSize -= NI_comm->payloadSize;
if (NI_comm->remainSize != 0)
if (NI_comm->remainSize >= 0)
goto _081E30AE;
// Above is a hack to avoid optimization over comparison.
// rfu_STC_NI_constructLLSF uses this field as u32.
// It's equivalent to the following condition:
// if (NI_comm->remainSize == 0 || NI_comm->remainSize < 0)
switch (NI_comm->remainSize)
{
default:
case 0:
NI_comm->phase = 0;
if (NI_comm->state == SLOT_STATE_SEND_START)
{
NI_comm->phase = 0;
if (NI_comm->state == SLOT_STATE_SEND_START)
for (i = 0; i < WINDOW_COUNT; ++i)
{
for (i = 0; i < WINDOW_COUNT; ++i)
{
NI_comm->n[i] = 1;
NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i;
}
NI_comm->remainSize = NI_comm->dataSize;
NI_comm->state = SLOT_STATE_SENDING;
}
else
{
NI_comm->n[0] = 0;
NI_comm->remainSize = 0;
NI_comm->state = SLOT_STATE_SEND_LAST;
NI_comm->n[i] = 1;
NI_comm->now_p[i] = NI_comm->src + NI_comm->payloadSize * i;
}
NI_comm->remainSize = NI_comm->dataSize;
NI_comm->state = SLOT_STATE_SENDING;
}
_081E30AE:
;
else
{
NI_comm->n[0] = 0;
NI_comm->remainSize = 0;
NI_comm->state = SLOT_STATE_SEND_LAST;
}
break;
case 1 ... INT_MAX:
break;
}
}
else if (NI_comm->state == SLOT_STATE_SEND_LAST)
{
+64 -64
View File
@@ -7,16 +7,16 @@
static void AnimConfusionDuck(struct Sprite *sprite);
static void AnimSimplePaletteBlend(struct Sprite *sprite);
static void sub_80B9A7C(struct Sprite *sprite);
static void AnimComplexPaletteBlend(struct Sprite *sprite);
static void sub_80B9B8C(struct Sprite *sprite);
static void sub_80BA27C(struct Sprite *sprite);
static void sub_80BA560(struct Sprite *sprite);
static void sub_80BA5F8(struct Sprite *sprite);
static void sub_80BA630(struct Sprite *sprite);
static void sub_80BA6C8(struct Sprite *sprite);
static void sub_80BA738(struct Sprite *sprite);
static void sub_80BA780(struct Sprite *sprite);
static void sub_80BA5A8(struct Sprite *sprite);
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite);
static void AnimHitSplatBasic(struct Sprite *sprite);
static void AnimHitSplatHandleInvert(struct Sprite *sprite);
static void AnimHitSplatRandom(struct Sprite *sprite);
static void AnimHitSplatOnMonEdge(struct Sprite *sprite);
static void AnimCrossImpact(struct Sprite *sprite);
static void AnimFlashingHitSplat(struct Sprite *sprite);
static void AnimHitSplatPersistent(struct Sprite *sprite);
static void AnimConfusionDuckStep(struct Sprite *sprite);
static void AnimSimplePaletteBlendStep(struct Sprite *sprite);
static void sub_80B9AD0(struct Sprite *sprite);
@@ -35,7 +35,7 @@ static void sub_80BA4D0(u8 taskId);
static void sub_80BA7BC(struct Sprite *sprite);
static const union AnimCmd gUnknown_83E7ADC[] =
static const union AnimCmd sAnim_ConfusionDuck_0[] =
{
ANIMCMD_FRAME(0, 8),
ANIMCMD_FRAME(4, 8),
@@ -44,7 +44,7 @@ static const union AnimCmd gUnknown_83E7ADC[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd gUnknown_83E7AF0[] =
static const union AnimCmd sAnim_ConfusionDuck_1[] =
{
ANIMCMD_FRAME(0, 8, .hFlip = TRUE),
ANIMCMD_FRAME(4, 8),
@@ -53,10 +53,10 @@ static const union AnimCmd gUnknown_83E7AF0[] =
ANIMCMD_JUMP(0),
};
static const union AnimCmd *const gUnknown_83E7B04[] =
static const union AnimCmd *const sAnims_ConfusionDuck[] =
{
gUnknown_83E7ADC,
gUnknown_83E7AF0,
sAnim_ConfusionDuck_0,
sAnim_ConfusionDuck_1,
};
const struct SpriteTemplate gConfusionDuckSpriteTemplate =
@@ -64,7 +64,7 @@ const struct SpriteTemplate gConfusionDuckSpriteTemplate =
.tileTag = ANIM_TAG_DUCK,
.paletteTag = ANIM_TAG_DUCK,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = gUnknown_83E7B04,
.anims = sAnims_ConfusionDuck,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimConfusionDuck,
@@ -89,7 +89,7 @@ const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B9A7C,
.callback = AnimComplexPaletteBlend,
};
static const union AnimCmd gUnknown_83E7B54[] =
@@ -118,7 +118,7 @@ const struct SpriteTemplate gUnknown_83E7B70 =
.callback = sub_80B9B8C,
};
const struct SpriteTemplate gUnknown_83E7B88 =
const struct SpriteTemplate gShakeMonOrTerrainSpriteTemplate =
{
.tileTag = 0,
.paletteTag = 0,
@@ -126,42 +126,42 @@ const struct SpriteTemplate gUnknown_83E7B88 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80BA27C,
.callback = AnimShakeMonOrBattleTerrain,
};
static const union AffineAnimCmd gUnknown_83E7BA0[] =
static const union AffineAnimCmd sAffineAnim_HitSplat_0[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7BB0[] =
static const union AffineAnimCmd sAffineAnim_HitSplat_1[] =
{
AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0),
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7BC8[] =
static const union AffineAnimCmd sAffineAnim_HitSplat_2[] =
{
AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0),
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E7BE0[] =
static const union AffineAnimCmd sAffineAnim_HitSplat_3[] =
{
AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E7BF8[] =
static const union AffineAnimCmd *const sAffineAnims_HitSplat[] =
{
gUnknown_83E7BA0,
gUnknown_83E7BB0,
gUnknown_83E7BC8,
gUnknown_83E7BE0,
sAffineAnim_HitSplat_0,
sAffineAnim_HitSplat_1,
sAffineAnim_HitSplat_2,
sAffineAnim_HitSplat_3,
};
const struct SpriteTemplate gBasicHitSplatSpriteTemplate =
@@ -171,55 +171,55 @@ const struct SpriteTemplate gBasicHitSplatSpriteTemplate =
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA560,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimHitSplatBasic,
};
const struct SpriteTemplate gUnknown_83E7C20 =
const struct SpriteTemplate gHandleInvertHitSplatSpriteTemplate =
{
.tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA5F8,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimHitSplatHandleInvert,
};
const struct SpriteTemplate gUnknown_83E7C38 =
const struct SpriteTemplate gWaterHitSplatSpriteTemplate =
{
.tileTag = ANIM_TAG_WATER_IMPACT,
.paletteTag = ANIM_TAG_WATER_IMPACT,
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA560,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimHitSplatBasic,
};
const struct SpriteTemplate gUnknown_83E7C50 =
const struct SpriteTemplate gRandomPosHitSplatSpriteTemplate =
{
.tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA630,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimHitSplatRandom,
};
const struct SpriteTemplate gUnknown_83E7C68 =
const struct SpriteTemplate gMonEdgeHitSplatSpriteTemplate =
{
.tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA6C8,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimHitSplatOnMonEdge,
};
const struct SpriteTemplate gUnknown_83E7C80 =
const struct SpriteTemplate gCrossImpactSpriteTemplate =
{
.tileTag = ANIM_TAG_CROSS_IMPACT,
.paletteTag = ANIM_TAG_CROSS_IMPACT,
@@ -227,29 +227,29 @@ const struct SpriteTemplate gUnknown_83E7C80 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80BA738,
.callback = AnimCrossImpact,
};
const struct SpriteTemplate gUnknown_83E7C98 =
const struct SpriteTemplate gFlashingHitSplatSpriteTemplate =
{
.tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA780,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimFlashingHitSplat,
};
const struct SpriteTemplate gUnknown_83E7CB0 =
const struct SpriteTemplate gPersistHitSplatSpriteTemplate =
{
.tileTag = ANIM_TAG_IMPACT,
.paletteTag = ANIM_TAG_IMPACT,
.oam = &gOamData_AffineNormal_ObjBlend_32x32,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7BF8,
.callback = sub_80BA5A8,
.affineAnims = sAffineAnims_HitSplat,
.callback = AnimHitSplatPersistent,
};
// Moves a spinning duck around the mon's head.
@@ -335,7 +335,7 @@ static void AnimSimplePaletteBlendStep(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B9A7C(struct Sprite *sprite)
static void AnimComplexPaletteBlend(struct Sprite *sprite)
{
u32 selectedPalettes;
@@ -461,7 +461,7 @@ static void sub_80B9C7C(u8 taskId)
}
}
void sub_80B9CE4(u8 taskId)
void AnimTask_BlendColorCycleExclude(u8 taskId)
{
s32 battler;
u32 selectedPalettes = 0;
@@ -527,7 +527,7 @@ static void sub_80B9DF0(u8 taskId)
}
}
void sub_80B9E58(u8 taskId)
void AnimTask_BlendColorCycleByTag(u8 taskId)
{
u8 paletteIndex;
@@ -585,7 +585,7 @@ static void sub_80B9F04(u8 taskId)
}
}
void sub_80B9F6C(u8 taskId)
void AnimTask_FlashAnimTagWithColor(u8 taskId)
{
u8 paletteIndex;
@@ -652,7 +652,7 @@ static void sub_80BA090(u8 taskId)
}
}
void sub_80BA0E8(u8 taskId)
void AnimTask_InvertScreenColor(u8 taskId)
{
u32 selectedPalettes = 0;
u8 attackerBattler = gBattleAnimAttacker;
@@ -708,7 +708,7 @@ static void sub_80BA16C(u8 taskId)
}
}
static void sub_80BA27C(struct Sprite *sprite)
static void AnimShakeMonOrBattleTerrain(struct Sprite *sprite)
{
u16 var0;
@@ -789,7 +789,7 @@ static void sub_80BA3CC(void)
}
}
void sub_80BA47C(u8 taskId)
void AnimTask_ShakeBattleTerrain(u8 taskId)
{
gTasks[taskId].data[0] = gBattleAnimArgs[0];
gTasks[taskId].data[1] = gBattleAnimArgs[1];
@@ -830,7 +830,7 @@ static void sub_80BA4D0(u8 taskId)
}
}
static void sub_80BA560(struct Sprite *sprite)
static void AnimHitSplatBasic(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == 0)
@@ -841,7 +841,7 @@ static void sub_80BA560(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
static void sub_80BA5A8(struct Sprite *sprite)
static void AnimHitSplatPersistent(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == 0)
@@ -853,14 +853,14 @@ static void sub_80BA5A8(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, sub_80B1D3C);
}
static void sub_80BA5F8(struct Sprite *sprite)
static void AnimHitSplatHandleInvert(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER && !IsContest())
gBattleAnimArgs[1] = -gBattleAnimArgs[1];
sub_80BA560(sprite);
AnimHitSplatBasic(sprite);
}
static void sub_80BA630(struct Sprite *sprite)
static void AnimHitSplatRandom(struct Sprite *sprite)
{
if (gBattleAnimArgs[1] == -1)
gBattleAnimArgs[1] = Random() & 3;
@@ -875,7 +875,7 @@ static void sub_80BA630(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_80BA6C8(struct Sprite *sprite)
static void AnimHitSplatOnMonEdge(struct Sprite *sprite)
{
sprite->data[0] = GetAnimBattlerSpriteId(gBattleAnimArgs[0]);
sprite->pos1.x = gSprites[sprite->data[0]].pos1.x + gSprites[sprite->data[0]].pos2.x;
@@ -887,7 +887,7 @@ static void sub_80BA6C8(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAffineAnimEnds;
}
static void sub_80BA738(struct Sprite *sprite)
static void AnimCrossImpact(struct Sprite *sprite)
{
if (gBattleAnimArgs[2] == 0)
InitSpritePosToAnimAttacker(sprite, 1);
@@ -898,7 +898,7 @@ static void sub_80BA738(struct Sprite *sprite)
sprite->callback = WaitAnimForDuration;
}
static void sub_80BA780(struct Sprite *sprite)
static void AnimFlashingHitSplat(struct Sprite *sprite)
{
StartSpriteAffineAnim(sprite, gBattleAnimArgs[3]);
if (gBattleAnimArgs[2] == 0)
+13 -16
View File
@@ -400,30 +400,27 @@ void ApplyNewEncryptionKeyToGameStats(u32 newKey)
// Routines related to object events
static void sub_8054F68(void)
static void LoadObjEventTemplatesFromHeader(void)
{
u8 i, j;
u8 mapGroup;
u8 mapNum;
u8 localId;
const struct MapHeader * linkedMap;
for (i = 0, j = 0; i < gMapHeader.events->objectEventCount; i++)
{
if (gMapHeader.events->objectEvents[i].unk2 == 0xFF)
if (gMapHeader.events->objectEvents[i].inConnection == 0xFF)
{
localId = gMapHeader.events->objectEvents[i].elevation;
mapNum = gMapHeader.events->objectEvents[i].trainerType;
mapGroup = gMapHeader.events->objectEvents[i].trainerRange_berryTreeId;
linkedMap = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum);
gSaveBlock1Ptr->objectEventTemplates[j] = linkedMap->events->objectEvents[localId - 1];
// load "in_connection" object from the connecting map
u8 localId = gMapHeader.events->objectEvents[i].elevation;
u8 mapNum = gMapHeader.events->objectEvents[i].trainerType;
u8 mapGroup = gMapHeader.events->objectEvents[i].trainerRange_berryTreeId;
const struct MapHeader * connectionMap = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum);
gSaveBlock1Ptr->objectEventTemplates[j] = connectionMap->events->objectEvents[localId - 1];
gSaveBlock1Ptr->objectEventTemplates[j].localId = gMapHeader.events->objectEvents[i].localId;
gSaveBlock1Ptr->objectEventTemplates[j].x = gMapHeader.events->objectEvents[i].x;
gSaveBlock1Ptr->objectEventTemplates[j].y = gMapHeader.events->objectEvents[i].y;
gSaveBlock1Ptr->objectEventTemplates[j].elevation = localId;
gSaveBlock1Ptr->objectEventTemplates[j].trainerType = mapNum;
gSaveBlock1Ptr->objectEventTemplates[j].trainerRange_berryTreeId = mapGroup;
gSaveBlock1Ptr->objectEventTemplates[j].unk2 = 0xFF;
gSaveBlock1Ptr->objectEventTemplates[j].inConnection = 0xFF;
j++;
}
else
@@ -758,7 +755,7 @@ void LoadMapFromCameraTransition(u8 mapGroup, u8 mapNum)
Overworld_TryMapConnectionMusicTransition();
ApplyCurrentWarp();
LoadCurrentMapData();
sub_8054F68();
LoadObjEventTemplatesFromHeader();
TrySetMapSaveWarpStatus();
ClearTempFieldEventData();
ResetCyclingRoadChallengeData();
@@ -791,7 +788,7 @@ static void mli0_load_map(bool32 a1)
bool8 isOutdoors;
LoadCurrentMapData();
sub_8054F68();
LoadObjEventTemplatesFromHeader();
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
TrySetMapSaveWarpStatus();
@@ -818,7 +815,7 @@ static void sub_80559A8(void)
bool8 isOutdoors;
LoadCurrentMapData();
sub_8054F68();
LoadObjEventTemplatesFromHeader();
isOutdoors = IsMapTypeOutdoors(gMapHeader.mapType);
TrySetMapSaveWarpStatus();
SetSav1WeatherFromCurrMapHeader();
+54 -54
View File
@@ -2,17 +2,17 @@
#include "battle_anim.h"
#include "trig.h"
static void sub_80B1620(struct Sprite *sprite);
static void sub_80B16A0(struct Sprite *sprite);
static void sub_80B1744(struct Sprite *sprite);
static void sub_80B17C4(struct Sprite *sprite);
static void AnimSludgeProjectile(struct Sprite *sprite);
static void AnimAcidPoisonBubble(struct Sprite *sprite);
static void AnimSludgeBombHitParticle(struct Sprite *sprite);
static void AnimAcidPoisonDroplet(struct Sprite *sprite);
static void AnimBubbleEffect(struct Sprite *sprite);
static void sub_80B1684(struct Sprite *sprite);
static void sub_80B1728(struct Sprite *sprite);
static void sub_80B1798(struct Sprite *sprite);
static void AnimBubbleEffectStep(struct Sprite *sprite);
static const union AnimCmd gUnknown_83E6994[] =
static const union AnimCmd sAnim_ToxicBubble[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(8, 5),
@@ -21,56 +21,56 @@ static const union AnimCmd gUnknown_83E6994[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E69A8[] =
static const union AnimCmd *const sAnims_ToxicBubble[] =
{
gUnknown_83E6994,
sAnim_ToxicBubble,
};
const struct SpriteTemplate gUnknown_83E69AC =
const struct SpriteTemplate gToxicBubbleSpriteTemplate =
{
.tileTag = ANIM_TAG_TOXIC_BUBBLE,
.paletteTag = ANIM_TAG_TOXIC_BUBBLE,
.oam = &gOamData_AffineOff_ObjNormal_16x32,
.anims = gUnknown_83E69A8,
.anims = sAnims_ToxicBubble,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimSpriteOnMonPos,
};
static const union AnimCmd gUnknown_83E69C4[] =
static const union AnimCmd sAnim_PoisonProjectile[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E69CC[] =
static const union AnimCmd sAnim_AcidPoisonDroplet[] =
{
ANIMCMD_FRAME(4, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E69D4[] =
static const union AnimCmd sAnim_SludgeBombHit[] =
{
ANIMCMD_FRAME(8, 1),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E69DC[] =
static const union AnimCmd *const sAnims_PoisonProjectile[] =
{
gUnknown_83E69C4,
sAnim_PoisonProjectile,
};
static const union AnimCmd *const gUnknown_83E69E0[] =
static const union AnimCmd *const sAnims_AcidPoisonDroplet[] =
{
gUnknown_83E69CC,
sAnim_AcidPoisonDroplet,
};
static const union AnimCmd *const gUnknown_83E69E4[] =
static const union AnimCmd *const sAnims_SludgeBombHit[] =
{
gUnknown_83E69D4,
sAnim_SludgeBombHit,
};
static const union AffineAnimCmd gUnknown_83E69E8[] =
static const union AffineAnimCmd sAffineAnim_PoisonProjectile[] =
{
AFFINEANIMCMD_FRAME(0x160, 0x160, 0, 0),
AFFINEANIMCMD_FRAME(-0xA, -0xA, 0, 10),
@@ -78,88 +78,88 @@ static const union AffineAnimCmd gUnknown_83E69E8[] =
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd gUnknown_83E6A08[] =
static const union AffineAnimCmd sAffineAnim_SludgeBombHit[] =
{
AFFINEANIMCMD_FRAME(0xEC, 0xEC, 0, 0),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6A18[] =
static const union AffineAnimCmd *const sAffineAnims_PoisonProjectile[] =
{
gUnknown_83E69E8,
sAffineAnim_PoisonProjectile,
};
static const union AffineAnimCmd *const gUnknown_83E6A1C[] =
static const union AffineAnimCmd *const sAffineAnims_SludgeBombHit[] =
{
gUnknown_83E6A08,
sAffineAnim_SludgeBombHit,
};
const struct SpriteTemplate gUnknown_83E6A20 =
const struct SpriteTemplate gSludgeProjectileSpriteTemplate =
{
.tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = gUnknown_83E69DC,
.anims = sAnims_PoisonProjectile,
.images = NULL,
.affineAnims = gUnknown_83E6A18,
.callback = sub_80B1620,
.affineAnims = sAffineAnims_PoisonProjectile,
.callback = AnimSludgeProjectile,
};
const struct SpriteTemplate gUnknown_83E6A38 =
const struct SpriteTemplate gAcidPoisonBubbleSpriteTemplate =
{
.tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = gUnknown_83E69DC,
.anims = sAnims_PoisonProjectile,
.images = NULL,
.affineAnims = gUnknown_83E6A18,
.callback = sub_80B16A0,
.affineAnims = sAffineAnims_PoisonProjectile,
.callback = AnimAcidPoisonBubble,
};
const struct SpriteTemplate gUnknown_83E6A50 =
const struct SpriteTemplate gSludgeBombHitParticleSpriteTemplate =
{
.tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gUnknown_83E69E4,
.anims = sAnims_SludgeBombHit,
.images = NULL,
.affineAnims = gUnknown_83E6A1C,
.callback = sub_80B1744,
.affineAnims = sAffineAnims_SludgeBombHit,
.callback = AnimSludgeBombHitParticle,
};
static const union AffineAnimCmd gUnknown_83E6A68[] =
static const union AffineAnimCmd sAffineAnim_AcidPoisonDroplet[] =
{
AFFINEANIMCMD_FRAME(-0x10, 0x10, 0, 6),
AFFINEANIMCMD_FRAME(0x10, -0x10, 0, 6),
AFFINEANIMCMD_JUMP(0),
};
const union AffineAnimCmd *const gUnknown_83E6A80[] =
const union AffineAnimCmd *const gAffineAnims_Droplet[] =
{
gUnknown_83E6A68,
sAffineAnim_AcidPoisonDroplet,
};
const struct SpriteTemplate gUnknown_83E6A84 =
const struct SpriteTemplate gAcidPoisonDropletSpriteTemplate =
{
.tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineDouble_ObjNormal_16x16,
.anims = gUnknown_83E69E0,
.anims = sAnims_AcidPoisonDroplet,
.images = NULL,
.affineAnims = gUnknown_83E6A80,
.callback = sub_80B17C4,
.affineAnims = gAffineAnims_Droplet,
.callback = AnimAcidPoisonDroplet,
};
static const union AffineAnimCmd gUnknown_83E6A9C[] =
static const union AffineAnimCmd sAffineAnim_Bubble[] =
{
AFFINEANIMCMD_FRAME(0x9C, 0x9C, 0, 0),
AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 20),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6AB4[] =
static const union AffineAnimCmd *const sAffineAnims_Bubble[] =
{
gUnknown_83E6A9C,
sAffineAnim_Bubble,
};
const struct SpriteTemplate gPoisonBubbleSpriteTemplate =
@@ -167,9 +167,9 @@ const struct SpriteTemplate gPoisonBubbleSpriteTemplate =
.tileTag = ANIM_TAG_POISON_BUBBLE,
.paletteTag = ANIM_TAG_POISON_BUBBLE,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gUnknown_83E69DC,
.anims = sAnims_PoisonProjectile,
.images = NULL,
.affineAnims = gUnknown_83E6AB4,
.affineAnims = sAffineAnims_Bubble,
.callback = AnimBubbleEffect,
};
@@ -178,13 +178,13 @@ const struct SpriteTemplate gWaterBubbleSpriteTemplate =
.tileTag = ANIM_TAG_SMALL_BUBBLES,
.paletteTag = ANIM_TAG_SMALL_BUBBLES,
.oam = &gOamData_AffineNormal_ObjBlend_16x16,
.anims = gUnknown_83E5A78,
.anims = gAnims_WaterBubble,
.images = NULL,
.affineAnims = gUnknown_83E6AB4,
.affineAnims = sAffineAnims_Bubble,
.callback = AnimBubbleEffect,
};
static void sub_80B1620(struct Sprite *sprite)
static void AnimSludgeProjectile(struct Sprite *sprite)
{
if (!gBattleAnimArgs[3])
StartSpriteAnim(sprite, 2);
@@ -203,7 +203,7 @@ static void sub_80B1684(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B16A0(struct Sprite *sprite)
static void AnimAcidPoisonBubble(struct Sprite *sprite)
{
s16 l1, l2;
@@ -227,7 +227,7 @@ static void sub_80B1728(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B1744(struct Sprite *sprite)
static void AnimSludgeBombHitParticle(struct Sprite *sprite)
{
sprite->data[0] = gBattleAnimArgs[2];
sprite->data[1] = sprite->pos1.x;
@@ -249,7 +249,7 @@ static void sub_80B1798(struct Sprite *sprite)
DestroyAnimSprite(sprite);
}
static void sub_80B17C4(struct Sprite *sprite)
static void AnimAcidPoisonDroplet(struct Sprite *sprite)
{
SetAverageBattlerPositions(gBattleAnimTarget, TRUE, &sprite->pos1.x, &sprite->pos1.y);
if (GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER)
+1 -1
View File
@@ -4819,7 +4819,7 @@ static void sub_8042D50(int stat)
gBattlerTarget = gBattlerInMenuId;
StringCopy(gBattleTextBuff1, gStatNamesTable[gUnknown_825DFF0[stat]]);
StringCopy(gBattleTextBuff2, gBattleText_Rose);
BattleStringExpandPlaceholdersToDisplayedString(gBattleText_UnknownString3);
BattleStringExpandPlaceholdersToDisplayedString(gText_PkmnsStatChanged2);
}
const u8 *Battle_PrintStatBoosterEffectMessage(u16 itemId)
+102 -102
View File
@@ -5,13 +5,13 @@
#include "trig.h"
#include "constants/songs.h"
static void sub_80B2ECC(struct Sprite *sprite);
static void sub_80B31D0(struct Sprite *sprite);
static void sub_80B3278(struct Sprite *sprite);
static void sub_80B32F4(struct Sprite *sprite);
static void sub_80B37EC(struct Sprite *sprite);
static void sub_80B3A34(struct Sprite *sprite);
static void sub_80B3E84(struct Sprite *sprite);
static void AnimDefensiveWall(struct Sprite *sprite);
static void AnimWallSparkle(struct Sprite *sprite);
static void AnimBentSpoon(struct Sprite *sprite);
static void AnimQuestionMark(struct Sprite *sprite);
static void AnimRedX(struct Sprite *sprite);
static void AnimSkillSwapOrb(struct Sprite *sprite);
static void AnimPsychoBoost(struct Sprite *sprite);
static void sub_80B300C(struct Sprite *sprite);
static void sub_80B3044(struct Sprite *sprite);
static void sub_80B30B0(struct Sprite *sprite);
@@ -25,30 +25,30 @@ static void sub_80B3980(u8 taskId);
static void sub_80B3B78(u8 taskId);
static void sub_80B3D78(u8 taskId);
static const union AffineAnimCmd gUnknown_83E6DDC[] =
static const union AffineAnimCmd sAffineAnim_PsychUpSpiral[] =
{
AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
AFFINEANIMCMD_FRAME(-0x2, -0x2, -10, 120),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6DF4[] =
static const union AffineAnimCmd *const sAffineAnims_PsychUpSpiral[] =
{
gUnknown_83E6DDC,
sAffineAnim_PsychUpSpiral,
};
const struct SpriteTemplate gUnknown_83E6DF8 =
const struct SpriteTemplate gPsychUpSpiralSpriteTemplate =
{
.tileTag = ANIM_TAG_SPIRAL,
.paletteTag = ANIM_TAG_SPIRAL,
.oam = &gOamData_AffineNormal_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E6DF4,
.affineAnims = sAffineAnims_PsychUpSpiral,
.callback = AnimSpriteOnMonPos,
};
const struct SpriteTemplate gUnknown_83E6E10 =
const struct SpriteTemplate gLightScreenWallSpriteTemplate =
{
.tileTag = ANIM_TAG_GREEN_LIGHT_WALL,
.paletteTag = ANIM_TAG_GREEN_LIGHT_WALL,
@@ -56,10 +56,10 @@ const struct SpriteTemplate gUnknown_83E6E10 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2ECC,
.callback = AnimDefensiveWall,
};
const struct SpriteTemplate gUnknown_83E6E28 =
const struct SpriteTemplate gReflectWallSpriteTemplate =
{
.tileTag = ANIM_TAG_BLUE_LIGHT_WALL,
.paletteTag = ANIM_TAG_BLUE_LIGHT_WALL,
@@ -67,10 +67,10 @@ const struct SpriteTemplate gUnknown_83E6E28 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2ECC,
.callback = AnimDefensiveWall,
};
const struct SpriteTemplate gUnknown_83E6E40 =
const struct SpriteTemplate gMirrorCoatWallSpriteTemplate =
{
.tileTag = ANIM_TAG_RED_LIGHT_WALL,
.paletteTag = ANIM_TAG_RED_LIGHT_WALL,
@@ -78,10 +78,10 @@ const struct SpriteTemplate gUnknown_83E6E40 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2ECC,
.callback = AnimDefensiveWall,
};
const struct SpriteTemplate gUnknown_83E6E58 =
const struct SpriteTemplate gBarrierWallSpriteTemplate =
{
.tileTag = ANIM_TAG_GRAY_LIGHT_WALL,
.paletteTag = ANIM_TAG_GRAY_LIGHT_WALL,
@@ -89,10 +89,10 @@ const struct SpriteTemplate gUnknown_83E6E58 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2ECC,
.callback = AnimDefensiveWall,
};
const struct SpriteTemplate gUnknown_83E6E70 =
const struct SpriteTemplate gMagicCoatWallSpriteTemplate =
{
.tileTag = ANIM_TAG_ORANGE_LIGHT_WALL,
.paletteTag = ANIM_TAG_ORANGE_LIGHT_WALL,
@@ -100,10 +100,10 @@ const struct SpriteTemplate gUnknown_83E6E70 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B2ECC,
.callback = AnimDefensiveWall,
};
static const union AnimCmd gUnknown_83E6E88[] =
static const union AnimCmd sAnim_ReflectSparkle[] =
{
ANIMCMD_FRAME(0, 3),
ANIMCMD_FRAME(16, 3),
@@ -113,23 +113,23 @@ static const union AnimCmd gUnknown_83E6E88[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6EA0[] =
static const union AnimCmd *const sAnims_ReflectSparkle[] =
{
gUnknown_83E6E88,
sAnim_ReflectSparkle,
};
const struct SpriteTemplate gUnknown_83E6EA4 =
const struct SpriteTemplate gReflectSparkleSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARKLE_4,
.paletteTag = ANIM_TAG_SPARKLE_4,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E6EA0,
.anims = sAnims_ReflectSparkle,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B31D0,
.callback = AnimWallSparkle,
};
static const union AnimCmd gUnknown_83E6EBC[] =
static const union AnimCmd sAnim_SpecialScreenSparkle[] =
{
ANIMCMD_FRAME(0, 5),
ANIMCMD_FRAME(4, 5),
@@ -138,23 +138,23 @@ static const union AnimCmd gUnknown_83E6EBC[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6ED0[] =
static const union AnimCmd *const sAnims_SpecialScreenSparkle[] =
{
gUnknown_83E6EBC,
sAnim_SpecialScreenSparkle,
};
const struct SpriteTemplate gUnknown_83E6ED4 =
const struct SpriteTemplate gSpecialScreenSparkleSpriteTemplate =
{
.tileTag = ANIM_TAG_SPARKLE_3,
.paletteTag = ANIM_TAG_SPARKLE_3,
.oam = &gOamData_AffineOff_ObjNormal_16x16,
.anims = gUnknown_83E6ED0,
.anims = sAnims_SpecialScreenSparkle,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B31D0,
.callback = AnimWallSparkle,
};
const struct SpriteTemplate gUnknown_83E6EEC =
const struct SpriteTemplate gGoldRingSpriteTemplate =
{
.tileTag = ANIM_TAG_GOLD_RING,
.paletteTag = ANIM_TAG_GOLD_RING,
@@ -165,7 +165,7 @@ const struct SpriteTemplate gUnknown_83E6EEC =
.callback = TranslateAnimSpriteToTargetMonLocation,
};
static const union AnimCmd gUnknown_83E6F04[] =
static const union AnimCmd sAnim_BentSpoon_0[] =
{
ANIMCMD_FRAME(8, 60, .hFlip = TRUE),
ANIMCMD_FRAME(16, 5, .hFlip = TRUE),
@@ -185,7 +185,7 @@ static const union AnimCmd gUnknown_83E6F04[] =
ANIMCMD_END,
};
const union AnimCmd gUnknown_83E6F44[] =
static const union AnimCmd sAnim_BentSpoon_1[] =
{
ANIMCMD_FRAME(8, 60),
ANIMCMD_FRAME(16, 5),
@@ -205,24 +205,24 @@ const union AnimCmd gUnknown_83E6F44[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6F84[] =
static const union AnimCmd *const sAnims_BentSpoon[] =
{
gUnknown_83E6F04,
gUnknown_83E6F44,
sAnim_BentSpoon_0,
sAnim_BentSpoon_1,
};
const struct SpriteTemplate gUnknown_83E6F8C =
const struct SpriteTemplate gBentSpoonSpriteTemplate =
{
.tileTag = ANIM_TAG_BENT_SPOON,
.paletteTag = ANIM_TAG_BENT_SPOON,
.oam = &gOamData_AffineOff_ObjNormal_16x32,
.anims = gUnknown_83E6F84,
.anims = sAnims_BentSpoon,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B3278,
.callback = AnimBentSpoon,
};
static const union AnimCmd gUnknown_83E6FA4[] =
static const union AnimCmd sAnim_QuestionMark[] =
{
ANIMCMD_FRAME(0, 6),
ANIMCMD_FRAME(16, 6),
@@ -234,12 +234,12 @@ static const union AnimCmd gUnknown_83E6FA4[] =
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E6FC4[] =
static const union AnimCmd *const sAnims_QuestionMark[] =
{
gUnknown_83E6FA4,
sAnim_QuestionMark,
};
static const union AffineAnimCmd gUnknown_83E6FC8[] =
static const union AffineAnimCmd sAffineAnim_QuestionMark[] =
{
AFFINEANIMCMD_FRAME(0, 0, 4, 4),
AFFINEANIMCMD_FRAME(0, 0, -4, 8),
@@ -248,23 +248,23 @@ static const union AffineAnimCmd gUnknown_83E6FC8[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E6FF0[] =
static const union AffineAnimCmd *const sAffineAnims_QuestionMark[] =
{
gUnknown_83E6FC8,
sAffineAnim_QuestionMark,
};
const struct SpriteTemplate gUnknown_83E6FF4 =
const struct SpriteTemplate gQuestionMarkSpriteTemplate =
{
.tileTag = ANIM_TAG_AMNESIA,
.paletteTag = ANIM_TAG_AMNESIA,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E6FC4,
.anims = sAnims_QuestionMark,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B32F4,
.callback = AnimQuestionMark,
};
static const union AffineAnimCmd gUnknown_83E700C[] =
static const union AffineAnimCmd sAffineAnim_MeditateStretchAttacker[] =
{
AFFINEANIMCMD_FRAME(-8, 10, 0, 16),
AFFINEANIMCMD_FRAME(18, -18, 0, 16),
@@ -272,14 +272,14 @@ static const union AffineAnimCmd gUnknown_83E700C[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E702C[] =
static const union AffineAnimCmd sAffineAnim_Teleport[] =
{
AFFINEANIMCMD_FRAME(64, -4, 0, 20),
AFFINEANIMCMD_FRAME(0, 0, 0, -56),
AFFINEANIMCMD_END,
};
static const struct SpriteTemplate gUnknown_83E7044 =
static const struct SpriteTemplate sImprisonOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_HOLLOW_ORB,
.paletteTag = ANIM_TAG_HOLLOW_ORB,
@@ -290,25 +290,25 @@ static const struct SpriteTemplate gUnknown_83E7044 =
.callback = SpriteCallbackDummy,
};
const struct SpriteTemplate gUnknown_83E705C =
const struct SpriteTemplate gRedXSpriteTemplate =
{
.tileTag = 0x280A,
.paletteTag = 0x280A,
.tileTag = ANIM_TAG_X_SIGN,
.paletteTag = ANIM_TAG_X_SIGN,
.oam = &gOamData_AffineOff_ObjNormal_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B37EC,
.callback = AnimRedX,
};
static const union AffineAnimCmd gUnknown_83E7074[] =
static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_0[] =
{
AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 8),
AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd gUnknown_83E708C[] =
static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_1[] =
{
AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0),
AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 6),
@@ -317,7 +317,7 @@ static const union AffineAnimCmd gUnknown_83E708C[] =
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd gUnknown_83E70B4[] =
static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_2[] =
{
AFFINEANIMCMD_FRAME(0xD0, 0xD0, 0, 0),
AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 4),
@@ -326,7 +326,7 @@ static const union AffineAnimCmd gUnknown_83E70B4[] =
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd gUnknown_83E70DC[] =
static const union AffineAnimCmd sAffineAnim_SkillSwapOrb_3[] =
{
AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0),
AFFINEANIMCMD_FRAME(-0x8, -0x8, 0, 2),
@@ -335,49 +335,49 @@ static const union AffineAnimCmd gUnknown_83E70DC[] =
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E7104[] =
static const union AffineAnimCmd *const sAffineAnims_SkillSwapOrb[] =
{
gUnknown_83E7074,
gUnknown_83E708C,
gUnknown_83E70B4,
gUnknown_83E70DC,
sAffineAnim_SkillSwapOrb_0,
sAffineAnim_SkillSwapOrb_1,
sAffineAnim_SkillSwapOrb_2,
sAffineAnim_SkillSwapOrb_3,
};
static const struct SpriteTemplate gUnknown_83E7114 =
static const struct SpriteTemplate sSkillSwapOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_BLUEGREEN_ORB,
.paletteTag = ANIM_TAG_BLUEGREEN_ORB,
.oam = &gOamData_AffineNormal_ObjNormal_16x16,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7104,
.callback = sub_80B3A34,
.affineAnims = sAffineAnims_SkillSwapOrb,
.callback = AnimSkillSwapOrb,
};
static const union AffineAnimCmd gUnknown_83E712C[] =
static const union AffineAnimCmd sAffineAnim_LusterPurgeCircle[] =
{
AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0),
AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 120),
AFFINEANIMCMD_END_ALT(1),
};
static const union AffineAnimCmd *const gUnknown_83E7144[] =
static const union AffineAnimCmd *const gAffineAnims_LusterPurgeCircle[] =
{
gUnknown_83E712C,
sAffineAnim_LusterPurgeCircle,
};
const struct SpriteTemplate gUnknown_83E7148 =
const struct SpriteTemplate gLusterPurgeCircleSpriteTemplate =
{
.tileTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineDouble_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E7144,
.affineAnims = gAffineAnims_LusterPurgeCircle,
.callback = AnimSpriteOnMonPos,
};
static const union AffineAnimCmd gUnknown_83E7160[] =
static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_0[] =
{
AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0),
AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 17),
@@ -392,30 +392,30 @@ static const union AffineAnimCmd gUnknown_83E7160[] =
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd gUnknown_83E71B8[] =
static const union AffineAnimCmd sAffineAnim_PsychoBoostOrb_1[] =
{
AFFINEANIMCMD_FRAME(-0x14, 0x18, 0, 15),
AFFINEANIMCMD_END,
};
static const union AffineAnimCmd *const gUnknown_83E71C8[] =
static const union AffineAnimCmd *const sAffineAnims_PsychoBoostOrb[] =
{
gUnknown_83E7160,
gUnknown_83E71B8,
sAffineAnim_PsychoBoostOrb_0,
sAffineAnim_PsychoBoostOrb_1,
};
const struct SpriteTemplate gUnknown_83E71D0 =
const struct SpriteTemplate gPsychoBoostOrbSpriteTemplate =
{
.tileTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT,
.oam = &gOamData_AffineDouble_ObjBlend_64x64,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gUnknown_83E71C8,
.callback = sub_80B3E84,
.affineAnims = sAffineAnims_PsychoBoostOrb,
.callback = AnimPsychoBoost,
};
static void sub_80B2ECC(struct Sprite *sprite)
static void AnimDefensiveWall(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER || IsContest())
{
@@ -531,7 +531,7 @@ static void sub_80B3168(struct Sprite *sprite)
sprite->callback = DestroyAnimSprite;
}
static void sub_80B31D0(struct Sprite *sprite)
static void AnimWallSparkle(struct Sprite *sprite)
{
if (sprite->data[0] == 0)
{
@@ -568,7 +568,7 @@ static void sub_80B31D0(struct Sprite *sprite)
}
}
static void sub_80B3278(struct Sprite *sprite)
static void AnimBentSpoon(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_X_2);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, BATTLER_COORD_Y_PIC_OFFSET);
@@ -589,7 +589,7 @@ static void sub_80B3278(struct Sprite *sprite)
sprite->callback = RunStoredCallbackWhenAnimEnds;
}
static void sub_80B32F4(struct Sprite *sprite)
static void AnimQuestionMark(struct Sprite *sprite)
{
s16 x = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_WIDTH) / 2;
s16 y = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_HEIGHT) / -2;
@@ -607,7 +607,7 @@ static void sub_80B32F4(struct Sprite *sprite)
static void sub_80B3384(struct Sprite *sprite)
{
sprite->oam.affineMode = ST_OAM_AFFINE_NORMAL;
sprite->affineAnims = gUnknown_83E6FF0;
sprite->affineAnims = sAffineAnims_QuestionMark;
sprite->data[0] = 0;
InitSpriteAffineAnim(sprite);
sprite->callback = sub_80B33B8;
@@ -633,13 +633,13 @@ static void sub_80B33B8(struct Sprite *sprite)
}
}
void sub_80B3418(u8 taskId)
void AnimTask_MeditateStretchAttacker(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
task->data[0] = spriteId;
PrepareAffineAnimInTaskData(task, spriteId, gUnknown_83E700C);
PrepareAffineAnimInTaskData(task, spriteId, sAffineAnim_MeditateStretchAttacker);
task->func = sub_80B3454;
}
@@ -649,7 +649,7 @@ static void sub_80B3454(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80B3480(u8 taskId)
void AnimTask_Teleport(u8 taskId)
{
struct Task *task = &gTasks[taskId];
u8 spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
@@ -658,7 +658,7 @@ void sub_80B3480(u8 taskId)
task->data[1] = 0;
task->data[2] = 0;
task->data[3] = GetBattlerSide(gBattleAnimAttacker) != B_SIDE_PLAYER ? 4 : 8;
PrepareAffineAnimInTaskData(task, task->data[0], gUnknown_83E702C);
PrepareAffineAnimInTaskData(task, task->data[0], sAffineAnim_Teleport);
task->func = sub_80B34DC;
}
@@ -690,7 +690,7 @@ static void sub_80B34DC(u8 taskId)
}
}
void sub_80B3584(u8 taskId)
void AnimTask_ImprisonOrbs(u8 taskId)
{
u16 var0, var1;
struct Task *task = &gTasks[taskId];
@@ -719,7 +719,7 @@ static void sub_80B3618(u8 taskId)
if (++task->data[1] > 8)
{
task->data[1] = 0;
spriteId = CreateSprite(&gUnknown_83E7044, task->data[13], task->data[14], 0);
spriteId = CreateSprite(&sImprisonOrbSpriteTemplate, task->data[13], task->data[14], 0);
task->data[task->data[2] + 8] = spriteId;
if (spriteId != MAX_SPRITES)
{
@@ -782,7 +782,7 @@ static void sub_80B37A4(struct Sprite *sprite)
++sprite->data[1];
}
static void sub_80B37EC(struct Sprite *sprite)
static void AnimRedX(struct Sprite *sprite)
{
if (gBattleAnimArgs[0] == 0)
{
@@ -793,7 +793,7 @@ static void sub_80B37EC(struct Sprite *sprite)
sprite->callback = sub_80B37A4;
}
void sub_80B3834(u8 taskId)
void AnimTask_SkillSwap(u8 taskId)
{
struct Task *task = &gTasks[taskId];
@@ -850,7 +850,7 @@ static void sub_80B3980(u8 taskId)
if (++task->data[1] > 6)
{
task->data[1] = 0;
spriteId = CreateSprite(&gUnknown_83E7114, task->data[11], task->data[12], 0);
spriteId = CreateSprite(&sSkillSwapOrbSpriteTemplate, task->data[11], task->data[12], 0);
if (spriteId != 64)
{
gSprites[spriteId].data[0] = 16;
@@ -872,7 +872,7 @@ static void sub_80B3980(u8 taskId)
}
}
static void sub_80B3A34(struct Sprite *sprite)
static void AnimSkillSwapOrb(struct Sprite *sprite)
{
if (TranslateAnimHorizontalArc(sprite))
{
@@ -881,7 +881,7 @@ static void sub_80B3A34(struct Sprite *sprite)
}
}
void sub_80B3A58(u8 taskId)
void AnimTask_ExtrasensoryDistortion(u8 taskId)
{
s16 i;
u8 yOffset;
@@ -969,7 +969,7 @@ static void sub_80B3B78(u8 taskId)
}
}
void sub_80B3C78(u8 taskId)
void AnimTask_TransparentCloneGrowAndShrink(u8 taskId)
{
s16 spriteId;
s16 matrixNum;
@@ -1034,7 +1034,7 @@ static void sub_80B3D78(u8 taskId)
}
}
static void sub_80B3E84(struct Sprite *sprite)
static void AnimPsychoBoost(struct Sprite *sprite)
{
switch (sprite->data[0])
{
+91 -91
View File
@@ -6,16 +6,16 @@
#include "trig.h"
#include "constants/songs.h"
static void sub_80B4634(struct Sprite *sprite);
static void sub_80B46F8(struct Sprite *sprite);
static void AnimFallingRock(struct Sprite *sprite);
static void AnimRockFragment(struct Sprite *sprite);
static void AnimDirtParticleAcrossScreen(struct Sprite *sprite);
static void AnimRaiseSprite(struct Sprite *sprite);
static void sub_80B4D00(u8 taskId);
static void sub_80B4F78(struct Sprite *sprite);
static void sub_80B4FE4(struct Sprite *sprite);
static void sub_80B5074(struct Sprite *sprite);
static void sub_80B50A0(struct Sprite *sprite);
static void sub_80B477C(struct Sprite *sprite);
static void AnimRolloutParticle(struct Sprite *sprite);
static void AnimRockTomb(struct Sprite *sprite);
static void AnimRockBlastRock(struct Sprite *sprite);
static void AnimRockScatter(struct Sprite *sprite);
static void AnimParticleInVortex(struct Sprite *sprite);
static void sub_80B46B4(struct Sprite *sprite);
static void sub_80B47C4(struct Sprite *sprite);
static void sub_80B490C(u8 taskId);
@@ -24,54 +24,54 @@ static u8 sub_80B4FB8(void);
static void sub_80B5024(struct Sprite *sprite);
static void sub_80B50F8(struct Sprite *sprite);
static const union AnimCmd gUnknown_83E7390[] =
static const union AnimCmd sAnim_FlyingRock_0[] =
{
ANIMCMD_FRAME(32, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E7398[] =
static const union AnimCmd sAnim_FlyingRock_1[] =
{
ANIMCMD_FRAME(48, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E73A0[] =
static const union AnimCmd sAnim_FlyingRock_2[] =
{
ANIMCMD_FRAME(64, 1),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E73A8[] =
static const union AnimCmd *const sAnims_FlyingRock[] =
{
gUnknown_83E7390,
gUnknown_83E7398,
gUnknown_83E73A0,
sAnim_FlyingRock_0,
sAnim_FlyingRock_1,
sAnim_FlyingRock_2,
};
const struct SpriteTemplate gUnknown_83E73B4 =
const struct SpriteTemplate gFallingRockSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E73A8,
.anims = sAnims_FlyingRock,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B4634,
.callback = AnimFallingRock,
};
const struct SpriteTemplate gUnknown_83E73CC =
const struct SpriteTemplate gRockFragmentSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E73A8,
.anims = sAnims_FlyingRock,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B46F8,
.callback = AnimRockFragment,
};
const struct SpriteTemplate gUnknown_83E73E4 =
const struct SpriteTemplate gSwirlingDirtSpriteTemplate =
{
.tileTag = ANIM_TAG_MUD_SAND,
.paletteTag = ANIM_TAG_MUD_SAND,
@@ -79,10 +79,10 @@ const struct SpriteTemplate gUnknown_83E73E4 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B477C,
.callback = AnimParticleInVortex,
};
static const union AffineAnimCmd gUnknown_83E73FC[] =
static const union AffineAnimCmd sAffineAnim_Whirlpool[] =
{
AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0),
AFFINEANIMCMD_FRAME(0x2, -0x3, 0, 5),
@@ -90,34 +90,34 @@ static const union AffineAnimCmd gUnknown_83E73FC[] =
AFFINEANIMCMD_JUMP(1),
};
static const union AffineAnimCmd *const gUnknown_83E741C[] =
static const union AffineAnimCmd *const sAffineAnims_Whirlpool[] =
{
gUnknown_83E73FC,
sAffineAnim_Whirlpool,
};
const struct SpriteTemplate gUnknown_83E7420 =
const struct SpriteTemplate gWhirlpoolSpriteTemplate =
{
.tileTag = ANIM_TAG_WATER_ORB,
.paletteTag = ANIM_TAG_WATER_ORB,
.oam = &gOamData_AffineNormal_ObjBlend_16x16,
.anims = gUnknown_83E5958,
.anims = gAnims_WaterMudOrb,
.images = NULL,
.affineAnims = gUnknown_83E741C,
.callback = sub_80B477C,
.affineAnims = sAffineAnims_Whirlpool,
.callback = AnimParticleInVortex,
};
const struct SpriteTemplate gUnknown_83E7438 =
const struct SpriteTemplate gFireSpinSpriteTemplate =
{
.tileTag = ANIM_TAG_SMALL_EMBER,
.paletteTag = ANIM_TAG_SMALL_EMBER,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E5D48,
.anims = gAnims_BasicFire,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B477C,
.callback = AnimParticleInVortex,
};
const struct SpriteTemplate gUnknown_83E7450 =
const struct SpriteTemplate gFlyingSandCrescentSpriteTemplate =
{
.tileTag = ANIM_TAG_FLYING_DIRT,
.paletteTag = ANIM_TAG_FLYING_DIRT,
@@ -128,7 +128,7 @@ const struct SpriteTemplate gUnknown_83E7450 =
.callback = AnimDirtParticleAcrossScreen,
};
static const struct Subsprite gUnknown_83E7468[] =
static const struct Subsprite sFlyingSandSubsprites[] =
{
{
.x = -16,
@@ -148,77 +148,77 @@ static const struct Subsprite gUnknown_83E7468[] =
},
};
static const struct SubspriteTable gUnknown_83E7470[] =
static const struct SubspriteTable sFlyingSandSubspriteTable[] =
{
{ NELEMS(gUnknown_83E7468), gUnknown_83E7468 },
{ NELEMS(sFlyingSandSubsprites), sFlyingSandSubsprites },
};
static const union AnimCmd gUnknown_83E7478[] =
static const union AnimCmd sAnim_BasicRock_0[] =
{
ANIMCMD_FRAME(0, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E7480[] =
static const union AnimCmd sAnim_BasicRock_1[] =
{
ANIMCMD_FRAME(16, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E7488[] =
static const union AnimCmd sAnim_WeatherBallRockDown_0[] =
{
ANIMCMD_FRAME(32, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E7490[] =
static const union AnimCmd sAnim_WeatherBallRockDown_1[] =
{
ANIMCMD_FRAME(48, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E7498[] =
static const union AnimCmd sAnim_TwisterRock_0[] =
{
ANIMCMD_FRAME(64, 1),
ANIMCMD_END,
};
static const union AnimCmd gUnknown_83E74A0[] =
static const union AnimCmd sAnim_TwisterRock_1[] =
{
ANIMCMD_FRAME(80, 1),
ANIMCMD_END,
};
static const union AnimCmd *const gUnknown_83E74A8[] =
static const union AnimCmd *const sAnims_BasicRock[] =
{
gUnknown_83E7478,
gUnknown_83E7480,
sAnim_BasicRock_0,
sAnim_BasicRock_1,
};
static const union AnimCmd *const gUnknown_83E74B0[] =
static const union AnimCmd *const sAnims_WeatherBallRockDown[] =
{
gUnknown_83E7488,
gUnknown_83E7490,
sAnim_WeatherBallRockDown_0,
sAnim_WeatherBallRockDown_1,
};
static const union AnimCmd *const gUnknown_83E74B8[] =
static const union AnimCmd *const sAnims_TwisterRock[] =
{
gUnknown_83E7498,
gUnknown_83E74A0,
sAnim_TwisterRock_0,
sAnim_TwisterRock_1,
};
const struct SpriteTemplate gUnknown_83E74C0 =
const struct SpriteTemplate gAncientPowerRockSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E74A8,
.anims = sAnims_BasicRock,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = AnimRaiseSprite,
};
const struct SpriteTemplate gUnknown_83E74D8 =
const struct SpriteTemplate gRolloutMudSpriteTemplate =
{
.tileTag = ANIM_TAG_MUD_SAND,
.paletteTag = ANIM_TAG_MUD_SAND,
@@ -226,7 +226,7 @@ const struct SpriteTemplate gUnknown_83E74D8 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B4F78,
.callback = AnimRolloutParticle,
};
const struct SpriteTemplate gUnknown_83E74F0 =
@@ -237,83 +237,83 @@ const struct SpriteTemplate gUnknown_83E74F0 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B4F78,
.callback = AnimRolloutParticle,
};
const struct SpriteTemplate gUnknown_83E7508 =
const struct SpriteTemplate gRockTombRockSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E74A8,
.anims = sAnims_BasicRock,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = sub_80B4FE4,
.callback = AnimRockTomb,
};
static const union AffineAnimCmd gUnknown_83E7520[] =
static const union AffineAnimCmd sAffineAnim_BasicRock_0[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 5),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd gUnknown_83E7530[] =
static const union AffineAnimCmd sAffineAnim_BasicRock_1[] =
{
AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 5),
AFFINEANIMCMD_JUMP(0),
};
static const union AffineAnimCmd *const gUnknown_83E7540[] =
static const union AffineAnimCmd *const sAffineAnims_BasicRock[] =
{
gUnknown_83E7520,
gUnknown_83E7530,
sAffineAnim_BasicRock_0,
sAffineAnim_BasicRock_1,
};
const struct SpriteTemplate gUnknown_83E7548 =
const struct SpriteTemplate gRockBlastRockSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E74A8,
.anims = sAnims_BasicRock,
.images = NULL,
.affineAnims = gUnknown_83E7540,
.callback = sub_80B5074,
.affineAnims = sAffineAnims_BasicRock,
.callback = AnimRockBlastRock,
};
const struct SpriteTemplate gUnknown_83E7560 =
const struct SpriteTemplate gRockScatterSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E74A8,
.anims = sAnims_BasicRock,
.images = NULL,
.affineAnims = gUnknown_83E7540,
.callback = sub_80B50A0,
.affineAnims = sAffineAnims_BasicRock,
.callback = AnimRockScatter,
};
const struct SpriteTemplate gUnknown_83E7578 =
const struct SpriteTemplate gTwisterRockSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineOff_ObjNormal_32x32,
.anims = gUnknown_83E74B8,
.anims = sAnims_TwisterRock,
.images = NULL,
.affineAnims = gUnknown_83E7540,
.affineAnims = sAffineAnims_BasicRock,
.callback = AnimMoveTwisterParticle,
};
const struct SpriteTemplate gUnknown_83E7590 =
const struct SpriteTemplate gWeatherBallRockDownSpriteTemplate =
{
.tileTag = ANIM_TAG_ROCKS,
.paletteTag = ANIM_TAG_ROCKS,
.oam = &gOamData_AffineNormal_ObjNormal_32x32,
.anims = gUnknown_83E74B0,
.anims = sAnims_WeatherBallRockDown,
.images = NULL,
.affineAnims = gUnknown_83E7540,
.callback = sub_8077350,
.affineAnims = sAffineAnims_BasicRock,
.callback = AnimWeatherBallDown,
};
static void sub_80B4634(struct Sprite *sprite)
static void AnimFallingRock(struct Sprite *sprite)
{
if (gBattleAnimArgs[3] != 0)
SetAverageBattlerPositions(gBattleAnimTarget, 0, &sprite->pos1.x, &sprite->pos1.y);
@@ -345,7 +345,7 @@ static void sub_80B46B4(struct Sprite *sprite)
sprite->callback(sprite);
}
static void sub_80B46F8(struct Sprite *sprite)
static void AnimRockFragment(struct Sprite *sprite)
{
StartSpriteAnim(sprite, gBattleAnimArgs[5]);
AnimateSprite(sprite);
@@ -366,7 +366,7 @@ static void sub_80B46F8(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroySpriteAndMatrix);
}
static void sub_80B477C(struct Sprite *sprite)
static void AnimParticleInVortex(struct Sprite *sprite)
{
if (gBattleAnimArgs[6] == 0)
InitSpritePosToAnimAttacker(sprite, 0);
@@ -503,7 +503,7 @@ static void AnimDirtParticleAcrossScreen(struct Sprite *sprite)
sprite->pos1.x = -64;
}
sprite->pos1.y = gBattleAnimArgs[0];
SetSubspriteTables(sprite, gUnknown_83E7470);
SetSubspriteTables(sprite, sFlyingSandSubspriteTable);
sprite->data[1] = gBattleAnimArgs[1];
sprite->data[2] = gBattleAnimArgs[2];
++sprite->data[0];
@@ -547,7 +547,7 @@ static void AnimRaiseSprite(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
void sub_80B4BD0(u8 taskId)
void AnimTask_Rollout(u8 taskId)
{
u16 var0, var1, var2, var3;
u8 var4;
@@ -660,7 +660,7 @@ static void sub_80B4E70(struct Task *task)
switch (task->data[1])
{
case 1:
spriteTemplate = &gUnknown_83E74D8;
spriteTemplate = &gRolloutMudSpriteTemplate;
var0 = 0;
break;
case 2:
@@ -696,7 +696,7 @@ static void sub_80B4E70(struct Task *task)
task->data[12] *= -1;
}
static void sub_80B4F78(struct Sprite *sprite)
static void AnimRolloutParticle(struct Sprite *sprite)
{
if (TranslateAnimHorizontalArc(sprite))
{
@@ -718,7 +718,7 @@ static u8 sub_80B4FB8(void)
return retVal;
}
static void sub_80B4FE4(struct Sprite *sprite)
static void AnimRockTomb(struct Sprite *sprite)
{
StartSpriteAnim(sprite, gBattleAnimArgs[4]);
sprite->pos2.x = gBattleAnimArgs[0];
@@ -749,14 +749,14 @@ static void sub_80B5024(struct Sprite *sprite)
}
}
static void sub_80B5074(struct Sprite *sprite)
static void AnimRockBlastRock(struct Sprite *sprite)
{
if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT)
StartSpriteAffineAnim(sprite, 1);
TranslateAnimSpriteToTargetMonLocation(sprite);
}
static void sub_80B50A0(struct Sprite *sprite)
static void AnimRockScatter(struct Sprite *sprite)
{
sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimTarget, 0);
sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimTarget, 1);
@@ -791,7 +791,7 @@ void AnimTask_GetSeismicTossDamageLevel(u8 taskId)
DestroyAnimVisualTask(taskId);
}
void sub_80B5188(u8 taskId)
void AnimTask_MoveSeismicTossBg(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
@@ -808,7 +808,7 @@ void sub_80B5188(u8 taskId)
++gTasks[taskId].data[0];
}
void sub_80B51EC(u8 taskId)
void AnimTask_SeismicTossBgAccelerateDownAtEnd(u8 taskId)
{
if (gTasks[taskId].data[0] == 0)
{
+2229
View File
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1,6 +1,6 @@
CC = gcc
CFLAGS = -Wall -Wextra -Werror -Wno-sign-compare -std=c11 -O2 -DPNG_SKIP_SETJMP_CHECK
CFLAGS = -Wall -Wextra -Wno-sign-compare -std=gnu11 -O3 -flto -DPNG_SKIP_SETJMP_CHECK
LIBS = -lpng -lz
+64 -11
View File
@@ -27,7 +27,17 @@ void ConvertGbaToPng(char *inputPath, char *outputPath, struct GbaToPngOptions *
if (options->paletteFilePath != NULL)
{
ReadGbaPalette(options->paletteFilePath, &image.palette);
char *paletteFileExtension = GetFileExtensionAfterDot(options->paletteFilePath);
if (strcmp(paletteFileExtension, "gbapal") == 0)
{
ReadGbaPalette(options->paletteFilePath, &image.palette);
}
else
{
ReadJascPalette(options->paletteFilePath, &image.palette);
}
image.hasPalette = true;
}
else
@@ -59,7 +69,7 @@ void ConvertPngToGba(char *inputPath, char *outputPath, struct PngToGbaOptions *
void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **argv)
{
char *inputFileExtension = GetFileExtension(inputPath);
char *inputFileExtension = GetFileExtensionAfterDot(inputPath);
struct GbaToPngOptions options;
options.paletteFilePath = NULL;
options.bitDepth = inputFileExtension[0] - '0';
@@ -138,7 +148,7 @@ void HandleGbaToPngCommand(char *inputPath, char *outputPath, int argc, char **a
void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **argv)
{
char *outputFileExtension = GetFileExtension(outputPath);
char *outputFileExtension = GetFileExtensionAfterDot(outputPath);
int bitDepth = outputFileExtension[0] - '0';
struct PngToGbaOptions options;
options.numTiles = 0;
@@ -198,9 +208,17 @@ void HandlePngToGbaCommand(char *inputPath, char *outputPath, int argc, char **a
ConvertPngToGba(inputPath, outputPath, &options);
}
void HandlePngToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
{
struct Palette palette = {};
ReadPngPalette(inputPath, &palette);
WriteJascPalette(outputPath, &palette);
}
void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
{
struct Palette palette;
struct Palette palette = {};
ReadPngPalette(inputPath, &palette);
WriteGbaPalette(outputPath, &palette);
@@ -208,7 +226,7 @@ void HandlePngToGbaPaletteCommand(char *inputPath, char *outputPath, int argc UN
void HandleGbaToJascPaletteCommand(char *inputPath, char *outputPath, int argc UNUSED, char **argv UNUSED)
{
struct Palette palette;
struct Palette palette = {};
ReadGbaPalette(inputPath, &palette);
WriteJascPalette(outputPath, &palette);
@@ -241,7 +259,7 @@ void HandleJascToGbaPaletteCommand(char *inputPath, char *outputPath, int argc,
}
}
struct Palette palette;
struct Palette palette = {};
ReadJascPalette(inputPath, &palette);
@@ -483,6 +501,8 @@ void HandleHuffDecompressCommand(char *inputPath, char *outputPath, int argc UNU
int main(int argc, char **argv)
{
char converted = 0;
if (argc < 3)
FATAL_ERROR("Usage: gbagfx INPUT_PATH OUTPUT_PATH [options...]\n");
@@ -495,6 +515,7 @@ int main(int argc, char **argv)
{ "png", "4bpp", HandlePngToGbaCommand },
{ "png", "8bpp", HandlePngToGbaCommand },
{ "png", "gbapal", HandlePngToGbaPaletteCommand },
{ "png", "pal", HandlePngToJascPaletteCommand },
{ "gbapal", "pal", HandleGbaToJascPaletteCommand },
{ "pal", "gbapal", HandleJascToGbaPaletteCommand },
{ "latfont", "png", HandleLatinFontToPngCommand },
@@ -514,14 +535,39 @@ int main(int argc, char **argv)
char *inputPath = argv[1];
char *outputPath = argv[2];
char *inputFileExtension = GetFileExtension(inputPath);
char *outputFileExtension = GetFileExtension(outputPath);
char *inputFileExtension = GetFileExtensionAfterDot(inputPath);
char *outputFileExtension = GetFileExtensionAfterDot(outputPath);
if (inputFileExtension == NULL)
FATAL_ERROR("Input file \"%s\" has no extension.\n", inputPath);
if (outputFileExtension == NULL)
FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath);
{
outputFileExtension = GetFileExtension(outputPath);
if (*outputFileExtension == '.')
outputFileExtension++;
if (*outputFileExtension == 0)
FATAL_ERROR("Output file \"%s\" has no extension.\n", outputPath);
size_t newOutputPathSize = strlen(inputPath) - strlen(inputFileExtension) + strlen(outputFileExtension);
outputPath = malloc(newOutputPathSize);
if (outputPath == NULL)
FATAL_ERROR("Failed to allocate memory for new output path.\n");
for (int i = 0; i < newOutputPathSize; i++)
{
outputPath[i] = inputPath[i];
if (outputPath[i] == '.')
{
strcpy(&outputPath[i + 1], outputFileExtension);
break;
}
}
}
for (int i = 0; handlers[i].function != NULL; i++)
{
@@ -529,9 +575,16 @@ int main(int argc, char **argv)
&& (handlers[i].outputFileExtension == NULL || strcmp(handlers[i].outputFileExtension, outputFileExtension) == 0))
{
handlers[i].function(inputPath, outputPath, argc, argv);
return 0;
converted = 1;
break;
}
}
FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", inputPath, outputPath);
if (outputPath != argv[2])
free(outputPath);
if (!converted)
FATAL_ERROR("Don't know how to convert \"%s\" to \"%s\".\n", argv[1], argv[2]);
return 0;
}
+7
View File
@@ -47,6 +47,13 @@ char *GetFileExtension(char *path)
while (extension > path && *extension != '.')
extension--;
return extension;
}
char *GetFileExtensionAfterDot(char *path)
{
char *extension = GetFileExtension(path);
if (extension == path)
return NULL;
+1
View File
@@ -7,6 +7,7 @@
bool ParseNumber(char *s, char **end, int radix, int *intValue);
char *GetFileExtension(char *path);
char *GetFileExtensionAfterDot(char *path);
unsigned char *ReadWholeFile(char *path, int *size);
unsigned char *ReadWholeFileZeroPadded(char *path, int *size, int padAmount);
void WriteWholeFile(char *path, void *buffer, int bufferSize);
+1
View File
@@ -20,6 +20,7 @@
#include <cstdio>
#include <cstdarg>
#include <stdexcept>
#include "preproc.h"
#include "asm_file.h"
#include "char_util.h"
+1
View File
@@ -20,6 +20,7 @@
#include <cstdio>
#include <cstdarg>
#include <stdexcept>
#include <string>
#include <memory>
#include "preproc.h"