-#ifndef ENT_CHALLENGE_C
-#define ENT_CHALLENGE_C
-
+#include "vg/vg_engine.h"
#include "entity.h"
#include "input.h"
#include "gui.h"
#include "audio.h"
-static void ent_challenge_call( world_instance *world, ent_call *call ){
+void ent_challenge_call( world_instance *world, ent_call *call )
+{
u32 index = mdl_entity_id_id( call->id );
ent_challenge *challenge = mdl_arritm( &world->ent_challenge, index );
if( (localplayer.subsystem == k_player_subsystem_walk) &&
(world_static.challenge_target == NULL) ){
world_static.challenge_target = NULL;
- world_entity_focus( call->id );
+ world_entity_set_focus( call->id );
+ world_entity_focus_modal();
gui_helper_clear();
vg_str text;
}
}
-static void ent_challenge_preupdate( ent_challenge *challenge, int active ){
+void ent_challenge_preupdate( ent_challenge *challenge, int active )
+{
world_instance *world = world_current_instance();
/* maximum distance from active challenge */
if( min_dist2 > max_dist*max_dist ){
world_static.challenge_target = NULL;
world_static.challenge_timer = 0.0f;
- world_static.focused_entity = 0;
+ world_entity_clear_focus();
audio_lock();
audio_oneshot_3d( &audio_challenge[6], localplayer.rb.co,
30.0f, 1.0f );
world_static.challenge_target = mdl_arritm( &world->ent_objective,
index );
world_static.challenge_timer = 0.0f;
- world_entity_unfocus();
+ world_entity_exit_modal();
gui_helper_clear();
u32 next = challenge->first;
}
}
- if( button_down( k_srbind_mback ) ){
+ if( button_down( k_srbind_mback ) )
+ {
world_static.challenge_target = NULL;
- world_entity_unfocus();
+ world_entity_exit_modal();
+ world_entity_clear_focus();
gui_helper_clear();
audio_lock();
audio_oneshot( &audio_challenge[4], 1.0f, 0.0f );
static void ent_challenge_render( ent_challenge *challenge ){
}
-
-#endif /* ENT_CHALLENGE_C */