Skip to content

Commit

Permalink
a
Browse files Browse the repository at this point in the history
  • Loading branch information
red031000 committed Mar 14, 2024
1 parent d44c83d commit ce3a54a
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 22 deletions.
4 changes: 2 additions & 2 deletions include/map_object.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,8 +171,8 @@ void sub_0205E420(LocalMapObject *object);
void MapObjectManager_RemoveAllActiveObjects(MapObjectManager *manager);
void sub_0205E4C8(MapObjectManager *manager);
void sub_0205E520(MapObjectManager *manager);
void sub_0205E580(MapObjectManager* manager);
void FieldSystem_SyncMapObjectsToSaveEx(FieldSystem *fieldSystem, MapObjectManager *mapObjectManager, struct SavedMapObject *saveObj, int objNum);
void sub_0205E580(MapObjectManager *manager);
void FieldSystem_SyncMapObjectsToSaveEx(FieldSystem *fieldSystem, MapObjectManager *manager, SavedMapObject *savedObjects, s32 count);
void MapObjectManager_RestoreFromSave(MapObjectManager *mapObjectManager, SavedMapObject *list, u32 numObj);
void sub_0205E680(FieldSystem* fieldSystem, LocalMapObject* local_object, SavedMapObject* saved_object);
void sub_0205E7C4(LocalMapObject* local_object, SavedMapObject* saved_object);
Expand Down
41 changes: 21 additions & 20 deletions src/map_object.c
Original file line number Diff line number Diff line change
Expand Up @@ -250,47 +250,48 @@ void sub_0205E520(MapObjectManager *manager) {
} while (i < count);
}

void sub_0205E580(MapObjectManager* manager) {
//exactly the same as above, except it checks if object id is 0xFF
void sub_0205E580(MapObjectManager *manager) {
GF_ASSERT(sub_0205F5D4(manager) == TRUE);

int i = 0;
int count = MapObjectManager_GetObjectCount(manager);
LocalMapObject* objects = MapObjectManager_GetObjects(manager);
LocalMapObject* object = objects;
s32 i = 0;
s32 count = MapObjectManager_GetObjectCount(manager);
LocalMapObject *objects = MapObjectManager_GetObjects(manager);

do {
if (MapObject_IsInUse(object) == TRUE && MapObject_GetID(object) == 0xFF) {
if (MapObject_CheckFlag14(object) == TRUE) {
sub_0205F4C0(object);
if (MapObject_IsInUse(objects) == TRUE && MapObject_GetID(objects) == 0xFF) { //todo: const (is this invalid ID? or just max?)
if (MapObject_CheckFlag14(objects) == TRUE) {
sub_0205F4C0(objects);
} else {
sub_0205EFB4(object);
sub_0205EFB4(objects);
}

sub_0205EF48(object);
sub_020611DC(object);
sub_0205EF48(objects);
sub_020611DC(objects);

return;
}

i++;
object++;
objects++;
} while (i < count);
}

void FieldSystem_SyncMapObjectsToSaveEx(FieldSystem* fieldSystem, MapObjectManager* manager, SavedMapObject* list, int count) {
int index = 0;
LocalMapObject* local_object;
SavedMapObject* saved_object = list;
while (sub_0205EEF4(manager, &local_object, &index, MAPOBJECTFLAG_ACTIVE)) {
sub_0205E680(fieldSystem, local_object, saved_object);
void FieldSystem_SyncMapObjectsToSaveEx(FieldSystem *fieldSystem, MapObjectManager *manager, SavedMapObject *savedObjects, s32 count) {
s32 index = 0;
LocalMapObject *object;

while (sub_0205EEF4(manager, &object, &index, MAPOBJECTFLAG_ACTIVE)) { //MapObjectManager_GetNextActiveObject? this is an iterator however
sub_0205E680(fieldSystem, object, savedObjects); //SavedMapObject_InitFromLocalMapIObject?

count--;
saved_object++;
savedObjects++;

GF_ASSERT(count > 0);
}

if (count != 0) {
memset(saved_object, 0, count * sizeof(SavedMapObject));
memset(savedObjects, 0, count * sizeof(SavedMapObject));
}
}

Expand Down

0 comments on commit ce3a54a

Please sign in to comment.