boards and tht
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index d22846ff0fe65d57ff7b6626ec4c8b7b3477498c..50e780f898811a3be394cf2338b5e55648f60630 100644 (file)
@@ -14,7 +14,7 @@
 #if 1
 
 #define SR_NETWORKED
-#define VG_DEVWINDOW
+//#define VG_DEVWINDOW
 
 /* 
  *     system headers
@@ -44,6 +44,7 @@
 #include "vehicle.c"
 #include "entity.c"
 #include "workshop.c"
+#include "addon.c"
 
 static struct player_avatar localplayer_avatar;
 static struct player_model  localplayer_models[3];
@@ -126,6 +127,9 @@ VG_STATIC void vg_load(void)
 
    vg_loader_step( player_init, NULL );
    vg_loader_step( player_ragdoll_init, NULL );
+
+   /* content stuff */
+   vg_loader_step( addon_system_init, NULL );
    vg_loader_step( workshop_init, NULL );
    vg_loader_step( skateshop_init, NULL );
    
@@ -153,6 +157,37 @@ VG_STATIC void vg_load(void)
    world_loader.location = k_world_load_type_local;
    world_load_mdl( "maps/mp_spawn/main.mdl" );
 
+   /* Completing addon registrations
+    * -------------------------------------
+    */
+   vg_msg msg;
+
+   /* understate diy. */
+   addon_reg *spawn = addon_mount_local_addon( "maps/mp_spawn", 
+                                                k_workshop_file_type_world, 
+                                                ".mdl" );
+   vg_msg_init( &msg, spawn->metadata, sizeof(spawn->metadata) );
+   vg_msg_frame( &msg, "workshop" );
+   vg_msg_wkvstr( &msg, "title", "Understate DIY" );
+   vg_msg_end_frame( &msg );
+   vg_msg_wkvstr( &msg, "location", "USA" );
+   spawn->metadata_len = msg.cur;
+
+   /* mtzero island */
+   addon_reg *mtzero = addon_mount_local_addon( "maps/mp_mtzero",
+                                                k_workshop_file_type_world,
+                                                ".mdl" );
+   vg_msg_init( &msg, mtzero->metadata, sizeof(mtzero->metadata) );
+   vg_msg_frame( &msg, "workshop" );
+   vg_msg_wkvstr( &msg, "title", "Mt.Zero Island" );
+   vg_msg_end_frame( &msg );
+   vg_msg_wkvstr( &msg, "location", "Australia" );
+   mtzero->metadata_len = msg.cur;
+   global_skateshop.selected_world_id=1;
+   global_skateshop.pointcloud_world_id=1;
+   skateshop_preview_loader_thread( mtzero ); /* HACK */
+
+   vg_async_call( async_addon_reg_update, NULL, 0 );
    vg_console_load_autos();
    menu_link();
 
@@ -325,6 +360,7 @@ VG_STATIC void render_scene_gate_subview(void)
 {
    render_fb_bind( gpipeline.fb_main, 1 );
    world_instance *view_world = localplayer.viewable_world;
+   if( !view_world ) return; /* ??? */
 
    int depth = 1;
    if( localplayer.gate_waiting ) depth = 0;