diff options
| author | arngo <[email protected]> | 2023-05-26 12:07:51 -0400 |
|---|---|---|
| committer | arngo <[email protected]> | 2023-05-26 12:07:51 -0400 |
| commit | 1505735adadcdadb0966f9ec1ba8aafc46602e47 (patch) | |
| tree | b3b10f3aef85f321f958b22bebc96ceff98cc833 /src/collision | |
| parent | ccadd3c51a7040532fe26cf185140b05a2bdcbe4 (diff) | |
| download | RodeoKit-1505735adadcdadb0966f9ec1ba8aafc46602e47.tar.gz RodeoKit-1505735adadcdadb0966f9ec1ba8aafc46602e47.zip | |
make id a struct with numberical id and world ptrcollision
Diffstat (limited to 'src/collision')
| -rw-r--r-- | src/collision/rodeo_collision.c | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/src/collision/rodeo_collision.c b/src/collision/rodeo_collision.c index 8119fb9..e4791bf 100644 --- a/src/collision/rodeo_collision.c +++ b/src/collision/rodeo_collision.c @@ -34,7 +34,8 @@ rodeo_collision_2d_world_item_create( ) { static uint32_t next_id = 0; - item_params.id = next_id++; + item_params.id.id = next_id++; + item_params.id.world = world; cvec_collision_2d_world_item_value* new_item = cvec_collision_2d_world_item_push(world, item_params); return new_item; @@ -42,24 +43,32 @@ rodeo_collision_2d_world_item_create( void rodeo_collision_2d_world_item_destroy( - rodeo_collision_2d_world_t *world, cvec_collision_2d_world_item_value* cvec_value ) { - cvec_collision_2d_world_item_value temp = *cvec_collision_2d_world_item_back(world); - *cvec_collision_2d_world_item_back(world) = *cvec_value; + + cvec_collision_2d_world_item_value temp = *cvec_collision_2d_world_item_back(cvec_value->id.world); + *cvec_collision_2d_world_item_back(cvec_value->id.world) = *cvec_value; *cvec_value = temp; - cvec_collision_2d_world_item_pop(world); + cvec_collision_2d_world_item_pop(cvec_value->id.world); +} + +void +rodeo_collision_2d_world_item_destroy_by_id( + world_id id +) +{ + rodeo_collision_2d_world_item_t* item = rodeo_collision_2d_world_item_get_by_id(id); + rodeo_collision_2d_world_item_destroy(item); } rodeo_collision_2d_world_item_t* rodeo_collision_2d_world_item_get_by_id( - rodeo_collision_2d_world_t *world, - uint32_t id + world_id id ) { - c_foreach(i, cvec_collision_2d_world_item, *world) { - if (i.ref->id == id) { + c_foreach(i, cvec_collision_2d_world_item, *id.world) { + if (i.ref->id.id == id.id) { return i.ref; } } @@ -109,9 +118,9 @@ int rodeo_collision_2d_item_cmp( const rodeo_collision_2d_world_item_t* b ) { - if (a->id == b->id) { + if (a->id.id == b->id.id) { return 0; } else { - return a->id > b->id ? 1 : -1; + return a->id.id > b->id.id ? 1 : -1; } } |
