1
0
Fork 0

Codechange: Use max_element to find highest cargo amount.

pull/11514/head
Peter Nelson 2023-11-26 21:38:49 +00:00 committed by Peter Nelson
parent 3f853d8003
commit 7b0afec11f
2 changed files with 6 additions and 18 deletions

View File

@ -55,16 +55,10 @@
CargoArray cap = ::GetCapacityOfArticulatedParts(engine_id); CargoArray cap = ::GetCapacityOfArticulatedParts(engine_id);
CargoID most_cargo = CT_INVALID; auto it = std::max_element(std::cbegin(cap), std::cend(cap));
uint amount = 0; if (*it == 0) return CT_INVALID;
for (CargoID cid = 0; cid < NUM_CARGO; cid++) {
if (cap[cid] > amount) {
amount = cap[cid];
most_cargo = cid;
}
}
return most_cargo; return CargoID(std::distance(std::cbegin(cap), it));
} }
/* static */ bool ScriptEngine::CanRefitCargo(EngineID engine_id, CargoID cargo_id) /* static */ bool ScriptEngine::CanRefitCargo(EngineID engine_id, CargoID cargo_id)

View File

@ -42,16 +42,10 @@ CargoID ScriptEventEnginePreview::GetCargoType()
if (!this->IsEngineValid()) return CT_INVALID; if (!this->IsEngineValid()) return CT_INVALID;
CargoArray cap = ::GetCapacityOfArticulatedParts(this->engine); CargoArray cap = ::GetCapacityOfArticulatedParts(this->engine);
CargoID most_cargo = CT_INVALID; auto it = std::max_element(std::cbegin(cap), std::cend(cap));
uint amount = 0; if (*it == 0) return CT_INVALID;
for (CargoID cid = 0; cid < NUM_CARGO; cid++) {
if (cap[cid] > amount) {
amount = cap[cid];
most_cargo = cid;
}
}
return most_cargo; return CargoID(std::distance(std::cbegin(cap), it));
} }
int32_t ScriptEventEnginePreview::GetCapacity() int32_t ScriptEventEnginePreview::GetCapacity()