Merge branch 'master' of github.com:pret/pokefirered into pokemon_storage_system

This commit is contained in:
PikalaxALT
2020-03-16 07:51:21 -04:00
41 changed files with 10009 additions and 25762 deletions
+1 -1
View File
@@ -461,7 +461,7 @@ u8 BattleSetup_GetTerrainId(void)
return BATTLE_TERRAIN_GRASS;
if (MetatileBehavior_IsLongGrass(tileBehavior))
return BATTLE_TERRAIN_LONG_GRASS;
if (MetatileBehavior_IsSandOrDeepSand(tileBehavior))
if (MetatileBehavior_IsSandOrShallowFlowingWater(tileBehavior))
return BATTLE_TERRAIN_SAND;
switch (gMapHeader.mapType)
{
-653
View File
@@ -1,653 +0,0 @@
#include "global.h"
#include "event_object_movement.h"
#include "field_effect.h"
#include "field_ground_effect.h"
// This is part of evobjmv.c (see assert statement in DoObjectUnionRoomWarpYDisplacement).
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite);
bool8 FreezeObjectEvent(struct ObjectEvent * objectEvent)
{
if (objectEvent->heldMovementActive || objectEvent->frozen)
return TRUE;
objectEvent->frozen = TRUE;
objectEvent->spriteAnimPausedBackup = gSprites[objectEvent->spriteId].animPaused;
objectEvent->spriteAffineAnimPausedBackup = gSprites[objectEvent->spriteId].affineAnimPaused;
gSprites[objectEvent->spriteId].animPaused = TRUE;
gSprites[objectEvent->spriteId].affineAnimPaused = TRUE;
return FALSE;
}
void FreezeObjectEvents(void)
{
u8 i;
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].active && i != gPlayerAvatar.objectEventId)
FreezeObjectEvent(&gObjectEvents[i]);
}
}
void FreezeObjectEventsExceptOne(u8 noFreeze)
{
u8 i;
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (i != noFreeze && gObjectEvents[i].active && i != gPlayerAvatar.objectEventId)
FreezeObjectEvent(&gObjectEvents[i]);
}
}
void UnfreezeObjectEvent(struct ObjectEvent * objectEvent)
{
if (objectEvent->active && objectEvent->frozen)
{
objectEvent->frozen = FALSE;
gSprites[objectEvent->spriteId].animPaused = objectEvent->spriteAnimPausedBackup;
gSprites[objectEvent->spriteId].affineAnimPaused = objectEvent->spriteAffineAnimPausedBackup;
}
}
void UnfreezeObjectEvents(void)
{
u8 i;
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].active)
UnfreezeObjectEvent(&gObjectEvents[i]);
}
}
#define tObjectEventId data[0]
#define tZCoord data[1]
#define tInvisible data[2]
#define tDirection data[3]
#define tSpeed data[4]
#define tStepNo data[5]
static void little_step(struct Sprite * sprite, u8 direction)
{
sprite->pos1.x += gUnknown_83A64C8[direction].x;
sprite->pos1.y += gUnknown_83A64C8[direction].y;
}
static void double_little_steps(struct Sprite * sprite, u8 direction)
{
sprite->pos1.x += 2 * gUnknown_83A64C8[direction].x;
sprite->pos1.y += 2 * gUnknown_83A64C8[direction].y;
}
static void triple_little_steps(struct Sprite * sprite, u8 direction)
{
sprite->pos1.x += 2 * gUnknown_83A64C8[direction].x + gUnknown_83A64C8[direction].x;
sprite->pos1.y += 2 * gUnknown_83A64C8[direction].y + gUnknown_83A64C8[direction].y;
}
static void quad_little_steps(struct Sprite * sprite, u8 direction)
{
sprite->pos1.x += 4 * gUnknown_83A64C8[direction].x;
sprite->pos1.y += 4 * gUnknown_83A64C8[direction].y;
}
static void oct_little_steps(struct Sprite * sprite, u8 direction)
{
sprite->pos1.x += 8 * gUnknown_83A64C8[direction].x;
sprite->pos1.y += 8 * gUnknown_83A64C8[direction].y;
}
void oamt_npc_ministep_reset(struct Sprite * sprite, u8 direction, u8 speed)
{
sprite->tDirection = direction;
sprite->tSpeed = speed;
sprite->tStepNo = 0;
}
typedef void (*SpriteStepFunc)(struct Sprite *sprite, u8 direction);
static const SpriteStepFunc sSpeed0[] = {
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step,
little_step
};
static const SpriteStepFunc sSpeed1[] = {
double_little_steps,
double_little_steps,
double_little_steps,
double_little_steps,
double_little_steps,
double_little_steps,
double_little_steps,
double_little_steps
};
static const SpriteStepFunc sSpeed2[] = {
double_little_steps,
triple_little_steps,
triple_little_steps,
double_little_steps,
triple_little_steps,
triple_little_steps
};
static const SpriteStepFunc sSpeed3[] = {
quad_little_steps,
quad_little_steps,
quad_little_steps,
quad_little_steps
};
static const SpriteStepFunc sSpeed4[] = {
oct_little_steps,
oct_little_steps
};
static const SpriteStepFunc *const sSpriteStepFuncsBySpeed[] = {
sSpeed0,
sSpeed1,
sSpeed2,
sSpeed3,
sSpeed4
};
static const s16 sSpriteStepCountsBySpeed[] = {
NELEMS(sSpeed0),
NELEMS(sSpeed1),
NELEMS(sSpeed2),
NELEMS(sSpeed3),
NELEMS(sSpeed4)
};
bool8 obj_npc_ministep(struct Sprite *sprite)
{
if (sprite->tStepNo >= sSpriteStepCountsBySpeed[sprite->tSpeed])
return FALSE;
sSpriteStepFuncsBySpeed[sprite->tSpeed][sprite->tStepNo](sprite, sprite->tDirection);
sprite->tStepNo++;
if (sprite->tStepNo < sSpriteStepCountsBySpeed[sprite->tSpeed])
return FALSE;
return TRUE;
}
#undef tStepNo
#undef tSpeed
#undef tDirection
#define tDirection data[3]
#define tDelay data[4]
#define tStepNo data[5]
void sub_8068BBC(struct Sprite *sprite, u8 direction)
{
sprite->tDirection = direction;
sprite->tDelay = 0;
sprite->tStepNo = 0;
}
// used by an_walk_any_2
bool8 sub_8068BCC(struct Sprite *sprite)
{
if (!(sprite->tDelay & 1))
{
little_step(sprite, sprite->tDirection);
sprite->tStepNo++;
}
sprite->tDelay++;
if (sprite->tStepNo > 15)
return TRUE;
else
return FALSE;
}
void sub_8068C08(struct Sprite *sprite, u8 direction)
{
sprite->tDirection = direction;
sprite->tDelay = 0;
sprite->tStepNo = 0;
}
bool8 sub_8068C18(struct Sprite *sprite)
{
if (++sprite->tDelay < 3)
{
little_step(sprite, sprite->tDirection);
sprite->tStepNo++;
}
else
sprite->tDelay = 0;
if (sprite->tStepNo > 15)
return TRUE;
else
return FALSE;
}
void sub_8068C58(struct Sprite *sprite, u8 direction)
{
sprite->tDirection = direction;
sprite->tDelay = 0;
sprite->tStepNo = 0;
}
bool8 sub_8068C68(struct Sprite *sprite)
{
if (++sprite->tDelay > 9)
{
sprite->tDelay = 0;
little_step(sprite, sprite->tDirection);
sprite->tStepNo++;
}
if (sprite->tStepNo > 15)
return TRUE;
else
return FALSE;
}
void sub_8068CA4(struct Sprite *sprite, u8 direction)
{
sprite->tDirection = direction;
sprite->tDelay = 0;
sprite->tStepNo = 0;
}
bool8 sub_8068CB4(struct Sprite *sprite)
{
if ((++sprite->tDelay) & 1)
{
little_step(sprite, sprite->tDirection);
sprite->tStepNo++;
}
else
{
double_little_steps(sprite, sprite->tDirection);
sprite->tStepNo += 2;
}
if (sprite->tStepNo > 15)
return TRUE;
else
return FALSE;
}
#undef tStepNo
#undef tDelay
#undef tDirection
#define tDirection data[3]
#define tJumpSpeed data[4]
#define tJumpHeight data[5]
#define tStepNo data[6]
static const s8 sJumpHeight12[] = {
-4, -6, -8, -10, -11, -12, -12, -12, -11, -10, -9, -8, -6, -4, 0, 0
};
static const s8 sJumpHeight6[] = {
0, -2, -3, -4, -5, -6, -6, -6, -5, -5, -4, -3, -2, 0, 0, 0
};
static const s8 sJumpHeight10[] = {
-2, -4, -6, -8, -9, -10, -10, -10, -9, -8, -6, -5, -3, -2, 0, 0
};
static const s8 *const sYDisplacementPtrs[] = {
sJumpHeight12,
sJumpHeight6,
sJumpHeight10
};
static s16 GetJumpYDisplacement(s16 stepno, u8 jumpno)
{
return sYDisplacementPtrs[jumpno][stepno];
}
void sub_8068D1C(struct Sprite *sprite, u8 direction, u8 speed, u8 height)
{
sprite->tDirection = direction;
sprite->tJumpSpeed = speed;
sprite->tJumpHeight = height;
sprite->tStepNo = 0;
}
u8 sub_8068D3C(struct Sprite *sprite)
{
s16 duration[3] = {0x10, 0x10, 0x20};
u8 shifts[3] = {0, 0, 1};
u8 jumpPhase = 0;
if (sprite->tJumpSpeed != 0)
little_step(sprite, sprite->tDirection);
sprite->pos2.y = GetJumpYDisplacement(sprite->tStepNo >> shifts[sprite->tJumpSpeed], sprite->tJumpHeight);
sprite->tStepNo++;
if (sprite->tStepNo == (duration[sprite->tJumpSpeed] >> 1))
jumpPhase = 1;
if (sprite->tStepNo >= duration[sprite->tJumpSpeed])
{
sprite->pos2.y = 0;
jumpPhase = -1;
}
return jumpPhase;
}
u8 sub_8068DC4(struct Sprite *sprite)
{
s16 duration[3] = {0x20, 0x20, 0x40};
u8 shifts[3] = {1, 1, 2};
u8 jumpPhase = 0;
if (sprite->tJumpSpeed != 0 && !(sprite->tStepNo & 1))
little_step(sprite, sprite->tDirection);
sprite->pos2.y = GetJumpYDisplacement(sprite->tStepNo >> shifts[sprite->tJumpSpeed], sprite->tJumpHeight);
sprite->tStepNo++;
if (sprite->tStepNo == (duration[sprite->tJumpSpeed] >> 1))
jumpPhase = 1;
if (sprite->tStepNo >= duration[sprite->tJumpSpeed])
{
sprite->pos2.y = 0;
jumpPhase = -1;
}
return jumpPhase;
}
#undef tStepNo
#undef tJumpHeight
#undef tJumpSpeed
#undef tDirection
#define tDelay data[3]
void SetObjectEventStepTimer(struct Sprite *sprite, s16 delay)
{
sprite->tDelay = delay;
}
bool8 RunObjectEventStepTimer(struct Sprite *sprite)
{
sprite->tDelay--;
if (sprite->tDelay == 0)
return TRUE;
else
return FALSE;
}
#undef tDelay
void obj_anim_image_set_and_seek(struct Sprite *sprite, u8 animNum, u8 animCmdIndex)
{
sprite->animNum = animNum;
sprite->animPaused = FALSE;
SeekSpriteAnim(sprite, animCmdIndex);
}
bool8 SpriteAnimEnded(struct Sprite *sprite)
{
if (sprite->animEnded)
return TRUE;
else
return FALSE;
}
void UpdateObjectEventSpriteVisibility(struct Sprite *sprite, bool8 invisible)
{
u16 x, y;
s16 x2, y2;
sprite->invisible = invisible;
if (sprite->coordOffsetEnabled)
{
x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX + gSpriteCoordOffsetX;
y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY + gSpriteCoordOffsetY;
}
else
{
x = sprite->pos1.x + sprite->pos2.x + sprite->centerToCornerVecX;
y = sprite->pos1.y + sprite->pos2.y + sprite->centerToCornerVecY;
}
x2 = x - (sprite->centerToCornerVecX >> 1);
y2 = y - (sprite->centerToCornerVecY >> 1);
if ((s16)x > 255 || x2 < -16)
sprite->invisible = TRUE;
if ((s16)y > 175 || y2 < -16)
sprite->invisible = TRUE;
}
void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *sprite)
{
DoObjectUnionRoomWarpYDisplacement(sprite);
SetObjectSubpriorityByZCoord(sprite->tZCoord, sprite, 1);
UpdateObjectEventSpriteVisibility(sprite, sprite->tInvisible);
}
void sub_8068FD0(void)
{
s32 i;
for (i = 0; i < MAX_SPRITES; i++)
{
struct Sprite *sprite = &gSprites[i];
if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility)
{
DestroySprite(sprite);
}
}
}
#define tUnionRoomWarpAnimNo data[3]
#define tUnionRoomWarpAnimState data[4]
static int GetObjectEventSpriteId(u8 objectEventId)
{
int i;
for (i = 0; i < MAX_SPRITES; i++)
{
struct Sprite *sprite = &gSprites[i];
if (sprite->inUse && sprite->callback == UpdateObjectEventSpriteSubpriorityAndVisibility && (u8)sprite->tObjectEventId == objectEventId)
{
return i;
}
}
return MAX_SPRITES;
}
void TurnObjectEvent(u8 objectEventId, u8 direction)
{
u8 animNum;
u8 spriteId = GetObjectEventSpriteId(objectEventId);
if (spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
StartSpriteAnim(sprite, ObjectEventDirectionToImageAnimId(direction));
}
}
void RfuUnionObjectSetFacingDirection(u8 objectEventId, u8 direction)
{
u8 animNum;
int spriteId = GetObjectEventSpriteId(objectEventId);
u16 baseBlock;
if (spriteId != MAX_SPRITES)
{
struct Sprite *sprite = &gSprites[spriteId];
const struct ObjectEventGraphicsInfo * info = GetObjectEventGraphicsInfo(direction);
baseBlock = sprite->oam.tileNum;
sprite->oam = *info->oam;
sprite->oam.tileNum = baseBlock;
sprite->oam.paletteNum = info->paletteSlot;
sprite->images = info->images;
if (info->subspriteTables == NULL)
{
sprite->subspriteTables = NULL;
sprite->subspriteTableNum = 0;
sprite->subspriteMode = SUBSPRITES_OFF;
}
else
{
SetSubspriteTables(sprite, info->subspriteTables);
sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY;
}
StartSpriteAnim(sprite, 0);
}
}
void RfuUnionObjectToggleInvisibility(u8 objectEventId, bool32 invisible)
{
u8 spriteId = GetObjectEventSpriteId(objectEventId);
if (spriteId != MAX_SPRITES)
{
if (invisible)
gSprites[spriteId].tInvisible = TRUE;
else
gSprites[spriteId].tInvisible = FALSE;
}
}
bool32 RfuUnionObjectIsInvisible(u8 objectEventId)
{
u8 spriteId = GetObjectEventSpriteId(objectEventId);
if (spriteId == MAX_SPRITES)
return FALSE;
return gSprites[spriteId].tInvisible == TRUE;
}
void RfuUnionObjectStartWarp(u8 objectEventId, u8 animNo)
{
u8 spriteId = GetObjectEventSpriteId(objectEventId);
if (spriteId != MAX_SPRITES)
{
gSprites[spriteId].tUnionRoomWarpAnimNo = animNo;
gSprites[spriteId].tUnionRoomWarpAnimState = 0;
}
}
static void DoObjectUnionRoomWarpYDisplacementUpwards(struct Sprite * sprite)
{
switch (sprite->tUnionRoomWarpAnimState)
{
case 0:
sprite->pos2.y = 0;
sprite->tUnionRoomWarpAnimState++;
// fallthrough
case 1:
if ((sprite->pos2.y -= 8) == -160)
{
sprite->pos2.y = 0;
sprite->tInvisible = 1;
sprite->tUnionRoomWarpAnimNo = 0;
sprite->tUnionRoomWarpAnimState = 0;
}
break;
}
}
static void DoObjectUnionRoomWarpYDisplacementDownwards(struct Sprite * sprite)
{
switch (sprite->tUnionRoomWarpAnimState)
{
case 0:
sprite->pos2.y = -160;
sprite->tUnionRoomWarpAnimState++;
// fallthrough
case 1:
if ((sprite->pos2.y += 8) == 0)
{
sprite->tUnionRoomWarpAnimNo = 0;
sprite->tUnionRoomWarpAnimState = 0;
}
break;
}
}
static void DoObjectUnionRoomWarpYDisplacement(struct Sprite * sprite)
{
switch (sprite->tUnionRoomWarpAnimNo)
{
case 0:
break;
case 1:
DoObjectUnionRoomWarpYDisplacementDownwards(sprite);
break;
case 2:
DoObjectUnionRoomWarpYDisplacementUpwards(sprite);
break;
default:
sprite->tUnionRoomWarpAnimNo = 0;
AGB_ASSERT_EX(0, ABSPATH("evobjmv.c"), 13331);
}
}
bool32 RfuUnionObjectIsWarping(u8 objectEventId)
{
u8 spriteId = GetObjectEventSpriteId(objectEventId);
if (spriteId == MAX_SPRITES)
return FALSE;
if (gSprites[spriteId].tUnionRoomWarpAnimNo)
return TRUE;
else
return FALSE;
}
#undef tUnionRoomWarpAnimState
#undef tUnionRoomWarpAnimNo
#undef tInvisible
#undef tZCoord
#undef tObjectEventId
u32 oe_exec_and_other_stuff(u8 fieldEffectId, struct ObjectEvent * objectEvent)
{
ObjectEventGetLocalIdAndMap(objectEvent, (u8 *)&gFieldEffectArguments[0], (u8 *)&gFieldEffectArguments[1], (u8 *)&gFieldEffectArguments[2]);
return FieldEffectStart(fieldEffectId);
}
void DoShadowFieldEffect(struct ObjectEvent *objectEvent)
{
if (!objectEvent->hasShadow)
{
objectEvent->hasShadow = TRUE;
oe_exec_and_other_stuff(FLDEFF_SHADOW, objectEvent);
}
}
void DoRippleFieldEffect(struct ObjectEvent *objectEvent, struct Sprite *sprite)
{
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(objectEvent->graphicsId);
gFieldEffectArguments[0] = sprite->pos1.x;
gFieldEffectArguments[1] = sprite->pos1.y + (graphicsInfo->height >> 1) - 2;
gFieldEffectArguments[2] = 151;
gFieldEffectArguments[3] = 3;
FieldEffectStart(FLDEFF_RIPPLE);
}
+1 -1
View File
@@ -109,5 +109,5 @@ void Script_FacePlayer(void)
void Script_ClearHeldMovement(void)
{
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[gSelectedObjectEvent]);
ObjectEventClearHeldMovementIfActive(&gObjectEvents[gSelectedObjectEvent]);
}
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1004,7 +1004,7 @@ static void FCSetup_ResetTasksAndSpriteResources(void)
ResetSpriteData();
ResetAllPicSprites();
ResetPaletteFade();
npc_paltag_set_load(0);
InitObjectEventPalettes(0);
gReservedSpritePaletteCount = 7;
}
+1 -1
View File
@@ -549,7 +549,7 @@ static void CameraPanningCB_PanAhead(void)
gUnknown_3000E9C = 0;
}
var = player_get_direction_upper_nybble();
var = GetPlayerMovementDirection();
if (var == 2)
{
if (sVerticalCameraPan > -8)
+8 -8
View File
@@ -1863,7 +1863,7 @@ static bool8 LavaridgeGymB1FWarpExitEffect_3(struct Task * task, struct ObjectEv
objectEvent->invisible = FALSE;
CameraObjectReset1();
PlaySE(SE_W091);
ObjectEventSetHeldMovement(objectEvent, sub_8064194(DIR_EAST));
ObjectEventSetHeldMovement(objectEvent, GetJumpMovementAction(DIR_EAST));
}
return FALSE;
}
@@ -1949,7 +1949,7 @@ static bool8 LavaridgeGym1FWarpEffect_2(struct Task * task, struct ObjectEvent *
} else
{
task->data[1]++;
ObjectEventSetHeldMovement(objectEvent, GetStepInPlaceDelay4AnimId(objectEvent->facingDirection));
ObjectEventSetHeldMovement(objectEvent, GetWalkInPlaceFastMovementAction(objectEvent->facingDirection));
PlaySE(SE_FU_ZUZUZU);
}
}
@@ -2063,7 +2063,7 @@ static void EscapeRopeFieldEffect_Step1(struct Task * task)
}
if (data[4] == 1 && !gPaletteFade.active && BGMusicStopped() == TRUE)
{
ObjectEventSetDirection(playerObj, task->data[15]);
SetObjectEventDirection(playerObj, task->data[15]);
sub_80555E0();
WarpIntoMap();
gFieldCallback = FieldCallback_EscapeRopeExit;
@@ -3025,7 +3025,7 @@ static void UseVsSeekerEffect_3(struct Task * task)
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(2));
else
ObjectEventSetGraphicsId(playerObj, GetPlayerAvatarGraphicsIdByStateId(0));
ObjectEventForceSetSpecialAnim(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection));
ObjectEventForceSetHeldMovement(playerObj, GetFaceDirectionMovementAction(playerObj->facingDirection));
task->data[0]++;
}
}
@@ -3202,7 +3202,7 @@ static void UseFlyEffect_7(struct Task * task)
if ((++task->data[2]) >= 10)
{
struct ObjectEvent * objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
ObjectEventClearAnimIfSpecialAnimActive(objectEvent);
ObjectEventClearHeldMovementIfActive(objectEvent);
objectEvent->inanimate = FALSE;
objectEvent->hasShadow = FALSE;
sub_8087204(task->data[1], objectEvent->spriteId);
@@ -3511,7 +3511,7 @@ static void FlyInEffect_4(struct Task * task)
objectEvent = &gObjectEvents[gPlayerAvatar.objectEventId];
sprite = &gSprites[objectEvent->spriteId];
objectEvent->inanimate = FALSE;
sub_805F724(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y);
MoveObjectEventToMapCoords(objectEvent, objectEvent->currentCoords.x, objectEvent->currentCoords.y);
sprite->pos2.x = 0;
sprite->pos2.y = 0;
sprite->coordOffsetEnabled = TRUE;
@@ -3642,7 +3642,7 @@ u32 FldEff_MoveDeoxysRock(void)
y = objectEvent->currentCoords.y - 7;
x = (gFieldEffectArguments[3] - x) * 16;
y = (gFieldEffectArguments[4] - y) * 16;
npc_coords_shift(objectEvent, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7);
ShiftObjectEventCoords(objectEvent, gFieldEffectArguments[3] + 7, gFieldEffectArguments[4] + 7);
taskId = CreateTask(Task_MoveDeoxysRock_Step, 0x50);
gTasks[taskId].data[1] = objectEvent->spriteId;
gTasks[taskId].data[2] = gSprites[objectEvent->spriteId].pos1.x + x;
@@ -3681,7 +3681,7 @@ static void Task_MoveDeoxysRock_Step(u8 taskId)
objectEvent = &gObjectEvents[data[9]];
sprite->pos1.x = data[2];
sprite->pos1.y = data[3];
npc_coords_shift_still(objectEvent);
ShiftStillObjectEventCoords(objectEvent);
objectEvent->triggerGroundEffectsOnStop = TRUE;
FieldEffectActiveListRemove(FLDEFF_MOVE_DEOXYS_ROCK);
DestroyTask(taskId);
+1 -1
View File
@@ -253,7 +253,7 @@ void UpdateShadowFieldEffect(struct Sprite * sprite)
sprite->pos1.x = linkedSprite->pos1.x;
sprite->pos1.y = linkedSprite->pos1.y + sprite->data[3];
if (!objectEvent->active || !objectEvent->hasShadow
|| MetatileBehavior_IsTallGrass(objectEvent->currentMetatileBehavior)
|| MetatileBehavior_IsPokeGrass(objectEvent->currentMetatileBehavior)
|| MetatileBehavior_IsSurfable(objectEvent->currentMetatileBehavior)
|| MetatileBehavior_IsSurfable(objectEvent->previousMetatileBehavior)
|| MetatileBehavior_IsReflective(objectEvent->currentMetatileBehavior)
+4 -4
View File
@@ -753,7 +753,7 @@ static void sub_807E80C(u8 taskId)
case 1:
if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE)
{
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
ObjectEventClearHeldMovementIfActive(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], MOVEMENT_ACTION_WALK_NORMAL_UP);
task->data[0] = 2;
}
@@ -853,13 +853,13 @@ static void sub_807EAC4(s16 a0, s16 a1, s16 *a2, s16 *a3, s16 *a4)
playerSpr->pos2.y = *a3 >> 5;
if (playerObj->heldMovementFinished)
{
ObjectEventForceSetSpecialAnim(playerObj, GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
ObjectEventForceSetHeldMovement(playerObj, GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection()));
}
}
static void sub_807EB64(u16 a0, s16 *a1, s16 *a2)
{
ObjectEventForceSetSpecialAnim(&gObjectEvents[gPlayerAvatar.objectEventId], GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceNormalMovementAction(GetPlayerFacingDirection()));
sub_807EBBC(a0, a1, a2);
}
@@ -931,7 +931,7 @@ static void sub_807ECBC(s16 *a0, s16 *a1, s16 *a2, s16 *a3, s16 *a4)
r1 = 3;
else
r1 = 4;
ObjectEventForceSetSpecialAnim(&gObjectEvents[gPlayerAvatar.objectEventId], sub_8064270(r1));
ObjectEventForceSetHeldMovement(&gObjectEvents[gPlayerAvatar.objectEventId], GetWalkInPlaceSlowMovementAction(r1));
sub_807EBBC(behavior, a0, a1);
*a2 = *a0 * 16;
*a3 = *a1 * 16;
+7 -7
View File
@@ -28,7 +28,7 @@ static bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *conne
static bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset);
struct BackupMapLayout VMap;
static EWRAM_DATA u16 gBackupMapLayout[VIRTUAL_MAP_SIZE] = {};
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
EWRAM_DATA struct MapHeader gMapHeader = {};
EWRAM_DATA struct Camera gCamera = {};
static EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {};
@@ -79,8 +79,8 @@ void InitMapFromSavedGame(void)
static void InitMapLayoutData(struct MapHeader * mapHeader)
{
const struct MapLayout * mapLayout = mapHeader->mapLayout;
CpuFastFill(0x03FF03FF, gBackupMapLayout, sizeof(gBackupMapLayout));
VMap.map = gBackupMapLayout;
CpuFastFill(0x03FF03FF, gBackupMapData, sizeof(gBackupMapData));
VMap.map = gBackupMapData;
VMap.Xsize = mapLayout->width + 15;
VMap.Ysize = mapLayout->height + 14;
AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, ABSPATH("fieldmap.c"), 158);
@@ -458,7 +458,7 @@ u32 MapGridGetMetatileAttributeAt(s16 x, s16 y, u8 attr)
return GetBehaviorByMetatileIdAndMapLayout(gMapHeader.mapLayout, metatileId, attr);
}
u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y)
u32 MapGridGetMetatileBehaviorAt(s16 x, s16 y)
{
return MapGridGetMetatileAttributeAt(x, y, 0);
}
@@ -540,7 +540,7 @@ void save_serialize_map(void)
{
for (j = x; j < x + 15; j++)
{
*mapView++ = gBackupMapLayout[width * i + j];
*mapView++ = gBackupMapData[width * i + j];
}
}
}
@@ -581,7 +581,7 @@ static void LoadSavedMapView(void)
{
for (j = x; j < x + 15; j++)
{
gBackupMapLayout[j + width * i] = *mapView;
gBackupMapData[j + width * i] = *mapView;
mapView++;
}
}
@@ -636,7 +636,7 @@ static void sub_8059250(u8 a1)
desti = width * (y + y0);
srci = (y + r8) * 15 + r9;
src = &mapView[srci + i];
dest = &gBackupMapLayout[x0 + desti + j];
dest = &gBackupMapData[x0 + desti + j];
*dest = *src;
i++;
j++;
+17 -17
View File
@@ -7,7 +7,7 @@ static const bool8 sTileSurfable[METATILE_COUNT] = {
[MB_SEMI_DEEP_WATER] = TRUE,
[MB_DEEP_WATER] = TRUE,
[MB_WATERFALL] = TRUE,
[MB_SPLASHING_WATER] = TRUE,
[MB_OCEAN_WATER] = TRUE,
[MB_1A] = TRUE,
[MB_1B] = TRUE,
[MB_EASTWARD_CURRENT] = TRUE,
@@ -24,7 +24,7 @@ static const u8 sTileBitAttributes[32] = {
[4] = 0x08,
};
bool8 MetatileBehavior_UnusedReturnTrue(u8 metatileBehavior)
bool8 MetatileBehavior_IsATile(u8 metatileBehavior)
{
return TRUE;
}
@@ -61,7 +61,7 @@ bool8 MetatileBehavior_IsJumpSouth(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior)
bool8 MetatileBehavior_IsPokeGrass(u8 metatileBehavior)
{
if(metatileBehavior == MB_TALL_GRASS || metatileBehavior == MB_CYCLING_ROAD_PULL_DOWN_GRASS)
return TRUE;
@@ -69,23 +69,23 @@ bool8 MetatileBehavior_IsTallGrass(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_IsMB21OrSand(u8 metatileBehavior)
bool8 MetatileBehavior_IsSand(u8 metatileBehavior)
{
if(metatileBehavior == MB_21 || metatileBehavior == MB_SAND)
if(metatileBehavior == MB_SAND || metatileBehavior == MB_SAND_CAVE)
return TRUE;
else
return FALSE;
}
bool8 MetatileBehavior_IsSandOrDeepSand(u8 metatileBehavior)
bool8 MetatileBehavior_IsSandOrShallowFlowingWater(u8 metatileBehavior)
{
if(metatileBehavior == MB_21 || metatileBehavior == MB_WATERFALL_BOTTOM)
if(metatileBehavior == MB_SAND || metatileBehavior == MB_SHALLOW_WATER)
return TRUE;
else
return FALSE;
}
bool8 MetatileBehavior_ReturnFalse(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsDeepSand(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsReflective(u8 metatileBehavior)
{
@@ -412,7 +412,7 @@ bool8 MetatileBehavior_IsPC(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_IsPondWaterOrPuddle(u8 metatileBehavior)
bool8 MetatileBehavior_HasRipples(u8 metatileBehavior)
{
if(metatileBehavior == MB_POND_WATER || metatileBehavior == MB_PUDDLE)
return TRUE;
@@ -438,7 +438,7 @@ bool8 MetatileBehavior_IsTallGrass_2(u8 metatileBehavior)
bool8 MetatileBehavior_IsLongGrass(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_4(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_5(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsFootprints(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsBridge(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_GetBridgeType(u8 metatileBehavior) { return FALSE; }
@@ -490,9 +490,9 @@ bool8 MetatileBehavior_IsMB19(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_IsWaterfallBottom(u8 metatileBehavior)
bool8 MetatileBehavior_IsShallowFlowingWater(u8 metatileBehavior)
{
if(metatileBehavior == MB_WATERFALL_BOTTOM)
if(metatileBehavior == MB_SHALLOW_WATER)
return TRUE;
else
return FALSE;
@@ -517,7 +517,7 @@ bool8 MetatileBehavior_IsCrackedIce(u8 metatileBehavior)
bool8 MetatileBehavior_IsDeepSemiDeepOrSplashingWater(u8 metatileBehavior)
{
if((metatileBehavior >= MB_SEMI_DEEP_WATER && metatileBehavior <= MB_DEEP_WATER)
|| metatileBehavior == MB_SPLASHING_WATER)
|| metatileBehavior == MB_OCEAN_WATER)
return TRUE;
else
return FALSE;
@@ -580,7 +580,7 @@ bool8 MetatileBehavior_IsSouthBlocked(u8 metatileBehavior)
return FALSE;
}
bool8 MetatileBehavior_ReturnFalse_8(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsShortGrass(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsHotSprings(u8 metatileBehavior)
{
@@ -603,7 +603,7 @@ bool8 MetatileBehavior_UnusedReturnFalse(u8 metatileBehavior){ return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse_2(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse_3(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_UnusedReturnFalse_4(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_10(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsPacifidlogLog(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_11(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsRegionMap(u8 metatileBehavior)
@@ -647,7 +647,7 @@ bool8 MetatileBehavior_IsUnionRoomWarp(u8 metatileBehavior)
bool8 MetatileBehavior_IsWater(u8 metatileBehavior)
{
if((metatileBehavior >= MB_POND_WATER && metatileBehavior <= MB_DEEP_WATER)
|| metatileBehavior == MB_SPLASHING_WATER
|| metatileBehavior == MB_OCEAN_WATER
|| (metatileBehavior >= MB_EASTWARD_CURRENT && metatileBehavior <= MB_SOUTHWARD_CURRENT))
return TRUE;
else
@@ -683,7 +683,7 @@ bool8 MetatileBehavior_ReturnFalse_16(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_17(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_ReturnFalse_18(u8 metatileBehavior) { return FALSE; }
bool8 MetatileBehavior_IsMB22(u8 metatileBehavior)
bool8 MetatileBehavior_IsSeaweed(u8 metatileBehavior)
{
if(metatileBehavior == MB_22)
return TRUE;
+8 -8
View File
@@ -28,10 +28,10 @@ void SetQuestLogObjectEventsData(struct QuestLog * questLog)
questLog->unk_008[i].disableJumpLandingGroundEffect = gObjectEvents[i].disableJumpLandingGroundEffect;
questLog->unk_008[i].fixedPriority = gObjectEvents[i].fixedPriority;
questLog->unk_008[i].mapobj_unk_18 = gObjectEvents[i].facingDirection;
questLog->unk_008[i].mapobj_unk_0B_0 = gObjectEvents[i].mapobj_unk_0B_0;
questLog->unk_008[i].elevation = gObjectEvents[i].elevation;
questLog->unk_008[i].mapobj_unk_0B_0 = gObjectEvents[i].currentElevation;
questLog->unk_008[i].elevation = gObjectEvents[i].previousElevation;
questLog->unk_008[i].graphicsId = gObjectEvents[i].graphicsId;
questLog->unk_008[i].animPattern = gObjectEvents[i].animPattern;
questLog->unk_008[i].animPattern = gObjectEvents[i].movementType;
questLog->unk_008[i].trainerType = gObjectEvents[i].trainerType;
questLog->unk_008[i].localId = gObjectEvents[i].localId;
questLog->unk_008[i].mapNum = gObjectEvents[i].mapNum;
@@ -41,7 +41,7 @@ void SetQuestLogObjectEventsData(struct QuestLog * questLog)
questLog->unk_008[i].trainerRange_berryTreeId = gObjectEvents[i].trainerRange_berryTreeId;
questLog->unk_008[i].previousMetatileBehavior = gObjectEvents[i].previousMetatileBehavior;
questLog->unk_008[i].directionSequenceIndex = gObjectEvents[i].directionSequenceIndex;
questLog->unk_008[i].animId = gObjectEvents[i].animId;
questLog->unk_008[i].animId = gObjectEvents[i].playerCopyableMovement;
}
}
@@ -72,10 +72,10 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl
gObjectEvents[i].disableJumpLandingGroundEffect = questLogObjectEvents[i].disableJumpLandingGroundEffect;
gObjectEvents[i].fixedPriority = questLogObjectEvents[i].fixedPriority;
gObjectEvents[i].facingDirection = questLogObjectEvents[i].mapobj_unk_18;
gObjectEvents[i].mapobj_unk_0B_0 = questLogObjectEvents[i].mapobj_unk_0B_0;
gObjectEvents[i].elevation = questLogObjectEvents[i].elevation;
gObjectEvents[i].currentElevation = questLogObjectEvents[i].mapobj_unk_0B_0;
gObjectEvents[i].previousElevation = questLogObjectEvents[i].elevation;
gObjectEvents[i].graphicsId = questLogObjectEvents[i].graphicsId;
gObjectEvents[i].animPattern = questLogObjectEvents[i].animPattern;
gObjectEvents[i].movementType = questLogObjectEvents[i].animPattern;
gObjectEvents[i].trainerType = questLogObjectEvents[i].trainerType;
gObjectEvents[i].localId = questLogObjectEvents[i].localId;
gObjectEvents[i].mapNum = questLogObjectEvents[i].mapNum;
@@ -85,7 +85,7 @@ void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTempl
gObjectEvents[i].trainerRange_berryTreeId = questLogObjectEvents[i].trainerRange_berryTreeId;
gObjectEvents[i].previousMetatileBehavior = questLogObjectEvents[i].previousMetatileBehavior;
gObjectEvents[i].directionSequenceIndex = questLogObjectEvents[i].directionSequenceIndex;
gObjectEvents[i].animId = questLogObjectEvents[i].animId;
gObjectEvents[i].playerCopyableMovement = questLogObjectEvents[i].animId;
for (j = 0; j < 0x40; j++)
{
+4 -4
View File
@@ -87,7 +87,7 @@ static void sub_8150530(void)
else
{
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
StartSpriteAnim(sprite, GetFishingNoCatchDirectionAnimNum(objectEvent->facingDirection));
}
}
@@ -99,10 +99,10 @@ static void sub_81505C4(u8 taskId)
switch (gTasks[taskId].data[0])
{
case 0:
ObjectEventClearAnimIfSpecialAnimActive(objectEvent);
ObjectEventClearHeldMovementIfActive(objectEvent);
objectEvent->enableAnim = TRUE;
sub_81507BC(objectEvent, GetPlayerAvatarGraphicsIdByStateId(4));
StartSpriteAnim(sprite, sub_80634F0(objectEvent->facingDirection));
StartSpriteAnim(sprite, GetFishingNoCatchDirectionAnimNum(objectEvent->facingDirection));
gTasks[taskId].data[0]++;
gTasks[taskId].data[1] = 0;
break;
@@ -114,7 +114,7 @@ static void sub_81505C4(u8 taskId)
gTasks[taskId].data[0]++;
break;
case 2:
StartSpriteAnim(sprite, sub_8063500(GetPlayerFacingDirection()));
StartSpriteAnim(sprite, GetFishingBiteDirectionAnimNum(GetPlayerFacingDirection()));
gTasks[taskId].data[0]++;
break;
case 3:
+2 -2
View File
@@ -1082,7 +1082,7 @@ bool8 ScrCmd_setobjectxy(struct ScriptContext * ctx)
u16 x = VarGet(ScriptReadHalfword(ctx));
u16 y = VarGet(ScriptReadHalfword(ctx));
sub_805F7C4(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y);
TryMoveObjectEventToMapCoords(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, x, y);
return FALSE;
}
@@ -1100,7 +1100,7 @@ bool8 ScrCmd_moveobjectoffscreen(struct ScriptContext * ctx)
{
u16 localId = VarGet(ScriptReadHalfword(ctx));
sub_805FE94(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
TryOverrideObjectEventTemplateCoords(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
return FALSE;
}
+1 -1
View File
@@ -205,7 +205,7 @@ static void ScriptMovement_TakeStep(u8 taskId, u8 moveScrId, u8 objEventId, cons
if (IsMovementScriptFinished(taskId, moveScrId) == TRUE)
return;
if (ObjectEventIsSpecialAnimActive(&gObjectEvents[objEventId])
if (ObjectEventIsHeldMovementActive(&gObjectEvents[objEventId])
&& !ObjectEventClearHeldMovementIfFinished(&gObjectEvents[objEventId]))
return;
+8 -8
View File
@@ -154,7 +154,7 @@ static u8 GetTrainerApproachDistanceSouth(struct ObjectEvent *trainerObj, s16 ra
&& y > trainerObj->currentCoords.y
&& y <= trainerObj->currentCoords.y + range)
{
if (range > 3 && GetIndexOfFirstInactiveObjectEvent() == OBJECT_EVENTS_COUNT)
if (range > 3 && GetFirstInactiveObjectEventId() == OBJECT_EVENTS_COUNT)
return 0;
return (y - trainerObj->currentCoords.y);
}
@@ -315,9 +315,9 @@ static bool8 TrainerSeeFunc_WaitExclMark(u8 taskId, struct Task * task, struct O
else
{
task->tFuncId++;
if (trainerObj->animPattern == MOVEMENT_TYPE_TREE_DISGUISE || trainerObj->animPattern == MOVEMENT_TYPE_MOUNTAIN_DISGUISE)
if (trainerObj->movementType == MOVEMENT_TYPE_TREE_DISGUISE || trainerObj->movementType == MOVEMENT_TYPE_MOUNTAIN_DISGUISE)
task->tFuncId = 6;
if (trainerObj->animPattern == MOVEMENT_TYPE_HIDDEN)
if (trainerObj->movementType == MOVEMENT_TYPE_HIDDEN)
task->tFuncId = 8;
return TRUE;
}
@@ -349,7 +349,7 @@ static bool8 TrainerSeeFunc_PrepareToEngage(u8 taskId, struct Task * task, struc
return FALSE;
SetTrainerMovementType(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
TryOverrideTemplateCoordsForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
OverrideMovementTypeForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
OverrideTemplateCoordsForObjectEvent(trainerObj);
playerObj = &gObjectEvents[gPlayerAvatar.objectEventId];
@@ -468,7 +468,7 @@ static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveUp(u8 taskId, stru
if (task->tData5 != task->tTrainerRange - 1)
{
ObjectEventSetHeldMovement(&gObjectEvents[specialObjectId], sub_8063FB0(DIR_NORTH));
ObjectEventSetHeldMovement(&gObjectEvents[specialObjectId], GetWalkFastMovementAction(DIR_NORTH));
task->tData5++;
}
else
@@ -494,7 +494,7 @@ static bool8 TrainerSeeFunc_OffscreenAboveTrainerCameraObjMoveDown(u8 taskId, st
if (task->tData5 != task->tTrainerRange - 1)
{
ObjectEventSetHeldMovement(&gObjectEvents[specialObjectId], sub_8063FB0(DIR_SOUTH));
ObjectEventSetHeldMovement(&gObjectEvents[specialObjectId], GetWalkFastMovementAction(DIR_SOUTH));
task->tData5++;
}
else
@@ -523,14 +523,14 @@ static void Task_RevealTrainer_RunTrainerSeeFuncList(u8 taskId)
LoadWordFromTwoHalfwords((u16 *)&task->data[1], (uintptr_t *)&trainerObj);
if (!task->data[7])
{
ObjectEventClearAnim(trainerObj);
ObjectEventClearHeldMovement(trainerObj);
task->data[7]++;
}
sTrainerSeeFuncList2[task->data[0]](taskId, task, trainerObj);
if (task->data[0] == 3 && !FieldEffectActiveListContains(FLDEFF_POP_OUT_OF_ASH))
{
SetTrainerMovementType(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
TryOverrideTemplateCoordsForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
OverrideMovementTypeForObjectEvent(trainerObj, GetTrainerFacingDirectionMovementType(trainerObj->facingDirection));
DestroyTask(taskId);
}
else
+7 -7
View File
@@ -633,7 +633,7 @@ void sub_810C444(void)
for (i = 0; i < gMapHeader.events->objectEventCount; i++)
{
if ((templates[i].trainerType == 1 || templates[i].trainerType == 3) && (templates[i].movementType == 0x4D || templates[i].movementType == 0x4E || templates[i].movementType == 0x4F))
if ((templates[i].trainerType == 1 || templates[i].trainerType == 3) && (templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN || templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP || templates[i].movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT))
{
r6 = sub_810CF54();
TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
@@ -696,7 +696,7 @@ static void sub_810C594(void)
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
struct ObjectEvent * objectEvent = &gObjectEvents[i];
if (objectEvent->animPattern == 0x4D || objectEvent->animPattern == 0x4E || objectEvent->animPattern == 0x4F)
if (objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_DOWN || objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_UP || objectEvent->movementType == MOVEMENT_TYPE_WALK_SLOWLY_IN_PLACE_LEFT)
{
u8 r3 = sub_810CF54();
if (objectEvent->active && gSprites[objectEvent->spriteId].data[0] == i)
@@ -918,7 +918,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
else
{
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = r7;
npc_coords_shift_still(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]);
ShiftStillObjectEventCoords(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].objectEventId]);
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], sMovementScript_TrainerRematch);
sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = r8;
sVsSeeker->runningBehaviourEtcArray[sVsSeeker->numRematchableTrainers] = GetRunningBehaviorFromGraphicsId(sVsSeeker->trainerInfo[vsSeekerIdx].graphicsId);
@@ -961,12 +961,12 @@ void sub_810CB90(void)
TryGetObjectEventIdByLocalIdAndMap(r4[r8].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
r4_2 = &gObjectEvents[sp0];
sub_810CF54(&r4[r8]); // You are using this function incorrectly. Please consult the manual.
TryOverrideTemplateCoordsForObjectEvent(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
OverrideMovementTypeForObjectEvent(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0;
if (gSelectedObjectEvent == sp0)
r4_2->animPattern = gUnknown_8453F67[r4_2->facingDirection];
r4_2->movementType = gUnknown_8453F67[r4_2->facingDirection];
else
r4_2->animPattern = MOVEMENT_TYPE_FACE_DOWN;
r4_2->movementType = MOVEMENT_TYPE_FACE_DOWN;
}
}
}
@@ -1322,7 +1322,7 @@ static void StartAllRespondantIdleMovements(void)
if (sub_810CF04(sVsSeeker->trainerInfo[j].objectEventId) == 1)
SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]);
TryOverrideTemplateCoordsForObjectEvent(r4, sVsSeeker->runningBehaviourEtcArray[i]);
OverrideMovementTypeForObjectEvent(r4, sVsSeeker->runningBehaviourEtcArray[i]);
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[j].localId] = GetNextAvailableRematchTrainer(sVsSeekerData, sVsSeeker->trainerInfo[j].trainerIdx, &dummy);
}
}