X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;ds=sidebyside;f=world.h;h=efa5f9d0e8b54b8e308a7e8a095c2e364bdd9d73;hb=HEAD;hp=49c030ea37260f7945311ee69e4a9db447882f9d;hpb=7eba38b8178c82040618a518634d8ff4813e2ff2;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world.h b/world.h deleted file mode 100644 index 49c030e..0000000 --- a/world.h +++ /dev/null @@ -1,210 +0,0 @@ -/* - * Copyright (C) 2021-2023 Mt.ZERO Software, Harry Godden - All Rights Reserved - */ - -#ifndef WORLD_H -#define WORLD_H - -#include "render.h" - -/* types - */ - -enum world_geo_type{ - k_world_geo_type_solid = 0, - k_world_geo_type_nonsolid = 1, - k_world_geo_type_water = 2 -}; - -typedef struct world_instance world_instance; - -/* submodule headers */ -#include "world_entity.h" -#include "world_gate.h" -#include "world_gen.h" -#include "world_info.h" -#include "world_load.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" - -/* 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; - - -struct world_instance { - /* Fixed items - * ------------------------------------------------------- - */ - - 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; - - /* 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; - } - * 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_challenge; - - 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; - - rb_object rb_geo; - - ent_challenge *challenge_target; - f32 challenge_timer; -}; - -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; - - world_instance worlds[4]; - i32 active_world; -} -static world_static; - -static void world_init(void); -static world_instance *world_current_instance(void); - -#endif /* WORLD_H */