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);
1654 const char*get_hand_item_class(
const char*char_type_name,
const char*appearance_name = NULL);
1669 int get_num_hand_items_in_class(
const char*hand_item_class);
1686 const char*get_hand_item_from_class(
const char*hand_item_class,
int index);
1717 int preload_character_type(
const char* character_type);
1736 int preload_appearance(
const char* appearance);
1758 int async_load_appearance(
const char* appearance,
const char* character_type =
"soldier_17",
const bool ** load_status = NULL);
1759 int async_load_hand_item(
const char* appearance_name,
const bool** load_status = NULL);
1780 int preload_gesture(
const char* character_type,
const char* gesture_name);
1806 void set_character_culling_enabled(
int character_culling);
1820 int get_character_culling_enabled();
1830 void set_scene_object_culling_enabled(
int object_culling);
1844 int get_scene_object_culling_enabled();
1854 void set_scene_object_sub_culling_enabled(
int object_culling);
1868 int get_scene_object_sub_culling_enabled();
1879 void set_character_visualize_bounds_enabled(
int visualize_bounds);
1894 int get_character_visualize_bounds_enabled();
1905 void set_scene_object_visualize_bounds_enabled(
int val);
1920 int get_scene_object_visualize_bounds_enabled();
1987 int get_num_character_types();
1998 const char* get_character_type_at_index(
int index);
2011 const char* get_character_type_abbreviation(
const char* character_type);
2040 const char* get_character_type_deprecated_at_version(
const char* character_type);
2071 const char* get_character_type_deprecated_suggested_alternatives(
const char* character_type);
2096 int get_character_type_quality_bias(
const char* character_type);
2129 const char* get_character_type_default_appearance(
const char* character_type);
2141 const char* get_character_type_default_skinned_appearance(
const char* character_type);
2153 int get_character_type_num_appearances(
const char* character_type);
2167 const char* get_character_type_appearance_at_index(
const char* character_type,
2190 int get_appearance_quality_bias(
const char* appearance);
2204 int get_num_appearances_of_appearance_type(
const char* character_type,
const char* base_appearance,
2220 const char* get_appearance_name_at_index(
const char* character_type,
const char* base_appearance,
2227 int get_appearance_default_patch_index(
const char* base_appearance,
2235 const char* get_appearance_patch_name_at_index(
const char* base_appearance,
2244 int get_num_actors();
2246 const char* get_actor_name_at_index(
int index );
2249 const char* get_actor_name(
const char* base_appearance );
2252 int get_num_equipment_for_actor(
const char* actor_name );
2255 const char* get_equipment_name_for_actor(
const char* actor_name,
int index );
2258 const char* get_equipment_type_for_actor(
const char* actor_name,
int index );
2261 int get_num_equipment_for_appearance(
const char* base_appearance );
2264 const char* get_equipment_name_for_appearance(
const char* base_appearance,
int index );
2267 const char* get_equipment_type_for_appearance(
const char* base_appearance,
int index );
2278 int get_character_type_num_actions(
const char* character_type );
2290 const char* get_character_type_action_at_index(
const char* character_type,
int index );
2302 const char* get_character_type_action_display_name(
const char* character_type,
const char* action_name );
2314 float get_character_type_action_speed(
const char* character_type,
const char* action_name );
2326 float get_character_type_action_duration(
const char* character_type,
const char* action_name );
2338 float get_character_type_action_distance(
const char* character_type,
const char* action_name );
2350 int get_character_type_action_displacement(
const char* character_type,
const char* action_name,
2351 float* x,
float* y,
float* z );
2369 int get_character_type_transition_info(
const char* character_type,
const char* from_action_name,
2382 diguyMotionDirection get_character_type_action_direction(
const char* character_type,
const char* action_name );
2394 float get_character_type_action_facing_angle_in(
const char* character_type,
const char* action_name );
2406 float get_character_type_action_facing_angle_out(
const char* character_type,
const char* action_name );
2418 int get_character_type_num_gestures(
const char* character_type );
2431 const char* get_character_type_gesture_at_index(
const char* character_type,
int index );
2439 diguyGestureMetadata* get_character_type_gesture_meta_data_at_index(
const char* character_type,
int index );
2479 const char* character_type,
2480 const char* appearance = NULL,
2481 const char* head_appearance = NULL,
2482 const char* hand_item = NULL);
2511 const char* character_type,
2512 const char* appearance = NULL);
2601 diguyCharacter* retrieve_character_from_recycle_bin(
const char* name,
2602 const char* character_type,
2603 const char* appearance,
2604 int make_character_temporary = 0);
2611 int get_num_characters();
2689 int get_num_path_shapes();
2821 diguyWaypoint* create_waypoint(
float x = 0.0f,
float y = 0.0f,
float z = 0.0f,
2822 float yaw = 0.0f,
float roll = 0.0f,
float pitch = 0.0f,
2903 const char* field1_string,
const char* field1_value,
const char* field1_alternate_value,
2904 const char* field2_string = NULL,
const char* field2_value = NULL,
const char* field2_alternate_value = NULL,
2905 const char* field3_string = NULL,
const char* field3_value = NULL,
const char* field3_alternate_value = NULL,
2906 const char* field4_string = NULL,
const char* field4_value = NULL,
const char* field4_alternate_value = NULL,
2907 const char* field5_string = NULL,
const char* field5_value = NULL,
const char* field5_alternate_value = NULL,
2908 const char* field6_string = NULL,
const char* field6_value = NULL,
const char* field6_alternate_value = NULL,
2909 const char* field7_string = NULL,
const char* field7_value = NULL,
const char* field7_alternate_value = NULL,
2910 const char* field8_string = NULL,
const char* field8_value = NULL,
const char* field8_alternate_value = NULL);
2953 int get_num_character_type_map_entries();
2976 int get_num_type_map_character_classes();
2984 const char* get_type_map_character_class_at_index(
int index);
3001 int get_num_type_map_categories(
const char* character_class);
3009 const char* get_type_map_category_at_index(
const char* character_class,
3027 int get_num_type_map_subcategories(
const char* character_class,
3028 const char* category);
3036 const char* get_type_map_subcategory_at_index(
const char* character_class,
3037 const char* category,
3056 int get_num_signals();
3121 void reset_signals();
3134 int signal_palette_hide_all(
const char* filter = NULL);
3146 int signal_palette_show_all(
const char* filter = NULL);
3168 int get_num_sounds();
3227 const char* sound_filename = NULL);
3273 int stop_all_sounds(
float rampdown_time = 0.0f);
3293 int play_3d_sound(
const char* name,
3294 float x,
float y,
float z,
3314 int get_num_groups();
3403 int get_num_sensor_regions();
3439 int get_num_scene_objects();
3475 void set_scene_objects_enabled(
int scene_objects_enabled);
3483 int get_scene_objects_enabled();
3501 const char* filename);
3558 int get_num_secondary_views();
3570 diguyView* get_secondary_view_at_index(
int index);
3637 void set_scenario_camera_affected_by_script_events(
int flag);
3645 int get_scenario_camera_affected_by_script_events();
3663 void set_scenario_camera_affected_by_script_events_when_iguy_active(
int flag);
3671 int get_scenario_camera_affected_by_script_events_when_iguy_active();
3678 int get_num_camera_settings();
3726 int load_camera_settings(
const char* settings_name,
int update_current_camera = 1);
3817 void load_current_fog(
const char* name);
3824 int get_num_fog_settings();
3867 int load_fog_settings(
const char* settings_name);
3915 int get_num_light_settings();
3959 int load_light_settings(
const char* settings_name,
int light_num = 0);
3966 void set_use_override_ambient_material(
int enabled);
3969 int get_use_override_ambient_material();
3972 void set_global_ambient_material(
float value);
3975 float get_global_ambient_material();
3992 int get_num_info_popups();
4035 int set_info_popup_default_encoding(
const char* info_popup_default_encoding);
4048 const char* get_info_popup_default_encoding();
4066 int get_num_variables();
4142 int get_num_face_expressions();
4187 const char* target_actor =
"exface");
4220 int get_num_chain_settings();
4404 CALLBACK_ID_CREATE = 1,
4405 CALLBACK_ID_DESTROY,
4407 CALLBACK_ID_WAIT_CURSOR_SHOW,
4408 CALLBACK_ID_WAIT_CURSOR_HIDE,
4411 CALLBACK_ID_LOAD_SCENARIO_FILE,
4412 CALLBACK_ID_SAVE_SCENARIO_FILE,
4413 CALLBACK_ID_SCENE_OBJECT_IMPACT,
4414 CALLBACK_ID_LEFT_CLICK_SCENE,
4415 CALLBACK_ID_RIGHT_CLICK_SCENE,
4416 CALLBACK_ID_TIMED_EVENT,
4417 CALLBACK_ID_MANUALLY_INVOKED,
4418 CALLBACK_ID_POST_DRAW,
4419 CALLBACK_ID_PLAYBACK_MODE_CHANGED,
4420 CALLBACK_ID_INPUT_MODE_CHANGED,
4421 CALLBACK_ID_RENDER_MODE_CHANGED,
4422 CALLBACK_ID_PRE_REINITIALIZE,
4423 CALLBACK_ID_POST_REINITIALIZE,
4424 CALLBACK_ID_POST_LOAD_CHECKPOINT
4427 #ifdef CPLUSPLUS_ONLY
4455 int add_callback(
int callback_id,
4457 void* callback_params = 0,
4458 void* callback_user_data = 0,
4459 int remove_on_scenario_load = 1);
4481 int remove_callback(
int callback_id,
4504 int remove_callback_with_user_data(
int callback_id,
4505 void* callback_user_data);
4518 int add_default_character_callback(
int callback_id,
4520 void* callback_params,
4521 void* callback_user_data,
4522 int add_to_existing_objects_flag = 0,
4523 int remove_on_scenario_load = 1);
4542 int remove_default_character_callback(
int callback_id,
4556 int remove_default_character_callback_with_user_data(
int callback_id,
4557 void* callback_user_data);
4571 int add_default_sensor_region_callback(
int callback_id,
4573 void* callback_params,
4574 void* callback_user_data,
4575 int add_to_existing_objects_flag = 0,
4576 int remove_on_scenario_load = 1);
4595 int remove_default_sensor_region_callback(
int callback_id,
4614 int remove_default_sensor_region_callback_with_user_data(
int callback_id,
4615 void* callback_user_data);
4627 int add_default_signal_callback(
int callback_id,
4629 void* callback_params,
4630 void* callback_user_data,
4631 int add_to_existing_objects_flag = 0,
4632 int remove_on_scenario_load = 1);
4651 int remove_default_signal_callback(
int callback_id,
4670 int remove_default_signal_callback_with_user_data(
int callback_id,
4671 void* callback_user_data);
4683 int add_default_variable_callback(
int callback_id,
4685 void* callback_params,
4686 void* callback_user_data,
4687 int add_to_existing_objects_flag = 0,
4688 int remove_on_scenario_load = 1);
4707 int remove_default_variable_callback(
int callback_id,
4726 int remove_default_variable_callback_with_user_data(
int callback_id,
4727 void* callback_user_data);
4744 int add_default_view_callback(
int callback_id,
4746 void* callback_params,
4747 void* callback_user_data,
4748 int add_to_existing_objects_flag = 1,
4749 int remove_on_scenario_load = 1);
4768 int remove_default_view_callback(
int callback_id,
4787 int remove_default_view_callback_with_user_data(
int callback_id,
4788 void* callback_user_data);
4800 int add_default_camera_callback(
int callback_id,
4802 void* callback_params,
4803 void* callback_user_data,
4804 int add_to_existing_objects_flag = 0,
4805 int remove_on_scenario_load = 1);
4824 int remove_default_camera_callback(
int callback_id,
4843 int remove_default_camera_callback_with_user_data(
int callback_id,
4844 void* callback_user_data);
4856 int add_default_fog_callback(
int callback_id,
4858 void* callback_params,
4859 void* callback_user_data,
4860 int add_to_existing_objects_flag = 0,
4861 int remove_on_scenario_load = 1);
4880 int remove_default_fog_callback(
int callback_id,
4899 int remove_default_fog_callback_with_user_data(
int callback_id,
4900 void* callback_user_data);
4912 int add_default_light_callback(
int callback_id,
4914 void* callback_params,
4915 void* callback_user_data,
4916 int add_to_existing_objects_flag = 0,
4917 int remove_on_scenario_load = 1);
4936 int remove_default_light_callback(
int callback_id,
4955 int remove_default_light_callback_with_user_data(
int callback_id,
4956 void* callback_user_data);
4970 void manually_invoke_callbacks_now(
int callback_id);
5005 int add_callback_script(
int callback_id,
5006 const char* callback_script,
5007 const char* callback_script_type = NULL,
5008 int remove_on_scenario_load = 1);
5042 int remove_callback_script(
int callback_id,
5043 const char* callback_script,
5044 const char* callback_script_type = NULL);
5058 int add_default_character_callback_script(
int callback_id,
5059 const char* callback_script,
5060 const char* callback_script_type = NULL,
5061 int add_to_existing_objects_flag = 0,
5062 int remove_on_scenario_load = 1);
5075 int remove_default_character_callback_script(
int callback_id,
5076 const char* callback_script,
5077 const char* callback_script_type = NULL);
5091 int add_default_sensor_region_callback_script(
int callback_id,
5092 const char* callback_script,
5093 const char* callback_script_type = NULL,
5094 int add_to_existing_objects_flag = 0,
5095 int remove_on_scenario_load = 1);
5108 int remove_default_sensor_region_callback_script(
int callback_id,
5109 const char* callback_script,
5110 const char* callback_script_type = NULL);
5124 int add_default_signal_callback_script(
int callback_id,
5125 const char* callback_script,
5126 const char* callback_script_type = NULL,
5127 int add_to_existing_objects_flag = 0,
5128 int remove_on_scenario_load = 1);
5141 int remove_default_signal_callback_script(
int callback_id,
5142 const char* callback_script,
5143 const char* callback_script_type = NULL);
5157 int add_default_variable_callback_script(
int callback_id,
5158 const char* callback_script,
5159 const char* callback_script_type = NULL,
5160 int add_to_existing_objects_flag = 0,
5161 int remove_on_scenario_load = 1);
5174 int remove_default_variable_callback_script(
int callback_id,
5175 const char* callback_script,
5176 const char* callback_script_type = NULL);
5190 int add_default_view_callback_script(
int callback_id,
5191 const char* callback_script,
5192 const char* callback_script_type = NULL,
5193 int add_to_existing_objects_flag = 0,
5194 int remove_on_scenario_load = 1);
5207 int remove_default_view_callback_script(
int callback_id,
5208 const char* callback_script,
5209 const char* callback_script_type = NULL);
5223 int add_default_camera_callback_script(
int callback_id,
5224 const char* callback_script,
5225 const char* callback_script_type = NULL,
5226 int add_to_existing_objects_flag = 0,
5227 int remove_on_scenario_load = 1);
5240 int remove_default_camera_callback_script(
int callback_id,
5241 const char* callback_script,
5242 const char* callback_script_type = NULL);
5256 int add_default_fog_callback_script(
int callback_id,
5257 const char* callback_script,
5258 const char* callback_script_type = NULL,
5259 int add_to_existing_objects_flag = 0,
5260 int remove_on_scenario_load = 1);
5273 int remove_default_fog_callback_script(
int callback_id,
5274 const char* callback_script,
5275 const char* callback_script_type = NULL);
5289 int add_default_light_callback_script(
int callback_id,
5290 const char* callback_script,
5291 const char* callback_script_type = NULL,
5292 int add_to_existing_objects_flag = 0,
5293 int remove_on_scenario_load = 1);
5306 int remove_default_light_callback_script(
int callback_id,
5307 const char* callback_script,
5308 const char* callback_script_type = NULL);
5355 int map_event_handler_to_callback_id(
int callback_id,
5356 const char* handler_name);
5375 int unmap_event_handler_from_callback_id(
int callback_id,
5376 const char* handler_name,
5377 int unmap_all_matches = 0);
5416 #ifdef CPLUSPLUS_ONLY
5445 int register_character_event_handler(
const char* handler_name,
5447 void* callback_user_data = 0);
5486 int register_character_event_handler_from_library(
const char* handler_name,
5487 const char* library_name,
5488 const char* function_name,
5489 void* callback_user_data = 0);
5513 int register_character_event_handler_script(
const char* handler_name,
5514 const char* handler_script,
5515 const char* handler_script_type = 0);
5527 int has_registered_character_event_handler(
const char* handler_name);
5544 int unregister_character_event_handler(
const char* handler_name);
5546 #ifdef CPLUSPLUS_ONLY
5559 int register_signal_event_handler(
const char* handler_name,
5561 void* callback_user_data = 0);
5572 int register_signal_event_handler_from_library(
const char* handler_name,
5573 const char* library_name,
5574 const char* function_name,
5575 void* callback_user_data = 0);
5584 int register_signal_event_handler_script(
const char* handler_name,
5585 const char* handler_script,
5586 const char* handler_script_type = 0);
5595 int has_registered_signal_event_handler(
const char* handler_name);
5604 int unregister_signal_event_handler(
const char* handler_name);
5606 #ifdef CPLUSPLUS_ONLY
5619 int register_sensor_region_event_handler(
const char* handler_name,
5621 void* callback_user_data = 0);
5632 int register_sensor_region_event_handler_from_library(
const char* handler_name,
5633 const char* library_name,
5634 const char* function_name,
5635 void* callback_user_data = 0);
5644 int register_sensor_region_event_handler_script(
const char* handler_name,
5645 const char* handler_script,
5646 const char* handler_script_type = 0);
5655 int has_registered_sensor_region_event_handler(
const char* handler_name);
5664 int unregister_sensor_region_event_handler(
const char* handler_name);
5666 #ifdef CPLUSPLUS_ONLY
5679 int register_variable_event_handler(
const char* handler_name,
5681 void* callback_user_data = 0);
5692 int register_variable_event_handler_from_library(
const char* handler_name,
5693 const char* library_name,
5694 const char* function_name,
5695 void* callback_user_data = 0);
5704 int register_variable_event_handler_script(
const char* handler_name,
5705 const char* handler_script,
5706 const char* handler_script_type = 0);
5715 int has_registered_variable_event_handler(
const char* handler_name);
5724 int unregister_variable_event_handler(
const char* handler_name);
5773 int save_review_data(
const char* filename);
5781 int get_loaded_from_review_data();
5872 int get_replaying_history();
5891 void set_history_max_sound_instances(
int num_sound_instances);
5933 void set_automatic_graphics_lod_switching(
int enable_graphics_lod_switching);
5936 int get_automatic_graphics_lod_switching();
5940 int set_character_culling_distance(
float dist);
5943 float get_character_culling_distance();
5948 void set_cull_bounds_scale_factor(
float size);
5951 float get_cull_bounds_scale_factor();
5956 int set_vehicle_culling_distance(
float dist);
5959 float get_vehicle_culling_distance();
5963 int set_prop_culling_distance(
float dist);
5965 float get_prop_culling_distance();
5974 void set_instancing_enabled(
int val);
5977 int get_instancing_enabled()
const;
5984 void set_instancing_min_lod(
int val);
5987 int get_instancing_min_lod()
const;
5990 void set_visualize_instance_groups(
int val);
5993 int get_visualize_instance_groups()
const;
6006 void set_instancing_tbo_patching_enabled(
int enable_patching);
6007 int get_instancing_tbo_patching_enabled()
const;
6012 void set_instancing_position_callback_enabled(
int use_user_position_matrices);
6013 int get_instancing_position_callback_enabled()
const;
6021 void set_num_extra_per_instance_data_floats(
int number);
6022 int get_num_extra_per_instance_data_floats()
const;
6025 void build_instance_groups();
6029 void update_instancing_data();
6032 void get_tbo_instance_data(
int & num_floats,
const float*& data);
6034 #ifdef CPLUSPLUS_ONLY
6080 void set_default_lod_ranges(
const char* character_type,
float* ranges);
6116 void set_scale_graphics_lod_ranges_from_view_settings(
int do_scale);
6124 int get_scale_graphics_lod_ranges_from_view_settings();
6159 void set_automatic_motion_lod_switching(
int enable_motion_lod_switching);
6172 int get_automatic_motion_lod_switching();
6215 int eval_script(
const char* script_text,
6216 int save_as_transient = 0,
6217 const char* script_type = NULL,
6218 const char* script_source = NULL);
6240 int eval_script_file(
const char* filename,
6241 const char* script_type = NULL);
6262 int trigger_script(
const char* script_name);
6281 void trigger_script_delayed(
const char* script_name,
float t_delay);
6302 int trigger_decision(
const char* decision_name);
6321 void trigger_decision_delayed(
const char* decision_name,
float t_delay);
6352 void push_transient_script_event(
float t,
const char* script_text,
const char* script_type);
6359 void clear_transient_script_events();
6376 int save_transient_script_events(
const char* filename);
6393 int load_transient_script_events(
const char* filename);
6405 int load_package(
const char* filename,
6406 const char* language = NULL,
6407 int warn_if_not_found = 1);
6418 int load_package_with_dependancy(
const char* filename,
6419 const char* depends_on_package,
6420 const char* language = NULL,
6421 int warn_if_not_found = 1 );
6453 int get_character_type_num_postures(
const char* character_type);
6497 const char* action_name);
6524 int get_character_type_num_variants(
const char* character_type);
6568 diguyMotionVariant get_character_type_action_primary_variant(
const char* character_type,
6569 const char* action_name);
6598 int get_character_type_action_num_variants(
const char* character_type,
6599 const char* action_name);
6626 diguyMotionVariant get_character_type_action_variant_at_index(
const char* character_type,
6627 const char* action_name,
6652 int get_character_type_num_directions(
const char* character_type);
6708 int get_num_interaction_machines();
6846 int show_notification_with_shared_interaction_machine(
const char* heading,
6848 int pause_scenario = 0,
6849 const char* input_text = NULL,
6937 int get_num_labels();
6955 void reset_labels();
6994 int draw_character_labels();
6997 void update_character_labels();
7063 int get_num_panels();
7100 int get_num_minds();
7107 const char* get_mind_name_at_index(
int index);
7175 int make_companion_of_all = 1);
7201 int also_destroy_crowd_members = 0,
7202 int also_destroy_path_shapes = 0,
7203 int delay_destruction = 0);
7210 int get_num_crowds();
7232 const char* get_unique_crowd_name(
const char* base_name);
7247 diguyCrowd* find_crowd(
const char* crowd_name);
7266 diguyCrowd* find_or_create_crowd(
const char* crowd_name,
7267 int make_companion_of_all = 1);
7279 void set_create_network_crowds(
int do_create);
7287 int get_create_network_crowds();
7341 int get_num_crowd_profiles();
7405 int force_octtree_generation();
7415 int use_bounding_box_only = 0);
7432 int preload_octtree(
const char* character_type,
const char* appearance);
7444 int check_visibility(
float x1,
float y1,
float z1,
7445 float x2,
float y2,
float z2);
7458 #ifdef CPLUSPLUS_ONLY
7511 void set_altitude_max_climb(
float altitude_max_climb);
7512 float get_altitude_max_climb();
7516 void set_altitude_max_drop(
float altitude_max_drop);
7517 float get_altitude_max_drop();
7563 int trigger_detonation(
const char* munition_name,
7564 float x,
float y,
float z,
7565 const char* attacker_name = NULL,
7566 float radius_override = -1.0f,
7567 int broadcast_on_network = 1,
7568 int ground_clamp_impact = 1 );
7643 int use_octtree = 0);
7683 int use_octtree = 0);
7718 int intersect_static_geometry(
7719 float origin_x,
float origin_y,
float origin_z,
7720 float dir_x,
float dir_y,
float dir_z,
7721 float max_distance_to_test,
7722 float* intersection_x,
float* intersection_y,
float* intersection_z,
7723 float* normal_x = NULL,
float* normal_y = NULL,
float* normal_z = NULL,
7724 int use_callback = 1);
7759 float ground_clamp(
float x,
float y,
float z,
7761 int use_altitude_function = 1,
7762 int use_octtree = 0);
7765 #ifdef CPLUSPLUS_ONLY
7852 diguyImpact* map_color_to_impact(
char r,
char g,
char b);
7882 void set_last_impact_been_processed();
7892 void set_last_env_impact_info(
const diguyImpact& impact);
7906 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
7909 #ifdef CPLUSPLUS_ONLY
8003 float origin_x,
float origin_y,
float origin_z,
8004 float dir_x,
float dir_y,
float dir_z,
8005 float max_distance_to_test,
8006 int use_callback = 1);
8033 diguyRegion* find_or_create_region(
const char* name);
8082 int get_num_regions();
8142 int find_navigation_path(
float x1,
float y1,
float z1,
8143 float x2,
float y2,
float z2,
8144 const char* via_region,
8146 float cost_bias_for_preferred_regions = 0.25f,
8148 float cost_bias_for_neutral_regions = 1.1f,
8150 float cost_bias_for_repulsive_regions = 100.0f);
8165 void set_max_distance_planning_multiplier(
float mul);
8173 float get_max_distance_planning_multiplier();
8186 float get_time_spent_path_planning_this_frame();
8199 void set_multithreaded_path_planning_enabled(
int value);
8206 int get_multithreaded_path_planning_enabled();
8224 int get_num_formations();
8333 void set_draw_authoring_visuals(
int visible);
8335 int get_draw_authoring_visuals();
8373 void set_hide_author_selection_handles_during_play(
int visible);
8374 int get_hide_author_selection_handles_during_play();
8392 int get_weapon_flash_enabled();
8399 int set_weapon_flash_enabled(
int enabled);
8406 int get_weapon_fire_effects_enabled();
8413 int set_weapon_fire_effects_enabled(
int enabled);
8420 int get_num_active_fire_effects();
8429 int get_weapon_fire_effect_data(
int index,
float * radius,
8430 double * position_x,
double * position_y,
double * position_z,
8431 float * color_r,
float * color_g,
float * color_b,
8433 float * falloff_rsq);
8436 int get_num_active_lights();
8439 int sort_active_lights();
8484 int get_current_character_index();
8495 int set_current_crowd(
diguyCrowd* current_crowd);
8523 int set_current_crowd_profile_by_name(
const char* crowd_profile_name);
8540 int set_current_region(
diguyRegion* current_region);
8560 void set_particle_module_disabled(
int disable_particle_module);
8579 int create_particle_system(
const char* description_name,
8580 float x,
float y,
float z,
8581 int record_transient_event = 1,
8582 float duration = -1.0f);
8595 int create_particle_system_with_orientation(
const char* description_name,
8596 float x,
float y,
float z,
8597 float rz,
float rx,
float ry,
8598 int record_transient_event = 1,
8599 float duration = -1.0f);
8607 int has_particle_description(
const char* description_name);
8614 void set_global_wind(
float x,
float y,
float z);
8642 const char* lua_get_object_field_as_string(
const char* lua_object,
8643 const char* field_name);
8667 const char* lua_evaluate_object_function(
const char* lua_object,
8668 const char* function_name,
8669 const char* argument = NULL,
8670 int has_return_string = 0);
8677 const char* lua_evaluate_object_function_2a(
const char* lua_object,
8678 const char* function_name,
8679 const char* argument,
8680 const char* argument2,
8681 int has_return_string = 0);
8688 const char* lua_evaluate_object_function_3a(
const char* lua_object,
8689 const char* function_name,
8690 const char* argument,
8691 const char* argument2,
8692 const char* argument3,
8693 int has_return_string = 0);
8700 const char* lua_evaluate_object_function_4a(
const char* lua_object,
8701 const char* function_name,
8702 const char* argument,
8703 const char* argument2,
8704 const char* argument3,
8705 const char* argument4,
8706 int has_return_string = 0);
8716 int lua_send_message_to_object(
const char* lua_object,
8718 const char* message_type,
8719 const char* message,
8720 const char* message_params = NULL);
8722 #ifdef CPLUSPLUS_ONLY
8746 void* get_lua_state();
8792 int push_qt_pointer_to_lua(
void* lua_state,
8793 const char* class_name,
8840 const char* lua_evaluate_object_function_4a_flex(
const char* lua_object,
8841 const char* function_name,
8842 const char* arg1_type,
void* argument1,
8843 const char* arg2_type,
void* argument2,
8844 const char* arg3_type,
void* argument3,
8845 const char* arg4_type,
void* argument4,
8846 int has_return_string = 0);
8858 const char* lua_evaluate_global_function_4a_flex(
const char* function_name,
8859 const char* arg_type,
void* argument,
8860 const char* arg_type2,
void* argument2,
8861 const char* arg_type3,
void* argument3,
8862 const char* arg_type4,
void* argument4,
8863 int has_return_string = 0);
8875 int lua_log_printf(
int notify_level,
const char*
string);
8883 const char* dump_package_info(
const char* package_name);
8918 const char* message_type,
8919 const char* message,
8920 const char* message_params = NULL);
8950 const char* message_type,
8951 const char* message,
8952 const char* message_params = NULL);
8980 const char* group_name,
8982 const char* message_type,
8983 const char* message,
8984 const char* message_params = NULL);
9004 int get_eval_decisions_as_scripts();
9012 void set_eval_decisions_as_scripts(
int eval_decisions_as_scripts);
9036 void wait_cursor_push();
9042 void wait_cursor_pop();
9048 void set_character_sorting_enabled(
int enabled);
9049 int get_character_sorting_enabled();
9051 #ifdef CPLUSPLUS_ONLY
9068 void set_graphics_api_node_ptr(
void* node_ptr);
9079 void* get_graphics_api_node_ptr();
9089 void set_draw_character_shadow_disks(
int draw_character_shadow_disks);
9096 int get_draw_character_shadow_disks();
9103 int get_shadow_map_size();
9111 int set_shadow_map_size(
int shadow_size);
9119 void set_default_character_scene_graph_mask(
unsigned long mask);
9120 unsigned long get_default_character_scene_graph_mask();
9128 void set_default_scene_object_scene_graph_mask(
unsigned long mask);
9129 unsigned long get_default_scene_object_scene_graph_mask();
9136 void set_internal_int(
int var,
int val);
9137 void set_internal_float(
int var,
float val);
9145 int set_num_active_point_lights(
int active_lights);
9154 int get_num_active_point_lights();
9180 int set_world_bounds(
float x_min,
float y_min,
float z_min,
9181 float x_max,
float y_max,
float z_max);
9197 int get_world_bounds(
float* x_min,
float* y_min,
float* z_min,
9198 float* x_max,
float* y_max,
float* z_max);
9217 void set_checkpoint_frequency(
float freq);
9223 float get_checkpoint_frequency();
9229 void set_checkpointing_enabled(
int enable_checkpointing);
9235 int get_checkpointing_enabled();
9269 void set_initial_render_mode(
const char* render_mode);
9277 const char* get_initial_render_mode();
9285 void set_current_render_mode(
const char* render_mode);
9298 const char* derive_render_mode_from_light_settings(
int set_current_to_derived = 1);
9301 const char* get_current_render_mode();
9316 void set_default_character_shader(
const char* render_mode,
9317 const char* shader_name,
9318 int update_existing_characters = 1);
9321 const char* get_default_character_shader(
const char* render_mode);
9336 void set_default_scene_object_shader(
const char* render_mode,
9337 const char* shader_name,
9338 int update_existing_scene_objects = 1);
9341 const char* get_default_scene_object_shader(
const char* render_mode);
9356 void set_default_particle_system_shader(
const char* render_mode,
9357 const char* shader_name,
9358 int update_existing_particle_systems = 1);
9361 const char* get_default_particle_system_shader(
const char* render_mode);
9373 int facefx_mount_animset(
const char* actor_name,
const char* file_name);
9383 int set_vehicle_smoothing_enabled(
int enable_smoothing);
9384 int get_vehicle_smoothing_enabled();
9392 int set_realtime_ik_enabled(
int val);
9393 int get_realtime_ik_enabled();
9395 int set_draw_ik_visuals(
int val);
9396 int get_draw_ik_visuals();
9398 int set_draw_skeletons(
int val);
9399 int get_draw_skeletons();
9401 float get_last_update_time()
9403 if(m_last_update_time == -9999.0f){
9406 return m_last_update_time;
9409 void set_disable_profiler();
9412 const char* get_lua_field_as_string(
const char* lua_object,
const char* field_name,
9413 int warn_if_no_field = 1);
9415 float get_lua_field_as_float(
const char* lua_object,
const char* field_name,
9416 int warn_if_no_field = 1,
9417 int* found_field = NULL);
9419 void update_particle_preview(
float time);
9444 int get_character_type_num_head_appearances(
const char* character_type);
9450 const char* get_character_type_head_appearance_at_index(
const char* character_type,
9453 #ifdef CPLUSPLUS_ONLY
9460 static int add_default_callback(
int callback_id,
9462 void* callback_params = 0,
9463 void* callback_user_data = 0);
9471 static int remove_default_callback(
int callback_id,
9483 static int remove_default_callback_with_user_data(
int callback_id,
9484 void* callback_user_data);
9492 static int add_default_callback_script(
int callback_id,
9493 const char* callback_script,
9494 const char* callback_script_type);
9502 static int remove_default_callback_script(
int callback_id,
9503 const char* callback_script,
9504 const char* callback_script_type);
9513 const char* get_character_type_class(
const char* character_type);
9520 int merge_asset(
const char*
string);
9528 void print_to_log(
int notify_level,
const char*
string);
9531 #ifdef CPLUSPLUS_ONLY
9536 diguyCharacter* create_pending_reflected_character(
const char* name,
9537 const char* character_type,
9538 const char* appearance = NULL);
9540 int set_network_translation(
float x,
float y,
float z);
9541 int get_network_translation(
float* x,
float* y,
float* z);
9548 void set_project_filename(
const char* project_filename);
9556 const char* get_project_filename();
9563 bdiScenario* get_scripted_object();
9583 bdiScenario* m_scenario;
9584 float m_last_update_time;
9586 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:62
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:617
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:41
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:220
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:36
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:82
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:144
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.
static double t
4 Header files and forward declarations
Definition: simple_playback_ogl.cpp:56
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:47
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
static diguyScenario * scenario
Definition: simple_playback_ogl.cpp:57
diguyCallbackReturn diguyViewCameraCallback(diguyViewCamera *camera, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:205