X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world.h;h=4da3791969609b9d12742a6e64d783aaa01c15c7;hb=d6dc880325aed6461ce18fe6ef20a204ef46cb5b;hp=7d513f9d0a768043cc7d3a63531614ab83cbb5b3;hpb=a1b878e2cdbf145b59d611b5060d3c1a1a80d017;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world.h b/world.h index 7d513f9..4da3791 100644 --- a/world.h +++ b/world.h @@ -16,8 +16,17 @@ enum world_geo_type{ k_world_geo_type_water = 2 }; +enum world_purpose{ + k_world_purpose_hub, + k_world_purpose_client +} +purpose; + typedef struct world_instance world_instance; +static void skaterift_world_get_save_path( enum world_purpose which, + char buf[128] ); + /* submodule headers */ #include "world_entity.h" #include "world_gate.h" @@ -156,7 +165,9 @@ struct world_instance { ent_camera, ent_swspreview, ent_ccmd, - ent_challenge; + ent_challenge, + ent_unlock, + ent_relay; ent_gate *rendering_gate; @@ -170,9 +181,9 @@ struct world_instance { scene_lines; /* spacial mappings */ - bh_tree *audio_bh, - *volume_bh, - *geo_bh; + bh_tree *geo_bh, + *entity_bh; + u32 *entity_list; /* graphics */ glmesh mesh_route_lines; @@ -181,6 +192,9 @@ struct world_instance { mesh_water; rb_object rb_geo; + + ent_challenge *challenge_target; + f32 challenge_timer; }; struct world_static { @@ -196,8 +210,18 @@ struct world_static { u32 active_trigger_volumes[8]; u32 active_trigger_volume_count; - world_instance worlds[4]; - i32 active_world; + world_instance instances[4]; + i32 active_instance; + + addon_reg *addon_hub, + *addon_client; + + enum world_loader_state{ + k_world_loader_none, + k_world_loader_preload, + k_world_loader_load + } + load_state; } static world_static;