From 1c3e60337c72b9b3970238e3457a2e0ee3cdc397 Mon Sep 17 00:00:00 2001 From: lethosor Date: Mon, 5 Apr 2021 23:23:31 -0400 Subject: [PATCH] Switch to range-based for --- plugins/dwarfvet.cpp | 78 ++++++++++++++++++++++---------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/plugins/dwarfvet.cpp b/plugins/dwarfvet.cpp index d8f555781..e0e9c9a3f 100644 --- a/plugins/dwarfvet.cpp +++ b/plugins/dwarfvet.cpp @@ -145,8 +145,8 @@ AnimalHospital::AnimalHospital(df::building * building, color_ostream &out) { AnimalHospital::~AnimalHospital() { // Go through and delete all the patients - for (vector::iterator accepted_patient = this->accepted_patients.begin(); accepted_patient != this->accepted_patients.end(); accepted_patient++) { - delete (*accepted_patient); + for (Patient* accepted_patient : this->accepted_patients) { + delete accepted_patient; } } @@ -193,9 +193,9 @@ void AnimalHospital::reportUsage(color_ostream &out) { // Debugging tool to see parts of the hospital in use int length_cursor = this->length; - for (vector::iterator spot = this->spots_in_use.begin(); spot != this->spots_in_use.end(); spot++) { - if (*spot) out.print("t"); - if (!(*spot)) out.print("f"); + for (bool spot : this->spots_in_use) { + if (spot) out.print("t"); + else out.print("f"); length_cursor--; if (length_cursor < 0) { out.print("\n"); @@ -369,14 +369,14 @@ void AnimalHospital::dischargePatient(Patient * patient, color_ostream &out) { void AnimalHospital::processPatients(color_ostream &out) { // Where the magic happens - for (vector::iterator patient = this->accepted_patients.begin(); patient != this->accepted_patients.end(); patient++) { - int id = (*patient)->getID(); + for (Patient *patient : this->accepted_patients) { + int id = patient->getID(); df::unit *real_unit = df::unit::find(id); // Check to make sure the unit hasn't expired before assigning a job, or if they've been healed if (!real_unit || !Units::isActive(real_unit) || !real_unit->health->flags.bits.needs_healthcare) { // discharge the patient from the hospital - this->dischargePatient(*patient, out); + this->dischargePatient(patient, out); return; } @@ -386,9 +386,9 @@ void AnimalHospital::processPatients(color_ostream &out) { df::job * job = new df::job; DFHack::Job::linkIntoWorld(job); - job->pos.x = (*patient)->returnX(); - job->pos.y = (*patient)->returnY(); - job->pos.z = (*patient)->returnZ(); + job->pos.x = patient->returnX(); + job->pos.y = patient->returnY(); + job->pos.z = patient->returnZ(); job->flags.bits.special = 1; job->job_type = df::enums::job_type::Rest; df::general_ref *ref = df::allocate(); @@ -408,8 +408,8 @@ void delete_animal_hospital_vector(color_ostream &out) { if (dwarfvet_enabled) { out.print("Clearing all animal hospitals\n"); } - for (vector::iterator animal_hospital = animal_hospital_zones.begin(); animal_hospital != animal_hospital_zones.end(); animal_hospital++) { - delete (*animal_hospital); + for (AnimalHospital *animal_hospital : animal_hospital_zones) { + delete animal_hospital; } animal_hospital_zones.clear(); } @@ -518,7 +518,7 @@ void tickHandler(color_ostream& out, void* data) { // Now walk our list of known hospitals, do a bit of checking, then compare // TODO: this doesn't handle zone resizes at all - for (vector::iterator animal_hospital = animal_hospital_zones.begin(); animal_hospital != animal_hospital_zones.end(); animal_hospital++) { + for (AnimalHospital *animal_hospital : animal_hospital_zones) { // If a zone is changed at all, DF seems to reallocate it. // // Each AnimalHospital has a "to_be_deleted" bool. We're going to set that to true, and clear it if we can't @@ -527,13 +527,13 @@ void tickHandler(color_ostream& out, void* data) { // // Surviving hospitals will be copied to scratch which will become the new AHZ vector - (*animal_hospital)->to_be_deleted = true; - for (vector::iterator current_hospital = hospitals_on_map.begin(); current_hospital != hospitals_on_map.end(); current_hospital++) { + animal_hospital->to_be_deleted = true; + for (df::building *current_hospital : hospitals_on_map) { /* Keep the hospital if its still valid */ - if ((*animal_hospital)->getID() == (*current_hospital)->id) { - ahz_scratch.push_back(*animal_hospital); - (*animal_hospital)->to_be_deleted = false; + if (animal_hospital->getID() == current_hospital->id) { + ahz_scratch.push_back(animal_hospital); + animal_hospital->to_be_deleted = false; break; } @@ -543,20 +543,20 @@ void tickHandler(color_ostream& out, void* data) { // Report what we're deleting by checking the to_be_deleted bool. // // Whatsever left is added to the pending add list - for (vector::iterator animal_hospital = animal_hospital_zones.begin(); animal_hospital != animal_hospital_zones.end(); animal_hospital++) { - if ((*animal_hospital)->to_be_deleted) { - out.print("Hospital #%d removed\n", (*animal_hospital)->getID()); - delete *animal_hospital; + for (AnimalHospital *animal_hospital : animal_hospital_zones) { + if (animal_hospital->to_be_deleted) { + out.print("Hospital #%d removed\n", animal_hospital->getID()); + delete animal_hospital; } } /* Now we need to walk the scratch and add anything that is a hospital and wasn't in the vector */ - for (vector::iterator current_hospital = hospitals_on_map.begin(); current_hospital != hospitals_on_map.end(); current_hospital++) { + for (df::building *current_hospital : hospitals_on_map) { bool new_hospital = true; - for (vector::iterator animal_hospital = ahz_scratch.begin(); animal_hospital != ahz_scratch.end(); animal_hospital++) { - if ((*animal_hospital)->getID() == (*current_hospital)->id) { + for (AnimalHospital *animal_hospital : ahz_scratch) { + if (animal_hospital->getID() == current_hospital->id) { // Next if we're already here new_hospital = false; break; @@ -564,19 +564,19 @@ void tickHandler(color_ostream& out, void* data) { } // Add it if its new - if (new_hospital == true) to_be_added.push_back(*current_hospital); + if (new_hospital == true) to_be_added.push_back(current_hospital); } /* Now add it to the scratch AHZ */ - for (vector::iterator current_hospital = to_be_added.begin(); current_hospital != to_be_added.end(); current_hospital++) { + for (df::building *current_hospital : to_be_added) { // Add it to the vector out.print("Adding new hospital #id: %d at x1 %d y1: %d z: %d\n", - (*current_hospital)->id, - (*current_hospital)->x1, - (*current_hospital)->y1, - (*current_hospital)->z + current_hospital->id, + current_hospital->x1, + current_hospital->y1, + current_hospital->z ); - AnimalHospital * hospital = new AnimalHospital(*current_hospital, out); + AnimalHospital * hospital = new AnimalHospital(current_hospital, out); ahz_scratch.push_back(hospital); } @@ -731,9 +731,9 @@ processUnits: } // The final step, process all patients! - for (vector::iterator animal_hospital = animal_hospital_zones.begin(); animal_hospital != animal_hospital_zones.end(); animal_hospital++) { - (*animal_hospital)->calculateHospital(true, out); - (*animal_hospital)->processPatients(out); + for (AnimalHospital *animal_hospital : animal_hospital_zones) { + animal_hospital->calculateHospital(true, out); + animal_hospital->processPatients(out); } cleanup: @@ -767,9 +767,9 @@ command_result dwarfvet (color_ostream &out, std::vector & paramet } if ( parameters[a] == "report-usage") { out.print("Current animal hospitals are:\n"); - for (vector::iterator animal_hospital = animal_hospital_zones.begin(); animal_hospital != animal_hospital_zones.end(); animal_hospital++) { - (*animal_hospital)->calculateHospital(true, out); - (*animal_hospital)->reportUsage(out); + for (AnimalHospital *animal_hospital : animal_hospital_zones) { + animal_hospital->calculateHospital(true, out); + animal_hospital->reportUsage(out); } return CR_OK; }