X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=world.h;h=63bfa9c4f9fb6d0d6e442e074cf5341be211f599;hb=6190deb68aa1c9e92ede62ea05c2a755bf5516de;hp=e95f005b5bffb8042108ab82deed8e567b3d6a6b;hpb=44459e0aa734b6a090d60a309e29a9a2a232c731;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/world.h b/world.h index e95f005..63bfa9c 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,9 +165,10 @@ struct world_instance { ent_camera, ent_swspreview, ent_ccmd, + ent_objective, ent_challenge, - ent_unlock, - ent_relay; + ent_relay, + ent_cubemap; ent_gate *rendering_gate; @@ -181,10 +191,11 @@ struct world_instance { glmesh mesh_geo, mesh_no_collide, mesh_water; + u32 cubemap_cooldown, cubemap_side; rb_object rb_geo; - ent_challenge *challenge_target; + ent_objective *challenge_target; f32 challenge_timer; }; @@ -201,8 +212,23 @@ 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; + + /* TODO: FOCUSED_INSTANCE */ + u32 focused_entity; /* like skateshop, challenge.. */ + f32 focus_strength; + camera focus_cam; + + 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;