X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=steam.h;h=dadcd90309e6ace26db0dc668d5f7c9b29fda0a1;hb=76315944e5a98838163e0aba8601ed3522f0724d;hp=730784ea1cef0feed774b05d39c054c22df116b6;hpb=22f62f001f21d1b91fefd9fc495c122d9ddf205a;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/steam.h b/steam.h index 730784e..dadcd90 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 ) { @@ -48,9 +48,10 @@ static HSteamPipe hSteamClientPipe; static const char *steam_achievement_names[] = { - "ALBERT", "MARC", + "ALBERT", "MARC", "JANET", "BERNADETTA", "ROUTE_MPY", "ROUTE_MPG", "ROUTE_MPB", "ROUTE_MPR", - "ROUTE_TO", "ROUTE_TC" + "ROUTE_TO", "ROUTE_TC", "CITY_COMPLETE", "MTZERO_SILVER", "MTZERO_GOLD", + "80FT" }; static void steam_store_achievements(void) @@ -60,11 +61,22 @@ 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 ){ + if( skaterift.demo_mode ) + return; + + /* 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 +167,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 +202,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 +240,7 @@ static void str_utf8_collapse( const char *str, char *buf, u32 length ) } buf[j] = 0x00; + return j; } static int steam_init(void){