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; } }
void attach_routed_vehicle_meta_smoke_lists (entity *en) { int item, point; object_3d_sub_object_index_numbers attachment_point; meta_smoke_list_types type; item = 0; while (TRUE) { type = attached_meta_smoke_list_table [item].type; if (type == -1) { break; } else { for (point = 0; point < MAX_META_SMOKE_LIST_ATTACHMENT_POINTS; point ++) { attachment_point = attached_meta_smoke_list_table [item].attachment_point [point]; if (attachment_point == -1) { break; } attach_local_meta_smoke_lists_to_object (en, type, attachment_point, NULL); } } item ++; } }