/* stop or restart the harvesting eye candy effect depending on the harvesting state */ void check_harvesting_effect(void) { /* if the harvesting effect is on but we're not harvesting, stop it */ if ((!harvesting || !use_harvesting_eye_candy) && (harvesting_effect_reference != NULL)) { ec_recall_effect(harvesting_effect_reference); harvesting_effect_reference = NULL; } /* but if we are harvesting but there is no effect, start it if wanted */ else if (harvesting && use_eye_candy && use_harvesting_eye_candy && (harvesting_effect_reference == NULL)) { actor *act; LOCK_ACTORS_LISTS(); act = get_actor_ptr_from_id(yourself); if (act != NULL) harvesting_effect_reference = ec_create_ongoing_harvesting2(act, 1.0, 1.0, (poor_man ? 6 : 10), 1.0); UNLOCK_ACTORS_LISTS(); } }
void remove_bag(int bag_id) { #ifdef NEW_SOUND int snd; #endif // NEW_SOUND if (bag_id >= NUM_BAGS) return; if (bag_list[bag_id].obj_3d_id == -1) { // oops, no bag in that slot! LOG_ERROR("Oops, double-removal of bag!\n"); return; } if (use_eye_candy) { ec_create_bag_pickup(objects_list[bag_list[bag_id].obj_3d_id]->x_pos, objects_list[bag_list[bag_id].obj_3d_id]->y_pos, objects_list[bag_list[bag_id].obj_3d_id]->z_pos, (poor_man ? 6 : 10)); #ifdef ONGOING_BAG_EFFECT if (bag_list[bag_id].ongoing_bag_effect_reference != NULL) { ec_recall_effect(bag_list[bag_id].ongoing_bag_effect_reference); bag_list[bag_id].ongoing_bag_effect_reference = NULL; } #endif // ONGOING_BAG_EFFECT } #ifdef NEW_SOUND if (your_actor && bag_list[bag_id].x == your_actor->x_pos * 2 && bag_list[bag_id].y == your_actor->y_pos * 2) { snd = get_sound_index_for_particle_file_name("./particles/bag_out.part"); if (snd >= 0) { add_sound_object (snd, bag_list[bag_id].x, bag_list[bag_id].y, 0); } } #endif // NEW_SOUND destroy_3d_object(bag_list[bag_id].obj_3d_id); bag_list[bag_id].obj_3d_id=-1; }