diff options
27 files changed, 4550 insertions, 2702 deletions
diff --git a/data/battle_anim_80CA710.s b/data/battle_anim_80CA710.s deleted file mode 100644 index 26f9aaaf1..000000000 --- a/data/battle_anim_80CA710.s +++ /dev/null @@ -1,2507 +0,0 @@ - .include "include/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gSpriteAnim_83D91DC:: @ 83D91DC - 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 - - .align 2 -gSpriteAnimTable_83D91F0:: @ 83D91F0 - .4byte gSpriteAnim_83D91DC - - .align 2 -gBattleAnimSpriteTemplate_83D91F4:: @ 83D91F4 - spr_template 10149, 10149, gOamData_837E04C, gSpriteAnimTable_83D91F0, NULL, gDummySpriteAffineAnimTable, sub_80D3554 - - .align 2 -gBattleAnimSpriteTemplate_83D920C:: @ 83D920C - spr_template 10259, 10259, gOamData_837E04C, gSpriteAnimTable_83D91F0, NULL, gDummySpriteAffineAnimTable, sub_80D3554 - - .align 2 -gBattleAnimSpriteTemplate_83D9224:: @ 83D9224 - spr_template 10264, 10264, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D3554 - - .align 2 -gBattleAnimSpriteTemplate_83D923C:: @ 83D923C - spr_template 10265, 10265, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D3554 - - .align 2 -gSpriteAnim_83D9254:: @ 83D9254 - obj_image_anim_frame 16, 2 - obj_image_anim_frame 32, 2 - obj_image_anim_frame 48, 2 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9264:: @ 83D9264 - .4byte gSpriteAnim_83D9254 - - .align 2 -gBattleAnimSpriteTemplate_83D9268:: @ 83D9268 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9264, NULL, gDummySpriteAffineAnimTable, sub_80D3554 - - .align 2 -gBattleAnimSpriteTemplate_83D9280:: @ 83D9280 - spr_template 10165, 10165, gOamData_837E034, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D752C, sub_80D3554 - - .align 2 -gSpriteAffineAnim_83D9298:: @ 83D9298 - obj_rot_scal_anim_frame 0x3, 0x3, 10, 50 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 10 - obj_rot_scal_anim_frame 0xFFEC, 0xFFEC, -10, 20 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D92B8:: @ 83D92B8 - obj_rot_scal_anim_frame 0x150, 0x150, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D92C8:: @ 83D92C8 - .4byte gSpriteAffineAnim_83D9298 - - .align 2 -gSpriteAffineAnimTable_83D92CC:: @ 83D92CC - .4byte gSpriteAffineAnim_83D92B8 - - .align 2 -gBattleAnimSpriteTemplate_83D92D0:: @ 83D92D0 - spr_template 10149, 10149, gOamData_837E10C, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83D92C8, sub_80D3698 - - .align 2 -gBattleAnimSpriteTemplate_83D92E8:: @ 83D92E8 - spr_template 10149, 10149, gOamData_837E10C, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83D92CC, sub_80D3728 - - .align 2 -gSpriteAnim_83D9300:: @ 83D9300 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9308:: @ 83D9308 - obj_image_anim_frame 4, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D9310:: @ 83D9310 - .4byte gSpriteAnim_83D9300 - - .align 2 -gSpriteAnimTable_83D9314:: @ 83D9314 - .4byte gSpriteAnim_83D9308 - - .align 2 -gBattleAnimSpriteTemplate_83D9318:: @ 83D9318 - spr_template 10155, 10155, gOamData_837E04C, gSpriteAnimTable_83D9310, NULL, gDummySpriteAffineAnimTable, sub_80794A8 - - .align 2 -gBattleAnimSpriteTemplate_83D9330:: @ 83D9330 - spr_template 10155, 10155, gOamData_837E10C, gSpriteAnimTable_83D9314, NULL, gSpriteAffineAnimTable_83DA318, sub_80D37FC - - .align 2 -gBattleAnimSpriteTemplate_83D9348:: @ 83D9348 - spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC8, NULL, gDummySpriteAffineAnimTable, sub_80D3838 - - .align 2 -gBattleAnimSpriteTemplate_83D9360:: @ 83D9360 - spr_template 10155, 10155, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D4044 - - .align 2 -gSpriteTemplate_83D9378:: @ 83D9378 - spr_template 10268, 10268, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D452C - - .align 2 -gSpriteAnim_83D9390:: @ 83D9390 - obj_image_anim_frame 8, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9398:: @ 83D9398 - obj_image_anim_frame 9, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D93A0:: @ 83D93A0 - obj_image_anim_frame 4, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D93A8:: @ 83D93A8 - .4byte gSpriteAnim_83D9390 - .4byte gSpriteAnim_83D9398 - - .align 2 -gSpriteAnimTable_83D93B0:: @ 83D93B0 - .4byte gSpriteAnim_83D93A0 - - .align 2 -gSpriteAffineAnim_83D93B4:: @ 83D93B4 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D93CC:: @ 83D93CC - obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D93E4:: @ 83D93E4 - obj_rot_scal_anim_frame 0x150, 0x150, 0, 0 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D93FC:: @ 83D93FC - .4byte gSpriteAffineAnim_83D93B4 - .4byte gSpriteAffineAnim_83D93CC - - .align 2 -gSpriteAffineAnimTable_83D9404:: @ 83D9404 - .4byte gSpriteAffineAnim_83D93E4 - - .align 2 -gBattleAnimSpriteTemplate_83D9408:: @ 83D9408 - spr_template 10155, 10155, gOamData_837DF24, gSpriteAnimTable_83D93A8, NULL, gDummySpriteAffineAnimTable, sub_80D4BF0 - - .align 2 -gSpriteTemplate_83D9420:: @ 83D9420 - spr_template 10155, 10155, gOamData_837DF84, gSpriteAnimTable_83D93A8, NULL, gSpriteAffineAnimTable_83D93FC, sub_80D4C64 - - .align 2 -gBattleAnimSpriteTemplate_83D9438:: @ 83D9438 - spr_template 10155, 10155, gOamData_837DF8C, gSpriteAnimTable_83D93B0, NULL, gSpriteAffineAnimTable_83D9404, sub_807A9BC - - .align 2 -gSpriteAnim_83D9450:: @ 83D9450 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 48, 4 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83D9460:: @ 83D9460 - obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9470:: @ 83D9470 - .4byte gSpriteAnim_83D9450 - .4byte gSpriteAnim_83D9460 - - .align 2 -gBattleAnimSpriteTemplate_83D9478:: @ 83D9478 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9470, NULL, gDummySpriteAffineAnimTable, sub_80D4ED8 - - .align 2 -gBattleAnimSpriteTemplate_83D9490:: @ 83D9490 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9470, NULL, gDummySpriteAffineAnimTable, sub_80D4F18 - - .align 2 -gSpriteAnim_83D94A8:: @ 83D94A8 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 16, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 48, 3 - obj_image_anim_frame 64, 3 - obj_image_anim_frame 80, 3 - obj_image_anim_frame 96, 3 - obj_image_anim_frame 112, 3 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D94CC:: @ 83D94CC - .4byte gSpriteAnim_83D94A8 - - .align 2 -gSpriteAnim_83D94D0:: @ 83D94D0 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 32, 5 - obj_image_anim_frame 48, 5 - obj_image_anim_frame 64, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D94E8:: @ 83D94E8 - .4byte gSpriteAnim_83D94D0 - - .align 2 -gSpriteAffineAnim_83D94EC:: @ 83D94EC - obj_rot_scal_anim_frame 0x32, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x20, 0x0, 0, 7 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9504:: @ 83D9504 - .4byte gSpriteAffineAnim_83D94EC - - .align 2 -gBattleAnimSpriteTemplate_83D9508:: @ 83D9508 - spr_template 10033, 10033, gOamData_837DF94, gSpriteAnimTable_83D94CC, NULL, gSpriteAffineAnimTable_83D9504, sub_80D4FCC - - .align 2 -gBattleAnimSpriteTemplate_83D9520:: @ 83D9520 - spr_template 10033, 10033, gOamData_837DF34, gSpriteAnimTable_83D94CC, NULL, gDummySpriteAffineAnimTable, sub_80D4FCC - - .align 2 -gBattleAnimSpriteTemplate_83D9538:: @ 83D9538 - spr_template 10035, 10035, gOamData_837DF34, gSpriteAnimTable_83D94E8, NULL, gDummySpriteAffineAnimTable, sub_80D4F5C - - .align 2 -gSpriteTemplate_83D9550:: @ 83D9550 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D94E8, NULL, gDummySpriteAffineAnimTable, sub_80D4F5C - - .align 2 -gSpriteAnim_83D9568:: @ 83D9568 - obj_image_anim_frame 16, 6 - obj_image_anim_frame 32, 6 - obj_image_anim_frame 48, 6 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9578:: @ 83D9578 - .4byte gSpriteAnim_83D9568 - - .align 2 -gSpriteTemplate_83D957C:: @ 83D957C - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9578, NULL, gDummySpriteAffineAnimTable, sub_80D5074 - - .align 2 -gSpriteAffineAnim_83D9594:: @ 83D9594 - obj_rot_scal_anim_frame 0x50, 0x50, 0, 0 - obj_rot_scal_anim_frame 0x2, 0x2, 10, 1 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83D95AC:: @ 83D95AC - .4byte gSpriteAffineAnim_83D9594 - - .align 2 -gBattleAnimSpriteTemplate_83D95B0:: @ 83D95B0 - spr_template 10157, 10157, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D95AC, sub_80D517C - - .align 2 -gSpriteAnim_83D95C8:: @ 83D95C8 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 48, 4 - obj_image_anim_frame 64, 4 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D95E0:: @ 83D95E0 - .4byte gSpriteAnim_83D95C8 - - .align 2 -gEmberSpriteTemplate:: @ 83D95E4 - spr_template 10029, 10029, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation - - .align 2 -gEmberFlareSpriteTemplate:: @ 83D95FC - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, AnimEmberFlare - - .align 2 -gBattleAnimSpriteTemplate_83D9614:: @ 83D9614 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D5210 - - .align 2 -gFireRingSpriteTemplate:: @ 83D962C - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, AnimFireRing - - .align 2 -gSpriteAnim_83D9644:: @ 83D9644 - obj_image_anim_frame 32, 6 - obj_image_anim_frame 48, 6 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9650:: @ 83D9650 - .4byte gSpriteAnim_83D9644 - - .align 2 -gSpriteAffineAnim_83D9654:: @ 83D9654 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9664:: @ 83D9664 - obj_rot_scal_anim_frame 0xA0, 0xA0, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9674:: @ 83D9674 - .4byte gSpriteAffineAnim_83D9654 - .4byte gSpriteAffineAnim_83D9664 - - .align 2 -gFireCrossSpriteTemplate:: @ 83D967C - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D9650, NULL, gDummySpriteAffineAnimTable, AnimFireCross - - .align 2 -gBattleAnimSpriteTemplate_83D9694:: @ 83D9694 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80D53B4 - - .align 2 -gBattleAnimSpriteTemplate_83D96AC:: @ 83D96AC - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_807A9BC - - .align 2 -gSpriteTemplate_83D96C4:: @ 83D96C4 - spr_template 10201, 10201, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D58FC - - .align 1 -gHeatedRockCoords:: @ 83D96DC - .2byte -2, -5 - .2byte -1, -1 - .2byte 3, -6 - .2byte 4, -2 - .2byte 2, -8 - .2byte -5, -5 - .2byte 4, -7 - - .align 2 -gBattleAnimSpriteTemplate_83D96F8:: @ 83D96F8 - spr_template 10201, 10201, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D5A20 - - .align 2 -gSpriteAnim_83D9710:: @ 83D9710 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 4, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_frame 12, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83D9724:: @ 83D9724 - obj_image_anim_frame 16, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D972C:: @ 83D972C - obj_image_anim_frame 20, 5 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9734:: @ 83D9734 - obj_image_anim_frame 20, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D973C:: @ 83D973C - .4byte gSpriteAnim_83D9710 - .4byte gSpriteAnim_83D9724 - .4byte gSpriteAnim_83D972C - .4byte gSpriteAnim_83D9734 - - .align 2 -gBattleAnimSpriteTemplate_83D974C:: @ 83D974C - spr_template 10231, 10231, gOamData_837DF2C, gSpriteAnimTable_83D973C, NULL, gDummySpriteAffineAnimTable, sub_80D5B0C - - .align 2 -gSpriteAnim_83D9764:: @ 83D9764 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 32, 5 - obj_image_anim_frame 48, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9778:: @ 83D9778 - .4byte gSpriteAnim_83D9764 - - .align 2 -gBattleAnimSpriteTemplate_83D977C:: @ 83D977C - spr_template 10232, 10232, gOamData_837DF34, gSpriteAnimTable_83D9778, NULL, gDummySpriteAffineAnimTable, sub_80D5CC0 - - .align 2 -gUnknown_083D9794:: @ 83D9794 - .byte -1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1 - -gUnknown_083D97A4:: @ 83D97A4 - .byte -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1 - - .align 2 -gSpriteAnim_83D97B4:: @ 83D97B4 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 32, 8 - obj_image_anim_frame 48, 5 - obj_image_anim_frame 64, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D97CC:: @ 83D97CC - .4byte gSpriteAnim_83D97B4 - - .align 2 -gBattleAnimSpriteTemplate_83D97D0:: @ 83D97D0 - spr_template 10037, 10037, gOamData_837DF34, gSpriteAnimTable_83D97CC, NULL, gDummySpriteAffineAnimTable, sub_80D61C8 - - .align 2 -gSpriteAffineAnim_83D97E8:: @ 83D97E8 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 20 - obj_rot_scal_anim_frame 0x0, 0x0, -16, 60 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9808:: @ 83D9808 - .4byte gSpriteAffineAnim_83D97E8 - - .align 2 -gSpriteTemplate_83D980C:: @ 83D980C - spr_template 10143, 10143, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9808, sub_80D6234 - - .align 2 -gSpriteAnim_83D9824:: @ 83D9824 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 32, 5 - obj_image_anim_frame 48, 5 - obj_image_anim_frame 64, 5 - obj_image_anim_frame 80, 5 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9840:: @ 83D9840 - .4byte gSpriteAnim_83D9824 - - .align 2 -gSpriteTemplate_83D9844:: @ 83D9844 - spr_template 10079, 10079, gOamData_837DF34, gSpriteAnimTable_83D9840, NULL, gDummySpriteAffineAnimTable, sub_80D6294 - - .align 2 -gBattleAnimSpriteTemplate_83D985C:: @ 83D985C - spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6328 - - .align 2 -gBattleAnimSpriteTemplate_83D9874:: @ 83D9874 - spr_template 10171, 10171, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation - - .align 2 -gSpriteAffineAnim_83D988C:: @ 83D988C - obj_rot_scal_anim_frame 0x0, 0x0, 20, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83D989C:: @ 83D989C - .4byte gSpriteAffineAnim_83D988C - - .align 2 -gBattleAnimSpriteTemplate_83D98A0:: @ 83D98A0 - spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D648C - - .align 2 -gSpriteAnim_83D98B8:: @ 83D98B8 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 16, 6 - obj_image_anim_frame 32, 6 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D98C8:: @ 83D98C8 - .4byte gSpriteAnim_83D98B8 - - .align 2 -gSpriteAffineAnim_83D98CC:: @ 83D98CC - obj_rot_scal_anim_frame 0xE8, 0xE8, 0, 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 10 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 10 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83D98EC:: @ 83D98EC - .4byte gSpriteAffineAnim_83D98CC - - .align 2 -gBattleAnimSpriteTemplate_83D98F0:: @ 83D98F0 - spr_template 10282, 10282, gOamData_837DF94, gSpriteAnimTable_83D98C8, NULL, gSpriteAffineAnimTable_83D98EC, sub_80D65DC - - .align 2 -gBattleAnimSpriteTemplate_83D9908:: @ 83D9908 - spr_template 10011, 10011, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D989C, sub_80D6658 - - .align 2 -gElectricitySpriteTemplate:: @ 83D9920 - spr_template 10011, 10011, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D679C - - .align 2 -gSpriteTemplate_83D9938:: @ 83D9938 - spr_template 10001, 10001, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6A1C - - .align 2 -gBattleAnimSpriteTemplate_83D9950:: @ 83D9950 - spr_template 10173, 10173, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D6A6C - - .align 2 -gUnknown_083D9968:: @ 83D9968 - .byte 58, -60 - .byte -56, -36 - .byte 8, -56 - .byte -16, 56 - .byte 58, -10 - .byte -58, 10 - .byte 48, -18 - .byte -8, 56 - .byte 16, -56 - .byte -58, -42 - .byte 58, 30 - .byte -48, 40 - .byte 12, -48 - .byte 48, -12 - .byte -56, 18 - .byte 48, 48 - - .align 2 -gSpriteAnim_83D9988:: @ 83D9988 - obj_image_anim_frame 3, 1 - obj_image_anim_frame 2, 1 - obj_image_anim_frame 1, 1 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D999C:: @ 83D999C - obj_image_anim_frame 0, 5 - obj_image_anim_frame 1, 5 - obj_image_anim_frame 2, 5 - obj_image_anim_frame 3, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D99B0:: @ 83D99B0 - .4byte gSpriteAnim_83D9988 - .4byte gSpriteAnim_83D999C - - .align 2 -gSpriteTemplate_83D99B8:: @ 83D99B8 - spr_template 10211, 10211, gOamData_837DF24, gSpriteAnimTable_83D99B0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gSpriteAffineAnim_83D99D0:: @ 83D99D0 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x4, 0x4, 0, 60 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_loop 0 - obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 0, 5 - obj_rot_scal_anim_frame 0x4, 0x4, 0, 5 - obj_rot_scal_anim_loop 10 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9A10:: @ 83D9A10 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 30 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 0, 5 - obj_rot_scal_anim_frame 0x4, 0x4, 0, 5 - obj_rot_scal_anim_jump 3 - - .align 2 -gSpriteAffineAnim_83D9A40:: @ 83D9A40 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 30 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 30 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9A60:: @ 83D9A60 - .4byte gSpriteAffineAnim_83D99D0 - .4byte gSpriteAffineAnim_83D9A10 - .4byte gSpriteAffineAnim_83D9A40 - - .align 2 -gBattleAnimSpriteTemplate_83D9A6C:: @ 83D9A6C - spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D6D18 - - .align 2 -gSpriteAnim_83D9A84:: @ 83D9A84 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 16, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 48, 3 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D9A98:: @ 83D9A98 - .4byte gSpriteAnim_83D9A84 - - .align 2 -gBattleAnimSpriteTemplate_83D9A9C:: @ 83D9A9C - spr_template 10213, 10213, gOamData_837DF34, gSpriteAnimTable_83D9A98, NULL, gDummySpriteAffineAnimTable, sub_80D6D70 - - .align 2 -gBattleAnimSpriteTemplate_83D9AB4:: @ 83D9AB4 - spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D6DD8 - - .align 2 -gSpriteAnim_83D9ACC:: @ 83D9ACC - obj_image_anim_frame 0, 3 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9AD4:: @ 83D9AD4 - obj_image_anim_frame 2, 3 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9ADC:: @ 83D9ADC - obj_image_anim_frame 4, 3 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9AE4:: @ 83D9AE4 - obj_image_anim_frame 6, 3 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D9AEC:: @ 83D9AEC - .4byte gSpriteAnim_83D9ACC - .4byte gSpriteAnim_83D9AD4 - .4byte gSpriteAnim_83D9ADC - .4byte gSpriteAnim_83D9AE4 - - .align 2 -gSpriteAffineAnim_83D9AFC:: @ 83D9AFC - obj_rot_scal_anim_frame 0x100, 0x100, 64, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9B0C:: @ 83D9B0C - .4byte gSpriteAffineAnim_83D9AFC - - .align 2 -gSpriteTemplate_83D9B10:: @ 83D9B10 - spr_template 10001, 10001, gOamData_837E024, gSpriteAnimTable_83D9AEC, NULL, gSpriteAffineAnimTable_83D9B0C, sub_80D7230 - - .align 2 -gBattleAnimSpriteTemplate_83D9B28:: @ 83D9B28 - spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9A60, sub_80D727C - - .align 2 -gSpriteTemplate_83D9B40:: @ 83D9B40 - spr_template 10001, 10001, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D755C - - .align 2 -gSpriteAnim_83D9B58:: @ 83D9B58 - obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 1, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9B64:: @ 83D9B64 - .4byte gSpriteAnim_83D9B58 - - .align 2 -gSpriteTemplate_83D9B68:: @ 83D9B68 - spr_template 10141, 10141, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D7704 - - .align 2 -gSpriteAnim_83D9B80:: @ 83D9B80 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9B88:: @ 83D9B88 - obj_image_anim_frame 4, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9B90:: @ 83D9B90 - obj_image_anim_frame 6, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9B98:: @ 83D9B98 - obj_image_anim_frame 7, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9BA0:: @ 83D9BA0 - obj_image_anim_frame 8, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9BA8:: @ 83D9BA8 - obj_image_anim_frame 12, 6 - obj_image_anim_frame 13, 6 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9BB4:: @ 83D9BB4 - .4byte gSpriteAnim_83D9B80 - - .align 2 -gSpriteAnimTable_83D9BB8:: @ 83D9BB8 - .4byte gSpriteAnim_83D9B88 - - .align 2 -gSpriteAnimTable_83D9BBC:: @ 83D9BBC - .4byte gSpriteAnim_83D9B90 - - .align 2 -gSpriteAnimTable_83D9BC0:: @ 83D9BC0 - .4byte gSpriteAnim_83D9B98 - - .align 2 -gSpriteAnimTable_83D9BC4:: @ 83D9BC4 - .4byte gSpriteAnim_83D9BA0 - - .align 2 -gSpriteAnimTable_83D9BC8:: @ 83D9BC8 - .4byte gSpriteAnim_83D9BA8 - - .align 2 -gSpriteAffineAnim_83D9BCC:: @ 83D9BCC - obj_rot_scal_anim_frame 0x0, 0x0, 40, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83D9BDC:: @ 83D9BDC - .4byte gSpriteAffineAnim_83D9BCC - - .align 2 -gBattleAnimSpriteTemplate_83D9BE0:: @ 83D9BE0 - spr_template 10141, 10141, gOamData_837E144, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9BDC, sub_80D78EC - - .align 2 -gBattleAnimSpriteTemplate_83D9BF8:: @ 83D9BF8 - spr_template 10141, 10141, gOamData_837E044, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D78EC - - .align 2 -gSpriteAffineAnim_83D9C10:: @ 83D9C10 - obj_rot_scal_anim_frame 0x0, 0x0, 10, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83D9C20:: @ 83D9C20 - .4byte gSpriteAffineAnim_83D9C10 - - .align 2 -gBattleAnimSpriteTemplate_83D9C24:: @ 83D9C24 - spr_template 10141, 10141, gOamData_837E0E4, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9C20, sub_80D792C - - .align 2 -gBattleAnimSpriteTemplate_83D9C3C:: @ 83D9C3C - spr_template 10141, 10141, gOamData_837E044, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D792C - - .align 2 -gSpriteAffineAnim_83D9C54:: @ 83D9C54 - obj_rot_scal_anim_frame 0xCE, 0xCE, 0, 0 - obj_rot_scal_anim_frame 0x5, 0x5, 0, 10 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 6 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9C74:: @ 83D9C74 - .4byte gSpriteAffineAnim_83D9C54 - - .align 2 -gBattleAnimSpriteTemplate_83D9C78:: @ 83D9C78 - spr_template 10141, 10141, gOamData_837E0E4, gSpriteAnimTable_83D9BB8, NULL, gSpriteAffineAnimTable_83D9C74, sub_80D79B4 - - .align 2 -gBattleAnimSpriteTemplate_83D9C90:: @ 83D9C90 - spr_template 10141, 10141, gOamData_837E0A4, gSpriteAnimTable_83D9BBC, NULL, gSpriteAffineAnimTable_83D9C74, sub_80D79B4 - - .align 2 -gBattleAnimSpriteTemplate_83D9CA8:: @ 83D9CA8 - spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC0, NULL, gDummySpriteAffineAnimTable, sub_80D7A64 - - .align 2 -gBattleAnimSpriteTemplate_83D9CC0:: @ 83D9CC0 - spr_template 10141, 10141, gOamData_837DF2C, gSpriteAnimTable_83D9BC4, NULL, gDummySpriteAffineAnimTable, sub_80D7CD4 - - .align 2 -gBattleAnimSpriteTemplate_83D9CD8:: @ 83D9CD8 - spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BC0, NULL, gDummySpriteAffineAnimTable, sub_80D7CD4 - - .align 2 -gSpriteAnim_83D9CF0:: @ 83D9CF0 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 2, 5 - obj_image_anim_frame 4, 5 - obj_image_anim_frame 6, 5 - obj_image_anim_frame 4, 5 - obj_image_anim_frame 2, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D9D10:: @ 83D9D10 - .4byte gSpriteAnim_83D9CF0 - - .align 2 -gBattleAnimSpriteTemplate_83D9D14:: @ 83D9D14 - spr_template 10142, 10142, gOamData_837E084, gSpriteAnimTable_83D9D10, NULL, gDummySpriteAffineAnimTable, sub_80D7E88 - - .align 2 -gSpriteAnim_83D9D2C:: @ 83D9D2C - obj_image_anim_frame 0, 8 - obj_image_anim_frame 8, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83D9D38:: @ 83D9D38 - .4byte gSpriteAnim_83D9D2C - - .align 2 -gBattleAnimSpriteTemplate_83D9D3C:: @ 83D9D3C - spr_template 10144, 10144, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D7F10 - - .align 2 -gBattleAnimSpriteTemplate_83D9D54:: @ 83D9D54 - spr_template 10172, 10172, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D7F10 - - .align 2 -gUnknown_083D9D6C:: @ 83D9D6C - .byte 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9 - - .align 2 -gBattleAnimSpriteTemplate_83D9D80:: @ 83D9D80 - spr_template 10155, 10155, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D83E0 - - .align 2 -gUnknown_083D9D98:: @ 83D9D98 - .byte 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5 - - .align 2 -gBattleAnimSpriteTemplate_83D9DAC:: @ 83D9DAC - spr_template 10172, 10172, gOamData_837E074, gSpriteAnimTable_83D9D38, NULL, gDummySpriteAffineAnimTable, sub_80D8700 - -@ bitfield array - .align 2 -gUnknown_083D9DC4:: @ 83D9DC4 - .4byte 0x2001E064 - .4byte 0x0001E055 - .4byte 0x1011E0F2 - .4byte 0x1021E042 - .4byte 0x0031E0B6 - .4byte 0x2001E03C - .4byte 0x0011E0D6 - .4byte 0x1001E071 - .4byte 0x1031E0D2 - .4byte 0x0021E026 - - .align 2 -gSpriteAffineAnim_83D9DEC:: @ 83D9DEC - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9DFC:: @ 83D9DFC - obj_rot_scal_anim_frame 0xF0, 0xF0, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9E0C:: @ 83D9E0C - obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9E1C:: @ 83D9E1C - obj_rot_scal_anim_frame 0x150, 0x150, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9E2C:: @ 83D9E2C - .4byte gSpriteAffineAnim_83D9DEC - .4byte gSpriteAffineAnim_83D9DFC - .4byte gSpriteAffineAnim_83D9E0C - - .align 2 -gSpriteAffineAnimTable_83D9E38:: @ 83D9E38 - .4byte gSpriteAffineAnim_83D9E1C - - .align 2 -gSpriteTemplate_83D9E3C:: @ 83D9E3C - spr_template 10263, 10263, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9E2C, sub_80D8D1C - - .align 2 -gBattleAnimSpriteTemplate_83D9E54:: @ 83D9E54 - spr_template 10263, 10263, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83D9E38, sub_807A9BC - - .align 2 -gSpriteAnim_83D9E6C:: @ 83D9E6C - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9E74:: @ 83D9E74 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 48, 4 - obj_image_anim_frame 64, 4 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D9E88:: @ 83D9E88 - .4byte gSpriteAnim_83D9E6C - .4byte gSpriteAnim_83D9E74 - - .align 2 -gSpriteAffineAnim_83D9E90:: @ 83D9E90 - obj_rot_scal_anim_frame 0xE0, 0xE0, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9EA0:: @ 83D9EA0 - obj_rot_scal_anim_frame 0x118, 0x118, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9EB0:: @ 83D9EB0 - obj_rot_scal_anim_frame 0x150, 0x150, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9EC0:: @ 83D9EC0 - obj_rot_scal_anim_frame 0x180, 0x180, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83D9ED0:: @ 83D9ED0 - obj_rot_scal_anim_frame 0x1C0, 0x1C0, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83D9EE0:: @ 83D9EE0 - .4byte gSpriteAffineAnim_83D9E90 - .4byte gSpriteAffineAnim_83D9EA0 - .4byte gSpriteAffineAnim_83D9EB0 - .4byte gSpriteAffineAnim_83D9EC0 - .4byte gSpriteAffineAnim_83D9ED0 - - .align 2 -gBattleAnimSpriteTemplate_83D9EF4:: @ 83D9EF4 - spr_template 10043, 10043, gOamData_837DFF4, gSpriteAnimTable_83D9E88, NULL, gSpriteAffineAnimTable_83D9EE0, unc_080B06FC - - .align 2 -gBattleAnimSpriteTemplate_83D9F0C:: @ 83D9F0C - spr_template 10141, 10141, gOamData_837DF24, gSpriteAnimTable_83D9BBC, NULL, gDummySpriteAffineAnimTable, sub_80D8F10 - - .align 2 -gSpriteTemplate_83D9F24:: @ 83D9F24 - spr_template 10050, 10050, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_080B08A0 - - .align 2 -gSpriteAnim_83D9F3C:: @ 83D9F3C - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9F44:: @ 83D9F44 - obj_image_anim_frame 16, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9F4C:: @ 83D9F4C - obj_image_anim_frame 32, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9F54:: @ 83D9F54 - obj_image_anim_frame 48, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83D9F5C:: @ 83D9F5C - obj_image_anim_frame 48, 1, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83D9F64:: @ 83D9F64 - .4byte gSpriteAnim_83D9F3C - - .align 2 -gSpriteAnimTable_83D9F68:: @ 83D9F68 - .4byte gSpriteAnim_83D9F44 - .4byte gSpriteAnim_83D9F4C - - .align 2 -gSpriteAnimTable_83D9F70:: @ 83D9F70 - .4byte gSpriteAnim_83D9F54 - .4byte gSpriteAnim_83D9F5C - - .align 2 -gBattleAnimSpriteTemplate_83D9F78:: @ 83D9F78 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D902C - - .align 2 -gBattleAnimSpriteTemplate_83D9F90:: @ 83D9F90 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9078 - - .align 2 -gFistFootSpriteTemplate:: @ 83D9FA8 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, AnimBasicFistOrFoot - - .align 2 -gBattleAnimSpriteTemplate_83D9FC0:: @ 83D9FC0 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D90F4 - - .align 2 -gBattleAnimSpriteTemplate_83D9FD8:: @ 83D9FD8 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F70, NULL, gDummySpriteAffineAnimTable, sub_80D92D0 - - .align 2 -gBattleAnimSpriteTemplate_83D9FF0:: @ 83D9FF0 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, sub_80D9378 - - .align 2 -gSpriteAffineAnim_83DA008:: @ 83DA008 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 20, 1 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83DA020:: @ 83DA020 - .4byte gSpriteAffineAnim_83DA008 - - .align 2 -gBattleAnimSpriteTemplate_83DA024:: @ 83DA024 - spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA020, AnimSpinningKickOrPunch - - .align 2 -gSpriteAffineAnim_83DA03C:: @ 83DA03C - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xFFFC, 0xFFFC, 20, 1 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83DA054:: @ 83DA054 - .4byte gSpriteAffineAnim_83DA03C - - .align 2 -gMegaPunchKickSpriteTemplate:: @ 83DA058 - spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA054, AnimSpinningKickOrPunch - - .align 2 -gStompFootSpriteTemplate:: @ 83DA070 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F68, NULL, gDummySpriteAffineAnimTable, AnimStompFoot - - .align 2 -gBattleAnimSpriteTemplate_83DA088:: @ 83DA088 - spr_template 10073, 10073, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D9540 - - .align 2 -gBattleAnimSpriteTemplate_83DA0A0:: @ 83DA0A0 - spr_template 10167, 10167, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D95D0 - - .align 2 -gBattleAnimSpriteTemplate_83DA0B8:: @ 83DA0B8 - spr_template 10208, 10208, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D96B8 - - .align 2 -gSpriteAffineAnim_83DA0D0:: @ 83DA0D0 - obj_rot_scal_anim_frame 0x20, 0x20, 0, 0 - obj_rot_scal_anim_frame 0x4, 0x4, 0, 64 - obj_rot_scal_anim_frame 0xFFFA, 0xFFFA, 0, 8 - obj_rot_scal_anim_frame 0x6, 0x6, 0, 8 - obj_rot_scal_anim_jump 2 - - .align 2 -gSpriteAffineAnimTable_83DA0F8:: @ 83DA0F8 - .4byte gSpriteAffineAnim_83DA0D0 - - .align 2 -gBattleAnimSpriteTemplate_83DA0FC:: @ 83DA0FC - spr_template 10212, 10212, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA0F8, sub_80D97CC - - .align 2 -gBattleAnimSpriteTemplate_83DA114:: @ 83DA114 - spr_template 10257, 10257, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D98D8 - - .align 2 -gBattleAnimSpriteTemplate_83DA12C:: @ 83DA12C - spr_template 10256, 10256, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80D9A38 - - .align 2 -gBattleAnimSpriteTemplate_83DA144:: @ 83DA144 - spr_template 10143, 10143, gOamData_837DF34, gSpriteAnimTable_83D9F64, NULL, gDummySpriteAffineAnimTable, sub_80D9B48 - - .align 2 -gSpriteAnim_83DA15C:: @ 83DA15C - obj_image_anim_frame 0, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA16C:: @ 83DA16C - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA17C:: @ 83DA17C - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA18C:: @ 83DA18C - .4byte gSpriteAnim_83DA15C - .4byte gSpriteAnim_83DA16C - .4byte gSpriteAnim_83DA17C - - .align 2 -gBattleAnimSpriteTemplate_83DA198:: @ 83DA198 - spr_template 10245, 10245, gOamData_837DF34, gSpriteAnimTable_83DA18C, NULL, gDummySpriteAffineAnimTable, sub_80D9BD4 - - .align 2 -gSpriteAnim_83DA1B0:: @ 83DA1B0 - obj_image_anim_frame 0, 6 - obj_image_anim_frame 64, 6 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA1BC:: @ 83DA1BC - obj_image_anim_frame 0, 6, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 64, 6, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA1C8:: @ 83DA1C8 - obj_image_anim_frame 0, 6, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 64, 6, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA1D4:: @ 83DA1D4 - .4byte gSpriteAnim_83DA1B0 - .4byte gSpriteAnim_83DA1BC - .4byte gSpriteAnim_83DA1C8 - - .align 2 -gBattleAnimSpriteTemplate_83DA1E0:: @ 83DA1E0 - spr_template 10246, 10246, gOamData_837DF3C, gSpriteAnimTable_83DA1D4, NULL, gDummySpriteAffineAnimTable, sub_80D9BD4 - - .align 2 -gSpriteAffineAnim_83DA1F8:: @ 83DA1F8 - obj_rot_scal_anim_frame 0x200, 0x200, 0, 0 - obj_rot_scal_anim_frame 0xFFE0, 0xFFE0, 0, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA210:: @ 83DA210 - .4byte gSpriteAffineAnim_83DA1F8 - - .align 2 -gBattleAnimSpriteTemplate_83DA214:: @ 83DA214 - spr_template 10143, 10143, gOamData_837DFF4, gSpriteAnimTable_83D9F64, NULL, gSpriteAffineAnimTable_83DA210, sub_80D9C40 - - .align 2 -gSpriteAnim_83DA22C:: @ 83DA22C - obj_image_anim_frame 0, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 24, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA240:: @ 83DA240 - .4byte gSpriteAnim_83DA22C - - .align 2 -gBattleAnimSpriteTemplate_83DA244:: @ 83DA244 - spr_template 10151, 10151, gOamData_837DF74, gSpriteAnimTable_83DA240, NULL, gDummySpriteAffineAnimTable, sub_80793C4 - - .align 2 -gSpriteAnim_83DA25C:: @ 83DA25C - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA264:: @ 83DA264 - obj_image_anim_frame 4, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA26C:: @ 83DA26C - obj_image_anim_frame 8, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA274:: @ 83DA274 - .4byte gSpriteAnim_83DA25C - - .align 2 -gSpriteAnimTable_83DA278:: @ 83DA278 - .4byte gSpriteAnim_83DA264 - - .align 2 -gSpriteAnimTable_83DA27C:: @ 83DA27C - .4byte gSpriteAnim_83DA26C - - .align 2 -gSpriteAffineAnim_83DA280:: @ 83DA280 - obj_rot_scal_anim_frame 0x160, 0x160, 0, 0 - obj_rot_scal_anim_frame 0xFFF6, 0xFFF6, 0, 10 - obj_rot_scal_anim_frame 0xA, 0xA, 0, 10 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_83DA2A0:: @ 83DA2A0 - obj_rot_scal_anim_frame 0xEC, 0xEC, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA2B0:: @ 83DA2B0 - .4byte gSpriteAffineAnim_83DA280 - - .align 2 -gSpriteAffineAnimTable_83DA2B4:: @ 83DA2B4 - .4byte gSpriteAffineAnim_83DA2A0 - - .align 2 -gBattleAnimSpriteTemplate_83DA2B8:: @ 83DA2B8 - spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA2B0, sub_80D9D70 - - .align 2 -gBattleAnimSpriteTemplate_83DA2D0:: @ 83DA2D0 - spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA2B0, sub_80D9DF0 - - .align 2 -gBattleAnimSpriteTemplate_83DA2E8:: @ 83DA2E8 - spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA27C, NULL, gSpriteAffineAnimTable_83DA2B4, sub_80D9E94 - - .align 2 -gSpriteAffineAnim_83DA300:: @ 83DA300 - obj_rot_scal_anim_frame 0xFFF0, 0x10, 0, 6 - obj_rot_scal_anim_frame 0x10, 0xFFF0, 0, 6 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83DA318:: @ 83DA318 - .4byte gSpriteAffineAnim_83DA300 - - .align 2 -gBattleAnimSpriteTemplate_83DA31C:: @ 83DA31C - spr_template 10150, 10150, gOamData_837DFEC, gSpriteAnimTable_83DA278, NULL, gSpriteAffineAnimTable_83DA318, sub_80D9F14 - - .align 2 -gSpriteAffineAnim_83DA334:: @ 83DA334 - obj_rot_scal_anim_frame 0x9C, 0x9C, 0, 0 - obj_rot_scal_anim_frame 0x5, 0x5, 0, 20 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA34C:: @ 83DA34C - .4byte gSpriteAffineAnim_83DA334 - - .align 2 -gPoisonBubbleSpriteTemplate:: @ 83DA350 - spr_template 10150, 10150, gOamData_837DF8C, gSpriteAnimTable_83DA274, NULL, gSpriteAffineAnimTable_83DA34C, AnimBubbleEffect - - .align 2 -gWaterBubbleSpriteTemplate:: @ 83DA368 - spr_template 10155, 10155, gOamData_837E0AC, gSpriteAnimTable_83D9310, NULL, gSpriteAffineAnimTable_83DA34C, AnimBubbleEffect - - .align 2 -gBattleAnimSpriteTemplate_83DA380:: @ 83DA380 - spr_template 10009, 10009, gOamData_837DF7C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DA034 - - .align 2 -gSpriteAffineAnim_83DA398:: @ 83DA398 - obj_rot_scal_anim_frame 0x10, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xA, 0x0, 0, 24 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA3B0:: @ 83DA3B0 - .4byte gSpriteAffineAnim_83DA398 - - .align 2 -gBattleAnimSpriteTemplate_83DA3B4:: @ 83DA3B4 - spr_template 10009, 10009, gOamData_837DFDC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA3B0, sub_80DA16C - - .align 2 -gSpriteAnim_83DA3CC:: @ 83DA3CC - obj_image_anim_frame 0, 3 - obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP - obj_image_anim_frame 0, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DA3E0:: @ 83DA3E0 - .4byte gSpriteAnim_83DA3CC - - .align 2 -gBattleAnimSpriteTemplate_83DA3E4:: @ 83DA3E4 - spr_template 10154, 10154, gOamData_837DF54, gSpriteAnimTable_83DA3E0, NULL, gDummySpriteAffineAnimTable, sub_80DA208 - - .align 2 -gSpriteAffineAnim_83DA3FC:: @ 83DA3FC - obj_rot_scal_anim_frame 0x10, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x28, 0x0, 0, 6 - obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5 - obj_rot_scal_anim_frame 0xFFF0, 0x20, 0, 10 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA424:: @ 83DA424 - .4byte gSpriteAffineAnim_83DA3FC - - .align 2 -gSpriteAffineAnim_83DA428:: @ 83DA428 - obj_rot_scal_anim_frame 0x0, 0x0, 50, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DA438:: @ 83DA438 - obj_rot_scal_anim_frame 0x0, 0x0, -40, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA448:: @ 83DA448 - .4byte gSpriteAffineAnim_83DA428 - .4byte gSpriteAffineAnim_83DA438 - - .align 2 -gBattleAnimSpriteTemplate_83DA450:: @ 83DA450 - spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA424, sub_80DA300 - - .align 2 -gBattleAnimSpriteTemplate_83DA468:: @ 83DA468 - spr_template 10156, 10156, gOamData_837DF9C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA448, sub_80DA38C - - .align 2 -gSpriteAnim_83DA480:: @ 83DA480 - obj_image_anim_frame 0, 0 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA488:: @ 83DA488 - obj_image_anim_frame 16, 0, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA490:: @ 83DA490 - .4byte gSpriteAnim_83DA480 - .4byte gSpriteAnim_83DA488 - - .align 2 -gBattleAnimSpriteTemplate_83DA498:: @ 83DA498 - spr_template 10270, 10270, gOamData_837DF94, gSpriteAnimTable_83DA490, NULL, gDummySpriteAffineAnimTable, sub_80DA4D8 - - .align 2 -@ unused palette - .incbin "graphics/unknown/unknown_3DA4B0.gbapal" - - .align 2 -gSpriteTemplate_83DA4D0:: @ 83DA4D0 - spr_template 10155, 10155, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DAD30 - - .align 2 -gSpriteTemplate_83DA4E8:: @ 83DA4E8 - spr_template 10270, 10270, gOamData_837DF94, gSpriteAnimTable_83DA490, NULL, gDummySpriteAffineAnimTable, sub_80DAD84 - - .align 2 -gSpriteAnim_83DA500:: @ 83DA500 - obj_image_anim_frame 0, 1 - obj_image_anim_frame 8, 1 - obj_image_anim_frame 16, 1 - obj_image_anim_frame 8, 1, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 0, 1, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA518:: @ 83DA518 - .4byte gSpriteAnim_83DA500 - - .align 2 -gBattleAnimSpriteTemplate_83DA51C:: @ 83DA51C - spr_template 10162, 10162, gOamData_837DF54, gSpriteAnimTable_83DA518, NULL, gDummySpriteAffineAnimTable, sub_80DB000 - - .align 2 -gSpriteAffineAnim_83DA534:: @ 83DA534 - obj_rot_scal_anim_frame 0x10, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x28, 0x0, 0, 6 - obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5 - obj_rot_scal_anim_frame 0xFFEC, 0x0, 0, 7 - obj_rot_scal_anim_frame 0xFFEC, 0xFFEC, 0, 5 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA564:: @ 83DA564 - .4byte gSpriteAffineAnim_83DA534 - - .align 2 -gBattleAnimSpriteTemplate_83DA568:: @ 83DA568 - spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA564, sub_80DB194 - - .align 2 -gSpriteAffineAnim_83DA580:: @ 83DA580 - obj_rot_scal_anim_frame 0xA0, 0x100, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA590:: @ 83DA590 - .4byte gSpriteAffineAnim_83DA580 - - .align 2 -gBattleAnimSpriteTemplate_83DA594:: @ 83DA594 - spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA590, sub_80DB1F4 - - .align 2 -gSpriteAffineAnim_83DA5AC:: @ 83DA5AC - obj_rot_scal_anim_frame 0x10, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x28, 0x0, 0, 6 - obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 5 - obj_rot_scal_anim_frame 0xFFF0, 0x20, 0, 10 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA5D4:: @ 83DA5D4 - .4byte gSpriteAffineAnim_83DA5AC - - .align 2 -gBattleAnimSpriteTemplate_83DA5D8:: @ 83DA5D8 - spr_template 10156, 10156, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA5D4, sub_80DB288 - - .align 2 -gSpriteAffineAnim_83DA5F0:: @ 83DA5F0 - obj_rot_scal_anim_frame 0x100, 0x0, 0, 0 - obj_rot_scal_anim_frame 0x0, 0x20, 0, 12 - obj_rot_scal_anim_frame 0x0, 0xFFE0, 0, 11 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA610:: @ 83DA610 - .4byte gSpriteAffineAnim_83DA5F0 - - .align 2 -gBattleAnimSpriteTemplate_83DA614:: @ 83DA614 - spr_template 10272, 10272, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB374 - - .align 2 -gBattleAnimSpriteTemplate_83DA62C:: @ 83DA62C - spr_template 10273, 10273, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB458 - - .align 2 -gSpriteTemplate_83DA644:: @ 83DA644 - spr_template 10212, 10212, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB564 - - .align 2 -gBattleAnimSpriteTemplate_83DA65C:: @ 83DA65C - spr_template 10284, 10284, gOamData_837DFFC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB5E4 - - .align 2 -gSpriteAffineAnim_83DA674:: @ 83DA674 - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0xFFFE, 0xFFFE, -10, 120 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DA68C:: @ 83DA68C - .4byte gSpriteAffineAnim_83DA674 - - .align 2 -gBattleAnimSpriteTemplate_83DA690:: @ 83DA690 - spr_template 10196, 10196, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA68C, sub_80793C4 - - .align 2 -gBattleAnimSpriteTemplate_83DA6A8:: @ 83DA6A8 - spr_template 10166, 10166, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C - - .align 2 -gBattleAnimSpriteTemplate_83DA6C0:: @ 83DA6C0 - spr_template 10167, 10167, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C - - .align 2 -gBattleAnimSpriteTemplate_83DA6D8:: @ 83DA6D8 - spr_template 10168, 10168, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C - - .align 2 -gBattleAnimSpriteTemplate_83DA6F0:: @ 83DA6F0 - spr_template 10169, 10169, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C - - .align 2 -gBattleAnimSpriteTemplate_83DA708:: @ 83DA708 - spr_template 10170, 10170, gOamData_837E05C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DB74C - - .align 2 -gSpriteAnim_83DA720:: @ 83DA720 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 16, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 48, 3 - obj_image_anim_frame 64, 3 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA738:: @ 83DA738 - .4byte gSpriteAnim_83DA720 - - .align 2 -gBattleAnimSpriteTemplate_83DA73C:: @ 83DA73C - spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83DA738, NULL, gDummySpriteAffineAnimTable, sub_80DBA4C - - .align 2 -gSpriteAnim_83DA754:: @ 83DA754 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 4, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_frame 12, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA768:: @ 83DA768 - .4byte gSpriteAnim_83DA754 - - .align 2 -gBattleAnimSpriteTemplate_83DA76C:: @ 83DA76C - spr_template 10070, 10070, gOamData_837DF2C, gSpriteAnimTable_83DA768, NULL, gDummySpriteAffineAnimTable, sub_80DBA4C - - .align 2 -gBattleAnimSpriteTemplate_83DA784:: @ 83DA784 - spr_template 10163, 10163, gOamData_837DF74, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, TranslateAnimSpriteToTargetMonLocation - - .align 2 -gSpriteAnim_83DA79C:: @ 83DA79C - obj_image_anim_frame 8, 60, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 22, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_loop 0 - obj_image_anim_frame 16, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 0, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 5, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_loop 1 - obj_image_anim_frame 8, 22, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 24, 3, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 40, 22, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnim_83DA7DC:: @ 83DA7DC - obj_image_anim_frame 8, 60 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 8, 22 - obj_image_anim_loop 0 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_frame 0, 5 - obj_image_anim_frame 8, 5 - obj_image_anim_loop 1 - obj_image_anim_frame 8, 22 - obj_image_anim_frame 24, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 40, 22 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA81C:: @ 83DA81C - .4byte gSpriteAnim_83DA79C - .4byte gSpriteAnim_83DA7DC - - .align 2 -gBattleAnimSpriteTemplate_83DA824:: @ 83DA824 - spr_template 10097, 10097, gOamData_837DF74, gSpriteAnimTable_83DA81C, NULL, gDummySpriteAffineAnimTable, sub_80DBAF4 - - .align 2 -gSpriteAnim_83DA83C:: @ 83DA83C - obj_image_anim_frame 0, 6 - obj_image_anim_frame 16, 6 - obj_image_anim_frame 32, 6 - obj_image_anim_frame 48, 6 - obj_image_anim_frame 64, 6 - obj_image_anim_frame 80, 6 - obj_image_anim_frame 96, 18 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DA85C:: @ 83DA85C - .4byte gSpriteAnim_83DA83C - - .align 2 -Unknown_3DA860:: @ 83DA860 - obj_rot_scal_anim_frame 0, 0, 4, 4 - obj_rot_scal_anim_frame 0, 0, -4, 8 - obj_rot_scal_anim_frame 0, 0, 4, 4 - obj_rot_scal_anim_loop 2 - obj_rot_scal_anim_end 0 - - .align 2 -gUnknown_083DA888:: @ 83DA888 - .4byte Unknown_3DA860 - - .align 2 -gBattleAnimSpriteTemplate_83DA88C:: @ 83DA88C - spr_template 10093, 10093, gOamData_837DF34, gSpriteAnimTable_83DA85C, NULL, gDummySpriteAffineAnimTable, sub_80DBB70 - - .align 2 -gUnknown_083DA8A4:: @ 83DA8A4 - obj_rot_scal_anim_frame -8, 10, 0, 16 - obj_rot_scal_anim_frame 18, -18, 0, 16 - obj_rot_scal_anim_frame -20, 16, 0, 8 - obj_rot_scal_anim_end 0 - - .align 2 -gUnknown_083DA8C4:: @ 83DA8C4 - obj_rot_scal_anim_frame 64, -4, 0, 20 - obj_rot_scal_anim_frame 0, 0, 0, -56 - obj_rot_scal_anim_end 0 - - .align 2 -gSpriteTemplate_83DA8DC:: @ 83DA8DC - spr_template 10249, 10249, gOamData_837E04C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gBattleAnimSpriteTemplate_83DA8F4:: @ 83DA8F4 - spr_template 10250, 10250, gOamData_837DF3C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DC068 - - .align 2 -gSpriteAffineAnim_83DA90C:: @ 83DA90C - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 8 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 8 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_83DA924:: @ 83DA924 - obj_rot_scal_anim_frame 0xF0, 0xF0, 0, 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 6 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 8 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 2 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnim_83DA94C:: @ 83DA94C - obj_rot_scal_anim_frame 0xD0, 0xD0, 0, 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 4 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 8 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 4 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnim_83DA974:: @ 83DA974 - obj_rot_scal_anim_frame 0xB0, 0xB0, 0, 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 2 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 8 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 6 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83DA99C:: @ 83DA99C - .4byte gSpriteAffineAnim_83DA90C - .4byte gSpriteAffineAnim_83DA924 - .4byte gSpriteAffineAnim_83DA94C - .4byte gSpriteAffineAnim_83DA974 - - .align 2 -gSpriteTemplate_83DA9AC:: @ 83DA9AC - spr_template 10251, 10251, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA99C, sub_80DC2B0 - - .align 2 -gSpriteAffineAnim_83DA9C4:: @ 83DA9C4 - obj_rot_scal_anim_frame 0x20, 0x20, 0, 0 - obj_rot_scal_anim_frame 0x4, 0x4, 0, 120 - obj_rot_scal_anim_end 1 - - .align 2 -gSpriteAffineAnimTable_83DA9DC:: @ 83DA9DC - .4byte gSpriteAffineAnim_83DA9C4 - - .align 2 -gBattleAnimSpriteTemplate_83DA9E0:: @ 83DA9E0 - spr_template 10267, 10267, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DA9DC, sub_80793C4 - - .align 2 -gSpriteAffineAnim_83DA9F8:: @ 83DA9F8 - obj_rot_scal_anim_frame 0x20, 0x20, 0, 0 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 17 - obj_rot_scal_anim_loop 0 - obj_rot_scal_anim_frame 0xFFF8, 0xFFF8, 0, 10 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 10 - obj_rot_scal_anim_loop 4 - obj_rot_scal_anim_loop 0 - obj_rot_scal_anim_frame 0xFFF0, 0xFFF0, 0, 5 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 5 - obj_rot_scal_anim_loop 7 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DAA50:: @ 83DAA50 - obj_rot_scal_anim_frame 0xFFEC, 0x18, 0, 15 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DAA60:: @ 83DAA60 - .4byte gSpriteAffineAnim_83DA9F8 - .4byte gSpriteAffineAnim_83DAA50 - - .align 2 -gBattleAnimSpriteTemplate_83DAA68:: @ 83DAA68 - spr_template 10212, 10212, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAA60, sub_80DC700 - - .align 2 -gSpriteAffineAnim_83DAA80:: @ 83DAA80 - obj_rot_scal_anim_frame 0x100, 0x100, 30, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DAA90:: @ 83DAA90 - obj_rot_scal_anim_frame 0x100, 0x100, -99, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DAAA0:: @ 83DAAA0 - obj_rot_scal_anim_frame 0x100, 0x100, 94, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DAAB0:: @ 83DAAB0 - .4byte gSpriteAffineAnim_83DAA80 - .4byte gSpriteAffineAnim_83DAA90 - .4byte gSpriteAffineAnim_83DAAA0 - - .align 2 -gBattleAnimSpriteTemplate_83DAABC:: @ 83DAABC - spr_template 10153, 10153, gOamData_837E014, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAAB0, sub_80DC824 - - .align 2 -gSpriteAffineAnim_83DAAD4:: @ 83DAAD4 - obj_rot_scal_anim_frame 0x0, 0x0, -33, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DAAE4:: @ 83DAAE4 - obj_rot_scal_anim_frame 0x0, 0x0, 96, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DAAF4:: @ 83DAAF4 - obj_rot_scal_anim_frame 0x0, 0x0, -96, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DAB04:: @ 83DAB04 - .4byte gSpriteAffineAnim_83DAAD4 - .4byte gSpriteAffineAnim_83DAAE4 - .4byte gSpriteAffineAnim_83DAAF4 - - .align 2 -gBattleAnimSpriteTemplate_83DAB10:: @ 83DAB10 - spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB04, sub_80DC8F4 - - .align 2 -gBattleAnimSpriteTemplate_83DAB28:: @ 83DAB28 - spr_template 10180, 10180, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DC9A0 - - .align 2 -gBattleAnimSpriteTemplate_83DAB40:: @ 83DAB40 - spr_template 10179, 10179, gOamData_837DF5C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCA70 - - .align 2 -gSpriteAffineAnim_83DAB58:: @ 83DAB58 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x6, 0x6, 0, 1 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83DAB70:: @ 83DAB70 - .4byte gSpriteAffineAnim_83DAB58 - - .align 2 -gBattleAnimSpriteTemplate_83DAB74:: @ 83DAB74 - spr_template 10181, 10181, gOamData_837E11C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAB70, sub_80DCB38 - - .align 2 -gLinearStingerSpriteTemplate:: @ 83DAB8C - spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimTranslateStinger - - .align 2 -gPinMissileSpriteTemplate:: @ 83DABA4 - spr_template 10161, 10161, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimMissileArc - - .align 2 -gIcicleSpearSpriteTemplate:: @ 83DABBC - spr_template 10262, 10262, gOamData_837DF94, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, AnimMissileArc - - .align 2 -gSpriteAffineAnim_83DABD4:: @ 83DABD4 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0 - obj_rot_scal_anim_frame 0x8, 0x8, 0, 18 - obj_rot_scal_anim_loop 0 - obj_rot_scal_anim_frame 0xFFFB, 0xFFFB, 0, 8 - obj_rot_scal_anim_frame 0x5, 0x5, 0, 8 - obj_rot_scal_anim_loop 5 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DAC0C:: @ 83DAC0C - .4byte gSpriteAffineAnim_83DABD4 - - .align 2 -gBattleAnimSpriteTemplate_83DAC10:: @ 83DAC10 - spr_template 10212, 10212, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAC0C, sub_80DCE40 - - .align 2 -gSpriteAnim_83DAC28:: @ 83DAC28 - obj_image_anim_frame 32, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAC30:: @ 83DAC30 - obj_image_anim_frame 48, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAC38:: @ 83DAC38 - obj_image_anim_frame 64, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DAC40:: @ 83DAC40 - .4byte gSpriteAnim_83DAC28 - .4byte gSpriteAnim_83DAC30 - .4byte gSpriteAnim_83DAC38 - - .align 2 -gBattleAnimSpriteTemplate_83DAC4C:: @ 83DAC4C - spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAC40, NULL, gDummySpriteAffineAnimTable, sub_80DCE9C - - .align 2 -gBattleAnimSpriteTemplate_83DAC64:: @ 83DAC64 - spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAC40, NULL, gDummySpriteAffineAnimTable, sub_80DCF60 - - .align 2 -gBattleAnimSpriteTemplate_83DAC7C:: @ 83DAC7C - spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DCFE4 - - .align 2 -gSpriteAffineAnim_83DAC94:: @ 83DAC94 - obj_rot_scal_anim_frame 0xC0, 0xC0, 0, 0 - obj_rot_scal_anim_frame 0x2, 0xFFFD, 0, 5 - obj_rot_scal_anim_frame 0xFFFE, 0x3, 0, 5 - obj_rot_scal_anim_jump 1 - - .align 2 -gSpriteAffineAnimTable_83DACB4:: @ 83DACB4 - .4byte gSpriteAffineAnim_83DAC94 - - .align 2 -gBattleAnimSpriteTemplate_83DACB8:: @ 83DACB8 - spr_template 10149, 10149, gOamData_837E0AC, gSpriteAnimTable_83D91F0, NULL, gSpriteAffineAnimTable_83DACB4, sub_80DCFE4 - - .align 2 -gBattleAnimSpriteTemplate_83DACD0:: @ 83DACD0 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83D95E0, NULL, gDummySpriteAffineAnimTable, sub_80DCFE4 - - .align 2 -gBattleAnimSpriteTemplate_83DACE8:: @ 83DACE8 - spr_template 10261, 10261, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD3AC - - .align 2 -Unknown_3DAD00:: @ 83DAD00 - subsprite -16, 0, 1, 0, 32x16 - subsprite 16, 0, 1, 8, 32x16 - - .align 2 -gUnknown_083DAD10:: @ 83DAD10 -@ the first argument is likely the amount of structs there are in the pointed data. - .4byte 0x2, Unknown_3DAD00 - - .align 2 -gSpriteAnim_83DAD18:: @ 83DAD18 - obj_image_anim_frame 0, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAD20:: @ 83DAD20 - obj_image_anim_frame 16, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAD28:: @ 83DAD28 - obj_image_anim_frame 32, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAD30:: @ 83DAD30 - obj_image_anim_frame 48, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAD38:: @ 83DAD38 - obj_image_anim_frame 64, 1 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DAD40:: @ 83DAD40 - obj_image_anim_frame 80, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DAD48:: @ 83DAD48 - .4byte gSpriteAnim_83DAD18 - .4byte gSpriteAnim_83DAD20 - - .align 2 -gSpriteAnimTable_83DAD50:: @ 83DAD50 - .4byte gSpriteAnim_83DAD28 - .4byte gSpriteAnim_83DAD30 - - .align 2 -gSpriteAnimTable_83DAD58:: @ 83DAD58 - .4byte gSpriteAnim_83DAD38 - .4byte gSpriteAnim_83DAD40 - - .align 2 -gBattleAnimSpriteTemplate_83DAD60:: @ 83DAD60 - spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD48, NULL, gDummySpriteAffineAnimTable, sub_80DD490 - - .align 2 -gSpriteTemplate_83DAD78:: @ 83DAD78 - spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD87C - - .align 2 -gSpriteTemplate_83DAD90:: @ 83DAD90 - spr_template 10058, 10058, gOamData_837DF34, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DD87C - - .align 2 -gBattleAnimSpriteTemplate_83DADA8:: @ 83DADA8 - spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD48, NULL, gDummySpriteAffineAnimTable, sub_80DD8E8 - - .align 2 -gSpriteAffineAnim_83DADC0:: @ 83DADC0 - obj_rot_scal_anim_frame 0x0, 0x0, -5, 5 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_83DADD0:: @ 83DADD0 - obj_rot_scal_anim_frame 0x0, 0x0, 5, 5 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83DADE0:: @ 83DADE0 - .4byte gSpriteAffineAnim_83DADC0 - .4byte gSpriteAffineAnim_83DADD0 - - .align 2 -gBattleAnimSpriteTemplate_83DADE8:: @ 83DADE8 - spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD48, NULL, gSpriteAffineAnimTable_83DADE0, sub_80DD978 - - .align 2 -gBattleAnimSpriteTemplate_83DAE00:: @ 83DAE00 - spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD48, NULL, gSpriteAffineAnimTable_83DADE0, sub_80DD9A4 - - .align 2 -gBattleAnimSpriteTemplate_83DAE18:: @ 83DAE18 - spr_template 10058, 10058, gOamData_837DF34, gSpriteAnimTable_83DAD58, NULL, gSpriteAffineAnimTable_83DADE0, AnimMoveTwisterParticle - - .align 2 -gBattleAnimSpriteTemplate_83DAE30:: @ 83DAE30 - spr_template 10058, 10058, gOamData_837DF94, gSpriteAnimTable_83DAD50, NULL, gSpriteAffineAnimTable_83DADE0, sub_807A9BC - - .align 2 -gSpriteAffineAnim_83DAE48:: @ 83DAE48 - obj_rot_scal_anim_frame 0x1E, 0x1E, 10, 5 - obj_rot_scal_anim_frame 0xFFE2, 0xFFE2, 10, 5 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83DAE60:: @ 83DAE60 - .4byte gSpriteAffineAnim_83DAE48 - - .align 2 -gBattleAnimSpriteTemplate_83DAE64:: @ 83DAE64 - spr_template 10013, 10013, gOamData_837DFEC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAE60, sub_80DDB6C - - .align 2 -gBattleAnimSpriteTemplate_83DAE7C:: @ 83DAE7C - spr_template 10013, 10013, gOamData_837E04C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DDD58 - - .align 2 -gSpriteAffineAnim_83DAE94:: @ 83DAE94 - obj_rot_scal_anim_frame 0x0, 0x0, 10, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83DAEA4:: @ 83DAEA4 - .4byte gSpriteAffineAnim_83DAE94 - - .align 2 -gBattleAnimSpriteTemplate_83DAEA8:: @ 83DAEA8 - spr_template 10176, 10176, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DAEA4, sub_80DDF40 - - .align 2 -gSpriteAnim_83DAEC0:: @ 83DAEC0 - obj_image_anim_frame 0, 2 - obj_image_anim_frame 8, 2 - obj_image_anim_frame 16, 2 - obj_image_anim_frame 24, 2 - obj_image_anim_frame 32, 2 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DAED8:: @ 83DAED8 - .4byte gSpriteAnim_83DAEC0 - - .align 2 -gBattleAnimSpriteTemplate_83DAEDC:: @ 83DAEDC - spr_template 10177, 10177, gOamData_837DF74, gSpriteAnimTable_83DAED8, NULL, gDummySpriteAffineAnimTable, sub_80DE0FC - - .align 2 -gSpriteAffineAnim_83DAEF4:: @ 83DAEF4 - obj_rot_scal_anim_frame 0x200, 0x200, 0, 0 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DAF04:: @ 83DAF04 - .4byte gSpriteAffineAnim_83DAEF4 - - .align 2 -gSpriteTemplate_83DAF08:: @ 83DAF08 - spr_template 10188, 10188, gOamData_837E07C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DE7B8 - - .align 2 -gBattleAnimSpriteTemplate_83DAF20:: @ 83DAF20 - spr_template 10199, 10199, gOamData_837E074, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DEF3C - - .align 2 -gBattleAnimSpriteTemplate_83DAF38:: @ 83DAF38 - spr_template 10200, 10200, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF0B8 - - .align 2 -gBattleAnimSpriteTemplate_83DAF50:: @ 83DAF50 - spr_template 10221, 10221, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF0B8 - - .align 2 -gSpriteAnim_83DAF68:: @ 83DAF68 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 8, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 24, 4 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DAF7C:: @ 83DAF7C - .4byte gSpriteAnim_83DAF68 - - .align 2 -gSpriteTemplate_83DAF80:: @ 83DAF80 - spr_template 10253, 10253, gOamData_837E094, gSpriteAnimTable_83DAF7C, NULL, gDummySpriteAffineAnimTable, sub_80DF3D8 - - .align 2 -gSpriteTemplate_83DAF98:: @ 83DAF98 - spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF49C - - .align 2 -gSpriteAnim_83DAFB0:: @ 83DAFB0 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 48, 4 - obj_image_anim_frame 64, 4 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DAFC8:: @ 83DAFC8 - .4byte gSpriteAnim_83DAFB0 - - .align 2 -gBattleAnimSpriteTemplate_83DAFCC:: @ 83DAFCC - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83DAFC8, NULL, gDummySpriteAffineAnimTable, sub_80DF5A0 - - .align 2 -gSpriteAnim_83DAFE4:: @ 83DAFE4 - obj_image_anim_frame 16, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 48, 3 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83DAFF4:: @ 83DAFF4 - obj_image_anim_frame 16, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 32, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 48, 3, OBJ_IMAGE_ANIM_V_FLIP | OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DB004:: @ 83DB004 - .4byte gSpriteAnim_83DAFE4 - .4byte gSpriteAnim_83DAFF4 - - .align 2 -gSpriteAffineAnim_83DB00C:: @ 83DB00C - obj_rot_scal_anim_frame 0x50, 0x50, 127, 0 - obj_rot_scal_anim_frame 0xD, 0xD, 0, 100 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB024:: @ 83DB024 - obj_rot_scal_anim_frame 0x50, 0x50, 0, 0 - obj_rot_scal_anim_frame 0xD, 0xD, 0, 100 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DB03C:: @ 83DB03C - .4byte gSpriteAffineAnim_83DB00C - .4byte gSpriteAffineAnim_83DB024 - - .align 2 -gBattleAnimSpriteTemplate_83DB044:: @ 83DB044 - spr_template 10029, 10029, gOamData_837DFF4, gSpriteAnimTable_83DB004, NULL, gSpriteAffineAnimTable_83DB03C, sub_80DF760 - - .align 2 -gSpriteAnim_83DB05C:: @ 83DB05C - obj_image_anim_frame 0, 5 - obj_image_anim_frame 16, 5 - obj_image_anim_frame 32, 5 - obj_image_anim_frame 48, 5 - obj_image_anim_frame 64, 5 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DB074:: @ 83DB074 - .4byte gSpriteAnim_83DB05C - - .align 2 -gBattleAnimSpriteTemplate_83DB078:: @ 83DB078 - spr_template 10035, 10035, gOamData_837DF34, gSpriteAnimTable_83DB074, NULL, gDummySpriteAffineAnimTable, sub_80DF6F0 - - .align 2 -gSpriteAnim_83DB090:: @ 83DB090 - obj_image_anim_frame 16, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 48, 3 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DB0A0:: @ 83DB0A0 - .4byte gSpriteAnim_83DB090 - .4byte gSpriteAnim_83DB090 - - .align 2 -gSpriteAffineAnim_83DB0A8:: @ 83DB0A8 - obj_rot_scal_anim_frame 0x64, 0x64, 127, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB0B8:: @ 83DB0B8 - obj_rot_scal_anim_frame 0x64, 0x64, 0, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DB0C8:: @ 83DB0C8 - .4byte gSpriteAffineAnim_83DB0A8 - .4byte gSpriteAffineAnim_83DB0B8 - - .align 2 -gBattleAnimSpriteTemplate_83DB0D0:: @ 83DB0D0 - spr_template 10029, 10029, gOamData_837DFF4, gSpriteAnimTable_83DB0A0, NULL, gSpriteAffineAnimTable_83DB0C8, sub_80DF760 - - .align 2 -gBattleAnimSpriteTemplate_83DB0E8:: @ 83DB0E8 - spr_template 10249, 10249, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DF78C - - .align 2 -gBattleAnimSpriteTemplate_83DB100:: @ 83DB100 - spr_template 10029, 10029, gOamData_837DF34, gSpriteAnimTable_83DAFC8, NULL, gDummySpriteAffineAnimTable, sub_80DFB28 - - .align 2 -gSpriteTemplate_83DB118:: @ 83DB118 - spr_template 10015, 10015, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80DFE14 - - .align 2 -gSpriteAffineAnim_83DB130:: @ 83DB130 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB140:: @ 83DB140 - obj_rot_scal_anim_frame 0x0, 0x0, 32, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB150:: @ 83DB150 - obj_rot_scal_anim_frame 0x0, 0x0, 64, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB160:: @ 83DB160 - obj_rot_scal_anim_frame 0x0, 0x0, 96, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB170:: @ 83DB170 - obj_rot_scal_anim_frame 0x0, 0x0, -128, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB180:: @ 83DB180 - obj_rot_scal_anim_frame 0x0, 0x0, -96, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB190:: @ 83DB190 - obj_rot_scal_anim_frame 0x0, 0x0, -64, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB1A0:: @ 83DB1A0 - obj_rot_scal_anim_frame 0x0, 0x0, -32, 1 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DB1B0:: @ 83DB1B0 - .4byte gSpriteAffineAnim_83DB130 - .4byte gSpriteAffineAnim_83DB140 - .4byte gSpriteAffineAnim_83DB150 - .4byte gSpriteAffineAnim_83DB160 - .4byte gSpriteAffineAnim_83DB170 - .4byte gSpriteAffineAnim_83DB180 - .4byte gSpriteAffineAnim_83DB190 - .4byte gSpriteAffineAnim_83DB1A0 - - .align 2 -gBattleAnimSpriteTemplate_83DB1D0:: @ 83DB1D0 - spr_template 10139, 10139, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80DFF1C - - .align 2 -gBattleAnimSpriteTemplate_83DB1E8:: @ 83DB1E8 - spr_template 10145, 10145, gOamData_837E0BC, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB1B0, sub_80DFF1C - - .align 2 -gSpriteAffineAnim_83DB200:: @ 83DB200 - obj_rot_scal_anim_frame 0xC0, 0xC0, 80, 0 - obj_rot_scal_anim_frame 0x0, 0x0, -2, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB218:: @ 83DB218 - obj_rot_scal_anim_frame 0xC0, 0xC0, -80, 0 - obj_rot_scal_anim_frame 0x0, 0x0, 2, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DB230:: @ 83DB230 - .4byte gSpriteAffineAnim_83DB200 - .4byte gSpriteAffineAnim_83DB218 - - .align 2 -gBattleAnimSpriteTemplate_83DB238:: @ 83DB238 - spr_template 10155, 10155, gOamData_837DF8C, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB230, sub_80DFFD0 - - .align 2 -gSpriteAnim_83DB250:: @ 83DB250 - obj_image_anim_frame 0, 4 - obj_image_anim_frame 16, 4 - obj_image_anim_frame 32, 4 - obj_image_anim_frame 48, 4 - obj_image_anim_frame 64, 4 - obj_image_anim_end - - .align 2 -gSpriteAnim_83DB268:: @ 83DB268 - obj_image_anim_frame 0, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 16, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 32, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 48, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 64, 4, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DB280:: @ 83DB280 - .4byte gSpriteAnim_83DB250 - .4byte gSpriteAnim_83DB268 - - .align 2 -gBattleAnimSpriteTemplate_83DB288:: @ 83DB288 - spr_template 10039, 10039, gOamData_837DF34, gSpriteAnimTable_83DB280, NULL, gDummySpriteAffineAnimTable, sub_80E0A10 - - .align 2 -gSpriteAffineAnim_83DB2A0:: @ 83DB2A0 - obj_rot_scal_anim_frame 0x0, 0x0, 15, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnim_83DB2B0:: @ 83DB2B0 - obj_rot_scal_anim_frame 0x0, 0x0, 20, 1 - obj_rot_scal_anim_jump 0 - - .align 2 -gSpriteAffineAnimTable_83DB2C0:: @ 83DB2C0 - .4byte gSpriteAffineAnim_83DB2A0 - - .align 2 -gSpriteAffineAnimTable_83DB2C4:: @ 83DB2C4 - .4byte gSpriteAffineAnim_83DB2B0 - - .align 2 -gBattleAnimSpriteTemplate_83DB2C8:: @ 83DB2C8 - spr_template 10000, 10000, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB2C0, sub_80E0F1C - - .align 2 -gBattleAnimSpriteTemplate_83DB2E0:: @ 83DB2E0 - spr_template 10000, 10000, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB2C4, sub_80E1004 - - .align 2 -gBattleAnimSpriteTemplate_83DB2F8:: @ 83DB2F8 - spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1078 - - .align 2 -gSpriteAnim_83DB310:: @ 83DB310 - obj_image_anim_frame 1, 1 - obj_image_anim_end - - .align 2 -gSpriteAnimTable_83DB318:: @ 83DB318 - .4byte gSpriteAnim_83DB310 - - .align 2 -gBattleAnimSpriteTemplate_83DB31C:: @ 83DB31C - spr_template 10074, 10074, gOamData_837DF2C, gSpriteAnimTable_83DB318, NULL, gDummySpriteAffineAnimTable, sub_80E1078 - - .align 2 -gBattleAnimSpriteTemplate_83DB334:: @ 83DB334 - spr_template 10074, 10074, gOamData_837DF2C, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1108 - - .align 2 -gBattleAnimSpriteTemplate_83DB34C:: @ 83DB34C - spr_template 10074, 10074, gOamData_837DF24, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1728 - - .align 2 -gBattleAnimSpriteTemplate_83DB364:: @ 83DB364 - spr_template 10281, 10281, gOamData_837DF54, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E17CC - - .align 2 -gSpriteAnim_83DB37C:: @ 83DB37C - obj_image_anim_frame 0, 8 - obj_image_anim_frame 4, 8 - obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 8, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnim_83DB390:: @ 83DB390 - obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP - obj_image_anim_frame 4, 8 - obj_image_anim_frame 0, 8 - obj_image_anim_frame 8, 8 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DB3A4:: @ 83DB3A4 - .4byte gSpriteAnim_83DB37C - .4byte gSpriteAnim_83DB390 - - .align 2 -gBattleAnimSpriteTemplate_83DB3AC:: @ 83DB3AC - spr_template 10073, 10073, gOamData_837DF2C, gSpriteAnimTable_83DB3A4, NULL, gDummySpriteAffineAnimTable, sub_80E1CB4 - - .align 2 -gBattleAnimSpriteTemplate_83DB3C4:: @ 83DB3C4 - spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1D84 - - .align 2 -gBattleAnimSpriteTemplate_83DB3DC:: @ 83DB3DC - spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E1E2C - - .align 2 -gSpriteAnim_83DB3F4:: @ 83DB3F4 - obj_image_anim_frame 0, 3 - obj_image_anim_frame 16, 3 - obj_image_anim_frame 32, 3 - obj_image_anim_frame 48, 3 - obj_image_anim_frame 64, 3 - obj_image_anim_jump 0 - - .align 2 -gSpriteAnimTable_83DB40C:: @ 83DB40C - .4byte gSpriteAnim_83DB3F4 - - .align 2 -gSpriteTemplate_83DB410:: @ 83DB410 - spr_template 10071, 10071, gOamData_837DF34, gSpriteAnimTable_83DB40C, NULL, gDummySpriteAffineAnimTable, sub_80E1F3C - - .align 2 -gBattleAnimSpriteTemplate_83DB428:: @ 83DB428 - spr_template 0, 0, gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E24B8 - - .align 2 -gSpriteAffineAnim_83DB440:: @ 83DB440 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB450:: @ 83DB450 - obj_rot_scal_anim_frame 0xD8, 0xD8, 0, 0 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB468:: @ 83DB468 - obj_rot_scal_anim_frame 0xB0, 0xB0, 0, 0 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnim_83DB480:: @ 83DB480 - obj_rot_scal_anim_frame 0x80, 0x80, 0, 0 - obj_rot_scal_anim_frame 0x0, 0x0, 0, 8 - obj_rot_scal_anim_end - - .align 2 -gSpriteAffineAnimTable_83DB498:: @ 83DB498 - .4byte gSpriteAffineAnim_83DB440 - .4byte gSpriteAffineAnim_83DB450 - .4byte gSpriteAffineAnim_83DB468 - .4byte gSpriteAffineAnim_83DB480 - - .align 2 -gBasicHitSplatSpriteTemplate:: @ 83DB4A8 - spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27A0 - - .align 2 -gBattleAnimSpriteTemplate_83DB4C0:: @ 83DB4C0 - spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2838 - - .align 2 -gBattleAnimSpriteTemplate_83DB4D8:: @ 83DB4D8 - spr_template 10148, 10148, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27A0 - - .align 2 -gBattleAnimSpriteTemplate_83DB4F0:: @ 83DB4F0 - spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2870 - - .align 2 -gBattleAnimSpriteTemplate_83DB508:: @ 83DB508 - spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E2908 - - .align 2 -gBattleAnimSpriteTemplate_83DB520:: @ 83DB520 - spr_template 10285, 10285, gOamData_837E054, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_80E2978 - - .align 2 -gBattleAnimSpriteTemplate_83DB538:: @ 83DB538 - spr_template 10135, 10135, gOamData_837DF94, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E29C0 - - .align 2 -gBattleAnimSpriteTemplate_83DB550:: @ 83DB550 - spr_template 10135, 10135, gOamData_837E0B4, gDummySpriteAnimTable, NULL, gSpriteAffineAnimTable_83DB498, sub_80E27E8 - - .align 2 -gUnknown_083DB568:: @ 83DB568 -@ seems to be a src element in a LoadPalette call. - .2byte 0x7FFF diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index f1e8cbde4..9ce2d5f3e 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -107,5 +107,6 @@ void sub_80789D4(bool8 a1); void sub_8079AB8(u8 sprite, u8 sprite2); u8 sub_807A4A0(int bank, u8 sprite, int species); void sub_80794A8(struct Sprite *sprite); +void sub_807A9BC(struct Sprite *sprite); #endif // GUARD_ROM_8077ABC_H diff --git a/ld_script.txt b/ld_script.txt index 57512c53d..22895c297 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -273,24 +273,28 @@ SECTIONS { src/battle/anim/fire.o(.text); src/battle/anim/sunlight.o(.text); src/battle/anim/fire_2.o(.text); - src/battle/anim/heated_rock.o(.text); src/battle/anim/wisp_orb.o(.text); src/battle/anim/wisp_fire.o(.text); src/battle/anim/thunder.o(.text); src/battle/anim/beta_beat_up.o(.text); src/battle/anim/shock.o(.text); src/battle/anim/current.o(.text); + src/battle/anim/ice.o(.text); asm/ice.o(.text); src/battle/anim/fight.o(.text); src/battle/anim/poison.o(.text); + src/battle/anim/flying.o(.text); asm/flying.o(.text); src/battle/anim/psychic.o(.text); src/battle/anim/bug.o(.text); src/battle/anim/rock.o(.text); + src/battle/anim/ghost.o(.text); asm/ghost.o(.text); src/battle/anim/dragon.o(.text); src/battle/anim/dark.o(.text); + src/battle/anim/ground.o(.text); asm/ground.o(.text); + src/battle/anim/normal.o(.text); asm/normal.o(.text); src/battle/anim/battle_intro.o(.text); src/bike.o(.text); @@ -674,7 +678,29 @@ SECTIONS { src/battle/anim/rain.o(.rodata); src/battle/anim/bubble.o(.rodata); src/battle/anim/aurora.o(.rodata); - data/battle_anim_80CA710.o(.rodata); + src/battle/anim/energy_wave.o(.rodata); + src/battle/anim/water.o(.rodata); + src/battle/anim/fire.o(.rodata); + src/battle/anim/sunlight.o(.rodata); + src/battle/anim/fire_2.o(.rodata); + src/battle/anim/wisp_orb.o(.rodata); + src/battle/anim/wisp_fire.o(.rodata); + src/battle/anim/thunder.o(.rodata); + src/battle/anim/beta_beat_up.o(.rodata); + src/battle/anim/shock.o(.rodata); + src/battle/anim/current.o(.rodata); + src/battle/anim/ice.o(.rodata); + src/battle/anim/fight.o(.rodata); + src/battle/anim/poison.o(.rodata); + src/battle/anim/flying.o(.rodata); + src/battle/anim/psychic.o(.rodata); + src/battle/anim/bug.o(.rodata); + src/battle/anim/rock.o(.rodata); + src/battle/anim/ghost.o(.rodata); + src/battle/anim/dragon.o(.rodata); + src/battle/anim/dark.o(.rodata); + src/battle/anim/ground.o(.rodata); + src/battle/anim/normal.o(.rodata); src/battle/anim/battle_intro.o(.rodata); src/bike.o(.rodata); src/easy_chat_1.o(.rodata); diff --git a/src/battle/anim/beta_beat_up.c b/src/battle/anim/beta_beat_up.c index ee889492c..166782362 100644 --- a/src/battle/anim/beta_beat_up.c +++ b/src/battle/anim/beta_beat_up.c @@ -7,10 +7,35 @@ extern s16 gBattleAnimArgs[8]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; +void sub_80D6234(struct Sprite *sprite); static void sub_80D6278(struct Sprite *); // beta_beat_up +const union AffineAnimCmd gSpriteAffineAnim_83D97E8[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 20), + AFFINEANIMCMD_FRAME(0x0, 0x0, -16, 60), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9808[] = +{ + gSpriteAffineAnim_83D97E8, +}; + +const struct SpriteTemplate gSpriteTemplate_83D980C = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9808, + .callback = sub_80D6234, +}; + void sub_80D6234(struct Sprite *sprite) { if (GetBattlerSide(gAnimBankAttacker) != 0) diff --git a/src/battle/anim/bug.c b/src/battle/anim/bug.c index 245e45774..c4c7fe937 100644 --- a/src/battle/anim/bug.c +++ b/src/battle/anim/bug.c @@ -3,18 +3,202 @@ #include "contest.h" #include "rom_8077ABC.h" #include "trig.h" -// #include "util.h" extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; +void sub_80DC824(struct Sprite *sprite); +void sub_80DC8F4(struct Sprite *sprite); +void sub_80DC9A0(struct Sprite *sprite); +void sub_80DCA70(struct Sprite *sprite); +void sub_80DCB38(struct Sprite *sprite); +void AnimTranslateStinger(struct Sprite *sprite); +void AnimMissileArc(struct Sprite *sprite); +void sub_80DCE40(struct Sprite *sprite); static void sub_80DCA38(struct Sprite *sprite); static void sub_80DCAEC(struct Sprite *sprite); static void sub_80DCB5C(struct Sprite *sprite); static void sub_80DCBB4(struct Sprite *sprite); static void AnimMissileArcStep(struct Sprite *sprite); +const union AffineAnimCmd gSpriteAffineAnim_83DAA80[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 30, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAA90[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAAA0[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAAB0[] = +{ + gSpriteAffineAnim_83DAA80, + gSpriteAffineAnim_83DAA90, + gSpriteAffineAnim_83DAAA0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAABC = +{ + .tileTag = 10153, + .paletteTag = 10153, + .oam = &gOamData_837E014, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAAB0, + .callback = sub_80DC824, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAAD4[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAAE4[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAAF4[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAB04[] = +{ + gSpriteAffineAnim_83DAAD4, + gSpriteAffineAnim_83DAAE4, + gSpriteAffineAnim_83DAAF4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAB10 = +{ + .tileTag = 10161, + .paletteTag = 10161, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAB04, + .callback = sub_80DC8F4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAB28 = +{ + .tileTag = 10180, + .paletteTag = 10180, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DC9A0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAB40 = +{ + .tileTag = 10179, + .paletteTag = 10179, + .oam = &gOamData_837DF5C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DCA70, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAB58[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAB70[] = +{ + gSpriteAffineAnim_83DAB58, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAB74 = +{ + .tileTag = 10181, + .paletteTag = 10181, + .oam = &gOamData_837E11C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAB70, + .callback = sub_80DCB38, +}; + +const struct SpriteTemplate gLinearStingerSpriteTemplate = +{ + .tileTag = 10161, + .paletteTag = 10161, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimTranslateStinger, +}; + +const struct SpriteTemplate gPinMissileSpriteTemplate = +{ + .tileTag = 10161, + .paletteTag = 10161, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMissileArc, +}; + +const struct SpriteTemplate gIcicleSpearSpriteTemplate = +{ + .tileTag = 10262, + .paletteTag = 10262, + .oam = &gOamData_837DF94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMissileArc, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DABD4[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 18), + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0xFFFB, 0xFFFB, 0, 8), + AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 8), + AFFINEANIMCMD_LOOP(5), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAC0C[] = +{ + gSpriteAffineAnim_83DABD4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAC10 = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAC0C, + .callback = sub_80DCE40, +}; + // used in Move_MEGAHORN void sub_80DC824(struct Sprite *sprite) { diff --git a/src/battle/anim/current.c b/src/battle/anim/current.c index af9003e87..af72edef0 100755 --- a/src/battle/anim/current.c +++ b/src/battle/anim/current.c @@ -12,14 +12,20 @@ extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern u8 gAnimVisualTaskCount; -extern const struct SpriteTemplate gSpriteTemplate_83D9938; -extern const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9950; -extern const struct SpriteTemplate gSpriteTemplate_83D99B8; -extern const struct SpriteTemplate gSpriteTemplate_83D9B10; -extern const struct SpriteTemplate gSpriteTemplate_83D9B40; extern const struct SpriteTemplate gBattleAnimSpriteTemplate_83D97D0; -extern s8 gUnknown_083D9968[][2]; +void sub_80D648C(struct Sprite *sprite); +void sub_80D65DC(struct Sprite *sprite); +void sub_80D6658(struct Sprite *sprite); +void sub_80D679C(struct Sprite *sprite); +void sub_80D6A1C(struct Sprite *sprite); +void sub_80D6A6C(struct Sprite *sprite); +void sub_80D6D18(struct Sprite *sprite); +void sub_80D6D70(struct Sprite *sprite); +void sub_80D6DD8(struct Sprite *sprite); +void sub_80D7230(struct Sprite *sprite); +void sub_80D727C(struct Sprite *sprite); +void sub_80D755C(struct Sprite *sprite); static void sub_80D6514(struct Sprite *sprite); static void sub_80D672C(struct Sprite *sprite); static void sub_80D6874(u8 taskId); @@ -32,6 +38,323 @@ static bool8 sub_80D7470(struct Task *task, u8 taskId); static bool8 sub_80D7654(struct Task *task, u8 taskId); static void sub_80D76C4(struct Sprite *sprite); +const union AffineAnimCmd gSpriteAffineAnim_83D988C[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D989C[] = +{ + gSpriteAffineAnim_83D988C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D98A0 = +{ + .tileTag = 10011, + .paletteTag = 10011, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D989C, + .callback = sub_80D648C, +}; + +const union AnimCmd gSpriteAnim_83D98B8[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(16, 6), + ANIMCMD_FRAME(32, 6), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D98C8[] = +{ + gSpriteAnim_83D98B8, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D98CC[] = +{ + AFFINEANIMCMD_FRAME(0xE8, 0xE8, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 10), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 10), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D98EC[] = +{ + gSpriteAffineAnim_83D98CC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D98F0 = +{ + .tileTag = 10282, + .paletteTag = 10282, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83D98C8, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D98EC, + .callback = sub_80D65DC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9908 = +{ + .tileTag = 10011, + .paletteTag = 10011, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D989C, + .callback = sub_80D6658, +}; + +const struct SpriteTemplate gElectricitySpriteTemplate = +{ + .tileTag = 10011, + .paletteTag = 10011, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D679C, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9938 = +{ + .tileTag = 10001, + .paletteTag = 10001, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D6A1C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9950 = +{ + .tileTag = 10173, + .paletteTag = 10173, + .oam = &gOamData_837DF54, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D6A6C, +}; + +const s8 gUnknown_083D9968[][2] = +{ + { 58, -60}, + {-56, -36}, + { 8, -56}, + {-16, 56}, + { 58, -10}, + {-58, 10}, + { 48, -18}, + {-8, 56}, + { 16, -56}, + {-58, -42}, + { 58, 30}, + {-48, 40}, + { 12, -48}, + { 48, -12}, + {-56, 18}, + { 48, 48}, +}; + +const union AnimCmd gSpriteAnim_83D9988[] = +{ + ANIMCMD_FRAME(3, 1), + ANIMCMD_FRAME(2, 1), + ANIMCMD_FRAME(1, 1), + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D999C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(1, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(3, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D99B0[] = +{ + gSpriteAnim_83D9988, + gSpriteAnim_83D999C, +}; + +const struct SpriteTemplate gSpriteTemplate_83D99B8 = +{ + .tileTag = 10211, + .paletteTag = 10211, + .oam = &gOamData_837DF24, + .anims = gSpriteAnimTable_83D99B0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D99D0[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 60), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0xFFFC, 0xFFFC, 0, 5), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 5), + AFFINEANIMCMD_LOOP(10), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9A10[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFFC, 0xFFFC, 0, 5), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 5), + AFFINEANIMCMD_JUMP(3), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9A40[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 30), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 30), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9A60[] = +{ + gSpriteAffineAnim_83D99D0, + gSpriteAffineAnim_83D9A10, + gSpriteAffineAnim_83D9A40, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9A6C = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9A60, + .callback = sub_80D6D18, +}; + +const union AnimCmd gSpriteAnim_83D9A84[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9A98[] = +{ + gSpriteAnim_83D9A84, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9A9C = +{ + .tileTag = 10213, + .paletteTag = 10213, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9A98, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D6D70, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9AB4 = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9A60, + .callback = sub_80D6DD8, +}; + +const union AnimCmd gSpriteAnim_83D9ACC[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9AD4[] = +{ + ANIMCMD_FRAME(2, 3), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9ADC[] = +{ + ANIMCMD_FRAME(4, 3), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9AE4[] = +{ + ANIMCMD_FRAME(6, 3), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9AEC[] = +{ + gSpriteAnim_83D9ACC, + gSpriteAnim_83D9AD4, + gSpriteAnim_83D9ADC, + gSpriteAnim_83D9AE4, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9AFC[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 64, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9B0C[] = +{ + gSpriteAffineAnim_83D9AFC, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9B10 = +{ + .tileTag = 10001, + .paletteTag = 10001, + .oam = &gOamData_837E024, + .anims = gSpriteAnimTable_83D9AEC, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9B0C, + .callback = sub_80D7230, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9B28 = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9A60, + .callback = sub_80D727C, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9B40 = +{ + .tileTag = 10001, + .paletteTag = 10001, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D755C, +}; void sub_80D648C(struct Sprite *sprite) { diff --git a/src/battle/anim/dark.c b/src/battle/anim/dark.c index 55d500950..a7026edff 100644 --- a/src/battle/anim/dark.c +++ b/src/battle/anim/dark.c @@ -28,6 +28,10 @@ extern const u8 gUnknown_08D1D574[]; extern const u8 gUnknown_08D1D410[]; extern const u16 gUnknown_08D1D54C[]; +void sub_80DFE14(struct Sprite *sprite); +void sub_80DFF1C(struct Sprite *sprite); +void sub_80DFFD0(struct Sprite *sprite); +void sub_80E0A10(struct Sprite *sprite); static void sub_80DFE90(struct Sprite *sprite); static void sub_80DFC9C(u8 taskId); static void sub_80DFD58(u8 taskId); @@ -40,6 +44,166 @@ static void sub_80E08CC(u8 priority); static void sub_80E079C(struct Task *task); static void sub_80E0CD0(u8 taskId); +const struct SpriteTemplate gSpriteTemplate_83DB118 = +{ + .tileTag = 10015, + .paletteTag = 10015, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DFE14, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB130[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB140[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 32, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB150[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 64, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB160[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB170[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -128, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB180[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB190[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -64, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB1A0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -32, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB1B0[] = +{ + gSpriteAffineAnim_83DB130, + gSpriteAffineAnim_83DB140, + gSpriteAffineAnim_83DB150, + gSpriteAffineAnim_83DB160, + gSpriteAffineAnim_83DB170, + gSpriteAffineAnim_83DB180, + gSpriteAffineAnim_83DB190, + gSpriteAffineAnim_83DB1A0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB1D0 = +{ + .tileTag = 10139, + .paletteTag = 10139, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB1B0, + .callback = sub_80DFF1C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB1E8 = +{ + .tileTag = 10145, + .paletteTag = 10145, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB1B0, + .callback = sub_80DFF1C, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB200[] = +{ + AFFINEANIMCMD_FRAME(0xC0, 0xC0, 80, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB218[] = +{ + AFFINEANIMCMD_FRAME(0xC0, 0xC0, -80, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB230[] = +{ + gSpriteAffineAnim_83DB200, + gSpriteAffineAnim_83DB218, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB238 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB230, + .callback = sub_80DFFD0, +}; + +const union AnimCmd gSpriteAnim_83DB250[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DB268[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(16, 4, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .hFlip = TRUE), + ANIMCMD_FRAME(48, 4, .hFlip = TRUE), + ANIMCMD_FRAME(64, 4, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DB280[] = +{ + gSpriteAnim_83DB250, + gSpriteAnim_83DB268, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB288 = +{ + .tileTag = 10039, + .paletteTag = 10039, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DB280, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E0A10, +}; // used in Smoke Ball escape, Sky Attack, Feint Attack and Camouflage void sub_80DFC24(u8 taskId) diff --git a/src/battle/anim/dragon.c b/src/battle/anim/dragon.c index 4c8448636..163529ecb 100644 --- a/src/battle/anim/dragon.c +++ b/src/battle/anim/dragon.c @@ -5,13 +5,6 @@ #include "sound.h" #include "scanline_effect.h" -void sub_80DF81C(struct Sprite *sprite); -void sub_80DFBD8(struct Sprite *sprite); - -void sub_80DF9F4(u8 taskId); - -void sub_80DFAB0(struct Task *task); - extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; @@ -21,6 +14,187 @@ extern u16 gBattle_BG2_X; extern u16 gUnknown_03000730[]; extern u8 gBankSpriteIds[]; +void sub_80DF5A0(struct Sprite *sprite); +void sub_80DF760(struct Sprite *sprite); +void sub_80DF6F0(struct Sprite *sprite); +void sub_80DF760(struct Sprite *sprite); +void sub_80DF78C(struct Sprite *sprite); +void sub_80DFB28(struct Sprite *sprite); +static void sub_80DF81C(struct Sprite *sprite); +static void sub_80DFBD8(struct Sprite *sprite); +static void sub_80DF9F4(u8 taskId); +static void sub_80DFAB0(struct Task *task); + +const union AnimCmd gSpriteAnim_83DAFB0[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DAFC8[] = +{ + gSpriteAnim_83DAFB0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAFCC = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAFC8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF5A0, +}; + +const union AnimCmd gSpriteAnim_83DAFE4[] = +{ + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83DAFF4[] = +{ + ANIMCMD_FRAME(16, 3, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(32, 3, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(48, 3, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DB004[] = +{ + gSpriteAnim_83DAFE4, + gSpriteAnim_83DAFF4, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB00C[] = +{ + AFFINEANIMCMD_FRAME(0x50, 0x50, 127, 0), + AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB024[] = +{ + AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), + AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB03C[] = +{ + gSpriteAffineAnim_83DB00C, + gSpriteAffineAnim_83DB024, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB044 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DFF4, + .anims = gSpriteAnimTable_83DB004, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB03C, + .callback = sub_80DF760, +}; + +const union AnimCmd gSpriteAnim_83DB05C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(32, 5), + ANIMCMD_FRAME(48, 5), + ANIMCMD_FRAME(64, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DB074[] = +{ + gSpriteAnim_83DB05C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB078 = +{ + .tileTag = 10035, + .paletteTag = 10035, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DB074, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF6F0, +}; + +const union AnimCmd gSpriteAnim_83DB090[] = +{ + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DB0A0[] = +{ + gSpriteAnim_83DB090, + gSpriteAnim_83DB090, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB0A8[] = +{ + AFFINEANIMCMD_FRAME(0x64, 0x64, 127, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB0B8[] = +{ + AFFINEANIMCMD_FRAME(0x64, 0x64, 0, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB0C8[] = +{ + gSpriteAffineAnim_83DB0A8, + gSpriteAffineAnim_83DB0B8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB0D0 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DFF4, + .anims = gSpriteAnimTable_83DB0A0, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB0C8, + .callback = sub_80DF760, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB0E8 = +{ + .tileTag = 10249, + .paletteTag = 10249, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF78C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB100 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAFC8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DFB28, +}; + // Outrage void sub_80DF5A0(struct Sprite *sprite) @@ -123,7 +297,7 @@ void sub_80DF78C(struct Sprite *sprite) sprite->callback = sub_80DF81C; } -void sub_80DF81C(struct Sprite *sprite) +static void sub_80DF81C(struct Sprite *sprite) { switch (sprite->data[0]) { @@ -196,7 +370,7 @@ void sub_80DF924(u8 taskId) task->func = sub_80DF9F4; } -void sub_80DF9F4(u8 taskId) +static void sub_80DF9F4(u8 taskId) { struct Task *task = &gTasks[taskId]; switch (task->data[0]) @@ -234,7 +408,7 @@ void sub_80DF9F4(u8 taskId) } } -void sub_80DFAB0(struct Task *task) +static void sub_80DFAB0(struct Task *task) { u16 r3 = task->data[5]; u16 i; @@ -264,7 +438,7 @@ void sub_80DFB28(struct Sprite *sprite) gUnknown_03000730[i] = sprite->data[i]; } -void sub_80DFBD8(struct Sprite *sprite) +static void sub_80DFBD8(struct Sprite *sprite) { sprite->data[4] += sprite->data[1]; sprite->data[5] += sprite->data[2]; diff --git a/src/battle/anim/energy_wave.c b/src/battle/anim/energy_wave.c index 7980c7b34..9ac362b57 100644 --- a/src/battle/anim/energy_wave.c +++ b/src/battle/anim/energy_wave.c @@ -8,8 +8,11 @@ extern s16 gBattleAnimArgs[8]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern const struct SpriteTemplate gSpriteTemplate_83D9130[]; +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_83D752C[]; +void sub_80D3554(struct Sprite *sprite); +void sub_80D3698(struct Sprite *sprite); +void sub_80D3728(struct Sprite *sprite); static void sub_80D35DC(struct Sprite *); static void sub_80D365C(u8); static void sub_80D370C(struct Sprite *); @@ -18,6 +21,145 @@ static void sub_80D370C(struct Sprite *); // Used in Hydro Pump, Mud Shot, Signal Beam, Flamethrower, Psywave, and // Hydro Cannon. +const union AnimCmd gSpriteAnim_83D91DC[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(4, 1), + ANIMCMD_FRAME(8, 1), + ANIMCMD_FRAME(12, 1), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D91F0[] = +{ + gSpriteAnim_83D91DC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D91F4 = +{ + .tileTag = 10149, + .paletteTag = 10149, + .oam = &gOamData_837E04C, + .anims = gSpriteAnimTable_83D91F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D3554, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D920C = +{ + .tileTag = 10259, + .paletteTag = 10259, + .oam = &gOamData_837E04C, + .anims = gSpriteAnimTable_83D91F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D3554, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9224 = +{ + .tileTag = 10264, + .paletteTag = 10264, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D3554, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D923C = +{ + .tileTag = 10265, + .paletteTag = 10265, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D3554, +}; + +const union AnimCmd gSpriteAnim_83D9254[] = +{ + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9264[] = +{ + gSpriteAnim_83D9254, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9268 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9264, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D3554, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9280 = +{ + .tileTag = 10165, + .paletteTag = 10165, + .oam = &gOamData_837E034, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D752C, + .callback = sub_80D3554, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9298[] = +{ + AFFINEANIMCMD_FRAME(0x3, 0x3, 10, 50), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 10), + AFFINEANIMCMD_FRAME(0xFFEC, 0xFFEC, -10, 20), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D92B8[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D92C8[] = +{ + gSpriteAffineAnim_83D9298, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D92CC[] = +{ + gSpriteAffineAnim_83D92B8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D92D0 = +{ + .tileTag = 10149, + .paletteTag = 10149, + .oam = &gOamData_837E10C, + .anims = gSpriteAnimTable_83D91F0, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D92C8, + .callback = sub_80D3698, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D92E8 = +{ + .tileTag = 10149, + .paletteTag = 10149, + .oam = &gOamData_837E10C, + .anims = gSpriteAnimTable_83D91F0, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D92CC, + .callback = sub_80D3728, +}; + void sub_80D3554(struct Sprite *sprite) { InitAnimSpritePos(sprite, 1); diff --git a/src/battle/anim/fight.c b/src/battle/anim/fight.c index 5e25d664a..af2af1981 100644 --- a/src/battle/anim/fight.c +++ b/src/battle/anim/fight.c @@ -26,6 +26,25 @@ extern u8 gAnimMoveTurn; extern struct SpriteTemplate gBasicHitSplatSpriteTemplate; +void sub_080B08A0(struct Sprite *sprite); +void sub_80D902C(struct Sprite *sprite); +void sub_80D9078(struct Sprite *sprite); +void AnimBasicFistOrFoot(struct Sprite *sprite); +void sub_80D90F4(struct Sprite *sprite); +void sub_80D92D0(struct Sprite *sprite); +void sub_80D9378(struct Sprite *sprite); +void AnimSpinningKickOrPunch(struct Sprite *sprite); +void AnimSpinningKickOrPunch(struct Sprite *sprite); +void AnimStompFoot(struct Sprite *sprite); +void sub_80D9540(struct Sprite *sprite); +void sub_80D95D0(struct Sprite *sprite); +void sub_80D96B8(struct Sprite *sprite); +void sub_80D97CC(struct Sprite *sprite); +void sub_80D98D8(struct Sprite *sprite); +void sub_80D9A38(struct Sprite *sprite); +void sub_80D9B48(struct Sprite *sprite); +void sub_80D9BD4(struct Sprite *sprite); +void sub_80D9C40(struct Sprite *sprite); static void sub_80D927C(struct Sprite *sprite); static void sub_80D9328(struct Sprite *sprite); static void sub_80D9404(struct Sprite *sprite); @@ -38,6 +57,381 @@ static void sub_80D986C(struct Sprite *sprite); static void sub_80D9934(struct Sprite *sprite); static void sub_80D99F4(struct Sprite *sprite); +const struct SpriteTemplate gSpriteTemplate_83D9F24 = +{ + .tileTag = 10050, + .paletteTag = 10050, + .oam = &gOamData_837DF34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_080B08A0, +}; + +const union AnimCmd gSpriteAnim_83D9F3C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9F44[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9F4C[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9F54[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9F5C[] = +{ + ANIMCMD_FRAME(48, 1, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9F64[] = +{ + gSpriteAnim_83D9F3C, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9F68[] = +{ + gSpriteAnim_83D9F44, + gSpriteAnim_83D9F4C, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9F70[] = +{ + gSpriteAnim_83D9F54, + gSpriteAnim_83D9F5C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9F78 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D902C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9F90 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9078, +}; + +const struct SpriteTemplate gFistFootSpriteTemplate = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimBasicFistOrFoot, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9FC0 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D90F4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9FD8 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F70, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D92D0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9FF0 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F68, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9378, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA008[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 20, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA020[] = +{ + gSpriteAffineAnim_83DA008, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA024 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DFF4, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA020, + .callback = AnimSpinningKickOrPunch, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA03C[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFFC, 0xFFFC, 20, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA054[] = +{ + gSpriteAffineAnim_83DA03C, +}; + +const struct SpriteTemplate gMegaPunchKickSpriteTemplate = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DFF4, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA054, + .callback = AnimSpinningKickOrPunch, +}; + +const struct SpriteTemplate gStompFootSpriteTemplate = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F68, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimStompFoot, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA088 = +{ + .tileTag = 10073, + .paletteTag = 10073, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9540, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA0A0 = +{ + .tileTag = 10167, + .paletteTag = 10167, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D95D0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA0B8 = +{ + .tileTag = 10208, + .paletteTag = 10208, + .oam = &gOamData_837DF34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D96B8, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA0D0[] = +{ + AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 64), + AFFINEANIMCMD_FRAME(0xFFFA, 0xFFFA, 0, 8), + AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 8), + AFFINEANIMCMD_JUMP(2), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA0F8[] = +{ + gSpriteAffineAnim_83DA0D0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA0FC = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E11C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA0F8, + .callback = sub_80D97CC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA114 = +{ + .tileTag = 10257, + .paletteTag = 10257, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D98D8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA12C = +{ + .tileTag = 10256, + .paletteTag = 10256, + .oam = &gOamData_837DF3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9A38, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA144 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9B48, +}; + +const union AnimCmd gSpriteAnim_83DA15C[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA16C[] = +{ + ANIMCMD_FRAME(0, 4, .vFlip = TRUE), + ANIMCMD_FRAME(16, 4, .vFlip = TRUE), + ANIMCMD_FRAME(32, 4, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA17C[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(16, 4, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA18C[] = +{ + gSpriteAnim_83DA15C, + gSpriteAnim_83DA16C, + gSpriteAnim_83DA17C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA198 = +{ + .tileTag = 10245, + .paletteTag = 10245, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DA18C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9BD4, +}; + +const union AnimCmd gSpriteAnim_83DA1B0[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(64, 6), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA1BC[] = +{ + ANIMCMD_FRAME(0, 6, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(64, 6, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA1C8[] = +{ + ANIMCMD_FRAME(0, 6, .hFlip = TRUE), + ANIMCMD_FRAME(64, 6, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA1D4[] = +{ + gSpriteAnim_83DA1B0, + gSpriteAnim_83DA1BC, + gSpriteAnim_83DA1C8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA1E0 = +{ + .tileTag = 10246, + .paletteTag = 10246, + .oam = &gOamData_837DF3C, + .anims = gSpriteAnimTable_83DA1D4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D9BD4, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA1F8[] = +{ + AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), + AFFINEANIMCMD_FRAME(0xFFE0, 0xFFE0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA210[] = +{ + gSpriteAffineAnim_83DA1F8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA214 = +{ + .tileTag = 10143, + .paletteTag = 10143, + .oam = &gOamData_837DFF4, + .anims = gSpriteAnimTable_83D9F64, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA210, + .callback = sub_80D9C40, +}; void sub_080B08A0(struct Sprite *sprite) { diff --git a/src/battle/anim/fire.c b/src/battle/anim/fire.c index 0939c938c..929828ed4 100644 --- a/src/battle/anim/fire.c +++ b/src/battle/anim/fire.c @@ -6,8 +6,170 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; -void sub_80D5038(struct Sprite *); -void sub_80D50E8(struct Sprite *); +void sub_80D4ED8(struct Sprite *sprite); +void sub_80D4F18(struct Sprite *sprite); +void sub_80D4FCC(struct Sprite *sprite); +void sub_80D4F5C(struct Sprite *sprite); +void sub_80D5074(struct Sprite *sprite); +static void sub_80D5038(struct Sprite *); +static void sub_80D50E8(struct Sprite *); + +const union AnimCmd gSpriteAnim_83D9450[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83D9460[] = +{ + ANIMCMD_FRAME(16, 4, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(48, 4, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9470[] = +{ + gSpriteAnim_83D9450, + gSpriteAnim_83D9460, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9478 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9470, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4ED8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9490 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9470, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4F18, +}; + +const union AnimCmd gSpriteAnim_83D94A8[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_FRAME(80, 3), + ANIMCMD_FRAME(96, 3), + ANIMCMD_FRAME(112, 3), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D94CC[] = +{ + gSpriteAnim_83D94A8, +}; + +const union AnimCmd gSpriteAnim_83D94D0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(32, 5), + ANIMCMD_FRAME(48, 5), + ANIMCMD_FRAME(64, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D94E8[] = +{ + gSpriteAnim_83D94D0, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D94EC[] = +{ + AFFINEANIMCMD_FRAME(0x32, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0x20, 0x0, 0, 7), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9504[] = +{ + gSpriteAffineAnim_83D94EC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9508 = +{ + .tileTag = 10033, + .paletteTag = 10033, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83D94CC, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9504, + .callback = sub_80D4FCC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9520 = +{ + .tileTag = 10033, + .paletteTag = 10033, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D94CC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4FCC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9538 = +{ + .tileTag = 10035, + .paletteTag = 10035, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D94E8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4F5C, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9550 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D94E8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4F5C, +}; + +const union AnimCmd gSpriteAnim_83D9568[] = +{ + ANIMCMD_FRAME(16, 6), + ANIMCMD_FRAME(32, 6), + ANIMCMD_FRAME(48, 6), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9578[] = +{ + gSpriteAnim_83D9568, +}; + +const struct SpriteTemplate gSpriteTemplate_83D957C = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9578, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D5074, +}; void sub_80D4ED8(struct Sprite *sprite) { @@ -20,7 +182,7 @@ void sub_80D4ED8(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, DestroyAnimSprite); sprite->callback = sub_8078174; - sub_8078174(sprite); + sprite->callback(sprite); } void sub_80D4F18(struct Sprite *sprite) @@ -82,7 +244,7 @@ void sub_80D4FCC(struct Sprite *sprite) sprite->callback = sub_80D5038; } -void sub_80D5038(struct Sprite *sprite) +static void sub_80D5038(struct Sprite *sprite) { if (++sprite->data[0] < sprite->data[4]) { @@ -119,7 +281,7 @@ void sub_80D5074(struct Sprite *sprite) sprite->callback = sub_80D50E8; } -void sub_80D50E8(struct Sprite *sprite) +static void sub_80D50E8(struct Sprite *sprite) { if (sprite->data[3]) { diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index 97ac2e933..b055d7c80 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -9,18 +9,180 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -extern struct SpriteTemplate gSpriteTemplate_83D96C4; -extern s16 gHeatedRockCoords[7][2]; +void AnimEmberFlare(struct Sprite *sprite); +void sub_80D5210(struct Sprite *sprite); +void AnimFireRing(struct Sprite *sprite); +void AnimFireCross(struct Sprite *sprite); +void sub_80D53B4(struct Sprite *sprite); +void sub_80D58FC(struct Sprite *sprite); +void sub_80D5A20(struct Sprite *sprite); static void AnimFireRingStep1(struct Sprite *); static void UpdateFireRingCircleOffset(struct Sprite *); static void AnimFireRingStep2(struct Sprite *); static void AnimFireRingStep3(struct Sprite *); -void sub_80D53F4(struct Sprite *); -void sub_80D541C(struct Sprite *); -void sub_80D54E0(u8 taskId); -void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); +static void sub_80D53F4(struct Sprite *); +static void sub_80D541C(struct Sprite *); +static void sub_80D54E0(u8 taskId); +static void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); +static void sub_80D59B0(struct Sprite *); +static void sub_80D5A74(struct Sprite *); + +const union AnimCmd gSpriteAnim_83D95C8[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D95E0[] = +{ + gSpriteAnim_83D95C8, +}; + +const struct SpriteTemplate gEmberSpriteTemplate = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation, +}; + +const struct SpriteTemplate gEmberFlareSpriteTemplate = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D95E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimEmberFlare, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9614 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D95E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D5210, +}; + +const struct SpriteTemplate gFireRingSpriteTemplate = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D95E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireRing, +}; + +const union AnimCmd gSpriteAnim_83D9644[] = +{ + ANIMCMD_FRAME(32, 6), + ANIMCMD_FRAME(48, 6), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9650[] = +{ + gSpriteAnim_83D9644, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9654[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9664[] = +{ + AFFINEANIMCMD_FRAME(0xA0, 0xA0, 0, 0), + AFFINEANIMCMD_END, +}; +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9674[] = +{ + gSpriteAffineAnim_83D9654, + gSpriteAffineAnim_83D9664, +}; + +const struct SpriteTemplate gFireCrossSpriteTemplate = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9650, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimFireCross, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9694 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D95E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D53B4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D96AC = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D95E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_807A9BC, +}; + + +const struct SpriteTemplate gSpriteTemplate_83D96C4 = +{ + .tileTag = 10201, + .paletteTag = 10201, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D58FC, +}; + +const s16 gHeatedRockCoords[][2] = +{ + {-2, -5}, + {-1, -1}, + { 3, -6}, + { 4, -2}, + { 2, -8}, + {-5, -5}, + { 4, -7}, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D96F8 = +{ + .tileTag = 10201, + .paletteTag = 10201, + .oam = &gOamData_837DF34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D5A20, +}; // Animates the secondary effect of MOVE_EMBER, where the flames grow and slide // horizontally a bit. @@ -42,13 +204,12 @@ void AnimEmberFlare(struct Sprite *sprite) sprite->callback(sprite); } -struct Sprite *sub_80D5210(struct Sprite *sprite) +void sub_80D5210(struct Sprite *sprite) { gBattleAnimArgs[0] = -gBattleAnimArgs[0]; gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->callback = sub_8079534; - return sprite; } // Animates the a fire sprite in the first-half of the MOVE_FIRE_BLAST @@ -157,7 +318,7 @@ void sub_80D53B4(struct Sprite *sprite) StoreSpriteCallbackInData(sprite, sub_80D53F4); } -void sub_80D53F4(struct Sprite *sprite) +static void sub_80D53F4(struct Sprite *sprite) { sprite->invisible = FALSE; @@ -168,7 +329,7 @@ void sub_80D53F4(struct Sprite *sprite) sub_80D541C(sprite); } -void sub_80D541C(struct Sprite *sprite) +static void sub_80D541C(struct Sprite *sprite) { sprite->pos2.x = Sin(sprite->data[1], sprite->data[2] >> 8); sprite->pos2.y = Cos(sprite->data[1], sprite->data[2] >> 8); @@ -199,7 +360,7 @@ void sub_80D5470(u8 taskId) // initialize animation task for Move_ERUPTION? task->func = sub_80D54E0; } -void sub_80D54E0(u8 taskId) // animate Move_ERUPTION? +static void sub_80D54E0(u8 taskId) // animate Move_ERUPTION? { struct Task *task = &gTasks[taskId]; @@ -309,7 +470,7 @@ void sub_80D54E0(u8 taskId) // animate Move_ERUPTION? } } -void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3) +static void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3) { u16 i, j; s8 sign; @@ -346,4 +507,119 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3) gTasks[taskId].data[a3]++; } } -}
\ No newline at end of file +} + +void sub_80D58FC(struct Sprite *sprite) +{ + sub_80D59B0(sprite); + + if (sprite->invisible) + { + gTasks[sprite->data[6]].data[sprite->data[7]]--; + DestroySprite(sprite); + } +} + +u16 sub_80D5940(u8 spriteId) +{ + u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; + + if (GetBattlerSide(gAnimBankAttacker) == 0) + { + var1 = ((var1 << 16) + 0x4A0000) >> 16; + } + else + { + var1 = ((var1 << 16) + 0x2C0000) >> 16; + } + + return var1; +} + +void sub_80D5994(struct Sprite *sprite, s16 x, s16 y) +{ + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = (u16)sprite->pos1.x * 8; + sprite->data[3] = (u16)sprite->pos1.y * 8; + sprite->data[4] = x * 8; + sprite->data[5] = y * 8; +} + +static void sub_80D59B0(struct Sprite *sprite) +{ + int var1; + if (++sprite->data[0] > 2) + { + sprite->data[0] = 0; + ++sprite->data[1]; + var1 = (u16)sprite->data[1] * (u16)sprite->data[1]; + sprite->data[3] += var1; + } + + sprite->data[2] += sprite->data[4]; + sprite->pos1.x = sprite->data[2] >> 3; + sprite->data[3] += sprite->data[5]; + sprite->pos1.y = sprite->data[3] >> 3; + + if (sprite->pos1.x < -8 || sprite->pos1.x > 0xf8 || sprite->pos1.y < -8 || sprite->pos1.y > 120) + sprite->invisible = TRUE; +} + +void sub_80D5A20(struct Sprite *sprite) +{ + sprite->pos1.x = gBattleAnimArgs[0]; + sprite->pos1.y = gBattleAnimArgs[1]; + + sprite->data[0] = 0; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[6] = gBattleAnimArgs[2]; + sprite->data[7] = gBattleAnimArgs[3]; + + sprite->oam.tileNum += gBattleAnimArgs[4] * 16; + sprite->callback = sub_80D5A74; +} + +static void sub_80D5A74(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + if (sprite->data[6] != 0) + { + sprite->data[6]--; + return; + } + + sprite->data[0]++; + // fall through + case 1: + sprite->pos1.y += 8; + if (sprite->pos1.y >= sprite->data[7]) + { + sprite->pos1.y = sprite->data[7]; + sprite->data[0]++; + } + break; + case 2: + if (++sprite->data[1] > 1) + { + sprite->data[1] = 0; + if ((++sprite->data[2] & 1) != 0) + { + sprite->pos2.y = -3; + } + else + { + sprite->pos2.y = 3; + } + } + + if (++sprite->data[3] > 16) + { + DestroyAnimSprite(sprite); + } + break; + } +} diff --git a/src/battle/anim/flying.c b/src/battle/anim/flying.c new file mode 100755 index 000000000..ec40e26c4 --- /dev/null +++ b/src/battle/anim/flying.c @@ -0,0 +1,346 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "battle_anim.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; + +void sub_80DA034(struct Sprite *sprite); +void sub_80DA16C(struct Sprite *sprite); +void sub_80DA208(struct Sprite *sprite); +void sub_80DA300(struct Sprite *sprite); +void sub_80DA38C(struct Sprite *sprite); +void sub_80DA4D8(struct Sprite *sprite); +void sub_80DAD30(struct Sprite *sprite); +void sub_80DAD84(struct Sprite *sprite); +void sub_80DB000(struct Sprite *sprite); +void sub_80DB194(struct Sprite *sprite); +void sub_80DB1F4(struct Sprite *sprite); +void sub_80DB288(struct Sprite *sprite); +void sub_80DB374(struct Sprite *sprite); +void sub_80DB458(struct Sprite *sprite); +void sub_80DB564(struct Sprite *sprite); +void sub_80DB5E4(struct Sprite *sprite); + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA380 = +{ + .tileTag = 10009, + .paletteTag = 10009, + .oam = &gOamData_837DF7C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DA034, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA398[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xA, 0x0, 0, 24), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA3B0[] = +{ + gSpriteAffineAnim_83DA398, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA3B4 = +{ + .tileTag = 10009, + .paletteTag = 10009, + .oam = &gOamData_837DFDC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA3B0, + .callback = sub_80DA16C, +}; + +const union AnimCmd gSpriteAnim_83DA3CC[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(0, 3, .hFlip = TRUE), + ANIMCMD_FRAME(0, 3, .vFlip = TRUE), + ANIMCMD_FRAME(0, 3, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DA3E0[] = +{ + gSpriteAnim_83DA3CC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA3E4 = +{ + .tileTag = 10154, + .paletteTag = 10154, + .oam = &gOamData_837DF54, + .anims = gSpriteAnimTable_83DA3E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DA208, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA3FC[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), + AFFINEANIMCMD_FRAME(0x0, 0xFFE0, 0, 5), + AFFINEANIMCMD_FRAME(0xFFF0, 0x20, 0, 10), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA424[] = +{ + gSpriteAffineAnim_83DA3FC, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA428[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 50, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA438[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -40, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA448[] = +{ + gSpriteAffineAnim_83DA428, + gSpriteAffineAnim_83DA438, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA450 = +{ + .tileTag = 10156, + .paletteTag = 10156, + .oam = &gOamData_837DFFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA424, + .callback = sub_80DA300, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA468 = +{ + .tileTag = 10156, + .paletteTag = 10156, + .oam = &gOamData_837DF9C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA448, + .callback = sub_80DA38C, +}; + +const union AnimCmd gSpriteAnim_83DA480[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA488[] = +{ + ANIMCMD_FRAME(16, 0, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA490[] = +{ + gSpriteAnim_83DA480, + gSpriteAnim_83DA488, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA498 = +{ + .tileTag = 10270, + .paletteTag = 10270, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83DA490, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DA4D8, +}; + +const u16 gUnknownPalette_83DA4B0[] = INCBIN_U16("graphics/unknown/unknown_3DA4B0.gbapal"); + +const struct SpriteTemplate gSpriteTemplate_83DA4D0 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DAD30, +}; + +const struct SpriteTemplate gSpriteTemplate_83DA4E8 = +{ + .tileTag = 10270, + .paletteTag = 10270, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83DA490, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DAD84, +}; + +const union AnimCmd gSpriteAnim_83DA500[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_FRAME(8, 1), + ANIMCMD_FRAME(16, 1), + ANIMCMD_FRAME(8, 1, .hFlip = TRUE), + ANIMCMD_FRAME(0, 1, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA518[] = +{ + gSpriteAnim_83DA500, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA51C = +{ + .tileTag = 10162, + .paletteTag = 10162, + .oam = &gOamData_837DF54, + .anims = gSpriteAnimTable_83DA518, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB000, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA534[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), + AFFINEANIMCMD_FRAME(0x0, 0xFFE0, 0, 5), + AFFINEANIMCMD_FRAME(0xFFEC, 0x0, 0, 7), + AFFINEANIMCMD_FRAME(0xFFEC, 0xFFEC, 0, 5), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA564[] = +{ + gSpriteAffineAnim_83DA534, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA568 = +{ + .tileTag = 10156, + .paletteTag = 10156, + .oam = &gOamData_837DFFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA564, + .callback = sub_80DB194, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA580[] = +{ + AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA590[] = +{ + gSpriteAffineAnim_83DA580, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA594 = +{ + .tileTag = 10156, + .paletteTag = 10156, + .oam = &gOamData_837DFFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA590, + .callback = sub_80DB1F4, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA5AC[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0x28, 0x0, 0, 6), + AFFINEANIMCMD_FRAME(0x0, 0xFFE0, 0, 5), + AFFINEANIMCMD_FRAME(0xFFF0, 0x20, 0, 10), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA5D4[] = +{ + gSpriteAffineAnim_83DA5AC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA5D8 = +{ + .tileTag = 10156, + .paletteTag = 10156, + .oam = &gOamData_837DFFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA5D4, + .callback = sub_80DB288, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA5F0[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12), + AFFINEANIMCMD_FRAME(0x0, 0xFFE0, 0, 11), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA610[] = +{ + gSpriteAffineAnim_83DA5F0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA614 = +{ + .tileTag = 10272, + .paletteTag = 10272, + .oam = &gOamData_837DFFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB374, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA62C = +{ + .tileTag = 10273, + .paletteTag = 10273, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB458, +}; + +const struct SpriteTemplate gSpriteTemplate_83DA644 = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB564, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA65C = +{ + .tileTag = 10284, + .paletteTag = 10284, + .oam = &gOamData_837DFFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB5E4, +}; diff --git a/src/battle/anim/ghost.c b/src/battle/anim/ghost.c new file mode 100755 index 000000000..fd33d4782 --- /dev/null +++ b/src/battle/anim/ghost.c @@ -0,0 +1,191 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "battle_anim.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; + +void sub_80DDB6C(struct Sprite *sprite); +void sub_80DDD58(struct Sprite *sprite); +void sub_80DDF40(struct Sprite *sprite); +void sub_80DE0FC(struct Sprite *sprite); +void sub_80DE7B8(struct Sprite *sprite); +void sub_80DEF3C(struct Sprite *sprite); +void sub_80DF0B8(struct Sprite *sprite); +void sub_80DF0B8(struct Sprite *sprite); +void sub_80DF3D8(struct Sprite *sprite); +void sub_80DF49C(struct Sprite *sprite); + +const union AffineAnimCmd gSpriteAffineAnim_83DAE48[] = +{ + AFFINEANIMCMD_FRAME(0x1E, 0x1E, 10, 5), + AFFINEANIMCMD_FRAME(0xFFE2, 0xFFE2, 10, 5), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAE60[] = +{ + gSpriteAffineAnim_83DAE48, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAE64 = +{ + .tileTag = 10013, + .paletteTag = 10013, + .oam = &gOamData_837DFEC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAE60, + .callback = sub_80DDB6C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAE7C = +{ + .tileTag = 10013, + .paletteTag = 10013, + .oam = &gOamData_837E04C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DDD58, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAE94[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAEA4[] = +{ + gSpriteAffineAnim_83DAE94, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAEA8 = +{ + .tileTag = 10176, + .paletteTag = 10176, + .oam = &gOamData_837DF94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAEA4, + .callback = sub_80DDF40, +}; + +const union AnimCmd gSpriteAnim_83DAEC0[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(8, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(24, 2), + ANIMCMD_FRAME(32, 2), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DAED8[] = +{ + gSpriteAnim_83DAEC0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAEDC = +{ + .tileTag = 10177, + .paletteTag = 10177, + .oam = &gOamData_837DF74, + .anims = gSpriteAnimTable_83DAED8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DE0FC, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAEF4[] = +{ + AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAF04[] = +{ + gSpriteAffineAnim_83DAEF4, +}; + +const struct SpriteTemplate gSpriteTemplate_83DAF08 = +{ + .tileTag = 10188, + .paletteTag = 10188, + .oam = &gOamData_837E07C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DE7B8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAF20 = +{ + .tileTag = 10199, + .paletteTag = 10199, + .oam = &gOamData_837E074, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DEF3C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAF38 = +{ + .tileTag = 10200, + .paletteTag = 10200, + .oam = &gOamData_837E054, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF0B8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAF50 = +{ + .tileTag = 10221, + .paletteTag = 10221, + .oam = &gOamData_837E054, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF0B8, +}; + +const union AnimCmd gSpriteAnim_83DAF68[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(8, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(24, 4), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DAF7C[] = +{ + gSpriteAnim_83DAF68, +}; + +const struct SpriteTemplate gSpriteTemplate_83DAF80 = +{ + .tileTag = 10253, + .paletteTag = 10253, + .oam = &gOamData_837E094, + .anims = gSpriteAnimTable_83DAF7C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF3D8, +}; + +const struct SpriteTemplate gSpriteTemplate_83DAF98 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DF49C, +}; diff --git a/src/battle/anim/ground.c b/src/battle/anim/ground.c new file mode 100755 index 000000000..a523df20e --- /dev/null +++ b/src/battle/anim/ground.c @@ -0,0 +1,125 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "battle_anim.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; + +void sub_80E0F1C(struct Sprite *sprite); +void sub_80E1004(struct Sprite *sprite); +void sub_80E1078(struct Sprite *sprite); +void sub_80E1078(struct Sprite *sprite); +void sub_80E1108(struct Sprite *sprite); +void sub_80E1728(struct Sprite *sprite); +void sub_80E17CC(struct Sprite *sprite); + +const union AffineAnimCmd gSpriteAffineAnim_83DB2A0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 15, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB2B0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB2C0[] = +{ + gSpriteAffineAnim_83DB2A0, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB2C4[] = +{ + gSpriteAffineAnim_83DB2B0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB2C8 = +{ + .tileTag = 10000, + .paletteTag = 10000, + .oam = &gOamData_837DF94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB2C0, + .callback = sub_80E0F1C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB2E0 = +{ + .tileTag = 10000, + .paletteTag = 10000, + .oam = &gOamData_837DF94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB2C4, + .callback = sub_80E1004, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB2F8 = +{ + .tileTag = 10074, + .paletteTag = 10074, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1078, +}; + +const union AnimCmd gSpriteAnim_83DB310[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DB318[] = +{ + gSpriteAnim_83DB310, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB31C = +{ + .tileTag = 10074, + .paletteTag = 10074, + .oam = &gOamData_837DF2C, + .anims = gSpriteAnimTable_83DB318, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1078, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB334 = +{ + .tileTag = 10074, + .paletteTag = 10074, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1108, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB34C = +{ + .tileTag = 10074, + .paletteTag = 10074, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1728, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB364 = +{ + .tileTag = 10281, + .paletteTag = 10281, + .oam = &gOamData_837DF54, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E17CC, +}; diff --git a/src/battle/anim/heated_rock.c b/src/battle/anim/heated_rock.c deleted file mode 100644 index 6f1a1344a..000000000 --- a/src/battle/anim/heated_rock.c +++ /dev/null @@ -1,129 +0,0 @@ -#include "global.h" -#include "battle_anim.h" -#include "rom_8077ABC.h" - -extern s16 gBattleAnimArgs[8]; -extern u8 gAnimBankAttacker; -extern u8 gAnimBankTarget; -extern u16 gBattleTypeFlags; - -void sub_80D59B0(struct Sprite *); -static void sub_80D5A74(struct Sprite *); - -// heated_rock (moves heated rock sprites) -// Used in Eruption. - -void sub_80D58FC(struct Sprite *sprite) -{ - sub_80D59B0(sprite); - - if (sprite->invisible) - { - gTasks[sprite->data[6]].data[sprite->data[7]]--; - DestroySprite(sprite); - } -} - -u16 sub_80D5940(u8 spriteId) -{ - u16 var1 = gSprites[spriteId].pos1.y + gSprites[spriteId].pos2.y + gSprites[spriteId].centerToCornerVecY; - - if (GetBattlerSide(gAnimBankAttacker) == 0) - { - var1 = ((var1 << 16) + 0x4A0000) >> 16; - } - else - { - var1 = ((var1 << 16) + 0x2C0000) >> 16; - } - - return var1; -} - -void sub_80D5994(struct Sprite *sprite, s16 x, s16 y) -{ - sprite->data[0] = 0; - sprite->data[1] = 0; - sprite->data[2] = (u16)sprite->pos1.x * 8; - sprite->data[3] = (u16)sprite->pos1.y * 8; - sprite->data[4] = x * 8; - sprite->data[5] = y * 8; -} - -void sub_80D59B0(struct Sprite *sprite) -{ - int var1; - if (++sprite->data[0] > 2) - { - sprite->data[0] = 0; - ++sprite->data[1]; - var1 = (u16)sprite->data[1] * (u16)sprite->data[1]; - sprite->data[3] += var1; - } - - sprite->data[2] += sprite->data[4]; - sprite->pos1.x = sprite->data[2] >> 3; - sprite->data[3] += sprite->data[5]; - sprite->pos1.y = sprite->data[3] >> 3; - - if (sprite->pos1.x < -8 || sprite->pos1.x > 0xf8 || sprite->pos1.y < -8 || sprite->pos1.y > 120) - sprite->invisible = TRUE; -} - -void sub_80D5A20(struct Sprite *sprite) -{ - sprite->pos1.x = gBattleAnimArgs[0]; - sprite->pos1.y = gBattleAnimArgs[1]; - - sprite->data[0] = 0; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[6] = gBattleAnimArgs[2]; - sprite->data[7] = gBattleAnimArgs[3]; - - sprite->oam.tileNum += gBattleAnimArgs[4] * 16; - sprite->callback = sub_80D5A74; -} - -static void sub_80D5A74(struct Sprite *sprite) -{ - switch (sprite->data[0]) - { - case 0: - if (sprite->data[6] != 0) - { - sprite->data[6]--; - return; - } - - sprite->data[0]++; - // fall through - case 1: - sprite->pos1.y += 8; - if (sprite->pos1.y >= sprite->data[7]) - { - sprite->pos1.y = sprite->data[7]; - sprite->data[0]++; - } - break; - case 2: - if (++sprite->data[1] > 1) - { - sprite->data[1] = 0; - if ((++sprite->data[2] & 1) != 0) - { - sprite->pos2.y = -3; - } - else - { - sprite->pos2.y = 3; - } - } - - if (++sprite->data[3] > 16) - { - DestroyAnimSprite(sprite); - } - break; - } -} diff --git a/src/battle/anim/ice.c b/src/battle/anim/ice.c new file mode 100755 index 000000000..50c8b9030 --- /dev/null +++ b/src/battle/anim/ice.c @@ -0,0 +1,495 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "battle_anim.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; + +void sub_80D7704(struct Sprite *sprite); +void sub_80D78EC(struct Sprite *sprite); +void sub_80D792C(struct Sprite *sprite); +void sub_80D79B4(struct Sprite *sprite); +void sub_80D7A64(struct Sprite *sprite); +void sub_80D7CD4(struct Sprite *sprite); +void sub_80D7E88(struct Sprite *sprite); +void sub_80D7F10(struct Sprite *sprite); +void sub_80D83E0(struct Sprite *sprite); +void sub_80D8700(struct Sprite *sprite); +void sub_80D8D1C(struct Sprite *sprite); +void sub_807A9BC(struct Sprite *sprite); +void unc_080B06FC(struct Sprite *sprite); +void sub_80D8F10(struct Sprite *sprite); + +const union AnimCmd gSpriteAnim_83D9B58[] = +{ + ANIMCMD_FRAME(0, 5, .hFlip = TRUE), + ANIMCMD_FRAME(1, 5, .hFlip = TRUE), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9B64[] = +{ + gSpriteAnim_83D9B58, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9B68 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7704, +}; + +const union AnimCmd gSpriteAnim_83D9B80[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9B88[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9B90[] = +{ + ANIMCMD_FRAME(6, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9B98[] = +{ + ANIMCMD_FRAME(7, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9BA0[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9BA8[] = +{ + ANIMCMD_FRAME(12, 6), + ANIMCMD_FRAME(13, 6), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9BB4[] = +{ + gSpriteAnim_83D9B80, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9BB8[] = +{ + gSpriteAnim_83D9B88, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9BBC[] = +{ + gSpriteAnim_83D9B90, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9BC0[] = +{ + gSpriteAnim_83D9B98, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9BC4[] = +{ + gSpriteAnim_83D9BA0, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9BC8[] = +{ + gSpriteAnim_83D9BA8, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9BCC[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 40, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9BDC[] = +{ + gSpriteAffineAnim_83D9BCC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9BE0 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837E144, + .anims = gSpriteAnimTable_83D9BB8, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9BDC, + .callback = sub_80D78EC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9BF8 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837E044, + .anims = gSpriteAnimTable_83D9BBC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D78EC, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9C10[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9C20[] = +{ + gSpriteAffineAnim_83D9C10, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C24 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837E0E4, + .anims = gSpriteAnimTable_83D9BB8, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9C20, + .callback = sub_80D792C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C3C = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837E044, + .anims = gSpriteAnimTable_83D9BBC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D792C, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9C54[] = +{ + AFFINEANIMCMD_FRAME(0xCE, 0xCE, 0, 0), + AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 10), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 6), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9C74[] = +{ + gSpriteAffineAnim_83D9C54, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C78 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837E0E4, + .anims = gSpriteAnimTable_83D9BB8, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9C74, + .callback = sub_80D79B4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9C90 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837E0A4, + .anims = gSpriteAnimTable_83D9BBC, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9C74, + .callback = sub_80D79B4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9CA8 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837DF24, + .anims = gSpriteAnimTable_83D9BC0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7A64, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9CC0 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837DF2C, + .anims = gSpriteAnimTable_83D9BC4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7CD4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9CD8 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837DF24, + .anims = gSpriteAnimTable_83D9BC0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7CD4, +}; + +const union AnimCmd gSpriteAnim_83D9CF0[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(6, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(2, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9D10[] = +{ + gSpriteAnim_83D9CF0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D14 = +{ + .tileTag = 10142, + .paletteTag = 10142, + .oam = &gOamData_837E084, + .anims = gSpriteAnimTable_83D9D10, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7E88, +}; + +const union AnimCmd gSpriteAnim_83D9D2C[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(8, 8), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9D38[] = +{ + gSpriteAnim_83D9D2C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D3C = +{ + .tileTag = 10144, + .paletteTag = 10144, + .oam = &gOamData_837E074, + .anims = gSpriteAnimTable_83D9D38, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7F10, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D54 = +{ + .tileTag = 10172, + .paletteTag = 10172, + .oam = &gOamData_837E074, + .anims = gSpriteAnimTable_83D9D38, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D7F10, +}; + +const u8 gUnknown_083D9D6C[] = +{ + 0, 1, 2, 2, 2, 2, 3, 4, 4, 4, 5, 6, 6, 6, 6, 7, 8, 8, 8, 9, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9D80 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D83E0, +}; + +const u8 gUnknown_083D9D98[] = +{ + 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 5, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9DAC = +{ + .tileTag = 10172, + .paletteTag = 10172, + .oam = &gOamData_837E074, + .anims = gSpriteAnimTable_83D9D38, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D8700, +}; + +// bitfield array +const u32 gUnknown_083D9DC4[] = +{ + 0x2001E064, + 0x0001E055, + 0x1011E0F2, + 0x1021E042, + 0x0031E0B6, + 0x2001E03C, + 0x0011E0D6, + 0x1001E071, + 0x1031E0D2, + 0x0021E026, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9DEC[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9DFC[] = +{ + AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9E0C[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9E1C[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9E2C[] = +{ + gSpriteAffineAnim_83D9DEC, + gSpriteAffineAnim_83D9DFC, + gSpriteAffineAnim_83D9E0C, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9E38[] = +{ + gSpriteAffineAnim_83D9E1C, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9E3C = +{ + .tileTag = 10263, + .paletteTag = 10263, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9E2C, + .callback = sub_80D8D1C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9E54 = +{ + .tileTag = 10263, + .paletteTag = 10263, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9E38, + .callback = sub_807A9BC, +}; + +const union AnimCmd gSpriteAnim_83D9E6C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9E74[] = +{ + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_FRAME(48, 4), + ANIMCMD_FRAME(64, 4), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9E88[] = +{ + gSpriteAnim_83D9E6C, + gSpriteAnim_83D9E74, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9E90[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9EA0[] = +{ + AFFINEANIMCMD_FRAME(0x118, 0x118, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9EB0[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9EC0[] = +{ + AFFINEANIMCMD_FRAME(0x180, 0x180, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D9ED0[] = +{ + AFFINEANIMCMD_FRAME(0x1C0, 0x1C0, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9EE0[] = +{ + gSpriteAffineAnim_83D9E90, + gSpriteAffineAnim_83D9EA0, + gSpriteAffineAnim_83D9EB0, + gSpriteAffineAnim_83D9EC0, + gSpriteAffineAnim_83D9ED0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9EF4 = +{ + .tileTag = 10043, + .paletteTag = 10043, + .oam = &gOamData_837DFF4, + .anims = gSpriteAnimTable_83D9E88, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9EE0, + .callback = unc_080B06FC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9F0C = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837DF24, + .anims = gSpriteAnimTable_83D9BBC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D8F10, +}; diff --git a/src/battle/anim/normal.c b/src/battle/anim/normal.c new file mode 100755 index 000000000..8303e7c68 --- /dev/null +++ b/src/battle/anim/normal.c @@ -0,0 +1,240 @@ +#include "global.h" +#include "rom_8077ABC.h" +#include "battle_anim.h" + +extern s16 gBattleAnimArgs[]; +extern u8 gAnimBankAttacker; +extern u8 gAnimBankTarget; + +void sub_80E1CB4(struct Sprite *sprite); +void sub_80E1D84(struct Sprite *sprite); +void sub_80E1E2C(struct Sprite *sprite); +void sub_80E1F3C(struct Sprite *sprite); +void sub_80E24B8(struct Sprite *sprite); +void sub_80E27A0(struct Sprite *sprite); +void sub_80E2838(struct Sprite *sprite); +void sub_80E27A0(struct Sprite *sprite); +void sub_80E2870(struct Sprite *sprite); +void sub_80E2908(struct Sprite *sprite); +void sub_80E2978(struct Sprite *sprite); +void sub_80E29C0(struct Sprite *sprite); +void sub_80E27E8(struct Sprite *sprite); + +const union AnimCmd gSpriteAnim_83DB37C[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(0, 8, .hFlip = TRUE), + ANIMCMD_FRAME(8, 8), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83DB390[] = +{ + ANIMCMD_FRAME(0, 8, .hFlip = TRUE), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(8, 8), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DB3A4[] = +{ + gSpriteAnim_83DB37C, + gSpriteAnim_83DB390, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB3AC = +{ + .tileTag = 10073, + .paletteTag = 10073, + .oam = &gOamData_837DF2C, + .anims = gSpriteAnimTable_83DB3A4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1CB4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB3C4 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1D84, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB3DC = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1E2C, +}; + +const union AnimCmd gSpriteAnim_83DB3F4[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83DB40C[] = +{ + gSpriteAnim_83DB3F4, +}; + +const struct SpriteTemplate gSpriteTemplate_83DB410 = +{ + .tileTag = 10071, + .paletteTag = 10071, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DB40C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E1F3C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB428 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E24B8, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB440[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB450[] = +{ + AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB468[] = +{ + AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DB480[] = +{ + AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DB498[] = +{ + gSpriteAffineAnim_83DB440, + gSpriteAffineAnim_83DB450, + gSpriteAffineAnim_83DB468, + gSpriteAffineAnim_83DB480, +}; + +const struct SpriteTemplate gBasicHitSplatSpriteTemplate = +{ + .tileTag = 10135, + .paletteTag = 10135, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E27A0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB4C0 = +{ + .tileTag = 10135, + .paletteTag = 10135, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E2838, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB4D8 = +{ + .tileTag = 10148, + .paletteTag = 10148, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E27A0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB4F0 = +{ + .tileTag = 10135, + .paletteTag = 10135, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E2870, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB508 = +{ + .tileTag = 10135, + .paletteTag = 10135, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E2908, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB520 = +{ + .tileTag = 10285, + .paletteTag = 10285, + .oam = &gOamData_837E054, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80E2978, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB538 = +{ + .tileTag = 10135, + .paletteTag = 10135, + .oam = &gOamData_837DF94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E29C0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DB550 = +{ + .tileTag = 10135, + .paletteTag = 10135, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DB498, + .callback = sub_80E27E8, +}; + +const u16 gUnknown_083DB568 = RGB(31, 31, 31); diff --git a/src/battle/anim/poison.c b/src/battle/anim/poison.c index 2cc104c07..4d6673adf 100644 --- a/src/battle/anim/poison.c +++ b/src/battle/anim/poison.c @@ -7,11 +7,191 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -void sub_80D9DD4(struct Sprite *sprite); -void sub_80D9E78(struct Sprite *sprite); -void sub_80D9EE8(struct Sprite *sprite); +extern const union AnimCmd *const gSpriteAnimTable_83D9310[]; + +void sub_80793C4(struct Sprite *sprite); +void sub_80D9D70(struct Sprite *sprite); +void sub_80D9DF0(struct Sprite *sprite); +void sub_80D9E94(struct Sprite *sprite); +void sub_80D9F14(struct Sprite *sprite); +void AnimBubbleEffect(struct Sprite *sprite); +static void sub_80D9DD4(struct Sprite *sprite); +static void sub_80D9E78(struct Sprite *sprite); +static void sub_80D9EE8(struct Sprite *sprite); static void AnimBubbleEffectStep(struct Sprite *sprite); +const union AnimCmd gSpriteAnim_83DA22C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(24, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA240[] = +{ + gSpriteAnim_83DA22C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA244 = +{ + .tileTag = 10151, + .paletteTag = 10151, + .oam = &gOamData_837DF74, + .anims = gSpriteAnimTable_83DA240, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80793C4, +}; + +const union AnimCmd gSpriteAnim_83DA25C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA264[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA26C[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA274[] = +{ + gSpriteAnim_83DA25C, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA278[] = +{ + gSpriteAnim_83DA264, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA27C[] = +{ + gSpriteAnim_83DA26C, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA280[] = +{ + AFFINEANIMCMD_FRAME(0x160, 0x160, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, 0, 10), + AFFINEANIMCMD_FRAME(0xA, 0xA, 0, 10), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA2A0[] = +{ + AFFINEANIMCMD_FRAME(0xEC, 0xEC, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA2B0[] = +{ + gSpriteAffineAnim_83DA280, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA2B4[] = +{ + gSpriteAffineAnim_83DA2A0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA2B8 = +{ + .tileTag = 10150, + .paletteTag = 10150, + .oam = &gOamData_837DFEC, + .anims = gSpriteAnimTable_83DA274, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA2B0, + .callback = sub_80D9D70, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA2D0 = +{ + .tileTag = 10150, + .paletteTag = 10150, + .oam = &gOamData_837DFEC, + .anims = gSpriteAnimTable_83DA274, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA2B0, + .callback = sub_80D9DF0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA2E8 = +{ + .tileTag = 10150, + .paletteTag = 10150, + .oam = &gOamData_837DF8C, + .anims = gSpriteAnimTable_83DA27C, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA2B4, + .callback = sub_80D9E94, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA300[] = +{ + AFFINEANIMCMD_FRAME(0xFFF0, 0x10, 0, 6), + AFFINEANIMCMD_FRAME(0x10, 0xFFF0, 0, 6), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA318[] = +{ + gSpriteAffineAnim_83DA300, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA31C = +{ + .tileTag = 10150, + .paletteTag = 10150, + .oam = &gOamData_837DFEC, + .anims = gSpriteAnimTable_83DA278, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA318, + .callback = sub_80D9F14, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA334[] = +{ + AFFINEANIMCMD_FRAME(0x9C, 0x9C, 0, 0), + AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 20), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA34C[] = +{ + gSpriteAffineAnim_83DA334, +}; + +const struct SpriteTemplate gPoisonBubbleSpriteTemplate = +{ + .tileTag = 10150, + .paletteTag = 10150, + .oam = &gOamData_837DF8C, + .anims = gSpriteAnimTable_83DA274, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA34C, + .callback = AnimBubbleEffect, +}; + +const struct SpriteTemplate gWaterBubbleSpriteTemplate = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837E0AC, + .anims = gSpriteAnimTable_83D9310, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA34C, + .callback = AnimBubbleEffect, +}; + void sub_80D9D70(struct Sprite *sprite) { if (!gBattleAnimArgs[3]) @@ -29,7 +209,7 @@ void sub_80D9D70(struct Sprite *sprite) sprite->callback = sub_80D9DD4; } -void sub_80D9DD4(struct Sprite *sprite) // same as sub_80D9E78 +static void sub_80D9DD4(struct Sprite *sprite) // same as sub_80D9E78 { if (TranslateAnimSpriteLinearAndSine(sprite)) DestroyAnimSprite(sprite); @@ -57,7 +237,7 @@ void sub_80D9DF0(struct Sprite *sprite) sprite->callback = sub_80D9E78; } -void sub_80D9E78(struct Sprite *sprite) // same as sub_80D9DD4 +static void sub_80D9E78(struct Sprite *sprite) // same as sub_80D9DD4 { if (TranslateAnimSpriteLinearAndSine(sprite)) DestroyAnimSprite(sprite); @@ -79,7 +259,7 @@ void sub_80D9E94(struct Sprite *sprite) sprite->callback = sub_80D9EE8; } -void sub_80D9EE8(struct Sprite *sprite) +static void sub_80D9EE8(struct Sprite *sprite) { sub_8078394(sprite); diff --git a/src/battle/anim/psychic.c b/src/battle/anim/psychic.c index 7babb3a19..a63652646 100644 --- a/src/battle/anim/psychic.c +++ b/src/battle/anim/psychic.c @@ -16,12 +16,13 @@ extern u16 gBattle_BG1_X; extern u16 gBattle_BG2_X; extern u8 gBankSpriteIds[]; -extern const union AffineAnimCmd *const gUnknown_083DA888[]; -extern struct AffineAnimFrameCmd gUnknown_083DA8A4; -extern struct AffineAnimFrameCmd gUnknown_083DA8C4; -extern const struct SpriteTemplate gSpriteTemplate_83DA8DC; -extern const struct SpriteTemplate gSpriteTemplate_83DA9AC; - +void sub_80DB74C(struct Sprite *sprite); +void sub_80DBA4C(struct Sprite *sprite); +void sub_80DBAF4(struct Sprite *sprite); +void sub_80DBB70(struct Sprite *sprite); +void sub_80DC068(struct Sprite *sprite); +void sub_80DC2B0(struct Sprite *sprite); +void sub_80DC700(struct Sprite *sprite); static void sub_80DB88C(struct Sprite *sprite); static void sub_80DB8C0(struct Sprite *sprite); static void sub_80DB92C(struct Sprite *sprite); @@ -35,6 +36,395 @@ static void sub_80DC1FC(u8 taskId); static void sub_80DC3F4(u8 taskId); void sub_80DC5F4(u8 taskId); +const union AffineAnimCmd gSpriteAffineAnim_83DA674[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, -10, 120), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA68C[] = +{ + gSpriteAffineAnim_83DA674, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA690 = +{ + .tileTag = 10196, + .paletteTag = 10196, + .oam = &gOamData_837E0BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA68C, + .callback = sub_80793C4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA6A8 = +{ + .tileTag = 10166, + .paletteTag = 10166, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB74C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA6C0 = +{ + .tileTag = 10167, + .paletteTag = 10167, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB74C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA6D8 = +{ + .tileTag = 10168, + .paletteTag = 10168, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB74C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA6F0 = +{ + .tileTag = 10169, + .paletteTag = 10169, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB74C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA708 = +{ + .tileTag = 10170, + .paletteTag = 10170, + .oam = &gOamData_837E05C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DB74C, +}; + +const union AnimCmd gSpriteAnim_83DA720[] = +{ + ANIMCMD_FRAME(0, 3), + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_FRAME(64, 3), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA738[] = +{ + gSpriteAnim_83DA720, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA73C = +{ + .tileTag = 10071, + .paletteTag = 10071, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DA738, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DBA4C, +}; + +const union AnimCmd gSpriteAnim_83DA754[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(12, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA768[] = +{ + gSpriteAnim_83DA754, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA76C = +{ + .tileTag = 10070, + .paletteTag = 10070, + .oam = &gOamData_837DF2C, + .anims = gSpriteAnimTable_83DA768, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DBA4C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA784 = +{ + .tileTag = 10163, + .paletteTag = 10163, + .oam = &gOamData_837DF74, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation, +}; + +const union AnimCmd gSpriteAnim_83DA79C[] = +{ + ANIMCMD_FRAME(8, 60, .hFlip = TRUE), + ANIMCMD_FRAME(16, 5, .hFlip = TRUE), + ANIMCMD_FRAME(8, 5, .hFlip = TRUE), + ANIMCMD_FRAME(0, 5, .hFlip = TRUE), + ANIMCMD_FRAME(8, 22, .hFlip = TRUE), + ANIMCMD_LOOP(0), + ANIMCMD_FRAME(16, 5, .hFlip = TRUE), + ANIMCMD_FRAME(8, 5, .hFlip = TRUE), + ANIMCMD_FRAME(0, 5, .hFlip = TRUE), + ANIMCMD_FRAME(8, 5, .hFlip = TRUE), + ANIMCMD_LOOP(1), + ANIMCMD_FRAME(8, 22, .hFlip = TRUE), + ANIMCMD_FRAME(24, 3, .hFlip = TRUE), + ANIMCMD_FRAME(32, 3, .hFlip = TRUE), + ANIMCMD_FRAME(40, 22, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DA7DC[] = +{ + ANIMCMD_FRAME(8, 60), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(8, 22), + ANIMCMD_LOOP(0), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_LOOP(1), + ANIMCMD_FRAME(8, 22), + ANIMCMD_FRAME(24, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(40, 22), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA81C[] = +{ + gSpriteAnim_83DA79C, + gSpriteAnim_83DA7DC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA824 = +{ + .tileTag = 10097, + .paletteTag = 10097, + .oam = &gOamData_837DF74, + .anims = gSpriteAnimTable_83DA81C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DBAF4, +}; + +const union AnimCmd gSpriteAnim_83DA83C[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(16, 6), + ANIMCMD_FRAME(32, 6), + ANIMCMD_FRAME(48, 6), + ANIMCMD_FRAME(64, 6), + ANIMCMD_FRAME(80, 6), + ANIMCMD_FRAME(96, 18), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DA85C[] = +{ + gSpriteAnim_83DA83C, +}; + +const union AffineAnimCmd gSpriteAffineAnim_3DA860[] = +{ + AFFINEANIMCMD_FRAME(0, 0, 4, 4), + AFFINEANIMCMD_FRAME(0, 0, -4, 8), + AFFINEANIMCMD_FRAME(0, 0, 4, 4), + AFFINEANIMCMD_LOOP(2), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_083DA888[] = +{ + gSpriteAffineAnim_3DA860, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA88C = +{ + .tileTag = 10093, + .paletteTag = 10093, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DA85C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DBB70, +}; + +const union AffineAnimCmd gSpriteAffineAnim_083DA8A4[] = +{ + AFFINEANIMCMD_FRAME(-8, 10, 0, 16), + AFFINEANIMCMD_FRAME(18, -18, 0, 16), + AFFINEANIMCMD_FRAME(-20, 16, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_083DA8C4[] = +{ + AFFINEANIMCMD_FRAME(64, -4, 0, 20), + AFFINEANIMCMD_FRAME(0, 0, 0, -56), + AFFINEANIMCMD_END, +}; + +const struct SpriteTemplate gSpriteTemplate_83DA8DC = +{ + .tileTag = 10249, + .paletteTag = 10249, + .oam = &gOamData_837E04C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA8F4 = +{ + .tileTag = 10250, + .paletteTag = 10250, + .oam = &gOamData_837DF3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DC068, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA90C[] = +{ + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 8), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA924[] = +{ + AFFINEANIMCMD_FRAME(0xF0, 0xF0, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 6), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 2), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA94C[] = +{ + AFFINEANIMCMD_FRAME(0xD0, 0xD0, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 4), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 4), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA974[] = +{ + AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 2), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 6), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA99C[] = +{ + gSpriteAffineAnim_83DA90C, + gSpriteAffineAnim_83DA924, + gSpriteAffineAnim_83DA94C, + gSpriteAffineAnim_83DA974, +}; + +const struct SpriteTemplate gSpriteTemplate_83DA9AC = +{ + .tileTag = 10251, + .paletteTag = 10251, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA99C, + .callback = sub_80DC2B0, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA9C4[] = +{ + AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 120), + AFFINEANIMCMD_END_ALT(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA9DC[] = +{ + gSpriteAffineAnim_83DA9C4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DA9E0 = +{ + .tileTag = 10267, + .paletteTag = 10267, + .oam = &gOamData_837E11C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA9DC, + .callback = sub_80793C4, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DA9F8[] = +{ + AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 17), + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 10), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 10), + AFFINEANIMCMD_LOOP(4), + AFFINEANIMCMD_LOOP(0), + AFFINEANIMCMD_FRAME(0xFFF0, 0xFFF0, 0, 5), + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 5), + AFFINEANIMCMD_LOOP(7), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAA50[] = +{ + AFFINEANIMCMD_FRAME(0xFFEC, 0x18, 0, 15), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DAA60[] = +{ + gSpriteAffineAnim_83DA9F8, + gSpriteAffineAnim_83DAA50, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAA68 = +{ + .tileTag = 10212, + .paletteTag = 10212, + .oam = &gOamData_837E11C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DAA60, + .callback = sub_80DC700, +}; void sub_80DB74C(struct Sprite *sprite) { @@ -254,7 +644,7 @@ void sub_80DBB70(struct Sprite *sprite) static void sub_80DBC00(struct Sprite *sprite) { sprite->oam.affineMode = 1; - sprite->affineAnims = gUnknown_083DA888; + sprite->affineAnims = gSpriteAffineAnimTable_083DA888; sprite->data[0] = 0; InitSpriteAffineAnim(sprite); sprite->callback = sub_80DBC34; @@ -287,7 +677,7 @@ void sub_80DBC94(u8 taskId) struct Task *task = &gTasks[taskId]; u8 spriteId = GetAnimBattlerSpriteId(0); task->data[0] = spriteId; - sub_80798F4(task, spriteId, &gUnknown_083DA8A4); + sub_80798F4(task, spriteId, &gSpriteAffineAnim_083DA8A4); task->func = sub_80DBCD0; } @@ -308,7 +698,7 @@ void sub_80DBCFC(u8 taskId) task->data[2] = 0; task->data[3] = GetBattlerSide(gAnimBankAttacker) != B_SIDE_PLAYER ? 4 : 8; - sub_80798F4(task, task->data[0], &gUnknown_083DA8C4); + sub_80798F4(task, task->data[0], &gSpriteAffineAnim_083DA8C4); task->func = sub_80DBD58; } diff --git a/src/battle/anim/rock.c b/src/battle/anim/rock.c index 73be7c42b..595df3168 100644 --- a/src/battle/anim/rock.c +++ b/src/battle/anim/rock.c @@ -20,11 +20,20 @@ extern u16 gBattle_BG3_Y; extern const u8 gBattleAnimBackgroundTilemap_SandstormBrew[]; extern const u8 gBattleAnimBackgroundImage_SandstormBrew[]; extern const u16 gBattleAnimSpritePalette_261[]; -extern const struct SpriteTemplate gSpriteTemplate_83DAD78; -extern const struct SpriteTemplate gSpriteTemplate_83DAD90; - -extern const struct SubspriteTable gUnknown_083DAD10; - +extern const union AnimCmd *const gSpriteAnimTable_83D91F0[]; +extern const union AnimCmd *const gSpriteAnimTable_83D95E0[]; + +extern void AnimMoveTwisterParticle(struct Sprite *sprite); + +void sub_80DCE9C(struct Sprite *sprite); +void sub_80DCF60(struct Sprite *sprite); +void sub_80DCFE4(struct Sprite *sprite); +void sub_80DD3AC(struct Sprite *sprite); +void sub_80DD490(struct Sprite *sprite); +void sub_80DD87C(struct Sprite *sprite); +void sub_80DD8E8(struct Sprite *sprite); +void sub_80DD978(struct Sprite *sprite); +void sub_80DD9A4(struct Sprite *sprite); static void sub_80DCF1C(struct Sprite *sprite); static void sub_80DD02C(struct Sprite *sprite); static void sub_80DD190(u8 taskId); @@ -34,6 +43,280 @@ static u8 sub_80DD8BC(void); static void sub_80DD928(struct Sprite *sprite); static void sub_80DD9FC(struct Sprite *sprite); +const union AnimCmd gSpriteAnim_83DAC28[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAC30[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAC38[] = +{ + ANIMCMD_FRAME(64, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DAC40[] = +{ + gSpriteAnim_83DAC28, + gSpriteAnim_83DAC30, + gSpriteAnim_83DAC38, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAC4C = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAC40, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DCE9C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAC64 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAC40, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DCF60, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAC7C = +{ + .tileTag = 10074, + .paletteTag = 10074, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DCFE4, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DAC94[] = +{ + AFFINEANIMCMD_FRAME(0xC0, 0xC0, 0, 0), + AFFINEANIMCMD_FRAME(0x2, 0xFFFD, 0, 5), + AFFINEANIMCMD_FRAME(0xFFFE, 0x3, 0, 5), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DACB4[] = +{ + gSpriteAffineAnim_83DAC94, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACB8 = +{ + .tileTag = 10149, + .paletteTag = 10149, + .oam = &gOamData_837E0AC, + .anims = gSpriteAnimTable_83D91F0, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DACB4, + .callback = sub_80DCFE4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACD0 = +{ + .tileTag = 10029, + .paletteTag = 10029, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D95E0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DCFE4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DACE8 = +{ + .tileTag = 10261, + .paletteTag = 10261, + .oam = &gOamData_837DF54, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DD3AC, +}; + +const struct Subsprite gSubspriteTable_83DAD00[] = +{ + {.x = -16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .size = 2, .tileOffset = 0, .priority = 1}, + {.x = 16, .y = 0, .shape = ST_OAM_H_RECTANGLE, .size = 2, .tileOffset = 8, .priority = 1}, +}; + +const struct SubspriteTable gSubspriteTables_83DAD10[] = +{ + {ARRAY_COUNT(gSubspriteTable_83DAD00), gSubspriteTable_83DAD00}, +}; + +const union AnimCmd gSpriteAnim_83DAD18[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAD20[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAD28[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAD30[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAD38[] = +{ + ANIMCMD_FRAME(64, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83DAD40[] = +{ + ANIMCMD_FRAME(80, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83DAD48[] = +{ + gSpriteAnim_83DAD18, + gSpriteAnim_83DAD20, +}; + +const union AnimCmd *const gSpriteAnimTable_83DAD50[] = +{ + gSpriteAnim_83DAD28, + gSpriteAnim_83DAD30, +}; + +const union AnimCmd *const gSpriteAnimTable_83DAD58[] = +{ + gSpriteAnim_83DAD38, + gSpriteAnim_83DAD40, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAD60 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAD48, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DD490, +}; + +const struct SpriteTemplate gSpriteTemplate_83DAD78 = +{ + .tileTag = 10074, + .paletteTag = 10074, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DD87C, +}; + +const struct SpriteTemplate gSpriteTemplate_83DAD90 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DD87C, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DADA8 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAD48, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80DD8E8, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DADC0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 5), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gSpriteAffineAnim_83DADD0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 5), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83DADE0[] = +{ + gSpriteAffineAnim_83DADC0, + gSpriteAffineAnim_83DADD0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DADE8 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83DAD48, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DADE0, + .callback = sub_80DD978, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAE00 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83DAD48, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DADE0, + .callback = sub_80DD9A4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAE18 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83DAD58, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DADE0, + .callback = AnimMoveTwisterParticle, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83DAE30 = +{ + .tileTag = 10058, + .paletteTag = 10058, + .oam = &gOamData_837DF94, + .anims = gSpriteAnimTable_83DAD50, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DADE0, + .callback = sub_807A9BC, +}; void sub_80DCE9C(struct Sprite *sprite) { @@ -244,7 +527,7 @@ void sub_80DD3AC(struct Sprite *sprite) } sprite->pos1.y = gBattleAnimArgs[0]; - SetSubspriteTables(sprite, &gUnknown_083DAD10); + SetSubspriteTables(sprite, gSubspriteTables_83DAD10); sprite->data[1] = gBattleAnimArgs[1]; sprite->data[2] = gBattleAnimArgs[2]; sprite->data[0]++; diff --git a/src/battle/anim/shock.c b/src/battle/anim/shock.c index 19e4d0fb2..5b82d9319 100644 --- a/src/battle/anim/shock.c +++ b/src/battle/anim/shock.c @@ -8,11 +8,62 @@ extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern struct OamMatrix gOamMatrices[]; +void sub_80D6294(struct Sprite *sprite); +void sub_80D6328(struct Sprite *sprite); extern void sub_80DA48C(struct Sprite *); // shock (moves the little electricity lines) // Used in Shock. +const union AnimCmd gSpriteAnim_83D9824[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(32, 5), + ANIMCMD_FRAME(48, 5), + ANIMCMD_FRAME(64, 5), + ANIMCMD_FRAME(80, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9840[] = +{ + gSpriteAnim_83D9824, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9844 = +{ + .tileTag = 10079, + .paletteTag = 10079, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9840, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D6294, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D985C = +{ + .tileTag = 10011, + .paletteTag = 10011, + .oam = &gOamData_837DF8C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D6328, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9874 = +{ + .tileTag = 10171, + .paletteTag = 10171, + .oam = &gOamData_837DF2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation, +}; + void sub_80D6294(struct Sprite *sprite) { sprite->pos1.x = GetBattlerSpriteCoord(gAnimBankTarget, 2); diff --git a/src/battle/anim/sunlight.c b/src/battle/anim/sunlight.c index 88112c74a..7efc85b37 100644 --- a/src/battle/anim/sunlight.c +++ b/src/battle/anim/sunlight.c @@ -2,9 +2,34 @@ #include "battle_anim.h" #include "rom_8077ABC.h" +void sub_80D517C(struct Sprite *sprite); + // sunlight (creates sunlight orbs) // Used in Sunny Day +const union AffineAnimCmd gSpriteAffineAnim_83D9594[] = +{ + AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), + AFFINEANIMCMD_FRAME(0x2, 0x2, 10, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D95AC[] = +{ + gSpriteAffineAnim_83D9594, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D95B0 = +{ + .tileTag = 10157, + .paletteTag = 10157, + .oam = &gOamData_837E0B4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D95AC, + .callback = sub_80D517C, +}; + void sub_80D517C(struct Sprite *sprite) { sprite->pos1.x = 0; diff --git a/src/battle/anim/thunder.c b/src/battle/anim/thunder.c index 70d4dc232..9cd04e61f 100644 --- a/src/battle/anim/thunder.c +++ b/src/battle/anim/thunder.c @@ -7,11 +7,38 @@ extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; extern u16 gBattleTypeFlags; +void sub_80D61C8(struct Sprite *sprite); static void sub_80D6218(struct Sprite *); // thunder (positions the lightning bolts) // Used in Thunder, Thunder Punch, and Tri Attack. +const union AnimCmd gSpriteAnim_83D97B4[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(32, 8), + ANIMCMD_FRAME(48, 5), + ANIMCMD_FRAME(64, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D97CC[] = +{ + gSpriteAnim_83D97B4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D97D0 = +{ + .tileTag = 10037, + .paletteTag = 10037, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D97CC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D61C8, +}; + void sub_80D61C8(struct Sprite *sprite) { if (GetBattlerSide(gAnimBankAttacker) != 0) diff --git a/src/battle/anim/water.c b/src/battle/anim/water.c index a7e1883f3..0afe133f0 100644 --- a/src/battle/anim/water.c +++ b/src/battle/anim/water.c @@ -8,7 +8,187 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankAttacker; extern u8 gAnimBankTarget; -static void sub_80D3874(struct Sprite *); +extern const union AffineAnimCmd *const gSpriteAffineAnimTable_83DA318[]; +extern const union AnimCmd *const gSpriteAnimTable_83D9BC8[]; + +void sub_80D37FC(struct Sprite *sprite); +void sub_80D3838(struct Sprite *sprite); +void sub_80D4044(struct Sprite *sprite); +void sub_80D452C(struct Sprite *sprite); +void sub_80D4BF0(struct Sprite *sprite); +void sub_80D4C64(struct Sprite *sprite); +static void sub_80D3874(struct Sprite *sprite); + +const union AnimCmd gSpriteAnim_83D9300[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9308[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9310[] = +{ + gSpriteAnim_83D9300, +}; + +const union AnimCmd *const gSpriteAnimTable_83D9314[] = +{ + gSpriteAnim_83D9308, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9318 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837E04C, + .anims = gSpriteAnimTable_83D9310, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80794A8, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9330 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837E10C, + .anims = gSpriteAnimTable_83D9314, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83DA318, + .callback = sub_80D37FC, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9348 = +{ + .tileTag = 10141, + .paletteTag = 10141, + .oam = &gOamData_837DF24, + .anims = gSpriteAnimTable_83D9BC8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D3838, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9360 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4044, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9378 = +{ + .tileTag = 10268, + .paletteTag = 10268, + .oam = &gOamData_837DF24, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D452C, +}; + +const union AnimCmd gSpriteAnim_83D9390[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9398[] = +{ + ANIMCMD_FRAME(9, 1), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D93A0[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D93A8[] = +{ + gSpriteAnim_83D9390, + gSpriteAnim_83D9398, +}; + +const union AnimCmd *const gSpriteAnimTable_83D93B0[] = +{ + gSpriteAnim_83D93A0, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D93B4[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, 0, 15), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D93CC[] = +{ + AFFINEANIMCMD_FRAME(0xE0, 0xE0, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 15), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gSpriteAffineAnim_83D93E4[] = +{ + AFFINEANIMCMD_FRAME(0x150, 0x150, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 15), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D93FC[] = +{ + gSpriteAffineAnim_83D93B4, + gSpriteAffineAnim_83D93CC, +}; + +const union AffineAnimCmd *const gSpriteAffineAnimTable_83D9404[] = +{ + gSpriteAffineAnim_83D93E4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9408 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF24, + .anims = gSpriteAnimTable_83D93A8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D4BF0, +}; + +const struct SpriteTemplate gSpriteTemplate_83D9420 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF84, + .anims = gSpriteAnimTable_83D93A8, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D93FC, + .callback = sub_80D4C64, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D9438 = +{ + .tileTag = 10155, + .paletteTag = 10155, + .oam = &gOamData_837DF8C, + .anims = gSpriteAnimTable_83D93B0, + .images = NULL, + .affineAnims = gSpriteAffineAnimTable_83D9404, + .callback = sub_807A9BC, +}; void sub_80D37FC(struct Sprite *sprite) { diff --git a/src/battle/anim/wisp_fire.c b/src/battle/anim/wisp_fire.c index 5a51986c7..c96a3a86f 100644 --- a/src/battle/anim/wisp_fire.c +++ b/src/battle/anim/wisp_fire.c @@ -9,12 +9,45 @@ extern s16 gBattleAnimArgs[]; extern u8 gAnimBankTarget; extern u8 gAnimBankAttacker; - extern u8 gBankSpriteIds[]; -extern s8 gUnknown_083D9794[16]; -extern s8 gUnknown_083D97A4[16]; -void sub_80D5E4C(u8 taskId); +void sub_80D5CC0(struct Sprite *sprite); +static void sub_80D5E4C(u8 taskId); + +const union AnimCmd gSpriteAnim_83D9764[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(32, 5), + ANIMCMD_FRAME(48, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gSpriteAnimTable_83D9778[] = +{ + gSpriteAnim_83D9764, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D977C = +{ + .tileTag = 10232, + .paletteTag = 10232, + .oam = &gOamData_837DF34, + .anims = gSpriteAnimTable_83D9778, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D5CC0, +}; + +const s8 gUnknown_083D9794[16] = +{ + -1, -1, 0, 1, 1, 0, 0, -1, -1, 1, 1, 0, 0, -1, 0, 1, +}; + +const s8 gUnknown_083D97A4[16] = +{ + -1, 0, 1, 0, -1, 1, 0, -1, 0, 1, 0, -1, 0, 1, 0, 1, +}; void sub_80D5CC0(struct Sprite *sprite) { @@ -66,7 +99,7 @@ void sub_80D5DDC(u8 taskId) task->func = sub_80D5E4C; } -void sub_80D5E4C(u8 taskId) +static void sub_80D5E4C(u8 taskId) { struct Task *task = &gTasks[taskId]; diff --git a/src/battle/anim/wisp_orb.c b/src/battle/anim/wisp_orb.c index 90b90acb7..32373ca2a 100644 --- a/src/battle/anim/wisp_orb.c +++ b/src/battle/anim/wisp_orb.c @@ -11,11 +11,58 @@ extern u8 gAnimBankTarget; extern u16 gBattleTypeFlags; extern u8 gUnknown_0202F7D2; +void sub_80D5B0C(struct Sprite *sprite); static void sub_80D5C5C(struct Sprite *); // wisp_orb (animates the wisp orbs) // Used in Will-O-Wisp +const union AnimCmd gSpriteAnim_83D9710[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(12, 5), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gSpriteAnim_83D9724[] = +{ + ANIMCMD_FRAME(16, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D972C[] = +{ + ANIMCMD_FRAME(20, 5), + ANIMCMD_END, +}; + +const union AnimCmd gSpriteAnim_83D9734[] = +{ + ANIMCMD_FRAME(20, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gSpriteAnimTable_83D973C[] = +{ + gSpriteAnim_83D9710, + gSpriteAnim_83D9724, + gSpriteAnim_83D972C, + gSpriteAnim_83D9734, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_83D974C = +{ + .tileTag = 10231, + .paletteTag = 10231, + .oam = &gOamData_837DF2C, + .anims = gSpriteAnimTable_83D973C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80D5B0C, +}; + void sub_80D5B0C(struct Sprite *sprite) { switch (sprite->data[0]) |