15 #define CPLUSPLUS_ONLY
149 const char* get_name();
161 const char* get_type_name();
168 const char* get_description();
181 #ifdef CPLUSPLUS_ONLY
282 int update2(
float t,
float realtime_t);
307 int set_playback_loop(
int playback_loop);
347 int set_tick_dt(
float tick_dt);
379 float get_realtime_t();
392 float get_desired_t();
409 int set_tout(
float tout);
434 void set_tout_enabled(
int tout_enabled);
447 int get_tout_enabled();
461 int get_playback_loop();
476 int get_ticks_can_be_dropped();
520 void set_ticks_can_be_dropped(
int ticks_can_be_dropped);
528 long get_max_ticks_behind_until_drop();
549 void set_max_ticks_behind_until_drop(
long max_ticks_behind_until_drop);
585 int set_playback_mode_stop();
605 int set_playback_mode_play();
646 float derive_playback_mode_dt(
float dt_in);
667 #ifdef CPLUSPLUS_ONLY
694 int load(
const char* filename);
739 int save_as(
const char* filename);
757 const char* get_filename();
769 const char* get_filename_without_directory();
795 void set_unsaved(
int unsaved);
797 #endif // CPLUSPLUS_ONLY
805 #ifdef CPLUSPLUS_ONLY
857 int draw_pass2(
int also_call_post_draw = 1);
865 int draw_particles();
877 void pre_draw_cull_state_reset();
886 void post_draw_cull_state_save();
890 void calculate_character_lods();
918 int post_draw(
int call_plugins_post_draw = 1,
919 int call_lua_packages_draw = 1,
920 int call_post_draw_callback = 1);
949 int set_graphics_attach_ptr(
void* graphics_attach_ptr);
951 #endif // CPLUSPLUS_ONLY
1114 int merge(
const char* filename,
1140 int merge_object(
const char*
string);
1181 int include_object_library(
const char* library_name);
1197 int uninclude_object_library(
const char* library_name);
1227 void set_base_datetime(
int year = -1,
1241 void set_base_datetime(
const char* datetime_string,
1242 const char* format);
1250 void get_base_datetime(
int* year = NULL,
1270 void set_base_datetime_default_to_now(
int to_now);
1278 int get_base_datetime_default_to_now();
1286 void set_base_datetime_default_to_today(
int to_today);
1294 int get_base_datetime_default_to_today();
1306 void set_current_datetime(
int year = -1,
1320 void set_current_datetime(
const char* datetime_string,
1321 const char* format);
1329 void get_current_datetime(
int* year = NULL,
1347 const char* get_current_datetime_string(
const char* format);
1355 void set_datetimes_are_utc(
int are_utc);
1362 int get_datetimes_are_utc();
1370 void set_utc_offset_hours(
float utc_offset_hours);
1377 float get_utc_offset_hours();
1385 void set_use_local_tz_utc_offset_hours(
int use_local_tz);
1388 int get_use_local_tz_utc_offset_hours();
1407 void set_current_datetime_advance_factor(
float advance_factor);
1410 float get_current_datetime_advance_factor();
1417 void get_network_datetime(
int* year = NULL,
1450 int set_tin_time_of_day(
float t);
1467 float get_tin_time_of_day();
1485 float get_time_of_day();
1498 #ifdef CPLUSPLUS_ONLY
1531 int add_appearance(
const char* appearance,
1532 char** equipment_list,
1533 char** character_types,
1561 int add_appearance_based_on_existing_appearance(
const char* appearance,
1562 const char* existing_appearance,
1563 char** equipment_list);
1591 int remove_appearance(
const char* appearance);
1593 #endif // CPLUSPLUS_ONLY
1609 int get_num_character_types_with_appearance(
const char* appearance_name);
1626 const char*get_character_type_from_appearance(
const char* appearance_name,
int index = 0);
1648 int get_num_hand_item_classes()
const;
1663 const char* get_hand_item_class_at_index(
int index )
const;
1678 int get_item_class_num_character_types(
const char* item_class_name )
const;
1694 const char* get_item_class_character_type_at_index(
const char* item_class_name,
int index )
const;
1713 const char* get_hand_item_class(
const char* char_type_name,
const char* appearance_name =
nullptr );
1728 int get_num_hand_items_in_class(
const char*hand_item_class );
1745 const char*get_hand_item_from_class(
const char*hand_item_class,
int index);
1776 int preload_character_type(
const char* character_type);
1795 int preload_appearance(
const char* appearance);
1817 int async_load_appearance(
const char* appearance,
const char* character_type =
"soldier_17",
const bool ** load_status = NULL);
1818 int async_load_hand_item(
const char* appearance_name,
const bool** load_status = NULL);
1839 int preload_gesture(
const char* character_type,
const char* gesture_name);
1865 void set_character_culling_enabled(
int character_culling);
1879 int get_character_culling_enabled();
1889 void set_scene_object_culling_enabled(
int object_culling);
1903 int get_scene_object_culling_enabled();
1913 void set_scene_object_sub_culling_enabled(
int object_culling);
1927 int get_scene_object_sub_culling_enabled();
1938 void set_character_visualize_bounds_enabled(
int visualize_bounds);
1953 int get_character_visualize_bounds_enabled();
1964 void set_scene_object_visualize_bounds_enabled(
int val);
1979 int get_scene_object_visualize_bounds_enabled();
2046 int get_num_character_types();
2057 const char* get_character_type_at_index(
int index);
2070 const char* get_character_type_abbreviation(
const char* character_type);
2099 const char* get_character_type_deprecated_at_version(
const char* character_type);
2130 const char* get_character_type_deprecated_suggested_alternatives(
const char* character_type);
2155 int get_character_type_quality_bias(
const char* character_type);
2188 const char* get_character_type_default_appearance(
const char* character_type);
2200 const char* get_character_type_default_skinned_appearance(
const char* character_type);
2212 int get_character_type_num_appearances(
const char* character_type);
2226 const char* get_character_type_appearance_at_index(
const char* character_type,
2249 int get_appearance_quality_bias(
const char* appearance);
2263 int get_num_appearances_of_appearance_type(
const char* character_type,
const char* base_appearance,
2279 const char* get_appearance_name_at_index(
const char* character_type,
const char* base_appearance,
2286 int get_appearance_default_patch_index(
const char* base_appearance,
2294 const char* get_appearance_patch_name_at_index(
const char* base_appearance,
2303 int get_num_actors();
2305 const char* get_actor_name_at_index(
int index );
2308 const char* get_actor_name(
const char* base_appearance );
2311 int get_num_equipment_for_actor(
const char* actor_name );
2314 const char* get_equipment_name_for_actor(
const char* actor_name,
int index );
2317 const char* get_equipment_type_for_actor(
const char* actor_name,
int index );
2320 int get_num_equipment_for_appearance(
const char* base_appearance );
2323 const char* get_equipment_name_for_appearance(
const char* base_appearance,
int index );
2326 const char* get_equipment_type_for_appearance(
const char* base_appearance,
int index );
2337 int get_character_type_num_actions(
const char* character_type );
2349 const char* get_character_type_action_at_index(
const char* character_type,
int index );
2361 const char* get_character_type_action_display_name(
const char* character_type,
const char* action_name );
2373 float get_character_type_action_speed(
const char* character_type,
const char* action_name );
2385 float get_character_type_action_duration(
const char* character_type,
const char* action_name );
2397 float get_character_type_action_distance(
const char* character_type,
const char* action_name );
2409 int get_character_type_action_displacement(
const char* character_type,
const char* action_name,
2410 float* x,
float* y,
float* z );
2428 bool get_character_type_transition_info(
const char* character_type,
const char* from_action_name,
2441 diguyMotionDirection get_character_type_action_direction(
const char* character_type,
const char* action_name );
2453 float get_character_type_action_facing_angle_in(
const char* character_type,
const char* action_name );
2465 float get_character_type_action_facing_angle_out(
const char* character_type,
const char* action_name );
2477 int get_character_type_num_gestures(
const char* character_type );
2490 const char* get_character_type_gesture_at_index(
const char* character_type,
int index );
2498 diguyGestureMetadata* get_character_type_gesture_meta_data_at_index(
const char* character_type,
int index );
2538 const char* character_type,
2539 const char* appearance = NULL,
2540 const char* head_appearance = NULL,
2541 const char* hand_item = NULL);
2570 const char* character_type,
2571 const char* appearance = NULL);
2660 diguyCharacter* retrieve_character_from_recycle_bin(
const char* name,
2661 const char* character_type,
2662 const char* appearance,
2663 int make_character_temporary = 0);
2670 int get_num_characters();
2748 int get_num_path_shapes();
2880 diguyWaypoint* create_waypoint(
float x = 0.0f,
float y = 0.0f,
float z = 0.0f,
2881 float yaw = 0.0f,
float roll = 0.0f,
float pitch = 0.0f,
2962 const char* field1_string,
const char* field1_value,
const char* field1_alternate_value,
2963 const char* field2_string = NULL,
const char* field2_value = NULL,
const char* field2_alternate_value = NULL,
2964 const char* field3_string = NULL,
const char* field3_value = NULL,
const char* field3_alternate_value = NULL,
2965 const char* field4_string = NULL,
const char* field4_value = NULL,
const char* field4_alternate_value = NULL,
2966 const char* field5_string = NULL,
const char* field5_value = NULL,
const char* field5_alternate_value = NULL,
2967 const char* field6_string = NULL,
const char* field6_value = NULL,
const char* field6_alternate_value = NULL,
2968 const char* field7_string = NULL,
const char* field7_value = NULL,
const char* field7_alternate_value = NULL,
2969 const char* field8_string = NULL,
const char* field8_value = NULL,
const char* field8_alternate_value = NULL);
3012 int get_num_character_type_map_entries();
3035 int get_num_type_map_character_classes();
3043 const char* get_type_map_character_class_at_index(
int index);
3060 int get_num_type_map_categories(
const char* character_class);
3068 const char* get_type_map_category_at_index(
const char* character_class,
3086 int get_num_type_map_subcategories(
const char* character_class,
3087 const char* category);
3095 const char* get_type_map_subcategory_at_index(
const char* character_class,
3096 const char* category,
3115 int get_num_signals();
3180 void reset_signals();
3193 int signal_palette_hide_all(
const char* filter = NULL);
3205 int signal_palette_show_all(
const char* filter = NULL);
3227 int get_num_sounds();
3286 const char* sound_filename = NULL);
3332 int stop_all_sounds(
float rampdown_time = 0.0f);
3352 int play_3d_sound(
const char* name,
3353 float x,
float y,
float z,
3373 int get_num_groups();
3462 int get_num_sensor_regions();
3498 int get_num_scene_objects();
3534 void set_scene_objects_enabled(
int scene_objects_enabled);
3542 int get_scene_objects_enabled();
3560 const char* filename);
3621 bool create_new_secondary_view();
3628 int get_num_secondary_views();
3640 diguyView* get_secondary_view_at_index(
int index);
3707 void set_scenario_camera_affected_by_script_events(
int flag);
3715 int get_scenario_camera_affected_by_script_events();
3733 void set_scenario_camera_affected_by_script_events_when_iguy_active(
int flag);
3741 int get_scenario_camera_affected_by_script_events_when_iguy_active();
3748 int get_num_camera_settings();
3796 int load_camera_settings(
const char* settings_name,
int update_current_camera = 1);
3887 void load_current_fog(
const char* name);
3894 int get_num_fog_settings();
3937 int load_fog_settings(
const char* settings_name);
3985 int get_num_light_settings();
4029 int load_light_settings(
const char* settings_name,
int light_num = 0);
4036 void set_use_override_ambient_material(
int enabled);
4039 int get_use_override_ambient_material();
4042 void set_global_ambient_material(
float value);
4045 float get_global_ambient_material();
4062 int get_num_info_popups();
4105 int set_info_popup_default_encoding(
const char* info_popup_default_encoding);
4118 const char* get_info_popup_default_encoding();
4136 int get_num_variables();
4212 int get_num_face_expressions();
4257 const char* target_actor =
"exface");
4290 int get_num_chain_settings();
4474 CALLBACK_ID_CREATE = 1,
4475 CALLBACK_ID_DESTROY,
4477 CALLBACK_ID_WAIT_CURSOR_SHOW,
4478 CALLBACK_ID_WAIT_CURSOR_HIDE,
4481 CALLBACK_ID_LOAD_SCENARIO_FILE,
4482 CALLBACK_ID_SAVE_SCENARIO_FILE,
4483 CALLBACK_ID_SCENE_OBJECT_IMPACT,
4484 CALLBACK_ID_LEFT_CLICK_SCENE,
4485 CALLBACK_ID_RIGHT_CLICK_SCENE,
4486 CALLBACK_ID_TIMED_EVENT,
4487 CALLBACK_ID_MANUALLY_INVOKED,
4488 CALLBACK_ID_POST_DRAW,
4489 CALLBACK_ID_PLAYBACK_MODE_CHANGED,
4490 CALLBACK_ID_INPUT_MODE_CHANGED,
4491 CALLBACK_ID_RENDER_MODE_CHANGED,
4492 CALLBACK_ID_PRE_REINITIALIZE,
4493 CALLBACK_ID_POST_REINITIALIZE,
4494 CALLBACK_ID_POST_LOAD_CHECKPOINT
4497 #ifdef CPLUSPLUS_ONLY
4525 int add_callback(
int callback_id,
4527 void* callback_params = 0,
4528 void* callback_user_data = 0,
4529 int remove_on_scenario_load = 1);
4551 int remove_callback(
int callback_id,
4574 int remove_callback_with_user_data(
int callback_id,
4575 void* callback_user_data);
4588 int add_default_character_callback(
int callback_id,
4590 void* callback_params,
4591 void* callback_user_data,
4592 int add_to_existing_objects_flag = 0,
4593 int remove_on_scenario_load = 1);
4612 int remove_default_character_callback(
int callback_id,
4626 int remove_default_character_callback_with_user_data(
int callback_id,
4627 void* callback_user_data);
4641 int add_default_sensor_region_callback(
int callback_id,
4643 void* callback_params,
4644 void* callback_user_data,
4645 int add_to_existing_objects_flag = 0,
4646 int remove_on_scenario_load = 1);
4665 int remove_default_sensor_region_callback(
int callback_id,
4684 int remove_default_sensor_region_callback_with_user_data(
int callback_id,
4685 void* callback_user_data);
4697 int add_default_signal_callback(
int callback_id,
4699 void* callback_params,
4700 void* callback_user_data,
4701 int add_to_existing_objects_flag = 0,
4702 int remove_on_scenario_load = 1);
4721 int remove_default_signal_callback(
int callback_id,
4740 int remove_default_signal_callback_with_user_data(
int callback_id,
4741 void* callback_user_data);
4753 int add_default_variable_callback(
int callback_id,
4755 void* callback_params,
4756 void* callback_user_data,
4757 int add_to_existing_objects_flag = 0,
4758 int remove_on_scenario_load = 1);
4777 int remove_default_variable_callback(
int callback_id,
4796 int remove_default_variable_callback_with_user_data(
int callback_id,
4797 void* callback_user_data);
4814 int add_default_view_callback(
int callback_id,
4816 void* callback_params,
4817 void* callback_user_data,
4818 int add_to_existing_objects_flag = 1,
4819 int remove_on_scenario_load = 1);
4838 int remove_default_view_callback(
int callback_id,
4857 int remove_default_view_callback_with_user_data(
int callback_id,
4858 void* callback_user_data);
4870 int add_default_camera_callback(
int callback_id,
4872 void* callback_params,
4873 void* callback_user_data,
4874 int add_to_existing_objects_flag = 0,
4875 int remove_on_scenario_load = 1);
4894 int remove_default_camera_callback(
int callback_id,
4913 int remove_default_camera_callback_with_user_data(
int callback_id,
4914 void* callback_user_data);
4926 int add_default_fog_callback(
int callback_id,
4928 void* callback_params,
4929 void* callback_user_data,
4930 int add_to_existing_objects_flag = 0,
4931 int remove_on_scenario_load = 1);
4950 int remove_default_fog_callback(
int callback_id,
4969 int remove_default_fog_callback_with_user_data(
int callback_id,
4970 void* callback_user_data);
4982 int add_default_light_callback(
int callback_id,
4984 void* callback_params,
4985 void* callback_user_data,
4986 int add_to_existing_objects_flag = 0,
4987 int remove_on_scenario_load = 1);
5006 int remove_default_light_callback(
int callback_id,
5025 int remove_default_light_callback_with_user_data(
int callback_id,
5026 void* callback_user_data);
5040 void manually_invoke_callbacks_now(
int callback_id);
5075 int add_callback_script(
int callback_id,
5076 const char* callback_script,
5077 const char* callback_script_type = NULL,
5078 int remove_on_scenario_load = 1);
5112 int remove_callback_script(
int callback_id,
5113 const char* callback_script,
5114 const char* callback_script_type = NULL);
5128 int add_default_character_callback_script(
int callback_id,
5129 const char* callback_script,
5130 const char* callback_script_type = NULL,
5131 int add_to_existing_objects_flag = 0,
5132 int remove_on_scenario_load = 1);
5145 int remove_default_character_callback_script(
int callback_id,
5146 const char* callback_script,
5147 const char* callback_script_type = NULL);
5161 int add_default_sensor_region_callback_script(
int callback_id,
5162 const char* callback_script,
5163 const char* callback_script_type = NULL,
5164 int add_to_existing_objects_flag = 0,
5165 int remove_on_scenario_load = 1);
5178 int remove_default_sensor_region_callback_script(
int callback_id,
5179 const char* callback_script,
5180 const char* callback_script_type = NULL);
5194 int add_default_signal_callback_script(
int callback_id,
5195 const char* callback_script,
5196 const char* callback_script_type = NULL,
5197 int add_to_existing_objects_flag = 0,
5198 int remove_on_scenario_load = 1);
5211 int remove_default_signal_callback_script(
int callback_id,
5212 const char* callback_script,
5213 const char* callback_script_type = NULL);
5227 int add_default_variable_callback_script(
int callback_id,
5228 const char* callback_script,
5229 const char* callback_script_type = NULL,
5230 int add_to_existing_objects_flag = 0,
5231 int remove_on_scenario_load = 1);
5244 int remove_default_variable_callback_script(
int callback_id,
5245 const char* callback_script,
5246 const char* callback_script_type = NULL);
5260 int add_default_view_callback_script(
int callback_id,
5261 const char* callback_script,
5262 const char* callback_script_type = NULL,
5263 int add_to_existing_objects_flag = 0,
5264 int remove_on_scenario_load = 1);
5277 int remove_default_view_callback_script(
int callback_id,
5278 const char* callback_script,
5279 const char* callback_script_type = NULL);
5293 int add_default_camera_callback_script(
int callback_id,
5294 const char* callback_script,
5295 const char* callback_script_type = NULL,
5296 int add_to_existing_objects_flag = 0,
5297 int remove_on_scenario_load = 1);
5310 int remove_default_camera_callback_script(
int callback_id,
5311 const char* callback_script,
5312 const char* callback_script_type = NULL);
5326 int add_default_fog_callback_script(
int callback_id,
5327 const char* callback_script,
5328 const char* callback_script_type = NULL,
5329 int add_to_existing_objects_flag = 0,
5330 int remove_on_scenario_load = 1);
5343 int remove_default_fog_callback_script(
int callback_id,
5344 const char* callback_script,
5345 const char* callback_script_type = NULL);
5359 int add_default_light_callback_script(
int callback_id,
5360 const char* callback_script,
5361 const char* callback_script_type = NULL,
5362 int add_to_existing_objects_flag = 0,
5363 int remove_on_scenario_load = 1);
5376 int remove_default_light_callback_script(
int callback_id,
5377 const char* callback_script,
5378 const char* callback_script_type = NULL);
5425 int map_event_handler_to_callback_id(
int callback_id,
5426 const char* handler_name);
5445 int unmap_event_handler_from_callback_id(
int callback_id,
5446 const char* handler_name,
5447 int unmap_all_matches = 0);
5486 #ifdef CPLUSPLUS_ONLY
5515 int register_character_event_handler(
const char* handler_name,
5517 void* callback_user_data = 0);
5556 int register_character_event_handler_from_library(
const char* handler_name,
5557 const char* library_name,
5558 const char* function_name,
5559 void* callback_user_data = 0);
5583 int register_character_event_handler_script(
const char* handler_name,
5584 const char* handler_script,
5585 const char* handler_script_type = 0);
5597 int has_registered_character_event_handler(
const char* handler_name);
5614 int unregister_character_event_handler(
const char* handler_name);
5616 #ifdef CPLUSPLUS_ONLY
5629 int register_signal_event_handler(
const char* handler_name,
5631 void* callback_user_data = 0);
5642 int register_signal_event_handler_from_library(
const char* handler_name,
5643 const char* library_name,
5644 const char* function_name,
5645 void* callback_user_data = 0);
5654 int register_signal_event_handler_script(
const char* handler_name,
5655 const char* handler_script,
5656 const char* handler_script_type = 0);
5665 int has_registered_signal_event_handler(
const char* handler_name);
5674 int unregister_signal_event_handler(
const char* handler_name);
5676 #ifdef CPLUSPLUS_ONLY
5689 int register_sensor_region_event_handler(
const char* handler_name,
5691 void* callback_user_data = 0);
5702 int register_sensor_region_event_handler_from_library(
const char* handler_name,
5703 const char* library_name,
5704 const char* function_name,
5705 void* callback_user_data = 0);
5714 int register_sensor_region_event_handler_script(
const char* handler_name,
5715 const char* handler_script,
5716 const char* handler_script_type = 0);
5725 int has_registered_sensor_region_event_handler(
const char* handler_name);
5734 int unregister_sensor_region_event_handler(
const char* handler_name);
5736 #ifdef CPLUSPLUS_ONLY
5749 int register_variable_event_handler(
const char* handler_name,
5751 void* callback_user_data = 0);
5762 int register_variable_event_handler_from_library(
const char* handler_name,
5763 const char* library_name,
5764 const char* function_name,
5765 void* callback_user_data = 0);
5774 int register_variable_event_handler_script(
const char* handler_name,
5775 const char* handler_script,
5776 const char* handler_script_type = 0);
5785 int has_registered_variable_event_handler(
const char* handler_name);
5794 int unregister_variable_event_handler(
const char* handler_name);
5843 int save_review_data(
const char* filename);
5851 int get_loaded_from_review_data();
5942 int get_replaying_history();
5961 void set_history_max_sound_instances(
int num_sound_instances);
6003 void set_automatic_graphics_lod_switching(
int enable_graphics_lod_switching);
6006 int get_automatic_graphics_lod_switching();
6010 int set_character_culling_distance(
float dist);
6013 float get_character_culling_distance();
6018 void set_cull_bounds_scale_factor(
float size);
6021 float get_cull_bounds_scale_factor();
6026 int set_vehicle_culling_distance(
float dist);
6029 float get_vehicle_culling_distance();
6033 int set_prop_culling_distance(
float dist);
6035 float get_prop_culling_distance();
6044 void set_instancing_enabled(
int val);
6047 int get_instancing_enabled()
const;
6054 void set_instancing_min_lod(
int val);
6057 int get_instancing_min_lod()
const;
6060 void set_visualize_instance_groups(
int val);
6063 int get_visualize_instance_groups()
const;
6076 void set_instancing_tbo_patching_enabled(
int enable_patching);
6077 int get_instancing_tbo_patching_enabled()
const;
6082 void set_instancing_position_callback_enabled(
int use_user_position_matrices);
6083 int get_instancing_position_callback_enabled()
const;
6091 void set_num_extra_per_instance_data_floats(
int number);
6092 int get_num_extra_per_instance_data_floats()
const;
6095 void build_instance_groups();
6099 void update_instancing_data();
6102 void get_tbo_instance_data(
int & num_floats,
const float*& data);
6104 #ifdef CPLUSPLUS_ONLY
6150 void set_default_lod_ranges(
const char* character_type,
float* ranges);
6186 void set_scale_graphics_lod_ranges_from_view_settings(
int do_scale);
6194 int get_scale_graphics_lod_ranges_from_view_settings();
6229 void set_automatic_motion_lod_switching(
int enable_motion_lod_switching);
6242 int get_automatic_motion_lod_switching();
6285 int eval_script(
const char* script_text,
6286 int save_as_transient = 0,
6287 const char* script_type = NULL,
6288 const char* script_source = NULL);
6310 int eval_script_file(
const char* filename,
6311 const char* script_type = NULL);
6332 int trigger_script(
const char* script_name);
6351 void trigger_script_delayed(
const char* script_name,
float t_delay);
6372 int trigger_decision(
const char* decision_name);
6391 void trigger_decision_delayed(
const char* decision_name,
float t_delay);
6422 void push_transient_script_event(
float t,
const char* script_text,
const char* script_type);
6429 void clear_transient_script_events();
6446 int save_transient_script_events(
const char* filename);
6463 int load_transient_script_events(
const char* filename);
6475 int load_package(
const char* filename,
const char* language = NULL,
6476 int warn_if_not_found = 1 );
6487 int load_package_with_dependency(
const char* filename,
const char* depends_on_package,
6488 const char* language = NULL,
int warn_if_not_found = 1 );
6520 int get_character_type_num_postures(
const char* character_type);
6564 const char* action_name);
6591 int get_character_type_num_variants(
const char* character_type);
6635 diguyMotionVariant get_character_type_action_primary_variant(
const char* character_type,
6636 const char* action_name);
6665 int get_character_type_action_num_variants(
const char* character_type,
6666 const char* action_name);
6693 diguyMotionVariant get_character_type_action_variant_at_index(
const char* character_type,
6694 const char* action_name,
6715 int get_character_type_num_action_compatibility_names(
const char* character_type,
const char* action_name );
6734 const char* get_character_type_action_compatibility_name_at_index(
const char* character_type,
6735 const char* action_name,
int index );
6759 int get_character_type_num_directions(
const char* character_type);
6815 int get_num_interaction_machines();
6953 int show_notification_with_shared_interaction_machine(
const char* heading,
6955 int pause_scenario = 0,
6956 const char* input_text = NULL,
7044 int get_num_labels();
7062 void reset_labels();
7101 int draw_character_labels();
7104 void update_character_labels();
7170 int get_num_panels();
7207 int get_num_minds();
7214 const char* get_mind_name_at_index(
int index);
7282 int make_companion_of_all = 1);
7308 int also_destroy_crowd_members = 0,
7309 int also_destroy_path_shapes = 0,
7310 int delay_destruction = 0);
7317 int get_num_crowds();
7339 const char* get_unique_crowd_name(
const char* base_name);
7354 diguyCrowd* find_crowd(
const char* crowd_name);
7373 diguyCrowd* find_or_create_crowd(
const char* crowd_name,
7374 int make_companion_of_all = 1);
7386 void set_create_network_crowds(
int do_create);
7394 int get_create_network_crowds();
7448 int get_num_crowd_profiles();
7512 int force_octtree_generation();
7522 int use_bounding_box_only = 0);
7539 int preload_octtree(
const char* character_type,
const char* appearance);
7551 int check_visibility(
float x1,
float y1,
float z1,
7552 float x2,
float y2,
float z2);
7565 #ifdef CPLUSPLUS_ONLY
7618 void set_altitude_max_climb(
float altitude_max_climb);
7619 float get_altitude_max_climb();
7623 void set_altitude_max_drop(
float altitude_max_drop);
7624 float get_altitude_max_drop();
7670 int trigger_detonation(
const char* munition_name,
7671 float x,
float y,
float z,
7672 const char* attacker_name = NULL,
7673 float radius_override = -1.0f,
7674 int broadcast_on_network = 1,
7675 int ground_clamp_impact = 1 );
7750 int use_octtree = 0);
7790 int use_octtree = 0);
7825 int intersect_static_geometry(
7826 float origin_x,
float origin_y,
float origin_z,
7827 float dir_x,
float dir_y,
float dir_z,
7828 float max_distance_to_test,
7829 float* intersection_x,
float* intersection_y,
float* intersection_z,
7830 float* normal_x = NULL,
float* normal_y = NULL,
float* normal_z = NULL,
7831 int use_callback = 1);
7866 float ground_clamp(
float x,
float y,
float z,
7868 int use_altitude_function = 1,
7869 int use_octtree = 0);
7872 #ifdef CPLUSPLUS_ONLY
7959 diguyImpact* map_color_to_impact(
char r,
char g,
char b);
7989 void set_last_impact_been_processed();
7999 void set_last_env_impact_info(
const diguyImpact& impact);
8013 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
8016 #ifdef CPLUSPLUS_ONLY
8110 float origin_x,
float origin_y,
float origin_z,
8111 float dir_x,
float dir_y,
float dir_z,
8112 float max_distance_to_test,
8113 int use_callback = 1);
8140 diguyRegion* find_or_create_region(
const char* name);
8189 int get_num_regions();
8249 int find_navigation_path(
float x1,
float y1,
float z1,
8250 float x2,
float y2,
float z2,
8251 const char* via_region,
8253 float cost_bias_for_preferred_regions = 0.25f,
8255 float cost_bias_for_neutral_regions = 1.1f,
8257 float cost_bias_for_repulsive_regions = 100.0f);
8272 void set_max_distance_planning_multiplier(
float mul);
8280 float get_max_distance_planning_multiplier();
8293 float get_time_spent_path_planning_this_frame();
8306 void set_multithreaded_path_planning_enabled(
int value);
8313 int get_multithreaded_path_planning_enabled();
8331 int get_num_formations();
8440 void set_draw_authoring_visuals(
int visible);
8442 int get_draw_authoring_visuals();
8480 void set_hide_author_selection_handles_during_play(
int visible);
8481 int get_hide_author_selection_handles_during_play();
8499 int get_weapon_flash_enabled();
8506 int set_weapon_flash_enabled(
int enabled);
8513 int get_weapon_fire_effects_enabled();
8520 int set_weapon_fire_effects_enabled(
int enabled);
8527 int get_num_active_fire_effects();
8536 int get_weapon_fire_effect_data(
int index,
float * radius,
8537 double * position_x,
double * position_y,
double * position_z,
8538 float * color_r,
float * color_g,
float * color_b,
8540 float * falloff_rsq);
8543 int get_num_active_lights();
8546 int sort_active_lights();
8591 int get_current_character_index();
8602 int set_current_crowd(
diguyCrowd* current_crowd);
8630 int set_current_crowd_profile_by_name(
const char* crowd_profile_name);
8647 int set_current_region(
diguyRegion* current_region);
8667 void set_particle_module_disabled(
int disable_particle_module);
8686 int create_particle_system(
const char* description_name,
8687 float x,
float y,
float z,
8688 int record_transient_event = 1,
8689 float duration = -1.0f);
8702 int create_particle_system_with_orientation(
const char* description_name,
8703 float x,
float y,
float z,
8704 float rz,
float rx,
float ry,
8705 int record_transient_event = 1,
8706 float duration = -1.0f);
8714 int has_particle_description(
const char* description_name);
8721 void set_global_wind(
float x,
float y,
float z);
8749 const char* lua_get_object_field_as_string(
const char* lua_object,
8750 const char* field_name);
8774 const char* lua_evaluate_object_function(
const char* lua_object,
8775 const char* function_name,
8776 const char* argument = NULL,
8777 int has_return_string = 0);
8784 const char* lua_evaluate_object_function_2a(
const char* lua_object,
8785 const char* function_name,
8786 const char* argument,
8787 const char* argument2,
8788 int has_return_string = 0);
8795 const char* lua_evaluate_object_function_3a(
const char* lua_object,
8796 const char* function_name,
8797 const char* argument,
8798 const char* argument2,
8799 const char* argument3,
8800 int has_return_string = 0);
8807 const char* lua_evaluate_object_function_4a(
const char* lua_object,
8808 const char* function_name,
8809 const char* argument,
8810 const char* argument2,
8811 const char* argument3,
8812 const char* argument4,
8813 int has_return_string = 0);
8823 int lua_send_message_to_object(
const char* lua_object,
8825 const char* message_type,
8826 const char* message,
8827 const char* message_params = NULL);
8829 #ifdef CPLUSPLUS_ONLY
8853 void* get_lua_state();
8899 int push_qt_pointer_to_lua(
void* lua_state,
8900 const char* class_name,
8947 const char* lua_evaluate_object_function_4a_flex(
const char* lua_object,
8948 const char* function_name,
8949 const char* arg1_type,
void* argument1,
8950 const char* arg2_type,
void* argument2,
8951 const char* arg3_type,
void* argument3,
8952 const char* arg4_type,
void* argument4,
8953 int has_return_string = 0);
8965 const char* lua_evaluate_global_function_4a_flex(
const char* function_name,
8966 const char* arg_type,
void* argument,
8967 const char* arg_type2,
void* argument2,
8968 const char* arg_type3,
void* argument3,
8969 const char* arg_type4,
void* argument4,
8970 int has_return_string = 0);
8982 int lua_log_printf(
int notify_level,
const char*
string);
8990 const char* dump_package_info(
const char* package_name);
9025 const char* message_type,
9026 const char* message,
9027 const char* message_params = NULL);
9057 const char* message_type,
9058 const char* message,
9059 const char* message_params = NULL);
9087 const char* group_name,
9089 const char* message_type,
9090 const char* message,
9091 const char* message_params = NULL);
9111 int get_eval_decisions_as_scripts();
9119 void set_eval_decisions_as_scripts(
int eval_decisions_as_scripts);
9143 void wait_cursor_push();
9149 void wait_cursor_pop();
9155 void set_character_sorting_enabled(
int enabled);
9156 int get_character_sorting_enabled();
9158 #ifdef CPLUSPLUS_ONLY
9175 void set_graphics_api_node_ptr(
void* node_ptr);
9186 void* get_graphics_api_node_ptr();
9196 void set_draw_character_shadow_disks(
int draw_character_shadow_disks);
9203 int get_draw_character_shadow_disks();
9210 int get_shadow_map_size();
9218 int set_shadow_map_size(
int shadow_size);
9226 void set_default_character_scene_graph_mask(
unsigned long mask);
9227 unsigned long get_default_character_scene_graph_mask();
9235 void set_default_scene_object_scene_graph_mask(
unsigned long mask);
9236 unsigned long get_default_scene_object_scene_graph_mask();
9243 void set_internal_int(
int var,
int val);
9244 void set_internal_float(
int var,
float val);
9252 int set_num_active_point_lights(
int active_lights);
9261 int get_num_active_point_lights();
9287 int set_world_bounds(
float x_min,
float y_min,
float z_min,
9288 float x_max,
float y_max,
float z_max);
9304 int get_world_bounds(
float* x_min,
float* y_min,
float* z_min,
9305 float* x_max,
float* y_max,
float* z_max);
9324 void set_checkpoint_frequency(
float freq);
9330 float get_checkpoint_frequency();
9336 void set_checkpointing_enabled(
int enable_checkpointing);
9342 int get_checkpointing_enabled();
9376 void set_initial_render_mode(
const char* render_mode);
9384 const char* get_initial_render_mode();
9392 void set_current_render_mode(
const char* render_mode);
9405 const char* derive_render_mode_from_light_settings(
int set_current_to_derived = 1);
9408 const char* get_current_render_mode();
9423 void set_default_character_shader(
const char* render_mode,
9424 const char* shader_name,
9425 int update_existing_characters = 1);
9428 const char* get_default_character_shader(
const char* render_mode);
9443 void set_default_scene_object_shader(
const char* render_mode,
9444 const char* shader_name,
9445 int update_existing_scene_objects = 1);
9448 const char* get_default_scene_object_shader(
const char* render_mode);
9463 void set_default_particle_system_shader(
const char* render_mode,
9464 const char* shader_name,
9465 int update_existing_particle_systems = 1);
9468 const char* get_default_particle_system_shader(
const char* render_mode);
9480 int facefx_mount_animset(
const char* actor_name,
const char* file_name);
9490 int set_vehicle_smoothing_enabled(
int enable_smoothing);
9491 int get_vehicle_smoothing_enabled();
9499 int set_realtime_ik_enabled(
int val );
9500 int get_realtime_ik_enabled();
9502 int set_draw_ik_visuals(
int val );
9503 int get_draw_ik_visuals();
9505 int set_draw_skeletons(
int val );
9506 int get_draw_skeletons();
9508 float get_last_update_time()
9510 if ( m_last_update_time == -9999.0f )
9514 return m_last_update_time;
9517 void set_disable_profiler();
9520 const char* get_lua_field_as_string(
const char* lua_object,
const char* field_name,
9521 int warn_if_no_field = 1);
9523 float get_lua_field_as_float(
const char* lua_object,
const char* field_name,
9524 int warn_if_no_field = 1,
9525 int* found_field = NULL);
9527 void update_particle_preview(
float time);
9548 int get_character_type_num_head_appearances(
const char* character_type );
9551 const char* get_character_type_head_appearance_at_index(
const char* character_type,
int index );
9553 #ifdef CPLUSPLUS_ONLY
9560 static int add_default_callback(
int callback_id,
9562 void* callback_params = 0,
9563 void* callback_user_data = 0);
9570 static int remove_default_callback(
int callback_id,
9582 static int remove_default_callback_with_user_data(
int callback_id,
9583 void* callback_user_data);
9591 static int add_default_callback_script(
int callback_id,
9592 const char* callback_script,
9593 const char* callback_script_type);
9601 static int remove_default_callback_script(
int callback_id,
9602 const char* callback_script,
9603 const char* callback_script_type);
9612 const char* get_character_type_class(
const char* character_type);
9619 int merge_asset(
const char*
string);
9627 void print_to_log(
int notify_level,
const char*
string);
9630 #ifdef CPLUSPLUS_ONLY
9635 diguyCharacter* create_pending_reflected_character(
const char* name,
9636 const char* character_type,
9637 const char* appearance = NULL);
9639 int set_network_translation(
float x,
float y,
float z);
9640 int get_network_translation(
float* x,
float* y,
float* z);
9647 void set_project_filename(
const char* project_filename);
9655 const char* get_project_filename();
9662 bdiScenario* get_scripted_object();
9682 bdiScenario* m_scenario;
9683 float m_last_update_time;
9685 friend class bdiScenario;
int diguyScenarioFindImpactOnLineFunction(diguyImpact *impact, float from_x, float from_y, float from_z, float to_x, float to_y, float to_z, diguyScenario *s)
Definition: diguy_typedefs.h:144
The diguyViewLabel allows on screen 2D and 3D labels in diguy scenario and the opengl renderer...
Definition: diguyViewLabel.h:52
diguyCharacterTypeMapField
This enumeration allows type map fields to be queried using a numerical value rather than a string na...
Definition: diguy_constants.h:123
A two-and-a-half-dimensional surface that represents either a navigation mesh or an area that's been ...
Definition: diguyRegion.h:50
The diguyViewCameraSettings class holds camera settings data that can be loaded into a diguyViewCamer...
Definition: diguyViewCameraSettings.h:43
#define DIGUY_DEFAULT_FLOAT
This value is a magic number that, when passed to certain functions, means that the function should u...
Definition: diguy_constants.h:62
diguyCallbackReturn diguyScenarioCallback(diguyScenario *scenario, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:157
diguyCallbackReturn diguyViewFogCallback(diguyViewFog *fog, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:217
The diguyViewLightSettings class holds camera settings data that can be loaded into a diguyViewLight ...
Definition: diguyViewLightSettings.h:45
diguyCallbackReturn diguyCharacterCallback(diguyCharacter *character, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:51
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:329
This class represents the patch identifier (country:service:id) for a patch.
Definition: diguyPatchIdentifier.h:26
Represents a scriptable api wrapping a diguy path shape, a curve defined by with a number of waypoint...
Definition: diguyPathShape.h:36
The diguyViewLight provides a interface around a scene light useful in diguy scenario and the opengl ...
Definition: diguyViewLight.h:60
The diguyViewFogSettings class holds camera settings data that can be loaded into a diguyViewFog usin...
Definition: diguyViewFogSettings.h:43
Experimental class for diguyIntersectionResult exp_intersect_geometry.
Definition: diguyImpact.h:621
diguyMotionDirection
Definition: diguyMotionDirection.h:26
chain settings.. Rarely used
Definition: diguyChainSettings.h:32
int diguyScenarioIntersectionFunction(diguyScenario *scenario, float origin_x, float origin_y, float origin_z, float dir_x, float dir_y, float dir_z, float max_distance_to_test, float *intersection_x, float *intersection_y, float *intersection_z, float *normal_x, float *normal_y, float *normal_z)
Definition: diguy_typedefs.h:80
A class that represents a bullet impact in the world, often used by AIs to make reaction decisions...
Definition: diguyImpact.h:39
Definition: diguyLoadManager.h:41
The class that represents the makeup and base params of a diguyCrowd.
Definition: diguyCrowdProfile.h:37
Interface to base class of event beads, not often used.
Definition: diguyCharacterPathEvent.h:39
float diguyScenarioAltitudeFunction(diguyScenario *scenario, float x, float y, float old_z, int *valid)
Definition: diguy_typedefs.h:132
A view is a graphics window wherein the scenario and its characters are animated. Note that views hav...
Definition: diguyView.h:48
Definition: diguy_constants.h:740
diguyScenarioMergeInitialSettings
This enumeration tells DI-Guy what values to use as defaults when the diguyScenario::create_merge_set...
Definition: diguy_constants.h:738
This class holds the type map field values for a specific type mapping.
Definition: diguyCharacterTypeMapFieldValues.h:35
diguyCallbackReturn diguySensorRegionCallback(diguySensorRegion *sensor_region, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:187
The character type map provides extra information about DI-Guy character types and appearances...
Definition: diguyCharacterTypeMap.h:221
float diguyAltitudeFunction(diguyCharacter *character, float x, float y, float old_z, int *valid)
Definition: diguy_typedefs.h:57
This class is a simple structure for transmitting diguy lights down to the uniform buffer system this...
Definition: diguyViewLight.h:34
diguyTextureUniformPatchLocations
This enumeration lists various types of texture atlases.
Definition: diguy_constants.h:184
int diguyCharacterLOSFunction(diguyCharacter *character, diguyCharacter *target_character, int visibility_type)
Definition: diguy_typedefs.h:106
diguyCallbackReturn diguyViewLightCallback(diguyViewLight *light, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:181
Represents the scenario currently being portrayed.
Definition: diguyScenario.h:99
Contains the diguyMotionVariant enumeration and utility function declarations.
A group of DI-Guy characters, useful for organizing your scenarios.
Definition: diguyCharacterGroup.h:38
The class that represents a DI-Guy Entity in the world.
Definition: diguyCharacter.h:81
Represents a scriptable api wrapping a 3D point on a path.
Definition: diguyWaypoint.h:35
Definition: diguySensorRegion.h:41
int diguyPointLOSFunction(diguyCharacter *character, float x, float y, float z)
Definition: diguy_typedefs.h:111
diguyCallbackReturn diguyViewCallback(diguyView *view, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:211
Action transition information struct.
Definition: diguyTransitionInfo.h:11
Definition: diguy_constants.h:125
This class is represents a sound file on disk.
Definition: diguySound.h:39
An interface class that allows diguy to trigger an immediate mode rendering of a diguy particle syste...
Definition: diguyParticleSystem.h:143
int diguyFeelerFunction(diguyCharacter *character, float origin_x, float origin_y, float origin_z, float dir_x, float dir_y, float dir_z, float max_distance_to_test, float *intersection_x, float *intersection_y, float *intersection_z, float *normal_x, float *normal_y, float *normal_z)
Definition: diguy_typedefs.h:64
The class that represents a camera in the world.
Definition: diguyViewCamera.h:260
Contains the diguyMotionPosture enumeration and utility function declarations.
Definition: diguySignal.h:42
Definition: diguy_constants.h:1569
diguyCallbackReturn diguySignalCallback(diguySignal *signal, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:193
Describes basic fog model that is used by DI-Guy Scenario and our default ogl renderer Most users wil...
Definition: diguyViewFog.h:42
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:94
diguyMotionVariant
Definition: diguyMotionVariant.h:28
A scene object is a static (that is, non-moving) object in the scenario. Scene objects are the basic ...
Definition: diguySceneObject.h:43
diguyVisibleFlag
This enumeration lists the visibility options for various objects in the DI-Guy Scenario environment...
Definition: diguy_constants.h:574
Definition: diguyInteractionMachine.h:323
The diguyVariable class allows you to add per character named parameters. This can be handy for track...
Definition: diguyVariable.h:46
A class that gives access to IGuy's parameters.
Definition: diguyIGuyController.h:33
diguyCharacterAppearanceTypes
DI-Guy character appearance query API, this is for diguyCharacter::get_num_appearances_of_type() ...
Definition: diguy_constants.h:169
diguyScenarioPlaybackMode
This enumeration identifies which playback mode time should follow.
Definition: diguy_constants.h:551
A class representing a facial pose.
Definition: diguyCharacterFaceExpression.h:33
Definition: diguyScenarioMergeSettings.h:37
diguyInteractionMachine objects give DI-Guy Scenario users a way of providing interactive, UI-driven input to a scenario that can change the way a scenario progresses.
Definition: diguyInteractionMachine.h:81
The class that represents a DI-Guy Crowd, DI-Guy AI agents can be given orders at an individual level...
Definition: diguyCrowd.h:48
diguyMotionPosture
Definition: diguyMotionPosture.h:28
diguyDatetimeAdvanceMethod
This enumeration lists the methods in which the datetime of a scenario can advance.
Definition: diguy_constants.h:1663
diguyCallbackReturn diguyVariableCallback(diguyVariable *variable, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:199
diguyCallbackReturn diguyViewCameraCallback(diguyViewCamera *camera, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:205