Corrected possible segmentatino fault in component querying in components initialisation.
This commit is contained in:
parent
98dd1bbdcb
commit
2e03f91596
|
|
@ -9,8 +9,13 @@ int animation_system_init(component_t *component)
|
|||
{
|
||||
animation_system_data_t *system_data = component->data;
|
||||
|
||||
system_data->sprite_component_data = entity_get_component(component->entity, SPRITE_COMPONENT)->data;
|
||||
if(!system_data->sprite_component_data) return EXIT_FAILURE;
|
||||
component_t *sprite_component = entity_get_component(component->entity, SPRITE_COMPONENT);
|
||||
if(!sprite_component)
|
||||
{
|
||||
error_printf("Animation system require a sprite component.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
system_data->sprite_component_data = sprite_component->data;
|
||||
|
||||
system_data->nb_frames = 1;
|
||||
system_data->current_frame_nb = 0;
|
||||
|
|
|
|||
|
|
@ -9,8 +9,13 @@ int hitbox_component_init(component_t *component)
|
|||
{
|
||||
hitbox_component_data_t *component_data = component->data;
|
||||
|
||||
component_data->transform_component_data = entity_get_component(component->entity, TRANSFORM_COMPONENT)->data;
|
||||
if(!component_data->transform_component_data) return EXIT_FAILURE;
|
||||
component_t *transform_component = entity_get_component(component->entity, TRANSFORM_COMPONENT);
|
||||
if(!transform_component)
|
||||
{
|
||||
error_printf("Hitbox component require a transform component.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
component_data->transform_component_data = transform_component->data;
|
||||
|
||||
component_data->position = (fvector2d_t) {
|
||||
.x = 0.0f,
|
||||
|
|
|
|||
|
|
@ -11,9 +11,21 @@ int physics_system_init(component_t *component)
|
|||
{
|
||||
physics_system_data_t *system_data = component->data;
|
||||
|
||||
system_data->hitbox_component_data = entity_get_component(component->entity, HITBOX_COMPONENT)->data;
|
||||
if(!system_data->hitbox_component_data) return EXIT_FAILURE;
|
||||
system_data->transform_component_data = system_data->hitbox_component_data->transform_component_data;
|
||||
component_t *transform_component = entity_get_component(component->entity, TRANSFORM_COMPONENT);
|
||||
if(!transform_component)
|
||||
{
|
||||
error_printf("Physics system require a transform component.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
system_data->transform_component_data = transform_component->data;
|
||||
|
||||
component_t *hitbox_component = entity_get_component(component->entity, HITBOX_COMPONENT);
|
||||
if(!hitbox_component)
|
||||
{
|
||||
error_printf("Physics system require an hitbox component.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
system_data->hitbox_component_data = hitbox_component->data;
|
||||
|
||||
system_data->target_velocity = (fvector2d_t) {
|
||||
.x = 0.0f,
|
||||
|
|
|
|||
|
|
@ -11,11 +11,29 @@ inline int player_system_init(component_t *component)
|
|||
{
|
||||
player_system_data_t *system_data = component->data;
|
||||
|
||||
system_data->animation_system_data = entity_get_component(component->entity, ANIMATION_SYSTEM)->data;
|
||||
if(!system_data->animation_system_data) return EXIT_FAILURE;
|
||||
system_data->sprite_component_data = system_data->animation_system_data->sprite_component_data;
|
||||
system_data->physics_system_data = entity_get_component(component->entity, PHYSICS_SYSTEM)->data;
|
||||
if(!system_data->physics_system_data) return EXIT_FAILURE;
|
||||
component_t *sprite_component = entity_get_component(component->entity, SPRITE_COMPONENT);
|
||||
if(!sprite_component)
|
||||
{
|
||||
error_printf("Player system require a sprite component.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
system_data->sprite_component_data = sprite_component->data;
|
||||
|
||||
component_t *animation_system = entity_get_component(component->entity, ANIMATION_SYSTEM);
|
||||
if(!animation_system)
|
||||
{
|
||||
error_printf("Player system require an animation system.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
system_data->animation_system_data = animation_system->data;
|
||||
|
||||
component_t *physics_system = entity_get_component(component->entity, PHYSICS_SYSTEM);
|
||||
if(!physics_system)
|
||||
{
|
||||
error_printf("Player system require a physics system.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
system_data->physics_system_data = physics_system->data;
|
||||
|
||||
system_data->state = PLAYER_MOVING;
|
||||
|
||||
|
|
|
|||
|
|
@ -9,16 +9,21 @@ inline int sprite_component_init(component_t *component)
|
|||
{
|
||||
sprite_component_data_t *component_data = component->data;
|
||||
|
||||
component_data->transform_component_data = entity_get_component(component->entity, TRANSFORM_COMPONENT)->data;
|
||||
if(!component_data->transform_component_data) return EXIT_FAILURE;
|
||||
component_t * transform_component = entity_get_component(component->entity, TRANSFORM_COMPONENT);
|
||||
if(!transform_component)
|
||||
{
|
||||
error_printf("Sprite component require a transform component.");
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
component_data->transform_component_data = transform_component->data;
|
||||
|
||||
transform_component_data_t *transform_component_data = component_data->transform_component_data;
|
||||
|
||||
if(sprite_component_set_texture(component_data, "dummy_sheet")) return EXIT_FAILURE;
|
||||
|
||||
frect_to_rect(&transform_component_data->bounds, &component_data->src_rect);
|
||||
component_data->src_rect.x = 0.0f;
|
||||
component_data->src_rect.y = 0.0f;
|
||||
component_data->src_rect.x = 0;
|
||||
component_data->src_rect.y = 0;
|
||||
|
||||
component_data->flip = false;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue