Add union for clone objects

This commit is contained in:
GriffinR
2022-02-05 13:42:46 -05:00
parent bef2668d8b
commit dd5f6ccd3b
7 changed files with 83 additions and 67 deletions
+9 -9
View File
@@ -403,22 +403,22 @@ static void LoadObjEventTemplatesFromHeader(void)
u8 i, j;
for (i = 0, j = 0; i < gMapHeader.events->objectEventCount; i++)
{
if (gMapHeader.events->objectEvents[i].inConnection == 0xFF)
if (gMapHeader.events->objectEvents[i].kind == OBJ_KIND_CLONE)
{
// load "in_connection" object from the connecting map
u8 localId = gMapHeader.events->objectEvents[i].elevation;
u8 mapNum = gMapHeader.events->objectEvents[i].trainerType;
u8 mapGroup = gMapHeader.events->objectEvents[i].trainerRange_berryTreeId;
u8 localId = gMapHeader.events->objectEvents[i].objUnion.clone.targetLocalId;
u8 mapNum = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapNum;
u8 mapGroup = gMapHeader.events->objectEvents[i].objUnion.clone.targetMapGroup;
const struct MapHeader * connectionMap = Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum);
gSaveBlock1Ptr->objectEventTemplates[j] = connectionMap->events->objectEvents[localId - 1];
gSaveBlock1Ptr->objectEventTemplates[j].localId = gMapHeader.events->objectEvents[i].localId;
gSaveBlock1Ptr->objectEventTemplates[j].x = gMapHeader.events->objectEvents[i].x;
gSaveBlock1Ptr->objectEventTemplates[j].y = gMapHeader.events->objectEvents[i].y;
gSaveBlock1Ptr->objectEventTemplates[j].elevation = localId;
gSaveBlock1Ptr->objectEventTemplates[j].trainerType = mapNum;
gSaveBlock1Ptr->objectEventTemplates[j].trainerRange_berryTreeId = mapGroup;
gSaveBlock1Ptr->objectEventTemplates[j].inConnection = 0xFF;
gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetLocalId = localId;
gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetMapNum = mapNum;
gSaveBlock1Ptr->objectEventTemplates[j].objUnion.clone.targetMapGroup = mapGroup;
gSaveBlock1Ptr->objectEventTemplates[j].kind = OBJ_KIND_CLONE;
j++;
}
else
@@ -466,7 +466,7 @@ void Overworld_SetObjEventTemplateMovementType(u8 localId, u8 movementType)
struct ObjectEventTemplate *objectEventTemplate = &savObjTemplates[i];
if (objectEventTemplate->localId == localId)
{
objectEventTemplate->movementType = movementType;
objectEventTemplate->objUnion.normal.movementType = movementType;
return;
}
}