mini world rendering adjustments
[carveJwlIkooP6JGAAIwe30JlM.git] / world_load.c
index e8f545c56dff8af10b154dcb9e925d77402b87d2..1605325f44fb6c37ea511aee360590c961b6863b 100644 (file)
@@ -72,8 +72,15 @@ static void world_instance_load_mdl( u32 instance_id, const char *path ){
    mdl_array_ptr infos;
    mdl_load_array( meta, &infos, "ent_worldinfo", vg_mem.scratch );
 
+   world->skybox = k_skybox_default;
    if( mdl_arrcount(&infos) ){
       world->info = *((ent_worldinfo *)mdl_arritm(&infos,0));
+
+      if( world->meta.info.version >= 104 ){
+         if( MDL_CONST_PSTREQ( &world->meta, world->info.pstr_skybox,"space")){
+            world->skybox = k_skybox_space;
+         }
+      }
    }
    else{
       world->info.pstr_author = 0;
@@ -82,7 +89,7 @@ static void world_instance_load_mdl( u32 instance_id, const char *path ){
       world->info.timezone = 0.0f;
    }
 
-   time_t seconds = time(NULL) % ((u32)k_day_length*60);
+   time_t seconds = time(NULL) % ((u32)vg_maxf(1.0f,k_day_length)*60);
    world->time  = ((f64)(seconds)/(k_day_length*60.0));
    world->time += (world->info.timezone/24.0);