seperate projects
[carveJwlIkooP6JGAAIwe30JlM.git] / client.c
diff --git a/client.c b/client.c
new file mode 100644 (file)
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