small fumos
authorhgn <hgodden00@gmail.com>
Tue, 17 Jun 2025 01:22:05 +0000 (02:22 +0100)
committerhgn <hgodden00@gmail.com>
Tue, 17 Jun 2025 01:22:05 +0000 (02:22 +0100)
content_skaterift/playermodels/sr2t/ch_sr2t.mdl
src/ent_skateshop.c
src/player_remote.c
src/save.c
src/skaterift.c
src/world_volumes.c

index d6a248efe2b861797c58f52a3344e769c2027935..399381aec113b23e8592454ef4ee9da103594460 100644 (file)
Binary files a/content_skaterift/playermodels/sr2t/ch_sr2t.mdl and b/content_skaterift/playermodels/sr2t/ch_sr2t.mdl differ
index a1054dac56e17f51332768b175c031d49ee672d4..4ec21e82240cc6f1bd81409bbd8ad73134ebc577 100644 (file)
@@ -529,13 +529,16 @@ entity_event_result ent_skateshop_event( ent_event *event )
 
          if( shop->type == k_skateshop_type_charshop )
          {
-            struct addon_cache *cache = &_addon.cache[ k_addon_type_player ];
-            addon_cache_entry *cache_entry = vg_pool_item( &cache->pool, localplayer.playermodel.cache_slot );
-            u32 index;
-            if( _addon_get_filtered_index( k_addon_type_player, cache_entry->addon_id, 0, ADDON_REG_HIDDEN, &index ) )
+            u32 index = 0;
+
+            if( localplayer.playermodel.cache_slot )
             {
+               struct addon_cache *cache = &_addon.cache[ k_addon_type_player ];
+               addon_cache_entry *cache_entry = vg_pool_item( &cache->pool, localplayer.playermodel.cache_slot );
+               if( _addon_get_filtered_index( k_addon_type_player, cache_entry->addon_id, 0, ADDON_REG_HIDDEN, &index ) )
+               {
+               }
             }
-            else index = 0;
             _skateshop.selected_player_index = index;
          }
          else
@@ -574,7 +577,7 @@ void charshop_gui( ui_context *ctx )
    }
    else
       if( mv || mh )
-         menu.repeater += R==0? 0.2f: 0.1f;
+         menu.repeater += R==0? 0.2f: 0.17f;
 
    ui_rect panel = { 8, 8, 350, vg.window_y };
    ui_fill( ctx, panel, ui_opacity( GUI_COL_DARK, 0.35f ) );
index 7de565d51c9e9d52b863cafacf8837583493c105..1cece1477228e701f317aa284902fd6cd3a63636 100644 (file)
@@ -32,7 +32,10 @@ static void player_remote_clear( u32 player_index )
    {
       if( player_index == netplayers.spectate_index )
       {
-         skaterift.activity = k_skaterift_default;
+         menu_close(); /* sets state to default */
+         menu_open( k_menu_page_quick );
+         gui_helper_reset( k_gui_helper_mode_clear );
+         localplayer.immobile = 0;
       }
    }
 }
index 005c25f483a80e3e00c295ce34a008add8bd0653..8a8cfe5bcb86fc97d671ad14325424fa4a0866fa 100644 (file)
@@ -176,9 +176,12 @@ static void equip_async( vg_async_task *task )
    playermodel_use_cpart( &localplayer.playermodel, info->player_cpart );
 
    /* kinda jank.. */
-   struct addon_cache *cache = &_addon.cache[ k_addon_type_player ];
-   addon_cache_entry *cache_entry = vg_pool_item( &cache->pool, localplayer.playermodel.cache_slot );
-   memcpy( cache_entry->local_cpart, info->player_cpart, ADDON_CPART_MAX );
+   if( info->player_id )
+   {
+      struct addon_cache *cache = &_addon.cache[ k_addon_type_player ];
+      addon_cache_entry *cache_entry = vg_pool_item( &cache->pool, localplayer.playermodel.cache_slot );
+      memcpy( cache_entry->local_cpart, info->player_cpart, ADDON_CPART_MAX );
+   }
 }
    
 void skaterift_load_mainsave(void)
index 9e9fe123c221c712621757bca5f4fff72e137e47..4ac7b013c49c10b8eb8b2a6fe5269c76e38a3aba 100644 (file)
@@ -253,7 +253,7 @@ void vg_pre_update(void)
          vg_audio_lock();
          vg_audio_oneshot( &audio_ui[3], 1.0f, 0.0f, 0, 0 );
          vg_audio_unlock();
-         menu_close();
+         menu_close(); /* sets tate to default*/
          menu_open( k_menu_page_quick );
          gui_helper_reset( k_gui_helper_mode_clear );
          localplayer.immobile = 0;
index 8fe7ed22fd6f64d31f2d2a22ab8b807d826abf05..1c825293abdda1b2462c589e2dc2223f94e3b9c9 100644 (file)
@@ -162,7 +162,8 @@ next_volume:;
             gui_helper_reset( k_gui_helper_mode_clear );
          }
       }
-      else if( button_down( k_srbind_maccept ) && (_cutscene.state == k_cutscene_state_none) )
+      else if( button_down( k_srbind_maccept ) && (_cutscene.state == k_cutscene_state_none) 
+               && !(skaterift.activity & (k_skaterift_menu|k_skaterift_spectate|k_skaterift_replay)) )
       {
          srinput.state = k_input_state_resume;
          if( !(volume->flags & k_ent_volume_flag_repeatable) )