Label event_object_movement.c

This commit is contained in:
Slawter666 2018-09-02 23:20:45 +01:00
parent f74adc80c1
commit 5c66b8a7ef
6 changed files with 100 additions and 108 deletions

View File

@ -20,7 +20,7 @@ SetUpReflection: @ 8153ED4
ldrsh r2, [r4, r0]
adds r0, r4, 0
movs r3, 0x98
bl obj_unfreeze
bl CreateCopySpriteAt
lsls r0, 24
lsrs r0, 24
lsls r1, r0, 4
@ -34,7 +34,7 @@ SetUpReflection: @ 8153ED4
movs r0, 0xC
orrs r1, r0
strb r1, [r7, 0x5]
ldr r2, =gUnknown_084975C4
ldr r2, =gReflectionEffectPaletteMap
lsrs r0, r1, 4
adds r0, r2
ldrb r0, [r0]
@ -185,7 +185,7 @@ npc_pal_op_B: @ 815401C
bne _0815404C
ldrh r0, [r2, 0x2]
adds r1, r4, 0
bl npc_load_two_palettes__no_record
bl LoadPlayerObjectReflectionPalette
b _0815406A
.pool
_0815404C:
@ -193,15 +193,15 @@ _0815404C:
bne _0815405A
ldrh r0, [r2, 0x2]
adds r1, r4, 0
bl npc_load_two_palettes__and_record
bl LoadSpecialObjectReflectionPalette
b _0815406A
_0815405A:
adds r0, r4, 0
bl npc_paltag_by_palslot
bl GetObjectPaletteTag
lsls r0, 16
lsrs r0, 16
adds r1, r4, 0
bl pal_patch_for_npc
bl PatchObjectPalette
_0815406A:
adds r0, r4, 0
bl UpdateSpritePaletteWithWeather
@ -225,7 +225,7 @@ npc_pal_op_A: @ 8154078
beq _0815409C
adds r0, r1, 0
adds r1, r4, 0
bl pal_patch_for_npc
bl PatchObjectPalette
adds r0, r4, 0
bl UpdateSpritePaletteWithWeather
_0815409C:
@ -277,7 +277,7 @@ _081540E0:
b _08154214
.pool
_081540FC:
ldr r1, =gUnknown_084975C4
ldr r1, =gReflectionEffectPaletteMap
ldrb r0, [r5, 0x5]
lsrs r0, 4
adds r0, r1

View File

