fov slider input maps menu stuff
[carveJwlIkooP6JGAAIwe30JlM.git] / steam.h
diff --git a/steam.h b/steam.h
index a417622c5a17e246a0fe4e456924dd38dbab448a..47de1089a42aad244497970394fe9be1c7a3478f 100644 (file)
--- a/steam.h
+++ b/steam.h
@@ -177,6 +177,8 @@ VG_STATIC void steam_on_recieve_current_stats( CallbackMsg_t *msg )
    }
 }
 
+VG_STATIC ISteamInput *steam_hInput;
+
 VG_STATIC int steam_init(void)
 {
    const char *username = NULL;
@@ -240,28 +242,9 @@ VG_STATIC int steam_init(void)
                .function = steam_set_achievemnt_test
        });
 
-   vg_info( "Checking controller type\n" );
-
-   ISteamInput *hInput = SteamAPI_SteamInput();
-   SteamAPI_ISteamInput_Init( hInput, 0 );
-   SteamAPI_ISteamInput_RunFrame( hInput, 0 );
-   InputHandle_t joy0 = SteamAPI_ISteamInput_GetControllerForGamepadIndex( 
-                           hInput, 0 );
-
-   if( joy0 != 0 )
-   {
-      ESteamInputType type = SteamAPI_ISteamInput_GetInputTypeForHandle(
-                           hInput, joy0 );
-
-      if( type == k_ESteamInputType_SteamController )
-         vg.gamepad_use_trackpad_look = 1;
-
-      vg_info( "Type: %d\n", type );
-   }
-   else
-   {
-      vg_warn( "none found\n" );
-   }
+   steam_hInput = SteamAPI_SteamInput();
+   SteamAPI_ISteamInput_Init( steam_hInput, 0 );
+   SteamAPI_ISteamInput_RunFrame( steam_hInput, 0 );
    
 #endif
 
@@ -275,7 +258,52 @@ VG_STATIC int steam_init(void)
 VG_STATIC void steam_update(void)
 {
    if( steam_ready )
+   {
       steamworks_event_loop( hSteamClientPipe );
+
+      if( steam_hInput )
+      {
+         SteamAPI_ISteamInput_RunFrame( steam_hInput, 0 );
+
+         InputHandle_t joy0 = SteamAPI_ISteamInput_GetControllerForGamepadIndex( 
+                                 steam_hInput, 0 );
+
+         vg.gamepad_use_trackpad_look = 0;
+         if( joy0 != 0 )
+         {
+            ESteamInputType type = SteamAPI_ISteamInput_GetInputTypeForHandle(
+                                 steam_hInput, joy0 );
+
+            if( type == k_ESteamInputType_SteamController )
+            {
+               vg.gamepad_use_trackpad_look = 1;
+               menu_display_controller = k_menu_controller_type_steam;
+            }
+            else if( type == k_ESteamInputType_SteamDeckController )
+            {
+               menu_display_controller = k_menu_controller_type_steam_deck;
+            }
+            else if( type == k_ESteamInputType_PS3Controller ||
+                     type == k_ESteamInputType_PS4Controller ||
+                     type == k_ESteamInputType_PS5Controller )
+            {
+               menu_display_controller = k_menu_controller_type_playstation;
+            }
+            else if( type == k_ESteamInputType_XBox360Controller ||
+                     type == k_ESteamInputType_XBoxOneController )
+            {
+               menu_display_controller = k_menu_controller_type_xbox;
+            }
+            else
+            {
+               /* currently unsupported controller */
+               menu_display_controller = k_menu_controller_type_xbox;
+            }
+         }
+         else
+            menu_display_controller = k_menu_controller_type_keyboard;
+      }
+   }
 }
 
 VG_STATIC void steam_end(void *nothing)