fixed bug invalid memory write
authorhgn <hgodden00@gmail.com>
Wed, 22 Nov 2023 13:05:28 +0000 (13:05 +0000)
committerhgn <hgodden00@gmail.com>
Wed, 22 Nov 2023 13:05:28 +0000 (13:05 +0000)
maps_src/dev_hub/main.mdl
menu.h
player.c

index e53ae013d3289987f43f29eeb60a4b8456dea482..4eecbcaa1d11de15079809d61c09500b07af41fd 100644 (file)
Binary files a/maps_src/dev_hub/main.mdl and b/maps_src/dev_hub/main.mdl differ
diff --git a/menu.h b/menu.h
index c9865732b6912e4a54a98106ba49ebfc59be294f..aa8e609b31c0cfbf119f4d5d6a3bfb3bef24223a 100644 (file)
--- a/menu.h
+++ b/menu.h
@@ -252,9 +252,11 @@ static void menu_trigger_item( ent_menuitem *item ){
          respawn_begin_chooser();
       }
       else if( MDL_CONST_PSTREQ( &menu.model, q, "hub" ) ){
-         srinput.state = k_input_state_resume;
-         menu_close();
-         ent_miniworld_goback();
+         if( world_static.active_instance == k_world_purpose_client ){
+            srinput.state = k_input_state_resume;
+            menu_close();
+            ent_miniworld_goback();
+         }
       }
       else if( MDL_CONST_PSTREQ( &menu.model, q, "credits" ) ){
          menu.credits_open = 1;
index 3ba64eb0f38881808be33c5c0311665423bce99d..bf1a5801da4415454e141c7d542326fd2414720e 100644 (file)
--- a/player.c
+++ b/player.c
@@ -128,7 +128,6 @@ static void player__pass_gate( u32 id ){
    world_routes_fracture( world, gate, localplayer.rb.co, localplayer.rb.v );
 
    localplayer.gate_waiting = gate;
-   world_routes_activate_entry_gate( world_current_instance(), gate );
 
    struct player_cam_controller *cc = &localplayer.cam_control;
    m4x3_mulv( gate->transport, cc->tpv_lpf, cc->tpv_lpf );
@@ -148,6 +147,8 @@ static void player__pass_gate( u32 id ){
       world_static.active_instance = gate->target;
       player__clean_refs();
    }
+   else 
+      world_routes_activate_entry_gate( world, gate );
    
    v3f v0;
    v3_angles_vector( localplayer.angles, v0 );