ongoing refactor of serialization and various cleanup

This commit is contained in:
2026-09-07 16:58:57 -04:00
parent 1a045c3578
commit a462575af4
43 changed files with 952 additions and 483 deletions
+13 -16
View File
@@ -2,24 +2,21 @@
#include <Core/Common/serialization.h>
DEFINE_ENTITY(Inert);
DEFINE_CLASS_VERSIONED(Entity, 1, nullptr, nullptr)
void serialize(archive& ar, NonNullPtr<Entity> entity)
DEFINE_ENTITY_VERSIONED(Inert, 1, nullptr)
void serialize(Archive& ar, NonNullPtr<Entity> entity)
{
serialize_elem(ar, entity->ID);
// Entity fields
serialize(ar, Entity::kind, entity.Get());
if (ar.loading)
{
serialize_elem(ar, entity->Kind->kind);
}
else
{
uint8 kind;
serialize_elem(ar, kind);
entity->Kind = kEntity_type_class_ptr[kind];
}
SERIALIZE(ar, id, entity->ID);
SERIALIZE(ar, position, entity->position);
serialize_elem(ar, entity->X);
serialize_elem(ar, entity->Y);
serialize_elem(ar, entity->Z);
// Derived fields
if (entity->derived_kind != nullptr && entity->derived != nullptr)
{
serialize(ar, entity->derived_kind, entity->derived);
}
}