static void set_local_parent (entity *en, list_types type, entity *parent) { sound_effect *raw; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_prnt.h" }
static void set_local_child_pred (entity *en, list_types type, entity *child_pred) { sound_effect *raw; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_pred.h" }
static matrix3x3 *get_local_attitude_matrix_ptr (entity *en) { camera *raw; raw = get_local_entity_data (en); return (&raw->attitude); }
static void set_local_child_succ (entity *en, list_types type, entity *child_succ) { weapon *raw; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_succ.h" }
static void set_local_child_pred (entity *en, list_types type, entity *child_pred) { crater *raw; raw = (crater *) get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_pred.h" }
static void set_local_first_child (entity *en, list_types type, entity *first_child) { fixed_wing *raw; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_frst.h" }
static void set_local_first_child (entity *en, list_types type, entity *first_child) { helicopter *raw; raw = (helicopter *) get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_frst.h" }
static void set_local_parent (entity *en, list_types type, entity *parent) { crater *raw; raw = (crater *) get_local_entity_data (en); #include "entity/system/en_funcs/en_list/set_prnt.h" }
static void set_local_int_value (entity *en, int_types type, int value) { weapon *raw; #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value); #endif raw = (weapon *) get_local_entity_data (en); switch (type) { //////////////////////////////////////// case INT_TYPE_WEAPON_BURST_SIZE: //////////////////////////////////////// { raw->burst_size = value; break; } //////////////////////////////////////// case INT_TYPE_WEAPON_KILL_CODE: //////////////////////////////////////// { raw->kill_code = value; break; } //////////////////////////////////////// case INT_TYPE_LOCK_ON_AFTER_LAUNCH: //////////////////////////////////////// { raw->loal_mode = value; break; } //////////////////////////////////////// case INT_TYPE_WEAPON_MISSILE_PHASE: //////////////////////////////////////// { raw->missile_phase = value; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_int_type (en, type); break; } } }
static void set_local_int_value (entity *en, int_types type, int value) { bridge *raw; #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value); #endif raw = get_local_entity_data (en); switch (type) { //////////////////////////////////////// case INT_TYPE_ALIVE: //////////////////////////////////////// { raw->alive = value; break; } //////////////////////////////////////// case INT_TYPE_ENTITY_SUB_TYPE: //////////////////////////////////////// { raw->sub_type = value; break; } //////////////////////////////////////// case INT_TYPE_START_NODE: //////////////////////////////////////// { raw->start_node = value; break; } //////////////////////////////////////// case INT_TYPE_END_NODE: //////////////////////////////////////// { raw->end_node = value; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_int_type (en, type); break; } } }
static void *get_local_ptr_value (entity *en, ptr_types type) { vehicle *raw; void *ptr; raw = get_local_entity_data (en); switch (type) { //////////////////////////////////////// case PTR_TYPE_INSTANCE_3D_OBJECT: //////////////////////////////////////// { ptr = raw->inst3d; break; } //////////////////////////////////////// case PTR_TYPE_SOUND_EFFECT_DATA: //////////////////////////////////////// { ptr = raw->sound_effect_data; break; } //////////////////////////////////////// case PTR_TYPE_TERRAIN_FACE_NORMAL: //////////////////////////////////////// { ptr = get_3d_terrain_point_data_normal (&raw->terrain_info); break; } //////////////////////////////////////// case PTR_TYPE_WEAPON_PACKAGE_STATUS_ARRAY: //////////////////////////////////////// { ptr = raw->weapon_package_status_array; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_ptr_type (en, type); break; } } return (ptr); }
static vec3d *get_local_vec3d_ptr (entity *en, vec3d_types type) { aircraft *raw; vec3d *v; raw = (aircraft *) get_local_entity_data (en); switch (type) { //////////////////////////////////////// case VEC3D_TYPE_MOTION_VECTOR: //////////////////////////////////////// { v = &raw->mob.motion_vector; break; } //////////////////////////////////////// case VEC3D_TYPE_POSITION: //////////////////////////////////////// { v = &raw->mob.position; break; } //////////////////////////////////////// case VEC3D_TYPE_WEAPON_TO_TARGET_VECTOR: //////////////////////////////////////// { v = &raw->weapon_to_target_vector; break; } //////////////////////////////////////// case VEC3D_TYPE_WEAPON_VECTOR: //////////////////////////////////////// { v = &raw->weapon_vector; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_vec3d_type (en, type); break; } } return (v); }
static int get_local_int_value (entity *en, int_types type) { bridge *raw; int value; raw = get_local_entity_data (en); switch (type) { //////////////////////////////////////// case INT_TYPE_ALIVE: //////////////////////////////////////// { value = raw->alive; break; } //////////////////////////////////////// case INT_TYPE_ENTITY_SUB_TYPE: //////////////////////////////////////// { value = raw->sub_type; break; } //////////////////////////////////////// case INT_TYPE_START_NODE: //////////////////////////////////////// { value = raw->start_node; break; } //////////////////////////////////////// case INT_TYPE_END_NODE: //////////////////////////////////////// { value = raw->end_node; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_int_type (en, type); break; } } return (value); }
static void destroy_local (entity *en) { regen *raw; //////////////////////////////////////// // // PRE-AMBLE // //////////////////////////////////////// #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_DESTROY, en); #endif raw = (regen *) get_local_entity_data (en); //////////////////////////////////////// // // VALIDATE // //////////////////////////////////////// ASSERT (!raw->member_root.first_child); //////////////////////////////////////// // // DESTROY COMPONENTS // //////////////////////////////////////// //////////////////////////////////////// // // UNLINK FROM SYSTEM // //////////////////////////////////////// delete_local_entity_from_parents_child_list (en, LIST_TYPE_CURRENT_WAYPOINT); delete_local_entity_from_parents_child_list (en, LIST_TYPE_REGEN); delete_local_entity_from_parents_child_list (en, LIST_TYPE_UPDATE); //////////////////////////////////////// // // FREE ENTITY DATA // //////////////////////////////////////// free_mem (raw); set_free_entity (en); }
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); }
void add_group_type_to_force_info (entity *en, entity_sub_types group_type) { force *raw; ASSERT (en); raw = (force *) get_local_entity_data (en); raw->group_count [group_type] ++; }
static void get_local_attitude_matrix (entity *en, matrix3x3 attitude) { camera *raw; ASSERT (attitude); raw = get_local_entity_data (en); memcpy (attitude, raw->attitude, sizeof (matrix3x3)); }
int get_local_force_entity_group_count (entity *en, entity_sub_types group_type) { force *raw; ASSERT (en); raw = (force *) get_local_entity_data (en); return (raw->group_count [group_type]); }
static void destroy_local (entity *en) { sprite *raw; //////////////////////////////////////// // // PRE-AMBLE // //////////////////////////////////////// #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_DESTROY, en); #endif raw = (sprite *) get_local_entity_data (en); //////////////////////////////////////// // // VALIDATE // //////////////////////////////////////// //////////////////////////////////////// // // DESTROY COMPONENTS // //////////////////////////////////////// //////////////////////////////////////// // // UNLINK FROM SYSTEM // //////////////////////////////////////// delete_local_entity_from_parents_child_list (en, LIST_TYPE_SECTOR); delete_local_entity_from_parents_child_list (en, LIST_TYPE_UPDATE); delete_local_entity_from_parents_child_list (en, LIST_TYPE_SPECIAL_EFFECT); //////////////////////////////////////// // // FREE ENTITY DATA // //////////////////////////////////////// free_mem (raw); set_free_entity (en); }
static void destroy_local (entity *en) { division *raw; //////////////////////////////////////// // // PRE-AMBLE // //////////////////////////////////////// #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_DESTROY, en); #endif raw = (division *) get_local_entity_data (en); //////////////////////////////////////// // // VALIDATE // //////////////////////////////////////// //////////////////////////////////////// // // DESTROY COMPONENTS // //////////////////////////////////////// //////////////////////////////////////// // // UNLINK FROM SYSTEM // //////////////////////////////////////// unlink_local_entity_children (en, LIST_TYPE_DIVISION); delete_local_entity_from_parents_child_list (en, LIST_TYPE_DIVISION); delete_local_entity_from_parents_child_list (en, LIST_TYPE_DIVISION_HEADQUARTERS); //////////////////////////////////////// // // FREE ENTITY DATA // //////////////////////////////////////// free_mem (raw); set_free_entity (en); }
static void destroy_local (entity *en) { bridge *raw; //////////////////////////////////////// // // PRE-AMBLE // //////////////////////////////////////// #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_DESTROY, en); debug_log ("BR_DSTRY: destroying bridge %d", get_local_entity_index (en)); #endif raw = get_local_entity_data (en); //////////////////////////////////////// // // VALIDATE // //////////////////////////////////////// //////////////////////////////////////// // // DESTROY COMPONENTS // //////////////////////////////////////// //////////////////////////////////////// // // UNLINK FROM SYSTEM // //////////////////////////////////////// destroy_local_entity_children (en, LIST_TYPE_SEGMENT); //////////////////////////////////////// // // FREE ENTITY DATA // //////////////////////////////////////// free_mem (raw); set_free_entity (en); }
static vec3d *get_local_vec3d_ptr (entity *en, vec3d_types type) { group *raw; vec3d *v; raw = (group *) get_local_entity_data (en); switch (type) { //////////////////////////////////////// case VEC3D_TYPE_POSITION: //////////////////////////////////////// { entity *member; member = (entity *) get_local_entity_ptr_value (en, PTR_TYPE_GROUP_LEADER); if (member) { v = get_local_entity_vec3d_ptr (member, type); } else { v = NULL; } break; } //////////////////////////////////////// case VEC3D_TYPE_LAST_KNOWN_POSITION: //////////////////////////////////////// { v = &raw->last_known_position; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_vec3d_type (en, type); break; } } return (v); }
static float get_local_float_value (entity *en, float_types type) { mobile *raw; float value; raw = (mobile *) get_local_entity_data (en); switch (type) { //////////////////////////////////////// case FLOAT_TYPE_ALTITUDE: //////////////////////////////////////// { value = raw->position.y; break; } //////////////////////////////////////// case FLOAT_TYPE_HEADING: //////////////////////////////////////// { value = get_heading_from_attitude_matrix (raw->attitude); break; } //////////////////////////////////////// case FLOAT_TYPE_HIGH_VELOCITY: case FLOAT_TYPE_LOW_VELOCITY: case FLOAT_TYPE_MEDIUM_VELOCITY: case FLOAT_TYPE_VELOCITY: case FLOAT_TYPE_VERY_HIGH_VELOCITY: //////////////////////////////////////// { value = raw->velocity; break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_float_type (en, type); break; } } return (value); }
void remove_group_type_from_force_info (entity *en, entity_sub_types group_type) { force *raw; ASSERT (en); raw = (force *) get_local_entity_data (en); ASSERT (raw->group_count [group_type] > 0); raw->group_count [group_type] --; }
static void play_local_sound (entity *en, viewpoint *vp, float range) { sound_sample_indices effect_type; int rate, looping, volume, panning; anti_aircraft *raw; raw = get_local_entity_data (en); if (!raw->vh.sound_effect_data) { effect_type = vehicle_database [raw->vh.mob.sub_type].continuous_sound_effect_index; if (effect_type != SOUND_SAMPLE_INDEX_NONE) { #if DEBUG_MODULE debug_log ("RV_SND: creating sound effect %d", effect_type); #endif panning = 0; rate = 0; volume = 0; looping = TRUE; raw->vh.sound_effect_data = create_single_system_sound_effect (effect_type, panning, rate, volume, looping, (void *) en, 0); if (raw->vh.sound_effect_data) { raw->vh.valid_sound_effect = TRUE; play_system_sound_effect (raw->vh.sound_effect_data); } } } }
static entity *get_local_child_pred (entity *en, list_types type) { group *raw; entity *child_pred; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/get_pred.h" return (child_pred); }
static entity *get_local_parent (entity *en, list_types type) { group *raw; entity *parent; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/get_prnt.h" return (parent); }
static entity *get_local_child_succ (entity *en, list_types type) { waypoint *raw; entity *child_succ; raw = (waypoint *) get_local_entity_data (en); #include "entity/system/en_funcs/en_list/get_succ.h" return (child_succ); }
static entity *get_local_first_child (entity *en, list_types type) { group *raw; entity *first_child; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/get_frst.h" return (first_child); }
static entity *get_local_child_succ (entity *en, list_types type) { routed_vehicle *raw; entity *child_succ; raw = get_local_entity_data (en); #include "entity/system/en_funcs/en_list/get_succ.h" return (child_succ); }