projects
/
carveJwlIkooP6JGAAIwe30JlM.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
(50c0271)
[carveJwlIkooP6JGAAIwe30JlM.git]
/
world_entity.c
diff --git
a/world_entity.c
b/world_entity.c
index 88e0e7e1a240815bc38bde6606efa077f919d09d..13c89a025da827f4382dddd0830040f8074d083e 100644
(file)
--- a/
world_entity.c
+++ b/
world_entity.c
@@
-347,16
+347,20
@@
void world_default_spawn_pos( world_instance *world, v3f pos )
}
}
}
}
-
void
ent_volume_call( world_instance *world, ent_call *call )
+
entity_call_result
ent_volume_call( world_instance *world, ent_call *call )
{
u32 index = mdl_entity_id_id( call->id );
ent_volume *volume = mdl_arritm( &world->ent_volume, index );
{
u32 index = mdl_entity_id_id( call->id );
ent_volume *volume = mdl_arritm( &world->ent_volume, index );
- if( !volume->target ) return;
- if( call->function == k_ent_function_trigger ){
+ if( !volume->target )
+ return k_entity_call_result_OK;
+
+ if( call->function == k_ent_function_trigger )
+ {
call->id = volume->target;
call->id = volume->target;
- if( volume->flags & k_ent_volume_flag_particles ){
+ if( volume->flags & k_ent_volume_flag_particles )
+ {
float *co = alloca( sizeof(float)*3 );
co[0] = vg_randf64(&vg.rand)*2.0f-1.0f;
co[1] = vg_randf64(&vg.rand)*2.0f-1.0f;
float *co = alloca( sizeof(float)*3 );
co[0] = vg_randf64(&vg.rand)*2.0f-1.0f;
co[1] = vg_randf64(&vg.rand)*2.0f-1.0f;
@@
-367,29
+371,40
@@
void ent_volume_call( world_instance *world, ent_call *call )
call->data = co;
entity_call( world, call );
}
call->data = co;
entity_call( world, call );
}
- else{
+ else
+ {
call->function = volume->trigger.event;
entity_call( world, call );
}
call->function = volume->trigger.event;
entity_call( world, call );
}
+
+ return k_entity_call_result_OK;
}
}
- else if( call->function == k_ent_function_trigger_leave ){
+ else if( call->function == k_ent_function_trigger_leave )
+ {
call->id = volume->target;
call->id = volume->target;
- if( volume->flags & k_ent_volume_flag_particles ){
+ if( volume->flags & k_ent_volume_flag_particles )
+ {
vg_warn( "Invalid condition; calling leave on particle volume.\n" );
}
vg_warn( "Invalid condition; calling leave on particle volume.\n" );
}
- else{
+ else
+ {
call->function = volume->trigger.event_leave;
entity_call( world, call );
}
call->function = volume->trigger.event_leave;
entity_call( world, call );
}
+
+ return k_entity_call_result_OK;
}
}
+
+ return k_entity_call_result_unhandled;
}
}
-
void
ent_audio_call( world_instance *world, ent_call *call )
+
entity_call_result
ent_audio_call( world_instance *world, ent_call *call )
{
{
- if( world->status == k_world_status_unloading ){
+ if( world->status == k_world_status_unloading )
+ {
vg_warn( "cannot modify audio while unloading world\n" );
vg_warn( "cannot modify audio while unloading world\n" );
- return;
+ return
k_entity_call_result_invalid
;
}
u8 world_id = (world - world_static.instances) + 1;
}
u8 world_id = (world - world_static.instances) + 1;
@@
-398,14
+413,16
@@
void ent_audio_call( world_instance *world, ent_call *call )
v3f sound_co;
v3f sound_co;
- if( call->function == k_ent_function_particle_spawn ){
+ if( call->function == k_ent_function_particle_spawn )
+ {
v3_copy( call->data, sound_co );
}
v3_copy( call->data, sound_co );
}
- else if( call->function == k_ent_function_trigger ){
+ else if( call->function == k_ent_function_trigger )
+ {
v3_copy( audio->transform.co, sound_co );
}
else
v3_copy( audio->transform.co, sound_co );
}
else
- return;
+ return
k_entity_call_result_unhandled
;
float chance = vg_randf64(&vg.rand)*100.0f,
bar = 0.0f;
float chance = vg_randf64(&vg.rand)*100.0f,
bar = 0.0f;
@@
-458,7
+475,7
@@
void ent_audio_call( world_instance *world, ent_call *call )
if( existing ){
if( existing->source == &clip->_.clip ){
audio_unlock();
if( existing ){
if( existing->source == &clip->_.clip ){
audio_unlock();
- return;
+ return
k_entity_call_result_OK
;
}
existing->group = 0;
}
existing->group = 0;
@@
-479,20
+496,24
@@
void ent_audio_call( world_instance *world, ent_call *call )
}
audio_unlock();
}
audio_unlock();
- return;
+ return
k_entity_call_result_OK
;
}
}
}
}
+ return k_entity_call_result_OK;
}
}
-
void
ent_ccmd_call( world_instance *world, ent_call *call )
+
entity_call_result
ent_ccmd_call( world_instance *world, ent_call *call )
{
{
- if( call->function == k_ent_function_trigger ){
+ if( call->function == k_ent_function_trigger )
+ {
u32 index = mdl_entity_id_id( call->id );
ent_ccmd *ccmd = mdl_arritm( &world->ent_ccmd, index );
u32 index = mdl_entity_id_id( call->id );
ent_ccmd *ccmd = mdl_arritm( &world->ent_ccmd, index );
- vg_execute_console_input( mdl_pstr(&world->meta, ccmd->pstr_command),
-
0 )
;
+ vg_execute_console_input( mdl_pstr(&world->meta, ccmd->pstr_command),
0 );
+
return k_entity_call_result_OK
;
}
}
+ else
+ return k_entity_call_result_unhandled;
}
/*
}
/*