projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix water splash sound
[carveJwlIkooP6JGAAIwe30JlM.git]
/
entity.c
diff --git
a/entity.c
b/entity.c
index 557ba799a792d2e61e96f8fa3591b67ed72a4b78..ffb5deed5d9c0c9e905e1c39335b80c8173e04fe 100644
(file)
--- a/
entity.c
+++ b/
entity.c
@@
-11,12
+11,14
@@
#include "ent_region.h"
#include "ent_glider.h"
#include "ent_npc.h"
#include "ent_region.h"
#include "ent_glider.h"
#include "ent_npc.h"
+#include "world_water.h"
-typedef void (*fn_entity_call_handler)( world_instance *, ent_call *);
+#include <string.h>
void entity_call( world_instance *world, ent_call *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 table[] = {
[k_ent_volume] = ent_volume_call,
@@
-31,7
+33,8
@@
void entity_call( world_instance *world, ent_call *call )
[k_ent_miniworld] = ent_miniworld_call,
[k_ent_region] = ent_region_call,
[k_ent_glider] = ent_glider_call,
[k_ent_miniworld] = ent_miniworld_call,
[k_ent_region] = ent_region_call,
[k_ent_glider] = ent_glider_call,
- [k_ent_npc] = ent_npc_call
+ [k_ent_npc] = ent_npc_call,
+ [k_ent_water] = ent_water_call,
};
if( type >= vg_list_size(table) ){
};
if( type >= vg_list_size(table) ){
@@
-41,21
+44,30
@@
void entity_call( world_instance *world, ent_call *call )
fn_entity_call_handler fn = table[ type ];
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;
}
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,
const char *alias )
{
}
ent_marker *ent_find_marker( mdl_context *mdl, mdl_array_ptr *arr,
const char *alias )
{
- for( u32 i=0; i<mdl_arrcount(arr); i++ ){
+ for( u32 i=0; i<mdl_arrcount(arr); i++ )
+ {
ent_marker *marker = mdl_arritm( arr, i );
ent_marker *marker = mdl_arritm( arr, i );
- if( !strcmp( mdl_pstr( mdl, marker->pstr_alias ), alias ) ){
+ if( !strcmp( mdl_pstr( mdl, marker->pstr_alias ), alias ) )
+ {
return marker;
}
}
return marker;
}
}