X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=skaterift.h;h=aee794e05a5553d1a2d282b050612d1aa4ef0870;hb=9eb3de757a997becb8406417a4bf613f4cb04900;hp=c13c78b7fb3d455a35955f9ffdb7a43243b83372;hpb=fdd41609e59c7df548682b25001f0015dc1acbea;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/skaterift.h b/skaterift.h index c13c78b..aee794e 100644 --- a/skaterift.h +++ b/skaterift.h @@ -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 */