|
|
@@ -579,11 +579,11 @@ void spawn_units(World& w, const UnitResource& ur, const Vector3& pos, const Qua
|
|
|
AnimationStateMachine* animation_state_machine = w._animation_state_machine;
|
|
|
|
|
|
// Create components
|
|
|
- const ComponentData* component = unit_resource::component_data(&ur);
|
|
|
+ const ComponentData* component = unit_resource::component_type_data(&ur, NULL);
|
|
|
for (u32 cc = 0; cc < ur.num_component_types; ++cc)
|
|
|
{
|
|
|
- const u32* unit_index = (u32*)(component + 1);
|
|
|
- const char* data = (char*)memory::align_top(unit_index + component->num_instances, 16);
|
|
|
+ const u32* unit_index = unit_resource::component_unit_index(component);
|
|
|
+ const char* data = unit_resource::component_payload(component);
|
|
|
|
|
|
if (component->type == COMPONENT_TYPE_TRANSFORM)
|
|
|
{
|
|
|
@@ -680,8 +680,7 @@ void spawn_units(World& w, const UnitResource& ur, const Vector3& pos, const Qua
|
|
|
CE_FATAL("Unknown component type");
|
|
|
}
|
|
|
|
|
|
- // Advance to next component type
|
|
|
- component = (ComponentData*)memory::align_top(data + component->data_size, alignof(ComponentData));
|
|
|
+ component = unit_resource::component_type_data(&ur, component);
|
|
|
}
|
|
|
|
|
|
for (u32 i = 0; i < ur.num_units; ++i)
|