mirror of
https://github.com/pret/pokefirered.git
synced 2026-10-02 14:00:42 -05:00
small ground effect refactoring
This commit is contained in:
@@ -60,27 +60,50 @@ struct StepAnimTable
|
||||
|
||||
typedef void (*MovementAction)(u8 direction);
|
||||
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << 0)
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << 1)
|
||||
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << 2)
|
||||
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE (1 << 3)
|
||||
#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << 4)
|
||||
#define GROUND_EFFECT_FLAG_REFLECTION (1 << 5)
|
||||
#define GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER (1 << 6)
|
||||
#define GROUND_EFFECT_FLAG_SAND (1 << 7)
|
||||
#define GROUND_EFFECT_FLAG_DEEP_SAND (1 << 8)
|
||||
#define GROUND_EFFECT_FLAG_RIPPLES (1 << 9)
|
||||
#define GROUND_EFFECT_FLAG_PUDDLE (1 << 10)
|
||||
#define GROUND_EFFECT_FLAG_SAND_PILE (1 << 11)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_TALL_GRASS (1 << 12)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_LONG_GRASS (1 << 13)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_SHALLOW_WATER (1 << 14)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_DEEP_WATER (1 << 15)
|
||||
#define GROUND_EFFECT_FLAG_LAND_ON_NORMAL_GROUND (1 << 16)
|
||||
#define GROUND_EFFECT_FLAG_SHORT_GRASS (1 << 17)
|
||||
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << 18)
|
||||
#define GROUND_EFFECT_FLAG_SEAWEED (1 << 19)
|
||||
#define GROUND_EFFECT_FLAG_SNOW (1 << 20)
|
||||
|
||||
#define GROUND_EFFECT_TALL_GRASS_ON_SPAWN 0
|
||||
#define GROUND_EFFECT_TALL_GRASS_ON_MOVE 1
|
||||
#define GROUND_EFFECT_LONG_GRASS_ON_SPAWN 2
|
||||
#define GROUND_EFFECT_LONG_GRASS_ON_MOVE 3
|
||||
#define GROUND_EFFECT_WATER_REFLECTION 4
|
||||
#define GROUND_EFFECT_ICE_REFLECTION 5
|
||||
#define GROUND_EFFECT_SHALLOW_FLOWING_WATER 6
|
||||
#define GROUND_EFFECT_SAND 7
|
||||
#define GROUND_EFFECT_DEEP_SAND 8
|
||||
#define GROUND_EFFECT_RIPPLES 9
|
||||
#define GROUND_EFFECT_PUDDLE 10
|
||||
#define GROUND_EFFECT_SAND_PILE 11
|
||||
#define GROUND_EFFECT_LAND_IN_TALL_GRASS 12
|
||||
#define GROUND_EFFECT_LAND_IN_LONG_GRASS 13
|
||||
#define GROUND_EFFECT_LAND_IN_SHALLOW_WATER 14
|
||||
#define GROUND_EFFECT_LAND_IN_DEEP_WATER 15
|
||||
#define GROUND_EFFECT_LAND_ON_NORMAL_GROUND 16
|
||||
#define GROUND_EFFECT_SHORT_GRASS 17
|
||||
#define GROUND_EFFECT_HOT_SPRINGS 18
|
||||
#define GROUND_EFFECT_SEAWEED 19
|
||||
#define GROUND_EFFECT_SNOW 20
|
||||
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_SPAWN (1 << GROUND_EFFECT_TALL_GRASS_ON_SPAWN)
|
||||
#define GROUND_EFFECT_FLAG_TALL_GRASS_ON_MOVE (1 << GROUND_EFFECT_TALL_GRASS_ON_MOVE)
|
||||
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_SPAWN (1 << GROUND_EFFECT_LONG_GRASS_ON_SPAWN)
|
||||
#define GROUND_EFFECT_FLAG_LONG_GRASS_ON_MOVE (1 << GROUND_EFFECT_LONG_GRASS_ON_MOVE)
|
||||
#define GROUND_EFFECT_FLAG_WATER_REFLECTION (1 << GROUND_EFFECT_WATER_REFLECTION)
|
||||
#define GROUND_EFFECT_FLAG_ICE_REFLECTION (1 << GROUND_EFFECT_ICE_REFLECTION)
|
||||
#define GROUND_EFFECT_FLAG_SHALLOW_FLOWING_WATER (1 << GROUND_EFFECT_SHALLOW_FLOWING_WATER)
|
||||
#define GROUND_EFFECT_FLAG_SAND (1 << GROUND_EFFECT_SAND)
|
||||
#define GROUND_EFFECT_FLAG_DEEP_SAND (1 << GROUND_EFFECT_DEEP_SAND)
|
||||
#define GROUND_EFFECT_FLAG_RIPPLES (1 << GROUND_EFFECT_RIPPLES)
|
||||
#define GROUND_EFFECT_FLAG_PUDDLE (1 << GROUND_EFFECT_PUDDLE)
|
||||
#define GROUND_EFFECT_FLAG_SAND_PILE (1 << GROUND_EFFECT_SAND_PILE)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_TALL_GRASS (1 << GROUND_EFFECT_LAND_IN_TALL_GRASS)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_LONG_GRASS (1 << GROUND_EFFECT_LAND_IN_LONG_GRASS)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_SHALLOW_WATER (1 << GROUND_EFFECT_LAND_IN_SHALLOW_WATER)
|
||||
#define GROUND_EFFECT_FLAG_LAND_IN_DEEP_WATER (1 << GROUND_EFFECT_LAND_IN_DEEP_WATER)
|
||||
#define GROUND_EFFECT_FLAG_LAND_ON_NORMAL_GROUND (1 << GROUND_EFFECT_LAND_ON_NORMAL_GROUND)
|
||||
#define GROUND_EFFECT_FLAG_SHORT_GRASS (1 << GROUND_EFFECT_SHORT_GRASS)
|
||||
#define GROUND_EFFECT_FLAG_HOT_SPRINGS (1 << GROUND_EFFECT_HOT_SPRINGS)
|
||||
#define GROUND_EFFECT_FLAG_SEAWEED (1 << GROUND_EFFECT_SEAWEED)
|
||||
#define GROUND_EFFECT_FLAG_SNOW (1 << GROUND_EFFECT_SNOW)
|
||||
|
||||
struct PairedPalettes
|
||||
{
|
||||
|
||||
@@ -9805,7 +9805,7 @@ static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent *objEvent)
|
||||
|
||||
static void GetGroundEffectFlags_Reflection(struct ObjectEvent *objEvent, u32 *flags)
|
||||
{
|
||||
u32 reflectionFlags[2] = { GROUND_EFFECT_FLAG_REFLECTION, GROUND_EFFECT_FLAG_ICE_REFLECTION };
|
||||
u32 reflectionFlags[2] = { GROUND_EFFECT_FLAG_ICE_REFLECTION, GROUND_EFFECT_FLAG_WATER_REFLECTION };
|
||||
u8 type = ObjectEventCheckForReflectiveSurface(objEvent);
|
||||
|
||||
if (type)
|
||||
@@ -10476,27 +10476,27 @@ void GroundEffect_Seaweed(struct ObjectEvent *objEvent, struct Sprite *sprite)
|
||||
}
|
||||
|
||||
static void (*const sGroundEffectFuncs[])(struct ObjectEvent *objEvent, struct Sprite *sprite) = {
|
||||
GroundEffect_SpawnOnTallGrass,
|
||||
GroundEffect_StepOnTallGrass,
|
||||
GroundEffect_SpawnOnLongGrass,
|
||||
GroundEffect_StepOnLongGrass,
|
||||
GroundEffect_WaterReflection,
|
||||
GroundEffect_IceReflection,
|
||||
GroundEffect_FlowingWater,
|
||||
GroundEffect_SandTracks,
|
||||
GroundEffect_DeepSandTracks,
|
||||
GroundEffect_Ripple,
|
||||
GroundEffect_StepOnPuddle,
|
||||
GroundEffect_SandHeap,
|
||||
GroundEffect_JumpOnTallGrass,
|
||||
GroundEffect_JumpOnLongGrass,
|
||||
GroundEffect_JumpOnShallowWater,
|
||||
GroundEffect_JumpOnWater,
|
||||
GroundEffect_JumpLandingDust,
|
||||
GroundEffect_ShortGrass,
|
||||
GroundEffect_HotSprings,
|
||||
GroundEffect_Seaweed,
|
||||
GroundEffects_Snow,
|
||||
[GROUND_EFFECT_TALL_GRASS_ON_SPAWN] = GroundEffect_SpawnOnTallGrass,
|
||||
[GROUND_EFFECT_TALL_GRASS_ON_MOVE] = GroundEffect_StepOnTallGrass,
|
||||
[GROUND_EFFECT_LONG_GRASS_ON_SPAWN] = GroundEffect_SpawnOnLongGrass,
|
||||
[GROUND_EFFECT_LONG_GRASS_ON_MOVE] = GroundEffect_StepOnLongGrass,
|
||||
[GROUND_EFFECT_WATER_REFLECTION] = GroundEffect_WaterReflection,
|
||||
[GROUND_EFFECT_ICE_REFLECTION] = GroundEffect_IceReflection,
|
||||
[GROUND_EFFECT_SHALLOW_FLOWING_WATER] = GroundEffect_FlowingWater,
|
||||
[GROUND_EFFECT_SAND] = GroundEffect_SandTracks,
|
||||
[GROUND_EFFECT_DEEP_SAND] = GroundEffect_DeepSandTracks,
|
||||
[GROUND_EFFECT_RIPPLES] = GroundEffect_Ripple,
|
||||
[GROUND_EFFECT_PUDDLE] = GroundEffect_StepOnPuddle,
|
||||
[GROUND_EFFECT_SAND_PILE] = GroundEffect_SandHeap,
|
||||
[GROUND_EFFECT_LAND_IN_TALL_GRASS] = GroundEffect_JumpOnTallGrass,
|
||||
[GROUND_EFFECT_LAND_IN_LONG_GRASS] = GroundEffect_JumpOnLongGrass,
|
||||
[GROUND_EFFECT_LAND_IN_SHALLOW_WATER] = GroundEffect_JumpOnShallowWater,
|
||||
[GROUND_EFFECT_LAND_IN_DEEP_WATER] = GroundEffect_JumpOnWater,
|
||||
[GROUND_EFFECT_LAND_ON_NORMAL_GROUND] = GroundEffect_JumpLandingDust,
|
||||
[GROUND_EFFECT_SHORT_GRASS] = GroundEffect_ShortGrass,
|
||||
[GROUND_EFFECT_HOT_SPRINGS] = GroundEffect_HotSprings,
|
||||
[GROUND_EFFECT_SEAWEED] = GroundEffect_Seaweed,
|
||||
[GROUND_EFFECT_SNOW] = GroundEffects_Snow,
|
||||
};
|
||||
|
||||
static void DoFlaggedGroundEffects(struct ObjectEvent *objEvent, struct Sprite *sprite, u32 flags)
|
||||
|
||||
Reference in New Issue
Block a user