2 * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved
8 #define VG_TIMESTEP_FIXED (1.0/60.0)
11 //#define VG_STATIC static
13 #define VG_FRAMEBUFFER_RESIZE 1
15 #include "submodules/anyascii/impl/c/anyascii.c"
17 #define RESET_MAX_TIME 45.0
18 VG_STATIC v3f TEMP_BOARD_0
, TEMP_BOARD_1
;
20 enum menu_controller_type
22 k_menu_controller_type_keyboard
,
23 k_menu_controller_type_xbox
,
24 k_menu_controller_type_playstation
,
25 k_menu_controller_type_steam
,
26 k_menu_controller_type_steam_deck
29 VG_STATIC
enum menu_controller_type menu_display_controller
;
31 typedef struct ray_hit ray_hit
;
39 VG_STATIC
int network_scores_updated
= 0;
41 VG_STATIC u32
utf8_byte0_byte_count( u8 char0
)
43 for( u32 k
=2; k
<4; k
++ )
45 if( !(char0
& (0x80 >> k
)) )
52 VG_STATIC
void str_utf8_collapse( const char *str
, char *buf
, u32 length
)
55 u32 utf32_code
= 0x00000000;
56 u32 i
=0, j
=0, utf32_byte_ct
=0;
68 utf32_code
|= (ustr
[i
] & 0x3F) << (utf32_byte_ct
*6);
73 size_t chars
= anyascii( utf32_code
, &match
);
75 for( u32 k
=0; k
<VG_MIN(chars
, length
-1-j
); k
++ )
77 buf
[ j
++ ] = (u8
)match
[k
];
83 utf32_byte_ct
= utf8_byte0_byte_count( ustr
[i
] )-1;
84 utf32_code
= ustr
[i
] & (0x3F >> utf32_byte_ct
);
85 utf32_code
<<= utf32_byte_ct
*6;
101 k_runspeed
= 20.0f
, /* depr */
102 k_board_allowance
= 0.04f
,
103 k_friction_lat
= 12.0f
,
104 k_friction_resistance
= 0.01f
,
105 k_max_push_speed
= 16.0f
,
106 k_push_accel
= 10.0f
,
107 k_push_cycle_rate
= 8.0f
,
108 k_steer_ground
= 2.5f
,
110 k_steer_air_lerp
= 0.3f
,
113 k_escape_velocity
= 1.0f
,
114 k_walk_downforce
= 8.0f
,
115 k_jump_charge_speed
= (1.0f
/1.0f
),
117 k_pitch_limit
= 1.5f
,
120 k_spin_boost
= 4.20f
,
124 k_cog_mass_ratio
= 0.9f
,
126 k_mmthrow_scale
= 6.0f
,
127 k_mmcollect_lat
= 2.0f
,
128 k_mmcollect_vert
= 0.0f
,
130 k_spring_angular
= 1.0f
,
132 k_spring_force
= 300.0f
,
133 k_spring_dampener
= 5.0f
,
135 k_grind_spring
= 50.0f
,
136 k_grind_aligment
= 10.0f
,
137 k_grind_dampener
= 5.0f
,
139 k_board_spring
= 100.0f
,
140 k_board_dampener
= 40.0f
,
141 k_manul_spring
= 200.0f
,
142 k_manul_dampener
= 30.0f
,
143 k_board_interia
= 8.0f
,
145 k_grind_decayxy
= 30.0f
,
146 k_grind_axel_min_vel
= 3.0f
,
147 k_grind_axel_max_angle
= 0.95f
, /* cosine(|a|) */
148 k_grind_axel_max_vangle
= 0.4f
,
149 k_grind_max_friction
= 3.0f
,
150 k_grind_max_edge_angle
= 0.97f
,
152 k_board_length
= 0.45f
,
153 k_board_width
= 0.13f
,
154 k_board_end_radius
= 0.1f
,
155 k_board_radius
= 0.14f
; /* 0.07 */
161 k_walk_accel
= 10.0f
,
162 k_walk_air_accel
= 7.0f
,
163 k_walk_friction
= 10.0f
,
164 k_walk_step_height
= 0.2f
;
168 k_cam_spring
= 20.0f
,
171 VG_STATIC
float k_ragdoll_floatyiness
= 20.0f
,
172 k_ragdoll_floatydrag
= 1.0f
,
173 k_ragdoll_limit_scale
= 1.0f
;
175 VG_STATIC
int k_ragdoll_div
= 1,
177 k_ragdoll_debug_collider
= 1,
178 k_ragdoll_debug_constraints
= 0;
181 VG_STATIC
int freecam
= 0;
182 VG_STATIC
int walk_grid_iterations
= 1;
183 VG_STATIC
float fc_speed
= 10.0f
;
184 VG_STATIC
int cl_thirdperson
= 0;
186 VG_STATIC
void common_var_temp(void)
188 VG_VAR_F32( k_cam_punch
);
189 VG_VAR_F32( k_cam_damp
);
190 VG_VAR_F32( k_cam_spring
);
192 VG_VAR_F32( k_grind_dampener
);
193 VG_VAR_F32( k_grind_spring
);
194 VG_VAR_F32( k_grind_aligment
);
195 VG_VAR_F32( k_board_spring
);
196 VG_VAR_F32( k_board_dampener
);
197 VG_VAR_F32( k_board_interia
);
198 VG_VAR_F32( k_grind_decayxy
);
199 VG_VAR_F32( k_grind_axel_min_vel
);
200 VG_VAR_F32( k_grind_axel_max_angle
);
201 VG_VAR_F32( k_grind_max_friction
);
203 VG_VAR_F32( k_walkspeed
);
204 VG_VAR_F32( k_stopspeed
);
205 VG_VAR_F32( k_airspeed
);
206 VG_VAR_F32( k_walk_friction
);
207 VG_VAR_F32( k_walk_air_accel
);
208 VG_VAR_F32( k_runspeed
);
209 VG_VAR_F32( k_walk_accel
);
211 VG_VAR_I32( freecam
);
212 VG_VAR_I32( cl_thirdperson
);
213 VG_VAR_F32_PERSISTENT( fc_speed
);
215 /* TODO: NOT PERSISTENT */
216 VG_VAR_F32( k_ragdoll_limit_scale
);
217 VG_VAR_I32( k_ragdoll_div
);
218 VG_VAR_I32( k_ragdoll_debug_collider
);
219 VG_VAR_I32( k_ragdoll_debug_constraints
);
221 VG_VAR_F32( k_friction_lat
);
223 VG_VAR_F32( k_cog_spring
);
224 VG_VAR_F32( k_cog_damp
);
226 VG_VAR_F32( k_cog_mass_ratio
);
227 VG_VAR_F32( k_escape_velocity
);
228 VG_VAR_F32( k_downforce
);
230 VG_VAR_F32( k_spring_force
);
231 VG_VAR_F32( k_spring_dampener
);
232 VG_VAR_F32( k_spring_angular
);
234 VG_VAR_F32( k_mmthrow_scale
);
235 VG_VAR_F32( k_mmcollect_lat
);
236 VG_VAR_F32( k_mmcollect_vert
);
237 VG_VAR_F32( k_mmdecay
);
240 #endif /* COMMON_H */