X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=steam.h;h=dcfc1c8bb970335eaad43809b92311a9c6e6e76e;hb=fbc68c65e01838feb77f47b30994b45fcc39ebaf;hp=730784ea1cef0feed774b05d39c054c22df116b6;hpb=22f62f001f21d1b91fefd9fc495c122d9ddf205a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/steam.h b/steam.h index 730784e..dcfc1c8 100644 --- a/steam.h +++ b/steam.h @@ -27,7 +27,7 @@ * nothing. */ -static char steam_username_at_startup[128]; +static char steam_username_at_startup[128] = "Unassigned"; static void recv_steam_warning( int severity, const char *msg ) { @@ -60,11 +60,19 @@ static void steam_store_achievements(void) } } -static void steam_set_achievement( const char *name ) -{ +static void update_ach_models(void); +static void steam_set_achievement( const char *name ){ + /* hack lol */ + if( !strcmp(name,"MARC") ) skaterift.achievements |= 0x1; + if( !strcmp(name,"ALBERT") ) skaterift.achievements |= 0x2; + if( !strcmp(name,"JANET") ) skaterift.achievements |= 0x4; + if( !strcmp(name,"BERNADETTA") ) skaterift.achievements |= 0x8; + update_ach_models(); + if( steam_ready && steam_stats_ready ){ if( SteamAPI_ISteamUserStats_SetAchievement( hSteamUserStats, name ) ){ vg_success( "Achievement set! '%s'\n", name ); + } else{ vg_warn( "Failed to set achievement: %s\n", name ); @@ -155,6 +163,25 @@ static void steam_on_recieve_current_stats( CallbackMsg_t *msg ) vg_info( "Recieved stats for: %lu (user: %lu)\n", rec->m_nGameID, rec->m_steamIDUser ); steam_stats_ready = 1; + + steamapi_bool set = 0; + if( SteamAPI_ISteamUserStats_GetAchievement( + hSteamUserStats, "MARC", &set ) ){ + if( set ) skaterift.achievements |= 0x1; + } + if( SteamAPI_ISteamUserStats_GetAchievement( + hSteamUserStats, "ALBERT", &set ) ){ + if( set ) skaterift.achievements |= 0x2; + } + if( SteamAPI_ISteamUserStats_GetAchievement( + hSteamUserStats, "JANET", &set ) ){ + if( set ) skaterift.achievements |= 0x4; + } + if( SteamAPI_ISteamUserStats_GetAchievement( + hSteamUserStats, "BERNADETTA", &set ) ){ + if( set ) skaterift.achievements |= 0x8; + } + update_ach_models(); } else{ vg_error( "Error recieveing stats for user (%u)\n", rec->m_eResult ); @@ -171,13 +198,12 @@ static u32 utf8_byte0_byte_count( u8 char0 ) return 0; } -static void str_utf8_collapse( const char *str, char *buf, u32 length ) -{ +static u32 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;){ + for(;j < length-1;){ if( ustr[i] == 0x00 ) break; @@ -210,6 +236,7 @@ static void str_utf8_collapse( const char *str, char *buf, u32 length ) } buf[j] = 0x00; + return j; } static int steam_init(void){