4 #define SKATERIFT_APPID 2103940
6 #define VG_TIMESTEP_FIXED (1.0/60.0)
9 #define VG_MSG_V1_SUPPORT
10 #define VG_LOG_SOURCE_INFO
20 k_async_op_clientloading
,
21 k_async_op_world_preloading
,
22 k_async_op_world_loading
,
23 k_async_op_world_scan
,
24 k_async_op_world_load_preview
,
25 k_async_op_board_scan
,
26 k_async_op_player_scan
,
27 k_async_op_board_load
,
28 k_async_op_write_savedata
,
29 k_workshop_form_op_loading_model
,
30 k_workshop_form_op_downloading_submission
,
31 k_workshop_form_op_publishing_update
,
35 static skaterift
= { .async_op
= k_async_op_clientloading
};
38 static void skaterift_change_world_start( void );
39 static int skaterift_change_world_command( int argc
, const char *argv
[] );
42 * Start a new operation or crash if we are already running one. you can avoid
43 * crashing the game by checking the async status yourself before calling.
45 VG_STATIC
void skaterift_begin_op( enum async_operation op
)
47 if( vg_thread_purpose() == k_thread_purpose_loader
){
48 vg_fatal_error( "Can't do that here\n" );
51 if( skaterift
.async_op
!= k_async_op_none
){
52 vg_fatal_error( "Async executing op(%d), tried to start op(%d)\n",
53 skaterift
.async_op
, op
);
56 skaterift
.async_op
= op
;
57 vg_info( "Starting op( %d )\n", op
);
61 * Switch operation for those who have multiple parts
63 VG_STATIC
void skaterift_shift_op( enum async_operation op
)
65 if( skaterift
.async_op
== k_async_op_none
){
66 vg_fatal_error( "No current op, cannot shift operation (%d)\n", op
);
69 skaterift
.async_op
= op
;
70 vg_info( "Shifting to op( %d )\n", op
);
73 VG_STATIC
void skaterift_end_op(void);
74 VG_STATIC
void async_skaterift_end_op( void *data
, u32 size
){
79 * Finished operation, otheres can now run
81 VG_STATIC
void skaterift_end_op(void)
83 if( vg_thread_purpose() == k_thread_purpose_loader
){
84 vg_async_call( async_skaterift_end_op
, NULL
, 0 );
87 vg_info( "Finishing op( %d )\n", skaterift
.async_op
);
88 skaterift
.async_op
= k_async_op_none
;
92 #endif /* SKATERIFT_H */