npcs and tutorial stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / ent_route.c
index fa1d66900c452edbf58f5641cf8351f5d1a574c7..11b680d6f08a00cb6419754ad2998fe676200017 100644 (file)
@@ -1,17 +1,19 @@
-#ifndef ENT_ROUTE_C
-#define ENT_ROUTE_C
-
 #include "ent_route.h"
 #include "input.h"
 #include "gui.h"
 
-static void ent_route_call( world_instance *world, ent_call *call ){
+struct global_ent_route global_ent_route;
+
+void ent_route_call( world_instance *world, ent_call *call )
+{
    u32 index = mdl_entity_id_id( call->id );
    ent_route *route = mdl_arritm( &world->ent_route, index );
 
    if( call->function == 0 ){ /* view() */
-      if( localplayer.subsystem == k_player_subsystem_walk ){
-         world_entity_focus( call->id );
+      if( localplayer.subsystem == k_player_subsystem_walk )
+      {
+         world_entity_set_focus( call->id );
+         world_entity_focus_modal();
 
          gui_helper_clear();
          vg_str text;
@@ -36,7 +38,8 @@ static void ent_route_call( world_instance *world, ent_call *call ){
 }
 
 /* TODO: these should recieve the world instance */
-static void ent_route_preupdate( ent_route *route, int active ){
+void ent_route_preupdate( ent_route *route, int active )
+{
    if( !active ) return;
 
    world_instance *world = world_current_instance();
@@ -60,11 +63,11 @@ static void ent_route_preupdate( ent_route *route, int active ){
    global_ent_route.helper_alltime->greyed =!world_sfd.view_weekly;
    global_ent_route.helper_weekly->greyed =  world_sfd.view_weekly;
 
-   if( button_down( k_srbind_mback ) ){
-      world_entity_unfocus();
+   if( button_down( k_srbind_mback ) )
+   {
+      world_entity_exit_modal();
+      world_entity_clear_focus();
       gui_helper_clear();
       return;
    }
 }
-
-#endif /* ENT_ROUTE_C */