world->info.timezone = 0.0f;
}
- time_t t;
- struct tm *tm;
- time( &t );
- tm = gmtime( &t );
- world->time = (float)tm->tm_min/20.0f + (world->info.timezone/24.0f);
+ time_t seconds = time(NULL) % ((u32)k_day_length*60);
+ world->time = ((f64)(seconds)/(k_day_length*60.0));
+ world->time += (world->info.timezone/24.0);
/* process resources from pack */
world_gen_load_surfaces( world );
world_gen_compute_light_indices( world );
mdl_close( meta );
+ /* allocate leaderboard buffers */
+ u32 bs = mdl_arrcount(&world->ent_route)*sizeof(struct leaderboard_cache);
+ world->leaderboard_cache = vg_linear_alloc( heap, bs );
+
+ for( u32 i=0; i<mdl_arrcount( &world->ent_route ); i ++ ){
+ struct leaderboard_cache *board = &world->leaderboard_cache[i];
+ board->data = vg_linear_alloc( heap, NETWORK_LEADERBOARD_MAX_SIZE );
+ board->status = k_request_status_client_error;
+ board->cache_time = 0.0;
+ board->data_len = 0;
+ }
+
vg_async_call( async_world_postprocess, world, 0 );
vg_async_stall();
}