diff options
Diffstat (limited to 'include/rodeo/collision_t.h')
| -rw-r--r-- | include/rodeo/collision_t.h | 57 |
1 files changed, 42 insertions, 15 deletions
diff --git a/include/rodeo/collision_t.h b/include/rodeo/collision_t.h index 21ffbf4..a3e2306 100644 --- a/include/rodeo/collision_t.h +++ b/include/rodeo/collision_t.h @@ -8,35 +8,62 @@ #include <stdint.h> #include <stdbool.h> -struct cvec_collision_2d_world_item; +typedef struct rodeo_collision_2d_item rodeo_collision_2d_item_t; +typedef struct rodeo_collision_2d_collection_data rodeo_collision_2d_collection_data_t; +typedef struct rodeo_collision_2d_item_data rodeo_collision_2d_item_data_t; + +typedef +struct +rodeo_collision_2d_collection +{ + rodeo_collision_2d_collection_data_t *data; +} +rodeo_collision_2d_collection_t; typedef struct { - uint32_t id; - struct cvec_collision_2d_world_item *world; -} world_id; + //uint32_t id; + rodeo_collision_2d_collection_t collection; + rodeo_collision_2d_item_data_t **self_handle; // needs to be updated automatically whenever it moves in the struct +} +rodeo_collision_2d_item_id_t; -typedef struct +rodeo_collision_2d_item_data { - world_id id; + rodeo_collision_2d_item_id_t id; rodeo_rectangle_t rect; float dx; float dy; -} -rodeo_collision_2d_world_item_t; +}; +struct +rodeo_collision_2d_item +{ + rodeo_collision_2d_item_data_t **data_handle; +}; -int rodeo_collision_2d_item_cmp( - const rodeo_collision_2d_world_item_t* a, - const rodeo_collision_2d_world_item_t* b +int32_t irodeo_collision_2d_item_data_cmp( + const rodeo_collision_2d_item_data_t *a, + const rodeo_collision_2d_item_data_t *b ); -#define i_val rodeo_collision_2d_world_item_t -#define i_cmp rodeo_collision_2d_item_cmp -#define i_type cvec_collision_2d_world_item +#define i_val rodeo_collision_2d_item_data_t +#define i_cmp irodeo_collision_2d_item_data_cmp +#define i_type cvec_collision_2d_item_data #include "stc/cvec.h" +struct +rodeo_collision_2d_collection_data +{ + cvec_collision_2d_item_data collection; +}; + +//typedef cvec_collision_2d_item rodeo_collision_2d_collection_t; -typedef cvec_collision_2d_world_item rodeo_collision_2d_world_t; +typedef +void (*rodeo_collision_2d_resolver_f)( + rodeo_collision_2d_item_data_t *a, + rodeo_collision_2d_item_data_t *b +); |
