summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/battle_anim_80CA710.s2507
-rw-r--r--include/rom_8077ABC.h1
-rw-r--r--ld_script.txt30
-rw-r--r--src/battle/anim/beta_beat_up.c25
-rw-r--r--src/battle/anim/bug.c186
-rwxr-xr-xsrc/battle/anim/current.c335
-rw-r--r--src/battle/anim/dark.c164
-rw-r--r--src/battle/anim/dragon.c196
-rw-r--r--src/battle/anim/energy_wave.c144
-rw-r--r--src/battle/anim/fight.c394
-rw-r--r--src/battle/anim/fire.c172
-rw-r--r--src/battle/anim/fire_2.c302
-rwxr-xr-xsrc/battle/anim/flying.c346
-rwxr-xr-xsrc/battle/anim/ghost.c191
-rwxr-xr-xsrc/battle/anim/ground.c125
-rw-r--r--src/battle/anim/heated_rock.c129
-rwxr-xr-xsrc/battle/anim/ice.c495
-rwxr-xr-xsrc/battle/anim/normal.c240
-rw-r--r--src/battle/anim/poison.c192
-rw-r--r--src/battle/anim/psychic.c408
-rw-r--r--src/battle/anim/rock.c295
-rw-r--r--src/battle/anim/shock.c51
-rw-r--r--src/battle/anim/sunlight.c25
-rw-r--r--src/battle/anim/thunder.c27
-rw-r--r--src/battle/anim/water.c182
-rw-r--r--src/battle/anim/wisp_fire.c43
-rw-r--r--src/battle/anim/wisp_orb.c47
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])