mirror of
https://github.com/pret/pokeemerald.git
synced 2026-10-01 22:38:10 -05:00
Rock climb by ghoulslash (#7432)
Co-authored-by: Evan <eroelke@gmail.com> Co-authored-by: Jaizu <jaizu85@gmail.com> Co-authored-by: ghoulslash <41651341+ghoulslash@users.noreply.github.com> Co-authored-by: ghoulslash <pokevoyager0@gmail.com> Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
This commit is contained in:
@@ -40,6 +40,8 @@ extern const struct SpriteTemplate gFieldEffectObjectTemplate_SlitherTracks;
|
||||
extern const struct SpriteTemplate gFieldEffectObjectTemplate_BugTracks;
|
||||
extern const struct SpriteTemplate gFieldEffectObjectTemplate_SpotTracks;
|
||||
extern const struct SpriteTemplate gFieldEffectObjectTemplate_CaveDust;
|
||||
extern const struct SpriteTemplate gFieldEffectObjectTemplate_RockClimbBlob;
|
||||
extern const struct SpriteTemplate gFieldEffectObjectTemplate_RockClimbDust;
|
||||
|
||||
const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
|
||||
[FLDEFFOBJ_SHADOW_S] = &gFieldEffectObjectTemplate_ShadowSmall,
|
||||
@@ -83,4 +85,6 @@ const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[] = {
|
||||
[FLDEFFOBJ_TRACKS_SPOT] = &gFieldEffectObjectTemplate_SpotTracks,
|
||||
[FLDEFFOBJ_TRACKS_BUG] = &gFieldEffectObjectTemplate_BugTracks,
|
||||
[FLDEFFOBJ_CAVE_DUST] = &gFieldEffectObjectTemplate_CaveDust,
|
||||
[FLDEFFOBJ_ROCK_CLIMB_BLOB] = &gFieldEffectObjectTemplate_RockClimbBlob,
|
||||
[FLDEFFOBJ_ROCK_CLIMB_DUST] = &gFieldEffectObjectTemplate_RockClimbDust,
|
||||
};
|
||||
|
||||
@@ -1404,3 +1404,47 @@ const struct SpriteTemplate gFieldEffectObjectTemplate_CaveDust = {
|
||||
};
|
||||
|
||||
const struct SpritePalette gSpritePalette_CaveDust = {gFieldEffectObjectPalette_CaveDust, FLDEFF_PAL_TAG_CAVE_DUST};
|
||||
static const struct SpriteFrameImage sPicTable_RockClimbBlob[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_RockClimbBlob, 4, 4, 1),
|
||||
overworld_frame(gFieldEffectObjectPic_RockClimbBlob, 4, 4, 0),
|
||||
overworld_frame(gFieldEffectObjectPic_RockClimbBlob, 4, 4, 2),
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_RockClimbBlob = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_32x32,
|
||||
.anims = sAnimTable_SurfBlob,
|
||||
.images = sPicTable_RockClimbBlob,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateSurfBlobFieldEffect,
|
||||
};
|
||||
|
||||
|
||||
static const union AnimCmd sAnim_RockClimbDust[] =
|
||||
{
|
||||
ANIMCMD_FRAME(0, 12),
|
||||
ANIMCMD_FRAME(1, 12),
|
||||
ANIMCMD_FRAME(2, 12),
|
||||
ANIMCMD_END,
|
||||
};
|
||||
static const union AnimCmd *const sAnimTable_RockClimbDust[] =
|
||||
{
|
||||
sAnim_RockClimbDust,
|
||||
};
|
||||
static const struct SpriteFrameImage sPicTable_RockClimbDust[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_RockClimbDust, 4, 4, 0),
|
||||
overworld_frame(gFieldEffectObjectPic_RockClimbDust, 4, 4, 1),
|
||||
overworld_frame(gFieldEffectObjectPic_RockClimbDust, 4, 4, 2),
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_RockClimbDust = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = FLDEFF_PAL_TAG_DUST_CLOUD,
|
||||
.oam = &gObjectEventBaseOam_32x32,
|
||||
.anims = sAnimTable_RockClimbDust,
|
||||
.images = sPicTable_RockClimbDust,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateJumpImpactEffect,
|
||||
};
|
||||
|
||||
const struct SpritePalette gSpritePalette_BigDust = {gFieldEffectPal_DustCloud, FLDEFF_PAL_TAG_DUST_CLOUD};
|
||||
|
||||
@@ -287,6 +287,12 @@ u8 MovementAction_SurfStillLeft_Step0(struct ObjectEvent *objectEvent, struct Sp
|
||||
u8 MovementAction_SurfStillLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
u8 MovementAction_SurfStillRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
u8 MovementAction_SurfStillRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite);
|
||||
//fast diagonal
|
||||
u8 MovementAction_WalkFastDiagonalUpLeft_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementAction_WalkFastDiagonalUpRight_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementAction_WalkFastDiagonalDownLeft_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementAction_WalkFastDiagonalDownRight_Step0(struct ObjectEvent *, struct Sprite *);
|
||||
u8 MovementAction_WalkFastDiagonal_Step1(struct ObjectEvent *, struct Sprite *);
|
||||
|
||||
|
||||
u8 (*const gMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *);
|
||||
@@ -463,6 +469,12 @@ u8 (*const gMovementActionFuncs_SurfStillDown[])(struct ObjectEvent *, struct Sp
|
||||
u8 (*const gMovementActionFuncs_SurfStillUp[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_SurfStillLeft[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_SurfStillRight[])(struct ObjectEvent *, struct Sprite *);
|
||||
//fast diagonal
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalUpLeft[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalUpRight[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalDownLeft[])(struct ObjectEvent *, struct Sprite *);
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalDownRight[])(struct ObjectEvent *, struct Sprite *);
|
||||
|
||||
|
||||
u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
[MOVEMENT_ACTION_FACE_DOWN] = gMovementActionFuncs_FaceDown,
|
||||
@@ -639,6 +651,12 @@ u8 (*const *const gMovementActionFuncs[])(struct ObjectEvent *, struct Sprite *)
|
||||
[MOVEMENT_ACTION_SURF_STILL_UP] = gMovementActionFuncs_SurfStillUp,
|
||||
[MOVEMENT_ACTION_SURF_STILL_LEFT] = gMovementActionFuncs_SurfStillLeft,
|
||||
[MOVEMENT_ACTION_SURF_STILL_RIGHT] = gMovementActionFuncs_SurfStillRight,
|
||||
//fast diagonal
|
||||
[MOVEMENT_ACTION_WALK_FAST_DIAGONAL_UP_LEFT] = gMovementActionFuncs_WalkFastDiagonalUpLeft,
|
||||
[MOVEMENT_ACTION_WALK_FAST_DIAGONAL_UP_RIGHT] = gMovementActionFuncs_WalkFastDiagonalUpRight,
|
||||
[MOVEMENT_ACTION_WALK_FAST_DIAGONAL_DOWN_LEFT] = gMovementActionFuncs_WalkFastDiagonalDownLeft,
|
||||
[MOVEMENT_ACTION_WALK_FAST_DIAGONAL_DOWN_RIGHT] = gMovementActionFuncs_WalkFastDiagonalDownRight,
|
||||
|
||||
};
|
||||
|
||||
u8 (*const gMovementActionFuncs_FaceDown[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
@@ -1676,3 +1694,28 @@ u8 (*const gMovementActionFuncs_SurfStillRight[])(struct ObjectEvent *, struct S
|
||||
MovementAction_SurfStillRight_Step1,
|
||||
MovementAction_PauseSpriteAnim,
|
||||
};
|
||||
// fast diagonal
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalUpLeft[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_WalkFastDiagonalUpLeft_Step0,
|
||||
MovementAction_WalkFastDiagonal_Step1,
|
||||
MovementAction_PauseSpriteAnim,
|
||||
};
|
||||
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalUpRight[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_WalkFastDiagonalUpRight_Step0,
|
||||
MovementAction_WalkFastDiagonal_Step1,
|
||||
MovementAction_PauseSpriteAnim,
|
||||
};
|
||||
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalDownLeft[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_WalkFastDiagonalDownLeft_Step0,
|
||||
MovementAction_WalkFastDiagonal_Step1,
|
||||
MovementAction_PauseSpriteAnim,
|
||||
};
|
||||
|
||||
u8 (*const gMovementActionFuncs_WalkFastDiagonalDownRight[])(struct ObjectEvent *, struct Sprite *) = {
|
||||
MovementAction_WalkFastDiagonalDownRight_Step0,
|
||||
MovementAction_WalkFastDiagonal_Step1,
|
||||
MovementAction_PauseSpriteAnim,
|
||||
};
|
||||
|
||||
|
||||
@@ -286,6 +286,8 @@ const u32 gObjectEventPic_CustapBerryTree[] = INCBIN_U32("graphics/object_events
|
||||
const u32 gObjectEventPic_JabocaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/jaboca.4bpp");
|
||||
const u32 gObjectEventPic_RowapBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/rowap.4bpp");
|
||||
const u32 gFieldEffectObjectPic_SurfBlob[] = INCBIN_U32("graphics/field_effects/pics/surf_blob.4bpp");
|
||||
const u32 gFieldEffectObjectPic_RockClimbBlob[] = INCBIN_U32("graphics/field_effects/pics/rock_climb_blob.4bpp");
|
||||
const u32 gFieldEffectObjectPic_RockClimbDust[] = INCBIN_U32("graphics/field_effects/pics/rock_climb_dust.4bpp");
|
||||
const u32 gObjectEventPic_QuintyPlump[] = INCBIN_U32("graphics/object_events/pics/people/quinty_plump.4bpp");
|
||||
const u16 gObjectEventPal_QuintyPlump[] = INCBIN_U16("graphics/object_events/palettes/quinty_plump.gbapal");
|
||||
const u16 gObjectEventPal_QuintyPlumpReflection[] = INCBIN_U16("graphics/object_events/palettes/quinty_plump_reflection.gbapal");
|
||||
@@ -330,6 +332,7 @@ const u32 gFieldEffectObjectPic_MountainDisguise[] = INCBIN_U32("graphics/field_
|
||||
const u32 gFieldEffectObjectPic_SandDisguisePlaceholder[] = INCBIN_U32("graphics/field_effects/pics/sand_disguise_placeholder.4bpp");
|
||||
const u32 gFieldEffectObjectPic_HotSpringsWater[] = INCBIN_U32("graphics/field_effects/pics/hot_springs_water.4bpp");
|
||||
const u16 gFieldEffectPal_Ash[] = INCBIN_U16("graphics/field_effects/palettes/ash.gbapal");
|
||||
const u16 gFieldEffectPal_DustCloud[] = INCBIN_U16("graphics/field_effects/palettes/big_dust.gbapal");
|
||||
const u32 gFieldEffectObjectPic_AshPuff[] = INCBIN_U32("graphics/field_effects/pics/ash_puff.4bpp");
|
||||
const u32 gFieldEffectObjectPic_AshLaunch[] = INCBIN_U32("graphics/field_effects/pics/ash_launch.4bpp");
|
||||
const u32 gFieldEffectObjectPic_Bubbles[] = INCBIN_U32("graphics/field_effects/pics/bubbles.4bpp");
|
||||
|
||||
Reference in New Issue
Block a user