summaryrefslogtreecommitdiff
path: root/src/field_effect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/field_effect.c')
-rw-r--r--src/field_effect.c185
1 files changed, 140 insertions, 45 deletions
diff --git a/src/field_effect.c b/src/field_effect.c
index ee9dcb987..22bf44f28 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -33,8 +33,6 @@
#define subsprite_table(ptr) {.subsprites = ptr, .subspriteCount = (sizeof ptr) / (sizeof(struct Subsprite))}
-extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const.
-
EWRAM_DATA s32 gFieldEffectArguments[8] = {0};
// Static type declarations
@@ -237,7 +235,9 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId);
static IWRAM_DATA u8 sActiveList[32];
// External declarations
-
+extern struct CompressedSpritePalette gMonPaletteTable[]; // GF made a mistake and did not extern it as const.
+extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[];
+extern const struct CompressedSpriteSheet gTrainerFrontPicTable[];
extern u8 *gFieldEffectScriptPointers[];
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
@@ -270,7 +270,8 @@ const u8 gUnknown_0855C190[] = INCBIN_U8("graphics/unknown/unknown_55C190.4bpp")
const u8 gUnknown_0855C1B0[] = INCBIN_U8("graphics/unknown/unknown_55C1B0.4bpp");
const u8 gUnknown_0855C1D0[] = INCBIN_U8("graphics/unknown/unknown_55C1D0.4bpp");
-bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = {
+bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) =
+{
FieldEffectCmd_loadtiles,
FieldEffectCmd_loadfadedpal,
FieldEffectCmd_loadpal,
@@ -281,25 +282,72 @@ bool8 (*const gFieldEffectScriptFuncs[])(u8 **, u32 *) = {
FieldEffectCmd_loadfadedpal_callnative,
};
-const struct OamData gNewGameBirchOamAttributes = {.size = 3};
-const struct OamData gOamData_855C218 = {.size = 0};
-const struct OamData gOamData_855C220 = {.size = 1};
+const struct OamData gNewGameBirchOamAttributes =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(64x64),
+ .x = 0,
+ .size = SPRITE_SIZE(64x64),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+};
-const struct SpriteFrameImage gNewGameBirchPicTable[] = {
+const struct OamData gOamData_855C218 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(8x8),
+ .x = 0,
+ .size = SPRITE_SIZE(8x8),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+};
+
+const struct OamData gOamData_855C220 =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(16x16),
+ .x = 0,
+ .size = SPRITE_SIZE(16x16),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+};
+
+const struct SpriteFrameImage gNewGameBirchPicTable[] =
+{
obj_frame_tiles(gNewGameBirchPic)
};
-const struct SpritePalette gNewGameBirchObjectPaletteInfo = {.data = gNewGameBirchPalette, .tag = 0x1006};
-const union AnimCmd gNewGameBirchImageAnim[] = {
+const struct SpritePalette gNewGameBirchObjectPaletteInfo =
+{
+ .data = gNewGameBirchPalette,
+ .tag = 0x1006
+};
+
+const union AnimCmd gNewGameBirchImageAnim[] =
+{
ANIMCMD_FRAME(.imageValue = 0, .duration = 1),
ANIMCMD_END
};
-const union AnimCmd *const gNewGameBirchImageAnimTable[] = {
+const union AnimCmd *const gNewGameBirchImageAnimTable[] =
+{
gNewGameBirchImageAnim
};
-const struct SpriteTemplate gNewGameBirchObjectTemplate = {
+const struct SpriteTemplate gNewGameBirchObjectTemplate =
+{
.tileTag = 0xFFFF,
.paletteTag = 4102,
.oam = &gNewGameBirchOamAttributes,
@@ -309,31 +357,55 @@ const struct SpriteTemplate gNewGameBirchObjectTemplate = {
.callback = SpriteCallbackDummy
};
-const struct SpritePalette gFieldEffectObjectPaletteInfo4 = {.data = gFieldEffectObjectPalette4, .tag = 0x1007};
-const struct SpritePalette gFieldEffectObjectPaletteInfo5 = {.data = gFieldEffectObjectPalette5, .tag = 0x1010};
-const struct OamData gOamData_855C26C = {
- .shape = 1,
- .size = 2
+const struct SpritePalette gFieldEffectObjectPaletteInfo4 =
+{
+ .data = gFieldEffectObjectPalette4,
+ .tag = 0x1007
};
-const struct SpriteFrameImage gSpriteImageTable_855C274[] = {
+const struct SpritePalette gFieldEffectObjectPaletteInfo5 =
+{
+ .data = gFieldEffectObjectPalette5,
+ .tag = 0x1010
+};
+
+const struct OamData gOamData_855C26C =
+{
+ .y = 0,
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .bpp = ST_OAM_4BPP,
+ .shape = SPRITE_SHAPE(32x16),
+ .x = 0,
+ .size = SPRITE_SIZE(32x16),
+ .tileNum = 0,
+ .priority = 0,
+ .paletteNum = 0,
+};
+
+const struct SpriteFrameImage gSpriteImageTable_855C274[] =
+{
obj_frame_tiles(gSpriteImage_855A970)
};
-const struct SpriteFrameImage gSpriteImageTable_855C27C[] = {
+const struct SpriteFrameImage gSpriteImageTable_855C27C[] =
+{
obj_frame_tiles(gSpriteImage_855A9B0),
obj_frame_tiles(gSpriteImage_855AA70)
};
-const struct SpriteFrameImage gSpriteImageTable_855C28C[] = {
+const struct SpriteFrameImage gSpriteImageTable_855C28C[] =
+{
obj_frame_tiles(gSpriteImage_855AB30)
};
-const struct SpriteFrameImage gSpriteImageTable_855C294[] = {
+const struct SpriteFrameImage gSpriteImageTable_855C294[] =
+{
{.data = gSpriteImage_855AD30, .size = 0x200} // the macro breaks down here
};
-const struct Subsprite gSubspriteTable_855C29C[] = {
+const struct Subsprite gSubspriteTable_855C29C[] =
+{
{.x = -12, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 0},
{.x = 4, .y = -8, .priority = 2, .tileOffset = 2, .shape = 0, .size = 0},
{.x = -12, .y = 0, .priority = 2, .tileOffset = 3, .shape = 1, .size = 0},
@@ -342,7 +414,8 @@ const struct Subsprite gSubspriteTable_855C29C[] = {
const struct SubspriteTable gUnknown_0855C2AC = subsprite_table(gSubspriteTable_855C29C);
-const struct Subsprite gSubspriteTable_855C2B4[] = {
+const struct Subsprite gSubspriteTable_855C2B4[] =
+{
{.x = -32, .y = -8, .priority = 2, .tileOffset = 0, .shape = 1, .size = 1},
{.x = 0, .y = -8, .priority = 2, .tileOffset = 4, .shape = 1, .size = 1},
{.x = -32, .y = 0, .priority = 2, .tileOffset = 8, .shape = 1, .size = 1},
@@ -351,12 +424,14 @@ const struct Subsprite gSubspriteTable_855C2B4[] = {
const struct SubspriteTable gUnknown_0855C2C4 = subsprite_table(gSubspriteTable_855C2B4);
-const union AnimCmd gSpriteAnim_855C2CC[] = {
+const union AnimCmd gSpriteAnim_855C2CC[] =
+{
ANIMCMD_FRAME(.imageValue = 0, .duration = 1),
ANIMCMD_JUMP(0)
};
-const union AnimCmd gSpriteAnim_855C2D4[] = {
+const union AnimCmd gSpriteAnim_855C2D4[] =
+{
ANIMCMD_FRAME(.imageValue = 0, .duration = 16),
ANIMCMD_FRAME(.imageValue = 1, .duration = 16),
ANIMCMD_FRAME(.imageValue = 0, .duration = 16),
@@ -368,16 +443,19 @@ const union AnimCmd gSpriteAnim_855C2D4[] = {
ANIMCMD_END
};
-const union AnimCmd *const gSpriteAnimTable_855C2F8[] = {
+const union AnimCmd *const gSpriteAnimTable_855C2F8[] =
+{
gSpriteAnim_855C2CC,
gSpriteAnim_855C2D4
};
-const union AnimCmd *const gSpriteAnimTable_855C300[] = {
+const union AnimCmd *const gSpriteAnimTable_855C300[] =
+{
gSpriteAnim_855C2CC
};
-const struct SpriteTemplate gSpriteTemplate_855C304 = {
+const struct SpriteTemplate gSpriteTemplate_855C304 =
+{
.tileTag = 0xFFFF,
.paletteTag = 4103,
.oam = &gOamData_855C218,
@@ -387,7 +465,8 @@ const struct SpriteTemplate gSpriteTemplate_855C304 = {
.callback = SpriteCB_PokeballGlow
};
-const struct SpriteTemplate gSpriteTemplate_855C31C = {
+const struct SpriteTemplate gSpriteTemplate_855C31C =
+{
.tileTag = 0xFFFF,
.paletteTag = 4100,
.oam = &gOamData_855C220,
@@ -397,7 +476,8 @@ const struct SpriteTemplate gSpriteTemplate_855C31C = {
.callback = SpriteCB_PokecenterMonitor
};
-const struct SpriteTemplate gSpriteTemplate_855C334 = {
+const struct SpriteTemplate gSpriteTemplate_855C334 =
+{
.tileTag = 0xFFFF,
.paletteTag = 4112,
.oam = &gOamData_855C220,
@@ -407,7 +487,8 @@ const struct SpriteTemplate gSpriteTemplate_855C334 = {
.callback = SpriteCB_HallOfFameMonitor
};
-const struct SpriteTemplate gSpriteTemplate_855C34C = {
+const struct SpriteTemplate gSpriteTemplate_855C34C =
+{
.tileTag = 0xFFFF,
.paletteTag = 4112,
.oam = &gOamData_855C26C,
@@ -417,21 +498,24 @@ const struct SpriteTemplate gSpriteTemplate_855C34C = {
.callback = SpriteCB_HallOfFameMonitor
};
-void (*const gUnknown_0855C364[])(struct Task *) = {
+void (*const gUnknown_0855C364[])(struct Task *) =
+{
PokecenterHealEffect_0,
PokecenterHealEffect_1,
PokecenterHealEffect_2,
PokecenterHealEffect_3
};
-void (*const gUnknown_0855C374[])(struct Task *) = {
+void (*const gUnknown_0855C374[])(struct Task *) =
+{
HallOfFameRecordEffect_0,
HallOfFameRecordEffect_1,
HallOfFameRecordEffect_2,
HallOfFameRecordEffect_3
};
-void (*const gUnknown_0855C384[])(struct Sprite *) = {
+void (*const gUnknown_0855C384[])(struct Sprite *) =
+{
PokeballGlowEffect_0,
PokeballGlowEffect_1,
PokeballGlowEffect_2,
@@ -442,7 +526,8 @@ void (*const gUnknown_0855C384[])(struct Sprite *) = {
PokeballGlowEffect_7
};
-const struct Coords16 gUnknown_0855C3A4[] = {
+const struct Coords16 gUnknown_0855C3A4[] =
+{
{.x = 0, .y = 0},
{.x = 6, .y = 0},
{.x = 0, .y = 4},
@@ -455,7 +540,8 @@ const u8 gUnknown_0855C3BC[] = {16, 12, 8, 0};
const u8 gUnknown_0855C3C0[] = {16, 12, 8, 0};
const u8 gUnknown_0855C3C4[] = { 0, 0, 0, 0};
-bool8 (*const gUnknown_0855C3C8[])(struct Task *) = {
+bool8 (*const gUnknown_0855C3C8[])(struct Task *) =
+{
sub_80B6BCC,
sub_80B6C74,
sub_80B6C90,
@@ -465,7 +551,8 @@ bool8 (*const gUnknown_0855C3C8[])(struct Task *) = {
sub_80B6E18,
};
-bool8 (*const gUnknown_0855C3E4[])(struct Task *) = {
+bool8 (*const gUnknown_0855C3E4[])(struct Task *) =
+{
sub_80B6EC0,
sub_80B6EE0,
sub_80B6F50,
@@ -474,7 +561,8 @@ bool8 (*const gUnknown_0855C3E4[])(struct Task *) = {
sub_80B6FA8,
};
-bool8 (*const gUnknown_0855C3FC[])(struct Task *) = {
+bool8 (*const gUnknown_0855C3FC[])(struct Task *) =
+{
sub_80B7114,
sub_80B7190,
sub_80B71D0,
@@ -484,7 +572,8 @@ bool8 (*const gUnknown_0855C3FC[])(struct Task *) = {
sub_80B72F4,
};
-bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = {
+bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) =
+{
sub_80B73D0,
waterfall_1_do_anim_probably,
waterfall_2_wait_anim_finish_probably,
@@ -492,13 +581,15 @@ bool8 (*const gUnknown_0855C418[])(struct Task *, struct EventObject *) = {
sub_80B7478,
};
-bool8 (*const gUnknown_0855C42C[])(struct Task *) = {
+bool8 (*const gUnknown_0855C42C[])(struct Task *) =
+{
dive_1_lock,
dive_2_unknown,
dive_3_unknown,
};
-bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) = {
+bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct Sprite *) =
+{
sub_80B764C,
sub_80B7684,
sub_80B76B8,
@@ -507,14 +598,16 @@ bool8 (*const gUnknown_0855C438[])(struct Task *, struct EventObject *, struct S
sub_80B7814,
};
-bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) = {
+bool8 (*const gUnknown_0855C450[])(struct Task *, struct EventObject *, struct Sprite *) =
+{
sub_80B78EC,
sub_80B791C,
sub_80B7968,
sub_80B79BC,
};
-bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) = {
+bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct Sprite *) =
+{
sub_80B7AE8,
sub_80B7B18,
sub_80B7B94,
@@ -522,7 +615,8 @@ bool8 (*const gUnknown_0855C460[])(struct Task *, struct EventObject *, struct S
sub_80B7BF4,
};
-void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) = {
+void (*const gEscapeRopeFieldEffectFuncs[])(struct Task *) =
+{
EscapeRopeFieldEffect_Step0,
EscapeRopeFieldEffect_Step1,
};
@@ -3391,7 +3485,7 @@ static void sub_80B9978(struct Task *task)
eventObject = &gEventObjects[gPlayerAvatar.eventObjectId];
sprite = &gSprites[eventObject->spriteId];
eventObject->inanimate = 0;
- sub_808EB08(eventObject, eventObject->currentCoords.x, eventObject->currentCoords.y);
+ MoveEventObjectToMapCoords(eventObject, eventObject->currentCoords.x, eventObject->currentCoords.y);
sprite->pos2.x = 0;
sprite->pos2.y = 0;
sprite->coordOffsetEnabled = 1;
@@ -3697,3 +3791,4 @@ static void Fldeff_MoveDeoxysRock_Step(u8 taskId)
break;
}
}
+