14 #ifndef __diguyCrowd_H
15 #define __diguyCrowd_H
21 #define CPLUSPLUS_ONLY
28 class bdiScenarioCrowd;
63 const char* get_name();
74 int set_name(
const char* name);
81 const char* get_ui_name();
99 int set_ui_name(
const char* ui_name);
111 const char* get_type_name();
131 int set_enabled(
int enabled);
155 void set_all_members_enabled(
int enabled);
166 float get_awareness_radius();
178 int set_awareness_radius(
float radius);
235 int remove_all_members();
249 int get_num_members();
311 int agents_attack_character(
const char* character_name);
333 int agents_attack_group(
const char* group_name);
359 int agents_flee_character(
const char* character_name,
361 int danger_level = 50);
380 int agents_flee_group(
const char* group_name,
382 int danger_level = 50);
401 int agents_flee_crowd(
const char* crowd_name,
403 int danger_level = 50);
420 int agents_flee_location(
float x,
float y,
float z,
422 int danger_level = 50);
437 void agents_remove_all_flee_objects();
463 int agents_mingle_in_region(
const char* region_name = NULL,
464 const char* subregion = NULL);
493 int agents_pursue_character(
const char* character_name);
515 int agents_pursue_group(
const char* group_name);
535 int agents_chain_pursue(
const char* leader_name);
561 int agents_travel_behavior_path(
const char* direction = NULL,
562 const char* at_end = NULL,
563 int waypoint_index = -1,
564 float offset_y = 0.5f);
584 int agents_travel_path_shape(
const char* path_shape_name,
585 const char* direction = NULL,
586 const char* at_end = NULL,
587 int waypoint_index = -1,
588 float offset_y = 0.5f);
608 int agents_travel_region_border(
const char* region_name,
609 const char* subregion = NULL);
634 int agents_wander_region(
const char* region_name = NULL,
635 const char* subregion = NULL);
660 int agents_stop_behavior();
680 int set_current_behavior(
const char* behavior_name);
692 const char* get_current_behavior(
int member_index = 0);
707 int set_current_behavior_path_shape(
const char* behavior_path_shape_name,
708 float max_time_until_move_on = 0.0f);
730 int set_current_behavior_region(
const char* behavior_region_name,
731 const char* subregion = NULL,
732 float max_time_until_move_on = 0.0f);
749 int set_current_focus_character(
const char* focus_character_name);
766 int set_current_focus_group(
const char* focus_group_name);
796 int set_current_params_from_profile(
const char* profile_name,
797 int retain_focus_objects = 1,
798 int retain_navigation_values = 1);
817 void set_current_behavior_region_border_is_solid(
int is_solid);
850 int set_initial_params_from_profile(
const char* profile_name);
873 int is_current_behavior(
const char* behavior_name,
874 float threshold = 0.5f);
882 int is_current_behavior_and_focus_character(
const char* behavior_name,
883 const char* focus_character_name,
884 float threshold = 0.5f);
892 int is_current_behavior_and_focus_group(
const char* behavior_name,
893 const char* group_name,
894 float threshold = 0.5f);
902 int is_crowd_dead(
float threshold = 0.5f);
929 int add_companion_crowd(
diguyCrowd* companion_crowd);
944 int remove_companion_crowd(
diguyCrowd* companion_crowd);
1122 CALLBACK_ID_CREATE = 1,
1123 CALLBACK_ID_DESTROY,
1124 CALLBACK_ID_CROWD_MEMBER_KILLED,
1125 CALLBACK_ID_CROWD_MEMBER_IMPACT,
1126 CALLBACK_ID_NEARBY_SCENE_OBJECT_IMPACT,
1127 CALLBACK_ID_NEARBY_WEAPON_FIRED,
1131 #ifdef CPLUSPLUS_ONLY
1158 int add_callback(
int callback_id,
1160 void* callback_params = 0,
1161 void* callback_user_data = 0);
1179 int remove_callback(
int callback_id,
1198 int remove_callback_with_user_data(
int callback_id,
1199 void* callback_user_data);
1233 int add_callback_script(
int callback_id,
1234 const char* callback_script,
1235 const char* callback_script_type = NULL);
1268 int remove_callback_script(
int callback_id,
1269 const char* callback_script,
1270 const char* callback_script_type = NULL);
1272 #ifdef CPLUSPLUS_ONLY
1287 void all_members_add_character_callback(
int callback_id,
1289 void* callback_params = NULL,
1290 void* callback_user_data = NULL);
1305 void all_members_remove_character_callback(
int callback_id,
1321 void all_members_remove_character_callback_with_user_data(
int callback_id,
1322 void* callback_user_data);
1335 void all_members_add_character_callback_script(
int callback_id,
1336 const char* callback_script,
1337 const char* callback_script_type = NULL);
1348 void all_members_remove_character_callback_script(
int callback_id,
1349 const char* callback_script,
1350 const char* callback_script_type = NULL);
1392 int map_event_handler_to_callback_id(
int callback_id,
1393 const char* handler_name);
1412 int unmap_event_handler_from_callback_id(
int callback_id,
1413 const char* handler_name,
1414 int unmap_all_matches = 0);
1465 void send_message_to_all_members(
const char* message_type,
1466 const char* message,
1467 const char* message_params = NULL);
1502 #ifdef CPLUSPLUS_ONLY
1504 bdiScenarioCrowd* get_scripted_object() {
return m_scripted_object;}
1511 diguyCrowd(bdiScenarioCrowd* scripted_object);
1521 bdiScenarioCrowd* m_scripted_object;
1523 friend class bdiScenarioCrowd;