X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=common.h;h=74200096cc329ec697a63285c845994397e378be;hb=791f807111a1f740f745c67db642aa7a8bee56e8;hp=0890ac4ef005d6ec3ccf6236fb0f117a80fc864f;hpb=bceb3a28f8127fa27a17f480bd21fa20a340e848;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/common.h b/common.h index 0890ac4..7420009 100644 --- a/common.h +++ b/common.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2021-2022 Mt.ZERO Software, Harry Godden - All Rights Reserved + * Copyright (C) 2021-2023 Mt.ZERO Software, Harry Godden - All Rights Reserved */ #ifndef COMMON_H @@ -7,11 +7,26 @@ #define VG_TIMESTEP_FIXED (1.0/60.0) #define VG_3D +#define VG_GAME +//#define VG_STATIC static +#define VG_STATIC #define VG_FRAMEBUFFER_RESIZE 1 #include "vg/vg.h" -#include "anyascii/anyascii.h" +#include "submodules/anyascii/impl/c/anyascii.c" #define RESET_MAX_TIME 45.0 +VG_STATIC v3f TEMP_BOARD_0, TEMP_BOARD_1; + +enum menu_controller_type +{ + k_menu_controller_type_keyboard, + k_menu_controller_type_xbox, + k_menu_controller_type_playstation, + k_menu_controller_type_steam, + k_menu_controller_type_steam_deck +}; + +VG_STATIC enum menu_controller_type menu_display_controller; typedef struct ray_hit ray_hit; struct ray_hit @@ -21,65 +36,144 @@ struct ray_hit v3f pos, normal; }; -static int network_scores_updated = 0; +VG_STATIC float + k_friction_lat = 12.0f, + k_friction_resistance = 0.01f, -static u32 utf8_byte0_byte_count( u8 char0 ) -{ - for( u32 k=2; k<4; k++ ) - { - if( !(char0 & (0x80 >> k)) ) - return k; - } + k_max_push_speed = 16.0f, + k_push_accel = 10.0f, + k_push_cycle_rate = 8.0f, - return 0; -} + k_steer_ground = 2.5f, + k_steer_air = 3.6f, + + k_jump_charge_speed = (1.0f/1.0f), + k_jump_force = 5.0f, + + k_pitch_limit = 1.5f, + k_look_speed = 2.0f, + + k_cog_spring = 0.2f, + k_cog_damp = 0.02f, + k_cog_mass_ratio = 0.9f, + + k_mmthrow_scale = 6.0f, + k_mmcollect_lat = 2.0f, + k_mmcollect_vert = 0.0f, + k_mmdecay = 12.0f, + k_spring_angular = 1.0f, + + k_spring_force = 300.0f, + k_spring_dampener = 5.0f, + + k_grind_spring = 50.0f, + k_grind_aligment = 10.0f, + k_grind_dampener = 5.0f, + + k_surface_spring = 100.0f, + k_surface_dampener = 40.0f, + k_manul_spring = 200.0f, + k_manul_dampener = 30.0f, + k_board_interia = 8.0f, + + k_grind_decayxy = 30.0f, + k_grind_axel_min_vel = 3.0f, + k_grind_axel_max_angle = 0.95f, /* cosine(|a|) */ + k_grind_axel_max_vangle = 0.4f, + k_grind_max_friction = 3.0f, + k_grind_max_edge_angle = 0.97f, + + k_board_length = 0.45f, + k_board_width = 0.13f, + k_board_end_radius = 0.1f, + k_board_radius = 0.14f; /* 0.07 */ + +VG_STATIC float + k_walkspeed = 10.0f, + k_airspeed = 1.2f, + k_stopspeed = 4.0f, + k_walk_accel = 10.0f, + k_walk_air_accel = 7.0f, + k_walk_friction = 10.0f, + k_walk_step_height = 0.2f; -static void str_utf8_collapse( const char *str, char *buf, u32 length ) +VG_STATIC float + k_cam_punch = -0.1f, + k_cam_spring = 20.0f, + k_cam_damp = 6.7f; + +VG_STATIC float + k_day_length = 30.0f; /* minutes */ + +VG_STATIC float k_ragdoll_floatyiness = 20.0f, + k_ragdoll_floatydrag = 1.0f, + k_ragdoll_limit_scale = 1.0f; + +VG_STATIC int k_ragdoll_div = 1, + ragdoll_frame = 0, + k_ragdoll_debug_collider = 1, + k_ragdoll_debug_constraints = 0; + +VG_STATIC int k_debug_light_indices = 0, + k_debug_light_complexity = 0; + +VG_STATIC int freecam = 0; +VG_STATIC int walk_grid_iterations = 1; +VG_STATIC float fc_speed = 10.0f; +VG_STATIC int cl_thirdperson = 0; + +VG_STATIC void common_var_temp(void) { - 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_VAR_F32( k_day_length ); + + VG_VAR_F32( k_cam_punch ); + VG_VAR_F32( k_cam_damp ); + VG_VAR_F32( k_cam_spring ); + + VG_VAR_F32( k_grind_dampener ); + VG_VAR_F32( k_grind_spring ); + VG_VAR_F32( k_grind_aligment ); + VG_VAR_F32( k_surface_spring ); + VG_VAR_F32( k_surface_dampener ); + VG_VAR_F32( k_board_interia ); + VG_VAR_F32( k_grind_decayxy ); + VG_VAR_F32( k_grind_axel_min_vel ); + VG_VAR_F32( k_grind_axel_max_angle ); + VG_VAR_F32( k_grind_max_friction ); + + VG_VAR_F32( k_walkspeed ); + VG_VAR_F32( k_stopspeed ); + VG_VAR_F32( k_airspeed ); + VG_VAR_F32( k_walk_friction ); + VG_VAR_F32( k_walk_air_accel ); + VG_VAR_F32( k_walk_accel ); + + VG_VAR_I32( freecam ); + VG_VAR_I32( cl_thirdperson ); + VG_VAR_F32_PERSISTENT( fc_speed ); + + /* TODO: NOT PERSISTENT */ + VG_VAR_F32( k_ragdoll_limit_scale ); + VG_VAR_I32( k_ragdoll_div ); + VG_VAR_I32( k_ragdoll_debug_collider ); + VG_VAR_I32( k_ragdoll_debug_constraints ); + VG_VAR_I32( k_debug_light_indices ); + VG_VAR_I32( k_debug_light_complexity ); + + VG_VAR_F32( k_friction_lat ); + + VG_VAR_F32( k_cog_spring ); + VG_VAR_F32( k_cog_damp ); + VG_VAR_F32( k_cog_mass_ratio ); + + VG_VAR_F32( k_spring_force ); + VG_VAR_F32( k_spring_dampener ); + VG_VAR_F32( k_spring_angular ); + + VG_VAR_F32( k_mmthrow_scale ); + VG_VAR_F32( k_mmcollect_lat ); + VG_VAR_F32( k_mmcollect_vert ); + VG_VAR_F32( k_mmdecay ); } #endif /* COMMON_H */