2 * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
8 #define VG_TIMESTEP_FIXED (1.0/60.0)
10 #define VG_FRAMEBUFFER_RESIZE 1
12 #include "anyascii/anyascii.h"
14 #define RESET_MAX_TIME 45.0
16 enum menu_controller_type
18 k_menu_controller_type_keyboard
,
19 k_menu_controller_type_xbox
,
20 k_menu_controller_type_playstation
,
21 k_menu_controller_type_steam
,
22 k_menu_controller_type_steam_deck
25 VG_STATIC
enum menu_controller_type menu_display_controller
;
26 VG_STATIC
float g_fov_option
= 0.86f
;
28 typedef struct ray_hit ray_hit
;
36 VG_STATIC
int network_scores_updated
= 0;
38 VG_STATIC u32
utf8_byte0_byte_count( u8 char0
)
40 for( u32 k
=2; k
<4; k
++ )
42 if( !(char0
& (0x80 >> k
)) )
49 VG_STATIC
void str_utf8_collapse( const char *str
, char *buf
, u32 length
)
52 u32 utf32_code
= 0x00000000;
53 u32 i
=0, j
=0, utf32_byte_ct
=0;
65 utf32_code
|= (ustr
[i
] & 0x3F) << (utf32_byte_ct
*6);
70 size_t chars
= anyascii( utf32_code
, &match
);
72 for( u32 k
=0; k
<VG_MIN(chars
, length
-1-j
); k
++ )
74 buf
[ j
++ ] = (u8
)match
[k
];
80 utf32_byte_ct
= utf8_byte0_byte_count( ustr
[i
] )-1;
81 utf32_code
= ustr
[i
] & (0x3F >> utf32_byte_ct
);
82 utf32_code
<<= utf32_byte_ct
*6;