X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=client.c;fp=client.c;h=200585582c9d942180b10ad69a9c53e0a0f1ac64;hb=ea41214530c8f3517b59ccbf7fad9f3bb159684a;hp=0000000000000000000000000000000000000000;hpb=0ba0bbe2da453f17f56a88521057e6514ae30b8f;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/client.c b/client.c new file mode 100644 index 0000000..2005855 --- /dev/null +++ b/client.c @@ -0,0 +1,92 @@ +#include "vg/vg_opt.h" +#include "vg/vg_loader.h" +#include "vg/vg_io.h" +#include "vg/vg_audio.h" +#include "vg/vg_async.h" + +#include "client.h" +#include "render.h" +#include "network.h" +#include "player_remote.h" +#include "menu.h" + +struct game_client g_client = +{ + .demo_mode = 1 +}; + +static void async_client_ready( void *payload, u32 size ) +{ + g_client.loaded = 1; + + if( network_client.auto_connect ) + network_client.user_intent = k_server_intent_online; + + menu_at_begin(); +} + +void vg_load(void) +{ + vg_audio.always_keep_compressed = 1; + vg_loader_step( render_init, NULL ); + + game_load(); + + vg_async_call( async_client_ready, NULL, 0 ); +} + +void vg_preload(void) +{ +vg_info(" Copyright . . . -----, ,----- ,---. .---. \n" ); +vg_info(" 2021-2024 |\\ /| | / | | | | /| \n" ); +vg_info(" | \\ / | +-- / +----- +---' | / | \n" ); +vg_info(" | \\ / | | / | | \\ | / | \n" ); +vg_info(" | \\/ | | / | | \\ | / | \n" ); +vg_info(" ' ' '--' [] '----- '----- ' ' '---' " + "SOFTWARE\n" ); + + /* please forgive me! */ + u32 sz; char *drm; + if( (drm = vg_file_read_text( vg_mem.scratch, "DRM", &sz )) ) + if( !strcmp(drm, "blibby!") ) + g_client.demo_mode = 0; + + vg_loader_step( remote_players_init, NULL ); + + steam_init(); + vg_loader_step( NULL, steam_end ); + vg_loader_step( network_init, network_end ); +} + +void vg_launch_opt(void) +{ + const char *arg; + + if( vg_long_opt( "noauth" ) ) + network_client.auth_mode = eServerModeNoAuthentication; + + if( (arg = vg_long_opt_arg( "server" )) ) + network_set_host( arg, NULL ); + + if( vg_long_opt( "demo" ) ) + g_client.demo_mode = 1; + + game_launch_opt(); +} + +int main( int argc, char *argv[] ) +{ + network_set_host( "skaterift.com", NULL ); + vg_mem.use_libc_malloc = 0; + vg_set_mem_quota( 160*1024*1024 ); + vg_enter( argc, argv, "Voyager Game Engine" ); + return 0; +} + +#ifdef SKATERIFT +#include "skaterift.c" +#endif + +#ifdef HGATE +#include "hgate.c" +#endif