#include "ent_glider.h"
#include "ent_npc.h"
-typedef void (*fn_entity_call_handler)( world_instance *, ent_call *);
-
void entity_call( world_instance *world, ent_call *call )
{
- u32 type = mdl_entity_id_type( call->id );
+ u32 type = mdl_entity_id_type( call->id ),
+ index = mdl_entity_id_id( call->id );
fn_entity_call_handler table[] = {
[k_ent_volume] = ent_volume_call,
fn_entity_call_handler fn = table[ type ];
- if( !fn ){
- vg_error( "call to entity type: %u is undefined\n", type );
+ if( !fn )
+ {
+ vg_error( "Entity type %u does not have a call handler, "
+ "but was called anyway\n", type );
return;
}
- fn( world, call );
+ enum entity_call_result res = fn( world, call );
+
+ if( res == k_entity_call_result_unhandled )
+ {
+ vg_warn( "Call to entity %u#%u was unhandled.\n", type, index );
+ }
}
ent_marker *ent_find_marker( mdl_context *mdl, mdl_array_ptr *arr,