#ifndef __GE_COLLISION_COMPONENT_H__ #define __GE_COLLISION_COMPONENT_H__ #include typedef unsigned char ge_layers_t; typedef enum { GE_COLLISION_COMP_TYPE_NONE, GE_COLLISION_COMP_TYPE_BOX, GE_COLLISION_COMP_TYPE_TILEMAP, } ge_collision_type_t; typedef struct ge_collision_box { ge_vector2i_t relative_pos; ge_vector2i_t size; } ge_collision_box_t; typedef struct ge_collision_tilemap { ge_vector2i_t map_size; ge_unit_t tile_size; ge_layers_t* layers; } ge_collision_tilemap_t; typedef struct ge_collision_component { ge_collision_type_t type; ge_layers_t layers; ge_layers_t mask; struct { ge_collision_box_t box; ge_collision_tilemap_t tilemap; } collider; } ge_collision_component_t; #endif /* __GE_COLLISION_COMPONENT_H__ */