X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=steam.h;h=4f98dd9334be4f6a97fceafa76c21f05c6b5215f;hb=f3a2490079baf440238b78e54f4476649eddbda2;hp=47de1089a42aad244497970394fe9be1c7a3478f;hpb=d8fc0acce1b39466038284aa6f1941ebe98c8348;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/steam.h b/steam.h index 47de108..4f98dd9 100644 --- a/steam.h +++ b/steam.h @@ -6,6 +6,7 @@ #ifndef STEAM_H #define STEAM_H +#define VG_GAME #include "vg/vg_steam.h" #include "vg/vg_steam_utils.h" #include "vg/vg_steam_networking.h" @@ -179,6 +180,65 @@ VG_STATIC void steam_on_recieve_current_stats( CallbackMsg_t *msg ) 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; @@ -261,6 +321,9 @@ VG_STATIC void steam_update(void) { steamworks_event_loop( hSteamClientPipe ); + /* TODO + * We can probably request this from SDL too + */ if( steam_hInput ) { SteamAPI_ISteamInput_RunFrame( steam_hInput, 0 ); @@ -268,7 +331,7 @@ VG_STATIC void steam_update(void) InputHandle_t joy0 = SteamAPI_ISteamInput_GetControllerForGamepadIndex( steam_hInput, 0 ); - vg.gamepad_use_trackpad_look = 0; + vg_input.controller_should_use_trackpad_look = 0; if( joy0 != 0 ) { ESteamInputType type = SteamAPI_ISteamInput_GetInputTypeForHandle( @@ -276,7 +339,7 @@ VG_STATIC void steam_update(void) if( type == k_ESteamInputType_SteamController ) { - vg.gamepad_use_trackpad_look = 1; + vg_input.controller_should_use_trackpad_look = 1; menu_display_controller = k_menu_controller_type_steam; } else if( type == k_ESteamInputType_SteamDeckController ) @@ -306,7 +369,7 @@ VG_STATIC void steam_update(void) } } -VG_STATIC void steam_end(void *nothing) +VG_STATIC void steam_end(void) { if( steam_ready ) {