34 #ifndef __diguyCrowd_H
35 #define __diguyCrowd_H
41 #define CPLUSPLUS_ONLY
48 class bdiScenarioCrowd;
79 const char* get_name();
95 int set_name(
const char* name);
107 const char* get_ui_name();
130 int set_ui_name(
const char* ui_name);
147 const char* get_type_name();
171 int set_enabled(
int enabled);
203 void set_all_members_enabled(
int enabled);
219 float get_awareness_radius();
236 int set_awareness_radius(
float radius);
309 int remove_all_members();
333 int get_num_members();
405 int agents_attack_character(
const char* character_name);
431 int agents_attack_group(
const char* group_name);
461 int agents_flee_character(
const char* character_name,
463 int danger_level = 50);
486 int agents_flee_group(
const char* group_name,
488 int danger_level = 50);
511 int agents_flee_crowd(
const char* crowd_name,
513 int danger_level = 50);
535 int agents_flee_location(
float x,
float y,
float z,
537 int danger_level = 50);
556 void agents_remove_all_flee_objects();
586 int agents_mingle_in_region(
const char* region_name = NULL,
587 const char* subregion = NULL);
620 int agents_pursue_character(
const char* character_name);
646 int agents_pursue_group(
const char* group_name);
670 int agents_chain_pursue(
const char* leader_name);
700 int agents_travel_behavior_path(
const char* direction = NULL,
701 const char* at_end = NULL,
702 int waypoint_index = -1,
703 float offset_y = 0.5f);
727 int agents_travel_path_shape(
const char* path_shape_name,
728 const char* direction = NULL,
729 const char* at_end = NULL,
730 int waypoint_index = -1,
731 float offset_y = 0.5f);
755 int agents_travel_region_border(
const char* region_name,
756 const char* subregion = NULL);
785 int agents_wander_region(
const char* region_name = NULL,
786 const char* subregion = NULL);
815 int agents_stop_behavior();
839 int set_current_behavior(
const char* behavior_name);
856 const char* get_current_behavior(
int member_index = 0);
875 int set_current_behavior_path_shape(
const char* behavior_path_shape_name,
876 float max_time_until_move_on = 0.0f);
902 int set_current_behavior_region(
const char* behavior_region_name,
903 const char* subregion = NULL,
904 float max_time_until_move_on = 0.0f);
925 int set_current_focus_character(
const char* focus_character_name);
946 int set_current_focus_group(
const char* focus_group_name);
979 int set_current_params_from_profile(
const char* profile_name,
980 int retain_focus_objects = 1,
981 int retain_navigation_values = 1);
1004 void set_current_behavior_region_border_is_solid(
int is_solid);
1042 int set_initial_params_from_profile(
const char* profile_name);
1069 int is_current_behavior(
const char* behavior_name,
1070 float threshold = 0.5f);
1078 int is_current_behavior_and_focus_character(
const char* behavior_name,
1079 const char* focus_character_name,
1080 float threshold = 0.5f);
1088 int is_current_behavior_and_focus_group(
const char* behavior_name,
1089 const char* group_name,
1090 float threshold = 0.5f);
1098 int is_crowd_dead(
float threshold = 0.5f);
1130 int add_companion_crowd(
diguyCrowd* companion_crowd);
1150 int remove_companion_crowd(
diguyCrowd* companion_crowd);
1349 CALLBACK_ID_CREATE = 1,
1350 CALLBACK_ID_DESTROY,
1351 CALLBACK_ID_CROWD_MEMBER_KILLED,
1352 CALLBACK_ID_CROWD_MEMBER_IMPACT,
1353 CALLBACK_ID_NEARBY_SCENE_OBJECT_IMPACT,
1354 CALLBACK_ID_NEARBY_WEAPON_FIRED,
1358 #ifdef CPLUSPLUS_ONLY
1385 int add_callback(
int callback_id,
1387 void* callback_params = 0,
1388 void* callback_user_data = 0);
1406 int remove_callback(
int callback_id,
1425 int remove_callback_with_user_data(
int callback_id,
1426 void* callback_user_data);
1465 int add_callback_script(
int callback_id,
1466 const char* callback_script,
1467 const char* callback_script_type = NULL);
1505 int remove_callback_script(
int callback_id,
1506 const char* callback_script,
1507 const char* callback_script_type = NULL);
1509 #ifdef CPLUSPLUS_ONLY
1520 void all_members_add_character_callback(
int callback_id,
1522 void* callback_params = NULL,
1523 void* callback_user_data = NULL);
1534 void all_members_remove_character_callback(
int callback_id,
1546 void all_members_remove_character_callback_with_user_data(
int callback_id,
1547 void* callback_user_data);
1560 void all_members_add_character_callback_script(
int callback_id,
1561 const char* callback_script,
1562 const char* callback_script_type = NULL);
1573 void all_members_remove_character_callback_script(
int callback_id,
1574 const char* callback_script,
1575 const char* callback_script_type = NULL);
1618 int map_event_handler_to_callback_id(
int callback_id,
1619 const char* handler_name);
1643 int unmap_event_handler_from_callback_id(
int callback_id,
1644 const char* handler_name,
1645 int unmap_all_matches = 0);
1693 void send_message_to_all_members(
const char* message_type,
1694 const char* message,
1695 const char* message_params = NULL);
1730 #ifdef CPLUSPLUS_ONLY
1732 bdiScenarioCrowd* get_scripted_object() {
return m_scripted_object;}
1739 diguyCrowd(bdiScenarioCrowd* scripted_object);
1749 bdiScenarioCrowd* m_scripted_object;
1751 friend class bdiScenarioCrowd;