diff --git a/include/tangerine.h b/include/tangerine.h index 7eca3b4..b7e8bc3 100644 --- a/include/tangerine.h +++ b/include/tangerine.h @@ -231,6 +231,8 @@ RenderGroup* getRenderGroupByName(RenderState* rs, const char* name); Entity* getFreeEntity(RenderGroup* rg); +Entity* getEntityByNmae(RenderGroup* rg, const char* name); + // NOTE: callback function signature to use with renDoRenderLoop() typedef void (*frame_callback_fn) (RenderState*); diff --git a/src/tangerine.cpp b/src/tangerine.cpp index 981d320..75890f8 100644 --- a/src/tangerine.cpp +++ b/src/tangerine.cpp @@ -153,6 +153,24 @@ getFreeEntity(RenderGroup* rg) return nullptr; } +Entity* +getEntityByNmae(RenderGroup* rg, const char* name) +{ + Entity* e_out = nullptr; + + for (u32 i = 0; i < rg->num_entities; i++) { + Entity* e = &rg->entities[i]; + + if (utilCStrMatch(name, e->name)) + e_out = e; + } + + if (e_out == nullptr) + LOGF(Error, "Entity with name, \"%s\", not found\n", name); + + return e_out; +} + void doRenderLoop(RenderState* rs, u32 framerate,