diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/battle_anim_utility_funcs.c | 9 | ||||
-rw-r--r-- | src/battle_intro.c | 21 | ||||
-rw-r--r-- | src/bug.c | 189 | ||||
-rw-r--r-- | src/dark.c | 169 | ||||
-rw-r--r-- | src/dragon.c | 180 | ||||
-rw-r--r-- | src/fight.c | 398 | ||||
-rw-r--r-- | src/flying.c | 328 | ||||
-rw-r--r-- | src/ghost.c | 186 | ||||
-rw-r--r-- | src/ground.c | 121 | ||||
-rw-r--r-- | src/normal.c | 233 | ||||
-rw-r--r-- | src/poison.c | 185 | ||||
-rw-r--r-- | src/psychic.c | 405 | ||||
-rw-r--r-- | src/rock.c | 293 |
13 files changed, 2717 insertions, 0 deletions
diff --git a/src/battle_anim_utility_funcs.c b/src/battle_anim_utility_funcs.c new file mode 100644 index 000000000..1f88c9f62 --- /dev/null +++ b/src/battle_anim_utility_funcs.c @@ -0,0 +1,9 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +//asm(".align 2"); +//const u16 gUnknown_08597418 = _RGB(31, 31, 31); + +//gUnknown_08597418:: @ 8597418 +// .2byte 0x7fff diff --git a/src/battle_intro.c b/src/battle_intro.c new file mode 100644 index 000000000..0ccc7e828 --- /dev/null +++ b/src/battle_intro.c @@ -0,0 +1,21 @@ +#include "global.h" +#include "task.h" + +extern void task_battle_intro_80BC47C(u8); +extern void task00_battle_intro_80BC6C8(u8); +extern void task_battle_intro_80BC47C(u8); +extern void task_battle_intro_anim(u8); + +const TaskFunc gUnknown_08597424[] = +{ + task_battle_intro_80BC47C, + task_battle_intro_80BC47C, + task00_battle_intro_80BC6C8, + task00_battle_intro_80BC6C8, + task00_battle_intro_80BC6C8, + task_battle_intro_80BC47C, + task_battle_intro_80BC47C, + task_battle_intro_80BC47C, + task_battle_intro_anim, + task_battle_intro_anim, +}; diff --git a/src/bug.c b/src/bug.c new file mode 100644 index 000000000..a14ec2226 --- /dev/null +++ b/src/bug.c @@ -0,0 +1,189 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_8110368(struct Sprite *); +extern void sub_8110438(struct Sprite *); +extern void sub_81104E4(struct Sprite *); +extern void sub_81105B4(struct Sprite *); +extern void sub_811067C(struct Sprite *); +extern void sub_8110720(struct Sprite *); +extern void sub_8110850(struct Sprite *); +extern void sub_8110994(struct Sprite *); + +const union AffineAnimCmd gUnknown_08596938[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 30, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08596948[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, -99, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08596958[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 94, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596968[] = +{ + gUnknown_08596938, + gUnknown_08596948, + gUnknown_08596958, +}; + +const struct SpriteTemplate gUnknown_08596974 = +{ + .tileTag = ANIM_TAG_HORN_HIT_2, + .paletteTag = ANIM_TAG_HORN_HIT_2, + .oam = &gUnknown_085249F4, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596968, + .callback = sub_8110368, +}; + +const union AffineAnimCmd gUnknown_0859698C[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -33, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859699C[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_085969AC[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085969BC[] = +{ + gUnknown_0859698C, + gUnknown_0859699C, + gUnknown_085969AC, +}; + +const struct SpriteTemplate gUnknown_085969C8 = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_NEEDLE, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_085969BC, + .callback = sub_8110438, +}; + +const struct SpriteTemplate gUnknown_085969E0 = +{ + .tileTag = ANIM_TAG_WEB_THREAD, + .paletteTag = ANIM_TAG_WEB_THREAD, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81104E4, +}; + +const struct SpriteTemplate gUnknown_085969F8 = +{ + .tileTag = ANIM_TAG_STRING, + .paletteTag = ANIM_TAG_STRING, + .oam = &gUnknown_0852493C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81105B4, +}; + +const union AffineAnimCmd gUnknown_08596A10[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0), + AFFINEANIMCMD_FRAME(0x6, 0x6, 0, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_08596A28[] = +{ + gUnknown_08596A10, +}; + +const struct SpriteTemplate gUnknown_08596A2C = +{ + .tileTag = ANIM_TAG_SPIDER_WEB, + .paletteTag = ANIM_TAG_SPIDER_WEB, + .oam = &gUnknown_08524AFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596A28, + .callback = sub_811067C, +}; + +const struct SpriteTemplate gLinearStingerSpriteTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_NEEDLE, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110720, +}; + +const struct SpriteTemplate gPinMissileSpriteTemplate = +{ + .tileTag = ANIM_TAG_NEEDLE, + .paletteTag = ANIM_TAG_NEEDLE, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110850, +}; + +const struct SpriteTemplate gIcicleSpearSpriteTemplate = +{ + .tileTag = ANIM_TAG_ICICLE_SPEAR, + .paletteTag = ANIM_TAG_ICICLE_SPEAR, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110850, +}; + +const union AffineAnimCmd gUnknown_08596A8C[] = +{ + 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 gUnknown_08596AC4[] = +{ + gUnknown_08596A8C, +}; + +const struct SpriteTemplate gUnknown_08596AC8 = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gUnknown_08524A9C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596AC4, + .callback = sub_8110994, +}; diff --git a/src/dark.c b/src/dark.c new file mode 100644 index 000000000..d4a4f0b8a --- /dev/null +++ b/src/dark.c @@ -0,0 +1,169 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_81138D4(struct Sprite *); +extern void sub_81139DC(struct Sprite *); +extern void sub_8113A90(struct Sprite *); +extern void sub_81144BC(struct Sprite *); + +const struct SpriteTemplate gUnknown_08596FC8 = +{ + .tileTag = ANIM_TAG_TIED_BAG, + .paletteTag = ANIM_TAG_TIED_BAG, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81138D4, +}; + +const union AffineAnimCmd gUnknown_08596FE0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08596FF0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 32, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597000[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 64, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597010[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597020[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -128, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597030[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -96, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597040[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -64, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597050[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -32, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08597060[] = +{ + gUnknown_08596FE0, + gUnknown_08596FF0, + gUnknown_08597000, + gUnknown_08597010, + gUnknown_08597020, + gUnknown_08597030, + gUnknown_08597040, + gUnknown_08597050, +}; + +const struct SpriteTemplate gUnknown_08597080 = +{ + .tileTag = ANIM_TAG_SHARP_TEETH, + .paletteTag = ANIM_TAG_SHARP_TEETH, + .oam = &gUnknown_08524A9C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597060, + .callback = sub_81139DC, +}; + +const struct SpriteTemplate gUnknown_08597098 = +{ + .tileTag = ANIM_TAG_CLAMP, + .paletteTag = ANIM_TAG_CLAMP, + .oam = &gUnknown_08524A9C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597060, + .callback = sub_81139DC, +}; + +const union AffineAnimCmd gUnknown_085970B0[] = +{ + AFFINEANIMCMD_FRAME(0xC0, 0xC0, 80, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, -2, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_085970C8[] = +{ + AFFINEANIMCMD_FRAME(0xC0, 0xC0, -80, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 2, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085970E0[] = +{ + gUnknown_085970B0, + gUnknown_085970C8, +}; + +const struct SpriteTemplate gUnknown_085970E8 = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_085970E0, + .callback = sub_8113A90, +}; + +const union AnimCmd gUnknown_08597100[] = +{ + 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 gUnknown_08597118[] = +{ + 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 gUnknown_08597130[] = +{ + gUnknown_08597100, + gUnknown_08597118, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8597138 = +{ + .tileTag = ANIM_TAG_CLAW_SLASH, + .paletteTag = ANIM_TAG_CLAW_SLASH, + .oam = &gUnknown_08524914, + .anims = gUnknown_08597130, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81144BC, +}; diff --git a/src/dragon.c b/src/dragon.c new file mode 100644 index 000000000..20ef357a0 --- /dev/null +++ b/src/dragon.c @@ -0,0 +1,180 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_8113064(struct Sprite *); +extern void sub_8113224(struct Sprite *); +extern void sub_81131B4(struct Sprite *); +extern void sub_8113224(struct Sprite *); +extern void sub_8113250(struct Sprite *); +extern void sub_81135EC(struct Sprite *); + +const union AnimCmd gUnknown_08596E60[] = +{ + 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 gUnknown_08596E78[] = +{ + gUnknown_08596E60, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8596E7C = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596E78, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8113064, +}; + +const union AnimCmd gUnknown_08596E94[] = +{ + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gUnknown_08596EA4[] = +{ + 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 gUnknown_08596EB4[] = +{ + gUnknown_08596E94, + gUnknown_08596EA4, +}; + +const union AffineAnimCmd gUnknown_08596EBC[] = +{ + AFFINEANIMCMD_FRAME(0x50, 0x50, 127, 0), + AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08596ED4[] = +{ + AFFINEANIMCMD_FRAME(0x50, 0x50, 0, 0), + AFFINEANIMCMD_FRAME(0xD, 0xD, 0, 100), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596EEC[] = +{ + gUnknown_08596EBC, + gUnknown_08596ED4, +}; + +const struct SpriteTemplate gUnknown_08596EF4 = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gUnknown_085249D4, + .anims = gUnknown_08596EB4, + .images = NULL, + .affineAnims = gUnknown_08596EEC, + .callback = sub_8113224, +}; + +const union AnimCmd gUnknown_08596F0C[] = +{ + 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 gUnknown_08596F24[] = +{ + gUnknown_08596F0C, +}; + +const struct SpriteTemplate gUnknown_08596F28 = +{ + .tileTag = ANIM_TAG_FIRE_PLUME, + .paletteTag = ANIM_TAG_FIRE_PLUME, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596F24, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81131B4, +}; + +const union AnimCmd gUnknown_08596F40[] = +{ + ANIMCMD_FRAME(16, 3), + ANIMCMD_FRAME(32, 3), + ANIMCMD_FRAME(48, 3), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_08596F50[] = +{ + gUnknown_08596F40, + gUnknown_08596F40, +}; + +const union AffineAnimCmd gUnknown_08596F58[] = +{ + AFFINEANIMCMD_FRAME(0x64, 0x64, 127, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08596F68[] = +{ + AFFINEANIMCMD_FRAME(0x64, 0x64, 0, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596F78[] = +{ + gUnknown_08596F58, + gUnknown_08596F68, +}; + +const struct SpriteTemplate gUnknown_08596F80 = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gUnknown_085249D4, + .anims = gUnknown_08596F50, + .images = NULL, + .affineAnims = gUnknown_08596F78, + .callback = sub_8113224, +}; + +const struct SpriteTemplate gUnknown_08596F98 = +{ + .tileTag = ANIM_TAG_HOLLOW_ORB, + .paletteTag = ANIM_TAG_HOLLOW_ORB, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8113250, +}; + +const struct SpriteTemplate gUnknown_08596FB0 = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596E78, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81135EC, +}; diff --git a/src/fight.c b/src/fight.c new file mode 100644 index 000000000..89fe5900b --- /dev/null +++ b/src/fight.c @@ -0,0 +1,398 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void unc_080B08A0(struct Sprite *); +extern void sub_810CE68(struct Sprite *); +extern void sub_810CEB4(struct Sprite *); +extern void sub_810CEE0(struct Sprite *); +extern void sub_810CF30(struct Sprite *); +extern void sub_810D10C(struct Sprite *); +extern void sub_810D1B4(struct Sprite *); +extern void sub_810D278(struct Sprite *); +extern void sub_810D2E4(struct Sprite *); +extern void sub_810D37C(struct Sprite *); +extern void sub_810D40C(struct Sprite *); +extern void sub_810D4F4(struct Sprite *); +extern void sub_810D608(struct Sprite *); +extern void sub_810D714(struct Sprite *); +extern void sub_810D874(struct Sprite *); +extern void sub_810D984(struct Sprite *); +extern void sub_810DA10(struct Sprite *); +extern void sub_810DA7C(struct Sprite *); + +const struct SpriteTemplate gUnknown_08595E14 = +{ + .tileTag = ANIM_TAG_HUMANOID_FOOT, + .paletteTag = ANIM_TAG_HUMANOID_FOOT, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = unc_080B08A0, +}; + +const union AnimCmd gUnknown_08595E2C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08595E34[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08595E3C[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08595E44[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08595E4C[] = +{ + ANIMCMD_FRAME(48, 1, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08595E54[] = +{ + gUnknown_08595E2C, +}; + +const union AnimCmd *const gUnknown_08595E58[] = +{ + gUnknown_08595E34, + gUnknown_08595E3C, +}; + +const union AnimCmd *const gUnknown_08595E60[] = +{ + gUnknown_08595E44, + gUnknown_08595E4C, +}; + +const struct SpriteTemplate gUnknown_08595E68 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810CE68, +}; + +const struct SpriteTemplate gUnknown_08595E80 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810CEB4, +}; + +const struct SpriteTemplate gFistFootSpriteTemplate = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810CEE0, +}; + +const struct SpriteTemplate gUnknown_08595EB0 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810CF30, +}; + +const struct SpriteTemplate gUnknown_08595EC8 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E60, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D10C, +}; + +const struct SpriteTemplate gUnknown_08595EE0 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E58, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D1B4, +}; + +const union AffineAnimCmd gUnknown_08595EF8[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 20, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_08595F10[] = +{ + gUnknown_08595EF8, +}; + +const struct SpriteTemplate gUnknown_08595F14 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_085249D4, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gUnknown_08595F10, + .callback = sub_810D278, +}; + +const union AffineAnimCmd gUnknown_08595F2C[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFFC, 0xFFFC, 20, 1), + AFFINEANIMCMD_JUMP(1), +}; + +const union AffineAnimCmd *const gUnknown_08595F44[] = +{ + gUnknown_08595F2C, +}; + +const struct SpriteTemplate gMegaPunchKickSpriteTemplate = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_085249D4, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gUnknown_08595F44, + .callback = sub_810D278, +}; + +const struct SpriteTemplate gUnknown_08595F60 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E58, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D2E4, +}; + +const struct SpriteTemplate gUnknown_08595F78 = +{ + .tileTag = ANIM_TAG_DUCK, + .paletteTag = ANIM_TAG_DUCK, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D37C, +}; + +const struct SpriteTemplate gUnknown_08595F90 = +{ + .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, + .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D40C, +}; + +const struct SpriteTemplate gUnknown_08595FA8 = +{ + .tileTag = ANIM_TAG_TORN_METAL, + .paletteTag = ANIM_TAG_TORN_METAL, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D4F4, +}; + +const union AffineAnimCmd gUnknown_08595FC0[] = +{ + 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 gUnknown_08595FE8[] = +{ + gUnknown_08595FC0, +}; + +const struct SpriteTemplate gUnknown_08595FEC = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gUnknown_08524AFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08595FE8, + .callback = sub_810D608, +}; + +const struct SpriteTemplate gUnknown_08596004 = +{ + .tileTag = ANIM_TAG_FLAT_ROCK, + .paletteTag = ANIM_TAG_FLAT_ROCK, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D714, +}; + +const struct SpriteTemplate gUnknown_0859601C = +{ + .tileTag = ANIM_TAG_METEOR, + .paletteTag = ANIM_TAG_METEOR, + .oam = &gUnknown_0852491C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D874, +}; + +const struct SpriteTemplate gUnknown_08596034 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_08524914, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810D984, +}; + +const union AnimCmd gUnknown_0859604C[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(32, 4), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859605C[] = +{ + ANIMCMD_FRAME(0, 4, .vFlip = TRUE), + ANIMCMD_FRAME(16, 4, .vFlip = TRUE), + ANIMCMD_FRAME(32, 4, .vFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859606C[] = +{ + ANIMCMD_FRAME(0, 4, .hFlip = TRUE), + ANIMCMD_FRAME(16, 4, .hFlip = TRUE), + ANIMCMD_FRAME(32, 4, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_0859607C[] = +{ + gUnknown_0859604C, + gUnknown_0859605C, + gUnknown_0859606C, +}; + +const struct SpriteTemplate gUnknown_08596088 = +{ + .tileTag = ANIM_TAG_PURPLE_SCRATCH, + .paletteTag = ANIM_TAG_PURPLE_SCRATCH, + .oam = &gUnknown_08524914, + .anims = gUnknown_0859607C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810DA10, +}; + +const union AnimCmd gUnknown_085960A0[] = +{ + ANIMCMD_FRAME(0, 6), + ANIMCMD_FRAME(64, 6), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085960AC[] = +{ + ANIMCMD_FRAME(0, 6, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_FRAME(64, 6, .vFlip = TRUE, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_085960B8[] = +{ + ANIMCMD_FRAME(0, 6, .hFlip = TRUE), + ANIMCMD_FRAME(64, 6, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085960C4[] = +{ + gUnknown_085960A0, + gUnknown_085960AC, + gUnknown_085960B8, +}; + +const struct SpriteTemplate gUnknown_085960D0 = +{ + .tileTag = ANIM_TAG_PURPLE_SWIPE, + .paletteTag = ANIM_TAG_PURPLE_SWIPE, + .oam = &gUnknown_0852491C, + .anims = gUnknown_085960C4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810DA10, +}; + +const union AffineAnimCmd gUnknown_085960E8[] = +{ + AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), + AFFINEANIMCMD_FRAME(0xFFE0, 0xFFE0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596100[] = +{ + gUnknown_085960E8, +}; + +const struct SpriteTemplate gUnknown_08596104 = +{ + .tileTag = ANIM_TAG_HANDS_AND_FEET, + .paletteTag = ANIM_TAG_HANDS_AND_FEET, + .oam = &gUnknown_085249D4, + .anims = gUnknown_08595E54, + .images = NULL, + .affineAnims = gUnknown_08596100, + .callback = sub_810DA7C, +}; diff --git a/src/flying.c b/src/flying.c new file mode 100644 index 000000000..d3ea3f11b --- /dev/null +++ b/src/flying.c @@ -0,0 +1,328 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_810DE70(struct Sprite *); +extern void sub_810DFA8(struct Sprite *); +extern void sub_810E044(struct Sprite *); +extern void sub_810E13C(struct Sprite *); +extern void sub_810E1C8(struct Sprite *); +extern void sub_810E314(struct Sprite *); +extern void sub_810EA4C(struct Sprite *); +extern void sub_810EAA0(struct Sprite *); +extern void sub_810EC34(struct Sprite *); +extern void sub_810EC94(struct Sprite *); +extern void sub_810ED28(struct Sprite *); +extern void sub_810EE14(struct Sprite *); +extern void sub_810EEF8(struct Sprite *); +extern void sub_810F004(struct Sprite *); +extern void sub_810F084(struct Sprite *); + +const struct SpriteTemplate gUnknown_08596270 = +{ + .tileTag = ANIM_TAG_GUST, + .paletteTag = ANIM_TAG_GUST, + .oam = &gUnknown_0852495C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810DE70, +}; + +const union AffineAnimCmd gUnknown_08596288[] = +{ + AFFINEANIMCMD_FRAME(0x10, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xA, 0x0, 0, 24), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085962A0[] = +{ + gUnknown_08596288, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_85962A4 = +{ + .tileTag = ANIM_TAG_GUST, + .paletteTag = ANIM_TAG_GUST, + .oam = &gUnknown_085249BC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_085962A0, + .callback = sub_810DFA8, +}; + +const union AnimCmd gUnknown_085962BC[] = +{ + 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 gUnknown_085962D0[] = +{ + gUnknown_085962BC, +}; + +const struct SpriteTemplate gUnknown_085962D4 = +{ + .tileTag = ANIM_TAG_AIR_WAVE_2, + .paletteTag = ANIM_TAG_AIR_WAVE_2, + .oam = &gUnknown_08524934, + .anims = gUnknown_085962D0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810E044, +}; + +const union AffineAnimCmd gUnknown_085962EC[] = +{ + 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 gUnknown_08596314[] = +{ + gUnknown_085962EC, +}; + +const union AffineAnimCmd gUnknown_08596318[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 50, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08596328[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -40, 1), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596338[] = +{ + gUnknown_08596318, + gUnknown_08596328, +}; + +const struct SpriteTemplate gUnknown_08596340 = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gUnknown_085249DC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596314, + .callback = sub_810E13C, +}; + +const struct SpriteTemplate gUnknown_08596358 = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gUnknown_0852497C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596338, + .callback = sub_810E1C8, +}; + +const union AnimCmd gUnknown_08596370[] = +{ + ANIMCMD_FRAME(0, 0), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596378[] = +{ + ANIMCMD_FRAME(16, 0, .hFlip = TRUE), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08596380[] = +{ + gUnknown_08596370, + gUnknown_08596378, +}; + +const struct SpriteTemplate gUnknown_08596388 = +{ + .tileTag = ANIM_TAG_WHITE_FEATHER, + .paletteTag = ANIM_TAG_WHITE_FEATHER, + .oam = &gUnknown_08524974, + .anims = gUnknown_08596380, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810E314, +}; + +const struct SpriteTemplate gUnknown_085963A0 = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810EA4C, +}; + +const union AnimCmd gUnknown_085963B8[] = +{ + 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 gUnknown_085963D0[] = +{ + gUnknown_085963B8, +}; + +const struct SpriteTemplate gUnknown_085963D4 = +{ + .tileTag = ANIM_TAG_WHIRLWIND_LINES, + .paletteTag = ANIM_TAG_WHIRLWIND_LINES, + .oam = &gUnknown_08524934, + .anims = gUnknown_085963D0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810EAA0, +}; + +const union AffineAnimCmd gUnknown_085963EC[] = +{ + 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 gUnknown_0859641C[] = +{ + gUnknown_085963EC, +}; + +const struct SpriteTemplate gUnknown_08596420 = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gUnknown_085249DC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0859641C, + .callback = sub_810EC34, +}; + +const union AffineAnimCmd gUnknown_08596438[] = +{ + AFFINEANIMCMD_FRAME(0xA0, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596448[] = +{ + gUnknown_08596438, +}; + +const struct SpriteTemplate gUnknown_0859644C = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gUnknown_085249DC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596448, + .callback = sub_810EC94, +}; + +const union AffineAnimCmd gUnknown_08596464[] = +{ + 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 gUnknown_0859648C[] = +{ + gUnknown_08596464, +}; + +const struct SpriteTemplate gUnknown_08596490 = +{ + .tileTag = ANIM_TAG_ROUND_SHADOW, + .paletteTag = ANIM_TAG_ROUND_SHADOW, + .oam = &gUnknown_085249DC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_0859648C, + .callback = sub_810ED28, +}; + +const union AffineAnimCmd gUnknown_085964A8[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x0, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x20, 0, 12), + AFFINEANIMCMD_FRAME(0x0, 0xFFE0, 0, 11), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085964C8[] = +{ + gUnknown_085964A8, +}; + +const struct SpriteTemplate gUnknown_085964CC = +{ + .tileTag = ANIM_TAG_SPLASH, + .paletteTag = ANIM_TAG_SPLASH, + .oam = &gUnknown_085249DC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810EE14, +}; + +const struct SpriteTemplate gUnknown_085964E4 = +{ + .tileTag = ANIM_TAG_SWEAT_BEAD, + .paletteTag = ANIM_TAG_SWEAT_BEAD, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810EEF8, +}; + +const struct SpriteTemplate gUnknown_085964FC = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F004, +}; + +const struct SpriteTemplate gUnknown_08596514 = +{ + .tileTag = ANIM_TAG_BIRD, + .paletteTag = ANIM_TAG_BIRD, + .oam = &gUnknown_085249DC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F084, +}; diff --git a/src/ghost.c b/src/ghost.c new file mode 100644 index 000000000..ce57df7e8 --- /dev/null +++ b/src/ghost.c @@ -0,0 +1,186 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_811160C(struct Sprite *); +extern void sub_81117F4(struct Sprite *); +extern void sub_81119E0(struct Sprite *); +extern void sub_8111B9C(struct Sprite *); +extern void sub_8112264(struct Sprite *); +extern void sub_81129F0(struct Sprite *); +extern void sub_8112B78(struct Sprite *); +extern void sub_8112E9C(struct Sprite *); +extern void sub_8112F60(struct Sprite *); + +const union AffineAnimCmd gUnknown_08596CF8[] = +{ + AFFINEANIMCMD_FRAME(0x1E, 0x1E, 10, 5), + AFFINEANIMCMD_FRAME(0xFFE2, 0xFFE2, 10, 5), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08596D10[] = +{ + gUnknown_08596CF8, +}; + +const struct SpriteTemplate gUnknown_08596D14 = +{ + .tileTag = ANIM_TAG_YELLOW_BALL, + .paletteTag = ANIM_TAG_YELLOW_BALL, + .oam = &gUnknown_085249CC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596D10, + .callback = sub_811160C, +}; + +const struct SpriteTemplate gUnknown_08596D2C = +{ + .tileTag = ANIM_TAG_YELLOW_BALL, + .paletteTag = ANIM_TAG_YELLOW_BALL, + .oam = &gUnknown_08524A2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81117F4, +}; + +const union AffineAnimCmd gUnknown_08596D44[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 10, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08596D54[] = +{ + gUnknown_08596D44, +}; + +const struct SpriteTemplate gUnknown_08596D58 = +{ + .tileTag = ANIM_TAG_SHADOW_BALL, + .paletteTag = ANIM_TAG_SHADOW_BALL, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596D54, + .callback = sub_81119E0, +}; + +const union AnimCmd gUnknown_08596D70[] = +{ + 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 gUnknown_08596D88[] = +{ + gUnknown_08596D70, +}; + +const struct SpriteTemplate gUnknown_08596D8C = +{ + .tileTag = ANIM_TAG_LICK, + .paletteTag = ANIM_TAG_LICK, + .oam = &gUnknown_08524954, + .anims = gUnknown_08596D88, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8111B9C, +}; + +const union AffineAnimCmd gUnknown_08596DA4[] = +{ + AFFINEANIMCMD_FRAME(0x200, 0x200, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596DB4[] = +{ + gUnknown_08596DA4, +}; + +const struct SpriteTemplate gUnknown_08596DB8 = +{ + .tileTag = ANIM_TAG_WHITE_SHADOW, + .paletteTag = ANIM_TAG_WHITE_SHADOW, + .oam = &gUnknown_08524A5C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8112264, +}; + +const struct SpriteTemplate gUnknown_08596DD0 = +{ + .tileTag = ANIM_TAG_NAIL, + .paletteTag = ANIM_TAG_NAIL, + .oam = &gUnknown_08524A54, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81129F0, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8596DE8 = +{ + .tileTag = ANIM_TAG_GHOSTLY_SPIRIT, + .paletteTag = ANIM_TAG_GHOSTLY_SPIRIT, + .oam = &gUnknown_08524A34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8112B78, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8596E00 = +{ + .tileTag = ANIM_TAG_DEVIL, + .paletteTag = ANIM_TAG_DEVIL, + .oam = &gUnknown_08524A34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8112B78, +}; + +const union AnimCmd gUnknown_08596E18[] = +{ + ANIMCMD_FRAME(0, 4), + ANIMCMD_FRAME(8, 4), + ANIMCMD_FRAME(16, 4), + ANIMCMD_FRAME(24, 4), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd *const gUnknown_08596E2C[] = +{ + gUnknown_08596E18, +}; + +const struct SpriteTemplate gUnknown_08596E30 = +{ + .tileTag = ANIM_TAG_PURPLE_FLAME, + .paletteTag = ANIM_TAG_PURPLE_FLAME, + .oam = &gUnknown_08524A74, + .anims = gUnknown_08596E2C, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8112E9C, +}; + +const struct SpriteTemplate gUnknown_08596E48 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8112F60, +}; diff --git a/src/ground.c b/src/ground.c new file mode 100644 index 000000000..33eb3660a --- /dev/null +++ b/src/ground.c @@ -0,0 +1,121 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_8114994(struct Sprite *); +extern void sub_8114A7C(struct Sprite *); +extern void sub_8114AF0(struct Sprite *); +extern void sub_8114AF0(struct Sprite *); +extern void sub_8114B80(struct Sprite *); +extern void sub_81151A0(struct Sprite *); +extern void sub_8115244(struct Sprite *); + +const union AffineAnimCmd gUnknown_08597150[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 15, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gUnknown_08597160[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 20, 1), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08597170[] = +{ + gUnknown_08597150, +}; + +const union AffineAnimCmd *const gUnknown_08597174[] = +{ + gUnknown_08597160, +}; + +const struct SpriteTemplate gUnknown_08597178 = +{ + .tileTag = ANIM_TAG_BONE, + .paletteTag = ANIM_TAG_BONE, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597170, + .callback = sub_8114994, +}; + +const struct SpriteTemplate gUnknown_08597190 = +{ + .tileTag = ANIM_TAG_BONE, + .paletteTag = ANIM_TAG_BONE, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597174, + .callback = sub_8114A7C, +}; + +const struct SpriteTemplate gUnknown_085971A8 = +{ + .tileTag = ANIM_TAG_MUD_SAND, + .paletteTag = ANIM_TAG_MUD_SAND, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8114AF0, +}; + +const union AnimCmd gUnknown_085971C0[] = +{ + ANIMCMD_FRAME(1, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_085971C8[] = +{ + gUnknown_085971C0, +}; + +const struct SpriteTemplate gUnknown_085971CC = +{ + .tileTag = ANIM_TAG_MUD_SAND, + .paletteTag = ANIM_TAG_MUD_SAND, + .oam = &gUnknown_0852490C, + .anims = gUnknown_085971C8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8114AF0, +}; + +const struct SpriteTemplate gUnknown_085971E4 = +{ + .tileTag = ANIM_TAG_MUD_SAND, + .paletteTag = ANIM_TAG_MUD_SAND, + .oam = &gUnknown_0852490C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8114B80, +}; + +const struct SpriteTemplate gUnknown_085971FC = +{ + .tileTag = ANIM_TAG_MUD_SAND, + .paletteTag = ANIM_TAG_MUD_SAND, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81151A0, +}; + +const struct SpriteTemplate gUnknown_08597214 = +{ + .tileTag = ANIM_TAG_DIRT_MOUND, + .paletteTag = ANIM_TAG_DIRT_MOUND, + .oam = &gUnknown_08524934, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8115244, +}; diff --git a/src/normal.c b/src/normal.c new file mode 100644 index 000000000..a4ed5edca --- /dev/null +++ b/src/normal.c @@ -0,0 +1,233 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_811572C(struct Sprite *); +extern void sub_81157FC(struct Sprite *); +extern void sub_81158A4(struct Sprite *); +extern void sub_81159B4(struct Sprite *); +extern void sub_81160A4(struct Sprite *); +extern void sub_8116388(struct Sprite *); +extern void sub_8116420(struct Sprite *); +extern void sub_8116458(struct Sprite *); +extern void sub_81164F0(struct Sprite *); +extern void sub_8116560(struct Sprite *); +extern void sub_81165A8(struct Sprite *); +extern void sub_81163D0(struct Sprite *); + +const union AnimCmd gUnknown_0859722C[] = +{ + ANIMCMD_FRAME(0, 8), + ANIMCMD_FRAME(4, 8), + ANIMCMD_FRAME(0, 8, .hFlip = TRUE), + ANIMCMD_FRAME(8, 8), + ANIMCMD_JUMP(0), +}; + +const union AnimCmd gUnknown_08597240[] = +{ + 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 gUnknown_08597254[] = +{ + gUnknown_0859722C, + gUnknown_08597240, +}; + +const struct SpriteTemplate gConfusionDuckSpriteTemplate = +{ + .tileTag = ANIM_TAG_DUCK, + .paletteTag = ANIM_TAG_DUCK, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08597254, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811572C, +}; + +const struct SpriteTemplate gSimplePaletteBlendSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81157FC, +}; + +const struct SpriteTemplate gComplexPaletteBlendSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81158A4, +}; + +const union AnimCmd gUnknown_085972A4[] = +{ + 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 gUnknown_085972BC[] = +{ + gUnknown_085972A4, +}; + +const struct SpriteTemplate gUnknown_085972C0 = +{ + .tileTag = ANIM_TAG_SPARKLE_4, + .paletteTag = ANIM_TAG_SPARKLE_4, + .oam = &gUnknown_08524914, + .anims = gUnknown_085972BC, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81159B4, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_85972D8 = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81160A4, +}; + +const union AffineAnimCmd gUnknown_085972F0[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597300[] = +{ + AFFINEANIMCMD_FRAME(0xD8, 0xD8, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597318[] = +{ + AFFINEANIMCMD_FRAME(0xB0, 0xB0, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_08597330[] = +{ + AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), + AFFINEANIMCMD_FRAME(0x0, 0x0, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08597348[] = +{ + gUnknown_085972F0, + gUnknown_08597300, + gUnknown_08597318, + gUnknown_08597330, +}; + +const struct SpriteTemplate gBasicHitSplatSpriteTemplate = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_8116388, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8597370 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_8116420, +}; + +const struct SpriteTemplate gUnknown_08597388 = +{ + .tileTag = ANIM_TAG_WATER_IMPACT, + .paletteTag = ANIM_TAG_WATER_IMPACT, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_8116388, +}; + +const struct SpriteTemplate gUnknown_085973A0 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_8116458, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_85973B8 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_81164F0, +}; + +const struct SpriteTemplate gUnknown_085973D0 = +{ + .tileTag = ANIM_TAG_CROSS_IMPACT, + .paletteTag = ANIM_TAG_CROSS_IMPACT, + .oam = &gUnknown_08524A34, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8116560, +}; + +const struct SpriteTemplate gUnknown_085973E8 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524974, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_81165A8, +}; + +const struct SpriteTemplate gUnknown_08597400 = +{ + .tileTag = ANIM_TAG_IMPACT, + .paletteTag = ANIM_TAG_IMPACT, + .oam = &gUnknown_08524A94, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08597348, + .callback = sub_81163D0, +}; diff --git a/src/poison.c b/src/poison.c new file mode 100644 index 000000000..f0d8ec553 --- /dev/null +++ b/src/poison.c @@ -0,0 +1,185 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_80A77C8(struct Sprite *); +extern void sub_810DBAC(struct Sprite *); +extern void sub_810DC2C(struct Sprite *); +extern void sub_810DCD0(struct Sprite *); +extern void sub_810DD50(struct Sprite *); +extern void sub_810DDC4(struct Sprite *); +extern void sub_810DDC4(struct Sprite *); + +extern const union AnimCmd *const gUnknown_08595200[]; + +const union AnimCmd gUnknown_0859611C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(16, 5), + ANIMCMD_FRAME(24, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08596130[] = +{ + gUnknown_0859611C, +}; + +const struct SpriteTemplate gUnknown_08596134 = +{ + .tileTag = ANIM_TAG_TOXIC_BUBBLE, + .paletteTag = ANIM_TAG_TOXIC_BUBBLE, + .oam = &gUnknown_08524954, + .anims = gUnknown_08596130, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80A77C8, +}; + +const union AnimCmd gUnknown_0859614C[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596154[] = +{ + ANIMCMD_FRAME(4, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_0859615C[] = +{ + ANIMCMD_FRAME(8, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08596164[] = +{ + gUnknown_0859614C, +}; + +const union AnimCmd *const gUnknown_08596168[] = +{ + gUnknown_08596154, +}; + +const union AnimCmd *const gUnknown_0859616C[] = +{ + gUnknown_0859615C, +}; + +const union AffineAnimCmd gUnknown_08596170[] = +{ + AFFINEANIMCMD_FRAME(0x160, 0x160, 0, 0), + AFFINEANIMCMD_FRAME(0xFFF6, 0xFFF6, 0, 10), + AFFINEANIMCMD_FRAME(0xA, 0xA, 0, 10), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gUnknown_08596190[] = +{ + AFFINEANIMCMD_FRAME(0xEC, 0xEC, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_085961A0[] = +{ + gUnknown_08596170, +}; + +const union AffineAnimCmd *const gUnknown_085961A4[] = +{ + gUnknown_08596190, +}; + +const struct SpriteTemplate gUnknown_085961A8 = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08596164, + .images = NULL, + .affineAnims = gUnknown_085961A0, + .callback = sub_810DBAC, +}; + +const struct SpriteTemplate gUnknown_085961C0 = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08596164, + .images = NULL, + .affineAnims = gUnknown_085961A0, + .callback = sub_810DC2C, +}; + +const struct SpriteTemplate gUnknown_085961D8 = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gUnknown_0852496C, + .anims = gUnknown_0859616C, + .images = NULL, + .affineAnims = gUnknown_085961A4, + .callback = sub_810DCD0, +}; + +const union AffineAnimCmd gUnknown_085961F0[] = +{ + AFFINEANIMCMD_FRAME(0xFFF0, 0x10, 0, 6), + AFFINEANIMCMD_FRAME(0x10, 0xFFF0, 0, 6), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08596208[] = +{ + gUnknown_085961F0, +}; + +const struct SpriteTemplate gUnknown_0859620C = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gUnknown_085249CC, + .anims = gUnknown_08596168, + .images = NULL, + .affineAnims = gUnknown_08596208, + .callback = sub_810DD50, +}; + +const union AffineAnimCmd gUnknown_08596224[] = +{ + AFFINEANIMCMD_FRAME(0x9C, 0x9C, 0, 0), + AFFINEANIMCMD_FRAME(0x5, 0x5, 0, 20), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_0859623C[] = +{ + gUnknown_08596224, +}; + +const struct SpriteTemplate gPoisonBubbleSpriteTemplate = +{ + .tileTag = ANIM_TAG_POISON_BUBBLE, + .paletteTag = ANIM_TAG_POISON_BUBBLE, + .oam = &gUnknown_0852496C, + .anims = gUnknown_08596164, + .images = NULL, + .affineAnims = gUnknown_0859623C, + .callback = sub_810DDC4, +}; + +const struct SpriteTemplate gWaterBubbleSpriteTemplate = +{ + .tileTag = ANIM_TAG_SMALL_BUBBLES, + .paletteTag = ANIM_TAG_SMALL_BUBBLES, + .oam = &gUnknown_08524A8C, + .anims = gUnknown_08595200, + .images = NULL, + .affineAnims = gUnknown_0859623C, + .callback = sub_810DDC4, +}; diff --git a/src/psychic.c b/src/psychic.c new file mode 100644 index 000000000..efd15f746 --- /dev/null +++ b/src/psychic.c @@ -0,0 +1,405 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_80A77C8(struct Sprite *); +extern void sub_810F1EC(struct Sprite *); +extern void sub_810F1EC(struct Sprite *); +extern void sub_810F58C(struct Sprite *); +extern void TranslateAnimSpriteToTargetMonLocation(struct Sprite *); +extern void sub_810F634(struct Sprite *); +extern void sub_810F6B0(struct Sprite *); +extern void sub_810FBA8(struct Sprite *); +extern void sub_810FDF0(struct Sprite *); +extern void sub_80A77C8(struct Sprite *); +extern void sub_8110240(struct Sprite *); + +const union AffineAnimCmd gUnknown_0859652C[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0xFFFE, 0xFFFE, -10, 120), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596544[] = +{ + gUnknown_0859652C, +}; + +const struct SpriteTemplate gUnknown_08596548 = +{ + .tileTag = ANIM_TAG_SPIRAL, + .paletteTag = ANIM_TAG_SPIRAL, + .oam = &gUnknown_08524A9C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596544, + .callback = sub_80A77C8, +}; + +const struct SpriteTemplate gUnknown_08596560 = +{ + .tileTag = ANIM_TAG_GREEN_LIGHT_WALL, + .paletteTag = ANIM_TAG_GREEN_LIGHT_WALL, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F1EC, +}; + +const struct SpriteTemplate gUnknown_08596578 = +{ + .tileTag = ANIM_TAG_BLUE_LIGHT_WALL, + .paletteTag = ANIM_TAG_BLUE_LIGHT_WALL, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F1EC, +}; + +const struct SpriteTemplate gUnknown_08596590 = +{ + .tileTag = ANIM_TAG_RED_LIGHT_WALL, + .paletteTag = ANIM_TAG_RED_LIGHT_WALL, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F1EC, +}; + +const struct SpriteTemplate gUnknown_085965A8 = +{ + .tileTag = ANIM_TAG_GRAY_LIGHT_WALL, + .paletteTag = ANIM_TAG_GRAY_LIGHT_WALL, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F1EC, +}; + +const struct SpriteTemplate gUnknown_085965C0 = +{ + .tileTag = ANIM_TAG_ORANGE_LIGHT_WALL, + .paletteTag = ANIM_TAG_ORANGE_LIGHT_WALL, + .oam = &gUnknown_08524A3C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F1EC, +}; + +const union AnimCmd gUnknown_085965D8[] = +{ + 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 gUnknown_085965F0[] = +{ + gUnknown_085965D8, +}; + +const struct SpriteTemplate gUnknown_085965F4 = +{ + .tileTag = ANIM_TAG_SPARKLE_4, + .paletteTag = ANIM_TAG_SPARKLE_4, + .oam = &gUnknown_08524914, + .anims = gUnknown_085965F0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F58C, +}; + +const union AnimCmd gUnknown_0859660C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_FRAME(4, 5), + ANIMCMD_FRAME(8, 5), + ANIMCMD_FRAME(12, 5), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08596620[] = +{ + gUnknown_0859660C, +}; + +const struct SpriteTemplate gUnknown_08596624 = +{ + .tileTag = ANIM_TAG_SPARKLE_3, + .paletteTag = ANIM_TAG_SPARKLE_3, + .oam = &gUnknown_0852490C, + .anims = gUnknown_08596620, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F58C, +}; + +const struct SpriteTemplate gUnknown_0859663C = +{ + .tileTag = ANIM_TAG_GOLD_RING, + .paletteTag = ANIM_TAG_GOLD_RING, + .oam = &gUnknown_08524954, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = TranslateAnimSpriteToTargetMonLocation, +}; + +const union AnimCmd gUnknown_08596654[] = +{ + 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 gUnknown_08596694[] = +{ + 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 gUnknown_085966D4[] = +{ + gUnknown_08596654, + gUnknown_08596694, +}; + +const struct SpriteTemplate gUnknown_085966DC = +{ + .tileTag = ANIM_TAG_BENT_SPOON, + .paletteTag = ANIM_TAG_BENT_SPOON, + .oam = &gUnknown_08524954, + .anims = gUnknown_085966D4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F634, +}; + +const union AnimCmd gUnknown_085966F4[] = +{ + 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 gUnknown_08596714[] = +{ + gUnknown_085966F4, +}; + +const union AffineAnimCmd gUnknown_08596718[] = +{ + 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 gUnknown_08596740[] = +{ + gUnknown_08596718, +}; + +const struct SpriteTemplate gUnknown_08596744 = +{ + .tileTag = ANIM_TAG_AMNESIA, + .paletteTag = ANIM_TAG_AMNESIA, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596714, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810F6B0, +}; + +const union AffineAnimCmd gUnknown_0859675C[] = +{ + AFFINEANIMCMD_FRAME(-8, 10, 0, 16), + AFFINEANIMCMD_FRAME(18, -18, 0, 16), + AFFINEANIMCMD_FRAME(-20, 16, 0, 8), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0859677C[] = +{ + AFFINEANIMCMD_FRAME(64, -4, 0, 20), + AFFINEANIMCMD_FRAME(0, 0, 0, -56), + AFFINEANIMCMD_END, +}; + +const struct SpriteTemplate gUnknown_08596794 = +{ + .tileTag = ANIM_TAG_HOLLOW_ORB, + .paletteTag = ANIM_TAG_HOLLOW_ORB, + .oam = &gUnknown_08524A2C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct SpriteTemplate gUnknown_085967AC = +{ + .tileTag = 10250, + .paletteTag = 10250, + .oam = &gUnknown_0852491C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_810FBA8, +}; + +const union AffineAnimCmd gUnknown_085967C4[] = +{ + AFFINEANIMCMD_FRAME(0xFFF8, 0xFFF8, 0, 8), + AFFINEANIMCMD_FRAME(0x8, 0x8, 0, 8), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gUnknown_085967DC[] = +{ + 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 gUnknown_08596804[] = +{ + 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 gUnknown_0859682C[] = +{ + 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 gUnknown_08596854[] = +{ + gUnknown_085967C4, + gUnknown_085967DC, + gUnknown_08596804, + gUnknown_0859682C, +}; + +const struct SpriteTemplate gUnknown_08596864 = +{ + .tileTag = ANIM_TAG_BLUEGREEN_ORB, + .paletteTag = ANIM_TAG_BLUEGREEN_ORB, + .oam = &gUnknown_0852496C, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596854, + .callback = sub_810FDF0, +}; + +const union AffineAnimCmd gUnknown_0859687C[] = +{ + AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), + AFFINEANIMCMD_FRAME(0x4, 0x4, 0, 120), + AFFINEANIMCMD_END_ALT(1), +}; + +const union AffineAnimCmd *const gUnknown_08596894[] = +{ + gUnknown_0859687C, +}; + +const struct SpriteTemplate gUnknown_08596898 = +{ + .tileTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_WHITE_CIRCLE_OF_LIGHT, + .oam = &gUnknown_08524AFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596894, + .callback = sub_80A77C8, +}; + +const union AffineAnimCmd gUnknown_085968B0[] = +{ + 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 gUnknown_08596908[] = +{ + AFFINEANIMCMD_FRAME(0xFFEC, 0x18, 0, 15), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08596918[] = +{ + gUnknown_085968B0, + gUnknown_08596908, +}; + +const struct SpriteTemplate gUnknown_08596920 = +{ + .tileTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .paletteTag = ANIM_TAG_CIRCLE_OF_LIGHT, + .oam = &gUnknown_08524AFC, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08596918, + .callback = sub_8110240, +}; diff --git a/src/rock.c b/src/rock.c new file mode 100644 index 000000000..83af52865 --- /dev/null +++ b/src/rock.c @@ -0,0 +1,293 @@ +#include "global.h" +#include "battle_anim.h" +#include "constants/rgb.h" + +extern void sub_81109F0(struct Sprite *); +extern void sub_8110AB4(struct Sprite *); +extern void sub_8110B38(struct Sprite *); +extern void sub_8110E4C(struct Sprite *); +extern void sub_8110F30(struct Sprite *); +extern void sub_811131C(struct Sprite *); +extern void sub_8111388(struct Sprite *); +extern void sub_8111418(struct Sprite *); +extern void sub_8111444(struct Sprite *); +extern void sub_80FF268(struct Sprite *); +extern void sub_80A8EE4(struct Sprite *); + +extern const union AnimCmd *const gUnknown_085950E0[]; +extern const union AnimCmd *const gUnknown_085954D0[]; + +const union AnimCmd gUnknown_08596AE0[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596AE8[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596AF0[] = +{ + ANIMCMD_FRAME(64, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08596AF8[] = +{ + gUnknown_08596AE0, + gUnknown_08596AE8, + gUnknown_08596AF0, +}; + +const struct SpriteTemplate gUnknown_08596B04 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596AF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81109F0, +}; + +const struct SpriteTemplate gUnknown_08596B1C = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596AF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110AB4, +}; + +const struct SpriteTemplate gUnknown_08596B34 = +{ + .tileTag = ANIM_TAG_MUD_SAND, + .paletteTag = ANIM_TAG_MUD_SAND, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110B38, +}; + +const union AffineAnimCmd gUnknown_08596B4C[] = +{ + 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 gUnknown_08596B6C[] = +{ + gUnknown_08596B4C, +}; + +const struct SpriteTemplate gUnknown_08596B70 = +{ + .tileTag = ANIM_TAG_WATER_ORB, + .paletteTag = ANIM_TAG_WATER_ORB, + .oam = &gUnknown_08524A8C, + .anims = gUnknown_085950E0, + .images = NULL, + .affineAnims = gUnknown_08596B6C, + .callback = sub_8110B38, +}; + +const struct SpriteTemplate gUnknown_08596B88 = +{ + .tileTag = ANIM_TAG_SMALL_EMBER, + .paletteTag = ANIM_TAG_SMALL_EMBER, + .oam = &gUnknown_08524914, + .anims = gUnknown_085954D0, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110B38, +}; + +const struct SpriteTemplate gBattleAnimSpriteTemplate_8596BA0 = +{ + .tileTag = ANIM_TAG_FLYING_DIRT, + .paletteTag = ANIM_TAG_FLYING_DIRT, + .oam = &gUnknown_08524934, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110E4C, +}; + +const struct Subsprite gUnknown_08596BB8[] = +{ + {.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 gUnknown_08596BC0[] = +{ + {ARRAY_COUNT(gUnknown_08596BB8), gUnknown_08596BB8}, +}; + +const union AnimCmd gUnknown_08596BC8[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596BD0[] = +{ + ANIMCMD_FRAME(16, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596BD8[] = +{ + ANIMCMD_FRAME(32, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596BE0[] = +{ + ANIMCMD_FRAME(48, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596BE8[] = +{ + ANIMCMD_FRAME(64, 1), + ANIMCMD_END, +}; + +const union AnimCmd gUnknown_08596BF0[] = +{ + ANIMCMD_FRAME(80, 1), + ANIMCMD_END, +}; + +const union AnimCmd *const gUnknown_08596BF8[] = +{ + gUnknown_08596BC8, + gUnknown_08596BD0, +}; + +const union AnimCmd *const gUnknown_08596C00[] = +{ + gUnknown_08596BD8, + gUnknown_08596BE0, +}; + +const union AnimCmd *const gUnknown_08596C08[] = +{ + gUnknown_08596BE8, + gUnknown_08596BF0, +}; + +const struct SpriteTemplate gUnknown_08596C10 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596BF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8110F30, +}; + +const struct SpriteTemplate gUnknown_08596C28 = +{ + .tileTag = ANIM_TAG_MUD_SAND, + .paletteTag = ANIM_TAG_MUD_SAND, + .oam = &gUnknown_08524904, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811131C, +}; + +const struct SpriteTemplate gUnknown_08596C40 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_811131C, +}; + +const struct SpriteTemplate gUnknown_08596C58 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596BF8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8111388, +}; + +const union AffineAnimCmd gUnknown_08596C70[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, -5, 5), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd gUnknown_08596C80[] = +{ + AFFINEANIMCMD_FRAME(0x0, 0x0, 5, 5), + AFFINEANIMCMD_JUMP(0), +}; + +const union AffineAnimCmd *const gUnknown_08596C90[] = +{ + gUnknown_08596C70, + gUnknown_08596C80, +}; + +const struct SpriteTemplate gUnknown_08596C98 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524974, + .anims = gUnknown_08596BF8, + .images = NULL, + .affineAnims = gUnknown_08596C90, + .callback = sub_8111418, +}; + +const struct SpriteTemplate gUnknown_08596CB0 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524974, + .anims = gUnknown_08596BF8, + .images = NULL, + .affineAnims = gUnknown_08596C90, + .callback = sub_8111444, +}; + +const struct SpriteTemplate gUnknown_08596CC8 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524914, + .anims = gUnknown_08596C08, + .images = NULL, + .affineAnims = gUnknown_08596C90, + .callback = sub_80FF268, +}; + +const struct SpriteTemplate gUnknown_08596CE0 = +{ + .tileTag = ANIM_TAG_ROCKS, + .paletteTag = ANIM_TAG_ROCKS, + .oam = &gUnknown_08524974, + .anims = gUnknown_08596C00, + .images = NULL, + .affineAnims = gUnknown_08596C90, + .callback = sub_80A8EE4, +}; |