Dont look
[carveJwlIkooP6JGAAIwe30JlM.git] / world.h
diff --git a/world.h b/world.h
deleted file mode 100644 (file)
index 823b38c..0000000
--- a/world.h
+++ /dev/null
@@ -1,270 +0,0 @@
-/*
- * Copyright (C) 2021-2024 Mt.ZERO Software, Harry Godden - All Rights Reserved
- */
-
-#pragma once
-#include "render.h"
-#include "network_msg.h"
-#include "addon.h"
-
-/* types
- */
-
-enum world_geo_type{
-   k_world_geo_type_solid = 0,
-   k_world_geo_type_nonsolid = 1,
-   k_world_geo_type_water = 2
-};
-
-enum world_purpose{
-   k_world_purpose_invalid = -1,
-   k_world_purpose_hub = 0,
-   k_world_purpose_client = 1,
-   k_world_max
-};
-
-struct leaderboard_cache {
-   enum request_status status;
-   f64 cache_time;
-   u8 *data;
-   u32 data_len;
-};
-
-typedef struct world_instance world_instance;
-
-void skaterift_world_get_save_path( enum world_purpose which, char buf[128] );
-
-/* submodule headers */
-#include "world_entity.h"
-#include "world_gate.h"
-#include "world_gen.h"
-#include "world_info.h"
-#include "world_physics.h"
-#include "world_render.h"
-#include "world_sfd.h"
-#include "world_volumes.h"
-#include "world_water.h"
-#include "world_audio.h"
-#include "world_routes.h"
-#include "world_routes_ui.h"
-
-/* console variables */
-
-static f32   k_day_length            = 30.0f; /* minutes */
-static i32   k_debug_light_indices   = 0,
-             k_debug_light_complexity= 0,
-             k_light_preview         = 0,
-             k_light_editor          = 0;
-
-#define WORLD_SURFACE_HAS_TRAFFIC 0x1
-#define WORLD_SURFACE_HAS_PROPS   0x2
-
-struct world_instance {
-   /* Fixed items
-    * -------------------------------------------------------
-    */
-
-   v4f player_co;
-
-   void *heap;
-   enum world_status{
-      k_world_status_unloaded = 0,
-      k_world_status_loading = 1,
-      k_world_status_loaded = 2,
-      k_world_status_unloading = 3  /* dont spawn sounds and stuff */
-   }
-   status;
-
-   struct{
-      boxf depthbounds;
-      int depth_computed;
-
-      float height;
-      int enabled;
-      v4f plane;
-   }
-   water;
-
-   f64 time;
-   f32 tar_min, tar_max;
-
-   /* STD140 */
-   struct ub_world_lighting{
-      v4f g_cube_min,
-          g_cube_inv_range;
-
-      v4f g_water_plane,
-          g_depth_bounds;
-
-      v4f g_daysky_colour;
-      v4f g_nightsky_colour;
-      v4f g_sunset_colour;
-      v4f g_ambient_colour;
-      v4f g_sunset_ambient;
-      v4f g_sun_colour;
-      v4f g_sun_dir;
-      v4f g_board_0;
-      v4f g_board_1;
-
-      float g_water_fog;
-      float g_time;
-      float g_realtime;
-      float g_shadow_length;
-      float g_shadow_spread;
-
-      float g_time_of_day;
-      float g_day_phase;
-      float g_sunset_phase;
-
-      int g_light_preview;
-      int g_shadow_samples;
-
-      int g_debug_indices;
-      int g_debug_complexity;
-   }
-   ub_lighting;
-   GLuint ubo_lighting;
-   int    ubo_bind_point;
-
-   GLuint tbo_light_entities,
-          tex_light_entities,
-          tex_light_cubes;
-
-   float probabilities[3];
-
-   v3i light_cubes;
-   struct framebuffer heightmap;
-
-   /*
-    * Dynamically allocated when world_load is called.
-    *
-    *                  the following arrays index somewhere into this linear 
-    *                  allocator
-    * --------------------------------------------------------------------------
-    */
-
-   /*
-    * Main world .mdl 
-    */
-   mdl_context meta;
-
-   GLuint *textures;
-   u32 texture_count;
-
-   struct world_surface{
-      mdl_material info;
-      mdl_submesh sm_geo,
-                  sm_no_collide;
-      u32 flags;
-   }
-   * surfaces;
-   u32 surface_count;
-
-   ent_worldinfo info;
-   mdl_array_ptr ent_spawn,
-                 ent_gate,
-                 ent_light,
-                 ent_route_node,
-                 ent_path_index,
-                 ent_checkpoint,
-                 ent_route,
-                 ent_water,
-
-                 ent_audio_clip,
-                 ent_audio,
-                 ent_volume,
-                 ent_traffic,
-                 ent_skateshop,
-                 ent_marker,
-                 ent_camera,
-                 ent_swspreview,
-                 ent_ccmd,
-                 ent_objective,
-                 ent_challenge,
-                 ent_relay,
-                 ent_cubemap,
-                 ent_miniworld,
-                 ent_prop,
-                 ent_region,
-                 ent_glider;
-
-   enum skybox {
-      k_skybox_default,
-      k_skybox_space
-   } skybox;
-
-   ent_gate *rendering_gate;
-
-   /* logic 
-    * ----------------------------------------------------
-    */
-
-   /* world geometry */
-   scene_context scene_geo,
-                 scene_no_collide,
-                 scene_lines;
-
-   /* spacial mappings */
-   bh_tree *geo_bh,
-           *entity_bh;
-   u32 *entity_list;
-
-   /* graphics */
-   glmesh mesh_route_lines;
-   glmesh mesh_geo, 
-          mesh_no_collide,
-          mesh_water;
-   u32 cubemap_cooldown, cubemap_side;
-
-   /* leaderboards */
-   struct leaderboard_cache *leaderboard_cache;
-
-   /* ui */
-   struct route_ui *routes_ui;
-};
-
-struct world_static {
-   /*
-    * Allocated as system memory
-    * --------------------------------------------------------------------------
-    */
-   void *heap;
-
-   u32 current_run_version;
-   double time, rewind_from, rewind_to, last_use;
-
-   u32 active_trigger_volumes[8];
-   u32 active_trigger_volume_count;
-
-   addon_reg *instance_addons[ k_world_max ];
-   world_instance instances[ k_world_max ];
-
-   enum world_purpose active_instance;
-   u32            focused_entity; /* like skateshop, challenge.. */
-   f32            focus_strength;
-   vg_camera      focus_cam;
-
-   /* challenges */
-   ent_objective *challenge_target;
-   f32 challenge_timer;
-
-   enum world_loader_state{
-      k_world_loader_none,
-      k_world_loader_preload,
-      k_world_loader_load
-   }
-   load_state;
-}
-extern world_static;
-
-struct world_load_args 
-{
-   enum world_purpose purpose;
-   addon_reg *reg;
-};
-
-void world_init(void);
-world_instance *world_current_instance(void);
-void world_switch_instance( u32 index );
-void skaterift_world_load_thread( void *_args );
-void world_update( world_instance *world, v3f pos );