summaryrefslogtreecommitdiff
path: root/src/field_effect_helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/field_effect_helpers.c')
-rw-r--r--src/field_effect_helpers.c87
1 files changed, 44 insertions, 43 deletions
diff --git a/src/field_effect_helpers.c b/src/field_effect_helpers.c
index 55095086c..fd4198712 100644
--- a/src/field_effect_helpers.c
+++ b/src/field_effect_helpers.c
@@ -7,6 +7,7 @@
#include "fieldmap.h"
#include "metatile_behavior.h"
#include "constants/field_effects.h"
+#include "constants/event_objects.h"
#include "constants/songs.h"
#define OBJ_EVENT_PAL_TAG_NONE 0x11FF // duplicate of define in event_object_movement.c
@@ -77,15 +78,15 @@ static void LoadObjectRegularReflectionPalette(struct ObjectEvent * objectEvent,
const struct ObjectEventGraphicsInfo * graphicsInfo;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->paletteTag2 != OBJ_EVENT_PAL_TAG_NONE)
+ if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
if (graphicsInfo->paletteSlot == 0)
{
- LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else if (graphicsInfo->paletteSlot == 10)
{
- LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, paletteIndex);
+ LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag, paletteIndex);
}
else
{
@@ -102,9 +103,9 @@ static void LoadObjectHighBridgeReflectionPalette(struct ObjectEvent * objectEve
const struct ObjectEventGraphicsInfo * graphicsInfo;
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
- if (graphicsInfo->paletteTag2 != OBJ_EVENT_PAL_TAG_NONE)
+ if (graphicsInfo->reflectionPaletteTag != OBJ_EVENT_PAL_TAG_NONE)
{
- PatchObjectPalette(graphicsInfo->paletteTag2, paletteNum);
+ PatchObjectPalette(graphicsInfo->reflectionPaletteTag, paletteNum);
UpdateSpritePaletteWithWeather(paletteNum);
}
}
@@ -164,7 +165,7 @@ u8 CreateWarpArrowSprite(void)
u8 spriteId;
struct Sprite * sprite;
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[8], 0, 0, 0x52);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ARROW], 0, 0, 0x52);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -201,17 +202,17 @@ void ShowWarpArrowSprite(u8 spriteId, u8 direction, s16 x, s16 y)
}
const u8 gShadowEffectTemplateIds[] = {
- 0,
- 1,
- 2,
- 3
+ [SHADOW_SIZE_S] = FLDEFFOBJ_SHADOW_S,
+ [SHADOW_SIZE_M] = FLDEFFOBJ_SHADOW_M,
+ [SHADOW_SIZE_L] = FLDEFFOBJ_SHADOW_L,
+ [SHADOW_SIZE_XL] = FLDEFFOBJ_SHADOW_XL
};
const u16 gShadowVerticalOffsets[] = {
- 4,
- 4,
- 4,
- 16
+ [SHADOW_SIZE_S] = 4,
+ [SHADOW_SIZE_M] = 4,
+ [SHADOW_SIZE_L] = 4,
+ [SHADOW_SIZE_XL] = 16
};
u32 FldEff_Shadow(void)
@@ -273,7 +274,7 @@ u32 FldEff_TallGrass(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_8063BC4(&x, &y, 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[4], x, y, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_TALL_GRASS], x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -340,7 +341,7 @@ u32 FldEff_JumpTallGrass(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[10], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_TALL_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -380,7 +381,7 @@ u32 FldEff_LongGrass(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_8063BC4(&x, &y, 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[15], x, y, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_LONG_GRASS], x, y, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -443,7 +444,7 @@ u32 FldEff_JumpLongGrass(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[16], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_LONG_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -464,7 +465,7 @@ u32 FldEff_ShortGrass(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[30], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SHORT_GRASS], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &(gSprites[spriteId]);
@@ -521,7 +522,7 @@ u32 FldEff_SandFootprints(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[11], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -539,7 +540,7 @@ u32 FldEff_DeepSandFootprints(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[23], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_DEEP_SAND_FOOTPRINTS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -557,7 +558,7 @@ u32 FldEff_BikeTireTracks(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[27], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIKE_TIRE_TRACKS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -610,7 +611,7 @@ u32 FldEff_Splash(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@@ -649,7 +650,7 @@ u32 FldEff_JumpSmallSplash(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[14], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_SMALL_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -667,7 +668,7 @@ u32 FldEff_JumpBigSplash(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[12], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_JUMP_BIG_SPLASH], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -689,7 +690,7 @@ u32 FldEff_FeetInFlowingWater(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[13], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPLASH], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@@ -743,7 +744,7 @@ u32 FldEff_Ripple(void)
u8 spriteId;
struct Sprite * sprite;
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[5], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_RIPPLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -763,7 +764,7 @@ u32 FldEff_HotSpringsWater(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[31], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_HOT_SPRINGS_WATER], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -805,7 +806,7 @@ u32 FldEff_Unknown19(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[17], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -822,7 +823,7 @@ u32 FldEff_Unknown20(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[18], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_GRASS_2], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -839,7 +840,7 @@ u32 FldEff_Unknown21(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[19], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_UNUSED_SAND], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -856,7 +857,7 @@ u32 FldEff_Unknown22(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[20], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_WATER_SURFACING], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -888,7 +889,7 @@ u32 FldEff_Ash(void)
x = gFieldEffectArguments[0];
y = gFieldEffectArguments[1];
sub_8063BC4(&x, &y, 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[6], x, y, gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_ASH], x, y, gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -944,7 +945,7 @@ u32 FldEff_SurfBlob(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[7], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SURF_BLOB], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x96);
if (spriteId !=MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1104,7 +1105,7 @@ u32 FldEff_Dust(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 12);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[9], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_GROUND_IMPACT_DUST], gFieldEffectArguments[0], gFieldEffectArguments[1], 0);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1126,7 +1127,7 @@ u32 FldEff_SandPile(void)
objectEventId = GetObjectEventIdByLocalIdAndMap(gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
objectEvent = &gObjectEvents[objectEventId];
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[29], 0, 0, 0);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SAND_PILE], 0, 0, 0);
if (spriteId != MAX_SPRITES)
{
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
@@ -1180,7 +1181,7 @@ u32 FldEff_Bubbles(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 0);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[34], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BUBBLES], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1208,7 +1209,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
struct Sprite * sprite;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 4);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[22], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], gFieldEffectArguments[2]);
if (spriteId != MAX_SPRITES)
{
sprite = &gSprites[spriteId];
@@ -1222,17 +1223,17 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
u32 ShowTreeDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, 24, 4);
+ return ShowDisguiseFieldEffect(FLDEFF_TREE_DISGUISE, FLDEFFOBJ_TREE_DISGUISE, 4);
}
u32 ShowMountainDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, 25, 3);
+ return ShowDisguiseFieldEffect(FLDEFF_MOUNTAIN_DISGUISE, FLDEFFOBJ_MOUNTAIN_DISGUISE, 3);
}
u32 ShowSandDisguiseFieldEffect(void)
{
- return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, 28, 2);
+ return ShowDisguiseFieldEffect(FLDEFF_SAND_DISGUISE, FLDEFFOBJ_SAND_DISGUISE, 2);
}
static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 templateIdx, u8 paletteNum)
@@ -1328,7 +1329,7 @@ u32 FldEff_Sparkle(void)
gFieldEffectArguments[0] += 7;
gFieldEffectArguments[1] += 7;
sub_8063BC4((s16 *)&gFieldEffectArguments[0], (s16 *)&gFieldEffectArguments[1], 8, 8);
- spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[35], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
+ spriteId = CreateSpriteAtEnd(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_SMALL_SPARKLE], gFieldEffectArguments[0], gFieldEffectArguments[1], 0x52);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].oam.priority = gFieldEffectArguments[2];
@@ -1355,7 +1356,7 @@ void UpdateSparkleFieldEffect(struct Sprite * sprite)
FieldEffectStop(sprite, FLDEFF_SPARKLE);
}
-void sub_80DCCE0(struct Sprite * sprite)
+void UpdateJumpImpactEffect(struct Sprite * sprite)
{
if (sprite->animEnded)
{