mostly standardize to object event to prep for disassembly
This commit is contained in:
+4
-4
@@ -768,7 +768,7 @@ static void SetMapVarsToTrainer(void)
|
||||
if (sTrainerEventObjectLocalId != 0)
|
||||
{
|
||||
gSpecialVar_LastTalked = sTrainerEventObjectLocalId;
|
||||
gSelectedEventObject = GetFieldObjectIdByLocalIdAndMap(sTrainerEventObjectLocalId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
gSelectedObjectEvent = GetObjectEventIdByLocalIdAndMap(sTrainerEventObjectLocalId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -819,8 +819,8 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
|
||||
void ConfigureAndSetUpOneTrainerBattle(u8 trainerEventObjId, const u8 *trainerScript)
|
||||
{
|
||||
gSelectedEventObject = trainerEventObjId;
|
||||
gSpecialVar_LastTalked = gMapObjects[trainerEventObjId].localId;
|
||||
gSelectedObjectEvent = trainerEventObjId;
|
||||
gSpecialVar_LastTalked = gObjectEvents[trainerEventObjId].localId;
|
||||
BattleSetup_ConfigureTrainerBattle(trainerScript + 1);
|
||||
ScriptContext1_SetupScript(gUnknown_81A4EB4);
|
||||
ScriptContext2_Enable();
|
||||
@@ -835,7 +835,7 @@ bool32 GetTrainerFlagFromScriptPointer(const u8 *data)
|
||||
|
||||
void SetUpTrainerMovement(void)
|
||||
{
|
||||
struct MapObject *eventObject = &gMapObjects[gSelectedEventObject];
|
||||
struct ObjectEvent *eventObject = &gObjectEvents[gSelectedObjectEvent];
|
||||
|
||||
SetTrainerMovementType(eventObject, GetTrainerFacingDirectionMovementType(eventObject->facingDirection));
|
||||
}
|
||||
|
||||
@@ -5030,4 +5030,4 @@ const struct PokedexEntry gPokedexEntries[] =
|
||||
.trainerScale = 337,
|
||||
.trainerOffset = 2,
|
||||
},
|
||||
};
|
||||
};
|
||||
|
||||
+1
-1
@@ -238,7 +238,7 @@ bool8 VarSet(u16 idx, u16 val)
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
u8 VarGetFieldObjectGraphicsId(u8 idx)
|
||||
u8 VarGetObjectEventGraphicsId(u8 idx)
|
||||
{
|
||||
return VarGet(VAR_OBJ_GFX_ID_0 + idx);
|
||||
}
|
||||
|
||||
+18
-18
@@ -350,7 +350,7 @@ static void sub_807DFBC(u8 taskId)
|
||||
{
|
||||
PlayerGetDestCoords(&task->data[12], &task->data[13]);
|
||||
sub_807DCB0(TRUE);
|
||||
FieldObjectSetHeldMovement(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)], 16);
|
||||
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 16);
|
||||
task->data[0] = 8;
|
||||
}
|
||||
break;
|
||||
@@ -365,7 +365,7 @@ static void sub_807DFBC(u8 taskId)
|
||||
case 9:
|
||||
if (sub_807E418() && walkrun_is_standing_still() && !FieldIsDoorAnimationRunning() && !FuncIsActiveTask(sub_807F204))
|
||||
{
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
task->data[0] = 4;
|
||||
}
|
||||
break;
|
||||
@@ -374,7 +374,7 @@ static void sub_807DFBC(u8 taskId)
|
||||
if (sub_807E418())
|
||||
{
|
||||
sub_807DCB0(TRUE);
|
||||
FieldObjectSetHeldMovement(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)], 16);
|
||||
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 16);
|
||||
task->data[0] = 2;
|
||||
}
|
||||
break;
|
||||
@@ -382,7 +382,7 @@ static void sub_807DFBC(u8 taskId)
|
||||
if (walkrun_is_standing_still())
|
||||
{
|
||||
task->data[1] = FieldAnimateDoorClose(*x, *y);
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
task->data[0] = 3;
|
||||
}
|
||||
break;
|
||||
@@ -391,7 +391,7 @@ static void sub_807DFBC(u8 taskId)
|
||||
task->data[0] = 4;
|
||||
break;
|
||||
case 4:
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
@@ -416,7 +416,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
|
||||
if (sub_807E418())
|
||||
{
|
||||
sub_807DCB0(TRUE);
|
||||
FieldObjectSetHeldMovement(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)], sub_8063F84(GetPlayerFacingDirection()));
|
||||
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], sub_8063F84(GetPlayerFacingDirection()));
|
||||
task->data[0] = 2;
|
||||
}
|
||||
break;
|
||||
@@ -427,7 +427,7 @@ static void task_map_chg_seq_0807E20C(u8 taskId)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
break;
|
||||
@@ -446,7 +446,7 @@ static void task_map_chg_seq_0807E2CC(u8 taskId)
|
||||
case 1:
|
||||
if (sub_807E418())
|
||||
{
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@@ -467,7 +467,7 @@ static void sub_807E31C(u8 taskId)
|
||||
case 1:
|
||||
if (sub_807E418() && sub_805DC24() != TRUE)
|
||||
{
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
@@ -753,8 +753,8 @@ static void sub_807E80C(u8 taskId)
|
||||
case 1:
|
||||
if (task->data[1] < 0 || gTasks[task->data[1]].isActive != TRUE)
|
||||
{
|
||||
FieldObjectClearAnimIfSpecialAnimActive(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
FieldObjectSetHeldMovement(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)], 17);
|
||||
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
ObjectEventSetHeldMovement(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)], 17);
|
||||
task->data[0] = 2;
|
||||
}
|
||||
break;
|
||||
@@ -762,7 +762,7 @@ static void sub_807E80C(u8 taskId)
|
||||
if (walkrun_is_standing_still())
|
||||
{
|
||||
task->data[1] = FieldAnimateDoorClose(*xp, *yp - 1);
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0)]);
|
||||
sub_807DCB0(FALSE);
|
||||
task->data[0] = 3;
|
||||
}
|
||||
@@ -792,7 +792,7 @@ static void sub_807E80C(u8 taskId)
|
||||
static void sub_807E980(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
struct MapObject *playerObj = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *playerObj = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
struct Sprite *playerSpr = &gSprites[gPlayerAvatar.spriteId];
|
||||
switch (data[0])
|
||||
{
|
||||
@@ -803,7 +803,7 @@ static void sub_807E980(u8 taskId)
|
||||
data[0]++;
|
||||
break;
|
||||
case 1:
|
||||
if (!FieldObjectIsMovementOverridden(playerObj) || FieldObjectClearHeldMovementIfFinished(playerObj))
|
||||
if (!ObjectEventIsMovementOverridden(playerObj) || ObjectEventClearHeldMovementIfFinished(playerObj))
|
||||
{
|
||||
if (data[15] != 0)
|
||||
data[15]--;
|
||||
@@ -844,7 +844,7 @@ static void sub_807E980(u8 taskId)
|
||||
static void sub_807EAC4(s16 a0, s16 a1, s16 *a2, s16 *a3, s16 *a4)
|
||||
{
|
||||
struct Sprite *playerSpr = &gSprites[gPlayerAvatar.spriteId];
|
||||
struct MapObject *playerObj = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *playerObj = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
if (a1 > 0 || *a4 > 6)
|
||||
*a3 += a1;
|
||||
*a2 += a0;
|
||||
@@ -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->mapobj_bit_7)
|
||||
{
|
||||
FieldObjectForceSetSpecialAnim(playerObj, GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
|
||||
ObjectEventForceSetSpecialAnim(playerObj, GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_807EB64(u16 a0, s16 *a1, s16 *a2)
|
||||
{
|
||||
FieldObjectForceSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], GetStepInPlaceDelay16AnimId(GetPlayerFacingDirection()));
|
||||
ObjectEventForceSetSpecialAnim(&gObjectEvents[gPlayerAvatar.mapObjectId], GetStepInPlaceDelay16AnimId(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;
|
||||
FieldObjectForceSetSpecialAnim(&gMapObjects[gPlayerAvatar.mapObjectId], sub_8064270(r1));
|
||||
ObjectEventForceSetSpecialAnim(&gObjectEvents[gPlayerAvatar.mapObjectId], sub_8064270(r1));
|
||||
sub_807EBBC(behavior, a0, a1);
|
||||
*a2 = *a0 * 16;
|
||||
*a3 = *a1 * 16;
|
||||
|
||||
@@ -314,15 +314,15 @@ void Special_AnimatePcTurnOff()
|
||||
|
||||
void SpawnCameraObject(void)
|
||||
{
|
||||
u8 mapObjectId = SpawnSpecialFieldObjectParameterized(MAP_OBJ_GFX_YOUNGSTER, 8, 127, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
|
||||
gMapObjects[mapObjectId].mapobj_bit_13 = TRUE;
|
||||
CameraObjectSetFollowedObjectId(gMapObjects[mapObjectId].spriteId);
|
||||
u8 mapObjectId = SpawnSpecialObjectEventParameterized(MAP_OBJ_GFX_YOUNGSTER, 8, 127, gSaveBlock1Ptr->pos.x + 7, gSaveBlock1Ptr->pos.y + 7, 3);
|
||||
gObjectEvents[mapObjectId].mapobj_bit_13 = TRUE;
|
||||
CameraObjectSetFollowedObjectId(gObjectEvents[mapObjectId].spriteId);
|
||||
}
|
||||
|
||||
void RemoveCameraObject(void)
|
||||
{
|
||||
CameraObjectSetFollowedObjectId(GetPlayerAvatarObjectId());
|
||||
RemoveFieldObjectByLocalIdAndMap(127, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
RemoveObjectEventByLocalIdAndMap(127, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
}
|
||||
|
||||
void Special_BufferEReaderTrainerName5(void)
|
||||
@@ -1499,7 +1499,7 @@ void Special_SetSeenMon(void)
|
||||
|
||||
void sub_80CBDE8(void)
|
||||
{
|
||||
gSelectedEventObject = 0;
|
||||
gSelectedObjectEvent = 0;
|
||||
gSpecialVar_TextColor = 0xFF;
|
||||
}
|
||||
|
||||
@@ -1508,13 +1508,13 @@ u8 ContextNpcGetTextColor(void)
|
||||
u8 gfxId;
|
||||
if (gSpecialVar_TextColor != 0xFF)
|
||||
return gSpecialVar_TextColor;
|
||||
else if (gSelectedEventObject == 0)
|
||||
else if (gSelectedObjectEvent == 0)
|
||||
return 3;
|
||||
else
|
||||
{
|
||||
gfxId = gMapObjects[gSelectedEventObject].graphicsId;
|
||||
gfxId = gObjectEvents[gSelectedObjectEvent].graphicsId;
|
||||
if (gfxId >= MAP_OBJ_GFX_VAR_0)
|
||||
gfxId = VarGetFieldObjectGraphicsId(gfxId - MAP_OBJ_GFX_VAR_0);
|
||||
gfxId = VarGetObjectEventGraphicsId(gfxId - MAP_OBJ_GFX_VAR_0);
|
||||
return GetColorFromTextColorTable(gfxId);
|
||||
}
|
||||
}
|
||||
@@ -2359,7 +2359,7 @@ static void MoveDeoxysObject(u8 num)
|
||||
u8 mapObjId;
|
||||
LoadPalette(sDeoxysObjectPals[num], 0x1A0, 0x08);
|
||||
sub_8083598(10);
|
||||
TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjId);
|
||||
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjId);
|
||||
if (num == 0)
|
||||
PlaySE(SE_W109);
|
||||
else
|
||||
|
||||
+63
-63
@@ -28,8 +28,8 @@ struct MapConnection *sub_8059600(u8 direction, s32 x, s32 y);
|
||||
bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection);
|
||||
bool8 sub_80596BC(s32 x, s32 src_width, s32 dest_width, s32 offset);
|
||||
|
||||
struct BackupMapData VMap;
|
||||
EWRAM_DATA u16 gBackupMapData[VIRTUAL_MAP_SIZE] = {};
|
||||
struct BackupMapLayout VMap;
|
||||
EWRAM_DATA u16 gBackupMapLayout[VIRTUAL_MAP_SIZE] = {};
|
||||
EWRAM_DATA struct MapHeader gMapHeader = {};
|
||||
EWRAM_DATA struct Camera gCamera = {};
|
||||
EWRAM_DATA struct ConnectionFlags gMapConnectionFlags = {};
|
||||
@@ -78,13 +78,13 @@ void sub_80589E8(void)
|
||||
|
||||
void sub_8058A00(struct MapHeader * mapHeader)
|
||||
{
|
||||
const struct MapData * mapData = mapHeader->mapData;
|
||||
CpuFastFill(0x03FF03FF, gBackupMapData, sizeof(gBackupMapData));
|
||||
VMap.map = gBackupMapData;
|
||||
VMap.Xsize = mapData->width + 15;
|
||||
VMap.Ysize = mapData->height + 14;
|
||||
const struct MapLayout * mapLayout = mapHeader->mapLayout;
|
||||
CpuFastFill(0x03FF03FF, gBackupMapLayout, sizeof(gBackupMapLayout));
|
||||
VMap.map = gBackupMapLayout;
|
||||
VMap.Xsize = mapLayout->width + 15;
|
||||
VMap.Ysize = mapLayout->height + 14;
|
||||
AGB_ASSERT_EX(VMap.Xsize * VMap.Ysize <= VIRTUAL_MAP_SIZE, "C:/WORK/POKeFRLG/src/pm_lgfr_ose/source/fieldmap.c", 158);
|
||||
map_copy_with_padding(mapData->map, mapData->width, mapData->height);
|
||||
map_copy_with_padding(mapLayout->map, mapLayout->width, mapLayout->height);
|
||||
mapheader_copy_mapdata_of_adjacent_maps(mapHeader);
|
||||
}
|
||||
|
||||
@@ -155,8 +155,8 @@ void sub_8058B54(s32 x, s32 y, const struct MapHeader *connectedMapHeader, s32 x
|
||||
u16 *dest;
|
||||
s32 mapWidth;
|
||||
|
||||
mapWidth = connectedMapHeader->mapData->width;
|
||||
src = &connectedMapHeader->mapData->map[mapWidth * y2 + x2];
|
||||
mapWidth = connectedMapHeader->mapLayout->width;
|
||||
src = &connectedMapHeader->mapLayout->map[mapWidth * y2 + x2];
|
||||
dest = &VMap.map[VMap.Xsize * y + x];
|
||||
|
||||
for (i = 0; i < height; i++)
|
||||
@@ -176,9 +176,9 @@ void fillSouthConnection(struct MapHeader const *mapHeader, struct MapHeader con
|
||||
|
||||
if (connectedMapHeader)
|
||||
{
|
||||
cWidth = connectedMapHeader->mapData->width;
|
||||
cWidth = connectedMapHeader->mapLayout->width;
|
||||
x = offset + 7;
|
||||
y = mapHeader->mapData->height + 7;
|
||||
y = mapHeader->mapLayout->height + 7;
|
||||
if (x < 0)
|
||||
{
|
||||
x2 = -x;
|
||||
@@ -223,8 +223,8 @@ void fillNorthConnection(struct MapHeader const *mapHeader, struct MapHeader con
|
||||
|
||||
if (connectedMapHeader)
|
||||
{
|
||||
cWidth = connectedMapHeader->mapData->width;
|
||||
cHeight = connectedMapHeader->mapData->height;
|
||||
cWidth = connectedMapHeader->mapLayout->width;
|
||||
cHeight = connectedMapHeader->mapLayout->height;
|
||||
x = offset + 7;
|
||||
y2 = cHeight - 7;
|
||||
if (x < 0)
|
||||
@@ -271,8 +271,8 @@ void fillWestConnection(struct MapHeader const *mapHeader, struct MapHeader cons
|
||||
s32 cWidth, cHeight;
|
||||
if (connectedMapHeader)
|
||||
{
|
||||
cWidth = connectedMapHeader->mapData->width;
|
||||
cHeight = connectedMapHeader->mapData->height;
|
||||
cWidth = connectedMapHeader->mapLayout->width;
|
||||
cHeight = connectedMapHeader->mapLayout->height;
|
||||
y = offset + 7;
|
||||
x2 = cWidth - 7;
|
||||
if (y < 0)
|
||||
@@ -317,8 +317,8 @@ void fillEastConnection(struct MapHeader const *mapHeader, struct MapHeader cons
|
||||
s32 cHeight;
|
||||
if (connectedMapHeader)
|
||||
{
|
||||
cHeight = connectedMapHeader->mapData->height;
|
||||
x = mapHeader->mapData->width + 7;
|
||||
cHeight = connectedMapHeader->mapLayout->height;
|
||||
x = mapHeader->mapLayout->width + 7;
|
||||
y = offset + 7;
|
||||
if (y < 0)
|
||||
{
|
||||
@@ -370,17 +370,17 @@ union Block
|
||||
s32 xprime; \
|
||||
s32 yprime; \
|
||||
\
|
||||
struct MapData *mapData = gMapHeader.mapData; \
|
||||
struct MapLayout *mapLayout = gMapHeader.mapLayout; \
|
||||
\
|
||||
xprime = x - 7; \
|
||||
xprime += 8 * mapData->unk18; \
|
||||
xprime %= mapData->unk18; \
|
||||
xprime += 8 * mapLayout->unk18; \
|
||||
xprime %= mapLayout->unk18; \
|
||||
\
|
||||
yprime = y - 7; \
|
||||
yprime += 8 * mapData->unk19; \
|
||||
yprime %= mapData->unk19; \
|
||||
yprime += 8 * mapLayout->unk19; \
|
||||
yprime %= mapLayout->unk19; \
|
||||
\
|
||||
block = mapData->border[xprime + yprime * mapData->unk18]; \
|
||||
block = mapLayout->border[xprime + yprime * mapLayout->unk18]; \
|
||||
block |= 0xC00; \
|
||||
block; \
|
||||
})
|
||||
@@ -390,17 +390,17 @@ union Block
|
||||
s32 xprime; \
|
||||
s32 yprime; \
|
||||
\
|
||||
struct MapData *mapData = gMapHeader.mapData; \
|
||||
struct MapLayout *mapLayout = gMapHeader.mapLayout; \
|
||||
\
|
||||
xprime = x - 7; \
|
||||
xprime += 8 * mapData->unk18; \
|
||||
xprime %= mapData->unk18; \
|
||||
xprime += 8 * mapLayout->unk18; \
|
||||
xprime %= mapLayout->unk18; \
|
||||
\
|
||||
yprime = y - 7; \
|
||||
yprime += 8 * mapData->unk19; \
|
||||
yprime %= mapData->unk19; \
|
||||
yprime += 8 * mapLayout->unk19; \
|
||||
yprime %= mapLayout->unk19; \
|
||||
\
|
||||
block = mapData->border[xprime + yprime * mapData->unk18] | 0xC00; \
|
||||
block = mapLayout->border[xprime + yprime * mapLayout->unk18] | 0xC00; \
|
||||
block; \
|
||||
})
|
||||
|
||||
@@ -455,7 +455,7 @@ u32 sub_8058F1C(u32 original, u8 bit)
|
||||
u32 sub_8058F48(s16 x, s16 y, u8 z)
|
||||
{
|
||||
u16 metatileId = MapGridGetMetatileIdAt(x, y);
|
||||
return GetBehaviorByMetatileIdAndMapData(gMapHeader.mapData, metatileId, z);
|
||||
return GetBehaviorByMetatileIdAndMapLayout(gMapHeader.mapLayout, metatileId, z);
|
||||
}
|
||||
|
||||
u32 MapGridGetMetatileBehaviorAt(s32 x, s32 y)
|
||||
@@ -506,18 +506,18 @@ void sub_8059024(s32 x, s32 y, bool32 arg2)
|
||||
}
|
||||
}
|
||||
|
||||
u32 GetBehaviorByMetatileIdAndMapData(struct MapData *mapData, u16 metatile, u8 attr)
|
||||
u32 GetBehaviorByMetatileIdAndMapLayout(struct MapLayout *mapLayout, u16 metatile, u8 attr)
|
||||
{
|
||||
u32 * attributes;
|
||||
|
||||
if (metatile < NUM_METATILES_IN_PRIMARY)
|
||||
{
|
||||
attributes = mapData->primaryTileset->metatileAttributes;
|
||||
attributes = mapLayout->primaryTileset->metatileAttributes;
|
||||
return sub_8058F1C(attributes[metatile], attr);
|
||||
}
|
||||
else if (metatile < 0x400)
|
||||
{
|
||||
attributes = mapData->secondaryTileset->metatileAttributes;
|
||||
attributes = mapLayout->secondaryTileset->metatileAttributes;
|
||||
return sub_8058F1C(attributes[metatile - NUM_METATILES_IN_PRIMARY], attr);
|
||||
}
|
||||
else
|
||||
@@ -540,7 +540,7 @@ void save_serialize_map(void)
|
||||
{
|
||||
for (j = x; j < x + 15; j++)
|
||||
{
|
||||
*mapView++ = gBackupMapData[width * i + j];
|
||||
*mapView++ = gBackupMapLayout[width * i + j];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -581,7 +581,7 @@ void LoadSavedMapView(void)
|
||||
{
|
||||
for (j = x; j < x + 15; j++)
|
||||
{
|
||||
gBackupMapData[j + width * i] = *mapView;
|
||||
gBackupMapLayout[j + width * i] = *mapView;
|
||||
mapView++;
|
||||
}
|
||||
}
|
||||
@@ -636,7 +636,7 @@ void sub_8059250(u8 a1)
|
||||
desti = width * (y + y0);
|
||||
srci = (y + r8) * 15 + r9;
|
||||
src = &mapView[srci + i];
|
||||
dest = &gBackupMapData[x0 + desti + j];
|
||||
dest = &gBackupMapLayout[x0 + desti + j];
|
||||
*dest = *src;
|
||||
i++;
|
||||
j++;
|
||||
@@ -720,7 +720,7 @@ void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y)
|
||||
gSaveBlock1Ptr->pos.y -= connection->offset;
|
||||
break;
|
||||
case CONNECTION_WEST:
|
||||
gSaveBlock1Ptr->pos.x = mapHeader->mapData->width;
|
||||
gSaveBlock1Ptr->pos.x = mapHeader->mapLayout->width;
|
||||
gSaveBlock1Ptr->pos.y -= connection->offset;
|
||||
break;
|
||||
case CONNECTION_SOUTH:
|
||||
@@ -729,7 +729,7 @@ void sub_80594AC(struct MapConnection *connection, int direction, s32 x, s32 y)
|
||||
break;
|
||||
case CONNECTION_NORTH:
|
||||
gSaveBlock1Ptr->pos.x -= connection->offset;
|
||||
gSaveBlock1Ptr->pos.y = mapHeader->mapData->height;
|
||||
gSaveBlock1Ptr->pos.y = mapHeader->mapLayout->height;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -788,10 +788,10 @@ bool8 sub_8059658(u8 direction, s32 x, s32 y, struct MapConnection *connection)
|
||||
{
|
||||
case CONNECTION_SOUTH:
|
||||
case CONNECTION_NORTH:
|
||||
return sub_80596BC(x, gMapHeader.mapData->width, mapHeader->mapData->width, connection->offset);
|
||||
return sub_80596BC(x, gMapHeader.mapLayout->width, mapHeader->mapLayout->width, connection->offset);
|
||||
case CONNECTION_WEST:
|
||||
case CONNECTION_EAST:
|
||||
return sub_80596BC(y, gMapHeader.mapData->height, mapHeader->mapData->height, connection->offset);
|
||||
return sub_80596BC(y, gMapHeader.mapLayout->height, mapHeader->mapLayout->height, connection->offset);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@@ -825,10 +825,10 @@ s32 sub_80596FC(struct MapConnection *connection, s32 x, s32 y)
|
||||
{
|
||||
case CONNECTION_SOUTH:
|
||||
case CONNECTION_NORTH:
|
||||
return sub_80596E8(x - connection->offset, mapHeader->mapData->width);
|
||||
return sub_80596E8(x - connection->offset, mapHeader->mapLayout->width);
|
||||
case CONNECTION_WEST:
|
||||
case CONNECTION_EAST:
|
||||
return sub_80596E8(y - connection->offset, mapHeader->mapData->height);
|
||||
return sub_80596E8(y - connection->offset, mapHeader->mapLayout->height);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
@@ -852,9 +852,9 @@ struct MapConnection *GetMapConnectionAtPos(s16 x, s16 y)
|
||||
direction = connection->direction;
|
||||
if ((direction == CONNECTION_DIVE || direction == CONNECTION_EMERGE)
|
||||
|| (direction == CONNECTION_NORTH && y > 6)
|
||||
|| (direction == CONNECTION_SOUTH && y < gMapHeader.mapData->height + 7)
|
||||
|| (direction == CONNECTION_SOUTH && y < gMapHeader.mapLayout->height + 7)
|
||||
|| (direction == CONNECTION_WEST && x > 6)
|
||||
|| (direction == CONNECTION_EAST && x < gMapHeader.mapData->width + 7))
|
||||
|| (direction == CONNECTION_EAST && x < gMapHeader.mapLayout->width + 7))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -981,45 +981,45 @@ void apply_map_tileset_palette(struct Tileset const *tileset, u16 destOffset, u1
|
||||
}
|
||||
}
|
||||
|
||||
void copy_map_tileset1_to_vram(const struct MapData *mapData)
|
||||
void copy_map_tileset1_to_vram(const struct MapLayout *mapLayout)
|
||||
{
|
||||
copy_tileset_patterns_to_vram(mapData->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
|
||||
copy_tileset_patterns_to_vram(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
|
||||
}
|
||||
|
||||
void copy_map_tileset2_to_vram(const struct MapData *mapData)
|
||||
void copy_map_tileset2_to_vram(const struct MapLayout *mapLayout)
|
||||
{
|
||||
copy_tileset_patterns_to_vram(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
|
||||
copy_tileset_patterns_to_vram(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
|
||||
}
|
||||
|
||||
void copy_map_tileset2_to_vram_2(const struct MapData *mapData)
|
||||
void copy_map_tileset2_to_vram_2(const struct MapLayout *mapLayout)
|
||||
{
|
||||
copy_tileset_patterns_to_vram2(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
|
||||
copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
|
||||
}
|
||||
|
||||
void apply_map_tileset1_palette(const struct MapData *mapData)
|
||||
void apply_map_tileset1_palette(const struct MapLayout *mapLayout)
|
||||
{
|
||||
apply_map_tileset_palette(mapData->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2);
|
||||
apply_map_tileset_palette(mapLayout->primaryTileset, 0, NUM_PALS_IN_PRIMARY * 16 * 2);
|
||||
}
|
||||
|
||||
void apply_map_tileset2_palette(const struct MapData *mapData)
|
||||
void apply_map_tileset2_palette(const struct MapLayout *mapLayout)
|
||||
{
|
||||
apply_map_tileset_palette(mapData->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2);
|
||||
apply_map_tileset_palette(mapLayout->secondaryTileset, NUM_PALS_IN_PRIMARY * 16, (NUM_PALS_TOTAL - NUM_PALS_IN_PRIMARY) * 16 * 2);
|
||||
}
|
||||
|
||||
void copy_map_tileset1_tileset2_to_vram(struct MapData const *mapData)
|
||||
void copy_map_tileset1_tileset2_to_vram(struct MapLayout const *mapLayout)
|
||||
{
|
||||
if (mapData)
|
||||
if (mapLayout)
|
||||
{
|
||||
copy_tileset_patterns_to_vram2(mapData->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
|
||||
copy_tileset_patterns_to_vram2(mapData->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
|
||||
copy_tileset_patterns_to_vram2(mapLayout->primaryTileset, NUM_TILES_IN_PRIMARY, 0);
|
||||
copy_tileset_patterns_to_vram2(mapLayout->secondaryTileset, NUM_TILES_TOTAL - NUM_TILES_IN_PRIMARY, NUM_TILES_IN_PRIMARY);
|
||||
}
|
||||
}
|
||||
|
||||
void apply_map_tileset1_tileset2_palette(struct MapData const *mapData)
|
||||
void apply_map_tileset1_tileset2_palette(struct MapLayout const *mapLayout)
|
||||
{
|
||||
if (mapData)
|
||||
if (mapLayout)
|
||||
{
|
||||
apply_map_tileset1_palette(mapData);
|
||||
apply_map_tileset2_palette(mapData);
|
||||
apply_map_tileset1_palette(mapLayout);
|
||||
apply_map_tileset2_palette(mapLayout);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@ bool8 CheckObjectGraphicsInFrontOfPlayer(u8 graphicsId)
|
||||
|
||||
GetXYCoordsOneStepInFrontOfPlayer(&gPlayerFacingPosition.x, &gPlayerFacingPosition.y);
|
||||
gPlayerFacingPosition.height = PlayerGetZCoord();
|
||||
mapObjId = GetFieldObjectIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height);
|
||||
if (gMapObjects[mapObjId].graphicsId != graphicsId)
|
||||
mapObjId = GetObjectEventIdByXYZ(gPlayerFacingPosition.x, gPlayerFacingPosition.y, gPlayerFacingPosition.height);
|
||||
if (gObjectEvents[mapObjId].graphicsId != graphicsId)
|
||||
return FALSE;
|
||||
gSpecialVar_LastTalked = gMapObjects[mapObjId].localId;
|
||||
gSpecialVar_LastTalked = gObjectEvents[mapObjId].localId;
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -51,8 +51,8 @@ static void task08_080C9820(u8 taskId)
|
||||
ScriptContext2_Enable();
|
||||
gPlayerAvatar.unk6 = TRUE;
|
||||
mapObjId = gPlayerAvatar.mapObjectId;
|
||||
if (!FieldObjectIsMovementOverridden(&gMapObjects[mapObjId])
|
||||
|| FieldObjectClearHeldMovementIfFinished(&gMapObjects[mapObjId]))
|
||||
if (!ObjectEventIsMovementOverridden(&gObjectEvents[mapObjId])
|
||||
|| ObjectEventClearHeldMovementIfFinished(&gObjectEvents[mapObjId]))
|
||||
{
|
||||
if (gMapHeader.mapType == MAP_TYPE_UNDERWATER)
|
||||
{
|
||||
@@ -62,7 +62,7 @@ static void task08_080C9820(u8 taskId)
|
||||
else
|
||||
{
|
||||
sub_805CB70();
|
||||
FieldObjectSetHeldMovement(&gMapObjects[mapObjId], 0x45);
|
||||
ObjectEventSetHeldMovement(&gObjectEvents[mapObjId], 0x45);
|
||||
gTasks[taskId].func = sub_80C98B0;
|
||||
}
|
||||
}
|
||||
@@ -70,7 +70,7 @@ static void task08_080C9820(u8 taskId)
|
||||
|
||||
static void sub_80C98B0(u8 taskId)
|
||||
{
|
||||
if (FieldObjectCheckHeldMovementStatus(&gMapObjects[gPlayerAvatar.mapObjectId]) == TRUE)
|
||||
if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[gPlayerAvatar.mapObjectId]) == TRUE)
|
||||
{
|
||||
FieldEffectStart(FLDEFF_FIELD_MOVE_SHOW_MON_INIT);
|
||||
gTasks[taskId].func = sub_80C98FC;
|
||||
@@ -90,7 +90,7 @@ static void sub_80C98FC(u8 taskId)
|
||||
gFieldEffectArguments[2] = 2;
|
||||
if (gFieldEffectArguments[1] == 4)
|
||||
gFieldEffectArguments[2] = 3;
|
||||
EventObjectSetGraphicsId(&gMapObjects[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByCurrentState());
|
||||
EventObjectSetGraphicsId(&gObjectEvents[gPlayerAvatar.mapObjectId], GetPlayerAvatarGraphicsIdByCurrentState());
|
||||
StartSpriteAnim(&gSprites[gPlayerAvatar.spriteId], gFieldEffectArguments[2]);
|
||||
FieldEffectActiveListRemove(6);
|
||||
gTasks[taskId].func = sub_80C99A0;
|
||||
|
||||
+1
-1
@@ -235,7 +235,7 @@ static void sub_80A11C0(u8 taskId)
|
||||
{
|
||||
if (IsWeatherNotFadingIn() == TRUE)
|
||||
{
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
+6
-6
@@ -325,23 +325,23 @@ static bool8 HiddenItemInConnectedMapAtPos(struct MapConnection * connection, s3
|
||||
case 2:
|
||||
localOffset = connection->offset + 7;
|
||||
localX = x - localOffset;
|
||||
localLength = mapHeader->mapData->height - 7;
|
||||
localLength = mapHeader->mapLayout->height - 7;
|
||||
localY = localLength + y; // additions are reversed for some reason
|
||||
break;
|
||||
case 1:
|
||||
localOffset = connection->offset + 7;
|
||||
localX = x - localOffset;
|
||||
localLength = gMapHeader.mapData->height + 7;
|
||||
localLength = gMapHeader.mapLayout->height + 7;
|
||||
localY = y - localLength;
|
||||
break;
|
||||
case 3:
|
||||
localLength = mapHeader->mapData->width - 7;
|
||||
localLength = mapHeader->mapLayout->width - 7;
|
||||
localX = localLength + x; // additions are reversed for some reason
|
||||
localOffset = connection->offset + 7;
|
||||
localY = y - localOffset;
|
||||
break;
|
||||
case 4:
|
||||
localLength = gMapHeader.mapData->width + 7;
|
||||
localLength = gMapHeader.mapLayout->width + 7;
|
||||
localX = x - localLength;
|
||||
localOffset = connection->offset + 7;
|
||||
localY = y - localOffset;
|
||||
@@ -356,8 +356,8 @@ static void FindHiddenItemsInConnectedMaps(u8 taskId)
|
||||
{
|
||||
s16 x, y;
|
||||
s16 curX, curY;
|
||||
s16 width = gMapHeader.mapData->width + 7;
|
||||
s16 height = gMapHeader.mapData->height + 7;
|
||||
s16 width = gMapHeader.mapLayout->width + 7;
|
||||
s16 height = gMapHeader.mapLayout->height + 7;
|
||||
|
||||
s16 var1 = 7;
|
||||
s16 var2 = 7;
|
||||
|
||||
+6
-6
@@ -174,32 +174,32 @@ void LoadPlayerParty(void)
|
||||
gPlayerParty[i] = gSaveBlock1Ptr->playerParty[i];
|
||||
}
|
||||
|
||||
void SaveMapObjects(void)
|
||||
void SaveObjectEvents(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NUM_FIELD_OBJECTS; i++)
|
||||
gSaveBlock1Ptr->mapObjects[i] = gMapObjects[i];
|
||||
gSaveBlock1Ptr->objectEvents[i] = gObjectEvents[i];
|
||||
}
|
||||
|
||||
void LoadMapObjects(void)
|
||||
void LoadObjectEvents(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
for (i = 0; i < NUM_FIELD_OBJECTS; i++)
|
||||
gMapObjects[i] = gSaveBlock1Ptr->mapObjects[i];
|
||||
gObjectEvents[i] = gSaveBlock1Ptr->objectEvents[i];
|
||||
}
|
||||
|
||||
void SaveSerializedGame(void)
|
||||
{
|
||||
SavePlayerParty();
|
||||
SaveMapObjects();
|
||||
SaveObjectEvents();
|
||||
}
|
||||
|
||||
void LoadSerializedGame(void)
|
||||
{
|
||||
LoadPlayerParty();
|
||||
LoadMapObjects();
|
||||
LoadObjectEvents();
|
||||
}
|
||||
|
||||
void LoadPlayerBag(void)
|
||||
|
||||
+17
-17
@@ -36,7 +36,7 @@ bool8 sub_8069590(void)
|
||||
}
|
||||
}
|
||||
|
||||
void ScriptFreezeMapObjects(void)
|
||||
void ScriptFreezeObjectEvents(void)
|
||||
{
|
||||
FreezeEventObjects();
|
||||
CreateTask(sub_8069570, 80);
|
||||
@@ -52,9 +52,9 @@ void sub_80695CC(u8 taskId)
|
||||
task->data[0] = 1;
|
||||
}
|
||||
|
||||
if (task->data[1] == 0 && !gMapObjects[gSelectedEventObject].mapobj_bit_1)
|
||||
if (task->data[1] == 0 && !gObjectEvents[gSelectedObjectEvent].mapobj_bit_1)
|
||||
{
|
||||
FreezeMapObject(&gMapObjects[gSelectedEventObject]);
|
||||
FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]);
|
||||
task->data[1] = 1;
|
||||
}
|
||||
|
||||
@@ -73,44 +73,44 @@ bool8 sub_8069648(void)
|
||||
}
|
||||
}
|
||||
|
||||
void LockSelectedMapObject(void)
|
||||
void LockSelectedObjectEvent(void)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
FreezeMapObjectsExceptOne(gSelectedEventObject);
|
||||
FreezeObjectEventsExceptOne(gSelectedObjectEvent);
|
||||
taskId = CreateTask(sub_80695CC, 80);
|
||||
if (!gMapObjects[gSelectedEventObject].mapobj_bit_1)
|
||||
if (!gObjectEvents[gSelectedObjectEvent].mapobj_bit_1)
|
||||
{
|
||||
FreezeMapObject(&gMapObjects[gSelectedEventObject]);
|
||||
FreezeObjectEvent(&gObjectEvents[gSelectedObjectEvent]);
|
||||
gTasks[taskId].data[1] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_80696C0(void)
|
||||
{
|
||||
u8 fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]);
|
||||
u8 fieldObjectId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[fieldObjectId]);
|
||||
sub_80974D8();
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
}
|
||||
|
||||
void sub_80696F0(void)
|
||||
{
|
||||
u8 fieldObjectId;
|
||||
if (gMapObjects[gSelectedEventObject].active)
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]);
|
||||
fieldObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[fieldObjectId]);
|
||||
if (gObjectEvents[gSelectedObjectEvent].active)
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gSelectedObjectEvent]);
|
||||
fieldObjectId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[fieldObjectId]);
|
||||
sub_80974D8();
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
}
|
||||
|
||||
void sub_8069740(void)
|
||||
{
|
||||
FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject], gSpecialVar_Facing);
|
||||
ObjectEventFaceOppositeDirection(&gObjectEvents[gSelectedObjectEvent], gSpecialVar_Facing);
|
||||
}
|
||||
|
||||
void sub_8069768(void)
|
||||
{
|
||||
FieldObjectClearAnimIfSpecialAnimActive(&gMapObjects[gSelectedEventObject]);
|
||||
ObjectEventClearAnimIfSpecialAnimActive(&gObjectEvents[gSelectedObjectEvent]);
|
||||
}
|
||||
|
||||
+7
-7
@@ -627,7 +627,7 @@ static void sub_8110D94(void)
|
||||
|
||||
static void sub_8110E20(void)
|
||||
{
|
||||
VarSet(VAR_0x40AE, gSaveBlock1Ptr->mapDataId);
|
||||
VarSet(VAR_0x40AE, gSaveBlock1Ptr->mapLayoutId);
|
||||
}
|
||||
|
||||
static void sub_8110E3C(void)
|
||||
@@ -984,11 +984,11 @@ void sub_8111708(void)
|
||||
{
|
||||
struct MapHeader sp0;
|
||||
|
||||
gSaveBlock1Ptr->mapDataId = VarGet(VAR_0x40AE);
|
||||
if (gSaveBlock1Ptr->mapDataId == 0)
|
||||
gSaveBlock1Ptr->mapLayoutId = VarGet(VAR_0x40AE);
|
||||
if (gSaveBlock1Ptr->mapLayoutId == 0)
|
||||
{
|
||||
sp0 = *Overworld_GetMapHeaderByGroupAndId(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum);
|
||||
gSaveBlock1Ptr->mapDataId = sp0.mapDataId;
|
||||
gSaveBlock1Ptr->mapLayoutId = sp0.mapLayoutId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1532,12 +1532,12 @@ void sub_8112450(void)
|
||||
|
||||
void sub_811246C(struct Sprite *sprite)
|
||||
{
|
||||
struct MapObject *mapObject = &gMapObjects[sprite->data[0]];
|
||||
struct ObjectEvent *mapObject = &gObjectEvents[sprite->data[0]];
|
||||
if (mapObject->localId == 0xFF)
|
||||
{
|
||||
if (gUnknown_203AF9A[0][0] != 0xFF)
|
||||
{
|
||||
FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[0][0]);
|
||||
ObjectEventSetHeldMovement(mapObject, gUnknown_203AF9A[0][0]);
|
||||
gUnknown_203AF9A[0][0] = 0xFF;
|
||||
}
|
||||
if (gUnknown_203AF9A[0][1] != 0xFF)
|
||||
@@ -1551,7 +1551,7 @@ void sub_811246C(struct Sprite *sprite)
|
||||
{
|
||||
if (gUnknown_203AF9A[mapObject->localId][0] != 0xFF)
|
||||
{
|
||||
FieldObjectSetHeldMovement(mapObject, gUnknown_203AF9A[mapObject->localId][0]);
|
||||
ObjectEventSetHeldMovement(mapObject, gUnknown_203AF9A[mapObject->localId][0]);
|
||||
gUnknown_203AF9A[mapObject->localId][0] = 0xFF;
|
||||
}
|
||||
sub_8063E28(mapObject, sprite);
|
||||
|
||||
+13
-13
@@ -20,7 +20,7 @@ static void sub_81507CC(void);
|
||||
static void sub_81507D8(void);
|
||||
static void sub_81507E4(void);
|
||||
static void sub_81507F0(void);
|
||||
static void sub_81507BC(struct MapObject *a0, u8 a1);
|
||||
static void sub_81507BC(struct ObjectEvent *a0, u8 a1);
|
||||
|
||||
static void (*const gUnknown_8471EDC[])(void) = {
|
||||
sub_81504A8,
|
||||
@@ -57,24 +57,24 @@ void sub_8150498(u8 a0)
|
||||
|
||||
static void sub_81504A8(void)
|
||||
{
|
||||
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *mapObject = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
sub_81507BC(mapObject, sub_805C808(0));
|
||||
FieldObjectTurn(mapObject, mapObject->placeholder18);
|
||||
ObjectEventTurn(mapObject, mapObject->placeholder18);
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_ON_FOOT);
|
||||
}
|
||||
|
||||
static void sub_81504E8(void)
|
||||
{
|
||||
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *mapObject = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
sub_81507BC(mapObject, sub_805C808(1));
|
||||
FieldObjectTurn(mapObject, mapObject->placeholder18);
|
||||
ObjectEventTurn(mapObject, mapObject->placeholder18);
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_MACH_BIKE);
|
||||
sub_80BD620(0, 0);
|
||||
}
|
||||
|
||||
static void sub_8150530(void)
|
||||
{
|
||||
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *mapObject = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
struct Sprite *sprite = &gSprites[mapObject->spriteId];
|
||||
|
||||
if (gUnknown_3005E88 == 1 || gUnknown_3005E88 == 3)
|
||||
@@ -94,13 +94,13 @@ static void sub_8150530(void)
|
||||
|
||||
static void sub_81505C4(u8 taskId)
|
||||
{
|
||||
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *mapObject = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
struct Sprite *sprite = &gSprites[mapObject->spriteId];
|
||||
|
||||
switch (gTasks[taskId].data[0])
|
||||
{
|
||||
case 0:
|
||||
FieldObjectClearAnimIfSpecialAnimActive(mapObject);
|
||||
ObjectEventClearAnimIfSpecialAnimActive(mapObject);
|
||||
mapObject->mapobj_bit_11 = TRUE;
|
||||
sub_81507BC(mapObject, sub_805C808(4));
|
||||
StartSpriteAnim(sprite, sub_80634F0(mapObject->facingDirection));
|
||||
@@ -126,7 +126,7 @@ static void sub_81505C4(u8 taskId)
|
||||
sub_81507BC(mapObject, sub_805C808(0));
|
||||
else
|
||||
sub_81507BC(mapObject, sub_805C808(2));
|
||||
FieldObjectTurn(mapObject, mapObject->placeholder18);
|
||||
ObjectEventTurn(mapObject, mapObject->placeholder18);
|
||||
sprite->pos2.x = 0;
|
||||
sprite->pos2.y = 0;
|
||||
ScriptContext2_Disable();
|
||||
@@ -138,13 +138,13 @@ static void sub_81505C4(u8 taskId)
|
||||
|
||||
static void sub_8150708(void)
|
||||
{
|
||||
struct MapObject *mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent *mapObject = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
u8 fieldEffectId;
|
||||
|
||||
if (!(gPlayerAvatar.flags & PLAYER_AVATAR_FLAG_SURFING))
|
||||
{
|
||||
sub_81507BC(mapObject, sub_805C808(2));
|
||||
FieldObjectTurn(mapObject, mapObject->placeholder18);
|
||||
ObjectEventTurn(mapObject, mapObject->placeholder18);
|
||||
SetPlayerAvatarStateMask(PLAYER_AVATAR_FLAG_SURFING);
|
||||
gFieldEffectArguments[0] = mapObject->coords2.x;
|
||||
gFieldEffectArguments[1] = mapObject->coords2.y;
|
||||
@@ -165,13 +165,13 @@ static void sub_8150794(u8 taskId)
|
||||
{
|
||||
if (!FieldEffectActiveListContains(0x41))
|
||||
{
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
ScriptContext2_Disable();
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_81507BC(struct MapObject * a0, u8 a1)
|
||||
static void sub_81507BC(struct ObjectEvent * a0, u8 a1)
|
||||
{
|
||||
EventObjectSetGraphicsId(a0, a1);
|
||||
}
|
||||
|
||||
+92
-92
@@ -11,125 +11,125 @@ void sub_815A008(struct QuestLog * questLog)
|
||||
{
|
||||
u32 i;
|
||||
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
{
|
||||
questLog->unk_008[i].active = gMapObjects[i].active;
|
||||
questLog->unk_008[i].mapobj_bit_3 = gMapObjects[i].mapobj_bit_3;
|
||||
questLog->unk_008[i].mapobj_bit_4 = gMapObjects[i].mapobj_bit_4;
|
||||
questLog->unk_008[i].mapobj_bit_5 = gMapObjects[i].mapobj_bit_5;
|
||||
questLog->unk_008[i].mapobj_bit_8 = gMapObjects[i].mapobj_bit_8;
|
||||
questLog->unk_008[i].mapobj_bit_9 = gMapObjects[i].mapobj_bit_9;
|
||||
questLog->unk_008[i].mapobj_bit_10 = gMapObjects[i].mapobj_bit_10;
|
||||
questLog->unk_008[i].mapobj_bit_11 = gMapObjects[i].mapobj_bit_11;
|
||||
questLog->unk_008[i].mapobj_bit_12 = gMapObjects[i].mapobj_bit_12;
|
||||
questLog->unk_008[i].mapobj_bit_13 = gMapObjects[i].mapobj_bit_13;
|
||||
questLog->unk_008[i].mapobj_bit_14 = gMapObjects[i].mapobj_bit_14;
|
||||
questLog->unk_008[i].mapobj_bit_15 = gMapObjects[i].mapobj_bit_15;
|
||||
questLog->unk_008[i].mapobj_bit_16 = gMapObjects[i].mapobj_bit_16;
|
||||
questLog->unk_008[i].mapobj_bit_23 = gMapObjects[i].mapobj_bit_23;
|
||||
questLog->unk_008[i].mapobj_bit_24 = gMapObjects[i].mapobj_bit_24;
|
||||
questLog->unk_008[i].mapobj_bit_25 = gMapObjects[i].mapobj_bit_25;
|
||||
questLog->unk_008[i].mapobj_bit_26 = gMapObjects[i].mapobj_bit_26;
|
||||
questLog->unk_008[i].mapobj_unk_18 = gMapObjects[i].facingDirection;
|
||||
questLog->unk_008[i].mapobj_unk_0B_0 = gMapObjects[i].mapobj_unk_0B_0;
|
||||
questLog->unk_008[i].elevation = gMapObjects[i].elevation;
|
||||
questLog->unk_008[i].graphicsId = gMapObjects[i].graphicsId;
|
||||
questLog->unk_008[i].animPattern = gMapObjects[i].animPattern;
|
||||
questLog->unk_008[i].trainerType = gMapObjects[i].trainerType;
|
||||
questLog->unk_008[i].localId = gMapObjects[i].localId;
|
||||
questLog->unk_008[i].mapNum = gMapObjects[i].mapNum;
|
||||
questLog->unk_008[i].mapGroup = gMapObjects[i].mapGroup;
|
||||
questLog->unk_008[i].x = gMapObjects[i].coords2.x;
|
||||
questLog->unk_008[i].y = gMapObjects[i].coords2.y;
|
||||
questLog->unk_008[i].trainerRange_berryTreeId = gMapObjects[i].trainerRange_berryTreeId;
|
||||
questLog->unk_008[i].mapobj_unk_1F = gMapObjects[i].mapobj_unk_1F;
|
||||
questLog->unk_008[i].mapobj_unk_21 = gMapObjects[i].mapobj_unk_21;
|
||||
questLog->unk_008[i].animId = gMapObjects[i].animId;
|
||||
questLog->unk_008[i].active = gObjectEvents[i].active;
|
||||
questLog->unk_008[i].mapobj_bit_3 = gObjectEvents[i].mapobj_bit_3;
|
||||
questLog->unk_008[i].mapobj_bit_4 = gObjectEvents[i].mapobj_bit_4;
|
||||
questLog->unk_008[i].mapobj_bit_5 = gObjectEvents[i].mapobj_bit_5;
|
||||
questLog->unk_008[i].mapobj_bit_8 = gObjectEvents[i].mapobj_bit_8;
|
||||
questLog->unk_008[i].mapobj_bit_9 = gObjectEvents[i].mapobj_bit_9;
|
||||
questLog->unk_008[i].mapobj_bit_10 = gObjectEvents[i].mapobj_bit_10;
|
||||
questLog->unk_008[i].mapobj_bit_11 = gObjectEvents[i].mapobj_bit_11;
|
||||
questLog->unk_008[i].mapobj_bit_12 = gObjectEvents[i].mapobj_bit_12;
|
||||
questLog->unk_008[i].mapobj_bit_13 = gObjectEvents[i].mapobj_bit_13;
|
||||
questLog->unk_008[i].mapobj_bit_14 = gObjectEvents[i].mapobj_bit_14;
|
||||
questLog->unk_008[i].mapobj_bit_15 = gObjectEvents[i].mapobj_bit_15;
|
||||
questLog->unk_008[i].mapobj_bit_16 = gObjectEvents[i].mapobj_bit_16;
|
||||
questLog->unk_008[i].mapobj_bit_23 = gObjectEvents[i].mapobj_bit_23;
|
||||
questLog->unk_008[i].mapobj_bit_24 = gObjectEvents[i].mapobj_bit_24;
|
||||
questLog->unk_008[i].mapobj_bit_25 = gObjectEvents[i].mapobj_bit_25;
|
||||
questLog->unk_008[i].mapobj_bit_26 = gObjectEvents[i].mapobj_bit_26;
|
||||
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].graphicsId = gObjectEvents[i].graphicsId;
|
||||
questLog->unk_008[i].animPattern = gObjectEvents[i].animPattern;
|
||||
questLog->unk_008[i].trainerType = gObjectEvents[i].trainerType;
|
||||
questLog->unk_008[i].localId = gObjectEvents[i].localId;
|
||||
questLog->unk_008[i].mapNum = gObjectEvents[i].mapNum;
|
||||
questLog->unk_008[i].mapGroup = gObjectEvents[i].mapGroup;
|
||||
questLog->unk_008[i].x = gObjectEvents[i].coords2.x;
|
||||
questLog->unk_008[i].y = gObjectEvents[i].coords2.y;
|
||||
questLog->unk_008[i].trainerRange_berryTreeId = gObjectEvents[i].trainerRange_berryTreeId;
|
||||
questLog->unk_008[i].mapobj_unk_1F = gObjectEvents[i].mapobj_unk_1F;
|
||||
questLog->unk_008[i].mapobj_unk_21 = gObjectEvents[i].mapobj_unk_21;
|
||||
questLog->unk_008[i].animId = gObjectEvents[i].animId;
|
||||
}
|
||||
}
|
||||
|
||||
void sub_815A1F8(const struct QuestLog * questLog, const struct MapObjectTemplate * templates)
|
||||
void sub_815A1F8(const struct QuestLog * questLog, const struct ObjectEventTemplate * templates)
|
||||
{
|
||||
u32 i, j;
|
||||
const struct QuestLogMapObject * questLogMapObjects = questLog->unk_008;
|
||||
const struct QuestLogMapObject * questLogObjectEvents = questLog->unk_008;
|
||||
|
||||
CpuFill16(0, gMapObjects, sizeof(gMapObjects));
|
||||
CpuFill16(0, gObjectEvents, sizeof(gObjectEvents));
|
||||
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
{
|
||||
gMapObjects[i].active = questLogMapObjects[i].active;
|
||||
gMapObjects[i].mapobj_bit_3 = questLogMapObjects[i].mapobj_bit_3;
|
||||
gMapObjects[i].mapobj_bit_4 = questLogMapObjects[i].mapobj_bit_4;
|
||||
gMapObjects[i].mapobj_bit_5 = questLogMapObjects[i].mapobj_bit_5;
|
||||
gMapObjects[i].mapobj_bit_8 = questLogMapObjects[i].mapobj_bit_8;
|
||||
gMapObjects[i].mapobj_bit_9 = questLogMapObjects[i].mapobj_bit_9;
|
||||
gMapObjects[i].mapobj_bit_10 = questLogMapObjects[i].mapobj_bit_10;
|
||||
gMapObjects[i].mapobj_bit_11 = questLogMapObjects[i].mapobj_bit_11;
|
||||
gMapObjects[i].mapobj_bit_12 = questLogMapObjects[i].mapobj_bit_12;
|
||||
gMapObjects[i].mapobj_bit_13 = questLogMapObjects[i].mapobj_bit_13;
|
||||
gMapObjects[i].mapobj_bit_14 = questLogMapObjects[i].mapobj_bit_14;
|
||||
gMapObjects[i].mapobj_bit_15 = questLogMapObjects[i].mapobj_bit_15;
|
||||
gMapObjects[i].mapobj_bit_16 = questLogMapObjects[i].mapobj_bit_16;
|
||||
gMapObjects[i].mapobj_bit_23 = questLogMapObjects[i].mapobj_bit_23;
|
||||
gMapObjects[i].mapobj_bit_24 = questLogMapObjects[i].mapobj_bit_24;
|
||||
gMapObjects[i].mapobj_bit_25 = questLogMapObjects[i].mapobj_bit_25;
|
||||
gMapObjects[i].mapobj_bit_26 = questLogMapObjects[i].mapobj_bit_26;
|
||||
gMapObjects[i].facingDirection = questLogMapObjects[i].mapobj_unk_18;
|
||||
gMapObjects[i].mapobj_unk_0B_0 = questLogMapObjects[i].mapobj_unk_0B_0;
|
||||
gMapObjects[i].elevation = questLogMapObjects[i].elevation;
|
||||
gMapObjects[i].graphicsId = questLogMapObjects[i].graphicsId;
|
||||
gMapObjects[i].animPattern = questLogMapObjects[i].animPattern;
|
||||
gMapObjects[i].trainerType = questLogMapObjects[i].trainerType;
|
||||
gMapObjects[i].localId = questLogMapObjects[i].localId;
|
||||
gMapObjects[i].mapNum = questLogMapObjects[i].mapNum;
|
||||
gMapObjects[i].mapGroup = questLogMapObjects[i].mapGroup;
|
||||
gMapObjects[i].coords2.x = questLogMapObjects[i].x;
|
||||
gMapObjects[i].coords2.y = questLogMapObjects[i].y;
|
||||
gMapObjects[i].trainerRange_berryTreeId = questLogMapObjects[i].trainerRange_berryTreeId;
|
||||
gMapObjects[i].mapobj_unk_1F = questLogMapObjects[i].mapobj_unk_1F;
|
||||
gMapObjects[i].mapobj_unk_21 = questLogMapObjects[i].mapobj_unk_21;
|
||||
gMapObjects[i].animId = questLogMapObjects[i].animId;
|
||||
gObjectEvents[i].active = questLogObjectEvents[i].active;
|
||||
gObjectEvents[i].mapobj_bit_3 = questLogObjectEvents[i].mapobj_bit_3;
|
||||
gObjectEvents[i].mapobj_bit_4 = questLogObjectEvents[i].mapobj_bit_4;
|
||||
gObjectEvents[i].mapobj_bit_5 = questLogObjectEvents[i].mapobj_bit_5;
|
||||
gObjectEvents[i].mapobj_bit_8 = questLogObjectEvents[i].mapobj_bit_8;
|
||||
gObjectEvents[i].mapobj_bit_9 = questLogObjectEvents[i].mapobj_bit_9;
|
||||
gObjectEvents[i].mapobj_bit_10 = questLogObjectEvents[i].mapobj_bit_10;
|
||||
gObjectEvents[i].mapobj_bit_11 = questLogObjectEvents[i].mapobj_bit_11;
|
||||
gObjectEvents[i].mapobj_bit_12 = questLogObjectEvents[i].mapobj_bit_12;
|
||||
gObjectEvents[i].mapobj_bit_13 = questLogObjectEvents[i].mapobj_bit_13;
|
||||
gObjectEvents[i].mapobj_bit_14 = questLogObjectEvents[i].mapobj_bit_14;
|
||||
gObjectEvents[i].mapobj_bit_15 = questLogObjectEvents[i].mapobj_bit_15;
|
||||
gObjectEvents[i].mapobj_bit_16 = questLogObjectEvents[i].mapobj_bit_16;
|
||||
gObjectEvents[i].mapobj_bit_23 = questLogObjectEvents[i].mapobj_bit_23;
|
||||
gObjectEvents[i].mapobj_bit_24 = questLogObjectEvents[i].mapobj_bit_24;
|
||||
gObjectEvents[i].mapobj_bit_25 = questLogObjectEvents[i].mapobj_bit_25;
|
||||
gObjectEvents[i].mapobj_bit_26 = questLogObjectEvents[i].mapobj_bit_26;
|
||||
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].graphicsId = questLogObjectEvents[i].graphicsId;
|
||||
gObjectEvents[i].animPattern = questLogObjectEvents[i].animPattern;
|
||||
gObjectEvents[i].trainerType = questLogObjectEvents[i].trainerType;
|
||||
gObjectEvents[i].localId = questLogObjectEvents[i].localId;
|
||||
gObjectEvents[i].mapNum = questLogObjectEvents[i].mapNum;
|
||||
gObjectEvents[i].mapGroup = questLogObjectEvents[i].mapGroup;
|
||||
gObjectEvents[i].coords2.x = questLogObjectEvents[i].x;
|
||||
gObjectEvents[i].coords2.y = questLogObjectEvents[i].y;
|
||||
gObjectEvents[i].trainerRange_berryTreeId = questLogObjectEvents[i].trainerRange_berryTreeId;
|
||||
gObjectEvents[i].mapobj_unk_1F = questLogObjectEvents[i].mapobj_unk_1F;
|
||||
gObjectEvents[i].mapobj_unk_21 = questLogObjectEvents[i].mapobj_unk_21;
|
||||
gObjectEvents[i].animId = questLogObjectEvents[i].animId;
|
||||
|
||||
for (j = 0; j < 0x40; j++)
|
||||
{
|
||||
if (gMapObjects[i].localId == templates[j].localId)
|
||||
if (gObjectEvents[i].localId == templates[j].localId)
|
||||
{
|
||||
gMapObjects[i].coords1.x = templates[j].x + 7;
|
||||
gMapObjects[i].coords1.y = templates[j].y + 7;
|
||||
gMapObjects[i].range.as_nybbles.x = templates[j].movementRangeX;
|
||||
gMapObjects[i].range.as_nybbles.y = templates[j].movementRangeY;
|
||||
gObjectEvents[i].coords1.x = templates[j].x + 7;
|
||||
gObjectEvents[i].coords1.y = templates[j].y + 7;
|
||||
gObjectEvents[i].range.as_nybbles.x = templates[j].movementRangeX;
|
||||
gObjectEvents[i].range.as_nybbles.y = templates[j].movementRangeY;
|
||||
}
|
||||
}
|
||||
|
||||
gMapObjects[i].mapobj_unk_1E = MapGridGetMetatileBehaviorAt(gMapObjects[i].coords2.x, gMapObjects[i].coords2.y);
|
||||
if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x), (s16)(gMapObjects[i].coords2.y)))
|
||||
gObjectEvents[i].mapobj_unk_1E = MapGridGetMetatileBehaviorAt(gObjectEvents[i].coords2.x, gObjectEvents[i].coords2.y);
|
||||
if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y)))
|
||||
{
|
||||
gMapObjects[i].coords3.x = gMapObjects[i].coords2.x;
|
||||
gMapObjects[i].coords3.y = gMapObjects[i].coords2.y;
|
||||
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
|
||||
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
|
||||
}
|
||||
else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x - 1), (s16)(gMapObjects[i].coords2.y)))
|
||||
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x - 1), (s16)(gObjectEvents[i].coords2.y)))
|
||||
{
|
||||
gMapObjects[i].coords3.x = gMapObjects[i].coords2.x - 1;
|
||||
gMapObjects[i].coords3.y = gMapObjects[i].coords2.y;
|
||||
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x - 1;
|
||||
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
|
||||
}
|
||||
else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x + 1), (s16)(gMapObjects[i].coords2.y)))
|
||||
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x + 1), (s16)(gObjectEvents[i].coords2.y)))
|
||||
{
|
||||
gMapObjects[i].coords3.x = gMapObjects[i].coords2.x + 1;
|
||||
gMapObjects[i].coords3.y = gMapObjects[i].coords2.y;
|
||||
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x + 1;
|
||||
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y;
|
||||
}
|
||||
else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x), (s16)(gMapObjects[i].coords2.y - 1)))
|
||||
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y - 1)))
|
||||
{
|
||||
gMapObjects[i].coords3.x = gMapObjects[i].coords2.x;
|
||||
gMapObjects[i].coords3.y = gMapObjects[i].coords2.y - 1;
|
||||
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
|
||||
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y - 1;
|
||||
}
|
||||
else if (gMapObjects[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gMapObjects[i].coords2.x), (s16)(gMapObjects[i].coords2.y + 1)))
|
||||
else if (gObjectEvents[i].mapobj_unk_1F == MapGridGetMetatileBehaviorAt((s16)(gObjectEvents[i].coords2.x), (s16)(gObjectEvents[i].coords2.y + 1)))
|
||||
{
|
||||
gMapObjects[i].coords3.x = gMapObjects[i].coords2.x;
|
||||
gMapObjects[i].coords3.y = gMapObjects[i].coords2.y + 1;
|
||||
gObjectEvents[i].coords3.x = gObjectEvents[i].coords2.x;
|
||||
gObjectEvents[i].coords3.y = gObjectEvents[i].coords2.y + 1;
|
||||
}
|
||||
}
|
||||
|
||||
CpuCopy16(gMapObjects, gSaveBlock1Ptr->mapObjects, sizeof(gMapObjects));
|
||||
CpuCopy16(gObjectEvents, gSaveBlock1Ptr->mapObjects, sizeof(gObjectEvents));
|
||||
}
|
||||
|
||||
void sub_815A540(void)
|
||||
@@ -141,7 +141,7 @@ void sub_815A540(void)
|
||||
PlayerGetDestCoords(&x, &y);
|
||||
if (!MetatileBehavior_IsSurfable(MapGridGetMetatileBehaviorAt(x, y)) && TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING))
|
||||
{
|
||||
struct MapObject * mapObject = &gMapObjects[gPlayerAvatar.mapObjectId];
|
||||
struct ObjectEvent * mapObject = &gObjectEvents[gPlayerAvatar.mapObjectId];
|
||||
SetPlayerAvatarTransitionFlags(0x01);
|
||||
DestroySprite(&gSprites[mapObject->mapobj_unk_1A]);
|
||||
}
|
||||
|
||||
+18
-18
@@ -60,7 +60,7 @@ static EWRAM_DATA u16 sFieldEffectScriptId = 0;
|
||||
|
||||
struct ScriptContext * gUnknown_3005070;
|
||||
|
||||
extern u8 gSelectedEventObject;
|
||||
extern u8 gSelectedObjectEvent;
|
||||
|
||||
// This is defined in here so the optimizer can't see its value when compiling
|
||||
// script.c.
|
||||
@@ -1048,7 +1048,7 @@ bool8 ScrCmd_removeobject(struct ScriptContext *ctx)
|
||||
{
|
||||
u16 localId = VarGet(ScriptReadHalfword(ctx));
|
||||
|
||||
RemoveFieldObjectByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
RemoveObjectEventByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1058,7 +1058,7 @@ bool8 ScrCmd_removeobject_at(struct ScriptContext *ctx)
|
||||
u8 mapGroup = ScriptReadByte(ctx);
|
||||
u8 mapNum = ScriptReadByte(ctx);
|
||||
|
||||
RemoveFieldObjectByLocalIdAndMap(objectId, mapNum, mapGroup);
|
||||
RemoveObjectEventByLocalIdAndMap(objectId, mapNum, mapGroup);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1151,9 +1151,9 @@ bool8 ScrCmd_resetobjectpriority(struct ScriptContext *ctx)
|
||||
|
||||
bool8 ScrCmd_faceplayer(struct ScriptContext *ctx)
|
||||
{
|
||||
if (gMapObjects[gSelectedEventObject].active)
|
||||
if (gObjectEvents[gSelectedObjectEvent].active)
|
||||
{
|
||||
FieldObjectFaceOppositeDirection(&gMapObjects[gSelectedEventObject],
|
||||
ObjectEventFaceOppositeDirection(&gObjectEvents[gSelectedObjectEvent],
|
||||
GetPlayerFacingDirection());
|
||||
}
|
||||
return FALSE;
|
||||
@@ -1164,7 +1164,7 @@ bool8 ScrCmd_turnobject(struct ScriptContext *ctx)
|
||||
u16 localId = VarGet(ScriptReadHalfword(ctx));
|
||||
u8 direction = ScriptReadByte(ctx);
|
||||
|
||||
FieldObjectTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction);
|
||||
ObjectEventTurnByLocalIdAndMap(localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, direction);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1207,7 +1207,7 @@ bool8 ScrCmd_lockall(struct ScriptContext *ctx)
|
||||
}
|
||||
else
|
||||
{
|
||||
ScriptFreezeMapObjects();
|
||||
ScriptFreezeObjectEvents();
|
||||
SetupNativeScript(ctx, sub_8069590);
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1221,14 +1221,14 @@ bool8 ScrCmd_lock(struct ScriptContext *ctx)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (gMapObjects[gSelectedEventObject].active)
|
||||
if (gObjectEvents[gSelectedObjectEvent].active)
|
||||
{
|
||||
LockSelectedMapObject();
|
||||
LockSelectedObjectEvent();
|
||||
SetupNativeScript(ctx, sub_8069648);
|
||||
}
|
||||
else
|
||||
{
|
||||
ScriptFreezeMapObjects();
|
||||
ScriptFreezeObjectEvents();
|
||||
SetupNativeScript(ctx, sub_8069590);
|
||||
}
|
||||
return TRUE;
|
||||
@@ -1240,10 +1240,10 @@ bool8 ScrCmd_releaseall(struct ScriptContext *ctx)
|
||||
u8 playerObjectId;
|
||||
|
||||
HideFieldMessageBox();
|
||||
playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]);
|
||||
playerObjectId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[playerObjectId]);
|
||||
sub_80974D8();
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1252,12 +1252,12 @@ bool8 ScrCmd_release(struct ScriptContext *ctx)
|
||||
u8 playerObjectId;
|
||||
|
||||
HideFieldMessageBox();
|
||||
if (gMapObjects[gSelectedEventObject].active)
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[gSelectedEventObject]);
|
||||
playerObjectId = GetFieldObjectIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
FieldObjectClearHeldMovementIfFinished(&gMapObjects[playerObjectId]);
|
||||
if (gObjectEvents[gSelectedObjectEvent].active)
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[gSelectedObjectEvent]);
|
||||
playerObjectId = GetObjectEventIdByLocalIdAndMap(0xFF, 0, 0);
|
||||
ObjectEventClearHeldMovementIfFinished(&gObjectEvents[playerObjectId]);
|
||||
sub_80974D8();
|
||||
UnfreezeMapObjects();
|
||||
UnfreezeObjectEvents();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
+25
-25
@@ -55,7 +55,7 @@ enum
|
||||
// shop view window NPC info enum
|
||||
enum
|
||||
{
|
||||
EVENT_OBJ_ID,
|
||||
OBJECT_EVENT_ID,
|
||||
X_COORD,
|
||||
Y_COORD,
|
||||
ANIM_NUM
|
||||
@@ -89,7 +89,7 @@ struct MartHistory
|
||||
/*0x0B*/ u8 unkB;
|
||||
}; /* size = 12 */
|
||||
|
||||
static EWRAM_DATA s16 sViewportMapObjects[MAP_OBJECTS_COUNT][4] = {0};
|
||||
static EWRAM_DATA s16 sViewportObjectEvents[OBJECT_EVENTS_COUNT][4] = {0};
|
||||
EWRAM_DATA struct ShopData gShopData = {0};
|
||||
static EWRAM_DATA u8 sShopMenuWindowId = 0;
|
||||
EWRAM_DATA u16 (*gShopTilemapBuffer1)[0x400] = {0};
|
||||
@@ -140,7 +140,7 @@ static void BuyMenuDrawMapBg(void);
|
||||
static void BuyMenuDrawMapMetatile(s16 x, s16 y, const u16 *src, u8 metatileLayerType);
|
||||
static void BuyMenuDrawMapMetatileLayer(u16 *dest, s16 offset1, s16 offset2, const u16 *src);
|
||||
static void BuyMenuCollectEventObjectData(void);
|
||||
static void BuyMenuDrawEventObjects(void);
|
||||
static void BuyMenuDrawObjectEvents(void);
|
||||
static void BuyMenuCopyTilemapData(void);
|
||||
static void BuyMenuPrintItemQuantityAndPrice(u8 taskId);
|
||||
static void Task_BuyMenu(u8 taskId);
|
||||
@@ -736,7 +736,7 @@ static void BuyMenuRemoveScrollIndicatorArrows(void)
|
||||
static void sub_809B764(void)
|
||||
{
|
||||
BuyMenuCollectEventObjectData();
|
||||
BuyMenuDrawEventObjects();
|
||||
BuyMenuDrawObjectEvents();
|
||||
BuyMenuDrawMapBg();
|
||||
}
|
||||
|
||||
@@ -810,34 +810,34 @@ static void BuyMenuCollectEventObjectData(void)
|
||||
GetXYCoordsOneStepInFrontOfPlayer(&facingX, &facingY);
|
||||
z = PlayerGetZCoord();
|
||||
|
||||
for (y = 0; y < MAP_OBJECTS_COUNT; y++)
|
||||
sViewportMapObjects[y][EVENT_OBJ_ID] = MAP_OBJECTS_COUNT;
|
||||
for (y = 0; y < OBJECT_EVENTS_COUNT; y++)
|
||||
sViewportObjectEvents[y][OBJECT_EVENT_ID] = OBJECT_EVENTS_COUNT;
|
||||
|
||||
for (y = 0; y < 5; y++)
|
||||
{
|
||||
for (x = 0; x < 7; x++)
|
||||
{
|
||||
u8 eventObjId = GetFieldObjectIdByXYZ(facingX - 3 + x, facingY - 2 + y, z);
|
||||
if (eventObjId != MAP_OBJECTS_COUNT)
|
||||
u8 eventObjId = GetObjectEventIdByXYZ(facingX - 3 + x, facingY - 2 + y, z);
|
||||
if (eventObjId != OBJECT_EVENTS_COUNT)
|
||||
{
|
||||
sViewportMapObjects[num][EVENT_OBJ_ID] = eventObjId;
|
||||
sViewportMapObjects[num][X_COORD] = x;
|
||||
sViewportMapObjects[num][Y_COORD] = y;
|
||||
sViewportObjectEvents[num][OBJECT_EVENT_ID] = eventObjId;
|
||||
sViewportObjectEvents[num][X_COORD] = x;
|
||||
sViewportObjectEvents[num][Y_COORD] = y;
|
||||
|
||||
switch (gMapObjects[eventObjId].facingDirection)
|
||||
switch (gObjectEvents[eventObjId].facingDirection)
|
||||
{
|
||||
case DIR_SOUTH:
|
||||
sViewportMapObjects[num][ANIM_NUM] = 0;
|
||||
sViewportObjectEvents[num][ANIM_NUM] = 0;
|
||||
break;
|
||||
case DIR_NORTH:
|
||||
sViewportMapObjects[num][ANIM_NUM] = 1;
|
||||
sViewportObjectEvents[num][ANIM_NUM] = 1;
|
||||
break;
|
||||
case DIR_WEST:
|
||||
sViewportMapObjects[num][ANIM_NUM] = 2;
|
||||
sViewportObjectEvents[num][ANIM_NUM] = 2;
|
||||
break;
|
||||
case DIR_EAST:
|
||||
default:
|
||||
sViewportMapObjects[num][ANIM_NUM] = 3;
|
||||
sViewportObjectEvents[num][ANIM_NUM] = 3;
|
||||
break;
|
||||
}
|
||||
num++;
|
||||
@@ -846,24 +846,24 @@ static void BuyMenuCollectEventObjectData(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void BuyMenuDrawEventObjects(void)
|
||||
static void BuyMenuDrawObjectEvents(void)
|
||||
{
|
||||
u8 i, spriteId;
|
||||
const struct MapObjectGraphicsInfo *graphicsInfo;
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo;
|
||||
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
|
||||
{
|
||||
if (sViewportMapObjects[i][EVENT_OBJ_ID] == MAP_OBJECTS_COUNT)
|
||||
if (sViewportObjectEvents[i][OBJECT_EVENT_ID] == OBJECT_EVENTS_COUNT)
|
||||
continue;
|
||||
|
||||
graphicsInfo = GetFieldObjectGraphicsInfo(gMapObjects[sViewportMapObjects[i][EVENT_OBJ_ID]].graphicsId);
|
||||
graphicsInfo = GetObjectEventGraphicsInfo(gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId);
|
||||
spriteId = AddPseudoEventObject(
|
||||
gMapObjects[sViewportMapObjects[i][EVENT_OBJ_ID]].graphicsId,
|
||||
gObjectEvents[sViewportObjectEvents[i][OBJECT_EVENT_ID]].graphicsId,
|
||||
SpriteCallbackDummy,
|
||||
(u16)sViewportMapObjects[i][X_COORD] * 16 - 8,
|
||||
(u16)sViewportMapObjects[i][Y_COORD] * 16 + 48 - graphicsInfo->height / 2,
|
||||
(u16)sViewportObjectEvents[i][X_COORD] * 16 - 8,
|
||||
(u16)sViewportObjectEvents[i][Y_COORD] * 16 + 48 - graphicsInfo->height / 2,
|
||||
2);
|
||||
StartSpriteAnim(&gSprites[spriteId], sViewportMapObjects[i][ANIM_NUM]);
|
||||
StartSpriteAnim(&gSprites[spriteId], sViewportObjectEvents[i][ANIM_NUM]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+12
-12
@@ -104,7 +104,7 @@ static void Task_SSAnneRun(u8 taskId)
|
||||
{
|
||||
s16 * data = gTasks[taskId].data;
|
||||
u8 mapObjectId;
|
||||
struct MapObject * boatObject;
|
||||
struct ObjectEvent * boatObject;
|
||||
s16 x;
|
||||
|
||||
data[1]++;
|
||||
@@ -114,8 +114,8 @@ static void Task_SSAnneRun(u8 taskId)
|
||||
data[1] = 0;
|
||||
CreateSmokeSprite();
|
||||
}
|
||||
TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gMapObjects[mapObjectId];
|
||||
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gObjectEvents[mapObjectId];
|
||||
if (gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x < -120)
|
||||
{
|
||||
PlaySE(SE_KITEKI);
|
||||
@@ -144,12 +144,12 @@ static void Task_SSAnneFinish(u8 taskId)
|
||||
static void CreateWakeBehindBoat(void)
|
||||
{
|
||||
u8 mapObjectId;
|
||||
struct MapObject * boatObject;
|
||||
struct ObjectEvent * boatObject;
|
||||
u16 x;
|
||||
u8 spriteId;
|
||||
|
||||
TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gMapObjects[mapObjectId];
|
||||
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gObjectEvents[mapObjectId];
|
||||
x = gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x + 80;
|
||||
spriteId = CreateSprite(&sWakeSpriteTemplate, x, 109, 0xFF);
|
||||
gSprites[spriteId].oam.priority = 2;
|
||||
@@ -159,11 +159,11 @@ static void CreateWakeBehindBoat(void)
|
||||
static void WakeSpriteCallback(struct Sprite * sprite)
|
||||
{
|
||||
u8 mapObjectId;
|
||||
struct MapObject * boatObject;
|
||||
struct ObjectEvent * boatObject;
|
||||
u16 x;
|
||||
|
||||
TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gMapObjects[mapObjectId];
|
||||
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gObjectEvents[mapObjectId];
|
||||
x = gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x + 80;
|
||||
sprite->pos1.x = x;
|
||||
if (sprite->data[0] / 6 < 22)
|
||||
@@ -176,12 +176,12 @@ static void WakeSpriteCallback(struct Sprite * sprite)
|
||||
static void CreateSmokeSprite(void)
|
||||
{
|
||||
u8 mapObjectId;
|
||||
struct MapObject * boatObject;
|
||||
struct ObjectEvent * boatObject;
|
||||
u16 x;
|
||||
u8 spriteId;
|
||||
|
||||
TryGetFieldObjectIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gMapObjects[mapObjectId];
|
||||
TryGetObjectEventIdByLocalIdAndMap(1, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &mapObjectId);
|
||||
boatObject = &gObjectEvents[mapObjectId];
|
||||
x = gSprites[boatObject->spriteId].pos1.x + gSprites[boatObject->spriteId].pos2.x + 49;
|
||||
if ((s16)x >= -32)
|
||||
{
|
||||
|
||||
+5
-5
@@ -112,11 +112,11 @@ static void TeachyTvGrassAnimationObjCallback(struct Sprite *sprite);
|
||||
static void TeachyTvRestorePlayerPartyCallback(void);
|
||||
static void TeachyTvPreBattleAnimAndSetBattleCallback(u8 taskId);
|
||||
static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u16 size);
|
||||
static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset);
|
||||
static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapLayout *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset);
|
||||
static void TeachyTvComputeMapTilesFromTilesetAndMetaTiles(u16 *metaTilesArray, u8 *blockBuf, u8 *tileset);
|
||||
static void TeachyTvComputeSingleMapTileBlockFromTilesetAndMetaTiles(u8 *blockBuf, u8 *tileset, u8 metaTile);
|
||||
static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16 metaTile);
|
||||
static void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 *palIndexArray);
|
||||
static void TeachyTvLoadMapPalette(const struct MapLayout * mStruct, const u8 *palIndexArray);
|
||||
|
||||
static const struct BgTemplate sBgTemplates[] =
|
||||
{
|
||||
@@ -1240,7 +1240,7 @@ static void TeachyTvLoadBg3Map(u16 *buffer)
|
||||
void * tilesetsBuffer;
|
||||
void * palIndicesBuffer;
|
||||
u16 numMapTilesRows = 0;
|
||||
const struct MapData *layout = &Route1_Layout;
|
||||
const struct MapLayout *layout = &Route1_Layout;
|
||||
u16 * blockIndicesBuffer = AllocZeroed(0x800);
|
||||
tilesetsBuffer = AllocZeroed(0x8000);
|
||||
palIndicesBuffer = Alloc(16);
|
||||
@@ -1307,7 +1307,7 @@ static void TeachyTvLoadMapTilesetToBuffer(struct Tileset *ts, u8 *dstBuffer, u1
|
||||
}
|
||||
}
|
||||
|
||||
static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapData *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset)
|
||||
static void TeachyTvPushBackNewMapPalIndexArrayEntry(const struct MapLayout *mStruct, u16 *buf1, u8 *palIndexArray, u16 mapEntry, u16 offset)
|
||||
{
|
||||
u16 * metaTileEntryAddr = mapEntry <= 0x27F ? &((u16*)(mStruct->primaryTileset->metatiles))[8 * mapEntry] : &((u16*)(mStruct->secondaryTileset->metatiles))[8 * (mapEntry - 0x280)];
|
||||
buf1[0] = (TeachyTvComputePalIndexArrayEntryByMetaTile(palIndexArray, metaTileEntryAddr[0]) << 12) + 4 * offset;
|
||||
@@ -1397,7 +1397,7 @@ static u16 TeachyTvComputePalIndexArrayEntryByMetaTile(u8 *palIndexArrayBuf, u16
|
||||
return (0xF - i);
|
||||
}
|
||||
|
||||
static void TeachyTvLoadMapPalette(const struct MapData * mStruct, const u8 * palIndexArray)
|
||||
static void TeachyTvLoadMapPalette(const struct MapLayout * mStruct, const u8 * palIndexArray)
|
||||
{
|
||||
u8 i;
|
||||
const struct Tileset * ts;
|
||||
|
||||
+4
-4
@@ -194,8 +194,8 @@ static void _InitPrimaryTilesetAnimation(void)
|
||||
sPrimaryTilesetAnimCounter = 0;
|
||||
sPrimaryTilesetAnimCounterMax = 0;
|
||||
sPrimaryTilesetAnimCallback = NULL;
|
||||
if (gMapHeader.mapData->primaryTileset && gMapHeader.mapData->primaryTileset->callback)
|
||||
gMapHeader.mapData->primaryTileset->callback();
|
||||
if (gMapHeader.mapLayout->primaryTileset && gMapHeader.mapLayout->primaryTileset->callback)
|
||||
gMapHeader.mapLayout->primaryTileset->callback();
|
||||
}
|
||||
|
||||
static void _InitSecondaryTilesetAnimation(void)
|
||||
@@ -203,8 +203,8 @@ static void _InitSecondaryTilesetAnimation(void)
|
||||
sSecondaryTilesetAnimCounter = 0;
|
||||
sSecondaryTilesetAnimCounterMax = 0;
|
||||
sSecondaryTilesetAnimCallback = NULL;
|
||||
if (gMapHeader.mapData->secondaryTileset && gMapHeader.mapData->secondaryTileset->callback)
|
||||
gMapHeader.mapData->secondaryTileset->callback();
|
||||
if (gMapHeader.mapLayout->secondaryTileset && gMapHeader.mapLayout->secondaryTileset->callback)
|
||||
gMapHeader.mapLayout->secondaryTileset->callback();
|
||||
}
|
||||
|
||||
static void sub_80700A4(u16 timer)
|
||||
|
||||
+1
-1
@@ -142,7 +142,7 @@ static u32 sub_804FA14(struct Pokemon * party, int partyCount, int cursorPos);
|
||||
static const size_t gUnknown_8260814[] = {
|
||||
sizeof(struct SaveBlock2),
|
||||
sizeof(struct SaveBlock1),
|
||||
sizeof(struct MapData),
|
||||
sizeof(struct MapLayout),
|
||||
0x530, // unk
|
||||
0x34, // unk
|
||||
sizeof(struct MailStruct),
|
||||
|
||||
+5
-5
@@ -521,7 +521,7 @@ static void sub_815DC8C(void) // fakematching
|
||||
const struct TrainerTowerFloor *const * r7;
|
||||
|
||||
sTrainerTowerState = AllocZeroed(sizeof(*sTrainerTowerState));
|
||||
sTrainerTowerState->floorIdx = gMapHeader.mapDataId - 42;
|
||||
sTrainerTowerState->floorIdx = gMapHeader.mapLayoutId - 42;
|
||||
if (sub_815D834() == TRUE)
|
||||
CEReaderTool_LoadTrainerTower(&sTrainerTowerState->unk_0004);
|
||||
else
|
||||
@@ -628,7 +628,7 @@ static void sub_815DD2C(void)
|
||||
|
||||
static void sub_815DD44(void)
|
||||
{
|
||||
if (gMapHeader.mapDataId - LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY > sTrainerTowerState->unk_0004.count)
|
||||
if (gMapHeader.mapLayoutId - LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY > sTrainerTowerState->unk_0004.count)
|
||||
{
|
||||
gSpecialVar_Result = 3;
|
||||
SetCurrentMapLayout(LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_ROOF);
|
||||
@@ -831,8 +831,8 @@ static void sub_815E1F0(void)
|
||||
|
||||
static void TTSpecial_HasReachedTheRoof(void)
|
||||
{
|
||||
u16 mapDataId = gMapHeader.mapDataId;
|
||||
if (mapDataId - LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_1F == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapDataId - LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY <= sTrainerTowerState->unk_0004.floors[sTrainerTowerState->floorIdx].floorIdx)
|
||||
u16 mapLayoutId = gMapHeader.mapLayoutId;
|
||||
if (mapLayoutId - LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_1F == gSaveBlock1Ptr->unkArray[gSaveBlock1Ptr->unkArrayIdx].unk8 && mapLayoutId - LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY <= sTrainerTowerState->unk_0004.floors[sTrainerTowerState->floorIdx].floorIdx)
|
||||
gSpecialVar_Result = FALSE;
|
||||
else
|
||||
gSpecialVar_Result = TRUE;
|
||||
@@ -1008,7 +1008,7 @@ static void sub_815E8CC(void)
|
||||
|
||||
static void sub_815E908(void)
|
||||
{
|
||||
if (gMapHeader.mapDataId == LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY && VarGet(VAR_MAP_SCENE_TRAINER_TOWER) == 0)
|
||||
if (gMapHeader.mapLayoutId == LAYOUT_SEVEN_ISLAND_TRAINER_TOWER_LOBBY && VarGet(VAR_MAP_SCENE_TRAINER_TOWER) == 0)
|
||||
{
|
||||
gSpecialVar_Result = FALSE;
|
||||
}
|
||||
|
||||
+28
-28
@@ -68,8 +68,8 @@ struct VsSeekerStruct
|
||||
};
|
||||
|
||||
extern u16 gSpecialVar_LastTalked;
|
||||
extern struct MapObject gMapObjects[MAP_OBJECTS_COUNT];
|
||||
extern u8 gSelectedEventObject;
|
||||
extern struct ObjectEvent gObjectEvents[MAP_OBJECTS_COUNT];
|
||||
extern u8 gSelectedObjectEvent;
|
||||
|
||||
// static declarations
|
||||
static EWRAM_DATA struct VsSeekerStruct *sVsSeeker = NULL;
|
||||
@@ -595,9 +595,9 @@ static void sub_810C3B8(u8 taskId)
|
||||
{
|
||||
if (sub_810CF04(i) == TRUE)
|
||||
{
|
||||
if (gMapObjects[i].mapobj_bit_1)
|
||||
if (gObjectEvents[i].mapobj_bit_1)
|
||||
return;
|
||||
FreezeMapObject(&gMapObjects[i]);
|
||||
FreezeObjectEvent(&gObjectEvents[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -613,19 +613,19 @@ static void sub_810C3B8(u8 taskId)
|
||||
|
||||
void sub_810C444(void)
|
||||
{
|
||||
struct MapObjectTemplate * templates = gSaveBlock1Ptr->mapObjectTemplates;
|
||||
struct ObjectEventTemplate * templates = gSaveBlock1Ptr->mapObjectTemplates;
|
||||
u8 i;
|
||||
u8 r6;
|
||||
u8 sp0;
|
||||
struct MapObject * mapObject;
|
||||
struct ObjectEvent * mapObject;
|
||||
|
||||
for (i = 0; i < gMapHeader.events->mapObjectCount; i++)
|
||||
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))
|
||||
{
|
||||
r6 = sub_810CF54();
|
||||
TryGetFieldObjectIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
|
||||
mapObject = &gMapObjects[sp0];
|
||||
TryGetObjectEventIdByLocalIdAndMap(templates[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
|
||||
mapObject = &gObjectEvents[sp0];
|
||||
if (sub_810CF04(sp0) == TRUE)
|
||||
{
|
||||
SetTrainerMovementType(mapObject, r6);
|
||||
@@ -758,7 +758,7 @@ static void sub_810C594(void)
|
||||
|
||||
for (i = 0; i < MAP_OBJECTS_COUNT; i++)
|
||||
{
|
||||
struct MapObject * mapObject = &gMapObjects[i];
|
||||
struct ObjectEvent * mapObject = &gObjectEvents[i];
|
||||
if (mapObject->animPattern == 0x4D || mapObject->animPattern == 0x4E || mapObject->animPattern == 0x4F)
|
||||
{
|
||||
u8 r3 = sub_810CF54();
|
||||
@@ -857,22 +857,22 @@ static void Task_VsSeeker_2(u8 taskId)
|
||||
|
||||
static void GatherNearbyTrainerInfo(void)
|
||||
{
|
||||
struct MapObjectTemplate *templates = gSaveBlock1Ptr->mapObjectTemplates;
|
||||
struct ObjectEventTemplate *templates = gSaveBlock1Ptr->mapObjectTemplates;
|
||||
u8 fieldObjectId = 0;
|
||||
u8 vsSeekerObjectIdx = 0;
|
||||
s32 mapObjectIdx;
|
||||
|
||||
for (mapObjectIdx = 0; mapObjectIdx < gMapHeader.events->mapObjectCount; mapObjectIdx++)
|
||||
for (mapObjectIdx = 0; mapObjectIdx < gMapHeader.events->objectEventCount; mapObjectIdx++)
|
||||
{
|
||||
if (templates[mapObjectIdx].trainerType == 1 || templates[mapObjectIdx].trainerType == 3)
|
||||
{
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].script = templates[mapObjectIdx].script;
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].trainerIdx = GetTrainerFlagFromScript(templates[mapObjectIdx].script);
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].localId = templates[mapObjectIdx].localId;
|
||||
TryGetFieldObjectIdByLocalIdAndMap(templates[mapObjectIdx].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &fieldObjectId);
|
||||
TryGetObjectEventIdByLocalIdAndMap(templates[mapObjectIdx].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &fieldObjectId);
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].fieldObjectId = fieldObjectId;
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gMapObjects[fieldObjectId].coords2.x - 7;
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gMapObjects[fieldObjectId].coords2.y - 7;
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].xCoord = gObjectEvents[fieldObjectId].coords2.x - 7;
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].yCoord = gObjectEvents[fieldObjectId].coords2.y - 7;
|
||||
sVsSeeker->trainerInfo[vsSeekerObjectIdx].graphicsId = templates[mapObjectIdx].graphicsId;
|
||||
vsSeekerObjectIdx++;
|
||||
}
|
||||
@@ -960,7 +960,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
|
||||
else
|
||||
{
|
||||
gSaveBlock1Ptr->trainerRematches[sVsSeeker->trainerInfo[vsSeekerIdx].localId] = r7;
|
||||
npc_coords_shift_still(&gMapObjects[sVsSeeker->trainerInfo[vsSeekerIdx].fieldObjectId]);
|
||||
npc_coords_shift_still(&gObjectEvents[sVsSeeker->trainerInfo[vsSeekerIdx].fieldObjectId]);
|
||||
StartTrainerObjectMovementScript(&sVsSeeker->trainerInfo[vsSeekerIdx], gUnknown_8453F64);
|
||||
sVsSeeker->trainerIdxArray[sVsSeeker->numRematchableTrainers] = r8;
|
||||
sVsSeeker->runningBehaviourEtcArray[sVsSeeker->numRematchableTrainers] = GetRunningBehaviorFromGraphicsId(sVsSeeker->trainerInfo[vsSeekerIdx].graphicsId);
|
||||
@@ -1120,7 +1120,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
|
||||
"\tlsls r0, r1, 3\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tlsls r0, 2\n"
|
||||
"\tldr r1, _0810CB5C @ =gMapObjects\n"
|
||||
"\tldr r1, _0810CB5C @ =gObjectEvents\n"
|
||||
"\tadds r0, r1\n"
|
||||
"\tbl npc_coords_shift_still\n"
|
||||
"\tldr r0, [r6]\n"
|
||||
@@ -1194,7 +1194,7 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
|
||||
"\t.align 2, 0\n"
|
||||
"_0810CB54: .4byte gSaveBlock1Ptr\n"
|
||||
"_0810CB58: .4byte 0x0000063a\n"
|
||||
"_0810CB5C: .4byte gMapObjects\n"
|
||||
"_0810CB5C: .4byte gObjectEvents\n"
|
||||
"_0810CB60: .4byte gUnknown_8453F64\n"
|
||||
"_0810CB64: .4byte 0x00000431\n"
|
||||
"_0810CB68: .4byte sVsSeeker\n"
|
||||
@@ -1223,25 +1223,25 @@ static u8 GetVsSeekerResponseInArea(const VsSeekerData * a0)
|
||||
void sub_810CB90(void)
|
||||
{
|
||||
u8 sp0 = 0;
|
||||
struct MapObjectTemplate *r4 = gSaveBlock1Ptr->mapObjectTemplates;
|
||||
struct ObjectEventTemplate *r4 = gSaveBlock1Ptr->mapObjectTemplates;
|
||||
s32 r9 = sub_810CE10(sVsSeekerData, gTrainerBattleOpponent_A);
|
||||
|
||||
if (r9 != -1)
|
||||
{
|
||||
s32 r8;
|
||||
|
||||
for (r8 = 0; r8 < gMapHeader.events->mapObjectCount; r8++)
|
||||
for (r8 = 0; r8 < gMapHeader.events->objectEventCount; r8++)
|
||||
{
|
||||
if ((r4[r8].trainerType == 1 || r4[r8].trainerType == 3) && r9 == sub_810CE10(sVsSeekerData, GetTrainerFlagFromScript(r4[r8].script)))
|
||||
{
|
||||
struct MapObject *r4_2;
|
||||
struct ObjectEvent *r4_2;
|
||||
|
||||
TryGetFieldObjectIdByLocalIdAndMap(r4[r8].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, &sp0);
|
||||
r4_2 = &gMapObjects[sp0];
|
||||
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.
|
||||
sub_805FE7C(r4_2, gUnknown_8453F67[r4_2->facingDirection]);
|
||||
gSaveBlock1Ptr->trainerRematches[r4[r8].localId] = 0;
|
||||
if (gSelectedEventObject == sp0)
|
||||
if (gSelectedObjectEvent == sp0)
|
||||
r4_2->animPattern = gUnknown_8453F67[r4_2->facingDirection];
|
||||
else
|
||||
r4_2->animPattern = 0x08;
|
||||
@@ -1384,9 +1384,9 @@ static bool8 sub_810CED0(const VsSeekerData * a0, u16 a1)
|
||||
|
||||
bool8 sub_810CF04(u8 a0)
|
||||
{
|
||||
struct MapObject *r1 = &gMapObjects[a0];
|
||||
struct ObjectEvent *r1 = &gObjectEvents[a0];
|
||||
|
||||
if (r1->active && gMapHeader.events->mapObjectCount >= r1->localId && gSprites[r1->spriteId].data[0] == a0)
|
||||
if (r1->active && gMapHeader.events->objectEventCount >= r1->localId && gSprites[r1->spriteId].data[0] == a0)
|
||||
return TRUE;
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1560,7 +1560,7 @@ static u8 GetRematchableTrainerLocalId(void)
|
||||
|
||||
static void StartTrainerObjectMovementScript(struct VsSeekerTrainerInfo * trainerInfo, const u8 * script)
|
||||
{
|
||||
npc_sync_anim_pause_bits(&gMapObjects[trainerInfo->fieldObjectId]);
|
||||
npc_sync_anim_pause_bits(&gObjectEvents[trainerInfo->fieldObjectId]);
|
||||
ScriptMovement_StartObjectMovementScript(trainerInfo->localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup, script);
|
||||
}
|
||||
|
||||
@@ -1596,7 +1596,7 @@ static void StartAllRespondantIdleMovements(void)
|
||||
{
|
||||
if (sVsSeeker->trainerInfo[j].trainerIdx == sVsSeeker->trainerIdxArray[i])
|
||||
{
|
||||
struct MapObject *r4 = &gMapObjects[sVsSeeker->trainerInfo[j].fieldObjectId];
|
||||
struct ObjectEvent *r4 = &gObjectEvents[sVsSeeker->trainerInfo[j].fieldObjectId];
|
||||
|
||||
if (sub_810CF04(sVsSeeker->trainerInfo[j].fieldObjectId) == 1)
|
||||
SetTrainerMovementType(r4, sVsSeeker->runningBehaviourEtcArray[i]);
|
||||
|
||||
Reference in New Issue
Block a user