14 #ifndef __diguyScenario_H
15 #define __diguyScenario_H
20 #define CPLUSPLUS_ONLY
145 const char* get_name();
157 const char* get_type_name();
164 const char* get_description();
177 #ifdef CPLUSPLUS_ONLY
278 int update2(
float t,
float realtime_t);
303 int set_playback_loop(
int playback_loop);
343 int set_tick_dt(
float tick_dt);
375 float get_realtime_t();
388 float get_desired_t();
405 int set_tout(
float tout);
430 void set_tout_enabled(
int tout_enabled);
443 int get_tout_enabled();
457 int get_playback_loop();
472 int get_ticks_can_be_dropped();
516 void set_ticks_can_be_dropped(
int ticks_can_be_dropped);
524 long get_max_ticks_behind_until_drop();
545 void set_max_ticks_behind_until_drop(
long max_ticks_behind_until_drop);
581 int set_playback_mode_stop();
601 int set_playback_mode_play();
642 float derive_playback_mode_dt(
float dt_in);
663 #ifdef CPLUSPLUS_ONLY
690 int load(
const char* filename);
735 int save_as(
const char* filename);
753 const char* get_filename();
765 const char* get_filename_without_directory();
791 void set_unsaved(
int unsaved);
793 #endif // CPLUSPLUS_ONLY
801 #ifdef CPLUSPLUS_ONLY
865 int draw_pass2(
int also_call_post_draw = 1);
877 int draw_particles();
893 void pre_draw_cull_state_reset();
906 void post_draw_cull_state_save();
935 int post_draw(
int call_plugins_post_draw = 1,
936 int call_lua_packages_draw = 1,
937 int call_post_draw_callback = 1);
971 int set_graphics_attach_ptr(
void* graphics_attach_ptr);
973 #endif // CPLUSPLUS_ONLY
1136 int merge(
const char* filename,
1162 int merge_object(
const char*
string);
1203 int include_object_library(
const char* library_name);
1219 int uninclude_object_library(
const char* library_name);
1249 void set_base_datetime(
int year = -1,
1263 void set_base_datetime(
const char* datetime_string,
1264 const char* format);
1272 void get_base_datetime(
int* year = NULL,
1292 void set_base_datetime_default_to_now(
int to_now);
1300 int get_base_datetime_default_to_now();
1308 void set_base_datetime_default_to_today(
int to_today);
1316 int get_base_datetime_default_to_today();
1328 void set_current_datetime(
int year = -1,
1342 void set_current_datetime(
const char* datetime_string,
1343 const char* format);
1351 void get_current_datetime(
int* year = NULL,
1369 const char* get_current_datetime_string(
const char* format);
1377 void set_datetimes_are_utc(
int are_utc);
1384 int get_datetimes_are_utc();
1392 void set_utc_offset_hours(
float utc_offset_hours);
1399 float get_utc_offset_hours();
1407 void set_use_local_tz_utc_offset_hours(
int use_local_tz);
1410 int get_use_local_tz_utc_offset_hours();
1429 void set_current_datetime_advance_factor(
float advance_factor);
1432 float get_current_datetime_advance_factor();
1439 void get_network_datetime(
int* year = NULL,
1472 int set_tin_time_of_day(
float t);
1489 float get_tin_time_of_day();
1507 float get_time_of_day();
1520 #ifdef CPLUSPLUS_ONLY
1553 int add_appearance(
const char* appearance,
1554 char** equipment_list,
1555 char** character_types,
1583 int add_appearance_based_on_existing_appearance(
const char* appearance,
1584 const char* existing_appearance,
1585 char** equipment_list);
1613 int remove_appearance(
const char* appearance);
1615 #endif // CPLUSPLUS_ONLY
1631 int get_num_character_types_with_appearance(
const char* appearance_name);
1648 const char *get_character_type_from_appearance(
const char* appearance_name,
int index = 0);
1676 const char *get_hand_item_class(
const char *char_type_name,
const char *appearance_name = NULL);
1691 int get_num_hand_items_in_class(
const char *hand_item_class);
1708 const char *get_hand_item_from_class(
const char *hand_item_class,
int index);
1739 int preload_character_type(
const char* character_type);
1758 int preload_appearance(
const char* appearance);
1779 int preload_gesture(
const char* character_type,
const char* gesture_name);
1805 void set_character_culling_enabled(
int character_culling);
1819 int get_character_culling_enabled();
1829 void set_scene_object_culling_enabled(
int object_culling);
1843 int get_scene_object_culling_enabled();
1853 void set_scene_object_sub_culling_enabled(
int object_culling);
1867 int get_scene_object_sub_culling_enabled();
1878 void set_character_visualize_bounds_enabled(
int visualize_bounds);
1893 int get_character_visualize_bounds_enabled();
1904 void set_scene_object_visualize_bounds_enabled(
int val);
1919 int get_scene_object_visualize_bounds_enabled();
1986 int get_num_character_types();
1997 const char* get_character_type_at_index(
int index);
2010 const char* get_character_type_abbreviation(
const char* character_type);
2039 const char* get_character_type_deprecated_at_version(
const char* character_type);
2070 const char* get_character_type_deprecated_suggested_alternatives(
const char* character_type);
2095 int get_character_type_quality_bias(
const char* character_type);
2128 const char* get_character_type_default_appearance(
const char* character_type);
2140 const char* get_character_type_default_skinned_appearance(
const char* character_type);
2152 int get_character_type_num_appearances(
const char* character_type);
2166 const char* get_character_type_appearance_at_index(
const char* character_type,
2189 int get_appearance_quality_bias(
const char * appearance);
2203 int get_num_appearances_of_appearance_type(
const char* character_type,
const char* base_appearance,
diguyCharacterAppearanceTypes appearance_type);
2218 const char* get_appearance_name_at_index(
const char* character_type,
const char* base_appearance,
diguyCharacterAppearanceTypes appearance_type,
int index);
2230 int get_character_type_num_actions(
const char* character_type);
2244 const char* get_character_type_action_at_index(
const char* character_type,
2259 float get_character_type_action_speed(
const char* character_type,
2260 const char* action_name);
2274 float get_character_type_action_duration(
const char* character_type,
2275 const char* action_name);
2289 float get_character_type_action_distance(
const char* character_type,
2290 const char* action_name);
2304 int get_character_type_action_displacement(
const char* character_type,
2305 const char* action_name,
float* x,
float* y,
float* z);
2325 int get_character_type_transition_info(
const char* character_type,
2341 const char* character_type,
2342 const char* action_name);
2356 float get_character_type_action_facing_angle_in(
const char* character_type,
2357 const char* action_name);
2371 float get_character_type_action_facing_angle_out(
const char* character_type,
2372 const char* action_name);
2387 int get_character_type_num_gestures(
const char* character_type);
2403 const char* get_character_type_gesture_at_index(
const char* character_type,
2444 const char* character_type,
2445 const char* appearance = NULL,
2446 const char* head_appearance = NULL,
2447 const char* hand_item = NULL);
2476 const char* character_type,
2477 const char* appearance = NULL);
2566 diguyCharacter* retrieve_character_from_recycle_bin(
const char* name,
2567 const char* character_type,
2568 const char* appearance,
2569 int make_character_temporary = 0);
2576 int get_num_characters();
2654 int get_num_path_shapes();
2786 diguyWaypoint* create_waypoint(
float x = 0.0f,
float y = 0.0f,
float z = 0.0f,
2787 float yaw = 0.0f,
float roll = 0.0f,
float pitch = 0.0f,
2868 const char* field1_string,
const char* field1_value,
const char* field1_alternate_value,
2869 const char* field2_string = NULL,
const char* field2_value = NULL,
const char* field2_alternate_value = NULL,
2870 const char* field3_string = NULL,
const char* field3_value = NULL,
const char* field3_alternate_value = NULL,
2871 const char* field4_string = NULL,
const char* field4_value = NULL,
const char* field4_alternate_value = NULL,
2872 const char* field5_string = NULL,
const char* field5_value = NULL,
const char* field5_alternate_value = NULL,
2873 const char* field6_string = NULL,
const char* field6_value = NULL,
const char* field6_alternate_value = NULL,
2874 const char* field7_string = NULL,
const char* field7_value = NULL,
const char* field7_alternate_value = NULL,
2875 const char* field8_string = NULL,
const char* field8_value = NULL,
const char* field8_alternate_value = NULL);
2901 int get_num_character_type_map_entries();
2924 int get_num_type_map_character_classes();
2932 const char* get_type_map_character_class_at_index(
int index);
2949 int get_num_type_map_categories(
const char* character_class);
2957 const char* get_type_map_category_at_index(
const char* character_class,
2975 int get_num_type_map_subcategories(
const char* character_class,
2976 const char* category);
2984 const char* get_type_map_subcategory_at_index(
const char* character_class,
2985 const char* category,
3004 int get_num_signals();
3069 void reset_signals();
3082 int signal_palette_hide_all(
const char* filter = NULL);
3094 int signal_palette_show_all(
const char* filter = NULL);
3116 int get_num_sounds();
3175 const char* sound_filename = NULL);
3221 int stop_all_sounds(
float rampdown_time = 0.0f);
3241 int play_3d_sound(
const char* name,
3242 float x,
float y,
float z,
3262 int get_num_groups();
3351 int get_num_sensor_regions();
3387 int get_num_scene_objects();
3423 void set_scene_objects_enabled(
int scene_objects_enabled);
3431 int get_scene_objects_enabled();
3449 const char* filename);
3506 int get_num_secondary_views();
3518 diguyView* get_secondary_view_at_index(
int index);
3585 void set_scenario_camera_affected_by_script_events(
int flag);
3593 int get_scenario_camera_affected_by_script_events();
3611 void set_scenario_camera_affected_by_script_events_when_iguy_active(
int flag);
3619 int get_scenario_camera_affected_by_script_events_when_iguy_active();
3626 int get_num_camera_settings();
3674 int load_camera_settings(
const char* settings_name,
int update_current_camera = 1);
3765 void load_current_fog(
const char* name);
3772 int get_num_fog_settings();
3815 int load_fog_settings(
const char* settings_name);
3863 int get_num_light_settings();
3907 int load_light_settings(
const char* settings_name,
int light_num = 0);
3914 void set_use_override_ambient_material(
int enabled);
3917 int get_use_override_ambient_material();
3920 void set_global_ambient_material(
float value);
3923 float get_global_ambient_material();
3940 int get_num_info_popups();
3983 int set_info_popup_default_encoding(
const char* info_popup_default_encoding);
3996 const char* get_info_popup_default_encoding();
4014 int get_num_variables();
4090 int get_num_face_expressions();
4135 const char* target_actor =
"exface");
4168 int get_num_chain_settings();
4352 CALLBACK_ID_CREATE = 1,
4353 CALLBACK_ID_DESTROY,
4355 CALLBACK_ID_WAIT_CURSOR_SHOW,
4356 CALLBACK_ID_WAIT_CURSOR_HIDE,
4359 CALLBACK_ID_LOAD_SCENARIO_FILE,
4360 CALLBACK_ID_SAVE_SCENARIO_FILE,
4361 CALLBACK_ID_SCENE_OBJECT_IMPACT,
4362 CALLBACK_ID_LEFT_CLICK_SCENE,
4363 CALLBACK_ID_RIGHT_CLICK_SCENE,
4364 CALLBACK_ID_TIMED_EVENT,
4365 CALLBACK_ID_MANUALLY_INVOKED,
4366 CALLBACK_ID_POST_DRAW,
4367 CALLBACK_ID_PLAYBACK_MODE_CHANGED,
4368 CALLBACK_ID_INPUT_MODE_CHANGED,
4369 CALLBACK_ID_RENDER_MODE_CHANGED,
4370 CALLBACK_ID_PRE_REINITIALIZE,
4371 CALLBACK_ID_POST_REINITIALIZE,
4372 CALLBACK_ID_POST_LOAD_CHECKPOINT
4375 #ifdef CPLUSPLUS_ONLY
4403 int add_callback(
int callback_id,
4405 void* callback_params = 0,
4406 void* callback_user_data = 0,
4407 int remove_on_scenario_load = 1);
4429 int remove_callback(
int callback_id,
4452 int remove_callback_with_user_data(
int callback_id,
4453 void* callback_user_data);
4466 int add_default_character_callback(
int callback_id,
4468 void* callback_params,
4469 void* callback_user_data,
4470 int add_to_existing_objects_flag = 0,
4471 int remove_on_scenario_load = 1);
4490 int remove_default_character_callback(
int callback_id,
4504 int remove_default_character_callback_with_user_data(
int callback_id,
4505 void* callback_user_data);
4519 int add_default_sensor_region_callback(
int callback_id,
4521 void* callback_params,
4522 void* callback_user_data,
4523 int add_to_existing_objects_flag = 0,
4524 int remove_on_scenario_load = 1);
4543 int remove_default_sensor_region_callback(
int callback_id,
4562 int remove_default_sensor_region_callback_with_user_data(
int callback_id,
4563 void* callback_user_data);
4575 int add_default_signal_callback(
int callback_id,
4577 void* callback_params,
4578 void* callback_user_data,
4579 int add_to_existing_objects_flag = 0,
4580 int remove_on_scenario_load = 1);
4599 int remove_default_signal_callback(
int callback_id,
4618 int remove_default_signal_callback_with_user_data(
int callback_id,
4619 void* callback_user_data);
4631 int add_default_variable_callback(
int callback_id,
4633 void* callback_params,
4634 void* callback_user_data,
4635 int add_to_existing_objects_flag = 0,
4636 int remove_on_scenario_load = 1);
4655 int remove_default_variable_callback(
int callback_id,
4674 int remove_default_variable_callback_with_user_data(
int callback_id,
4675 void* callback_user_data);
4692 int add_default_view_callback(
int callback_id,
4694 void* callback_params,
4695 void* callback_user_data,
4696 int add_to_existing_objects_flag = 1,
4697 int remove_on_scenario_load = 1);
4716 int remove_default_view_callback(
int callback_id,
4735 int remove_default_view_callback_with_user_data(
int callback_id,
4736 void* callback_user_data);
4748 int add_default_camera_callback(
int callback_id,
4750 void* callback_params,
4751 void* callback_user_data,
4752 int add_to_existing_objects_flag = 0,
4753 int remove_on_scenario_load = 1);
4772 int remove_default_camera_callback(
int callback_id,
4791 int remove_default_camera_callback_with_user_data(
int callback_id,
4792 void* callback_user_data);
4804 int add_default_fog_callback(
int callback_id,
4806 void* callback_params,
4807 void* callback_user_data,
4808 int add_to_existing_objects_flag = 0,
4809 int remove_on_scenario_load = 1);
4828 int remove_default_fog_callback(
int callback_id,
4847 int remove_default_fog_callback_with_user_data(
int callback_id,
4848 void* callback_user_data);
4860 int add_default_light_callback(
int callback_id,
4862 void* callback_params,
4863 void* callback_user_data,
4864 int add_to_existing_objects_flag = 0,
4865 int remove_on_scenario_load = 1);
4884 int remove_default_light_callback(
int callback_id,
4903 int remove_default_light_callback_with_user_data(
int callback_id,
4904 void* callback_user_data);
4918 void manually_invoke_callbacks_now(
int callback_id);
4953 int add_callback_script(
int callback_id,
4954 const char* callback_script,
4955 const char* callback_script_type = NULL,
4956 int remove_on_scenario_load = 1);
4990 int remove_callback_script(
int callback_id,
4991 const char* callback_script,
4992 const char* callback_script_type = NULL);
5006 int add_default_character_callback_script(
int callback_id,
5007 const char* callback_script,
5008 const char* callback_script_type = NULL,
5009 int add_to_existing_objects_flag = 0,
5010 int remove_on_scenario_load = 1);
5023 int remove_default_character_callback_script(
int callback_id,
5024 const char* callback_script,
5025 const char* callback_script_type = NULL);
5039 int add_default_sensor_region_callback_script(
int callback_id,
5040 const char* callback_script,
5041 const char* callback_script_type = NULL,
5042 int add_to_existing_objects_flag = 0,
5043 int remove_on_scenario_load = 1);
5056 int remove_default_sensor_region_callback_script(
int callback_id,
5057 const char* callback_script,
5058 const char* callback_script_type = NULL);
5072 int add_default_signal_callback_script(
int callback_id,
5073 const char* callback_script,
5074 const char* callback_script_type = NULL,
5075 int add_to_existing_objects_flag = 0,
5076 int remove_on_scenario_load = 1);
5089 int remove_default_signal_callback_script(
int callback_id,
5090 const char* callback_script,
5091 const char* callback_script_type = NULL);
5105 int add_default_variable_callback_script(
int callback_id,
5106 const char* callback_script,
5107 const char* callback_script_type = NULL,
5108 int add_to_existing_objects_flag = 0,
5109 int remove_on_scenario_load = 1);
5122 int remove_default_variable_callback_script(
int callback_id,
5123 const char* callback_script,
5124 const char* callback_script_type = NULL);
5138 int add_default_view_callback_script(
int callback_id,
5139 const char* callback_script,
5140 const char* callback_script_type = NULL,
5141 int add_to_existing_objects_flag = 0,
5142 int remove_on_scenario_load = 1);
5155 int remove_default_view_callback_script(
int callback_id,
5156 const char* callback_script,
5157 const char* callback_script_type = NULL);
5171 int add_default_camera_callback_script(
int callback_id,
5172 const char* callback_script,
5173 const char* callback_script_type = NULL,
5174 int add_to_existing_objects_flag = 0,
5175 int remove_on_scenario_load = 1);
5188 int remove_default_camera_callback_script(
int callback_id,
5189 const char* callback_script,
5190 const char* callback_script_type = NULL);
5204 int add_default_fog_callback_script(
int callback_id,
5205 const char* callback_script,
5206 const char* callback_script_type = NULL,
5207 int add_to_existing_objects_flag = 0,
5208 int remove_on_scenario_load = 1);
5221 int remove_default_fog_callback_script(
int callback_id,
5222 const char* callback_script,
5223 const char* callback_script_type = NULL);
5237 int add_default_light_callback_script(
int callback_id,
5238 const char* callback_script,
5239 const char* callback_script_type = NULL,
5240 int add_to_existing_objects_flag = 0,
5241 int remove_on_scenario_load = 1);
5254 int remove_default_light_callback_script(
int callback_id,
5255 const char* callback_script,
5256 const char* callback_script_type = NULL);
5303 int map_event_handler_to_callback_id(
int callback_id,
5304 const char* handler_name);
5323 int unmap_event_handler_from_callback_id(
int callback_id,
5324 const char* handler_name,
5325 int unmap_all_matches = 0);
5364 #ifdef CPLUSPLUS_ONLY
5393 int register_character_event_handler(
const char* handler_name,
5395 void* callback_user_data = 0);
5434 int register_character_event_handler_from_library(
const char* handler_name,
5435 const char* library_name,
5436 const char* function_name,
5437 void* callback_user_data = 0);
5461 int register_character_event_handler_script(
const char* handler_name,
5462 const char* handler_script,
5463 const char* handler_script_type = 0);
5475 int has_registered_character_event_handler(
const char* handler_name);
5492 int unregister_character_event_handler(
const char* handler_name);
5494 #ifdef CPLUSPLUS_ONLY
5507 int register_signal_event_handler(
const char* handler_name,
5509 void* callback_user_data = 0);
5520 int register_signal_event_handler_from_library(
const char* handler_name,
5521 const char* library_name,
5522 const char* function_name,
5523 void* callback_user_data = 0);
5532 int register_signal_event_handler_script(
const char* handler_name,
5533 const char* handler_script,
5534 const char* handler_script_type = 0);
5543 int has_registered_signal_event_handler(
const char* handler_name);
5552 int unregister_signal_event_handler(
const char* handler_name);
5554 #ifdef CPLUSPLUS_ONLY
5567 int register_sensor_region_event_handler(
const char* handler_name,
5569 void* callback_user_data = 0);
5580 int register_sensor_region_event_handler_from_library(
const char* handler_name,
5581 const char* library_name,
5582 const char* function_name,
5583 void* callback_user_data = 0);
5592 int register_sensor_region_event_handler_script(
const char* handler_name,
5593 const char* handler_script,
5594 const char* handler_script_type = 0);
5603 int has_registered_sensor_region_event_handler(
const char* handler_name);
5612 int unregister_sensor_region_event_handler(
const char* handler_name);
5614 #ifdef CPLUSPLUS_ONLY
5627 int register_variable_event_handler(
const char* handler_name,
5629 void* callback_user_data = 0);
5640 int register_variable_event_handler_from_library(
const char* handler_name,
5641 const char* library_name,
5642 const char* function_name,
5643 void* callback_user_data = 0);
5652 int register_variable_event_handler_script(
const char* handler_name,
5653 const char* handler_script,
5654 const char* handler_script_type = 0);
5663 int has_registered_variable_event_handler(
const char* handler_name);
5672 int unregister_variable_event_handler(
const char* handler_name);
5721 int save_review_data(
const char* filename);
5729 int get_loaded_from_review_data();
5820 int get_replaying_history();
5839 void set_history_max_sound_instances(
int num_sound_instances);
5882 void set_automatic_graphics_lod_switching(
int enable_graphics_lod_switching);
5885 int get_automatic_graphics_lod_switching();
5889 int set_character_culling_distance(
float dist);
5892 float get_character_culling_distance();
5896 int set_vehicle_culling_distance(
float dist);
5899 float get_vehicle_culling_distance();
5903 int set_prop_culling_distance(
float dist);
5905 float get_prop_culling_distance();
5914 void set_instancing_enabled(
int val);
5917 int get_instancing_enabled()
const;
5924 void set_instancing_min_lod(
int val);
5927 int get_instancing_min_lod()
const;
5930 void set_visualize_instance_groups(
int val);
5933 int get_visualize_instance_groups()
const;
5946 void set_instancing_tbo_patching_enabled(
int enable_patching);
5947 int get_instancing_tbo_patching_enabled()
const;
5952 void set_instancing_position_callback_enabled(
int use_user_position_matrices);
5953 int get_instancing_position_callback_enabled()
const;
5961 void set_num_extra_per_instance_data_floats(
int number);
5962 int get_num_extra_per_instance_data_floats()
const;
5965 void build_instance_groups();
5969 void update_instancing_data();
5972 void get_tbo_instance_data(
int & num_floats,
const float*& data);
5974 #ifdef CPLUSPLUS_ONLY
6020 void set_default_lod_ranges(
const char* character_type,
float* ranges);
6056 void set_scale_graphics_lod_ranges_from_view_settings(
int do_scale);
6064 int get_scale_graphics_lod_ranges_from_view_settings();
6099 void set_automatic_motion_lod_switching(
int enable_motion_lod_switching);
6112 int get_automatic_motion_lod_switching();
6155 int eval_script(
const char* script_text,
6156 int save_as_transient = 0,
6157 const char* script_type = NULL,
6158 const char* script_source = NULL);
6180 int eval_script_file(
const char* filename,
6181 const char* script_type = NULL);
6202 int trigger_script(
const char* script_name);
6221 void trigger_script_delayed(
const char* script_name,
float t_delay);
6242 int trigger_decision(
const char* decision_name);
6261 void trigger_decision_delayed(
const char* decision_name,
float t_delay);
6292 void push_transient_script_event(
float t,
const char* script_text,
const char* script_type);
6299 void clear_transient_script_events();
6316 int save_transient_script_events(
const char* filename);
6333 int load_transient_script_events(
const char* filename);
6345 int load_package(
const char* filename,
6346 const char* language = NULL,
6347 int warn_if_not_found = 1);
6358 int load_package_with_dependancy(
const char* filename,
6359 const char* depends_on_package,
6360 const char* language = NULL,
6361 int warn_if_not_found = 1 );
6393 int get_character_type_num_postures(
const char* character_type);
6437 const char* action_name);
6464 int get_character_type_num_variants(
const char* character_type);
6508 diguyMotionVariant get_character_type_action_primary_variant(
const char* character_type,
6509 const char* action_name);
6538 int get_character_type_action_num_variants(
const char* character_type,
6539 const char* action_name);
6566 diguyMotionVariant get_character_type_action_variant_at_index(
const char* character_type,
6567 const char* action_name,
6592 int get_character_type_num_directions(
const char* character_type);
6648 int get_num_interaction_machines();
6786 int show_notification_with_shared_interaction_machine(
const char* heading,
6788 int pause_scenario = 0,
6789 const char* input_text = NULL,
6877 int get_num_labels();
6895 void reset_labels();
6934 int draw_character_labels();
6937 void update_character_labels();
7003 int get_num_panels();
7040 int get_num_minds();
7047 const char* get_mind_name_at_index(
int index);
7115 int make_companion_of_all = 1);
7141 int also_destroy_crowd_members = 0,
7142 int also_destroy_path_shapes = 0,
7143 int delay_destruction = 0);
7150 int get_num_crowds();
7172 const char* get_unique_crowd_name(
const char* base_name);
7187 diguyCrowd* find_crowd(
const char* crowd_name);
7206 diguyCrowd* find_or_create_crowd(
const char* crowd_name,
7207 int make_companion_of_all = 1);
7219 void set_create_network_crowds(
int do_create);
7227 int get_create_network_crowds();
7281 int get_num_crowd_profiles();
7345 int force_octtree_generation();
7355 int use_bounding_box_only = 0);
7372 int preload_octtree(
const char* character_type,
const char* appearance);
7384 int check_visibility(
float x1,
float y1,
float z1,
7385 float x2,
float y2,
float z2);
7398 #ifdef CPLUSPLUS_ONLY
7451 void set_altitude_max_climb(
float altitude_max_climb);
7452 float get_altitude_max_climb();
7456 void set_altitude_max_drop(
float altitude_max_drop);
7457 float get_altitude_max_drop();
7503 int trigger_detonation(
const char* munition_name,
7504 float x,
float y,
float z,
7505 const char* attacker_name = NULL,
7506 float radius_override = -1.0f,
7507 int broadcast_on_network = 1,
7508 int ground_clamp_impact = 1 );
7583 int use_octtree = 0);
7623 int use_octtree = 0);
7658 int intersect_static_geometry(
7659 float origin_x,
float origin_y,
float origin_z,
7660 float dir_x,
float dir_y,
float dir_z,
7661 float max_distance_to_test,
7662 float* intersection_x,
float* intersection_y,
float* intersection_z,
7663 float* normal_x = NULL,
float* normal_y = NULL,
float* normal_z = NULL,
7664 int use_callback = 1);
7699 float ground_clamp(
float x,
float y,
float z,
7701 int use_altitude_function = 1,
7702 int use_octtree = 0);
7705 #ifdef CPLUSPLUS_ONLY
7792 diguyImpact* map_color_to_impact(
char r,
char g,
char b);
7822 void set_last_impact_been_processed();
7832 void set_last_env_impact_info(
const diguyImpact& impact);
7846 void set_max_unprocessed_impacts(
int max_unprocessed_impacts);
7849 #ifdef CPLUSPLUS_ONLY
7943 float origin_x,
float origin_y,
float origin_z,
7944 float dir_x,
float dir_y,
float dir_z,
7945 float max_distance_to_test,
7946 int use_callback = 1);
7973 diguyRegion* find_or_create_region(
const char* name);
8022 int get_num_regions();
8082 int find_navigation_path(
float x1,
float y1,
float z1,
8083 float x2,
float y2,
float z2,
8084 const char* via_region,
8086 float cost_bias_for_preferred_regions = 0.25f,
8088 float cost_bias_for_neutral_regions = 1.1f,
8090 float cost_bias_for_repulsive_regions = 100.0f);
8105 void set_max_distance_planning_multiplier(
float mul);
8113 float get_max_distance_planning_multiplier();
8126 float get_time_spent_path_planning_this_frame();
8139 void set_multithreaded_path_planning_enabled(
int value);
8146 int get_multithreaded_path_planning_enabled();
8164 int get_num_formations();
8273 void set_draw_authoring_visuals(
int visible);
8275 int get_draw_authoring_visuals();
8311 void set_hide_author_selection_handles_during_play(
int visible);
8312 int get_hide_author_selection_handles_during_play();
8330 int get_weapon_fire_effects_enabled();
8337 int set_weapon_fire_effects_enabled(
int enabled);
8344 int get_num_active_fire_effects();
8353 int get_weapon_fire_effect_data(
int index,
float * radius,
8354 double * position_x,
double * position_y,
double * position_z,
8355 float * color_r,
float * color_g,
float * color_b,
8357 float * falloff_rsq);
8360 int get_num_active_lights();
8363 int sort_active_lights();
8408 int get_current_character_index();
8419 int set_current_crowd(
diguyCrowd* current_crowd);
8447 int set_current_crowd_profile_by_name(
const char* crowd_profile_name);
8464 int set_current_region(
diguyRegion* current_region);
8484 void set_particle_module_disabled(
int disable_particle_module);
8503 int create_particle_system(
const char* description_name,
8504 float x,
float y,
float z,
8505 int record_transient_event = 1,
8506 float duration = -1.0f);
8519 int create_particle_system_with_orientation(
const char* description_name,
8520 float x,
float y,
float z,
8521 float rz,
float rx,
float ry,
8522 int record_transient_event = 1,
8523 float duration = -1.0f);
8531 int has_particle_description(
const char* description_name);
8538 void set_global_wind(
float x,
float y,
float z);
8566 const char* lua_get_object_field_as_string(
const char* lua_object,
8567 const char* field_name);
8591 const char* lua_evaluate_object_function(
const char* lua_object,
8592 const char* function_name,
8593 const char* argument = NULL,
8594 int has_return_string = 0);
8601 const char* lua_evaluate_object_function_2a(
const char* lua_object,
8602 const char* function_name,
8603 const char* argument,
8604 const char* argument2,
8605 int has_return_string = 0);
8612 const char* lua_evaluate_object_function_3a(
const char* lua_object,
8613 const char* function_name,
8614 const char* argument,
8615 const char* argument2,
8616 const char* argument3,
8617 int has_return_string = 0);
8624 const char* lua_evaluate_object_function_4a(
const char* lua_object,
8625 const char* function_name,
8626 const char* argument,
8627 const char* argument2,
8628 const char* argument3,
8629 const char* argument4,
8630 int has_return_string = 0);
8640 int lua_send_message_to_object(
const char* lua_object,
8642 const char* message_type,
8643 const char* message,
8644 const char* message_params = NULL);
8646 #ifdef CPLUSPLUS_ONLY
8670 void* get_lua_state();
8716 int push_qt_pointer_to_lua(
void* lua_state,
8717 const char* class_name,
8764 const char* lua_evaluate_object_function_4a_flex(
const char* lua_object,
8765 const char* function_name,
8766 const char* arg1_type,
void* argument1,
8767 const char* arg2_type,
void* argument2,
8768 const char* arg3_type,
void* argument3,
8769 const char* arg4_type,
void* argument4,
8770 int has_return_string = 0);
8782 const char* lua_evaluate_global_function_4a_flex(
const char* function_name,
8783 const char* arg_type,
void* argument,
8784 const char* arg_type2,
void* argument2,
8785 const char* arg_type3,
void* argument3,
8786 const char* arg_type4,
void* argument4,
8787 int has_return_string = 0);
8799 int lua_log_printf(
int notify_level,
const char*
string);
8807 const char* dump_package_info(
const char* package_name);
8842 const char* message_type,
8843 const char* message,
8844 const char* message_params = NULL);
8874 const char* message_type,
8875 const char* message,
8876 const char* message_params = NULL);
8904 const char * group_name,
8906 const char* message_type,
8907 const char* message,
8908 const char* message_params = NULL);
8928 int get_eval_decisions_as_scripts();
8936 void set_eval_decisions_as_scripts(
int eval_decisions_as_scripts);
8960 void wait_cursor_push();
8966 void wait_cursor_pop();
8972 void set_character_sorting_enabled(
int enabled);
8973 int get_character_sorting_enabled();
8975 #ifdef CPLUSPLUS_ONLY
8992 void set_graphics_api_node_ptr(
void* node_ptr);
9003 void* get_graphics_api_node_ptr();
9013 void set_draw_character_shadow_disks(
int draw_character_shadow_disks);
9020 int get_draw_character_shadow_disks();
9027 int get_shadow_map_size();
9035 int set_shadow_map_size(
int shadow_size);
9043 void set_default_character_scene_graph_mask(
unsigned long mask);
9044 unsigned long get_default_character_scene_graph_mask();
9052 void set_default_scene_object_scene_graph_mask(
unsigned long mask);
9053 unsigned long get_default_scene_object_scene_graph_mask();
9060 void set_internal_int(
int var,
int val);
9061 void set_internal_float(
int var,
float val);
9069 int set_num_active_point_lights(
int active_lights);
9078 int get_num_active_point_lights();
9104 int set_world_bounds(
float x_min,
float y_min,
float z_min,
9105 float x_max,
float y_max,
float z_max);
9121 int get_world_bounds(
float* x_min,
float* y_min,
float* z_min,
9122 float* x_max,
float* y_max,
float* z_max);
9141 void set_checkpoint_frequency(
float freq);
9147 float get_checkpoint_frequency();
9153 void set_checkpointing_enabled(
int enable_checkpointing);
9159 int get_checkpointing_enabled();
9193 void set_initial_render_mode(
const char* render_mode);
9201 const char* get_initial_render_mode();
9209 void set_current_render_mode(
const char* render_mode);
9222 const char* derive_render_mode_from_light_settings(
int set_current_to_derived = 1);
9225 const char* get_current_render_mode();
9240 void set_default_character_shader(
const char* render_mode,
9241 const char* shader_name,
9242 int update_existing_characters = 1);
9245 const char* get_default_character_shader(
const char* render_mode);
9260 void set_default_scene_object_shader(
const char* render_mode,
9261 const char* shader_name,
9262 int update_existing_scene_objects = 1);
9265 const char* get_default_scene_object_shader(
const char* render_mode);
9280 void set_default_particle_system_shader(
const char* render_mode,
9281 const char* shader_name,
9282 int update_existing_particle_systems = 1);
9285 const char* get_default_particle_system_shader(
const char* render_mode);
9297 int facefx_mount_animset(
const char* actor_name,
const char* file_name);
9307 int set_vehicle_smoothing_enabled(
int enable_smoothing);
9308 int get_vehicle_smoothing_enabled();
9316 int set_realtime_ik_enabled(
int val);
9317 int get_realtime_ik_enabled();
9319 int set_draw_ik_visuals(
int val);
9320 int get_draw_ik_visuals();
9322 int set_draw_skeletons(
int val);
9323 int get_draw_skeletons();
9325 float get_last_update_time()
9327 if(m_last_update_time == -9999.0f){
9330 return m_last_update_time;
9333 void set_disable_profiler();
9337 void calculate_character_lods();
9340 const char* get_lua_field_as_string(
const char* lua_object,
const char* field_name,
9341 int warn_if_no_field = 1);
9343 float get_lua_field_as_float(
const char* lua_object,
const char* field_name,
9344 int warn_if_no_field = 1,
9345 int* found_field = NULL);
9347 void update_particle_preview(
float time);
9372 int get_character_type_num_head_appearances(
const char* character_type);
9378 const char* get_character_type_head_appearance_at_index(
const char* character_type,
9381 #ifdef CPLUSPLUS_ONLY
9388 static int add_default_callback(
int callback_id,
9390 void* callback_params = 0,
9391 void* callback_user_data = 0);
9399 static int remove_default_callback(
int callback_id,
9411 static int remove_default_callback_with_user_data(
int callback_id,
9412 void* callback_user_data);
9420 static int add_default_callback_script(
int callback_id,
9421 const char* callback_script,
9422 const char* callback_script_type);
9430 static int remove_default_callback_script(
int callback_id,
9431 const char* callback_script,
9432 const char* callback_script_type);
9441 const char* get_character_type_class(
const char* character_type);
9448 int merge_asset(
const char*
string);
9456 void print_to_log(
int notify_level,
const char*
string);
9459 #ifdef CPLUSPLUS_ONLY
9464 diguyCharacter* create_pending_reflected_character(
const char* name,
9465 const char* character_type,
9466 const char* appearance = NULL);
9468 int set_network_translation(
float x,
float y,
float z);
9469 int get_network_translation(
float* x,
float* y,
float* z);
9476 void set_project_filename(
const char* project_filename);
9484 const char* get_project_filename();
9491 bdiScenario* get_scripted_object();
9511 bdiScenario* m_scenario;
9512 float m_last_update_time;
9514 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:141
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:154
diguyCallbackReturn diguyViewFogCallback(diguyViewFog *fog, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:208
Summary:
Definition: diguyViewLightSettings.h:45
diguyCallbackReturn diguyCharacterCallback(diguyCharacter *character, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:48
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:77
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:129
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:678
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:676
diguyCallbackReturn diguySensorRegionCallback(diguySensorRegion *sensor_region, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:178
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:54
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:103
diguyCallbackReturn diguyViewLightCallback(diguyViewLight *light, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:172
Represents the scenario currently being portrayed.
Definition: diguyScenario.h:94
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:108
diguyCallbackReturn diguyViewCallback(diguyView *view, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:202
Experimental class for getting transition information.
Definition: diguyTransitionInfo.h:6
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:147
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:61
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:1507
diguyCallbackReturn diguySignalCallback(diguySignal *signal, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:184
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:512
Definition: diguyInteractionMachine.h:323
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:489
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:1601
diguyCallbackReturn diguyVariableCallback(diguyVariable *variable, int callback_id, void *callback_params, void *callback_user_data)
Definition: diguy_typedefs.h:190
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:196