X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=steam.h;h=f6eadcd1ba81390c1c2aec756482b1f5440ce2f4;hb=01e2535f8daaab0e3d46dcc61a08a9268babd47c;hp=5d768b88c88ffd84b09581bd73b7026b4c6552b4;hpb=75703291fbf045008a3b1ebb20fc46a2617b6b3b;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/steam.h b/steam.h index 5d768b8..f6eadcd 100644 --- a/steam.h +++ b/steam.h @@ -54,46 +54,37 @@ VG_STATIC const char *steam_achievement_names[] = VG_STATIC void steam_store_achievements(void) { - if( steam_ready && steam_stats_ready ) - { + if( steam_ready && steam_stats_ready ){ SteamAPI_ISteamUserStats_StoreStats( hSteamUserStats ); } } VG_STATIC void steam_set_achievement( const char *name ) { - if( steam_ready && steam_stats_ready ) - { - if( SteamAPI_ISteamUserStats_SetAchievement( hSteamUserStats, name ) ) - { + if( steam_ready && steam_stats_ready ){ + if( SteamAPI_ISteamUserStats_SetAchievement( hSteamUserStats, name ) ){ vg_success( "Achievement set! '%s'\n", name ); } - else - { + else{ vg_warn( "Failed to set achievement: %s\n", name ); } } - else - { + else{ vg_warn( "Failed to set achievement (steam not ready): %s\n", name ); } } VG_STATIC void steam_clear_achievement( const char *name ) { - if( steam_ready && steam_stats_ready ) - { - if( SteamAPI_ISteamUserStats_ClearAchievement( hSteamUserStats, name ) ) - { + if( steam_ready && steam_stats_ready ){ + if( SteamAPI_ISteamUserStats_ClearAchievement( hSteamUserStats, name ) ){ vg_info( "Achievement cleared: '%s'\n", name ); } - else - { + else{ vg_warn( "Failed to clear achievement: %s\n", name ); } } - else - { + else{ vg_warn( "Failed to clear achievement (steam not ready): %s\n", name ); } } @@ -103,10 +94,8 @@ VG_STATIC int steam_list_achievements( int argc, char const *argv[] ) { vg_info( "Achievements: \n" ); - if( steam_ready && steam_stats_ready ) - { - for( int i=0; im_pubParam; - if( rec->m_eResult == k_EResultOK ) - { + if( rec->m_eResult == k_EResultOK ){ vg_info( "Recieved stats for: %lu (user: %lu)\n", rec->m_nGameID, rec->m_steamIDUser ); steam_stats_ready = 1; } - else - { + else{ vg_error( "Error recieveing stats for user (%u)\n", rec->m_eResult ); } } VG_STATIC ISteamInput *steam_hInput; +VG_STATIC u32 utf8_byte0_byte_count( u8 char0 ) +{ + for( u32 k=2; k<4; k++ ){ + if( !(char0 & (0x80 >> k)) ) + return k; + } + + return 0; +} + +VG_STATIC void str_utf8_collapse( const char *str, char *buf, u32 length ) +{ + u8 *ustr = (u8 *)str; + u32 utf32_code = 0x00000000; + u32 i=0, j=0, utf32_byte_ct=0; + + for(;i < length-1;){ + if( ustr[i] == 0x00 ) + break; + + if( ustr[i] & 0x80 ){ + if( utf32_byte_ct ){ + utf32_byte_ct --; + utf32_code |= (ustr[i] & 0x3F) << (utf32_byte_ct*6); + + if( !utf32_byte_ct ){ + const char *match; + size_t chars = anyascii( utf32_code, &match ); + + for( u32 k=0; k> utf32_byte_ct); + utf32_code <<= utf32_byte_ct*6; + } + } + else{ + utf32_byte_ct = 0x00; + buf[j ++] = str[i]; + } + + i++; + } + + buf[j] = 0x00; +} + VG_STATIC int steam_init(void) { const char *username = NULL; @@ -187,8 +220,7 @@ VG_STATIC int steam_init(void) #ifdef SR_NETWORKED vg_info( "Initializing steamworks\n" ); - if( !SteamAPI_Init() ) - { + if( !SteamAPI_Init() ){ printf("\n"); vg_error( "Steamworks failed to initialize\n" ); return 1; @@ -258,33 +290,28 @@ VG_STATIC int steam_init(void) VG_STATIC void steam_update(void) { - if( steam_ready ) - { + if( steam_ready ){ steamworks_event_loop( hSteamClientPipe ); /* TODO * We can probably request this from SDL too */ - if( steam_hInput ) - { + if( steam_hInput ){ SteamAPI_ISteamInput_RunFrame( steam_hInput, 0 ); InputHandle_t joy0 = SteamAPI_ISteamInput_GetControllerForGamepadIndex( steam_hInput, 0 ); vg_input.controller_should_use_trackpad_look = 0; - if( joy0 != 0 ) - { + if( joy0 != 0 ){ ESteamInputType type = SteamAPI_ISteamInput_GetInputTypeForHandle( steam_hInput, joy0 ); - if( type == k_ESteamInputType_SteamController ) - { + if( type == k_ESteamInputType_SteamController ){ vg_input.controller_should_use_trackpad_look = 1; menu_display_controller = k_menu_controller_type_steam; } - else if( type == k_ESteamInputType_SteamDeckController ) - { + else if( type == k_ESteamInputType_SteamDeckController ){ menu_display_controller = k_menu_controller_type_steam_deck; } else if( type == k_ESteamInputType_PS3Controller || @@ -298,8 +325,7 @@ VG_STATIC void steam_update(void) { menu_display_controller = k_menu_controller_type_xbox; } - else - { + else{ /* currently unsupported controller */ menu_display_controller = k_menu_controller_type_xbox; } @@ -312,8 +338,7 @@ VG_STATIC void steam_update(void) VG_STATIC void steam_end(void) { - if( steam_ready ) - { + if( steam_ready ){ vg_info( "Shutting down\n..." ); SteamAPI_Shutdown(); }