summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcamthesaxman <cameronghall@cox.net>2017-11-27 23:39:25 -0600
committercamthesaxman <cameronghall@cox.net>2017-11-27 23:39:25 -0600
commit356c1f87c3a787013123b2f36ddcaa3fae1db8d8 (patch)
tree53a85e4b46c80159615b06c60f58f9b266e79a0e
parent8215d028078128c6b28119fe2420229cb1828e6b (diff)
convert fldeff data to C
-rwxr-xr-xdata/fldeff_decoration.s36
-rwxr-xr-xdata/fldeff_secretpower.s208
-rw-r--r--ld_script.txt4
-rw-r--r--src/field/fldeff_decoration.c63
-rw-r--r--src/field/fldeff_secretpower.c186
5 files changed, 244 insertions, 253 deletions
diff --git a/data/fldeff_decoration.s b/data/fldeff_decoration.s
deleted file mode 100755
index 2081679cd..000000000
--- a/data/fldeff_decoration.s
+++ /dev/null
@@ -1,36 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gOamData_83D266C:: @ 83D266C
- .2byte 0x8000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D2674:: @ 83D2674
- obj_image_anim_frame 0, 6
- obj_image_anim_frame 1, 6
- obj_image_anim_frame 2, 6
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2684:: @ 83D2684
- .4byte gSpriteAnim_83D2674
-
- .align 2
-gSpriteImageTable_83D2688:: @ 83D2688
- obj_frame_tiles gSpriteImage_83D21EC, 0x100
- obj_frame_tiles gSpriteImage_83D22EC, 0x100
- obj_frame_tiles gSpriteImage_83D23EC, 0x100
-
- .align 2
-gSpriteTemplate_83D26A0:: @ 83D26A0
- spr_template 0xFFFF, 4110, gOamData_83D266C, gSpriteAnimTable_83D2684, gSpriteImageTable_83D2688, gDummySpriteAffineAnimTable, SpriteCB_SandPillar_0
-
-@ This uses one of the secret base palettes, so there is no "09.pal" file.
- .align 2
-gFieldEffectObjectPaletteInfo9:: @ 83D26B8
- obj_pal gTilesetPalettes_SecretBase + 5 * 0x20, 0x100E
diff --git a/data/fldeff_secretpower.s b/data/fldeff_secretpower.s
deleted file mode 100755
index 589ded675..000000000
--- a/data/fldeff_secretpower.s
+++ /dev/null
@@ -1,208 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gSpriteImage_83D198C:: @ 83D198C
- .incbin "graphics/unknown_sprites/83D259C/0.4bpp"
-
- .align 2
-gSpriteImage_83D1A0C:: @ 83D1A0C
- .incbin "graphics/unknown_sprites/83D259C/1.4bpp"
-
- .align 2
-gSpriteImage_83D1A8C:: @ 83D1A8C
- .incbin "graphics/unknown_sprites/83D259C/2.4bpp"
-
- .align 2
-gSpriteImage_83D1B0C:: @ 83D1B0C
- .incbin "graphics/unknown_sprites/83D259C/3.4bpp"
-
- .align 2
-gSpriteImage_83D1B8C:: @ 83D1B8C
- .incbin "graphics/unknown_sprites/83D259C/4.4bpp"
-
- .space 32
-
- .align 2
-gFieldEffectObjectPalette7: @ 83D1C2C
- .incbin "graphics/field_effect_objects/palettes/07.gbapal"
-
- .align 2
-gSpriteImage_83D1C4C:: @ 83D1C4C
- .incbin "graphics/unknown_sprites/83D25EC/0.4bpp"
-
- .align 2
-gSpriteImage_83D1CCC:: @ 83D1CCC
- .incbin "graphics/unknown_sprites/83D25EC/1.4bpp"
-
- .align 2
-gSpriteImage_83D1D4C:: @ 83D1D4C
- .incbin "graphics/unknown_sprites/83D25EC/2.4bpp"
-
- .align 2
-gSpriteImage_83D1DCC:: @ 83D1DCC
- .incbin "graphics/unknown_sprites/83D25EC/3.4bpp"
-
- .align 2
-gSpriteImage_83D1E4C:: @ 83D1E4C
- .incbin "graphics/unknown_sprites/83D25EC/4.4bpp"
-
- .align 2
-gSpriteImage_83D1ECC:: @ 83D1ECC
- .incbin "graphics/unknown_sprites/83D25C4/0.4bpp"
-
- .align 2
-gSpriteImage_83D1F4C:: @ 83D1F4C
- .incbin "graphics/unknown_sprites/83D25C4/1.4bpp"
-
- .align 2
-gSpriteImage_83D1FCC:: @ 83D1FCC
- .incbin "graphics/unknown_sprites/83D25C4/2.4bpp"
-
- .align 2
-gSpriteImage_83D204C:: @ 83D204C
- .incbin "graphics/unknown_sprites/83D25C4/3.4bpp"
-
- .align 2
-gSpriteImage_83D20CC:: @ 83D20CC
- .incbin "graphics/unknown_sprites/83D25C4/4.4bpp"
-
- .align 2
- .incbin "graphics/unknown_sprites/83D25C4/5.4bpp"
-
- .align 2
-gFieldEffectObjectPalette8: @ 83D21CC
- .incbin "graphics/field_effect_objects/palettes/08.gbapal"
-
- .align 2
-gSpriteImage_83D21EC:: @ 83D21EC
- .incbin "graphics/unknown_sprites/83D2688/0.4bpp"
-
- .align 2
-gSpriteImage_83D22EC:: @ 83D22EC
- .incbin "graphics/unknown_sprites/83D2688/1.4bpp"
-
- .align 2
-gSpriteImage_83D23EC:: @ 83D23EC
- .incbin "graphics/unknown_sprites/83D2688/2.4bpp"
-
- .align 2
-gOamData_83D24EC:: @ 83D24EC
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_83D24F4:: @ 83D24F4
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D250C:: @ 83D250C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D2524:: @ 83D2524
- obj_image_anim_frame 4, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 0, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D253C:: @ 83D253C
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D2554:: @ 83D2554
- obj_image_anim_frame 4, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 3, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 2, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 1, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0, 8, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_83D256C:: @ 83D256C
- obj_image_anim_frame 0, 8
- obj_image_anim_frame 1, 8
- obj_image_anim_frame 2, 8
- obj_image_anim_frame 3, 8
- obj_image_anim_frame 4, 8
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_83D2584:: @ 83D2584
- .4byte gSpriteAnim_83D24F4
-
- .align 2
-gSpriteAnimTable_83D2588:: @ 83D2588
- .4byte gSpriteAnim_83D250C
- .4byte gSpriteAnim_83D2524
- .4byte gSpriteAnim_83D253C
- .4byte gSpriteAnim_83D2554
-
- .align 2
-gSpriteAnimTable_83D2598:: @ 83D2598
- .4byte gSpriteAnim_83D256C
-
- .align 2
-gSpriteImageTable_83D259C:: @ 83D259C
- obj_frame_tiles gSpriteImage_83D198C, 0x80
- obj_frame_tiles gSpriteImage_83D1A0C, 0x80
- obj_frame_tiles gSpriteImage_83D1A8C, 0x80
- obj_frame_tiles gSpriteImage_83D1B0C, 0x80
- obj_frame_tiles gSpriteImage_83D1B8C, 0x80
-
- .align 2
-gSpriteImageTable_83D25C4:: @ 83D25C4
- obj_frame_tiles gSpriteImage_83D1ECC, 0x80
- obj_frame_tiles gSpriteImage_83D1F4C, 0x80
- obj_frame_tiles gSpriteImage_83D1FCC, 0x80
- obj_frame_tiles gSpriteImage_83D204C, 0x80
- obj_frame_tiles gSpriteImage_83D20CC, 0x80
-
- .align 2
-gSpriteImageTable_83D25EC:: @ 83D25EC
- obj_frame_tiles gSpriteImage_83D1C4C, 0x80
- obj_frame_tiles gSpriteImage_83D1CCC, 0x80
- obj_frame_tiles gSpriteImage_83D1D4C, 0x80
- obj_frame_tiles gSpriteImage_83D1DCC, 0x80
- obj_frame_tiles gSpriteImage_83D1E4C, 0x80
-
- .align 2
-gSpriteTemplate_83D2614:: @ 83D2614
- spr_template 0xFFFF, 4099, gOamData_83D24EC, gSpriteAnimTable_83D2584, gSpriteImageTable_83D259C, gDummySpriteAffineAnimTable, sub_80C644C
-
- .align 2
-gSpriteTemplate_83D262C:: @ 83D262C
- spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2588, gSpriteImageTable_83D25C4, gDummySpriteAffineAnimTable, sub_80C6598
-
- .align 2
-gSpriteTemplate_83D2644:: @ 83D2644
- spr_template 0xFFFF, 4104, gOamData_83D24EC, gSpriteAnimTable_83D2598, gSpriteImageTable_83D25EC, gDummySpriteAffineAnimTable, sub_80C66BC
-
- .align 2
-gFieldEffectObjectPaletteInfo7:: @ 83D265C
- obj_pal gFieldEffectObjectPalette7, 0x1003
-
- .align 2
-gFieldEffectObjectPaletteInfo8:: @ 83D2664
- obj_pal gFieldEffectObjectPalette8, 0x1008
diff --git a/ld_script.txt b/ld_script.txt
index d828278e7..fecd5a2e2 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -535,8 +535,8 @@ SECTIONS {
src/pokemon/pokemon_size_record.o(.rodata);
src/field/pc_screen_effect.o(.rodata);
data/pc_screen_effect.o(.rodata);
- data/fldeff_secretpower.o(.rodata);
- data/fldeff_decoration.o(.rodata);
+ src/field/fldeff_secretpower.o(.rodata);
+ src/field/fldeff_decoration.o(.rodata);
src/field/fldeff_recordmixing.o(.rodata);
src/field/field_special_scene.o(.rodata);
src/field/rotating_gate.o(.rodata);
diff --git a/src/field/fldeff_decoration.c b/src/field/fldeff_decoration.c
index d58f53a3c..7c8ff44db 100644
--- a/src/field/fldeff_decoration.c
+++ b/src/field/fldeff_decoration.c
@@ -13,14 +13,69 @@
#include "task.h"
#include "text.h"
-extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36];
-extern const struct SpriteTemplate gSpriteTemplate_83D26A0;
+extern const u8 gSpriteImage_83D21EC[];
+extern const u8 gSpriteImage_83D22EC[];
+extern const u8 gSpriteImage_83D23EC[];
+extern const u16 gTilesetPalettes_SecretBase[][16];
+
+const struct OamData gOamData_83D266C =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 2,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 2,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83D2674[] =
+{
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(1, 6),
+ ANIMCMD_FRAME(2, 6),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2684[] =
+{
+ gSpriteAnim_83D2674,
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D2688[] =
+{
+ {gSpriteImage_83D21EC, 0x100},
+ {gSpriteImage_83D22EC, 0x100},
+ {gSpriteImage_83D23EC, 0x100},
+};
-static void sub_80C68EC(u8);
-static void DoBalloonSoundEffect(s16);
void SpriteCB_SandPillar_0(struct Sprite *);
void SpriteCB_SandPillar_1(struct Sprite *);
void SpriteCB_SandPillar_2(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D26A0 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4110,
+ .oam = &gOamData_83D266C,
+ .anims = gSpriteAnimTable_83D2684,
+ .images = gSpriteImageTable_83D2688,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_SandPillar_0,
+};
+
+// This uses one of the secret base palettes, so there is no "09.pal" file.
+const struct SpritePalette gFieldEffectObjectPaletteInfo9 = {gTilesetPalettes_SecretBase[5], 0x100E};
+
+extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[36];
+
+static void sub_80C68EC(u8);
+static void DoBalloonSoundEffect(s16);
void sub_80C68A4(s16 metatileId, s16 x, s16 y)
{
diff --git a/src/field/fldeff_secretpower.c b/src/field/fldeff_secretpower.c
index cd9a2ae36..9bcfaa8c4 100644
--- a/src/field/fldeff_secretpower.c
+++ b/src/field/fldeff_secretpower.c
@@ -17,9 +17,189 @@ extern u8 gUnknown_081A2CE6[];
extern u8 gUnknown_081A2D3E[];
extern u8 gUnknown_081A2D96[];
-extern struct SpriteTemplate gSpriteTemplate_83D2614;
-extern struct SpriteTemplate gSpriteTemplate_83D262C;
-extern struct SpriteTemplate gSpriteTemplate_83D2644;
+const u8 gSpriteImage_83D198C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/0.4bpp");
+const u8 gSpriteImage_83D1A0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/1.4bpp");
+const u8 gSpriteImage_83D1A8C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/2.4bpp");
+const u8 gSpriteImage_83D1B0C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/3.4bpp");
+const u8 gSpriteImage_83D1B8C[] = INCBIN_U8("graphics/unknown_sprites/83D259C/4.4bpp");
+const u8 gUnusedEmptySpace_83D1C0C[32] = {0};
+const u16 gFieldEffectObjectPalette7[] = INCBIN_U16("graphics/field_effect_objects/palettes/07.gbapal");
+const u8 gSpriteImage_83D1C4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/0.4bpp");
+const u8 gSpriteImage_83D1CCC[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/1.4bpp");
+const u8 gSpriteImage_83D1D4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/2.4bpp");
+const u8 gSpriteImage_83D1DCC[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/3.4bpp");
+const u8 gSpriteImage_83D1E4C[] = INCBIN_U8("graphics/unknown_sprites/83D25EC/4.4bpp");
+const u8 gSpriteImage_83D1ECC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/0.4bpp");
+const u8 gSpriteImage_83D1F4C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/1.4bpp");
+const u8 gSpriteImage_83D1FCC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/2.4bpp");
+const u8 gSpriteImage_83D204C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/3.4bpp");
+const u8 gSpriteImage_83D20CC[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/4.4bpp");
+const u8 gSpriteImage_83D214C[] = INCBIN_U8("graphics/unknown_sprites/83D25C4/5.4bpp"); // unused
+const u16 gFieldEffectObjectPalette8[] = INCBIN_U16("graphics/field_effect_objects/palettes/08.gbapal");
+const u8 gSpriteImage_83D21EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/0.4bpp");
+const u8 gSpriteImage_83D22EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/1.4bpp");
+const u8 gSpriteImage_83D23EC[] = INCBIN_U8("graphics/unknown_sprites/83D2688/2.4bpp");
+
+const struct OamData gOamData_83D24EC =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = 0,
+ .x = 0,
+ .matrixNum = 0,
+ .size = 1,
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+const union AnimCmd gSpriteAnim_83D24F4[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D250C[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D2524[] =
+{
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D253C[] =
+{
+ ANIMCMD_FRAME(0, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(4, 8, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D2554[] =
+{
+ ANIMCMD_FRAME(4, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(3, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(2, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(1, 8, .hFlip = TRUE),
+ ANIMCMD_FRAME(0, 8, .hFlip = TRUE),
+ ANIMCMD_END,
+};
+
+const union AnimCmd gSpriteAnim_83D256C[] =
+{
+ ANIMCMD_FRAME(0, 8),
+ ANIMCMD_FRAME(1, 8),
+ ANIMCMD_FRAME(2, 8),
+ ANIMCMD_FRAME(3, 8),
+ ANIMCMD_FRAME(4, 8),
+ ANIMCMD_END,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2584[] =
+{
+ gSpriteAnim_83D24F4,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2588[] =
+{
+ gSpriteAnim_83D250C,
+ gSpriteAnim_83D2524,
+ gSpriteAnim_83D253C,
+ gSpriteAnim_83D2554,
+};
+
+const union AnimCmd *const gSpriteAnimTable_83D2598[] =
+{
+ gSpriteAnim_83D256C,
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D259C[] =
+{
+ {gSpriteImage_83D198C, 0x80},
+ {gSpriteImage_83D1A0C, 0x80},
+ {gSpriteImage_83D1A8C, 0x80},
+ {gSpriteImage_83D1B0C, 0x80},
+ {gSpriteImage_83D1B8C, 0x80},
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D25C4[] =
+{
+ {gSpriteImage_83D1ECC, 0x80},
+ {gSpriteImage_83D1F4C, 0x80},
+ {gSpriteImage_83D1FCC, 0x80},
+ {gSpriteImage_83D204C, 0x80},
+ {gSpriteImage_83D20CC, 0x80},
+};
+
+const struct SpriteFrameImage gSpriteImageTable_83D25EC[] =
+{
+ {gSpriteImage_83D1C4C, 0x80},
+ {gSpriteImage_83D1CCC, 0x80},
+ {gSpriteImage_83D1D4C, 0x80},
+ {gSpriteImage_83D1DCC, 0x80},
+ {gSpriteImage_83D1E4C, 0x80},
+};
+
+void sub_80C644C(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D2614 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4099,
+ .oam = &gOamData_83D24EC,
+ .anims = gSpriteAnimTable_83D2584,
+ .images = gSpriteImageTable_83D259C,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C644C,
+};
+
+void sub_80C6598(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D262C =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4104,
+ .oam = &gOamData_83D24EC,
+ .anims = gSpriteAnimTable_83D2588,
+ .images = gSpriteImageTable_83D25C4,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C6598,
+};
+
+void sub_80C66BC(struct Sprite *);
+const struct SpriteTemplate gSpriteTemplate_83D2644 =
+{
+ .tileTag = 0xFFFF,
+ .paletteTag = 4104,
+ .oam = &gOamData_83D24EC,
+ .anims = gSpriteAnimTable_83D2598,
+ .images = gSpriteImageTable_83D25EC,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_80C66BC,
+};
+
+const struct SpritePalette gFieldEffectObjectPaletteInfo7 = {gFieldEffectObjectPalette7, 0x1003};
+const struct SpritePalette gFieldEffectObjectPaletteInfo8 = {gFieldEffectObjectPalette8, 0x1008};
void sub_80C639C(void);
void sub_80C63E8(void);