void process_entity_smoke_list_creation (void) { comms_entity_smoke_list_creation_type *this_smoke_list_creation; while (entity_smoke_list_creation) { this_smoke_list_creation = entity_smoke_list_creation; ASSERT (this_smoke_list_creation->en); attach_local_meta_smoke_lists_to_object (this_smoke_list_creation->en, this_smoke_list_creation->meta_smoke_type, this_smoke_list_creation->attachment_point, this_smoke_list_creation->entity_index_list); if (get_local_entity_int_value (this_smoke_list_creation->en, INT_TYPE_MOBILE_MOVING)) { set_infinite_smoke_list_generating_state (this_smoke_list_creation->en, ENTITY_SUB_TYPE_EFFECT_SMOKE_LIST_VEHICLE_WAKE, INFINITE_SMOKE_ON); } else { set_infinite_smoke_list_generating_state (this_smoke_list_creation->en, ENTITY_SUB_TYPE_EFFECT_SMOKE_LIST_VEHICLE_WAKE, INFINITE_SMOKE_OFF); } free_mem (this_smoke_list_creation); entity_smoke_list_creation = entity_smoke_list_creation->next; } }
static void set_local_int_value (entity *en, int_types type, int value) { vehicle *raw; #if DEBUG_MODULE debug_log_entity_args (ENTITY_DEBUG_LOCAL, ENTITY_DEBUG_INT_VALUE, en, type, value); #endif raw = (vehicle *) get_local_entity_data (en); switch (type) { //////////////////////////////////////// case INT_TYPE_CPG_IDENTIFIED: //////////////////////////////////////// { raw->cpg_identified = value; break; } //////////////////////////////////////// case INT_TYPE_DAMAGE_LEVEL: //////////////////////////////////////// { raw->damage_level = value; break; } //////////////////////////////////////// case INT_TYPE_FORMATION_POSITION: //////////////////////////////////////// { raw->formation_position = value; break; } //////////////////////////////////////// case INT_TYPE_GROUP_MEMBER_NUMBER: //////////////////////////////////////// { ASSERT (value >= 0); ASSERT (value < (1 << NUM_GROUP_MEMBER_NUMBER_BITS)); raw->group_member_number = value; break; } //////////////////////////////////////// case INT_TYPE_GUNSHIP_RADAR_LOS_CLEAR: //////////////////////////////////////// { raw->gunship_radar_los_clear = value; break; } //////////////////////////////////////// case INT_TYPE_ID_NUMBER: //////////////////////////////////////// { raw->id_number = value; break; } //////////////////////////////////////// case INT_TYPE_ID_NUMBER_SIGNIFICANT_DIGITS: //////////////////////////////////////// { raw->id_number_significant_digits = value; break; } //////////////////////////////////////// case INT_TYPE_LIGHTS_ON: //////////////////////////////////////// { raw->lights_on = value; break; } //////////////////////////////////////// case INT_TYPE_LOS_TO_TARGET: //////////////////////////////////////// { raw->los_to_target = value; break; } //////////////////////////////////////// case INT_TYPE_OBJECT_3D_SHAPE: //////////////////////////////////////// { raw->object_3d_shape = value; break; } //////////////////////////////////////// case INT_TYPE_OPERATIONAL_STATE: //////////////////////////////////////// { int state1, state2; day_segment_types day_segment_type; state1 = get_local_entity_int_value (en, INT_TYPE_MOBILE_MOVING); raw->operational_state = value; state2 = get_local_entity_int_value (en, INT_TYPE_MOBILE_MOVING); if ((state1 == FALSE) && (state2 == TRUE)) { // // wasn't moving, but is now // // vehicle wakes set_infinite_smoke_list_generating_state (en, ENTITY_SUB_TYPE_EFFECT_SMOKE_LIST_VEHICLE_WAKE, INFINITE_SMOKE_ON); // lights day_segment_type = (day_segment_types) get_local_entity_int_value (get_session_entity (), INT_TYPE_DAY_SEGMENT_TYPE); if ((day_segment_type == DAY_SEGMENT_TYPE_NIGHT) || (day_segment_type == DAY_SEGMENT_TYPE_DUSK)) { set_vehicle_headlight_state (en, ON); } // weapons if (get_comms_model () == COMMS_MODEL_SERVER) { set_client_server_entity_int_value (en, INT_TYPE_SELECTED_WEAPON, ENTITY_SUB_TYPE_WEAPON_NO_WEAPON); } // sound effects pause_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING1, 0.5); resume_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING2); } else if ((state1 == TRUE) && (state2 == FALSE)) { // // was moving, but isn't anymore // set_infinite_smoke_list_generating_state (en, ENTITY_SUB_TYPE_EFFECT_SMOKE_LIST_VEHICLE_WAKE, INFINITE_SMOKE_OFF); set_vehicle_headlight_state (en, OFF); pause_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING2, 0.5); resume_local_entity_sound_type (en, ENTITY_SUB_TYPE_EFFECT_SOUND_ENGINE_LOOPING1); } break; } //////////////////////////////////////// case INT_TYPE_SELECTED_WEAPON: //////////////////////////////////////// { // // stop continuous sound effect // if (raw->selected_weapon != value) { pause_local_continuous_weapon_sound_effect (en, raw->selected_weapon); } raw->selected_weapon = value; raw->weapon_burst_timer = 0.0; break; } //////////////////////////////////////// case INT_TYPE_SELECTED_WEAPON_SYSTEM_READY: //////////////////////////////////////// { raw->selected_weapon_system_ready = value; break; } //////////////////////////////////////// case INT_TYPE_WEAPON_AND_TARGET_VECTORS_VALID: //////////////////////////////////////// { raw->weapon_and_target_vectors_valid = value; break; } //////////////////////////////////////// case INT_TYPE_WEAPON_CONFIG_TYPE: //////////////////////////////////////// { raw->weapon_config_type = (weapon_config_types) value; load_local_entity_weapon_config (en); break; } //////////////////////////////////////// default: //////////////////////////////////////// { debug_fatal_invalid_int_type (en, type); break; } } }