basic replayable replays
[carveJwlIkooP6JGAAIwe30JlM.git] / skaterift.h
index c13c78b7fb3d455a35955f9ffdb7a43243b83372..aee794e05a5553d1a2d282b050612d1aa4ef0870 100644 (file)
@@ -7,9 +7,8 @@
 #define VG_3D
 #define VG_GAME
 #define VG_MSG_V1_SUPPORT
+#define VG_LOG_SOURCE_INFO
 #include "vg/vg.h"
-
-#include "common.h"
 #include "world.h"
 #include "addon.h"
 
@@ -17,74 +16,21 @@ struct{
    enum async_operation{
       k_async_op_none,
       k_async_op_clientloading,
-      k_async_op_world_preloading,
-      k_async_op_world_loading,
       k_async_op_world_scan,
       k_async_op_world_load_preview,
       k_async_op_board_scan,
+      k_async_op_player_scan,
       k_async_op_board_load,
       k_async_op_write_savedata,
-      k_workshop_form_op_loading_model,
-      k_workshop_form_op_downloading_submission,
-      k_workshop_form_op_publishing_update,
    }
-   async_op;
+   op;
+
+   f32 time_rate;
 }
-static skaterift = { .async_op = k_async_op_clientloading };
+static skaterift = { .op = k_async_op_clientloading, .time_rate = 1.0f };
 
 /* Skaterift api */
 static void skaterift_change_world_start( void );
 static int  skaterift_change_world_command( int argc, const char *argv[] );
 
-/*
- * Start a new operation or crash if we are already running one. you can avoid
- * crashing the game by checking the async status yourself before calling.
- */
-VG_STATIC void skaterift_begin_op( enum async_operation op )
-{
-   if( vg_thread_purpose() == k_thread_purpose_loader ){
-      vg_fatal_error( "Can't do that here\n" );
-   }
-
-   if( skaterift.async_op != k_async_op_none ){
-      vg_fatal_error( "Async executing op(%d), tried to start op(%d)\n", 
-                       skaterift.async_op, op );
-   }
-   
-   skaterift.async_op = op;
-   vg_info( "Starting op( %d )\n", op );
-}
-
-/*
- * Switch operation for those who have multiple parts
- */
-VG_STATIC void skaterift_shift_op( enum async_operation op )
-{
-   if( skaterift.async_op == k_async_op_none ){
-      vg_fatal_error( "No current op, cannot shift operation (%d)\n", op );
-   }
-   
-   skaterift.async_op = op;
-   vg_info( "Shifting to op( %d )\n", op );
-}
-
-VG_STATIC void skaterift_end_op(void);
-VG_STATIC void async_skaterift_end_op( void *data, u32 size ){
-   skaterift_end_op();
-}
-
-/*
- * Finished operation, otheres can now run
- */
-VG_STATIC void skaterift_end_op(void)
-{
-   if( vg_thread_purpose() == k_thread_purpose_loader ){
-      vg_async_call( async_skaterift_end_op, NULL, 0 );
-   }
-   else{
-      vg_info( "Finishing op( %d )\n", skaterift.async_op );
-      skaterift.async_op = k_async_op_none;
-   }
-}
-
 #endif /* SKATERIFT_H */