small refactor of model loading
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.c
index 8d79e9ebdabad3cbf85c0f20b8c47a3b33889933..cbb96920e19c5c8a32e4f7d7875eb6e184cf1533 100644 (file)
@@ -39,6 +39,7 @@
 #include "ent_tornado.h"
 #include "ent_miniworld.h"
 #include "ent_skateshop.h"
+#include "ent_npc.h"
 #include "world_map.h"
 #include "gui.h"
 #include "workshop.h"
@@ -131,8 +132,8 @@ static void skaterift_restore_state(void)
    vg_msg_getkvintg( &kvsav, "ach", k_vg_msg_u32, &ach );
    skaterift.achievements |= ach;
 
-   u32 board_reg_id = 0,
-       player_reg_id = 0;
+   u32 board_reg_id = time(NULL) % addon_count( k_addon_type_board, 0 ),
+       player_reg_id = (time(NULL)+44) % addon_count( k_addon_type_player, 0 );
 
    vg_msg_cursor orig = kvsav.cur;
    if( vg_msg_seekframe( &kvsav, "player" ) ){
@@ -222,6 +223,7 @@ void vg_load(void)
 
    vg_loader_step( player_init, NULL );
    vg_loader_step( player_ragdoll_init, NULL );
+   vg_loader_step( npc_init, NULL );
 
    /* content stuff */
    vg_loader_step( addon_system_init, NULL );
@@ -285,9 +287,9 @@ void vg_pre_update(void)
    if( k_tools_mode ) return;
 
    steam_update();
+   skaterift_change_client_world_preupdate();
+
    if( skaterift.op == k_async_op_clientloading ) return;
-   if( world_static.load_state == k_world_loader_preload )
-      skaterift_change_client_world_preupdate();
 
    draw_origin_axis();
    skateshop_autostart_loading();
@@ -296,7 +298,8 @@ void vg_pre_update(void)
    /* time rate */
    f32 target = 1;
    if( skaterift.activity & (k_skaterift_replay|k_skaterift_menu|
-                             k_skaterift_world_map) ){
+                             k_skaterift_world_map) )
+   {
       target = 0;
    }
 
@@ -305,8 +308,8 @@ void vg_pre_update(void)
    
    /* TODO: how can we compress this? */
    ent_miniworld_preupdate();
-   player__pre_update();
    world_entity_focus_preupdate();
+   player__pre_update();
    skaterift_replay_pre_update();
    remote_sfx_pre_update();
    skateshop_world_preupdate( world_current_instance() );
@@ -775,3 +778,5 @@ void vg_gui(void)
 #include "world_sfd.c"
 #include "world_volumes.c"
 #include "world_water.c"
+#include "ent_npc.c"
+#include "model.c"