-#ifndef ENT_RELAY_C
-#define ENT_RELAY_C
+#include "ent_relay.h"
-#include "entity.h"
-
-static void ent_relay_call( world_instance *world, ent_call *call ){
+entity_call_result ent_relay_call( world_instance *world, ent_call *call )
+{
u32 index = mdl_entity_id_id( call->id );
ent_relay *relay = mdl_arritm( &world->ent_relay, index );
- if( call->function == 0 ){
- for( u32 i=0; i<vg_list_size(relay->targets); i++ ){
- if( relay->targets[i][0] ){
+ if( call->function == 0 )
+ {
+ for( u32 i=0; i<vg_list_size(relay->targets); i++ )
+ {
+ if( relay->targets[i][0] )
+ {
ent_call call;
call.data = NULL;
call.function = relay->targets[i][1];
entity_call( world, &call );
}
}
+ return k_entity_call_result_OK;
}
- else {
- vg_print_backtrace();
- vg_error( "Unhandled function id: %u\n", call->function );
- }
+ else
+ return k_entity_call_result_unhandled;
}
-
-#endif /* ENT_RELAY_C */