#include #include void serialize(Archive& ar, NonNullPtr entity) { // Entity fields serialize(ar, Entity::kind, entity.Get()); // Derived fields if (entity->derived_kind != nullptr && entity->derived != nullptr) { serialize(ar, entity->derived_kind, entity->derived); } } DEFINE_CLASS_VERSIONED(Entity, 1, nullptr) internal void serialize(Archive& ar, uint16 /*version*/, Entity& entity) { SERIALIZE(ar, id, entity.ID); SERIALIZE(ar, position, entity.position); }