@ -89,10 +89,10 @@ u8 GetEventObjectIdByXY(s16, s16);
void SetEventObjectDirection(struct EventObject *, u8);
u8 GetFirstInactiveEventObjectId(void);
void RemoveEventObjectByLocalIdAndMap(u8, u8, u8);
void npc_load_two_palettes__no_record(u16, u8);
void npc_load_two_palettes__and_record(u16, u8);
void LoadPlayerObjectReflectionPalette(u16, u8);
void LoadSpecialObjectReflectionPalette(u16, u8);
void sub_808EBA8(u8, u8, u8, s16, s16);
void pal_patch_for_npc(u16, u8);
void PatchObjectPalette(u16, u8);
void sub_808E16C(s16, s16);
void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat);
void sub_8092FF0(s16, s16, s16 *, s16 *);
@ -113,7 +113,7 @@ void EventObjectTurn(struct EventObject *, u8);
void EventObjectTurnByLocalIdAndMap(u8, u8, u8, u8);
const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8);
void npc_by_local_id_and_map_set_field_1_bit_x20(u8, u8, u8, u8);
void gpu_pal_allocator_reset__manage_upper_four(void);
void FreeAndReserveObjectSpritePalettes(void);
void sub_808E82C(u8, u8, u8, s16, s16);
void sub_808E7E4(u8, u8, u8);
void sub_808E78C(u8, u8, u8, u8);
@ -122,6 +122,7 @@ void EventObjectGetLocalIdAndMap(struct EventObject *eventObject, void *localId,
void ShiftEventObjectCoords(struct EventObject *, s16, s16);
void sub_808EB08(struct EventObject *, s16, s16);
void sub_808F254(u8, u8, u8);
void InitEventObjectPalettes(u8 palSlot);
void UpdateEventObjectCurrentMovement(struct EventObject *, struct Sprite *, bool8(struct EventObject *, struct Sprite *));
u8 EventObjectFaceOppositeDirection(struct EventObject *, u8);
u8 GetOppositeDirection(u8);

View File

@ -26,9 +26,9 @@
// this file was known as evobjmv.c in Game Freak's original source
extern u8 gUnknown_020375B4;
extern u16 gUnknown_020375B6;
extern struct LockedAnimEventObjects *gLockedAnimEventObjects;
EWRAM_DATA u8 sCurrentReflectionType = 0;
EWRAM_DATA u16 sCurrentSpecialObjectPaletteTag = 0;
EWRAM_DATA struct LockedAnimEventObjects *gLockedAnimEventObjects = {0};
static void MoveCoordsInDirection(u32, s16 *, s16 *, s16, s16);
static bool8 EventObjectExecSingleMovementAction(struct EventObject *, struct Sprite *);
@ -102,7 +102,7 @@ static struct EventObjectTemplate *FindEventObjectTemplateByLocalId(u8 localId,
static void ClearEventObjectMovement(struct EventObject *, struct Sprite *);
static void EventObjectSetSingleMovement(struct EventObject *, struct Sprite *, u8);
const u8 gUnknown_084975C4[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0};
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};
@ -376,7 +376,7 @@ const u8 gInitialMovementTypeFacingDirections[] = {
#include "data/field_event_obj/event_object_subsprites.h"
#include "data/field_event_obj/event_object_graphics_info.h"
const struct SpritePalette gUnknown_0850BBC8[] = {
const struct SpritePalette sEventObjectSpritePalettes[] = {
{gEventObjectPalette0, 0x1103},
{gEventObjectPalette1, 0x1104},
{gEventObjectPalette2, 0x1105},
@ -415,7 +415,7 @@ const struct SpritePalette gUnknown_0850BBC8[] = {
{NULL, 0x0000},
};
const u16 Unknown_0850BCE8[] = {
const u16 gPlayerReflectionPaletteTags[] = {
0x1101,
0x1101,
0x1101,
@ -429,115 +429,115 @@ const u16 Unknown_0850BCF0[] = {
0x1111,
};
const u16 Unknown_0850BCF8[] = {
const u16 gPlayerUnderwaterReflectionPaletteTags[] = {
0x1115,
0x1115,
0x1115,
0x1115,
};
const struct PairedPalettes gUnknown_0850BD00[] = {
{0x1100, Unknown_0850BCE8},
const struct PairedPalettes gPlayerReflectionPaletteSets[] = {
{0x1100, gPlayerReflectionPaletteTags},
{0x1110, Unknown_0850BCF0},
{0x1115, Unknown_0850BCF8},
{0x1115, gPlayerUnderwaterReflectionPaletteTags},
{0x11FF, NULL},
};
const u16 Unknown_0850BD20[] = {
const u16 gQuintyPlumpReflectionPaletteTags[] = {
0x110C,
0x110C,
0x110C,
0x110C,
};
const u16 Unknown_0850BD28[] = {
const u16 gTruckReflectionPaletteTags[] = {
0x110D,
0x110D,
0x110D,
0x110D,
};
const u16 Unknown_0850BD30[] = {
const u16 gVigorothMoverReflectionPaletteTags[] = {
0x110E,
0x110E,
0x110E,
0x110E,
};
const u16 Unknown_0850BD38[] = {
const u16 gMovingBoxReflectionPaletteTags[] = {
0x1112,
0x1112,
0x1112,
0x1112,
};
const u16 Unknown_0850BD40[] = {
const u16 gCableCarReflectionPaletteTags[] = {
0x1113,
0x1113,
0x1113,
0x1113,
};
const u16 Unknown_0850BD48[] = {
const u16 gSSTidalReflectionPaletteTags[] = {
0x1114,
0x1114,
0x1114,
0x1114,
};
const u16 Unknown_0850BD50[] = {
const u16 gSubmarineShadowReflectionPaletteTags[] = {
0x111B,
0x111B,
0x111B,
0x111B,
};
const u16 Unknown_0850BD58[] = {
const u16 Unknown_0850BD58[] = { // Kyogre2?
0x1117,
0x1117,
0x1117,
0x1117,
};
const u16 Unknown_0850BD60[] = {
const u16 Unknown_0850BD60[] = { // Groudon2?
0x1119,
0x1119,
0x1119,
0x1119,
};
const u16 Unknown_0850BD68[] = {
const u16 Unknown_0850BD68[] = { // Invisible Keckleon?
0x1109,
0x1109,
0x1109,
0x1109,
};
const u16 Unknown_0850BD70[] = {
const u16 gRedLeafReflectionPaletteTags[] = {
0x111D,
0x111D,
0x111D,
0x111D,
};
const struct PairedPalettes gUnknown_0850BD78[] = {
{4352, Unknown_0850BCE8},
const struct PairedPalettes gSpecialObjectReflectionPaletteSets[] = {
{4352, gPlayerReflectionPaletteTags},
{4368, Unknown_0850BCF0},
{4363, Unknown_0850BD20},
{4365, Unknown_0850BD28},
{4366, Unknown_0850BD30},
{4370, Unknown_0850BD38},
{4371, Unknown_0850BD40},
{4372, Unknown_0850BD48},
{4363, gQuintyPlumpReflectionPaletteTags},
{4365, gTruckReflectionPaletteTags},
{4366, gVigorothMoverReflectionPaletteTags},
{4370, gMovingBoxReflectionPaletteTags},
{4371, gCableCarReflectionPaletteTags},
{4372, gSSTidalReflectionPaletteTags},
{4374, Unknown_0850BD58},
{4376, Unknown_0850BD60},
{4357, Unknown_0850BD68},
{4379, Unknown_0850BD50},
{4381, Unknown_0850BD70},
{4379, gSubmarineShadowReflectionPaletteTags},
{4381, gRedLeafReflectionPaletteTags},
{4607, NULL},
};
const u16 gUnknown_0850BDE8[] = {
const u16 gObjectPaletteTags0[] = {
0x1100,
0x1101,
0x1103,
@ -550,7 +550,7 @@ const u16 gUnknown_0850BDE8[] = {
0x110A,
};
const u16 gUnknown_0850BDFC[] = {
const u16 gObjectPaletteTags1[] = {
0x1100,
0x1101,
0x1103,
@ -563,7 +563,7 @@ const u16 gUnknown_0850BDFC[] = {
0x110A,
};
const u16 gUnknown_0850BE10[] = {
const u16 gObjectPaletteTags2[] = {
0x1100,
0x1101,
0x1103,
@ -576,7 +576,7 @@ const u16 gUnknown_0850BE10[] = {
0x110A,
};
const u16 gUnknown_0850BE24[] = {
const u16 gObjectPaletteTags3[] = {
0x1100,
0x1101,
0x1103,
@ -590,11 +590,11 @@ const u16 gUnknown_0850BE24[] = {
};
const u16 *const gUnknown_0850BE38[] = {
gUnknown_0850BDE8,
gUnknown_0850BDFC,
gUnknown_0850BE10,
gUnknown_0850BE24,
const u16 *const gObjectPaletteTagSets[] = {
gObjectPaletteTags0,
gObjectPaletteTags1,
gObjectPaletteTags2,
gObjectPaletteTags3,
};
#include "data/field_event_obj/berry_tree_graphics_tables.h"
@ -1461,11 +1461,11 @@ static u8 TrySetupEventObjectSprite(struct EventObjectTemplate *eventObjectTempl
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
{
npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, 0);
LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, 0);
}
else if (paletteSlot == 10)
{
npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, 10);
LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, 10);
}
else if (paletteSlot >= 16)
{
@ -1653,7 +1653,7 @@ u8 sprite_new(u8 graphicsId, u8 a1, s16 x, s16 y, u8 z, u8 direction)
sprite->data[1] = z;
if (graphicsInfo->paletteSlot == 10)
{
npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
}
else if (graphicsInfo->paletteSlot >= 16)
{
@ -1806,11 +1806,11 @@ static void sub_808E1B8(u8 eventObjectId, s16 x, s16 y)
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
{
npc_load_two_palettes__no_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
LoadPlayerObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
}
else if (paletteSlot == 10)
{
npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
}
else if (paletteSlot >= 16)
{
@ -1882,11 +1882,11 @@ void EventObjectSetGraphicsId(struct EventObject *eventObject, u8 graphicsId)
paletteSlot = graphicsInfo->paletteSlot;
if (paletteSlot == 0)
{
pal_patch_for_npc(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
PatchObjectPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
}
else if (paletteSlot == 10)
{
npc_load_two_palettes__and_record(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
LoadSpecialObjectReflectionPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
}
else if (paletteSlot >= 16)
{
@ -1980,14 +1980,14 @@ const struct EventObjectGraphicsInfo *GetEventObjectGraphicsInfo(u8 graphicsId)
{
graphicsId = VarGetEventObjectGraphicsId(graphicsId - SPRITE_VAR);
}
if (graphicsId == 0x45)
if (graphicsId == EVENT_OBJ_GFX_BARD)
{
bard = GetCurrentMauvilleOldMan();
return gMauvilleOldManGraphicsInfoPointers[bard];
}
if (graphicsId >= NUM_OBJECT_GRAPHICS_INFO)
{
graphicsId = 0x05; // LittleBoy1
graphicsId = EVENT_OBJ_GFX_LITTLE_BOY_1;
}
return gEventObjectGraphicsInfoPointers[graphicsId];
}
@ -2071,7 +2071,7 @@ void sub_808E82C(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y)
}
}
void gpu_pal_allocator_reset__manage_upper_four(void)
void FreeAndReserveObjectSpritePalettes(void)
{
FreeAllSpritePalettes();
gReservedSpritePaletteCount = 12;
@ -2084,7 +2084,7 @@ static void sub_808E894(u16 paletteTag)
paletteSlot = FindEventObjectPaletteIndexByTag(paletteTag);
if (paletteSlot != 0x11ff) // always true
{
sub_808E8F4(&gUnknown_0850BBC8[paletteSlot]);
sub_808E8F4(&sEventObjectSpritePalettes[paletteSlot]);
}
}
@ -2107,19 +2107,19 @@ static u8 sub_808E8F4(const struct SpritePalette *spritePalette)
return LoadSpritePalette(spritePalette);
}
void pal_patch_for_npc(u16 paletteTag, u8 paletteSlot)
void PatchObjectPalette(u16 paletteTag, u8 paletteSlot)
{
u16 paletteIdx;
paletteIdx = FindEventObjectPaletteIndexByTag(paletteTag);
LoadPalette(gUnknown_0850BBC8[paletteIdx].data, 16 * paletteSlot + 256, 0x20);
LoadPalette(sEventObjectSpritePalettes[paletteIdx].data, 16 * paletteSlot + 256, 0x20);
}
void pal_patch_for_npc_range(const u16 *paletteTags, u8 minSlot, u8 maxSlot)
void PatchObjectPaletteRange(const u16 *paletteTags, u8 minSlot, u8 maxSlot)
{
while (minSlot < maxSlot)
{
pal_patch_for_npc(*paletteTags, minSlot);
PatchObjectPalette(*paletteTags, minSlot);
paletteTags++;
minSlot++;
}
@ -2129,9 +2129,9 @@ static u8 FindEventObjectPaletteIndexByTag(u16 tag)
{
u8 i;
for (i = 0; gUnknown_0850BBC8[i].tag != 0x11ff; i++)
for (i = 0; sEventObjectSpritePalettes[i].tag != 0x11ff; i++)
{
if (gUnknown_0850BBC8[i].tag == tag)
if (sEventObjectSpritePalettes[i].tag == tag)
{
return i;
}
@ -2139,32 +2139,32 @@ static u8 FindEventObjectPaletteIndexByTag(u16 tag)
return 0xff;
}
void npc_load_two_palettes__no_record(u16 tag, u8 slot)
void LoadPlayerObjectReflectionPalette(u16 tag, u8 slot)
{
u8 i;
pal_patch_for_npc(tag, slot);
for (i = 0; gUnknown_0850BD00[i].tag != 0x11ff; i++)
PatchObjectPalette(tag, slot);
for (i = 0; gPlayerReflectionPaletteSets[i].tag != 0x11ff; i++)
{
if (gUnknown_0850BD00[i].tag == tag)
if (gPlayerReflectionPaletteSets[i].tag == tag)
{
pal_patch_for_npc(gUnknown_0850BD00[i].data[gUnknown_020375B4], gUnknown_084975C4[slot]);
PatchObjectPalette(gPlayerReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]);
return;
}
}
}
void npc_load_two_palettes__and_record(u16 tag, u8 slot)
void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot)
{
u8 i;
gUnknown_020375B6 = tag;
pal_patch_for_npc(tag, slot);
for (i = 0; gUnknown_0850BD78[i].tag != 0x11ff; i++)
sCurrentSpecialObjectPaletteTag = tag;
PatchObjectPalette(tag, slot);
for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != 0x11ff; i++)
{
if (gUnknown_0850BD78[i].tag == tag)
if (gSpecialObjectReflectionPaletteSets[i].tag == tag)
{
pal_patch_for_npc(gUnknown_0850BD78[i].data[gUnknown_020375B4], gUnknown_084975C4[slot]);
PatchObjectPalette(gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType], gReflectionEffectPaletteMap[slot]);
return;
}
}
@ -2172,7 +2172,7 @@ void npc_load_two_palettes__and_record(u16 tag, u8 slot)
static void sub_808EAB0(u16 tag, u8 slot)
{
pal_patch_for_npc(tag, slot);
PatchObjectPalette(tag, slot);
}
void unref_sub_808EAC4(struct EventObject *eventObject, s16 x, s16 y)
@ -2191,7 +2191,7 @@ void ShiftEventObjectCoords(struct EventObject *eventObject, s16 x, s16 y)
eventObject->currentCoords.y = y;
}
/*static*/ void npc_coords_set(struct EventObject *eventObject, s16 x, s16 y)
/*static*/ void SetEventObjectCoords(struct EventObject *eventObject, s16 x, s16 y)
{
eventObject->previousCoords.x = x;
eventObject->previousCoords.y = y;
@ -2206,7 +2206,7 @@ void sub_808EB08(struct EventObject *eventObject, s16 x, s16 y)
sprite = &gSprites[eventObject->spriteId];
graphicsInfo = GetEventObjectGraphicsInfo(eventObject->graphicsId);
npc_coords_set(eventObject, x, y);
SetEventObjectCoords(eventObject, x, y);
sub_8093038(eventObject->currentCoords.x, eventObject->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y);
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
@ -2414,7 +2414,7 @@ u8 CopySprite(struct Sprite *sprite, s16 x, s16 y, u8 subpriority)
return i;
}
u8 obj_unfreeze(struct Sprite *sprite, s16 x, s16 y, u8 subpriority)
u8 CreateCopySpriteAt(struct Sprite *sprite, s16 x, s16 y, u8 subpriority)
{
s16 i;
@ -2610,35 +2610,35 @@ void sub_808F28C(u8 localId, u8 mapNum, u8 mapGroup, u8 decorCat)
}
}
void npc_paltag_set_load(u8 palSlot)
void InitEventObjectPalettes(u8 palSlot)
{
gpu_pal_allocator_reset__manage_upper_four();
gUnknown_020375B6 = 0x11ff;
gUnknown_020375B4 = palSlot;
FreeAndReserveObjectSpritePalettes();
sCurrentSpecialObjectPaletteTag = 0x11ff;
sCurrentReflectionType = palSlot;
if (palSlot == 1)
{
pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 6);
PatchObjectPaletteRange(gObjectPaletteTagSets[sCurrentReflectionType], 0, 6);
gReservedSpritePaletteCount = 8;
}
else
{
pal_patch_for_npc_range(gUnknown_0850BE38[gUnknown_020375B4], 0, 10);
PatchObjectPaletteRange(gObjectPaletteTagSets[sCurrentReflectionType], 0, 10);
}
}
u16 npc_paltag_by_palslot(u8 palSlot)
u16 GetObjectPaletteTag(u8 palSlot)
{
u8 i;
if (palSlot < 10)
{
return gUnknown_0850BE38[gUnknown_020375B4][palSlot];
return gObjectPaletteTagSets[sCurrentReflectionType][palSlot];
}
for (i = 0; gUnknown_0850BD78[i].tag != 0x11ff; i++)
for (i = 0; gSpecialObjectReflectionPaletteSets[i].tag != 0x11ff; i++)
{
if (gUnknown_0850BD78[i].tag == gUnknown_020375B6)
if (gSpecialObjectReflectionPaletteSets[i].tag == sCurrentSpecialObjectPaletteTag)
{
return gUnknown_0850BD78[i].data[gUnknown_020375B4];
return gSpecialObjectReflectionPaletteSets[i].data[sCurrentReflectionType];
}
}
return 0x11ff;

View File

@ -159,7 +159,6 @@ extern void sub_80AAFA4(void);
extern void ShowStartMenu(void);
extern void sub_80AEE84(void);
extern void mapldr_default(void);
extern void npc_paltag_set_load(u8);
extern void sub_8088B3C(u16, u16);
extern bool32 sub_800F0B8(void);
extern bool32 sub_8009F3C(void);
@ -2153,9 +2152,9 @@ static void sub_8086988(u32 a1)
ResetCameraUpdateInfo();
InstallCameraPanAheadCallback();
if (!a1)
npc_paltag_set_load(0);
InitEventObjectPalettes(0);
else
npc_paltag_set_load(1);
InitEventObjectPalettes(1);
FieldEffectActiveListClear();
sub_80AAFA4();

View File

@ -558,7 +558,7 @@ static void ItemStorage_WithdrawToss_Helper(u8 taskId, bool8 toss)
playerPCItemPageInfo.scrollIndicatorId = 0xFF;
ItemStorage_SetItemAndMailCount(taskId);
sub_816BC14();
gpu_pal_allocator_reset__manage_upper_four();
FreeAndReserveObjectSpritePalettes();
LoadListMenuArrowsGfx();
sub_8122344(gUnknown_0203BCC4->spriteIds, 7);
sub_8197434(0,0);

View File

@ -226,15 +226,7 @@ gUnknown_020375A4: @ 20375A4
gUnknown_020375AC: @ 20375AC
.space 0x8
gUnknown_020375B4: @ 20375B4
.space 0x2
gUnknown_020375B6: @ 20375B6
.space 0x2
gLockedAnimEventObjects: @ 20375B8
.space 0x4
.include "src/event_object_movement.o"
.include "src/field_message_box.o"
.align 2