ongoing refactor of serialization and various cleanup
This commit is contained in:
+13
-16
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user