static int response_to_collision (entity_messages message, entity *receiver, entity *sender, va_list pargs) { int total_damage_level; float damage_modifier; #if DEBUG_MODULE >= 2 debug_log_entity_message (message, receiver, sender, pargs); #endif damage_modifier = va_arg (pargs, double); damage_client_server_entity (receiver, sender, damage_modifier); total_damage_level = get_local_entity_int_value (receiver, INT_TYPE_DAMAGE_LEVEL); if (total_damage_level <= 0) { kill_client_server_entity (receiver); } return (TRUE); }
static int response_to_unlink_parent (entity_messages message, entity *receiver, entity *sender, va_list pargs) { list_types list_type; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif list_type = va_arg (pargs, list_types); if (list_type == LIST_TYPE_SPECIAL_EFFECT) { // // set the effect_lifetime so that it will be destroyed next update // set_local_entity_float_value (receiver, FLOAT_TYPE_EFFECT_LIFETIME, get_local_entity_float_value (receiver, FLOAT_TYPE_SPRITE_LIFETIME)); } return (TRUE); }
static int response_to_link_child (entity_messages message, entity *receiver, entity *sender, va_list pargs) { #if DEBUG_MODULE list_types list_type; debug_log_entity_message (message, receiver, sender, pargs); list_type = va_arg (pargs, list_types); if (list_type == LIST_TYPE_AIR_TASK) { debug_log ("SS_MSGS: adding task %d to air task list", sender); } else if (list_type == LIST_TYPE_ASSIGNED_AIR_TASK) { debug_log ("SS_MSGS: adding task %d to assigned air task list", sender); } #endif return (TRUE); }
static int response_to_link_parent (entity_messages message, entity *receiver, entity *sender, va_list pargs) { list_types list_type; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif list_type = va_arg (pargs, list_types); if (list_type == LIST_TYPE_AIRCREW) { // // notify group screen to update when player assumes control of helicopter // notify_campaign_screen (CAMPAIGN_SCREEN_GROUP_ADD_MEMBER, sender); } else if (list_type == LIST_TYPE_PILOT) { campaign_screen_update_chat_page_pilot (receiver); } return (TRUE); }
static int response_to_waypoint_lower_undercarriage_action (entity_messages message, entity *receiver, entity *sender, va_list pargs) { #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif if (get_comms_model () == COMMS_MODEL_SERVER) { if ( (get_local_entity_int_value (receiver, INT_TYPE_PLAYER) == ENTITY_PLAYER_AI) || (get_local_entity_int_value (receiver, INT_TYPE_AUTO_PILOT)) ) { lower_client_server_entity_undercarriage (receiver); } } ///////////////////////////////////////////////////////////////// // // ///////////////////////////////////////////////////////////////// return (TRUE); }
static int response_to_unlink_child (entity_messages message, entity *receiver, entity *sender, va_list pargs) { camera *raw; list_types list_type; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif raw = get_local_entity_data (receiver); list_type = va_arg (pargs, list_types); switch (list_type) { //////////////////////////////////////// case LIST_TYPE_VIEW: //////////////////////////////////////// { if (raw->external_view_entity == sender) { raw->external_view_entity = NULL; } notify_view_menu_of_view_list_change (sender); break; } //////////////////////////////////////// case LIST_TYPE_VIEW_WEAPON: //////////////////////////////////////// { ASSERT (sender); if (get_view_mode () == VIEW_MODE_EXTERNAL) { if (get_local_entity_int_value (get_camera_entity (), INT_TYPE_CAMERA_MODE) == CAMERA_MODE_WEAPON) { notify_local_entity (ENTITY_MESSAGE_SET_CAMERA_ACTION, get_camera_entity (), NULL, CAMERA_ACTION_WEAPON_EXPLOSION); reset_weapon_explosion_camera_position (get_local_entity_vec3d_ptr (sender, VEC3D_TYPE_POSITION)); } } break; } } return (TRUE); }
static int response_to_waypoint_raise_undercarriage_reached (entity_messages message, entity *receiver, entity *sender, va_list pargs) { #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif if (get_comms_model () == COMMS_MODEL_SERVER) { if (get_local_entity_int_value (receiver, INT_TYPE_PLAYER) == ENTITY_PLAYER_AI) { raise_client_server_entity_undercarriage (receiver); } } return (TRUE); }
static int response_to_link_child (entity_messages message, entity *receiver, entity *sender, va_list pargs) { list_types list_type; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif list_type = va_arg (pargs, list_types); if (list_type == LIST_TYPE_VIEW) { notify_view_menu_of_view_list_change (NULL); } return (TRUE); }
static int response_to_set_camera_action (entity_messages message, entity *receiver, entity *sender, va_list pargs) { camera *raw; camera_actions action; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif raw = get_local_entity_data (receiver); action = va_arg (pargs, int); set_camera_action (raw, action); return (TRUE); }
static int response_to_unlink_parent (entity_messages message, entity *receiver, entity *sender, va_list pargs) { list_types list_type; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif list_type = va_arg (pargs, list_types); switch (list_type) { //////////////////////////////////////// case LIST_TYPE_GUNSHIP_TARGET: //////////////////////////////////////// { set_local_entity_int_value (receiver, INT_TYPE_GUNSHIP_RADAR_LOS_CLEAR, FALSE); set_local_entity_float_value (receiver, FLOAT_TYPE_AIR_RADAR_CONTACT_TIMEOUT, AIR_RADAR_CONTACT_TIMEOUT_INVALID); break; } //////////////////////////////////////// case LIST_TYPE_UPDATE: //////////////////////////////////////// { set_local_entity_float_value (receiver, FLOAT_TYPE_VIEW_INTEREST_LEVEL, 0.0); break; } } return (TRUE); }
static int response_to_unlink_parent (entity_messages message, entity *receiver, entity *sender, va_list pargs) { debug_log_entity_message (message, receiver, sender, pargs); return (TRUE); }
static int response_to_link_parent (entity_messages message, entity *receiver, entity *sender, va_list pargs) { list_types list_type; #if DEBUG_MODULE debug_log_entity_message (message, receiver, sender, pargs); #endif list_type = va_arg (pargs, list_types); switch (list_type) { //////////////////////////////////////// case LIST_TYPE_GUNSHIP_TARGET: //////////////////////////////////////// { set_local_entity_int_value (receiver, INT_TYPE_GUNSHIP_RADAR_LOS_CLEAR, TRUE); set_local_entity_float_value (receiver, FLOAT_TYPE_AIR_RADAR_CONTACT_TIMEOUT, AIR_RADAR_CONTACT_TIMEOUT); // show icon on map if gunship scans it. /* if (get_local_entity_int_value (receiver, INT_TYPE_SIDE) == get_global_gunship_side ()) { set_planner_icon_update (receiver, FALSE); } */ break; } //////////////////////////////////////// case LIST_TYPE_TARGET: //////////////////////////////////////// { entity *group; // // Notify the group that it has been targeted // if (get_comms_model () == COMMS_MODEL_SERVER) { if (get_local_entity_int_value (sender, INT_TYPE_IDENTIFY_MOBILE)) { group = get_local_entity_parent (sender, LIST_TYPE_MEMBER); if (group) { notify_local_entity (ENTITY_MESSAGE_ENTITY_TARGETED, group, receiver, sender); } } } // // if targetting the player then insert into the gunship target list if not already there // if (sender == get_gunship_entity ()) { if (!get_local_entity_parent (receiver, LIST_TYPE_GUNSHIP_TARGET)) { if (get_local_entity_int_value (receiver, INT_TYPE_TARGET_TYPE) != TARGET_TYPE_INVALID) { if (get_local_entity_int_value (receiver, INT_TYPE_THREAT_TYPE) != THREAT_TYPE_INVALID) { insert_local_entity_into_parents_child_list (receiver, LIST_TYPE_GUNSHIP_TARGET, sender, NULL); } } } } break; } } return (TRUE); }