- * materials;
- u32 material_count;
-
- /*
- * Named safe places to respawn
- */
- struct respawn_point
- {
- v3f co;
- v4f q;
- const char *name;
- }
- * spawns;
- u32 spawn_count;
-
- /*
- * Audio player entities
- */
- struct world_audio_thing
- {
- v3f pos;
- float volume, range;
- u32 flags;
-
-#if 0
- audio_player player;
-#endif
-
- audio_clip temp_embedded_clip;
- }
- * audio_things;
- u32 audio_things_count;
-
-#if 0
- /*
- * Relays [ DEPRECATED ]
- */
- struct logic_relay
- {
- v3f pos;
-
- struct relay_target
- {
- u32 sub_id;
- enum classtype classtype;
- }
- targets[4];
- u32 target_count;
- }
- * logic_relays;
- u32 relay_count;
-#endif
-
- struct soundscape
- {
- /* locking */
- audio_channel *channels[4];
-
- /* accessable without locking */
- v3f spawn_position;
-
- u32 usage_count;
- u32 max_instances;
- u32 allow_transitions;
- float transition_duration;
- const char *label;
- }
- * soundscapes;
- u32 soundscape_count;
-
- struct logic_brick_ref
- {
- mdl_node *node;
- float usage;
- u32 internal_id; /* used for things like soundscapes where another
- allocation is made on top */
- }
- * logic_bricks;
- u32 logic_brick_count;
-
- /*
- * Box trigger entities
- */
- struct trigger_zone
- {
- m4x3f transform, inv_transform;
-
- u32 target_logic_brick;
- enum classtype classtype;
- }
- * triggers;
- u32 trigger_count;
-
- /*
- * Achievements
- */
- struct logic_achievement
- {
- v3f pos;
- const char *achievement_id;
- u32 achieved;
- }
- * logic_achievements;
- u32 achievement_count;
-
- /*
- * Lights
- */
- struct world_light
- {
- mdl_node *node;
- struct classtype_world_light *inf;
- m4x3f inverse_world;
- v2f angle_sin_cos;
-
- /* enabled.. etc?
- * TODO: we should order entities in the binary by their type */
- }
- * lights;
- u32 light_count;
-
- /*
- * Routes (world_routes.h)
- * --------------------------------------------------------------------------
- */
- struct route_node
- {
- v3f co, right, up, h;
- u32 next[2];
-
- u32 special_type, special_id, current_refs, ref_count;
- u32 route_ids[4]; /* Gates can be linked into up to four routes */
- }
- *nodes;
- u32 node_count;
-
- struct route
- {
- u32 track_id;
- v4f colour;
-
- u32 start;
- mdl_submesh sm;
-
- int active;
- float factive;
-
- double best_lap, latest_pass; /* Session */
-
- m4x3f scoreboard_transform;
- }
- *routes;
- u32 route_count;