};
enum world_purpose{
+ k_world_purpose_invalid = -1,
k_world_purpose_hub = 0,
k_world_purpose_client = 1,
k_world_max
#include "world_water.h"
#include "world_audio.h"
#include "world_routes.h"
+#include "world_routes_ui.h"
/* console variables */
k_debug_light_complexity= 0,
k_light_preview = 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,
water;
f64 time;
+ f32 tar_min, tar_max;
/* STD140 */
struct ub_world_lighting{
mdl_material info;
mdl_submesh sm_geo,
sm_no_collide;
+ u32 flags;
}
* surfaces;
u32 surface_count;
ent_objective,
ent_challenge,
ent_relay,
- ent_cubemap;
+ ent_cubemap,
+ ent_miniworld,
+ ent_prop,
+ ent_region;
+
+ enum skybox {
+ k_skybox_default,
+ k_skybox_space
+ } skybox;
ent_gate *rendering_gate;
/* leaderboards */
struct leaderboard_cache *leaderboard_cache;
+
+ /* ui */
+ struct route_ui *routes_ui;
};
struct world_static {
static void world_init(void);
static world_instance *world_current_instance(void);
-static void world_set_active_instance( u32 index );
+static void world_switch_instance( u32 index );
#endif /* WORLD_H */