c_api_level.h - Engine C API Reference

c_api_level.h
  1. #pragma once
  2. #include "c_api_types.h"
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. struct LevelCApi
  7. {
  8. WorldPtr (*world) (LevelPtr level_pointer);
  9. void (*spawn_background) (LevelPtr level_pointer);
  10. UnitRef (*unit_by_index) (LevelPtr level_pointer, unsigned index);
  11. unsigned (*unit_index) (LevelPtr level_pointer, UnitRef unit_ref);
  12. unsigned (*num_units) (LevelPtr level_pointer);
  13. unsigned (*num_nested_levels) (LevelPtr level_pointer);
  14. LevelPtr (*nested_level) (LevelPtr level_pointer, unsigned index);
  15. unsigned (*num_entities) (LevelPtr level_pointer);
  16. EntityRef (*entity) (LevelPtr level_pointer, unsigned index);
  17. CApiVector3 (*random_point_inside_volume) (ConstLevelPtr level_pointer, unsigned volume_name_id32);
  18. CApiVector3 (*next_random_point_inside_volume) (ConstLevelPtr level_pointer, unsigned volume_name_id32, int, int*);
  19. int (*is_point_inside_volume) (ConstLevelPtr level_pointer, unsigned volume_name_id32, ConstVector3Ptr vector3_pointer);
  20. int (*has_volume) (ConstLevelPtr level_pointer, unsigned volume_name_id32);
  21. void (*flow_event) (LevelPtr level_pointer, unsigned event_name_id32);
  22. unsigned (*flow_variable_type) (LevelPtr level_pointer, unsigned variable_name_id32);
  23. void* (*flow_variable) (LevelPtr level_pointer, unsigned variable_name_id32);
  24. void (*set_flow_variable) (LevelPtr level_pointer, unsigned variable_name_id32, void* value);
  25. void (*trigger_event) (LevelPtr level_pointer, unsigned event_name_id32);
  26. void (*trigger_level_loaded) (LevelPtr level_pointer);
  27. void (*trigger_level_shutdown) (LevelPtr level_pointer);
  28. void (*trigger_level_update) (LevelPtr level_pointer);
  29. ConstMatrix4x4Ptr (*pose) (LevelPtr level_pointer);
  30. ConstNavigationMeshPtr (*navigation_mesh)(ConstLevelPtr level_pointer);
  31. struct Vector3ArrayWrapper (*spline)(LevelPtr level_pointer, unsigned spline_name_id32);
  32. unsigned (*num_splines)(LevelPtr level_pointer);
  33. struct Vector3ArrayWrapper (*spline_by_index)(LevelPtr level_pointer, unsigned index);
  34. /* Begin development only functions */
  35. void (*set_pose)(LevelPtr level_pointer, ConstMatrix4x4Ptr pose);
  36. void (*set_visibility)(LevelPtr level_pointer, int visible);
  37. struct OOBBWrapper (*box)(LevelPtr level_pointer);
  38. unsigned (*num_internal_units)(LevelPtr level_pointer);
  39. void (*internal_units)(LevelPtr level_pointer, UnitRef* internal_units);
  40. /* End development only functions */
  41. };
  42. #ifdef __cplusplus
  43. }
  44. #endif