diff options
Diffstat (limited to 'src/field_effect.c')
-rw-r--r-- | src/field_effect.c | 185 |
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; } } + |