14 #ifndef __diguyScenario_H
15 #define __diguyScenario_H
20 #define CPLUSPLUS_ONLY
151 const char* get_name();
163 const char* get_type_name();
170 const char* get_description();
183 #ifdef CPLUSPLUS_ONLY
284 int update2(
float t,
float realtime_t);
309 int set_playback_loop(
int playback_loop);
349 int set_tick_dt(
float tick_dt);
381 float get_realtime_t();
394 float get_desired_t();
411 int set_tout(
float tout);
436 void set_tout_enabled(
int tout_enabled);
449 int get_tout_enabled();
463 int get_playback_loop();
478 int get_ticks_can_be_dropped();
522 void set_ticks_can_be_dropped(
int ticks_can_be_dropped);
530 long get_max_ticks_behind_until_drop();
551 void set_max_ticks_behind_until_drop(
long max_ticks_behind_until_drop);
587 int set_playback_mode_stop();
607 int set_playback_mode_play();
648 float derive_playback_mode_dt(
float dt_in);
669 #ifdef CPLUSPLUS_ONLY
696 int load(
const char* filename);
741 int save_as(
const char* filename);
759 const char* get_filename();
771 const char* get_filename_without_directory();
797 void set_unsaved(
int unsaved);
799 #endif // CPLUSPLUS_ONLY
807 #ifdef CPLUSPLUS_ONLY
871 int draw_pass2(
int also_call_post_draw = 1);
883 int draw_particles();
899 void pre_draw_cull_state_reset();
912 void post_draw_cull_state_save();
941 int post_draw(
int call_plugins_post_draw = 1,
942 int call_lua_packages_draw = 1,
943 int call_post_draw_callback = 1);
977 int set_graphics_attach_ptr(
void* graphics_attach_ptr);
979 #endif // CPLUSPLUS_ONLY
1142 int merge(
const char* filename,
1168 int merge_object(
const char*
string);
1209 int include_object_library(
const char* library_name);
1225 int uninclude_object_library(
const char* library_name);
1255 void set_base_datetime(
int year = -1,
1269 void set_base_datetime(
const char* datetime_string,
1270 const char* format);
1278 void get_base_datetime(
int* year = NULL,
1298 void set_base_datetime_default_to_now(
int to_now);
1306 int get_base_datetime_default_to_now();
1314 void set_base_datetime_default_to_today(
int to_today);
1322 int get_base_datetime_default_to_today();
1334 void set_current_datetime(
int year = -1,
1348 void set_current_datetime(
const char* datetime_string,
1349 const char* format);
1357 void get_current_datetime(
int* year = NULL,
1375 const char* get_current_datetime_string(
const char* format);
1383 void set_datetimes_are_utc(
int are_utc);
1390 int get_datetimes_are_utc();
1398 void set_utc_offset_hours(
float utc_offset_hours);
1405 float get_utc_offset_hours();
1413 void set_use_local_tz_utc_offset_hours(
int use_local_tz);
1416 int get_use_local_tz_utc_offset_hours();
1435 void set_current_datetime_advance_factor(
float advance_factor);
1438 float get_current_datetime_advance_factor();
1445 void get_network_datetime(
int* year = NULL,
1478 int set_tin_time_of_day(
float t);
1495 float get_tin_time_of_day();
1513 float get_time_of_day();
1526 #ifdef CPLUSPLUS_ONLY
1559 int add_appearance(
const char* appearance,
1560 char** equipment_list,
1561 char** character_types,
1589 int add_appearance_based_on_existing_appearance(
const char* appearance,
1590 const char* existing_appearance,
1591 char** equipment_list);
1619 int remove_appearance(
const char* appearance);
1621 #endif // CPLUSPLUS_ONLY
1637 int get_num_character_types_with_appearance(
const char* appearance_name);
1654 const char *get_character_type_from_appearance(
const char* appearance_name,
int index = 0);
1682 const char *get_hand_item_class(
const char *char_type_name,
const char *appearance_name = NULL);
1697 int get_num_hand_items_in_class(
const char *hand_item_class);
1714 const char *get_hand_item_from_class(
const char *hand_item_class,
int index);
1745 int preload_character_type(
const char* character_type);
1764 int preload_appearance(
const char* appearance);
1785 int preload_gesture(
const char* character_type,
const char* gesture_name);
1811 void set_character_culling_enabled(
int character_culling);
1825 int get_character_culling_enabled();
1835 void set_scene_object_culling_enabled(
int object_culling);
1849 int get_scene_object_culling_enabled();
1859 void set_scene_object_sub_culling_enabled(
int object_culling);
1873 int get_scene_object_sub_culling_enabled();
1884 void set_character_visualize_bounds_enabled(
int visualize_bounds);
1899 int get_character_visualize_bounds_enabled();
1910 void set_scene_object_visualize_bounds_enabled(
int val);
1925 int get_scene_object_visualize_bounds_enabled();
1992 int get_num_character_types();
2003 const char* get_character_type_at_index(
int index);
2016 const char* get_character_type_abbreviation(
const char* character_type);
2045 const char* get_character_type_deprecated_at_version(
const char* character_type);
2076 const char* get_character_type_deprecated_suggested_alternatives(
const char* character_type);
2101 int get_character_type_quality_bias(
const char* character_type);
2134 const char* get_character_type_default_appearance(
const char* character_type);
2146 const char* get_character_type_default_skinned_appearance(
const char* character_type);
2158 int get_character_type_num_appearances(
const char* character_type);
2172 const char* get_character_type_appearance_at_index(
const char* character_type,
2195 int get_appearance_quality_bias(
const char * appearance);
2209 int get_num_appearances_of_appearance_type(
const char* character_type,
const char* base_appearance,
diguyCharacterAppearanceTypes appearance_type);
2224 const char* get_appearance_name_at_index(
const char* character_type,
const char* base_appearance,
diguyCharacterAppearanceTypes appearance_type,
int index);
2233 int get_num_actors();
2235 const char * get_actor_name_at_index(
int index);
2238 const char * get_actor_name(
const char* base_appearance);
2241 int get_num_equipment_for_actor(
const char* actor_name);
2244 const char* get_equipment_name_for_actor(
const char* actor_name,
int index);
2247 const char* get_equipment_type_for_actor(
const char* actor_name,
int index);
2250 int get_num_equipment_for_appearance(
const char* base_appearance);
2253 const char* get_equipment_name_for_appearance(
const char* base_appearance,
int index);
2256 const char* get_equipment_type_for_appearance(
const char* base_appearance,
int index);
2268 int get_character_type_num_actions(
const char* character_type);
2282 const char* get_character_type_action_at_index(
const char* character_type,
2297 float get_character_type_action_speed(
const char* character_type,
2298 const char* action_name);
2312 float get_character_type_action_duration(
const char* character_type,
2313 const char* action_name);
2327 float get_character_type_action_distance(
const char* character_type,
2328 const char* action_name);
2342 int get_character_type_action_displacement(
const char* character_type,
2343 const char* action_name,
float* x,
float* y,
float* z);
2363 int get_character_type_transition_info(
const char* character_type,
2379 const char* character_type,
2380 const char* action_name);
2394 float get_character_type_action_facing_angle_in(
const char* character_type,
2395 const char* action_name);
2409 float get_character_type_action_facing_angle_out(
const char* character_type,
2410 const char* action_name);
2425 int get_character_type_num_gestures(
const char* character_type);
2441 const char* get_character_type_gesture_at_index(
const char* character_type,
2450 diguyGestureMetadata* get_character_type_gesture_meta_data_at_index(
const char* character_type,
2490 const char* character_type,
2491 const char* appearance = NULL,
2492 const char* head_appearance = NULL,
2493 const char* hand_item = NULL);
2522 const char* character_type,
2523 const char* appearance = NULL);
2612 diguyCharacter* retrieve_character_from_recycle_bin(
const char* name,
2613 const char* character_type,
2614 const char* appearance,
2615 int make_character_temporary = 0);
2622 int get_num_characters();
2700 int get_num_path_shapes();
2832 diguyWaypoint* create_waypoint(
float x = 0.0f,
float y = 0.0f,
float z = 0.0f,
2833 float yaw = 0.0f,
float roll = 0.0f,
float pitch = 0.0f,
2914 const char* field1_string,
const char* field1_value,
const char* field1_alternate_value,
2915 const char* field2_string = NULL,
const char* field2_value = NULL,
const char* field2_alternate_value = NULL,
2916 const char* field3_string = NULL,
const char* field3_value = NULL,
const char* field3_alternate_value = NULL,
2917 const char* field4_string = NULL,
const char* field4_value = NULL,
const char* field4_alternate_value = NULL,
2918 const char* field5_string = NULL,
const char* field5_value = NULL,
const char* field5_alternate_value = NULL,
2919 const char* field6_string = NULL,
const char* field6_value = NULL,
const char* field6_alternate_value = NULL,
2920 const char* field7_string = NULL,
const char* field7_value = NULL,
const char* field7_alternate_value = NULL,
2921 const char* field8_string = NULL,
const char* field8_value = NULL,
const char* field8_alternate_value = NULL);
2947 int get_num_character_type_map_entries();
2970 int get_num_type_map_character_classes();
2978 const char* get_type_map_character_class_at_index(
int index);
2995 int get_num_type_map_categories(
const char* character_class);
3003 const char* get_type_map_category_at_index(
const char* character_class,
3021 int get_num_type_map_subcategories(
const char* character_class,
3022 const char* category);
3030 const char* get_type_map_subcategory_at_index(
const char* character_class,
3031 const char* category,
3050 int get_num_signals();
3115 void reset_signals();
3128 int signal_palette_hide_all(
const char* filter = NULL);
3140 int signal_palette_show_all(
const char* filter = NULL);
3162 int get_num_sounds();
3221 const char* sound_filename = NULL);
3267 int stop_all_sounds(
float rampdown_time = 0.0f);
3287 int play_3d_sound(
const char* name,
3288 float x,
float y,
float z,
3308 int get_num_groups();
3397 int get_num_sensor_regions();
3433 int get_num_scene_objects();
3469 void set_scene_objects_enabled(
int scene_objects_enabled);
3477 int get_scene_objects_enabled();
3495 const char* filename);
3552 int get_num_secondary_views();
3564 diguyView* get_secondary_view_at_index(
int index);
3631 void set_scenario_camera_affected_by_script_events(
int flag);
3639 int get_scenario_camera_affected_by_script_events();
3657 void set_scenario_camera_affected_by_script_events_when_iguy_active(
int flag);
3665 int get_scenario_camera_affected_by_script_events_when_iguy_active();
3672 int get_num_camera_settings();
3720 int load_camera_settings(
const char* settings_name,
int update_current_camera = 1);
3811 void load_current_fog(
const char* name);
3818 int get_num_fog_settings();
3861 int load_fog_settings(
const char* settings_name);
3909 int get_num_light_settings();
3953 int load_light_settings(
const char* settings_name,
int light_num = 0);
3960 void set_use_override_ambient_material(
int enabled);
3963 int get_use_override_ambient_material();
3966 void set_global_ambient_material(
float value);
3969 float get_global_ambient_material();
3986 int get_num_info_popups();
4029 int set_info_popup_default_encoding(
const char* info_popup_default_encoding);
4042 const char* get_info_popup_default_encoding();
4060 int get_num_variables();
4136 int get_num_face_expressions();
4181 const char* target_actor =
"exface");
4214 int get_num_chain_settings();
4398 CALLBACK_ID_CREATE = 1,
4399 CALLBACK_ID_DESTROY,
4401 CALLBACK_ID_WAIT_CURSOR_SHOW,
4402 CALLBACK_ID_WAIT_CURSOR_HIDE,
4405 CALLBACK_ID_LOAD_SCENARIO_FILE,
4406 CALLBACK_ID_SAVE_SCENARIO_FILE,
4407 CALLBACK_ID_SCENE_OBJECT_IMPACT,
4408 CALLBACK_ID_LEFT_CLICK_SCENE,
4409 CALLBACK_ID_RIGHT_CLICK_SCENE,
4410 CALLBACK_ID_TIMED_EVENT,
4411 CALLBACK_ID_MANUALLY_INVOKED,
4412 CALLBACK_ID_POST_DRAW,
4413 CALLBACK_ID_PLAYBACK_MODE_CHANGED,
4414 CALLBACK_ID_INPUT_MODE_CHANGED,
4415 CALLBACK_ID_RENDER_MODE_CHANGED,
4416 CALLBACK_ID_PRE_REINITIALIZE,
4417 CALLBACK_ID_POST_REINITIALIZE,
4418 CALLBACK_ID_POST_LOAD_CHECKPOINT
4421 #ifdef CPLUSPLUS_ONLY
4449 int add_callback(
int callback_id,
4451 void* callback_params = 0,
4452 void* callback_user_data = 0,
4453 int remove_on_scenario_load = 1);
4475 int remove_callback(
int callback_id,
4498 int remove_callback_with_user_data(
int callback_id,
4499 void* callback_user_data);
4512 int add_default_character_callback(
int callback_id,
4514 void* callback_params,
4515 void* callback_user_data,
4516 int add_to_existing_objects_flag = 0,
4517 int remove_on_scenario_load = 1);
4536 int remove_default_character_callback(
int callback_id,
4550 int remove_default_character_callback_with_user_data(
int callback_id,
4551 void* callback_user_data);
4565 int add_default_sensor_region_callback(
int callback_id,
4567 void* callback_params,
4568 void* callback_user_data,
4569 int add_to_existing_objects_flag = 0,
4570 int remove_on_scenario_load = 1);
4589 int remove_default_sensor_region_callback(
int callback_id,
4608 int remove_default_sensor_region_callback_with_user_data(
int callback_id,
4609 void* callback_user_data);
4621 int add_default_signal_callback(
int callback_id,
4623 void* callback_params,
4624 void* callback_user_data,
4625 int add_to_existing_objects_flag = 0,
4626 int remove_on_scenario_load = 1);
4645 int remove_default_signal_callback(
int callback_id,
4664 int remove_default_signal_callback_with_user_data(
int callback_id,
4665 void* callback_user_data);
4677 int add_default_variable_callback(
int callback_id,
4679 void* callback_params,
4680 void* callback_user_data,
4681 int add_to_existing_objects_flag = 0,
4682 int remove_on_scenario_load = 1);
4701 int remove_default_variable_callback(
int callback_id,
4720 int remove_default_variable_callback_with_user_data(
int callback_id,
4721 void* callback_user_data);
4738 int add_default_view_callback(
int callback_id,
4740 void* callback_params,
4741 void* callback_user_data,
4742 int add_to_existing_objects_flag = 1,
4743 int remove_on_scenario_load = 1);
4762 int remove_default_view_callback(
int callback_id,
4781 int remove_default_view_callback_with_user_data(
int callback_id,
4782 void* callback_user_data);
4794 int add_default_camera_callback(
int callback_id,
4796 void* callback_params,
4797 void* callback_user_data,
4798 int add_to_existing_objects_flag = 0,
4799 int remove_on_scenario_load = 1);
4818 int remove_default_camera_callback(
int callback_id,
4837 int remove_default_camera_callback_with_user_data(
int callback_id,
4838 void* callback_user_data);
4850 int add_default_fog_callback(
int callback_id,
4852 void* callback_params,
4853 void* callback_user_data,
4854 int add_to_existing_objects_flag = 0,
4855 int remove_on_scenario_load = 1);
4874 int remove_default_fog_callback(
int callback_id,
4893 int remove_default_fog_callback_with_user_data(
int callback_id,
4894 void* callback_user_data);
4906 int add_default_light_callback(
int callback_id,
4908 void* callback_params,
4909 void* callback_user_data,
4910 int add_to_existing_objects_flag = 0,
4911 int remove_on_scenario_load = 1);
4930 int remove_default_light_callback(
int callback_id,
4949 int remove_default_light_callback_with_user_data(
int callback_id,
4950 void* callback_user_data);
4964 void manually_invoke_callbacks_now(
int callback_id);
4999 int add_callback_script(
int callback_id,
5000 const char* callback_script,
5001 const char* callback_script_type = NULL,
5002 int remove_on_scenario_load = 1);
5036 int remove_callback_script(
int callback_id,
5037 const char* callback_script,
5038 const char* callback_script_type = NULL);
5052 int add_default_character_callback_script(
int callback_id,
5053 const char* callback_script,
5054 const char* callback_script_type = NULL,
5055 int add_to_existing_objects_flag = 0,
5056 int remove_on_scenario_load = 1);
5069 int remove_default_character_callback_script(
int callback_id,
5070 const char* callback_script,
5071 const char* callback_script_type = NULL);
5085 int add_default_sensor_region_callback_script(
int callback_id,
5086 const char* callback_script,
5087 const char* callback_script_type = NULL,
5088 int add_to_existing_objects_flag = 0,
5089 int remove_on_scenario_load = 1);
5102 int remove_default_sensor_region_callback_script(
int callback_id,
5103 const char* callback_script,
5104 const char* callback_script_type = NULL);
5118 int add_default_signal_callback_script(
int callback_id,
5119 const char* callback_script,
5120 const char* callback_script_type = NULL,
5121 int add_to_existing_objects_flag = 0,
5122 int remove_on_scenario_load = 1);
5135 int remove_default_signal_callback_script(
int callback_id,
5136 const char* callback_script,
5137 const char* callback_script_type = NULL);
5151 int add_default_variable_callback_script(
int callback_id,
5152 const char* callback_script,
5153 const char* callback_script_type = NULL,
5154 int add_to_existing_objects_flag = 0,
5155 int remove_on_scenario_load = 1);
5168 int remove_default_variable_callback_script(
int callback_id,
5169 const char* callback_script,
5170 const char* callback_script_type = NULL);
5184 int add_default_view_callback_script(
int callback_id,
5185 const char* callback_script,
5186 const char* callback_script_type = NULL,
5187 int add_to_existing_objects_flag = 0,
5188 int remove_on_scenario_load = 1);
5201 int remove_default_view_callback_script(
int callback_id,
5202 const char* callback_script,
5203 const char* callback_script_type = NULL);
5217 int add_default_camera_callback_script(
int callback_id,
5218 const char* callback_script,
5219 const char* callback_script_type = NULL,
5220 int add_to_existing_objects_flag = 0,
5221 int remove_on_scenario_load = 1);
5234 int remove_default_camera_callback_script(
int callback_id,
5235 const char* callback_script,
5236 const char* callback_script_type = NULL);
5250 int add_default_fog_callback_script(
int callback_id,
5251 const char* callback_script,
5252 const char* callback_script_type = NULL,
5253 int add_to_existing_objects_flag = 0,
5254 int remove_on_scenario_load = 1);
5267 int remove_default_fog_callback_script(
int callback_id,
5268 const char* callback_script,
5269 const char* callback_script_type = NULL);
5283 int add_default_light_callback_script(
int callback_id,
5284 const char* callback_script,
5285 const char* callback_script_type = NULL,
5286 int add_to_existing_objects_flag = 0,
5287 int remove_on_scenario_load = 1);
5300 int remove_default_light_callback_script(
int callback_id,
5301 const char* callback_script,
5302 const char* callback_script_type = NULL);
5349 int map_event_handler_to_callback_id(
int callback_id,
5350 const char* handler_name);
5369 int unmap_event_handler_from_callback_id(
int callback_id,
5370 const char* handler_name,
5371 int unmap_all_matches = 0);
5410 #ifdef CPLUSPLUS_ONLY
5439 int register_character_event_handler(
const char* handler_name,
5441 void* callback_user_data = 0);
5480 int register_character_event_handler_from_library(
const char* handler_name,
5481 const char* library_name,
5482 const char* function_name,
5483 void* callback_user_data = 0);
5507 int register_character_event_handler_script(
const char* handler_name,
5508 const char* handler_script,
5509 const char* handler_script_type = 0);
5521 int has_registered_character_event_handler(
const char* handler_name);
5538 int unregister_character_event_handler(
const char* handler_name);
5540 #ifdef CPLUSPLUS_ONLY
5553 int register_signal_event_handler(
const char* handler_name,
5555 void* callback_user_data = 0);
5566 int register_signal_event_handler_from_library(
const char* handler_name,
5567 const char* library_name,
5568 const char* function_name,
5569 void* callback_user_data = 0);
5578 int register_signal_event_handler_script(
const char* handler_name,
5579 const char* handler_script,
5580 const char* handler_script_type = 0);
5589 int has_registered_signal_event_handler(
const char* handler_name);
5598 int unregister_signal_event_handler(
const char* handler_name);
5600 #ifdef CPLUSPLUS_ONLY
5613 int register_sensor_region_event_handler(
const char* handler_name,
5615 void* callback_user_data = 0);
5626 int register_sensor_region_event_handler_from_library(
const char* handler_name,
5627 const char* library_name,
5628 const char* function_name,
5629 void* callback_user_data = 0);
5638 int register_sensor_region_event_handler_script(
const char* handler_name,
5639 const char* handler_script,
5640 const char* handler_script_type = 0);
5649 int has_registered_sensor_region_event_handler(
const char* handler_name);
5658 int unregister_sensor_region_event_handler(
const char* handler_name);
5660 #ifdef CPLUSPLUS_ONLY
5673 int register_variable_event_handler(
const char* handler_name,
5675 void* callback_user_data = 0);
5686 int register_variable_event_handler_from_library(
const char* handler_name,
5687 const char* library_name,
5688 const char* function_name,
5689 void* callback_user_data = 0);
5698 int register_variable_event_handler_script(
const char* handler_name,
5699 const char* handler_script,
5700 const char* handler_script_type = 0);
5709 int has_registered_variable_event_handler(
const char* handler_name);
5718 int unregister_variable_event_handler(
const char* handler_name);
5767 int save_review_data(
const char* filename);
5775 int get_loaded_from_review_data();
5866 int get_replaying_history();
5885 void set_history_max_sound_instances(
int num_sound_instances);
5927 void set_automatic_graphics_lod_switching(
int enable_graphics_lod_switching);
5930 int get_automatic_graphics_lod_switching();
5934 int set_character_culling_distance(
float dist);
5937 float get_character_culling_distance();
5942 void set_cull_bounds_scale_factor(
float size);
5945 float get_cull_bounds_scale_factor();
5950 int set_vehicle_culling_distance(
float dist);
5953 float get_vehicle_culling_distance();
5957 int set_prop_culling_distance(
float dist);
5959 float get_prop_culling_distance();
5968 void set_instancing_enabled(
int val);
5971 int get_instancing_enabled()
const;
5978 void set_instancing_min_lod(
int val);
5981 int get_instancing_min_lod()
const;
5984 void set_visualize_instance_groups(
int val);
5987 int get_visualize_instance_groups()
const;
6000 void set_instancing_tbo_patching_enabled(
int enable_patching);
6001 int get_instancing_tbo_patching_enabled()
const;
6006 void set_instancing_position_callback_enabled(
int use_user_position_matrices);
6007 int get_instancing_position_callback_enabled()
const;
6015 void set_num_extra_per_instance_data_floats(
int number);
6016 int get_num_extra_per_instance_data_floats()
const;
6019 void build_instance_groups();
6023 void update_instancing_data();
6026 void get_tbo_instance_data(
int & num_floats,
const float*& data);
6028 #ifdef CPLUSPLUS_ONLY
6074 void set_default_lod_ranges(
const char* character_type,
float* ranges);
6110 void set_scale_graphics_lod_ranges_from_view_settings(
int do_scale);
6118 int get_scale_graphics_lod_ranges_from_view_settings();
6153 void set_automatic_motion_lod_switching(
int enable_motion_lod_switching);
6166 int get_automatic_motion_lod_switching();
6209 int eval_script(
const char* script_text,
6210 int save_as_transient = 0,
6211 const char* script_type = NULL,
6212 const char* script_source = NULL);
6234 int eval_script_file(
const char* filename,
6235 const char* script_type = NULL);
6256 int trigger_script(
const char* script_name);
6275 void trigger_script_delayed(
const char* script_name,
float t_delay);
6296 int trigger_decision(
const char* decision_name);
6315 void trigger_decision_delayed(
const char* decision_name,
float t_delay);
6346 void push_transient_script_event(
float t,
const char* script_text,
const char* script_type);
6353 void clear_transient_script_events();
6370 int save_transient_script_events(
const char* filename);
6387 int load_transient_script_events(
const char* filename);
6399 int load_package(
const char* filename,
6400 const char* language = NULL,
6401 int warn_if_not_found = 1);
6412 int load_package_with_dependancy(
const char* filename,
6413 const char* depends_on_package,
6414 const char* language = NULL,
6415 int warn_if_not_found = 1 );
6447 int get_character_type_num_postures(
const char* character_type);
6491 const char* action_name);
6518 int get_character_type_num_variants(
const char* character_type);
6562 diguyMotionVariant get_character_type_action_primary_variant(
const char* character_type,
6563 const char* action_name);
6592 int get_character_type_action_num_variants(
const char* character_type,
6593 const char* action_name);
6620 diguyMotionVariant get_character_type_action_variant_at_index(
const char* character_type,
6621 const char* action_name,
6646 int get_character_type_num_directions(
const char* character_type);
6702 int get_num_interaction_machines();
6840 int show_notification_with_shared_interaction_machine(
const char* heading,
6842 int pause_scenario = 0,
6843 const char* input_text = NULL,
6931 int get_num_labels();
6949 void reset_labels();
6988 int draw_character_labels();
6991 void update_character_labels();
7057 int get_num_panels();
7094 int get_num_minds();
7101 const char* get_mind_name_at_index(
int index);
7169 int make_companion_of_all = 1);
7195 int also_destroy_crowd_members = 0,
7196 int also_destroy_path_shapes = 0,
7197 int delay_destruction = 0);
7204 int get_num_crowds();
7226 const char* get_unique_crowd_name(
const char* base_name);
7241 diguyCrowd* find_crowd(
const char* crowd_name);
7260 diguyCrowd* find_or_create_crowd(
const char* crowd_name,
7261 int make_companion_of_all = 1);
7273 void set_create_network_crowds(
int do_create);
7281 int get_create_network_crowds();
7335 int get_num_crowd_profiles();
7399 int force_octtree_generation();
7409 int use_bounding_box_only = 0);
7426 int preload_octtree(
const char* character_type,
const char* appearance);
7438 int check_visibility(
float x1,
float y1,
float z1,
7439 float x2,
float y2,
float z2);
7452 #ifdef CPLUSPLUS_ONLY
7505 void set_altitude_max_climb(
float altitude_max_climb);
7506 float get_altitude_max_climb();
7510 void set_altitude_max_drop(
float altitude_max_drop);
7511 float get_altitude_max_drop();
7557 int trigger_detonation(
const char* munition_name,
7558 float x,
float y,
float z,
7559 const char* attacker_name = NULL,
7560 float radius_override = -1.0f,
7561 int broadcast_on_network = 1,
7562 int ground_clamp_impact = 1 );
7637 int use_octtree = 0);
7677 int use_octtree = 0);
7712 int intersect_static_geometry(
7713 float origin_x,
float origin_y,
float origin_z,
7714 float dir_x,
float dir_y,
float dir_z,
7715 float max_distance_to_test,
7716 float* intersection_x,
float* intersection_y,
float* intersection_z,
7717 float* normal_x = NULL,
float* normal_y = NULL,
float* normal_z = NULL,
7718 int use_callback = 1);
7753 float ground_clamp(
float x,
float y,
float z,
7755 int use_altitude_function = 1,
7756 int use_octtree = 0);
7759 #ifdef CPLUSPLUS_ONLY
7846 diguyImpact* map_color_to_impact(
char r,
char g,
char b);
7876 void set_last_impact_been_processed();
7886 void set_last_env_impact_info(
const diguyImpact& impact);
7900 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
7903 #ifdef CPLUSPLUS_ONLY
7997 float origin_x,
float origin_y,
float origin_z,
7998 float dir_x,
float dir_y,
float dir_z,
7999 float max_distance_to_test,
8000 int use_callback = 1);
8027 diguyRegion* find_or_create_region(
const char* name);
8076 int get_num_regions();
8136 int find_navigation_path(
float x1,
float y1,
float z1,
8137 float x2,
float y2,
float z2,
8138 const char* via_region,
8140 float cost_bias_for_preferred_regions = 0.25f,
8142 float cost_bias_for_neutral_regions = 1.1f,
8144 float cost_bias_for_repulsive_regions = 100.0f);
8159 void set_max_distance_planning_multiplier(
float mul);
8167 float get_max_distance_planning_multiplier();
8180 float get_time_spent_path_planning_this_frame();
8193 void set_multithreaded_path_planning_enabled(
int value);
8200 int get_multithreaded_path_planning_enabled();
8218 int get_num_formations();
8327 void set_draw_authoring_visuals(
int visible);
8329 int get_draw_authoring_visuals();
8367 void set_hide_author_selection_handles_during_play(
int visible);
8368 int get_hide_author_selection_handles_during_play();
8386 int get_weapon_fire_effects_enabled();
8393 int set_weapon_fire_effects_enabled(
int enabled);
8400 int get_num_active_fire_effects();
8409 int get_weapon_fire_effect_data(
int index,
float * radius,
8410 double * position_x,
double * position_y,
double * position_z,
8411 float * color_r,
float * color_g,
float * color_b,
8413 float * falloff_rsq);
8416 int get_num_active_lights();
8419 int sort_active_lights();
8464 int get_current_character_index();
8475 int set_current_crowd(
diguyCrowd* current_crowd);
8503 int set_current_crowd_profile_by_name(
const char* crowd_profile_name);
8520 int set_current_region(
diguyRegion* current_region);
8540 void set_particle_module_disabled(
int disable_particle_module);
8559 int create_particle_system(
const char* description_name,
8560 float x,
float y,
float z,
8561 int record_transient_event = 1,
8562 float duration = -1.0f);
8575 int create_particle_system_with_orientation(
const char* description_name,
8576 float x,
float y,
float z,
8577 float rz,
float rx,
float ry,
8578 int record_transient_event = 1,
8579 float duration = -1.0f);
8587 int has_particle_description(
const char* description_name);
8594 void set_global_wind(
float x,
float y,
float z);
8622 const char* lua_get_object_field_as_string(
const char* lua_object,
8623 const char* field_name);
8647 const char* lua_evaluate_object_function(
const char* lua_object,
8648 const char* function_name,
8649 const char* argument = NULL,
8650 int has_return_string = 0);
8657 const char* lua_evaluate_object_function_2a(
const char* lua_object,
8658 const char* function_name,
8659 const char* argument,
8660 const char* argument2,
8661 int has_return_string = 0);
8668 const char* lua_evaluate_object_function_3a(
const char* lua_object,
8669 const char* function_name,
8670 const char* argument,
8671 const char* argument2,
8672 const char* argument3,
8673 int has_return_string = 0);
8680 const char* lua_evaluate_object_function_4a(
const char* lua_object,
8681 const char* function_name,
8682 const char* argument,
8683 const char* argument2,
8684 const char* argument3,
8685 const char* argument4,
8686 int has_return_string = 0);
8696 int lua_send_message_to_object(
const char* lua_object,
8698 const char* message_type,
8699 const char* message,
8700 const char* message_params = NULL);
8702 #ifdef CPLUSPLUS_ONLY
8726 void* get_lua_state();
8772 int push_qt_pointer_to_lua(
void* lua_state,
8773 const char* class_name,
8820 const char* lua_evaluate_object_function_4a_flex(
const char* lua_object,
8821 const char* function_name,
8822 const char* arg1_type,
void* argument1,
8823 const char* arg2_type,
void* argument2,
8824 const char* arg3_type,
void* argument3,
8825 const char* arg4_type,
void* argument4,
8826 int has_return_string = 0);
8838 const char* lua_evaluate_global_function_4a_flex(
const char* function_name,
8839 const char* arg_type,
void* argument,
8840 const char* arg_type2,
void* argument2,
8841 const char* arg_type3,
void* argument3,
8842 const char* arg_type4,
void* argument4,
8843 int has_return_string = 0);
8855 int lua_log_printf(
int notify_level,
const char*
string);
8863 const char* dump_package_info(
const char* package_name);
8898 const char* message_type,
8899 const char* message,
8900 const char* message_params = NULL);
8930 const char* message_type,
8931 const char* message,
8932 const char* message_params = NULL);
8960 const char * group_name,
8962 const char* message_type,
8963 const char* message,
8964 const char* message_params = NULL);
8984 int get_eval_decisions_as_scripts();
8992 void set_eval_decisions_as_scripts(
int eval_decisions_as_scripts);
9016 void wait_cursor_push();
9022 void wait_cursor_pop();
9028 void set_character_sorting_enabled(
int enabled);
9029 int get_character_sorting_enabled();
9031 #ifdef CPLUSPLUS_ONLY
9048 void set_graphics_api_node_ptr(
void* node_ptr);
9059 void* get_graphics_api_node_ptr();
9069 void set_draw_character_shadow_disks(
int draw_character_shadow_disks);
9076 int get_draw_character_shadow_disks();
9083 int get_shadow_map_size();
9091 int set_shadow_map_size(
int shadow_size);
9099 void set_default_character_scene_graph_mask(
unsigned long mask);
9100 unsigned long get_default_character_scene_graph_mask();
9108 void set_default_scene_object_scene_graph_mask(
unsigned long mask);
9109 unsigned long get_default_scene_object_scene_graph_mask();
9116 void set_internal_int(
int var,
int val);
9117 void set_internal_float(
int var,
float val);
9125 int set_num_active_point_lights(
int active_lights);
9134 int get_num_active_point_lights();
9160 int set_world_bounds(
float x_min,
float y_min,
float z_min,
9161 float x_max,
float y_max,
float z_max);
9177 int get_world_bounds(
float* x_min,
float* y_min,
float* z_min,
9178 float* x_max,
float* y_max,
float* z_max);
9197 void set_checkpoint_frequency(
float freq);
9203 float get_checkpoint_frequency();
9209 void set_checkpointing_enabled(
int enable_checkpointing);
9215 int get_checkpointing_enabled();
9249 void set_initial_render_mode(
const char* render_mode);
9257 const char* get_initial_render_mode();
9265 void set_current_render_mode(
const char* render_mode);
9278 const char* derive_render_mode_from_light_settings(
int set_current_to_derived = 1);
9281 const char* get_current_render_mode();
9296 void set_default_character_shader(
const char* render_mode,
9297 const char* shader_name,
9298 int update_existing_characters = 1);
9301 const char* get_default_character_shader(
const char* render_mode);
9316 void set_default_scene_object_shader(
const char* render_mode,
9317 const char* shader_name,
9318 int update_existing_scene_objects = 1);
9321 const char* get_default_scene_object_shader(
const char* render_mode);
9336 void set_default_particle_system_shader(
const char* render_mode,
9337 const char* shader_name,
9338 int update_existing_particle_systems = 1);
9341 const char* get_default_particle_system_shader(
const char* render_mode);
9353 int facefx_mount_animset(
const char* actor_name,
const char* file_name);
9363 int set_vehicle_smoothing_enabled(
int enable_smoothing);
9364 int get_vehicle_smoothing_enabled();
9372 int set_realtime_ik_enabled(
int val);
9373 int get_realtime_ik_enabled();
9375 int set_draw_ik_visuals(
int val);
9376 int get_draw_ik_visuals();
9378 int set_draw_skeletons(
int val);
9379 int get_draw_skeletons();
9381 float get_last_update_time()
9383 if(m_last_update_time == -9999.0f){
9386 return m_last_update_time;
9389 void set_disable_profiler();
9393 void calculate_character_lods();
9396 const char* get_lua_field_as_string(
const char* lua_object,
const char* field_name,
9397 int warn_if_no_field = 1);
9399 float get_lua_field_as_float(
const char* lua_object,
const char* field_name,
9400 int warn_if_no_field = 1,
9401 int* found_field = NULL);
9403 void update_particle_preview(
float time);
9428 int get_character_type_num_head_appearances(
const char* character_type);
9434 const char* get_character_type_head_appearance_at_index(
const char* character_type,
9437 #ifdef CPLUSPLUS_ONLY
9444 static int add_default_callback(
int callback_id,
9446 void* callback_params = 0,
9447 void* callback_user_data = 0);
9455 static int remove_default_callback(
int callback_id,
9467 static int remove_default_callback_with_user_data(
int callback_id,
9468 void* callback_user_data);
9476 static int add_default_callback_script(
int callback_id,
9477 const char* callback_script,
9478 const char* callback_script_type);
9486 static int remove_default_callback_script(
int callback_id,
9487 const char* callback_script,
9488 const char* callback_script_type);
9497 const char* get_character_type_class(
const char* character_type);
9504 int merge_asset(
const char*
string);
9512 void print_to_log(
int notify_level,
const char*
string);
9515 #ifdef CPLUSPLUS_ONLY
9520 diguyCharacter* create_pending_reflected_character(
const char* name,
9521 const char* character_type,
9522 const char* appearance = NULL);
9524 int set_network_translation(
float x,
float y,
float z);
9525 int get_network_translation(
float* x,
float* y,
float* z);
9532 void set_project_filename(
const char* project_filename);
9540 const char* get_project_filename();
9547 bdiScenario* get_scripted_object();
9567 bdiScenario* m_scenario;
9568 float m_last_update_time;
9570 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
Definition: diguyViewLabel.h:44
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:64
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
Summary:
Definition: diguyViewLightSettings.h:45
diguyCallbackReturn diguyCharacterCallback(diguyCharacter *character, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:51
diguyCharacterTypeMapField
This enumeration allows type map fields to be queried using a numerical value rather than a string na...
Definition: diguyCharacterTypeMap.h:33
diguyHistoryType
DI-Guy history types.
Definition: diguy_constants.h:280
Definition: diguyPathShape.h:30
Definition: diguyViewLight.h:55
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:30
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:690
As string: "unknown".
Definition: diguyCharacterTypeMap.h:38
diguyScenarioMergeInitialSettings
This enumeration tells DI-Guy what values to use as defaults when the diguyScenario::create_merge_set...
Definition: diguy_constants.h:688
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:290
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
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:100
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:80
Definition: diguyWaypoint.h:29
Definition: diguySensorRegion.h:38
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
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
static double t
4 Header files and forward declarations
Definition: simple_playback_ogl.cpp:55
Definition: diguySignal.h:36
Definition: diguy_constants.h:1519
diguyCallbackReturn diguySignalCallback(diguySignal *signal, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:193
Definition: diguyViewFog.h:35
diguyCallbackReturn
DI-Guy callbacks return a value of type diguyCallbackReturn, which will be DIGUY_CALLBACK_STOP or DIG...
Definition: diguy_constants.h:96
diguyMotionVariant
Definition: diguyMotionVariant.h:26
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:524
Definition: diguyInteractionMachine.h:323
diguyTextureUniformPatchLocations
This enumeration lists various types of texture atlases.
Definition: diguyGraphicsTexture.h:97
Definition: diguyVariable.h:38
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:132
diguyScenarioPlaybackMode
This enumeration identifies which playback mode time should follow.
Definition: diguy_constants.h:501
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:26
diguyDatetimeAdvanceMethod
This enumeration lists the methods in which the datetime of a scenario can advance.
Definition: diguy_constants.h:1613
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:56
diguyCallbackReturn diguyViewCameraCallback(diguyViewCamera *camera, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:205