summaryrefslogtreecommitdiff
path: root/src/event_object_movement.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/event_object_movement.c')
-rw-r--r--src/event_object_movement.c1931
1 files changed, 952 insertions, 979 deletions
diff --git a/src/event_object_movement.c b/src/event_object_movement.c
index 1a7d08db2..67f203dcd 100644
--- a/src/event_object_movement.c
+++ b/src/event_object_movement.c
@@ -32,31 +32,39 @@
// this file was known as evobjmv.c in Game Freak's original source
+// Sprite data used throughout
+#define sObjEventId data[0]
+#define sTypeFuncId data[1] // Index into corresponding gMovementTypeFuncs_* table
+#define sActionFuncId data[2] // Index into corresponding gMovementActionFuncs_* table
+#define sDirection data[3]
+#define sSpeed data[4]
+
+
#define movement_type_def(setup, table) \
static u8 setup##_callback(struct ObjectEvent *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, setup##_callback);\
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, setup##_callback);\
}\
static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)\
{\
- return table[sprite->data[1]](objectEvent, sprite);\
+ return table[sprite->sTypeFuncId](objectEvent, sprite);\
}
#define movement_type_empty_callback(setup) \
static u8 setup##_callback(struct ObjectEvent *, struct Sprite *);\
void setup(struct Sprite *sprite)\
{\
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, setup##_callback);\
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, setup##_callback);\
}\
static u8 setup##_callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)\
{\
return 0;\
}
-EWRAM_DATA u8 sCurrentReflectionType = 0;
-EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0;
-EWRAM_DATA struct LockedAnimObjectEvents *gLockedAnimObjectEvents = {0};
+static EWRAM_DATA u8 sCurrentReflectionType = 0;
+static EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0;
+static EWRAM_DATA struct LockedAnimObjectEvents *sLockedAnimObjectEvents = {0};
static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16);
static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *, struct Sprite *);
@@ -70,8 +78,8 @@ static void UpdateObjectEventSpriteAnimPause(struct ObjectEvent *, struct Sprite
static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *, s16, s16);
static bool8 IsMetatileDirectionallyImpassable(struct ObjectEvent *, s16, s16, u8);
static bool8 DoesObjectCollideWithObjectAt(struct ObjectEvent *, s16, s16);
-static void sub_8096530(struct ObjectEvent *, struct Sprite *);
-static void UpdateObjEventSpriteVisibility(struct ObjectEvent *, struct Sprite *);
+static void UpdateObjectEventOffscreen(struct ObjectEvent *, struct Sprite *);
+static void UpdateObjectEventSpriteVisibility(struct ObjectEvent *, struct Sprite *);
static void ObjectEventUpdateMetatileBehaviors(struct ObjectEvent*);
static void GetGroundEffectFlags_Reflection(struct ObjectEvent*, u32*);
static void GetGroundEffectFlags_TallGrassOnSpawn(struct ObjectEvent*, u32*);
@@ -115,30 +123,49 @@ static void GetObjectEventMovingCameraOffset(s16 *, s16 *);
static struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u8, u8, u8);
static void LoadObjectEventPalette(u16);
static void RemoveObjectEventIfOutsideView(struct ObjectEvent *);
-static void sub_808E1B8(u8, s16, s16);
+static void SpawnObjectEventOnReturnToField(u8, s16, s16);
static void SetPlayerAvatarObjectEventIdAndObjectId(u8, u8);
-static void sub_808E38C(struct ObjectEvent *);
-static u8 sub_808E8F4(const struct SpritePalette *);
+static void ResetObjectEventFldEffData(struct ObjectEvent *);
+static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *);
static u8 FindObjectEventPaletteIndexByTag(u16);
-static void sub_808EAB0(u16, u8);
+static void _PatchObjectPalette(u16, u8);
static bool8 ObjectEventDoesZCoordMatch(struct ObjectEvent *, u8);
-static void ObjectCB_CameraObject(struct Sprite *);
+static void SpriteCB_CameraObject(struct Sprite *);
static void CameraObject_0(struct Sprite *);
static void CameraObject_1(struct Sprite *);
static void CameraObject_2(struct Sprite *);
static struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, struct ObjectEventTemplate *templates, u8 count);
static void ClearObjectEventMovement(struct ObjectEvent *, struct Sprite *);
static void ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8);
-static void oamt_npc_ministep_reset(struct Sprite *, u8, u8);
+static void SetSpriteDataForNormalStep(struct Sprite *, u8, u8);
static void InitSpriteForFigure8Anim(struct Sprite *sprite);
static bool8 AnimateSpriteInFigure8(struct Sprite *sprite);
static void UpdateObjectEventSprite(struct Sprite *);
+static void DoShadowFieldEffect(struct ObjectEvent *);
+static void SetJumpSpriteData(struct Sprite *, u8, u8, u8);
+static void SetWalkSlowSpriteData(struct Sprite *sprite, u8 direction);
+static bool8 UpdateWalkSlowAnim(struct Sprite *sprite);
+static u8 DoJumpSpriteMovement(struct Sprite *sprite);
+static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite);
+static void CreateLevitateMovementTask(struct ObjectEvent *);
+static void DestroyLevitateMovementTask(u8);
+static bool8 NpcTakeStep(struct Sprite *sprite);
+
+static const struct SpriteFrameImage sPicTable_PechaBerryTree[];
const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0};
-const struct SpriteTemplate gCameraSpriteTemplate = {0, 0xFFFF, &gDummyOamData, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, ObjectCB_CameraObject};
+static const struct SpriteTemplate sCameraSpriteTemplate = {
+ .tileTag = 0,
+ .paletteTag = 0xFFFF,
+ .oam = &gDummyOamData,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCB_CameraObject
+};
-void (*const gCameraObjectFuncs[])(struct Sprite *) = {
+static void (*const sCameraObjectFuncs[])(struct Sprite *) = {
CameraObject_0,
CameraObject_1,
CameraObject_2,
@@ -669,13 +696,13 @@ static const u16 *const sObjectPaletteTagSets[] = {
#include "data/object_events/berry_tree_graphics_tables.h"
#include "data/field_effects/field_effect_objects.h"
-const s16 gMovementDelaysMedium[] = {32, 64, 96, 128};
-const s16 gMovementDelaysLong[] = {32, 64, 128, 192};
-const s16 gMovementDelaysShort[] = {32, 48, 64, 80};
+static const s16 sMovementDelaysMedium[] = {32, 64, 96, 128};
+static const s16 sMovementDelaysLong[] = {32, 64, 128, 192}; // Unused
+static const s16 sMovementDelaysShort[] = {32, 48, 64, 80};
#include "data/object_events/movement_type_func_tables.h"
-const u8 gFaceDirectionAnimNums[] = {
+static const u8 sFaceDirectionAnimNums[] = {
[DIR_NONE] = 0,
[DIR_SOUTH] = 0,
[DIR_NORTH] = 1,
@@ -686,7 +713,7 @@ const u8 gFaceDirectionAnimNums[] = {
[DIR_NORTHWEST] = 1,
[DIR_NORTHEAST] = 1,
};
-const u8 gMoveDirectionAnimNums[] = {
+static const u8 sMoveDirectionAnimNums[] = {
[DIR_NONE] = 4,
[DIR_SOUTH] = 4,
[DIR_NORTH] = 5,
@@ -697,7 +724,7 @@ const u8 gMoveDirectionAnimNums[] = {
[DIR_NORTHWEST] = 5,
[DIR_NORTHEAST] = 5,
};
-const u8 gMoveDirectionFastAnimNums[] = {
+static const u8 sMoveDirectionFastAnimNums[] = {
[DIR_NONE] = 8,
[DIR_SOUTH] = 8,
[DIR_NORTH] = 9,
@@ -708,7 +735,7 @@ const u8 gMoveDirectionFastAnimNums[] = {
[DIR_NORTHWEST] = 9,
[DIR_NORTHEAST] = 9,
};
-const u8 gMoveDirectionFasterAnimNums[] = {
+static const u8 sMoveDirectionFasterAnimNums[] = {
[DIR_NONE] = 12,
[DIR_SOUTH] = 12,
[DIR_NORTH] = 13,
@@ -719,7 +746,7 @@ const u8 gMoveDirectionFasterAnimNums[] = {
[DIR_NORTHWEST] = 13,
[DIR_NORTHEAST] = 13,
};
-const u8 gMoveDirectionFastestAnimNums[] = {
+static const u8 sMoveDirectionFastestAnimNums[] = {
[DIR_NONE] = 16,
[DIR_SOUTH] = 16,
[DIR_NORTH] = 17,
@@ -730,7 +757,7 @@ const u8 gMoveDirectionFastestAnimNums[] = {
[DIR_NORTHWEST] = 17,
[DIR_NORTHEAST] = 17,
};
-const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon
+static const u8 sJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon
[DIR_NONE] = 20,
[DIR_SOUTH] = 20,
[DIR_NORTH] = 21,
@@ -741,7 +768,7 @@ const u8 gJumpSpecialDirectionAnimNums[] = { // used for jumping onto surf mon
[DIR_NORTHWEST] = 21,
[DIR_NORTHEAST] = 21,
};
-const u8 gAcroWheelieDirectionAnimNums[] = {
+static const u8 sAcroWheelieDirectionAnimNums[] = {
[DIR_NONE] = 20,
[DIR_SOUTH] = 20,
[DIR_NORTH] = 21,
@@ -752,7 +779,7 @@ const u8 gAcroWheelieDirectionAnimNums[] = {
[DIR_NORTHWEST] = 21,
[DIR_NORTHEAST] = 21,
};
-const u8 gUnrefAnimNums_08375633[] = {
+static const u8 sAcroUnusedDirectionAnimNums[] = {
[DIR_NONE] = 24,
[DIR_SOUTH] = 24,
[DIR_NORTH] = 25,
@@ -763,7 +790,7 @@ const u8 gUnrefAnimNums_08375633[] = {
[DIR_NORTHWEST] = 25,
[DIR_NORTHEAST] = 25,
};
-const u8 gAcroEndWheelieDirectionAnimNums[] = {
+static const u8 sAcroEndWheelieDirectionAnimNums[] = {
[DIR_NONE] = 28,
[DIR_SOUTH] = 28,
[DIR_NORTH] = 29,
@@ -774,7 +801,7 @@ const u8 gAcroEndWheelieDirectionAnimNums[] = {
[DIR_NORTHWEST] = 29,
[DIR_NORTHEAST] = 29,
};
-const u8 gAcroUnusedActionDirectionAnimNums[] = {
+static const u8 sAcroUnusedActionDirectionAnimNums[] = {
[DIR_NONE] = 32,
[DIR_SOUTH] = 32,
[DIR_NORTH] = 33,
@@ -785,7 +812,7 @@ const u8 gAcroUnusedActionDirectionAnimNums[] = {
[DIR_NORTHWEST] = 33,
[DIR_NORTHEAST] = 33,
};
-const u8 gAcroWheeliePedalDirectionAnimNums[] = {
+static const u8 sAcroWheeliePedalDirectionAnimNums[] = {
[DIR_NONE] = 36,
[DIR_SOUTH] = 36,
[DIR_NORTH] = 37,
@@ -796,7 +823,7 @@ const u8 gAcroWheeliePedalDirectionAnimNums[] = {
[DIR_NORTHWEST] = 37,
[DIR_NORTHEAST] = 37,
};
-const u8 gFishingDirectionAnimNums[] = {
+static const u8 sFishingDirectionAnimNums[] = {
[DIR_NONE] = 0,
[DIR_SOUTH] = 0,
[DIR_NORTH] = 1,
@@ -807,7 +834,7 @@ const u8 gFishingDirectionAnimNums[] = {
[DIR_NORTHWEST] = 1,
[DIR_NORTHEAST] = 1,
};
-const u8 gFishingNoCatchDirectionAnimNums[] = {
+static const u8 sFishingNoCatchDirectionAnimNums[] = {
[DIR_NONE] = 4,
[DIR_SOUTH] = 4,
[DIR_NORTH] = 5,
@@ -818,7 +845,7 @@ const u8 gFishingNoCatchDirectionAnimNums[] = {
[DIR_NORTHWEST] = 5,
[DIR_NORTHEAST] = 5,
};
-const u8 gFishingBiteDirectionAnimNums[] = {
+static const u8 sFishingBiteDirectionAnimNums[] = {
[DIR_NONE] = 8,
[DIR_SOUTH] = 8,
[DIR_NORTH] = 9,
@@ -829,7 +856,7 @@ const u8 gFishingBiteDirectionAnimNums[] = {
[DIR_NORTHWEST] = 9,
[DIR_NORTHEAST] = 9,
};
-const u8 gRunningDirectionAnimNums[] = {
+static const u8 sRunningDirectionAnimNums[] = {
[DIR_NONE] = 20,
[DIR_SOUTH] = 20,
[DIR_NORTH] = 21,
@@ -1069,7 +1096,7 @@ const u8 gAcroEndWheelieMoveDirectionMovementActions[] = {
MOVEMENT_ACTION_ACRO_END_WHEELIE_MOVE_RIGHT,
};
-const u8 gOppositeDirections[] = {
+static const u8 sOppositeDirections[] = {
DIR_NORTH,
DIR_SOUTH,
DIR_EAST,
@@ -1373,7 +1400,7 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl
else if (paletteSlot >= 16)
{
paletteSlot -= 16;
- sub_808EAB0(graphicsInfo->paletteTag, paletteSlot);
+ _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot);
}
if (objectEvent->movementType == MOVEMENT_TYPE_INVISIBLE)
@@ -1388,14 +1415,14 @@ static u8 TrySetupObjectEventSprite(struct ObjectEventTemplate *objectEventTempl
}
sprite = &gSprites[spriteId];
- sub_8092FF0(objectEvent->currentCoords.x + cameraX, objectEvent->currentCoords.y + cameraY, &sprite->pos1.x, &sprite->pos1.y);
+ GetMapCoordsFromSpritePos(objectEvent->currentCoords.x + cameraX, objectEvent->currentCoords.y + cameraY, &sprite->pos1.x, &sprite->pos1.y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
sprite->pos1.x += 8;
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
sprite->oam.paletteNum = paletteSlot;
sprite->coordOffsetEnabled = TRUE;
- sprite->data[0] = objectEventId;
+ sprite->sObjEventId = objectEventId;
objectEvent->spriteId = spriteId;
objectEvent->inanimate = graphicsInfo->inanimate;
if (!objectEvent->inanimate)
@@ -1522,7 +1549,7 @@ u8 AddPseudoObjectEvent(u16 graphicsId, void (*callback)(struct Sprite *), s16 x
// Used to create sprite object events instead of a full object event
// Used when resources are limiting, e.g. for the audience in contests or group members in Union Room
-u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
+u8 CreateObjectSprite(u8 graphicsId, u8 objectEventId, s16 x, s16 y, u8 z, u8 direction)
{
u8 spriteId;
struct Sprite *sprite;
@@ -1549,7 +1576,7 @@ u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
sprite->oam.paletteNum -= 16;
}
sprite->coordOffsetEnabled = TRUE;
- sprite->data[0] = a1;
+ sprite->sObjEventId = objectEventId;
sprite->data[1] = z;
if (graphicsInfo->paletteSlot == 10)
{
@@ -1557,7 +1584,7 @@ u8 CreateObjectSprite(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
}
else if (graphicsInfo->paletteSlot >= 16)
{
- sub_808EAB0(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0);
+ _PatchObjectPalette(graphicsInfo->paletteTag, graphicsInfo->paletteSlot | 0xf0);
}
if (subspriteTables != NULL)
{
@@ -1584,17 +1611,11 @@ void TrySpawnObjectEvents(s16 cameraX, s16 cameraY)
s16 bottom = gSaveBlock1Ptr->pos.y + 16;
if (InBattlePyramid())
- {
objectCount = GetNumBattlePyramidObjectEvents();
- }
else if (InTrainerHill())
- {
objectCount = 2;
- }
else
- {
objectCount = gMapHeader.events->objectEventCount;
- }
for (i = 0; i < objectCount; i++)
{
@@ -1647,7 +1668,7 @@ static void RemoveObjectEventIfOutsideView(struct ObjectEvent *objectEvent)
RemoveObjectEvent(objectEvent);
}
-void sub_808E16C(s16 x, s16 y)
+void SpawnObjectEventsOnReturnToField(s16 x, s16 y)
{
u8 i;
@@ -1655,16 +1676,14 @@ void sub_808E16C(s16 x, s16 y)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].active)
- {
- sub_808E1B8(i, x, y);
- }
+ SpawnObjectEventOnReturnToField(i, x, y);
}
CreateReflectionEffectSprites();
}
-static void sub_808E1B8(u8 objectEventId, s16 x, s16 y)
+static void SpawnObjectEventOnReturnToField(u8 objectEventId, s16 x, s16 y)
{
- u8 spriteId;
+ u8 i;
u8 paletteSlot;
struct Sprite *sprite;
struct ObjectEvent *objectEvent;
@@ -1673,15 +1692,11 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y)
const struct SubspriteTable *subspriteTables;
const struct ObjectEventGraphicsInfo *graphicsInfo;
-#define i spriteId
for (i = 0; i < ARRAY_COUNT(gLinkPlayerObjectEvents); i++)
{
if (gLinkPlayerObjectEvents[i].active && objectEventId == gLinkPlayerObjectEvents[i].objEventId)
- {
return;
- }
}
-#undef i
objectEvent = &gObjectEvents[objectEventId];
subspriteTables = NULL;
@@ -1689,6 +1704,7 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y)
spriteFrameImage.size = graphicsInfo->size;
MakeObjectTemplateFromObjectEventGraphicsInfoWithCallbackIndex(objectEvent->graphicsId, objectEvent->movementType, &spriteTemplate, &subspriteTables);
spriteTemplate.images = &spriteFrameImage;
+
*(u16 *)&spriteTemplate.paletteTag = 0xFFFF;
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
@@ -1702,14 +1718,15 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y)
else if (paletteSlot >= 16)
{
paletteSlot -= 16;
- sub_808EAB0(graphicsInfo->paletteTag, paletteSlot);
+ _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot);
}
*(u16 *)&spriteTemplate.paletteTag = 0xFFFF;
- spriteId = CreateSprite(&spriteTemplate, 0, 0, 0);
- if (spriteId != MAX_SPRITES)
+
+ i = CreateSprite(&spriteTemplate, 0, 0, 0);
+ if (i != MAX_SPRITES)
{
- sprite = &gSprites[spriteId];
- sub_8092FF0(x + objectEvent->currentCoords.x, y + objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y);
+ sprite = &gSprites[i];
+ GetMapCoordsFromSpritePos(x + objectEvent->currentCoords.x, y + objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
sprite->pos1.x += 8;
@@ -1717,27 +1734,25 @@ static void sub_808E1B8(u8 objectEventId, s16 x, s16 y)
sprite->images = graphicsInfo->images;
if (objectEvent->movementType == MOVEMENT_TYPE_PLAYER)
{
- SetPlayerAvatarObjectEventIdAndObjectId(objectEventId, spriteId);
+ SetPlayerAvatarObjectEventIdAndObjectId(objectEventId, i);
objectEvent->warpArrowSpriteId = CreateWarpArrowSprite();
}
if (subspriteTables != NULL)
- {
SetSubspriteTables(sprite, subspriteTables);
- }
+
sprite->oam.paletteNum = paletteSlot;
sprite->coordOffsetEnabled = TRUE;
- sprite->data[0] = objectEventId;
- objectEvent->spriteId = spriteId;
+ sprite->sObjEventId = objectEventId;
+ objectEvent->spriteId = i;
if (!objectEvent->inanimate && objectEvent->movementType != MOVEMENT_TYPE_PLAYER)
- {
StartSpriteAnim(sprite, GetFaceDirectionAnimNum(objectEvent->facingDirection));
- }
- sub_808E38C(objectEvent);
+
+ ResetObjectEventFldEffData(objectEvent);
SetObjectSubpriorityByZCoord(objectEvent->previousElevation, sprite, 1);
}
}
-static void sub_808E38C(struct ObjectEvent *objectEvent)
+static void ResetObjectEventFldEffData(struct ObjectEvent *objectEvent)
{
objectEvent->singleMovementActive = FALSE;
objectEvent->triggerGroundEffectsOnMove = TRUE;
@@ -1778,7 +1793,7 @@ void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId)
else if (paletteSlot >= 16)
{
paletteSlot -= 16;
- sub_808EAB0(graphicsInfo->paletteTag, paletteSlot);
+ _PatchObjectPalette(graphicsInfo->paletteTag, paletteSlot);
}
sprite->oam.shape = graphicsInfo->oam->shape;
sprite->oam.size = graphicsInfo->oam->size;
@@ -1905,7 +1920,7 @@ void ObjectEventGetLocalIdAndMap(struct ObjectEvent *objectEvent, void *localId,
*(u8*)(mapGroup) = objectEvent->mapGroup;
}
-void sub_808E75C(s16 x, s16 y)
+void AllowObjectAtPosTriggerGroundEffects(s16 x, s16 y)
{
u8 objectEventId;
struct ObjectEvent *objectEvent;
@@ -1970,27 +1985,23 @@ static void LoadObjectEventPalette(u16 paletteTag)
u16 i = FindObjectEventPaletteIndexByTag(paletteTag);
if (i != OBJ_EVENT_PAL_TAG_NONE) // always true
- {
- sub_808E8F4(&sObjectEventSpritePalettes[i]);
- }
+ LoadSpritePaletteIfTagExists(&sObjectEventSpritePalettes[i]);
}
-void Unused_LoadObjectEventPaletteSet(u16 *paletteTags)
+// Unused
+static void LoadObjectEventPaletteSet(u16 *paletteTags)
{
u8 i;
for (i = 0; paletteTags[i] != OBJ_EVENT_PAL_TAG_NONE; i++)
- {
LoadObjectEventPalette(paletteTags[i]);
- }
}
-static u8 sub_808E8F4(const struct SpritePalette *spritePalette)
+static u8 LoadSpritePaletteIfTagExists(const struct SpritePalette *spritePalette)
{
if (IndexOfSpritePaletteTag(spritePalette->tag) != 0xFF)
- {
return 0xFF;
- }
+
return LoadSpritePalette(spritePalette);
}
@@ -2056,12 +2067,13 @@ void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot)
}
}
-static void sub_808EAB0(u16 tag, u8 slot)
+static void _PatchObjectPalette(u16 tag, u8 slot)
{
PatchObjectPalette(tag, slot);
}
-void unref_sub_808EAC4(struct ObjectEvent *objectEvent, s16 x, s16 y)
+// Unused
+static void IncrementObjectEventCoords(struct ObjectEvent *objectEvent, s16 x, s16 y)
{
objectEvent->previousCoords.x = objectEvent->currentCoords.x;
objectEvent->previousCoords.y = objectEvent->currentCoords.y;
@@ -2098,7 +2110,7 @@ void MoveObjectEventToMapCoords(struct ObjectEvent *objectEvent, s16 x, s16 y)
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
sprite->pos1.x += 8;
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
- sub_808E38C(objectEvent);
+ ResetObjectEventFldEffData(objectEvent);
if (objectEvent->trackedByCamera)
CameraObjectReset1();
}
@@ -2177,36 +2189,39 @@ void UpdateObjectEventsForCameraUpdate(s16 x, s16 y)
RemoveObjectEventsOutsideView();
}
+#define sLinkedSpriteId data[0]
+#define sState data[1]
+
u8 AddCameraObject(u8 linkedSpriteId)
{
- u8 spriteId = CreateSprite(&gCameraSpriteTemplate, 0, 0, 4);
+ u8 spriteId = CreateSprite(&sCameraSpriteTemplate, 0, 0, 4);
gSprites[spriteId].invisible = TRUE;
- gSprites[spriteId].data[0] = linkedSpriteId;
+ gSprites[spriteId].sLinkedSpriteId = linkedSpriteId;
return spriteId;
}
-static void ObjectCB_CameraObject(struct Sprite *sprite)
+static void SpriteCB_CameraObject(struct Sprite *sprite)
{
- void (*callbacks[ARRAY_COUNT(gCameraObjectFuncs)])(struct Sprite *);
+ void (*callbacks[ARRAY_COUNT(sCameraObjectFuncs)])(struct Sprite *);
- memcpy(callbacks, gCameraObjectFuncs, sizeof gCameraObjectFuncs);
- callbacks[sprite->data[1]](sprite);
+ memcpy(callbacks, sCameraObjectFuncs, sizeof sCameraObjectFuncs);
+ callbacks[sprite->sState](sprite);
}
static void CameraObject_0(struct Sprite *sprite)
{
- sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
- sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
+ sprite->pos1.x = gSprites[sprite->sLinkedSpriteId].pos1.x;
+ sprite->pos1.y = gSprites[sprite->sLinkedSpriteId].pos1.y;
sprite->invisible = TRUE;
- sprite->data[1] = 1;
+ sprite->sState = 1;
CameraObject_1(sprite);
}
static void CameraObject_1(struct Sprite *sprite)
{
- s16 x = gSprites[sprite->data[0]].pos1.x;
- s16 y = gSprites[sprite->data[0]].pos1.y;
+ s16 x = gSprites[sprite->sLinkedSpriteId].pos1.x;
+ s16 y = gSprites[sprite->sLinkedSpriteId].pos1.y;
sprite->data[2] = x - sprite->pos1.x;
sprite->data[3] = y - sprite->pos1.y;
@@ -2216,75 +2231,74 @@ static void CameraObject_1(struct Sprite *sprite)
static void CameraObject_2(struct Sprite *sprite)
{
- sprite->pos1.x = gSprites[sprite->data[0]].pos1.x;
- sprite->pos1.y = gSprites[sprite->data[0]].pos1.y;
+ sprite->pos1.x = gSprites[sprite->sLinkedSpriteId].pos1.x;
+ sprite->pos1.y = gSprites[sprite->sLinkedSpriteId].pos1.y;
sprite->data[2] = 0;
sprite->data[3] = 0;
}
-static struct Sprite *FindCameraObject(void)
+static struct Sprite *FindCameraSprite(void)
{
u8 i;
for (i = 0; i < MAX_SPRITES; i++)
{
- if (gSprites[i].inUse && gSprites[i].callback == ObjectCB_CameraObject)
- {
+ if (gSprites[i].inUse && gSprites[i].callback == SpriteCB_CameraObject)
return &gSprites[i];
- }
}
return NULL;
}
void CameraObjectReset1(void)
{
- struct Sprite *cameraObject;
+ struct Sprite *camera;
- cameraObject = FindCameraObject();
- if (cameraObject != NULL)
+ camera = FindCameraSprite();
+ if (camera != NULL)
{
- cameraObject->data[1] = 0;
- cameraObject->callback(cameraObject);
+ camera->sState = 0;
+ camera->callback(camera);
}
}
-void CameraObjectSetFollowedObjectId(u8 objectId)
+void CameraObjectSetFollowedSpriteId(u8 spriteId)
{
- struct Sprite *cameraObject;
+ struct Sprite *camera;
- cameraObject = FindCameraObject();
- if (cameraObject != NULL)
+ camera = FindCameraSprite();
+ if (camera != NULL)
{
- cameraObject->data[0] = objectId;
+ camera->sLinkedSpriteId = spriteId;
CameraObjectReset1();
}
}
-u8 CameraObjectGetFollowedObjectId(void)
+// Unused
+static u8 CameraObjectGetFollowedSpriteId(void)
{
- struct Sprite *cameraObject;
+ struct Sprite *camera;
- cameraObject = FindCameraObject();
- if (cameraObject == NULL)
+ camera = FindCameraSprite();
+ if (camera == NULL)
{
return MAX_SPRITES;
}
- return cameraObject->data[0];
+ return camera->sLinkedSpriteId;
}
void CameraObjectReset2(void)
{
// UB: Possible null dereference
#ifdef UBFIX
- struct Sprite *cameraObject;
+ struct Sprite *camera;
- cameraObject = FindCameraObject();
- if (cameraObject != NULL)
+ camera = FindCameraSprite();
+ if (camera != NULL)
{
- cameraObject->data[1] = 2;
+ camera->sState = 2;
}
#else
- FindCameraObject()->data[1] = 2;
+ FindCameraSprite()->sState = 2;
#endif // UBFIX
}
@@ -2545,14 +2559,14 @@ movement_type_def(MovementType_WanderAround, gMovementTypeFuncs_WanderAround)
bool8 MovementType_WanderAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_WanderAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -2562,8 +2576,8 @@ bool8 MovementType_WanderAround_Step2(struct ObjectEvent *objectEvent, struct Sp
{
return FALSE;
}
- SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]);
- sprite->data[1] = 3;
+ SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]);
+ sprite->sTypeFuncId = 3;
return TRUE;
}
@@ -2571,7 +2585,7 @@ bool8 MovementType_WanderAround_Step3(struct ObjectEvent *objectEvent, struct Sp
{
if (WaitForMovementDelay(sprite))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -2585,9 +2599,9 @@ bool8 MovementType_WanderAround_Step4(struct ObjectEvent *objectEvent, struct Sp
memcpy(directions, gStandardDirections, sizeof directions);
chosenDirection = directions[Random() & 3];
SetObjectEventDirection(objectEvent, chosenDirection);
- sprite->data[1] = 5;
+ sprite->sTypeFuncId = 5;
if (GetCollisionInDirection(objectEvent, chosenDirection))
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -2596,7 +2610,7 @@ bool8 MovementType_WanderAround_Step5(struct ObjectEvent *objectEvent, struct Sp
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(objectEvent->movementDirection));
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 6;
+ sprite->sTypeFuncId = 6;
return TRUE;
}
@@ -2605,7 +2619,7 @@ bool8 MovementType_WanderAround_Step6(struct ObjectEvent *objectEvent, struct Sp
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
}
return FALSE;
}
@@ -2651,17 +2665,13 @@ u8 GetVectorDirection(s16 dx, s16 dy, s16 absdx, s16 absdy)
{
direction = DIR_EAST;
if (dx < 0)
- {
direction = DIR_WEST;
- }
}
else
{
direction = DIR_SOUTH;
if (dy < 0)
- {
direction = DIR_NORTH;
- }
}
return direction;
}
@@ -2672,9 +2682,7 @@ u8 GetLimitedVectorDirection_SouthNorth(s16 dx, s16 dy, s16 absdx, s16 absdy)
direction = DIR_SOUTH;
if (dy < 0)
- {
direction = DIR_NORTH;
- }
return direction;
}
@@ -2684,9 +2692,7 @@ u8 GetLimitedVectorDirection_WestEast(s16 dx, s16 dy, s16 absdx, s16 absdy)
direction = DIR_EAST;
if (dx < 0)
- {
direction = DIR_WEST;
- }
return direction;
}
@@ -2699,17 +2705,13 @@ u8 GetLimitedVectorDirection_WestNorth(s16 dx, s16 dy, s16 absdx, s16 absdy)
{
direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy);
if (direction == DIR_EAST)
- {
direction = DIR_NORTH;
- }
}
else if (direction == DIR_EAST)
{
direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy);
if (direction == DIR_SOUTH)
- {
direction = DIR_NORTH;
- }
}
return direction;
}
@@ -2723,17 +2725,13 @@ u8 GetLimitedVectorDirection_EastNorth(s16 dx, s16 dy, s16 absdx, s16 absdy)
{
direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy);
if (direction == DIR_WEST)
- {
direction = DIR_NORTH;
- }
}
else if (direction == DIR_WEST)
{
direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy);
if (direction == DIR_SOUTH)
- {
direction = DIR_NORTH;
- }
}
return direction;
}
@@ -2747,17 +2745,13 @@ u8 GetLimitedVectorDirection_WestSouth(s16 dx, s16 dy, s16 absdx, s16 absdy)
{
direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy);
if (direction == DIR_EAST)
- {
direction = DIR_SOUTH;
- }
}
else if (direction == DIR_EAST)
{
direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy);
if (direction == DIR_NORTH)
- {
direction = DIR_SOUTH;
- }
}
return direction;
}
@@ -2771,17 +2765,13 @@ u8 GetLimitedVectorDirection_EastSouth(s16 dx, s16 dy, s16 absdx, s16 absdy)
{
direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy);
if (direction == DIR_WEST)
- {
direction = DIR_SOUTH;
- }
}
else if (direction == DIR_WEST)
{
direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy);
if (direction == DIR_NORTH)
- {
direction = DIR_SOUTH;
- }
}
return direction;
}
@@ -2792,9 +2782,7 @@ u8 GetLimitedVectorDirection_SouthNorthWest(s16 dx, s16 dy, s16 absdx, s16 absdy
direction = GetVectorDirection(dx, dy, absdx, absdy);
if (direction == DIR_EAST)
- {
direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy);
- }
return direction;
}
@@ -2804,9 +2792,7 @@ u8 GetLimitedVectorDirection_SouthNorthEast(s16 dx, s16 dy, s16 absdx, s16 absdy
direction = GetVectorDirection(dx, dy, absdx, absdy);
if (direction == DIR_WEST)
- {
direction = GetLimitedVectorDirection_SouthNorth(dx, dy, absdx, absdy);
- }
return direction;
}
@@ -2816,9 +2802,7 @@ u8 GetLimitedVectorDirection_NorthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy)
direction = GetVectorDirection(dx, dy, absdx, absdy);
if (direction == DIR_SOUTH)
- {
direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy);
- }
return direction;
}
@@ -2828,9 +2812,7 @@ u8 GetLimitedVectorDirection_SouthWestEast(s16 dx, s16 dy, s16 absdx, s16 absdy)
direction = GetVectorDirection(dx, dy, absdx, absdy);
if (direction == DIR_NORTH)
- {
direction = GetLimitedVectorDirection_WestEast(dx, dy, absdx, absdy);
- }
return direction;
}
@@ -2840,22 +2822,19 @@ u8 TryGetTrainerEncounterDirection(struct ObjectEvent *objectEvent, u8 movementT
s16 absdx, absdy;
if (!ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
- {
- return 0;
- }
+ return DIR_NONE;
+
PlayerGetDestCoords(&dx, &dy);
dx -= objectEvent->currentCoords.x;
dy -= objectEvent->currentCoords.y;
absdx = dx;
absdy = dy;
+
if (absdx < 0)
- {
absdx = -absdx;
- }
if (absdy < 0)
- {
absdy = -absdy;
- }
+
return gGetVectorDirectionFuncs[movementType](dx, dy, absdx, absdy);
}
@@ -2864,14 +2843,14 @@ movement_type_def(MovementType_LookAround, gMovementTypeFuncs_LookAround)
bool8 MovementType_LookAround_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_LookAround_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -2879,9 +2858,9 @@ bool8 MovementType_LookAround_Step2(struct ObjectEvent *objectEvent, struct Spri
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -2890,7 +2869,7 @@ bool8 MovementType_LookAround_Step3(struct ObjectEvent *objectEvent, struct Spri
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -2906,7 +2885,7 @@ bool8 MovementType_LookAround_Step4(struct ObjectEvent *objectEvent, struct Spri
direction = directions[Random() & 3];
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -2915,25 +2894,24 @@ movement_type_def(MovementType_WanderUpAndDown, gMovementTypeFuncs_WanderUpAndDo
bool8 MovementType_WanderUpAndDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_WanderUpAndDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
bool8 MovementType_WanderUpAndDown_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (!ObjectEventExecSingleMovementAction(objectEvent, sprite))
- {
return FALSE;
- }
- SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]);
- sprite->data[1] = 3;
+
+ SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]);
+ sprite->sTypeFuncId = 3;
return TRUE;
}
@@ -2941,7 +2919,7 @@ bool8 MovementType_WanderUpAndDown_Step3(struct ObjectEvent *objectEvent, struct
{
if (WaitForMovementDelay(sprite))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -2954,9 +2932,9 @@ bool8 MovementType_WanderUpAndDown_Step4(struct ObjectEvent *objectEvent, struct
memcpy(directions, gUpAndDownDirections, sizeof directions);
direction = directions[Random() & 1];
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 5;
+ sprite->sTypeFuncId = 5;
if (GetCollisionInDirection(objectEvent, direction))
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -2965,7 +2943,7 @@ bool8 MovementType_WanderUpAndDown_Step5(struct ObjectEvent *objectEvent, struct
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(objectEvent->movementDirection));
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 6;
+ sprite->sTypeFuncId = 6;
return TRUE;
}
@@ -2974,7 +2952,7 @@ bool8 MovementType_WanderUpAndDown_Step6(struct ObjectEvent *objectEvent, struct
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
}
return FALSE;
}
@@ -2984,25 +2962,24 @@ movement_type_def(MovementType_WanderLeftAndRight, gMovementTypeFuncs_WanderLeft
bool8 MovementType_WanderLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_WanderLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
bool8 MovementType_WanderLeftAndRight_Step2(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (!ObjectEventExecSingleMovementAction(objectEvent, sprite))
- {
return FALSE;
- }
- SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]);
- sprite->data[1] = 3;
+
+ SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]);
+ sprite->sTypeFuncId = 3;
return TRUE;
}
@@ -3010,7 +2987,7 @@ bool8 MovementType_WanderLeftAndRight_Step3(struct ObjectEvent *objectEvent, str
{
if (WaitForMovementDelay(sprite))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3023,9 +3000,9 @@ bool8 MovementType_WanderLeftAndRight_Step4(struct ObjectEvent *objectEvent, str
memcpy(directions, gLeftAndRightDirections, sizeof directions);
direction = directions[Random() & 1];
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 5;
+ sprite->sTypeFuncId = 5;
if (GetCollisionInDirection(objectEvent, direction))
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3034,7 +3011,7 @@ bool8 MovementType_WanderLeftAndRight_Step5(struct ObjectEvent *objectEvent, str
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkNormalMovementAction(objectEvent->movementDirection));
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 6;
+ sprite->sTypeFuncId = 6;
return TRUE;
}
@@ -3043,7 +3020,7 @@ bool8 MovementType_WanderLeftAndRight_Step6(struct ObjectEvent *objectEvent, str
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
}
return FALSE;
}
@@ -3054,7 +3031,7 @@ bool8 MovementType_FaceDirection_Step0(struct ObjectEvent *objectEvent, struct S
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3062,7 +3039,7 @@ bool8 MovementType_FaceDirection_Step1(struct ObjectEvent *objectEvent, struct S
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
return FALSE;
@@ -3085,8 +3062,6 @@ enum {
BERRYTREEFUNC_SPARKLE_END,
};
-#define sObjEventId data[0]
-#define sFuncId data[1]
#define sTimer data[2]
#define sBerryTreeFlags data[7]
@@ -3108,7 +3083,7 @@ void MovementType_BerryTreeGrowth(struct Sprite *sprite)
}
static bool8 ObjectEventCB2_BerryTree(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return gMovementTypeFuncs_BerryTreeGrowth[sprite->sFuncId](objectEvent, sprite);
+ return gMovementTypeFuncs_BerryTreeGrowth[sprite->sTypeFuncId](objectEvent, sprite);
}
// BERRYTREEFUNC_NORMAL
@@ -3137,12 +3112,12 @@ bool8 MovementType_BerryTreeGrowth_Normal(struct ObjectEvent *objectEvent, struc
berryStage--;
if (sprite->animNum != berryStage)
{
- sprite->sFuncId = BERRYTREEFUNC_SPARKLE_START;
+ sprite->sTypeFuncId = BERRYTREEFUNC_SPARKLE_START;
return TRUE;
}
SetBerryTreeGraphics(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, MOVEMENT_ACTION_START_ANIM_IN_DIRECTION);
- sprite->sFuncId = BERRYTREEFUNC_MOVE;
+ sprite->sTypeFuncId = BERRYTREEFUNC_MOVE;
return TRUE;
}
@@ -3151,7 +3126,7 @@ bool8 MovementType_BerryTreeGrowth_Move(struct ObjectEvent *objectEvent, struct
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- sprite->sFuncId = BERRYTREEFUNC_NORMAL;
+ sprite->sTypeFuncId = BERRYTREEFUNC_NORMAL;
return TRUE;
}
return FALSE;
@@ -3161,7 +3136,7 @@ bool8 MovementType_BerryTreeGrowth_Move(struct ObjectEvent *objectEvent, struct
bool8 MovementType_BerryTreeGrowth_SparkleStart(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->singleMovementActive = TRUE;
- sprite->sFuncId = BERRYTREEFUNC_SPARKLE;
+ sprite->sTypeFuncId = BERRYTREEFUNC_SPARKLE;
sprite->sTimer = 0;
sprite->sBerryTreeFlags |= BERRY_FLAG_SPARKLING;
gFieldEffectArguments[0] = objectEvent->currentCoords.x;
@@ -3181,7 +3156,7 @@ bool8 MovementType_BerryTreeGrowth_Sparkle(struct ObjectEvent *objectEvent, stru
if (sprite->sTimer > 64)
{
SetBerryTreeGraphics(objectEvent, sprite);
- sprite->sFuncId = BERRYTREEFUNC_SPARKLE_END;
+ sprite->sTypeFuncId = BERRYTREEFUNC_SPARKLE_END;
sprite->sTimer = 0;
return TRUE;
}
@@ -3196,7 +3171,7 @@ bool8 MovementType_BerryTreeGrowth_SparkleEnd(struct ObjectEvent *objectEvent, s
sprite->animPaused = TRUE;
if (sprite->sTimer > 64)
{
- sprite->sFuncId = BERRYTREEFUNC_NORMAL;
+ sprite->sTypeFuncId = BERRYTREEFUNC_NORMAL;
sprite->sBerryTreeFlags &= ~BERRY_FLAG_SPARKLING;
return TRUE;
}
@@ -3208,14 +3183,14 @@ movement_type_def(MovementType_FaceDownAndUp, gMovementTypeFuncs_FaceDownAndUp)
bool8 MovementType_FaceDownAndUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceDownAndUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3223,9 +3198,9 @@ bool8 MovementType_FaceDownAndUp_Step2(struct ObjectEvent *objectEvent, struct S
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3234,7 +3209,7 @@ bool8 MovementType_FaceDownAndUp_Step3(struct ObjectEvent *objectEvent, struct S
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3251,7 +3226,7 @@ bool8 MovementType_FaceDownAndUp_Step4(struct ObjectEvent *objectEvent, struct S
direction = directions[Random() & 1];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3260,14 +3235,14 @@ movement_type_def(MovementType_FaceLeftAndRight, gMovementTypeFuncs_FaceLeftAndR
bool8 MovementType_FaceLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3275,9 +3250,9 @@ bool8 MovementType_FaceLeftAndRight_Step2(struct ObjectEvent *objectEvent, struc
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysMedium[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysMedium[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3286,7 +3261,7 @@ bool8 MovementType_FaceLeftAndRight_Step3(struct ObjectEvent *objectEvent, struc
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3303,7 +3278,7 @@ bool8 MovementType_FaceLeftAndRight_Step4(struct ObjectEvent *objectEvent, struc
direction = directions[Random() & 1];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3312,14 +3287,14 @@ movement_type_def(MovementType_FaceUpAndLeft, gMovementTypeFuncs_FaceUpAndLeft)
bool8 MovementType_FaceUpAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceUpAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3327,9 +3302,9 @@ bool8 MovementType_FaceUpAndLeft_Step2(struct ObjectEvent *objectEvent, struct S
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3338,7 +3313,7 @@ bool8 MovementType_FaceUpAndLeft_Step3(struct ObjectEvent *objectEvent, struct S
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3355,7 +3330,7 @@ bool8 MovementType_FaceUpAndLeft_Step4(struct ObjectEvent *objectEvent, struct S
direction = directions[Random() & 1];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3364,14 +3339,14 @@ movement_type_def(MovementType_FaceUpAndRight, gMovementTypeFuncs_FaceUpAndRight
bool8 MovementType_FaceUpAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceUpAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3379,9 +3354,9 @@ bool8 MovementType_FaceUpAndRight_Step2(struct ObjectEvent *objectEvent, struct
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3390,7 +3365,7 @@ bool8 MovementType_FaceUpAndRight_Step3(struct ObjectEvent *objectEvent, struct
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3407,7 +3382,7 @@ bool8 MovementType_FaceUpAndRight_Step4(struct ObjectEvent *objectEvent, struct
direction = directions[Random() & 1];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3416,14 +3391,14 @@ movement_type_def(MovementType_FaceDownAndLeft, gMovementTypeFuncs_FaceDownAndLe
bool8 MovementType_FaceDownAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceDownAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3431,9 +3406,9 @@ bool8 MovementType_FaceDownAndLeft_Step2(struct ObjectEvent *objectEvent, struct
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3442,7 +3417,7 @@ bool8 MovementType_FaceDownAndLeft_Step3(struct ObjectEvent *objectEvent, struct
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3459,7 +3434,7 @@ bool8 MovementType_FaceDownAndLeft_Step4(struct ObjectEvent *objectEvent, struct
direction = directions[Random() & 1];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3468,14 +3443,14 @@ movement_type_def(MovementType_FaceDownAndRight, gMovementTypeFuncs_FaceDownAndR
bool8 MovementType_FaceDownAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceDownAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3483,9 +3458,9 @@ bool8 MovementType_FaceDownAndRight_Step2(struct ObjectEvent *objectEvent, struc
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3494,7 +3469,7 @@ bool8 MovementType_FaceDownAndRight_Step3(struct ObjectEvent *objectEvent, struc
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3511,7 +3486,7 @@ bool8 MovementType_FaceDownAndRight_Step4(struct ObjectEvent *objectEvent, struc
direction = directions[Random() & 1];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3520,14 +3495,14 @@ movement_type_def(MovementType_FaceDownUpAndLeft, gMovementTypeFuncs_FaceDownUpA
bool8 MovementType_FaceDownUpAndLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceDownUpAndLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3535,9 +3510,9 @@ bool8 MovementType_FaceDownUpAndLeft_Step2(struct ObjectEvent *objectEvent, stru
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3546,7 +3521,7 @@ bool8 MovementType_FaceDownUpAndLeft_Step3(struct ObjectEvent *objectEvent, stru
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3563,7 +3538,7 @@ bool8 MovementType_FaceDownUpAndLeft_Step4(struct ObjectEvent *objectEvent, stru
direction = directions[Random() & 3];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3572,14 +3547,14 @@ movement_type_def(MovementType_FaceDownUpAndRight, gMovementTypeFuncs_FaceDownUp
bool8 MovementType_FaceDownUpAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceDownUpAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3587,9 +3562,9 @@ bool8 MovementType_FaceDownUpAndRight_Step2(struct ObjectEvent *objectEvent, str
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3598,7 +3573,7 @@ bool8 MovementType_FaceDownUpAndRight_Step3(struct ObjectEvent *objectEvent, str
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3615,7 +3590,7 @@ bool8 MovementType_FaceDownUpAndRight_Step4(struct ObjectEvent *objectEvent, str
direction = directions[Random() & 3];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3624,14 +3599,14 @@ movement_type_def(MovementType_FaceUpRightAndLeft, gMovementTypeFuncs_FaceUpLeft
bool8 MovementType_FaceUpLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceUpLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3639,9 +3614,9 @@ bool8 MovementType_FaceUpLeftAndRight_Step2(struct ObjectEvent *objectEvent, str
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3650,7 +3625,7 @@ bool8 MovementType_FaceUpLeftAndRight_Step3(struct ObjectEvent *objectEvent, str
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3667,7 +3642,7 @@ bool8 MovementType_FaceUpLeftAndRight_Step4(struct ObjectEvent *objectEvent, str
direction = directions[Random() & 3];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3676,14 +3651,14 @@ movement_type_def(MovementType_FaceDownRightAndLeft, gMovementTypeFuncs_FaceDown
bool8 MovementType_FaceDownLeftAndRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_FaceDownLeftAndRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3691,9 +3666,9 @@ bool8 MovementType_FaceDownLeftAndRight_Step2(struct ObjectEvent *objectEvent, s
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- SetMovementDelay(sprite, gMovementDelaysShort[Random() & 3]);
+ SetMovementDelay(sprite, sMovementDelaysShort[Random() & 3]);
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3702,7 +3677,7 @@ bool8 MovementType_FaceDownLeftAndRight_Step3(struct ObjectEvent *objectEvent, s
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 4;
+ sprite->sTypeFuncId = 4;
return TRUE;
}
return FALSE;
@@ -3719,7 +3694,7 @@ bool8 MovementType_FaceDownLeftAndRight_Step4(struct ObjectEvent *objectEvent, s
direction = directions[Random() & 3];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3729,7 +3704,7 @@ bool8 MovementType_RotateCounterclockwise_Step0(struct ObjectEvent *objectEvent,
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3738,7 +3713,7 @@ bool8 MovementType_RotateCounterclockwise_Step1(struct ObjectEvent *objectEvent,
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
SetMovementDelay(sprite, 48);
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
}
return FALSE;
}
@@ -3747,7 +3722,7 @@ bool8 MovementType_RotateCounterclockwise_Step2(struct ObjectEvent *objectEvent,
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3763,7 +3738,7 @@ bool8 MovementType_RotateCounterclockwise_Step3(struct ObjectEvent *objectEvent,
direction = directions[objectEvent->facingDirection];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 0;
+ sprite->sTypeFuncId = 0;
return TRUE;
}
@@ -3773,7 +3748,7 @@ bool8 MovementType_RotateClockwise_Step0(struct ObjectEvent *objectEvent, struct
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3782,7 +3757,7 @@ bool8 MovementType_RotateClockwise_Step1(struct ObjectEvent *objectEvent, struct
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
SetMovementDelay(sprite, 48);
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
}
return FALSE;
}
@@ -3791,7 +3766,7 @@ bool8 MovementType_RotateClockwise_Step2(struct ObjectEvent *objectEvent, struct
{
if (WaitForMovementDelay(sprite) || ObjectEventIsTrainerAndCloseToPlayer(objectEvent))
{
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
}
return FALSE;
}
@@ -3807,7 +3782,7 @@ bool8 MovementType_RotateClockwise_Step3(struct ObjectEvent *objectEvent, struct
direction = directions[objectEvent->facingDirection];
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 0;
+ sprite->sTypeFuncId = 0;
return TRUE;
}
@@ -3816,7 +3791,7 @@ movement_type_def(MovementType_WalkBackAndForth, gMovementTypeFuncs_WalkBackAndF
bool8 MovementType_WalkBackAndForth_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3830,7 +3805,7 @@ bool8 MovementType_WalkBackAndForth_Step1(struct ObjectEvent *objectEvent, struc
direction = GetOppositeDirection(direction);
}
SetObjectEventDirection(objectEvent, direction);
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3859,7 +3834,7 @@ bool8 MovementType_WalkBackAndForth_Step2(struct ObjectEvent *objectEvent, struc
ObjectEventSetSingleMovement(objectEvent, sprite, movementActionId);
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 3;
+ sprite->sTypeFuncId = 3;
return TRUE;
}
@@ -3868,7 +3843,7 @@ bool8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *objectEvent, struc
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
}
return FALSE;
}
@@ -3876,7 +3851,7 @@ bool8 MovementType_WalkBackAndForth_Step3(struct ObjectEvent *objectEvent, struc
bool8 MovementType_WalkSequence_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
ClearObjectEventMovement(objectEvent, sprite);
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -3904,7 +3879,7 @@ bool8 MoveNextDirectionInSequence(struct ObjectEvent *objectEvent, struct Sprite
ObjectEventSetSingleMovement(objectEvent, sprite, movementActionId);
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -3913,7 +3888,7 @@ bool8 MovementType_WalkSequence_Step2(struct ObjectEvent *objectEvent, struct Sp
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
}
return FALSE;
}
@@ -4239,7 +4214,7 @@ bool8 MovementType_CopyPlayer_Step0(struct ObjectEvent *objectEvent, struct Spri
{
objectEvent->directionSequenceIndex = GetPlayerFacingDirection();
}
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -4257,7 +4232,7 @@ bool8 MovementType_CopyPlayer_Step2(struct ObjectEvent *objectEvent, struct Spri
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
objectEvent->singleMovementActive = FALSE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
}
return FALSE;
}
@@ -4271,7 +4246,7 @@ bool8 CopyablePlayerMovement_FaceDirection(struct ObjectEvent *objectEvent, stru
{
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, playerDirection)));
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4292,7 +4267,7 @@ bool8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *objectEvent, struct Sp
ObjectEventMoveDestCoords(objectEvent, direction, &x, &y);
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
}
@@ -4307,7 +4282,7 @@ bool8 CopyablePlayerMovement_GoSpeed0(struct ObjectEvent *objectEvent, struct Sp
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
}
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4326,7 +4301,7 @@ bool8 CopyablePlayerMovement_GoSpeed1(struct ObjectEvent *objectEvent, struct Sp
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
}
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4345,7 +4320,7 @@ bool8 CopyablePlayerMovement_GoSpeed2(struct ObjectEvent *objectEvent, struct Sp
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
}
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4364,7 +4339,7 @@ bool8 CopyablePlayerMovement_Slide(struct ObjectEvent *objectEvent, struct Sprit
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
}
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4376,7 +4351,7 @@ bool8 cph_IM_DIFFERENT(struct ObjectEvent *objectEvent, struct Sprite *sprite, u
direction = state_to_direction(gInitialMovementTypeFacingDirections[objectEvent->movementType], objectEvent->directionSequenceIndex, direction);
ObjectEventSetSingleMovement(objectEvent, sprite, GetJumpInPlaceMovementAction(direction));
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4395,7 +4370,7 @@ bool8 CopyablePlayerMovement_GoSpeed4(struct ObjectEvent *objectEvent, struct Sp
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
}
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4416,7 +4391,7 @@ bool8 CopyablePlayerMovement_Jump(struct ObjectEvent *objectEvent, struct Sprite
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(direction));
}
objectEvent->singleMovementActive = TRUE;
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
@@ -4424,10 +4399,9 @@ movement_type_def(MovementType_CopyPlayerInGrass, gMovementTypeFuncs_CopyPlayerI
bool8 MovementType_CopyPlayerInGrass_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == 0xFF || gPlayerAvatar.tileTransitionState == T_TILE_CENTER)
- {
+ if (gObjectEvents[gPlayerAvatar.objectEventId].movementActionId == MOVEMENT_ACTION_NONE || gPlayerAvatar.tileTransitionState == T_TILE_CENTER)
return FALSE;
- }
+
return gCopyPlayerMovementFuncs[PlayerGetCopyableMovement()](objectEvent, sprite, GetPlayerMovementDirection(), MetatileBehavior_IsPokeGrass);
}
@@ -4435,7 +4409,7 @@ void MovementType_TreeDisguise(struct Sprite *sprite)
{
struct ObjectEvent *objectEvent;
- objectEvent = &gObjectEvents[sprite->data[0]];
+ objectEvent = &gObjectEvents[sprite->sObjEventId];
if (objectEvent->directionSequenceIndex == 0 || (objectEvent->directionSequenceIndex == 1 && !sprite->data[7]))
{
ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
@@ -4443,7 +4417,7 @@ void MovementType_TreeDisguise(struct Sprite *sprite)
objectEvent->directionSequenceIndex = 1;
sprite->data[7]++;
}
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, MovementType_Disguise_Callback);
}
static bool8 MovementType_Disguise_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
@@ -4456,7 +4430,7 @@ void MovementType_MountainDisguise(struct Sprite *sprite)
{
struct ObjectEvent *objectEvent;
- objectEvent = &gObjectEvents[sprite->data[0]];
+ objectEvent = &gObjectEvents[sprite->sObjEventId];
if (objectEvent->directionSequenceIndex == 0 || (objectEvent->directionSequenceIndex == 1 && !sprite->data[7]))
{
ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
@@ -4464,24 +4438,24 @@ void MovementType_MountainDisguise(struct Sprite *sprite)
objectEvent->directionSequenceIndex = 1;
sprite->data[7]++;
}
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Disguise_Callback);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, MovementType_Disguise_Callback);
}
void MovementType_Buried(struct Sprite *sprite)
{
if (!sprite->data[7])
{
- gObjectEvents[sprite->data[0]].fixedPriority = TRUE;
+ gObjectEvents[sprite->sObjEventId].fixedPriority = TRUE;
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
sprite->oam.priority = 3;
sprite->data[7]++;
}
- UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->data[0]], sprite, MovementType_Buried_Callback);
+ UpdateObjectEventCurrentMovement(&gObjectEvents[sprite->sObjEventId], sprite, MovementType_Buried_Callback);
}
static bool8 MovementType_Buried_Callback(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return gMovementTypeFuncs_Buried[sprite->data[1]](objectEvent, sprite);
+ return gMovementTypeFuncs_Buried[sprite->sTypeFuncId](objectEvent, sprite);
}
bool8 MovementType_Buried_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
@@ -4494,7 +4468,7 @@ bool8 MovementType_MoveInPlace_Step1(struct ObjectEvent *objectEvent, struct Spr
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- sprite->data[1] = 0;
+ sprite->sTypeFuncId = 0;
}
return FALSE;
}
@@ -4505,7 +4479,7 @@ bool8 MovementType_WalkInPlace_Step0(struct ObjectEvent *objectEvent, struct Spr
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceNormalMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -4515,7 +4489,7 @@ bool8 MovementType_WalkSlowlyInPlace_Step0(struct ObjectEvent *objectEvent, stru
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceSlowMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -4525,7 +4499,7 @@ bool8 MovementType_JogInPlace_Step0(struct ObjectEvent *objectEvent, struct Spri
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -4535,7 +4509,7 @@ bool8 MovementType_RunInPlace_Step0(struct ObjectEvent *objectEvent, struct Spri
{
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetWalkInPlaceFastestMovementAction(objectEvent->facingDirection));
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
@@ -4546,14 +4520,14 @@ bool8 MovementType_Invisible_Step0(struct ObjectEvent *objectEvent, struct Sprit
ClearObjectEventMovement(objectEvent, sprite);
ObjectEventSetSingleMovement(objectEvent, sprite, GetFaceDirectionMovementAction(objectEvent->facingDirection));
objectEvent->invisible = TRUE;
- sprite->data[1] = 1;
+ sprite->sTypeFuncId = 1;
return TRUE;
}
bool8 MovementType_Invisible_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (ObjectEventExecSingleMovementAction(objectEvent, sprite))
{
- sprite->data[1] = 2;
+ sprite->sTypeFuncId = 2;
return TRUE;
}
return FALSE;
@@ -4571,159 +4545,147 @@ static void ClearObjectEventMovement(struct ObjectEvent *objectEvent, struct Spr
objectEvent->heldMovementActive = FALSE;
objectEvent->heldMovementFinished = FALSE;
objectEvent->movementActionId = 0xFF;
- sprite->data[1] = 0;
+ sprite->sTypeFuncId = 0;
}
u8 GetFaceDirectionAnimNum(u8 direction)
{
- return gFaceDirectionAnimNums[direction];
+ return sFaceDirectionAnimNums[direction];
}
u8 GetMoveDirectionAnimNum(u8 direction)
{
- return gMoveDirectionAnimNums[direction];
+ return sMoveDirectionAnimNums[direction];
}
u8 GetMoveDirectionFastAnimNum(u8 direction)
{
- return gMoveDirectionFastAnimNums[direction];
+ return sMoveDirectionFastAnimNums[direction];
}
u8 GetMoveDirectionFasterAnimNum(u8 direction)
{
- return gMoveDirectionFasterAnimNums[direction];
+ return sMoveDirectionFasterAnimNums[direction];
}
u8 GetMoveDirectionFastestAnimNum(u8 direction)
{
- return gMoveDirectionFastestAnimNums[direction];
+ return sMoveDirectionFastestAnimNums[direction];
}
u8 GetJumpSpecialDirectionAnimNum(u8 direction)
{
- return gJumpSpecialDirectionAnimNums[direction];
+ return sJumpSpecialDirectionAnimNums[direction];
}
u8 GetAcroWheelieDirectionAnimNum(u8 direction)
{
- return gAcroWheelieDirectionAnimNums[direction];
+ return sAcroWheelieDirectionAnimNums[direction];
}
-u8 Unref_GetAnimNums_08375633(u8 direction)
+u8 GetAcroUnusedDirectionAnimNum(u8 direction)
{
- return gUnrefAnimNums_08375633[direction];
+ return sAcroUnusedDirectionAnimNums[direction];
}
u8 GetAcroEndWheelieDirectionAnimNum(u8 direction)
{
- return gAcroEndWheelieDirectionAnimNums[direction];
+ return sAcroEndWheelieDirectionAnimNums[direction];
}
u8 GetAcroUnusedActionDirectionAnimNum(u8 direction)
{
- return gAcroUnusedActionDirectionAnimNums[direction];
+ return sAcroUnusedActionDirectionAnimNums[direction];
}
u8 GetAcroWheeliePedalDirectionAnimNum(u8 direction)
{
- return gAcroWheeliePedalDirectionAnimNums[direction];
+ return sAcroWheeliePedalDirectionAnimNums[direction];
}
u8 GetFishingDirectionAnimNum(u8 direction)
{
- return gFishingDirectionAnimNums[direction];
+ return sFishingDirectionAnimNums[direction];
}
u8 GetFishingNoCatchDirectionAnimNum(u8 direction)
{
- return gFishingNoCatchDirectionAnimNums[direction];
+ return sFishingNoCatchDirectionAnimNums[direction];
}
u8 GetFishingBiteDirectionAnimNum(u8 direction)
{
- return gFishingBiteDirectionAnimNums[direction];
+ return sFishingBiteDirectionAnimNums[direction];
}
u8 GetRunningDirectionAnimNum(u8 direction)
{
- return gRunningDirectionAnimNums[direction];
+ return sRunningDirectionAnimNums[direction];
}
-static const struct UnkStruct_085094AC *sub_8092A4C(const union AnimCmd *const *anims)
+static const struct StepAnimTable *GetStepAnimTable(const union AnimCmd *const *anims)
{
- const struct UnkStruct_085094AC *retval;
+ const struct StepAnimTable *stepTable;
- for (retval = gUnknown_085094AC; retval->anims != NULL; retval++)
+ for (stepTable = sStepAnimTables; stepTable->anims != NULL; stepTable++)
{
- if (retval->anims == anims)
- {
- return retval;
- }
+ if (stepTable->anims == anims)
+ return stepTable;
}
return NULL;
}
-void npc_apply_anim_looping(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum)
+void SetStepAnimHandleAlternation(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum)
{
- const struct UnkStruct_085094AC *unk85094AC;
+ const struct StepAnimTable *stepTable;
if (!objectEvent->inanimate)
{
sprite->animNum = animNum;
- unk85094AC = sub_8092A4C(sprite->anims);
- if (unk85094AC != NULL)
+ stepTable = GetStepAnimTable(sprite->anims);
+ if (stepTable != NULL)
{
- if (sprite->animCmdIndex == unk85094AC->animPos[0])
- {
- sprite->animCmdIndex = unk85094AC->animPos[3];
- }
- else if (sprite->animCmdIndex == unk85094AC->animPos[1])
- {
- sprite->animCmdIndex = unk85094AC->animPos[2];
- }
+ if (sprite->animCmdIndex == stepTable->animPos[0])
+ sprite->animCmdIndex = stepTable->animPos[3];
+ else if (sprite->animCmdIndex == stepTable->animPos[1])
+ sprite->animCmdIndex = stepTable->animPos[2];
}
SeekSpriteAnim(sprite, sprite->animCmdIndex);
}
}
-void obj_npc_animation_step(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum)
+void SetStepAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animNum)
{
- const struct UnkStruct_085094AC *unk85094AC;
+ const struct StepAnimTable *stepTable;
if (!objectEvent->inanimate)
{
u8 animPos;
sprite->animNum = animNum;
- unk85094AC = sub_8092A4C(sprite->anims);
- if (unk85094AC != NULL)
+ stepTable = GetStepAnimTable(sprite->anims);
+ if (stepTable != NULL)
{
- animPos = unk85094AC->animPos[1];
- if (sprite->animCmdIndex <= unk85094AC->animPos[0])
- {
- animPos = unk85094AC->animPos[0];
- }
+ animPos = stepTable->animPos[1];
+ if (sprite->animCmdIndex <= stepTable->animPos[0])
+ animPos = stepTable->animPos[0];
+
SeekSpriteAnim(sprite, animPos);
}
}
}
-// file boundary?
-
-u8 GetDirectionToFace(s16 x1, s16 y1, s16 x2, s16 y2)
+u8 GetDirectionToFace(s16 x, s16 y, s16 targetX, s16 targetY)
{
- if (x1 > x2)
- {
+ if (x > targetX)
return DIR_WEST;
- }
- if (x1 < x2)
- {
+
+ if (x < targetX)
return DIR_EAST;
- }
- if (y1 > y2)
- {
+
+ if (y > targetY)
return DIR_NORTH;
- }
+
return DIR_SOUTH;
}
@@ -4733,7 +4695,7 @@ void SetTrainerMovementType(struct ObjectEvent *objectEvent, u8 movementType)
objectEvent->directionSequenceIndex = 0;
objectEvent->playerCopyableMovement = 0;
gSprites[objectEvent->spriteId].callback = sMovementTypeCallbacks[movementType];
- gSprites[objectEvent->spriteId].data[1] = 0;
+ gSprites[objectEvent->spriteId].sTypeFuncId = 0;
}
u8 GetTrainerFacingDirectionMovementType(u8 direction)
@@ -4743,10 +4705,8 @@ u8 GetTrainerFacingDirectionMovementType(u8 direction)
static u8 GetCollisionInDirection(struct ObjectEvent *objectEvent, u8 direction)
{
- s16 x;
- s16 y;
- x = objectEvent->currentCoords.x;
- y = objectEvent->currentCoords.y;
+ s16 x = objectEvent->currentCoords.x;
+ s16 y = objectEvent->currentCoords.y;
MoveCoords(direction, &x, &y);
return GetCollisionAtCoords(objectEvent, x, y, direction);
}
@@ -4793,19 +4753,17 @@ static bool8 IsCoordOutsideObjectEventMovementRange(struct ObjectEvent *objectEv
{
left = objectEvent->initialCoords.x - objectEvent->rangeX;
right = objectEvent->initialCoords.x + objectEvent->rangeX;
+
if (left > x || right < x)
- {
return TRUE;
- }
}
if (objectEvent->rangeY != 0)
{
top = objectEvent->initialCoords.y - objectEvent->rangeY;
bottom = objectEvent->initialCoords.y + objectEvent->rangeY;
+
if (top > y || bottom < y)
- {
return TRUE;
- }
}
return FALSE;
}
@@ -4865,13 +4823,17 @@ void SetBerryTreeJustPicked(u8 localId, u8 mapNum, u8 mapGroup)
}
}
+#undef sTimer
+#undef sBerryTreeFlags
+
void MoveCoords(u8 direction, s16 *x, s16 *y)
{
*x += sDirectionToVectors[direction].x;
*y += sDirectionToVectors[direction].y;
}
-void sub_8092F60(u8 direction, s16 *x, s16 *y)
+// Unused
+static void MoveCoordsInMapCoordIncrement(u8 direction, s16 *x, s16 *y)
{
*x += sDirectionToVectors[direction].x << 4;
*y += sDirectionToVectors[direction].y << 4;
@@ -4892,7 +4854,7 @@ static void MoveCoordsInDirection(u32 dir, s16 *x, s16 *y, s16 deltaX, s16 delta
*y -= dy2;
}
-void sub_8092FF0(s16 x, s16 y, s16 *destX, s16 *destY)
+void GetMapCoordsFromSpritePos(s16 x, s16 y, s16 *destX, s16 *destY)
{
*destX = (x - gSaveBlock1Ptr->pos.x) << 4;
*destY = (y - gSaveBlock1Ptr->pos.y) << 4;
@@ -4931,22 +4893,18 @@ static void GetObjectEventMovingCameraOffset(s16 *x, s16 *y)
{
*x = 0;
*y = 0;
+
if (gFieldCamera.x > 0)
- {
(*x)++;
- }
+
if (gFieldCamera.x < 0)
- {
- (*x) --;
- }
+ (*x)--;
+
if (gFieldCamera.y > 0)
- {
(*y)++;
- }
+
if (gFieldCamera.y < 0)
- {
- (*y) --;
- }
+ (*y)--;
}
void ObjectEventMoveDestCoords(struct ObjectEvent *objectEvent, u32 direction, s16 *x, s16 *y)
@@ -4982,7 +4940,7 @@ bool8 ObjectEventSetHeldMovement(struct ObjectEvent *objectEvent, u8 movementAct
objectEvent->movementActionId = movementActionId;
objectEvent->heldMovementActive = TRUE;
objectEvent->heldMovementFinished = FALSE;
- gSprites[objectEvent->spriteId].data[2] = 0;
+ gSprites[objectEvent->spriteId].sActionFuncId = 0;
return FALSE;
}
@@ -5003,8 +4961,8 @@ void ObjectEventClearHeldMovement(struct ObjectEvent *objectEvent)
objectEvent->movementActionId = 0xFF;
objectEvent->heldMovementActive = FALSE;
objectEvent->heldMovementFinished = FALSE;
- gSprites[objectEvent->spriteId].data[1] = 0;
- gSprites[objectEvent->spriteId].data[2] = 0;
+ gSprites[objectEvent->spriteId].sTypeFuncId = 0;
+ gSprites[objectEvent->spriteId].sActionFuncId = 0;
}
u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent)
@@ -5029,7 +4987,7 @@ u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent)
if (objectEvent->heldMovementActive)
return objectEvent->movementActionId;
- return 0xFF;
+ return MOVEMENT_ACTION_NONE;
}
void UpdateObjectEventCurrentMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, bool8 (*callback)(struct ObjectEvent *, struct Sprite *))
@@ -5098,10 +5056,10 @@ dirn_to_anim(GetAcroEndWheelieMoveDirectionMovementAction, gAcroEndWheelieMoveDi
u8 GetOppositeDirection(u8 direction)
{
- u8 directions[sizeof gOppositeDirections];
+ u8 directions[sizeof sOppositeDirections];
- memcpy(directions, gOppositeDirections, sizeof gOppositeDirections);
- if (direction < 1 || direction > (sizeof gOppositeDirections))
+ memcpy(directions, sOppositeDirections, sizeof sOppositeDirections);
+ if (direction <= DIR_NONE || direction > (sizeof sOppositeDirections))
{
return direction;
}
@@ -5131,7 +5089,7 @@ static u32 state_to_direction(u8 a0, u32 a1, u32 a2)
static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite))
+ if (gMovementActionFuncs[objectEvent->movementActionId][sprite->sActionFuncId](objectEvent, sprite))
{
objectEvent->heldMovementFinished = TRUE;
}
@@ -5139,10 +5097,10 @@ static void ObjectEventExecHeldMovementAction(struct ObjectEvent *objectEvent, s
static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (gMovementActionFuncs[objectEvent->movementActionId][sprite->data[2]](objectEvent, sprite))
+ if (gMovementActionFuncs[objectEvent->movementActionId][sprite->sActionFuncId](objectEvent, sprite))
{
objectEvent->movementActionId = 0xFF;
- sprite->data[2] = 0;
+ sprite->sActionFuncId = 0;
return TRUE;
}
return FALSE;
@@ -5151,16 +5109,16 @@ static bool8 ObjectEventExecSingleMovementAction(struct ObjectEvent *objectEvent
static void ObjectEventSetSingleMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 animId)
{
objectEvent->movementActionId = animId;
- sprite->data[2] = 0;
+ sprite->sActionFuncId = 0;
}
static void FaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
{
SetObjectEventDirection(objectEvent, direction);
ShiftStillObjectEventCoords(objectEvent);
- obj_npc_animation_step(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
+ SetStepAnim(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
sprite->animPaused = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
}
bool8 MovementAction_FaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
@@ -5187,7 +5145,7 @@ bool8 MovementAction_FaceRight_Step0(struct ObjectEvent *objectEvent, struct Spr
return TRUE;
}
-void npc_apply_direction(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
+void InitNpcForMovement(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
{
s16 x;
s16 y;
@@ -5197,34 +5155,34 @@ void npc_apply_direction(struct ObjectEvent *objectEvent, struct Sprite *sprite,
SetObjectEventDirection(objectEvent, direction);
MoveCoords(direction, &x, &y);
ShiftObjectEventCoords(objectEvent, x, y);
- oamt_npc_ministep_reset(sprite, direction, speed);
+ SetSpriteDataForNormalStep(sprite, direction, speed);
sprite->animPaused = FALSE;
- if (gLockedAnimObjectEvents != NULL && FindLockedObjectEventIndex(objectEvent) != OBJECT_EVENTS_COUNT)
- {
+
+ if (sLockedAnimObjectEvents != NULL && FindLockedObjectEventIndex(objectEvent) != OBJECT_EVENTS_COUNT)
sprite->animPaused = TRUE;
- }
+
objectEvent->triggerGroundEffectsOnMove = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
}
-void do_go_anim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
+static void InitMovementNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
{
- u8 (*functions[ARRAY_COUNT(gUnknown_0850DEE8)])(u8);
+ u8 (*functions[ARRAY_COUNT(sDirectionAnimFuncsBySpeed)])(u8);
- memcpy(functions, gUnknown_0850DEE8, sizeof gUnknown_0850DEE8);
- npc_apply_direction(objectEvent, sprite, direction, speed);
- npc_apply_anim_looping(objectEvent, sprite, functions[speed](objectEvent->facingDirection));
+ memcpy(functions, sDirectionAnimFuncsBySpeed, sizeof sDirectionAnimFuncsBySpeed);
+ InitNpcForMovement(objectEvent, sprite, direction, speed);
+ SetStepAnimHandleAlternation(objectEvent, sprite, functions[speed](objectEvent->facingDirection));
}
-void StartRunningAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
+static void StartRunningAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
{
- npc_apply_direction(objectEvent, sprite, direction, 1);
- npc_apply_anim_looping(objectEvent, sprite, GetRunningDirectionAnimNum(objectEvent->facingDirection));
+ InitNpcForMovement(objectEvent, sprite, direction, 1);
+ SetStepAnimHandleAlternation(objectEvent, sprite, GetRunningDirectionAnimNum(objectEvent->facingDirection));
}
-bool8 npc_obj_ministep_stop_on_arrival(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 UpdateMovementNormal(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (obj_npc_ministep(sprite))
+ if (NpcTakeStep(sprite))
{
ShiftStillObjectEventCoords(objectEvent);
objectEvent->triggerGroundEffectsOnStop = TRUE;
@@ -5234,7 +5192,7 @@ bool8 npc_obj_ministep_stop_on_arrival(struct ObjectEvent *objectEvent, struct S
return FALSE;
}
-void sub_8093AF0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
+static void InitNpcForWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
{
s16 x;
s16 y;
@@ -5244,21 +5202,21 @@ void sub_8093AF0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 dire
SetObjectEventDirection(objectEvent, direction);
MoveCoords(direction, &x, &y);
ShiftObjectEventCoords(objectEvent, x, y);
- sub_80976DC(sprite, direction);
+ SetWalkSlowSpriteData(sprite, direction);
sprite->animPaused = FALSE;
objectEvent->triggerGroundEffectsOnMove = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
}
-void sub_8093B60(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
+static void InitWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
{
- sub_8093AF0(objectEvent, sprite, direction);
- npc_apply_anim_looping(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
+ InitNpcForWalkSlow(objectEvent, sprite, direction);
+ SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
}
-bool8 an_walk_any_2(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 UpdateWalkSlow(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80976EC(sprite))
+ if (UpdateWalkSlowAnim(sprite))
{
ShiftStillObjectEventCoords(objectEvent);
objectEvent->triggerGroundEffectsOnStop = TRUE;
@@ -5270,15 +5228,15 @@ bool8 an_walk_any_2(struct ObjectEvent *objectEvent, struct Sprite *sprite)
bool8 MovementAction_WalkSlowDiagonalUpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_NORTHWEST);
+ InitWalkSlow(objectEvent, sprite, DIR_NORTHWEST);
return MovementAction_WalkSlowDiagonalUpLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowDiagonalUpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5286,15 +5244,15 @@ bool8 MovementAction_WalkSlowDiagonalUpLeft_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_WalkSlowDiagonalUpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_NORTHEAST);
+ InitWalkSlow(objectEvent, sprite, DIR_NORTHEAST);
return MovementAction_WalkSlowDiagonalUpRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowDiagonalUpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5302,15 +5260,15 @@ bool8 MovementAction_WalkSlowDiagonalUpRight_Step1(struct ObjectEvent *objectEve
bool8 MovementAction_WalkSlowDiagonalDownLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_SOUTHWEST);
+ InitWalkSlow(objectEvent, sprite, DIR_SOUTHWEST);
return MovementAction_WalkSlowDiagonalDownLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowDiagonalDownLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5318,15 +5276,15 @@ bool8 MovementAction_WalkSlowDiagonalDownLeft_Step1(struct ObjectEvent *objectEv
bool8 MovementAction_WalkSlowDiagonalDownRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_SOUTHEAST);
+ InitWalkSlow(objectEvent, sprite, DIR_SOUTHEAST);
return MovementAction_WalkSlowDiagonalDownRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowDiagonalDownRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5334,15 +5292,15 @@ bool8 MovementAction_WalkSlowDiagonalDownRight_Step1(struct ObjectEvent *objectE
bool8 MovementAction_WalkSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_SOUTH);
+ InitWalkSlow(objectEvent, sprite, DIR_SOUTH);
return MovementAction_WalkSlowDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5350,15 +5308,15 @@ bool8 MovementAction_WalkSlowDown_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_NORTH);
+ InitWalkSlow(objectEvent, sprite, DIR_NORTH);
return MovementAction_WalkSlowUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5366,15 +5324,15 @@ bool8 MovementAction_WalkSlowUp_Step1(struct ObjectEvent *objectEvent, struct Sp
bool8 MovementAction_WalkSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_WEST);
+ InitWalkSlow(objectEvent, sprite, DIR_WEST);
return MovementAction_WalkSlowLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5382,15 +5340,15 @@ bool8 MovementAction_WalkSlowLeft_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_EAST);
+ InitWalkSlow(objectEvent, sprite, DIR_EAST);
return MovementAction_WalkSlowRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5398,15 +5356,15 @@ bool8 MovementAction_WalkSlowRight_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkNormalDiagonalUpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTHWEST, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTHWEST, 0);
return MovementAction_WalkNormalDiagonalUpLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalDiagonalUpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5414,15 +5372,15 @@ bool8 MovementAction_WalkNormalDiagonalUpLeft_Step1(struct ObjectEvent *objectEv
bool8 MovementAction_WalkNormalDiagonalUpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTHEAST, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTHEAST, 0);
return MovementAction_WalkNormalDiagonalUpRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalDiagonalUpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5430,15 +5388,15 @@ bool8 MovementAction_WalkNormalDiagonalUpRight_Step1(struct ObjectEvent *objectE
bool8 MovementAction_WalkNormalDiagonalDownLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTHWEST, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTHWEST, 0);
return MovementAction_WalkNormalDiagonalDownLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalDiagonalDownLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5446,15 +5404,15 @@ bool8 MovementAction_WalkNormalDiagonalDownLeft_Step1(struct ObjectEvent *object
bool8 MovementAction_WalkNormalDiagonalDownRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTHEAST, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTHEAST, 0);
return MovementAction_WalkNormalDiagonalDownRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalDiagonalDownRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5462,15 +5420,15 @@ bool8 MovementAction_WalkNormalDiagonalDownRight_Step1(struct ObjectEvent *objec
bool8 MovementAction_WalkNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTH, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 0);
return MovementAction_WalkNormalDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5478,15 +5436,15 @@ bool8 MovementAction_WalkNormalDown_Step1(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTH, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTH, 0);
return MovementAction_WalkNormalUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5494,15 +5452,15 @@ bool8 MovementAction_WalkNormalUp_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_WEST, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_WEST, 0);
return MovementAction_WalkNormalLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5510,65 +5468,74 @@ bool8 MovementAction_WalkNormalLeft_Step1(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_EAST, 0);
+ InitMovementNormal(objectEvent, sprite, DIR_EAST, 0);
return MovementAction_WalkNormalRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkNormalRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-void sub_8093FC4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a5)
+#define JUMP_HALFWAY 1
+#define JUMP_FINISHED ((u8)-1)
+
+enum {
+ JUMP_TYPE_HIGH,
+ JUMP_TYPE_LOW,
+ JUMP_TYPE_NORMAL,
+};
+
+static void InitJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type)
{
- s16 displacements[ARRAY_COUNT(gUnknown_0850DFBC)];
+ s16 displacements[ARRAY_COUNT(sJumpInitDisplacements)];
s16 x;
s16 y;
- memcpy(displacements, gUnknown_0850DFBC, sizeof gUnknown_0850DFBC);
+ memcpy(displacements, sJumpInitDisplacements, sizeof sJumpInitDisplacements);
x = 0;
y = 0;
SetObjectEventDirection(objectEvent, direction);
MoveCoordsInDirection(direction, &x, &y, displacements[speed], displacements[speed]);
ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y);
- sub_809783C(sprite, direction, speed, a5);
- sprite->data[2] = 1;
- sprite->animPaused = 0;
- objectEvent->triggerGroundEffectsOnMove = 1;
- objectEvent->disableCoveringGroundEffects = 1;
+ SetJumpSpriteData(sprite, direction, speed, type);
+ sprite->sActionFuncId = 1;
+ sprite->animPaused = FALSE;
+ objectEvent->triggerGroundEffectsOnMove = TRUE;
+ objectEvent->disableCoveringGroundEffects = TRUE;
}
-void maybe_shadow_1(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a4)
+static void InitJumpRegular(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type)
{
- sub_8093FC4(objectEvent, sprite, direction, speed, a4);
- npc_apply_anim_looping(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
+ InitJump(objectEvent, sprite, direction, speed, type);
+ SetStepAnimHandleAlternation(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
DoShadowFieldEffect(objectEvent);
}
-u8 sub_80940C4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *))
+static u8 UpdateJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callback(struct Sprite *))
{
- s16 displacements[ARRAY_COUNT(gUnknown_0850DFC2)];
+ s16 displacements[ARRAY_COUNT(sJumpDisplacements)];
s16 x;
s16 y;
u8 result;
- memcpy(displacements, gUnknown_0850DFC2, sizeof gUnknown_0850DFC2);
+ memcpy(displacements, sJumpDisplacements, sizeof sJumpDisplacements);
result = callback(sprite);
- if (result == 1 && displacements[sprite->data[4]] != 0)
+ if (result == JUMP_HALFWAY && displacements[sprite->sSpeed] != 0)
{
x = 0;
y = 0;
- MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->data[4]], displacements[sprite->data[4]]);
+ MoveCoordsInDirection(objectEvent->movementDirection, &x, &y, displacements[sprite->sSpeed], displacements[sprite->sSpeed]);
ShiftObjectEventCoords(objectEvent, objectEvent->currentCoords.x + x, objectEvent->currentCoords.y + y);
objectEvent->triggerGroundEffectsOnMove = TRUE;
objectEvent->disableCoveringGroundEffects = TRUE;
}
- else if (result == 0xFF)
+ else if (result == JUMP_FINISHED)
{
ShiftStillObjectEventCoords(objectEvent);
objectEvent->triggerGroundEffectsOnStop = TRUE;
@@ -5578,43 +5545,41 @@ u8 sub_80940C4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 callba
return result;
}
-u8 sub_8094188(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static u8 DoJumpAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return sub_80940C4(objectEvent, sprite, sub_809785C);
+ return UpdateJumpAnim(objectEvent, sprite, DoJumpSpriteMovement);
}
-u8 sub_809419C(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static u8 DoJumpSpecialAnimStep(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- return sub_80940C4(objectEvent, sprite, sub_80978E4);
+ return UpdateJumpAnim(objectEvent, sprite, DoJumpSpecialSpriteMovement);
}
-bool8 sub_80941B0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 DoJumpAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_8094188(objectEvent, sprite) == 0xFF)
- {
+ if (DoJumpAnimStep(objectEvent, sprite) == JUMP_FINISHED)
return TRUE;
- }
+
return FALSE;
}
-bool8 sub_80941C8(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 DoJumpSpecialAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_809419C(objectEvent, sprite) == 0xFF)
- {
+ if (DoJumpSpecialAnimStep(objectEvent, sprite) == JUMP_FINISHED)
return TRUE;
- }
+
return FALSE;
}
-bool8 sub_80941E0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static bool8 DoJumpInPlaceAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- switch (sub_8094188(objectEvent, sprite))
+ switch (DoJumpAnimStep(objectEvent, sprite))
{
- case 255:
+ case JUMP_FINISHED:
return TRUE;
- case 1:
+ case JUMP_HALFWAY:
SetObjectEventDirection(objectEvent, GetOppositeDirection(objectEvent->movementDirection));
- obj_npc_animation_step(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
+ SetStepAnim(objectEvent, sprite, GetMoveDirectionAnimNum(objectEvent->facingDirection));
default:
return FALSE;
}
@@ -5622,16 +5587,16 @@ bool8 sub_80941E0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
bool8 MovementAction_Jump2Down_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 2, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 2, JUMP_TYPE_HIGH);
return MovementAction_Jump2Down_Step1(objectEvent, sprite);
}
bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5639,16 +5604,16 @@ bool8 MovementAction_Jump2Down_Step1(struct ObjectEvent *objectEvent, struct Spr
bool8 MovementAction_Jump2Up_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 2, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_NORTH, 2, JUMP_TYPE_HIGH);
return MovementAction_Jump2Up_Step1(objectEvent, sprite);
}
bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5656,16 +5621,16 @@ bool8 MovementAction_Jump2Up_Step1(struct ObjectEvent *objectEvent, struct Sprit
bool8 MovementAction_Jump2Left_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_WEST, 2, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_WEST, 2, JUMP_TYPE_HIGH);
return MovementAction_Jump2Left_Step1(objectEvent, sprite);
}
bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5673,33 +5638,32 @@ bool8 MovementAction_Jump2Left_Step1(struct ObjectEvent *objectEvent, struct Spr
bool8 MovementAction_Jump2Right_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_EAST, 2, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_EAST, 2, JUMP_TYPE_HIGH);
return MovementAction_Jump2Right_Step1(objectEvent, sprite);
}
bool8 MovementAction_Jump2Right_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-
-void sub_8094390(struct Sprite *sprite, u16 duration)
+static void InitMovementDelay(struct Sprite *sprite, u16 duration)
{
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
sprite->data[3] = duration;
}
bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (-- sprite->data[3] == 0)
+ if (--sprite->data[3] == 0)
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5707,45 +5671,45 @@ bool8 MovementAction_Delay_Step1(struct ObjectEvent *objectEvent, struct Sprite
bool8 MovementAction_Delay1_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094390(sprite, 1);
+ InitMovementDelay(sprite, 1);
return MovementAction_Delay_Step1(objectEvent, sprite);
}
bool8 MovementAction_Delay2_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094390(sprite, 2);
+ InitMovementDelay(sprite, 2);
return MovementAction_Delay_Step1(objectEvent, sprite);
}
bool8 MovementAction_Delay4_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094390(sprite, 4);
+ InitMovementDelay(sprite, 4);
return MovementAction_Delay_Step1(objectEvent, sprite);
}
bool8 MovementAction_Delay8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094390(sprite, 8);
+ InitMovementDelay(sprite, 8);
return MovementAction_Delay_Step1(objectEvent, sprite);
}
bool8 MovementAction_Delay16_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094390(sprite, 16);
+ InitMovementDelay(sprite, 16);
return MovementAction_Delay_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTH, 1);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 1);
return MovementAction_WalkFastDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5753,15 +5717,15 @@ bool8 MovementAction_WalkFastDown_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTH, 1);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTH, 1);
return MovementAction_WalkFastUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5769,15 +5733,15 @@ bool8 MovementAction_WalkFastUp_Step1(struct ObjectEvent *objectEvent, struct Sp
bool8 MovementAction_WalkFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_WEST, 1);
+ InitMovementNormal(objectEvent, sprite, DIR_WEST, 1);
return MovementAction_WalkFastLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5785,27 +5749,27 @@ bool8 MovementAction_WalkFastLeft_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_EAST, 1);
+ InitMovementNormal(objectEvent, sprite, DIR_EAST, 1);
return MovementAction_WalkFastRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-void sub_8094554(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 animNum, u16 duration)
+static void InitMoveInPlace(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 animNum, u16 duration)
{
SetObjectEventDirection(objectEvent, direction);
- npc_apply_anim_looping(objectEvent, sprite, animNum);
+ SetStepAnimHandleAlternation(objectEvent, sprite, animNum);
sprite->animPaused = FALSE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
sprite->data[3] = duration;
}
@@ -5813,7 +5777,7 @@ bool8 MovementAction_WalkInPlace_Step1(struct ObjectEvent *objectEvent, struct S
{
if (-- sprite->data[3] == 0)
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
sprite->animPaused = TRUE;
return TRUE;
}
@@ -5831,111 +5795,111 @@ bool8 MovementAction_WalkInPlaceSlow_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_WalkInPlaceSlowDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 32);
+ InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 32);
return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceSlowUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 32);
+ InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 32);
return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceSlowLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 32);
+ InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 32);
return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceSlowRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 32);
+ InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 32);
return MovementAction_WalkInPlaceSlow_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceNormalDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 16);
+ InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionAnimNum(DIR_SOUTH), 16);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceNormalUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 16);
+ InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionAnimNum(DIR_NORTH), 16);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceNormalLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 16);
+ InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionAnimNum(DIR_WEST), 16);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceNormalRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 16);
+ InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionAnimNum(DIR_EAST), 16);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFastAnimNum(DIR_SOUTH), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFastAnimNum(DIR_SOUTH), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFastAnimNum(DIR_NORTH), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFastAnimNum(DIR_NORTH), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionFastAnimNum(DIR_WEST), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFastAnimNum(DIR_WEST), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionFastAnimNum(DIR_EAST), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFastAnimNum(DIR_EAST), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4);
+ InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetMoveDirectionFasterAnimNum(DIR_SOUTH), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4);
+ InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetMoveDirectionFasterAnimNum(DIR_NORTH), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4);
+ InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetMoveDirectionFasterAnimNum(DIR_WEST), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkInPlaceFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4);
+ InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetMoveDirectionFasterAnimNum(DIR_EAST), 4);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_RideWaterCurrentDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTH, 2);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 2);
return MovementAction_RideWaterCurrentDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5943,15 +5907,15 @@ bool8 MovementAction_RideWaterCurrentDown_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_RideWaterCurrentUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTH, 2);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTH, 2);
return MovementAction_RideWaterCurrentUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5959,15 +5923,15 @@ bool8 MovementAction_RideWaterCurrentUp_Step1(struct ObjectEvent *objectEvent, s
bool8 MovementAction_RideWaterCurrentLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_WEST, 2);
+ InitMovementNormal(objectEvent, sprite, DIR_WEST, 2);
return MovementAction_RideWaterCurrentLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5975,15 +5939,15 @@ bool8 MovementAction_RideWaterCurrentLeft_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_RideWaterCurrentRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_EAST, 2);
+ InitMovementNormal(objectEvent, sprite, DIR_EAST, 2);
return MovementAction_RideWaterCurrentRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -5991,15 +5955,15 @@ bool8 MovementAction_RideWaterCurrentRight_Step1(struct ObjectEvent *objectEvent
bool8 MovementAction_WalkFastestDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTH, 3);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 3);
return MovementAction_WalkFastestDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6007,15 +5971,15 @@ bool8 MovementAction_WalkFastestDown_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_WalkFastestUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTH, 3);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTH, 3);
return MovementAction_WalkFastestUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6023,15 +5987,15 @@ bool8 MovementAction_WalkFastestUp_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_WalkFastestLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_WEST, 3);
+ InitMovementNormal(objectEvent, sprite, DIR_WEST, 3);
return MovementAction_WalkFastestLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6039,15 +6003,15 @@ bool8 MovementAction_WalkFastestLeft_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_WalkFastestRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_EAST, 3);
+ InitMovementNormal(objectEvent, sprite, DIR_EAST, 3);
return MovementAction_WalkFastestRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6055,15 +6019,15 @@ bool8 MovementAction_WalkFastestRight_Step1(struct ObjectEvent *objectEvent, str
bool8 MovementAction_SlideDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_SOUTH, 4);
+ InitMovementNormal(objectEvent, sprite, DIR_SOUTH, 4);
return MovementAction_SlideDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6071,15 +6035,15 @@ bool8 MovementAction_SlideDown_Step1(struct ObjectEvent *objectEvent, struct Spr
bool8 MovementAction_SlideUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_NORTH, 4);
+ InitMovementNormal(objectEvent, sprite, DIR_NORTH, 4);
return MovementAction_SlideUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6087,15 +6051,15 @@ bool8 MovementAction_SlideUp_Step1(struct ObjectEvent *objectEvent, struct Sprit
bool8 MovementAction_SlideLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_WEST, 4);
+ InitMovementNormal(objectEvent, sprite, DIR_WEST, 4);
return MovementAction_SlideLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6103,15 +6067,15 @@ bool8 MovementAction_SlideLeft_Step1(struct ObjectEvent *objectEvent, struct Spr
bool8 MovementAction_SlideRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_EAST, 4);
+ InitMovementNormal(objectEvent, sprite, DIR_EAST, 4);
return MovementAction_SlideRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_SlideRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6125,9 +6089,9 @@ bool8 MovementAction_PlayerRunDown_Step0(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_PlayerRunDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6141,9 +6105,9 @@ bool8 MovementAction_PlayerRunUp_Step0(struct ObjectEvent *objectEvent, struct S
bool8 MovementAction_PlayerRunUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6157,9 +6121,9 @@ bool8 MovementAction_PlayerRunLeft_Step0(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_PlayerRunLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6173,9 +6137,9 @@ bool8 MovementAction_PlayerRunRight_Step0(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_PlayerRunRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6185,7 +6149,7 @@ void StartSpriteAnimInDirection(struct ObjectEvent *objectEvent, struct Sprite *
{
SetAndStartSpriteAnim(sprite, animNum, 0);
SetObjectEventDirection(objectEvent, direction);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
}
bool8 MovementAction_StartAnimInDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
@@ -6198,29 +6162,29 @@ bool8 MovementAction_WaitSpriteAnim(struct ObjectEvent *objectEvent, struct Spri
{
if (SpriteAnimEnded(sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-void sub_8094DE4(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
+static void InitJumpSpecial(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
{
- sub_8093FC4(objectEvent, sprite, direction, 1, 0);
+ InitJump(objectEvent, sprite, direction, 1, JUMP_TYPE_HIGH);
StartSpriteAnim(sprite, GetJumpSpecialDirectionAnimNum(direction));
}
bool8 MovementAction_JumpSpecialDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094DE4(objectEvent, sprite, DIR_SOUTH);
+ InitJumpSpecial(objectEvent, sprite, DIR_SOUTH);
return MovementAction_JumpSpecialDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941C8(objectEvent, sprite))
+ if (DoJumpSpecialAnim(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
objectEvent->landingJump = FALSE;
return TRUE;
}
@@ -6229,15 +6193,15 @@ bool8 MovementAction_JumpSpecialDown_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_JumpSpecialUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094DE4(objectEvent, sprite, DIR_NORTH);
+ InitJumpSpecial(objectEvent, sprite, DIR_NORTH);
return MovementAction_JumpSpecialUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941C8(objectEvent, sprite))
+ if (DoJumpSpecialAnim(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
objectEvent->landingJump = FALSE;
return TRUE;
}
@@ -6246,15 +6210,15 @@ bool8 MovementAction_JumpSpecialUp_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_JumpSpecialLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094DE4(objectEvent, sprite, DIR_WEST);
+ InitJumpSpecial(objectEvent, sprite, DIR_WEST);
return MovementAction_JumpSpecialLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941C8(objectEvent, sprite))
+ if (DoJumpSpecialAnim(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
objectEvent->landingJump = FALSE;
return TRUE;
}
@@ -6263,15 +6227,15 @@ bool8 MovementAction_JumpSpecialLeft_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_JumpSpecialRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094DE4(objectEvent, sprite, DIR_EAST);
+ InitJumpSpecial(objectEvent, sprite, DIR_EAST);
return MovementAction_JumpSpecialRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpSpecialRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941C8(objectEvent, sprite))
+ if (DoJumpSpecialAnim(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
objectEvent->landingJump = FALSE;
return TRUE;
}
@@ -6286,7 +6250,7 @@ bool8 MovementAction_FacePlayer_Step0(struct ObjectEvent *objectEvent, struct Sp
{
FaceDirection(objectEvent, sprite, GetDirectionToFace(objectEvent->currentCoords.x, objectEvent->currentCoords.y, gObjectEvents[playerObjectId].currentCoords.x, gObjectEvents[playerObjectId].currentCoords.y));
}
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -6298,36 +6262,36 @@ bool8 MovementAction_FaceAwayPlayer_Step0(struct ObjectEvent *objectEvent, struc
{
FaceDirection(objectEvent, sprite, GetOppositeDirection(GetDirectionToFace(objectEvent->currentCoords.x, objectEvent->currentCoords.y, gObjectEvents[playerObjectId].currentCoords.x, gObjectEvents[playerObjectId].currentCoords.y)));
}
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_LockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->facingDirectionLocked = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_UnlockFacingDirection_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->facingDirectionLocked = FALSE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_JumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 1, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 1, JUMP_TYPE_NORMAL);
return MovementAction_JumpDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6335,16 +6299,16 @@ bool8 MovementAction_JumpDown_Step1(struct ObjectEvent *objectEvent, struct Spri
bool8 MovementAction_JumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 1, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_NORTH, 1, JUMP_TYPE_NORMAL);
return MovementAction_JumpUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6352,16 +6316,16 @@ bool8 MovementAction_JumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite
bool8 MovementAction_JumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_WEST, 1, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_WEST, 1, JUMP_TYPE_NORMAL);
return MovementAction_JumpLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6369,16 +6333,16 @@ bool8 MovementAction_JumpLeft_Step1(struct ObjectEvent *objectEvent, struct Spri
bool8 MovementAction_JumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_EAST, 1, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_EAST, 1, JUMP_TYPE_NORMAL);
return MovementAction_JumpRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6386,16 +6350,16 @@ bool8 MovementAction_JumpRight_Step1(struct ObjectEvent *objectEvent, struct Spr
bool8 MovementAction_JumpInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 0, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_HIGH);
return MovementAction_JumpInPlaceDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6403,16 +6367,16 @@ bool8 MovementAction_JumpInPlaceDown_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_JumpInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 0, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_HIGH);
return MovementAction_JumpInPlaceUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6420,16 +6384,16 @@ bool8 MovementAction_JumpInPlaceUp_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_JumpInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_WEST, 0, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_HIGH);
return MovementAction_JumpInPlaceLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6437,16 +6401,16 @@ bool8 MovementAction_JumpInPlaceLeft_Step1(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_JumpInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_EAST, 0, 0);
+ InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_HIGH);
return MovementAction_JumpInPlaceRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6454,16 +6418,16 @@ bool8 MovementAction_JumpInPlaceRight_Step1(struct ObjectEvent *objectEvent, str
bool8 MovementAction_JumpInPlaceDownUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_SOUTH, 0, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_NORMAL);
return MovementAction_JumpInPlaceDownUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941E0(objectEvent, sprite))
+ if (DoJumpInPlaceAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6471,16 +6435,16 @@ bool8 MovementAction_JumpInPlaceDownUp_Step1(struct ObjectEvent *objectEvent, st
bool8 MovementAction_JumpInPlaceUpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_NORTH, 0, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_NORMAL);
return MovementAction_JumpInPlaceUpDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941E0(objectEvent, sprite))
+ if (DoJumpInPlaceAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6488,16 +6452,16 @@ bool8 MovementAction_JumpInPlaceUpDown_Step1(struct ObjectEvent *objectEvent, st
bool8 MovementAction_JumpInPlaceLeftRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_WEST, 0, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_NORMAL);
return MovementAction_JumpInPlaceLeftRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941E0(objectEvent, sprite))
+ if (DoJumpInPlaceAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6505,16 +6469,16 @@ bool8 MovementAction_JumpInPlaceLeftRight_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_JumpInPlaceRightLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- maybe_shadow_1(objectEvent, sprite, DIR_EAST, 0, 2);
+ InitJumpRegular(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_NORMAL);
return MovementAction_JumpInPlaceRightLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_JumpInPlaceRightLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941E0(objectEvent, sprite))
+ if (DoJumpInPlaceAnim(objectEvent, sprite))
{
objectEvent->hasShadow = 0;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6535,42 +6499,42 @@ bool8 MovementAction_NurseJoyBowDown_Step0(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_EnableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->disableJumpLandingGroundEffect = FALSE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_DisableJumpLandingGroundEffect_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->disableJumpLandingGroundEffect = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_DisableAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->inanimate = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_RestoreAnimation_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->inanimate = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->inanimate;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_SetInvisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->invisible = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_SetVisible_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->invisible = FALSE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -6578,7 +6542,7 @@ bool8 MovementAction_EmoteExclamationMark_Step0(struct ObjectEvent *objectEvent,
{
ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_EXCLAMATION_MARK_ICON);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -6586,7 +6550,7 @@ bool8 MovementAction_EmoteQuestionMark_Step0(struct ObjectEvent *objectEvent, st
{
ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_QUESTION_MARK_ICON);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -6594,7 +6558,7 @@ bool8 MovementAction_EmoteHeart_Step0(struct ObjectEvent *objectEvent, struct Sp
{
ObjectEventGetLocalIdAndMap(objectEvent, &gFieldEffectArguments[0], &gFieldEffectArguments[1], &gFieldEffectArguments[2]);
FieldEffectStart(FLDEFF_HEART_ICON);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -6607,19 +6571,19 @@ bool8 MovementAction_RevealTrainer_Step0(struct ObjectEvent *objectEvent, struct
}
if (objectEvent->movementType != MOVEMENT_TYPE_TREE_DISGUISE && objectEvent->movementType != MOVEMENT_TYPE_MOUNTAIN_DISGUISE)
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
- sub_8155D78(objectEvent);
- sprite->data[2] = 1;
+ StartRevealDisguise(objectEvent);
+ sprite->sActionFuncId = 1;
return MovementAction_RevealTrainer_Step1(objectEvent, sprite);
}
bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_8155DA0(objectEvent))
+ if (UpdateRevealDisguise(objectEvent))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6628,7 +6592,7 @@ bool8 MovementAction_RevealTrainer_Step1(struct ObjectEvent *objectEvent, struct
bool8 MovementAction_RockSmashBreak_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
SetAndStartSpriteAnim(sprite, 1, 0);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return FALSE;
}
@@ -6637,7 +6601,7 @@ bool8 MovementAction_RockSmashBreak_Step1(struct ObjectEvent *objectEvent, struc
if (SpriteAnimEnded(sprite))
{
SetMovementDelay(sprite, 32);
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
}
return FALSE;
}
@@ -6648,7 +6612,7 @@ bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent, struc
if (WaitForMovementDelay(sprite))
{
objectEvent->invisible = TRUE;
- sprite->data[2] = 3;
+ sprite->sActionFuncId = 3;
}
return FALSE;
}
@@ -6656,7 +6620,7 @@ bool8 MovementAction_RockSmashBreak_Step2(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_CutTree_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
SetAndStartSpriteAnim(sprite, 1, 0);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return FALSE;
}
@@ -6665,7 +6629,7 @@ bool8 MovementAction_CutTree_Step1(struct ObjectEvent *objectEvent, struct Sprit
if (SpriteAnimEnded(sprite))
{
SetMovementDelay(sprite, 32);
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
}
return FALSE;
}
@@ -6676,7 +6640,7 @@ bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struct Sprit
if (WaitForMovementDelay(sprite))
{
objectEvent->invisible = TRUE;
- sprite->data[2] = 3;
+ sprite->sActionFuncId = 3;
}
return FALSE;
}
@@ -6684,14 +6648,14 @@ bool8 MovementAction_CutTree_Step2(struct ObjectEvent *objectEvent, struct Sprit
bool8 MovementAction_SetFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->fixedPriority = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_ClearFixedPriority_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
objectEvent->fixedPriority = FALSE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -6726,7 +6690,7 @@ bool8 MovementAction_ShowReflection_Step0(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_SOUTH);
+ InitWalkSlow(objectEvent, sprite, DIR_SOUTH);
sprite->affineAnimPaused = FALSE;
StartSpriteAffineAnimIfDifferent(sprite, 0);
return MovementAction_WalkDownStartAffine_Step1(objectEvent, sprite);
@@ -6734,10 +6698,10 @@ bool8 MovementAction_WalkDownStartAffine_Step0(struct ObjectEvent *objectEvent,
bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
sprite->affineAnimPaused = TRUE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6745,7 +6709,7 @@ bool8 MovementAction_WalkDownStartAffine_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8093B60(objectEvent, sprite, DIR_SOUTH);
+ InitWalkSlow(objectEvent, sprite, DIR_SOUTH);
sprite->affineAnimPaused = FALSE;
ChangeSpriteAffineAnimIfDifferent(sprite, 1);
return MovementAction_WalkDownAffine_Step1(objectEvent, sprite);
@@ -6753,10 +6717,10 @@ bool8 MovementAction_WalkDownAffine_Step0(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (an_walk_any_2(objectEvent, sprite))
+ if (UpdateWalkSlow(objectEvent, sprite))
{
sprite->affineAnimPaused = TRUE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6764,7 +6728,7 @@ bool8 MovementAction_WalkDownAffine_Step1(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkLeftAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_WEST, 1);
+ InitMovementNormal(objectEvent, sprite, DIR_WEST, 1);
sprite->affineAnimPaused = FALSE;
ChangeSpriteAffineAnimIfDifferent(sprite, 2);
return MovementAction_WalkLeftAffine_Step1(objectEvent, sprite);
@@ -6772,10 +6736,10 @@ bool8 MovementAction_WalkLeftAffine_Step0(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkLeftAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
sprite->affineAnimPaused = TRUE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6783,7 +6747,7 @@ bool8 MovementAction_WalkLeftAffine_Step1(struct ObjectEvent *objectEvent, struc
bool8 MovementAction_WalkRightAffine_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- do_go_anim(objectEvent, sprite, DIR_EAST, 1);
+ InitMovementNormal(objectEvent, sprite, DIR_EAST, 1);
sprite->affineAnimPaused = FALSE;
ChangeSpriteAffineAnimIfDifferent(sprite, 3);
return MovementAction_WalkRightAffine_Step1(objectEvent, sprite);
@@ -6791,45 +6755,45 @@ bool8 MovementAction_WalkRightAffine_Step0(struct ObjectEvent *objectEvent, stru
bool8 MovementAction_WalkRightAffine_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
sprite->affineAnimPaused = TRUE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-static void sub_80958C0(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
+static void AcroWheelieFaceDirection(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction)
{
SetObjectEventDirection(objectEvent, direction);
ShiftStillObjectEventCoords(objectEvent);
- obj_npc_animation_step(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(direction));
+ SetStepAnim(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(direction));
sprite->animPaused = TRUE;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
}
bool8 MovementAction_AcroWheelieFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80958C0(objectEvent, sprite, DIR_SOUTH);
+ AcroWheelieFaceDirection(objectEvent, sprite, DIR_SOUTH);
return TRUE;
}
bool8 MovementAction_AcroWheelieFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80958C0(objectEvent, sprite, DIR_NORTH);
+ AcroWheelieFaceDirection(objectEvent, sprite, DIR_NORTH);
return TRUE;
}
bool8 MovementAction_AcroWheelieFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80958C0(objectEvent, sprite, DIR_WEST);
+ AcroWheelieFaceDirection(objectEvent, sprite, DIR_WEST);
return TRUE;
}
bool8 MovementAction_AcroWheelieFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80958C0(objectEvent, sprite, DIR_EAST);
+ AcroWheelieFaceDirection(objectEvent, sprite, DIR_EAST);
return TRUE;
}
@@ -6926,7 +6890,7 @@ bool8 DoFigure8Anim(struct ObjectEvent *objectEvent, struct Sprite *sprite)
bool8 MovementAction_Figure8_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
InitFigure8Anim(objectEvent, sprite);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return MovementAction_Figure8_Step1(objectEvent, sprite);
}
@@ -6934,31 +6898,31 @@ bool8 MovementAction_Figure8_Step1(struct ObjectEvent *objectEvent, struct Sprit
{
if (DoFigure8Anim(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-void sub_8095B84(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 a4)
+static void InitAcroWheelieJump(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed, u8 type)
{
- sub_8093FC4(objectEvent, sprite, direction, speed, a4);
+ InitJump(objectEvent, sprite, direction, speed, type);
StartSpriteAnimIfDifferent(sprite, GetAcroWheelieDirectionAnimNum(direction));
DoShadowFieldEffect(objectEvent);
}
bool8 MovementAction_AcroWheelieHopFaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_SOUTH, 0, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 0, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopFaceDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6966,16 +6930,16 @@ bool8 MovementAction_AcroWheelieHopFaceDown_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_AcroWheelieHopFaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_NORTH, 0, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 0, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopFaceUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -6983,16 +6947,16 @@ bool8 MovementAction_AcroWheelieHopFaceUp_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieHopFaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_WEST, 0, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 0, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopFaceLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7000,16 +6964,16 @@ bool8 MovementAction_AcroWheelieHopFaceLeft_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_AcroWheelieHopFaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_EAST, 0, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 0, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopFaceRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7017,16 +6981,16 @@ bool8 MovementAction_AcroWheelieHopFaceRight_Step1(struct ObjectEvent *objectEve
bool8 MovementAction_AcroWheelieHopDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_SOUTH, 1, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 1, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7034,16 +6998,16 @@ bool8 MovementAction_AcroWheelieHopDown_Step1(struct ObjectEvent *objectEvent, s
bool8 MovementAction_AcroWheelieHopUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_NORTH, 1, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 1, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7051,16 +7015,16 @@ bool8 MovementAction_AcroWheelieHopUp_Step1(struct ObjectEvent *objectEvent, str
bool8 MovementAction_AcroWheelieHopLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_WEST, 1, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 1, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7068,16 +7032,16 @@ bool8 MovementAction_AcroWheelieHopLeft_Step1(struct ObjectEvent *objectEvent, s
bool8 MovementAction_AcroWheelieHopRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_EAST, 1, 1);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 1, JUMP_TYPE_LOW);
return MovementAction_AcroWheelieHopRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7085,16 +7049,16 @@ bool8 MovementAction_AcroWheelieHopRight_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieJumpDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_SOUTH, 2, 0);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_SOUTH, 2, JUMP_TYPE_HIGH);
return MovementAction_AcroWheelieJumpDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7102,16 +7066,16 @@ bool8 MovementAction_AcroWheelieJumpDown_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieJumpUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_NORTH, 2, 0);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_NORTH, 2, JUMP_TYPE_HIGH);
return MovementAction_AcroWheelieJumpUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7119,16 +7083,16 @@ bool8 MovementAction_AcroWheelieJumpUp_Step1(struct ObjectEvent *objectEvent, st
bool8 MovementAction_AcroWheelieJumpLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_WEST, 2, 0);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_WEST, 2, JUMP_TYPE_HIGH);
return MovementAction_AcroWheelieJumpLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7136,16 +7100,16 @@ bool8 MovementAction_AcroWheelieJumpLeft_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieJumpRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8095B84(objectEvent, sprite, DIR_EAST, 2, 0);
+ InitAcroWheelieJump(objectEvent, sprite, DIR_EAST, 2, JUMP_TYPE_HIGH);
return MovementAction_AcroWheelieJumpRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (sub_80941B0(objectEvent, sprite))
+ if (DoJumpAnim(objectEvent, sprite))
{
objectEvent->hasShadow = FALSE;
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7153,46 +7117,46 @@ bool8 MovementAction_AcroWheelieJumpRight_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieInPlaceDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_SOUTH, GetAcroWheeliePedalDirectionAnimNum(DIR_SOUTH), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_SOUTH, GetAcroWheeliePedalDirectionAnimNum(DIR_SOUTH), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieInPlaceUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_NORTH, GetAcroWheeliePedalDirectionAnimNum(DIR_NORTH), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_NORTH, GetAcroWheeliePedalDirectionAnimNum(DIR_NORTH), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieInPlaceLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_WEST, GetAcroWheeliePedalDirectionAnimNum(DIR_WEST), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_WEST, GetAcroWheeliePedalDirectionAnimNum(DIR_WEST), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieInPlaceRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8094554(objectEvent, sprite, DIR_EAST, GetAcroWheeliePedalDirectionAnimNum(DIR_EAST), 8);
+ InitMoveInPlace(objectEvent, sprite, DIR_EAST, GetAcroWheeliePedalDirectionAnimNum(DIR_EAST), 8);
return MovementAction_WalkInPlace_Step1(objectEvent, sprite);
}
-void sub_80960C8(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
+static void InitAcroPopWheelie(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
{
- npc_apply_direction(objectEvent, sprite, direction, speed);
+ InitNpcForMovement(objectEvent, sprite, direction, speed);
StartSpriteAnim(sprite, GetAcroWheelieDirectionAnimNum(objectEvent->facingDirection));
SeekSpriteAnim(sprite, 0);
}
bool8 MovementAction_AcroPopWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80960C8(objectEvent, sprite, DIR_SOUTH, 1);
+ InitAcroPopWheelie(objectEvent, sprite, DIR_SOUTH, 1);
return MovementAction_AcroPopWheelieMoveDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7200,15 +7164,15 @@ bool8 MovementAction_AcroPopWheelieMoveDown_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_AcroPopWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80960C8(objectEvent, sprite, DIR_NORTH, 1);
+ InitAcroPopWheelie(objectEvent, sprite, DIR_NORTH, 1);
return MovementAction_AcroPopWheelieMoveUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7216,15 +7180,15 @@ bool8 MovementAction_AcroPopWheelieMoveUp_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroPopWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80960C8(objectEvent, sprite, DIR_WEST, 1);
+ InitAcroPopWheelie(objectEvent, sprite, DIR_WEST, 1);
return MovementAction_AcroPopWheelieMoveLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7232,37 +7196,37 @@ bool8 MovementAction_AcroPopWheelieMoveLeft_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_AcroPopWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_80960C8(objectEvent, sprite, DIR_EAST, 1);
+ InitAcroPopWheelie(objectEvent, sprite, DIR_EAST, 1);
return MovementAction_AcroPopWheelieMoveRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroPopWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-void sub_8096200(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
+static void InitAcroWheelieMove(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
{
- npc_apply_direction(objectEvent, sprite, direction, speed);
- npc_apply_anim_looping(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(objectEvent->facingDirection));
+ InitNpcForMovement(objectEvent, sprite, direction, speed);
+ SetStepAnimHandleAlternation(objectEvent, sprite, GetAcroWheeliePedalDirectionAnimNum(objectEvent->facingDirection));
}
bool8 MovementAction_AcroWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096200(objectEvent, sprite, DIR_SOUTH, 1);
+ InitAcroWheelieMove(objectEvent, sprite, DIR_SOUTH, 1);
return MovementAction_AcroWheelieMoveDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7270,15 +7234,15 @@ bool8 MovementAction_AcroWheelieMoveDown_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096200(objectEvent, sprite, DIR_NORTH, 1);
+ InitAcroWheelieMove(objectEvent, sprite, DIR_NORTH, 1);
return MovementAction_AcroWheelieMoveUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7286,15 +7250,15 @@ bool8 MovementAction_AcroWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, st
bool8 MovementAction_AcroWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096200(objectEvent, sprite, DIR_WEST, 1);
+ InitAcroWheelieMove(objectEvent, sprite, DIR_WEST, 1);
return MovementAction_AcroWheelieMoveLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7302,38 +7266,38 @@ bool8 MovementAction_AcroWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096200(objectEvent, sprite, DIR_EAST, 1);
+ InitAcroWheelieMove(objectEvent, sprite, DIR_EAST, 1);
return MovementAction_AcroWheelieMoveRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
}
-void sub_8096330(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
+static void InitAcroEndWheelie(struct ObjectEvent *objectEvent, struct Sprite *sprite, u8 direction, u8 speed)
{
- npc_apply_direction(objectEvent, sprite, direction, speed);
+ InitNpcForMovement(objectEvent, sprite, direction, speed);
StartSpriteAnim(sprite, GetAcroEndWheelieDirectionAnimNum(objectEvent->facingDirection));
SeekSpriteAnim(sprite, 0);
}
bool8 MovementAction_AcroEndWheelieMoveDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096330(objectEvent, sprite, DIR_SOUTH, 1);
+ InitAcroEndWheelie(objectEvent, sprite, DIR_SOUTH, 1);
return MovementAction_AcroEndWheelieMoveDown_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroEndWheelieMoveDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7341,15 +7305,15 @@ bool8 MovementAction_AcroEndWheelieMoveDown_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_AcroEndWheelieMoveUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096330(objectEvent, sprite, DIR_NORTH, 1);
+ InitAcroEndWheelie(objectEvent, sprite, DIR_NORTH, 1);
return MovementAction_AcroEndWheelieMoveUp_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroEndWheelieMoveUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7357,15 +7321,15 @@ bool8 MovementAction_AcroEndWheelieMoveUp_Step1(struct ObjectEvent *objectEvent,
bool8 MovementAction_AcroEndWheelieMoveLeft_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096330(objectEvent, sprite, DIR_WEST, 1);
+ InitAcroEndWheelie(objectEvent, sprite, DIR_WEST, 1);
return MovementAction_AcroEndWheelieMoveLeft_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroEndWheelieMoveLeft_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7373,15 +7337,15 @@ bool8 MovementAction_AcroEndWheelieMoveLeft_Step1(struct ObjectEvent *objectEven
bool8 MovementAction_AcroEndWheelieMoveRight_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096330(objectEvent, sprite, DIR_EAST, 1);
+ InitAcroEndWheelie(objectEvent, sprite, DIR_EAST, 1);
return MovementAction_AcroEndWheelieMoveRight_Step1(objectEvent, sprite);
}
bool8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- if (npc_obj_ministep_stop_on_arrival(objectEvent, sprite))
+ if (UpdateMovementNormal(objectEvent, sprite))
{
- sprite->data[2] = 2;
+ sprite->sActionFuncId = 2;
return TRUE;
}
return FALSE;
@@ -7390,24 +7354,24 @@ bool8 MovementAction_AcroEndWheelieMoveRight_Step1(struct ObjectEvent *objectEve
bool8 MovementAction_Levitate_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
CreateLevitateMovementTask(objectEvent);
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
bool8 MovementAction_StopLevitate_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- DestroyExtraMovementTask(objectEvent->warpArrowSpriteId);
+ DestroyLevitateMovementTask(objectEvent->warpArrowSpriteId);
sprite->pos2.y = 0;
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
-bool8 MovementAction_DestroyExtraTaskIfAtTop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+bool8 MovementAction_StopLevitateAtTop_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
if (sprite->pos2.y == 0)
{
- DestroyExtraMovementTask(objectEvent->warpArrowSpriteId);
- sprite->data[2] = 1;
+ DestroyLevitateMovementTask(objectEvent->warpArrowSpriteId);
+ sprite->sActionFuncId = 1;
return TRUE;
}
return FALSE;
@@ -7444,17 +7408,18 @@ static void TryEnableObjectEventAnim(struct ObjectEvent *objectEvent, struct Spr
static void UpdateObjectEventVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sub_8096530(objectEvent, sprite);
- UpdateObjEventSpriteVisibility(objectEvent, sprite);
+ UpdateObjectEventOffscreen(objectEvent, sprite);
+ UpdateObjectEventSpriteVisibility(objectEvent, sprite);
}
-static void sub_8096530(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static void UpdateObjectEventOffscreen(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
u16 x, y;
u16 x2, y2;
const struct ObjectEventGraphicsInfo *graphicsInfo;
objectEvent->offScreen = FALSE;
+
graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
if (sprite->coordOffsetEnabled)
{
@@ -7470,23 +7435,19 @@ static void sub_8096530(struct ObjectEvent *objectEvent, struct Sprite *sprite)
x2 += x;
y2 = y;
y2 += graphicsInfo->height;
- if ((s16)x >= 0x100 || (s16)x2 < -0x10)
- {
+
+ if ((s16)x >= DISPLAY_WIDTH + 16 || (s16)x2 < -16)
objectEvent->offScreen = TRUE;
- }
- if ((s16)y >= 0xB0 || (s16)y2 < -0x10)
- {
+
+ if ((s16)y >= DISPLAY_HEIGHT + 16 || (s16)y2 < -16)
objectEvent->offScreen = TRUE;
- }
}
-static void UpdateObjEventSpriteVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite)
+static void UpdateObjectEventSpriteVisibility(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
sprite->invisible = FALSE;
if (objectEvent->invisible || objectEvent->offScreen)
- {
sprite->invisible = TRUE;
- }
}
static void GetAllGroundEffectFlags_OnSpawn(struct ObjectEvent *objEvent, u32 *flags)
@@ -7770,30 +7731,30 @@ static u8 GetReflectionTypeByMetatileBehavior(u32 behavior)
return REFL_TYPE_NONE;
}
-u8 GetLedgeJumpDirection(s16 x, s16 y, u8 z)
+u8 GetLedgeJumpDirection(s16 x, s16 y, u8 direction)
{
- static bool8 (*const unknown_08376040[])(u8) = {
- MetatileBehavior_IsJumpSouth,
- MetatileBehavior_IsJumpNorth,
- MetatileBehavior_IsJumpWest,
- MetatileBehavior_IsJumpEast,
+ static bool8 (*const ledgeBehaviorFuncs[])(u8) = {
+ [DIR_SOUTH - 1] = MetatileBehavior_IsJumpSouth,
+ [DIR_NORTH - 1] = MetatileBehavior_IsJumpNorth,
+ [DIR_WEST - 1] = MetatileBehavior_IsJumpWest,
+ [DIR_EAST - 1] = MetatileBehavior_IsJumpEast,
};
- u8 b;
- u8 index = z;
+ u8 behavior;
+ u8 index = direction;
- if (index == 0)
- return 0;
- else if (index > 4)
- index -= 4;
+ if (index == DIR_NONE)
+ return DIR_NONE;
+ else if (index > DIR_EAST)
+ index -= DIR_EAST;
index--;
- b = MapGridGetMetatileBehaviorAt(x, y);
+ behavior = MapGridGetMetatileBehaviorAt(x, y);
- if (unknown_08376040[index](b) == 1)
+ if (ledgeBehaviorFuncs[index](behavior) == TRUE)
return index + 1;
- return 0;
+ return DIR_NONE;
}
static void SetObjectEventSpriteOamTableForLongGrass(struct ObjectEvent *objEvent, struct Sprite *sprite)
@@ -7822,7 +7783,7 @@ bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y)
mapZ = MapGridGetZCoordAt(x, y);
- if (mapZ == 0 || mapZ == 0xF)
+ if (mapZ == 0 || mapZ == 15)
return FALSE;
if (mapZ != z)
@@ -7831,21 +7792,15 @@ bool8 IsZCoordMismatchAt(u8 z, s16 x, s16 y)
return FALSE;
}
-static const u8 sUnknown_08376050[] = {
- 0x73, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x73, 0x53, 0x00, 0x00, 0x73
+static const u8 sElevationToSubpriority[] = {
+ 115, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 115, 83, 0, 0, 115
};
-// Each byte corresponds to a sprite priority for an object event.
-// This is directly the inverse of gObjectEventPriorities_08376070.
-static const u8 sObjectEventPriorities_08376060[] = {
+static const u8 sElevationToPriority[] = {
2, 2, 2, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 0, 0, 2
};
-// Each byte corresponds to a sprite priority for an object event.
-// This is the inverse of gObjectEventPriorities_08376060.
-// 1 = Above player sprite
-// 2 = Below player sprite
-static const u8 sObjectEventPriorities_08376070[] = {
+static const u8 sElevationToSubspriteTableNum[] = {
1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 0, 0, 1,
};
@@ -7856,19 +7811,19 @@ void UpdateObjectEventZCoordAndPriority(struct ObjectEvent *objEvent, struct Spr
ObjectEventUpdateZCoord(objEvent);
- sprite->subspriteTableNum = sObjectEventPriorities_08376070[objEvent->previousElevation];
- sprite->oam.priority = sObjectEventPriorities_08376060[objEvent->previousElevation];
+ sprite->subspriteTableNum = sElevationToSubspriteTableNum[objEvent->previousElevation];
+ sprite->oam.priority = sElevationToPriority[objEvent->previousElevation];
}
static void InitObjectPriorityByZCoord(struct Sprite *sprite, u8 z)
{
- sprite->subspriteTableNum = sObjectEventPriorities_08376070[z];
- sprite->oam.priority = sObjectEventPriorities_08376060[z];
+ sprite->subspriteTableNum = sElevationToSubspriteTableNum[z];
+ sprite->oam.priority = sElevationToPriority[z];
}
u8 ZCoordToPriority(u8 z)
{
- return sObjectEventPriorities_08376060[z];
+ return sElevationToPriority[z];
}
void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent)
@@ -7885,14 +7840,14 @@ void ObjectEventUpdateZCoord(struct ObjectEvent *objEvent)
objEvent->previousElevation = z;
}
-void SetObjectSubpriorityByZCoord(u8 a, struct Sprite *sprite, u8 b)
+void SetObjectSubpriorityByZCoord(u8 elevation, struct Sprite *sprite, u8 subpriority)
{
s32 tmp = sprite->centerToCornerVecY;
u32 tmpa = *(u16 *)&sprite->pos1.y;
u32 tmpb = *(u16 *)&gSpriteCoordOffsetY;
s32 tmp2 = (tmpa - tmp) + tmpb;
- u16 tmp3 = (0x10 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2;
- sprite->subpriority = tmp3 + sUnknown_08376050[a] + b;
+ u16 tmp3 = (16 - ((((u32)tmp2 + 8) & 0xFF) >> 4)) * 2;
+ sprite->subpriority = tmp3 + sElevationToSubpriority[elevation] + subpriority;
}
static void ObjectEventUpdateSubpriority(struct ObjectEvent *objEvent, struct Sprite *sprite)
@@ -7919,11 +7874,11 @@ void GroundEffect_SpawnOnTallGrass(struct ObjectEvent *objEvent, struct Sprite *
gFieldEffectArguments[0] = objEvent->currentCoords.x;
gFieldEffectArguments[1] = objEvent->currentCoords.y;
gFieldEffectArguments[2] = objEvent->previousElevation;
- gFieldEffectArguments[3] = 2;
+ gFieldEffectArguments[3] = 2; // priority
gFieldEffectArguments[4] = objEvent->localId << 8 | objEvent->mapNum;
gFieldEffectArguments[5] = objEvent->mapGroup;
gFieldEffectArguments[6] = (u8)gSaveBlock1Ptr->location.mapNum << 8 | (u8)gSaveBlock1Ptr->location.mapGroup;
- gFieldEffectArguments[7] = 1;
+ gFieldEffectArguments[7] = TRUE; // skip to end of anim
FieldEffectStart(FLDEFF_TALL_GRASS);
}
@@ -7932,11 +7887,11 @@ void GroundEffect_StepOnTallGrass(struct ObjectEvent *objEvent, struct Sprite *s
gFieldEffectArguments[0] = objEvent->currentCoords.x;
gFieldEffectArguments[1] = objEvent->currentCoords.y;
gFieldEffectArguments[2] = objEvent->previousElevation;
- gFieldEffectArguments[3] = 2;
+ gFieldEffectArguments[3] = 2; // priority
gFieldEffectArguments[4] = objEvent->localId << 8 | objEvent->mapNum;
gFieldEffectArguments[5] = objEvent->mapGroup;
gFieldEffectArguments[6] = (u8)gSaveBlock1Ptr->location.mapNum << 8 | (u8)gSaveBlock1Ptr->location.mapGroup;
- gFieldEffectArguments[7] = 0;
+ gFieldEffectArguments[7] = FALSE; // don't skip to end of anim
FieldEffectStart(FLDEFF_TALL_GRASS);
}
@@ -8323,16 +8278,18 @@ static void Step8(struct Sprite *sprite, u8 dir)
sprite->pos1.y += 8 * (u16) sDirectionToVectors[dir].y;
}
-static void oamt_npc_ministep_reset(struct Sprite *sprite, u8 direction, u8 a3)
+#define sTimer data[5]
+
+static void SetSpriteDataForNormalStep(struct Sprite *sprite, u8 direction, u8 speed)
{
- sprite->data[3] = direction;
- sprite->data[4] = a3;
- sprite->data[5] = 0;
+ sprite->sDirection = direction;
+ sprite->sSpeed = speed;
+ sprite->sTimer = 0;
}
typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 direction);
-static const SpriteStepFunc gUnknown_0850E6C4[] = {
+static const SpriteStepFunc sStep1Funcs[] = {
Step1,
Step1,
Step1,
@@ -8351,7 +8308,7 @@ static const SpriteStepFunc gUnknown_0850E6C4[] = {
Step1,
};
-static const SpriteStepFunc gUnknown_0850E704[] = {
+static const SpriteStepFunc sStep2Funcs[] = {
Step2,
Step2,
Step2,
@@ -8362,7 +8319,7 @@ static const SpriteStepFunc gUnknown_0850E704[] = {
Step2,
};
-static const SpriteStepFunc gUnknown_0850E724[] = {
+static const SpriteStepFunc sStep3Funcs[] = {
Step2,
Step3,
Step3,
@@ -8371,68 +8328,76 @@ static const SpriteStepFunc gUnknown_0850E724[] = {
Step3,
};
-static const SpriteStepFunc gUnknown_0850E73C[] = {
+static const SpriteStepFunc sStep4Funcs[] = {
Step4,
Step4,
Step4,
Step4,
};
-static const SpriteStepFunc gUnknown_0850E74C[] = {
+static const SpriteStepFunc sStep8Funcs[] = {
Step8,
Step8,
};
-static const SpriteStepFunc *const gUnknown_0850E754[] = {
- gUnknown_0850E6C4,
- gUnknown_0850E704,
- gUnknown_0850E724,
- gUnknown_0850E73C,
- gUnknown_0850E74C,
+static const SpriteStepFunc *const sNpcStepFuncTables[] = {
+ sStep1Funcs,
+ sStep2Funcs,
+ sStep3Funcs,
+ sStep4Funcs,
+ sStep8Funcs,
};
-static const s16 gUnknown_0850E768[] = {
+static const s16 sStepTimes[] = {
16, 8, 6, 4, 2
};
-bool8 obj_npc_ministep(struct Sprite *sprite)
+static bool8 NpcTakeStep(struct Sprite *sprite)
{
- if (sprite->data[5] >= gUnknown_0850E768[sprite->data[4]])
+ if (sprite->sTimer >= sStepTimes[sprite->sSpeed])
return FALSE;
- gUnknown_0850E754[sprite->data[4]][sprite->data[5]](sprite, sprite->data[3]);
+ sNpcStepFuncTables[sprite->sSpeed][sprite->sTimer](sprite, sprite->sDirection);
- sprite->data[5]++;
+ sprite->sTimer++;
- if (sprite->data[5] < gUnknown_0850E768[sprite->data[4]])
+ if (sprite->sTimer < sStepTimes[sprite->sSpeed])
return FALSE;
return TRUE;
}
-void sub_80976DC(struct Sprite *sprite, u8 direction)
+#undef sTimer
+
+#define sTimer data[4]
+#define sNumSteps data[5]
+
+static void SetWalkSlowSpriteData(struct Sprite *sprite, u8 direction)
{
- sprite->data[3] = direction;
- sprite->data[4] = 0;
- sprite->data[5] = 0;
+ sprite->sDirection = direction;
+ sprite->sTimer = 0;
+ sprite->sNumSteps = 0;
}
-bool8 sub_80976EC(struct Sprite *sprite)
+static bool8 UpdateWalkSlowAnim(struct Sprite *sprite)
{
- if (!(sprite->data[4] & 1))
+ if (!(sprite->sTimer & 1))
{
- Step1(sprite, sprite->data[3]);
- sprite->data[5]++;
+ Step1(sprite, sprite->sDirection);
+ sprite->sNumSteps++;
}
- sprite->data[4]++;
+ sprite->sTimer++;
- if (sprite->data[5] > 15)
+ if (sprite->sNumSteps > 15)
return TRUE;
else
return FALSE;
}
+#undef sTimer
+#undef sNumSteps
+
static const s8 sFigure8XOffsets[FIGURE_8_LENGTH] = {
1, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 1, 2, 2, 1, 2,
@@ -8510,87 +8475,97 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite)
return finished;
}
-static const s8 gUnknown_0850E802[] = {
- -4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
+static const s8 sJumpY_High[] = {
+ -4, -6, -8, -10, -11, -12, -12, -12,
+ -11, -10, -9, -8, -6, -4, 0, 0
};
-static const s8 gUnknown_0850E812[] = {
- 0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
+static const s8 sJumpY_Low[] = {
+ 0, -2, -3, -4, -5, -6, -6, -6,
+ -5, -5, -4, -3, -2, 0, 0, 0
};
-static const s8 gUnknown_0850E822[] = {
- -2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
+static const s8 sJumpY_Normal[] = {
+ -2, -4, -6, -8, -9, -10, -10, -10,
+ -9, -8, -6, -5, -3, -2, 0, 0
};
-static const s8 *const gUnknown_0850E834[] = {
- gUnknown_0850E802,
- gUnknown_0850E812,
- gUnknown_0850E822
+static const s8 *const sJumpYTable[] = {
+ [JUMP_TYPE_HIGH] = sJumpY_High,
+ [JUMP_TYPE_LOW] = sJumpY_Low,
+ [JUMP_TYPE_NORMAL] = sJumpY_Normal
};
-s16 sub_8097820(s16 a1, u8 a2)
+static s16 GetJumpY(s16 i, u8 type)
{
- return gUnknown_0850E834[a2][a1];
+ return sJumpYTable[type][i];
}
-void sub_809783C(struct Sprite *sprite, u8 a2, u8 a3, u8 a4)
+#define sJumpType data[5]
+#define sTimer data[6]
+
+static void SetJumpSpriteData(struct Sprite *sprite, u8 direction, u8 speed, u8 type)
{
- sprite->data[3] = a2;
- sprite->data[4] = a3;
- sprite->data[5] = a4;
- sprite->data[6] = 0;
+ sprite->sDirection = direction;
+ sprite->sSpeed = speed;
+ sprite->sJumpType = type;
+ sprite->sTimer = 0;
}
-u8 sub_809785C(struct Sprite *sprite)
+static u8 DoJumpSpriteMovement(struct Sprite *sprite)
{
- s16 v5[] = {16, 16, 32};
- u8 v6[] = {0, 0, 1};
- u8 v2 = 0;
+ s16 speedToTime[] = {16, 16, 32};
+ u8 speedToShift[] = {0, 0, 1};
+ u8 result = 0;
- if (sprite->data[4])
- Step1(sprite, sprite->data[3]);
+ if (sprite->sSpeed)
+ Step1(sprite, sprite->sDirection);
- sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
+ sprite->pos2.y = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType);
- sprite->data[6]++;
+ sprite->sTimer++;
- if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
- v2 = 1;
+ if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1)
+ result = JUMP_HALFWAY;
- if (sprite->data[6] >= v5[sprite->data[4]])
+ if (sprite->sTimer >= speedToTime[sprite->sSpeed])
{
sprite->pos2.y = 0;
- v2 = -1;
+ result = JUMP_FINISHED;
}
- return v2;
+ return result;
}
-u8 sub_80978E4(struct Sprite *sprite)
+static u8 DoJumpSpecialSpriteMovement(struct Sprite *sprite)
{
- s16 v5[] = {32, 32, 64};
- u8 v6[] = {1, 1, 2};
- u8 v2 = 0;
+ s16 speedToTime[] = {32, 32, 64};
+ u8 speedToShift[] = {1, 1, 2};
+ u8 result = 0;
- if (sprite->data[4] && !(sprite->data[6] & 1))
- Step1(sprite, sprite->data[3]);
+ if (sprite->sSpeed && !(sprite->sTimer & 1))
+ Step1(sprite, sprite->sDirection);
- sprite->pos2.y = sub_8097820(sprite->data[6] >> v6[sprite->data[4]], sprite->data[5]);
+ sprite->pos2.y = GetJumpY(sprite->sTimer >> speedToShift[sprite->sSpeed], sprite->sJumpType);
- sprite->data[6]++;
+ sprite->sTimer++;
- if (sprite->data[6] == (v5[sprite->data[4]] >> 1))
- v2 = 1;
+ if (sprite->sTimer == speedToTime[sprite->sSpeed] >> 1)
+ result = JUMP_HALFWAY;
- if (sprite->data[6] >= v5[sprite->data[4]])
+ if (sprite->sTimer >= speedToTime[sprite->sSpeed])
{
sprite->pos2.y = 0;
- v2 = -1;
+ result = JUMP_FINISHED;
}
- return v2;
+ return result;
}
+#undef sSpeed
+#undef sJumpType
+#undef sTimer
+
static void SetMovementDelay(struct Sprite *sprite, s16 timer)
{
sprite->data[3] = timer;
@@ -8598,9 +8573,7 @@ static void SetMovementDelay(struct Sprite *sprite, s16 timer)
static bool8 WaitForMovementDelay(struct Sprite *sprite)
{
- sprite->data[3]--;
-
- if (sprite->data[3] == 0)
+ if (--sprite->data[3] == 0)
return TRUE;
else
return FALSE;
@@ -8621,7 +8594,7 @@ bool8 SpriteAnimEnded(struct Sprite *sprite)
return FALSE;
}
-void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
+void UpdateObjectEventSpriteInvisibility(struct Sprite *sprite, bool8 invisible)
{
u16 x, y;
s16 x2, y2;
@@ -8642,21 +8615,21 @@ void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
x2 = x - (sprite->centerToCornerVecX >> 1);
y2 = y - (sprite->centerToCornerVecY >> 1);
- if ((s16)x > 255 || x2 < -16)
+ if ((s16)x >= DISPLAY_WIDTH + 16 || x2 < -16)
sprite->invisible = TRUE;
- if ((s16)y > 175 || y2 < -16)
+ if ((s16)y >= DISPLAY_HEIGHT + 16 || y2 < -16)
sprite->invisible = TRUE;
}
-#define tInvisible data[2]
-#define tAnimNum data[3]
-#define tAnimState data[4]
+#define sInvisible data[2]
+#define sAnimNum data[3]
+#define sAnimState data[4]
static void UpdateObjectEventSprite(struct Sprite *sprite)
{
UpdateObjectEventSpritePosition(sprite);
SetObjectSubpriorityByZCoord(sprite->data[1], sprite, 1);
- UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible);
+ UpdateObjectEventSpriteInvisibility(sprite, sprite->sInvisible);
}
// Unused
@@ -8679,7 +8652,7 @@ static int GetObjectEventSpriteId(u8 objectEventId) // this should return a u8,
for (i = 0; i < MAX_SPRITES; i++)
{
struct Sprite *sprite = &gSprites[i];
- if (sprite->inUse && sprite->callback == UpdateObjectEventSprite && (u8)sprite->data[0] == objectEventId)
+ if (sprite->inUse && sprite->callback == UpdateObjectEventSprite && (u8)sprite->sObjEventId == objectEventId)
return i;
}
return MAX_SPRITES;
@@ -8731,9 +8704,9 @@ void SetObjectEventSpriteInvisibility(u8 objectEventId, bool32 invisible)
return;
if (invisible)
- gSprites[spriteId].tInvisible = TRUE;
+ gSprites[spriteId].sInvisible = TRUE;
else
- gSprites[spriteId].tInvisible = FALSE;
+ gSprites[spriteId].sInvisible = FALSE;
}
bool32 IsObjectEventSpriteInvisible(u8 objectEventId)
@@ -8743,7 +8716,7 @@ bool32 IsObjectEventSpriteInvisible(u8 objectEventId)
if (spriteId == MAX_SPRITES)
return FALSE;
- return (gSprites[spriteId].tInvisible == TRUE);
+ return (gSprites[spriteId].sInvisible == TRUE);
}
void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum)
@@ -8752,50 +8725,50 @@ void SetObjectEventSpriteAnim(u8 objectEventId, u8 animNum)
if (spriteId != MAX_SPRITES)
{
- gSprites[spriteId].tAnimNum = animNum;
- gSprites[spriteId].tAnimState = 0;
+ gSprites[spriteId].sAnimNum = animNum;
+ gSprites[spriteId].sAnimState = 0;
}
}
static void MoveUnionRoomObjectUp(struct Sprite *sprite)
{
- switch(sprite->tAnimState)
+ switch(sprite->sAnimState)
{
case 0:
sprite->pos2.y = 0;
- sprite->tAnimState++;
+ sprite->sAnimState++;
case 1:
sprite->pos2.y -= 8;
- if (sprite->pos2.y == -160)
+ if (sprite->pos2.y == -DISPLAY_HEIGHT)
{
sprite->pos2.y = 0;
- sprite->tInvisible = TRUE;
- sprite->tAnimNum = 0;
- sprite->tAnimState = 0;
+ sprite->sInvisible = TRUE;
+ sprite->sAnimNum = 0;
+ sprite->sAnimState = 0;
}
}
}
static void MoveUnionRoomObjectDown(struct Sprite *sprite)
{
- switch(sprite->tAnimState)
+ switch(sprite->sAnimState)
{
case 0:
- sprite->pos2.y = -160;
- sprite->tAnimState++;
+ sprite->pos2.y = -DISPLAY_HEIGHT;
+ sprite->sAnimState++;
case 1:
sprite->pos2.y += 8;
if(sprite->pos2.y == 0)
{
- sprite->tAnimNum = 0;
- sprite->tAnimState = 0;
+ sprite->sAnimNum = 0;
+ sprite->sAnimState = 0;
}
}
}
static void UpdateObjectEventSpritePosition(struct Sprite *sprite)
{
- switch(sprite->tAnimNum)
+ switch(sprite->sAnimNum)
{
case UNION_ROOM_SPAWN_IN:
MoveUnionRoomObjectDown(sprite);
@@ -8806,7 +8779,7 @@ static void UpdateObjectEventSpritePosition(struct Sprite *sprite)
case 0:
break;
default:
- sprite->tAnimNum = 0;
+ sprite->sAnimNum = 0;
break;
}
}
@@ -8818,7 +8791,7 @@ bool32 IsObjectEventSpriteAnimating(u8 objectEventId)
if (spriteId == MAX_SPRITES)
return FALSE;
- if (gSprites[spriteId].tAnimNum != 0)
+ if (gSprites[spriteId].sAnimNum != 0)
return TRUE;
return FALSE;
@@ -8830,11 +8803,11 @@ u32 StartFieldEffectForObjectEvent(u8 fieldEffectId, struct ObjectEvent *objectE
return FieldEffectStart(fieldEffectId);
}
-void DoShadowFieldEffect(struct ObjectEvent *objectEvent)
+static void DoShadowFieldEffect(struct ObjectEvent *objectEvent)
{
if (!objectEvent->hasShadow)
{
- objectEvent->hasShadow = 1;
+ objectEvent->hasShadow = TRUE;
StartFieldEffectForObjectEvent(FLDEFF_SHADOW, objectEvent);
}
}
@@ -8874,11 +8847,11 @@ u8 (*const gMovementActionFuncs_FlyDown[])(struct ObjectEvent *, struct Sprite *
u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
bool32 ableToStore = FALSE;
- if (gLockedAnimObjectEvents == NULL)
+ if (sLockedAnimObjectEvents == NULL)
{
- gLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents));
- gLockedAnimObjectEvents->objectEventIds[0] = objectEvent->localId;
- gLockedAnimObjectEvents->count = 1;
+ sLockedAnimObjectEvents = AllocZeroed(sizeof(struct LockedAnimObjectEvents));
+ sLockedAnimObjectEvents->objectEventIds[0] = objectEvent->localId;
+ sLockedAnimObjectEvents->count = 1;
ableToStore = TRUE;
}
else
@@ -8888,10 +8861,10 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
bool32 found;
for (firstFreeSlot = 16, found = FALSE, i = 0; i < 16; i++)
{
- if (firstFreeSlot == 16 && gLockedAnimObjectEvents->objectEventIds[i] == 0)
+ if (firstFreeSlot == 16 && sLockedAnimObjectEvents->objectEventIds[i] == 0)
firstFreeSlot = i;
- if (gLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId)
+ if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId)
{
found = TRUE;
break;
@@ -8900,8 +8873,8 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
if (!found && firstFreeSlot != 16)
{
- gLockedAnimObjectEvents->objectEventIds[firstFreeSlot] = objectEvent->localId;
- gLockedAnimObjectEvents->count++;
+ sLockedAnimObjectEvents->objectEventIds[firstFreeSlot] = objectEvent->localId;
+ sLockedAnimObjectEvents->count++;
ableToStore = TRUE;
}
}
@@ -8912,7 +8885,7 @@ u8 MovementAction_StoreAndLockAnim_Step0(struct ObjectEvent *objectEvent, struct
objectEvent->facingDirectionLocked = TRUE;
}
- sprite->data[2] = 1;
+ sprite->sActionFuncId = 1;
return TRUE;
}
@@ -8921,19 +8894,19 @@ u8 MovementAction_FreeAndUnlockAnim_Step0(struct ObjectEvent *objectEvent, struc
bool32 ableToStore;
u8 index;
- sprite->data[2] = 1;
- if (gLockedAnimObjectEvents != NULL)
+ sprite->sActionFuncId = 1;
+ if (sLockedAnimObjectEvents != NULL)
{
ableToStore = FALSE;
index = FindLockedObjectEventIndex(objectEvent);
if (index != 16)
{
- gLockedAnimObjectEvents->objectEventIds[index] = 0;
- gLockedAnimObjectEvents->count--;
+ sLockedAnimObjectEvents->objectEventIds[index] = 0;
+ sLockedAnimObjectEvents->count--;
ableToStore = TRUE;
}
- if (gLockedAnimObjectEvents->count == 0)
- FREE_AND_SET_NULL(gLockedAnimObjectEvents);
+ if (sLockedAnimObjectEvents->count == 0)
+ FREE_AND_SET_NULL(sLockedAnimObjectEvents);
if (ableToStore == TRUE)
{
objectEvent->inanimate = GetObjectEventGraphicsInfo(objectEvent->graphicsId)->inanimate;
@@ -8951,13 +8924,13 @@ u8 FindLockedObjectEventIndex(struct ObjectEvent *objectEvent)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
- if (gLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId)
+ if (sLockedAnimObjectEvents->objectEventIds[i] == objectEvent->localId)
return i;
}
return OBJECT_EVENTS_COUNT;
}
-void CreateLevitateMovementTask(struct ObjectEvent *objectEvent)
+static void CreateLevitateMovementTask(struct ObjectEvent *objectEvent)
{
u8 taskId = CreateTask(ApplyLevitateMovement, 0xFF);
struct Task *task = &gTasks[taskId];
@@ -8976,16 +8949,16 @@ static void ApplyLevitateMovement(u8 taskId)
LoadWordFromTwoHalfwords(&task->data[0], (u32 *)&objectEvent); // load the map object pointer.
sprite = &gSprites[objectEvent->spriteId];
- if(!(task->data[2] & 0x3))
+ if(!(task->data[2] & 3))
sprite->pos2.y += task->data[3];
- if(!(task->data[2] & 0xF))
+ if(!(task->data[2] & 15))
task->data[3] = -task->data[3];
task->data[2]++;
}
-void DestroyExtraMovementTask(u8 taskId)
+static void DestroyLevitateMovementTask(u8 taskId)
{
struct ObjectEvent *objectEvent;
struct Task *task = &gTasks[taskId];
@@ -9010,7 +8983,7 @@ void FreezeObjectEventsExceptTwo(u8 objectEventId1, u8 objectEventId2)
u8 MovementAction_FlyUp_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
sprite->pos2.y = 0;
- sprite->data[2]++;
+ sprite->sActionFuncId++;
return FALSE;
}
@@ -9018,15 +8991,15 @@ u8 MovementAction_FlyUp_Step1(struct ObjectEvent *objectEvent, struct Sprite *sp
{
sprite->pos2.y -= 8;
- if(sprite->pos2.y == -160)
- sprite->data[2]++;
+ if(sprite->pos2.y == -DISPLAY_HEIGHT)
+ sprite->sActionFuncId++;
return FALSE;
}
u8 MovementAction_FlyDown_Step0(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
- sprite->pos2.y = -160;
- sprite->data[2]++;
+ sprite->pos2.y = -DISPLAY_HEIGHT;
+ sprite->sActionFuncId++;
return FALSE;
}
@@ -9035,7 +9008,7 @@ u8 MovementAction_FlyDown_Step1(struct ObjectEvent *objectEvent, struct Sprite *
sprite->pos2.y += 8;
if(!sprite->pos2.y)
- sprite->data[2]++;
+ sprite->sActionFuncId++;
return FALSE;
}