No exception when trying to erase an object not in sheet

This commit is contained in:
Pcornat 2026-01-25 21:33:46 +01:00
commit 4f694d0bbe
Signed by: Pcornat
GPG key ID: E0326CC678A00BDD
3 changed files with 21 additions and 7 deletions

View file

@ -57,9 +57,9 @@ namespace character {
return false;
}
void BillyObjects::erase_object(CharacterSheet &sheet, const billyEnums objToErase) noexcept {
if (!sheet.objects.empty()) {
const billyObjects obj{ sheet.objects[objToErase].release() };
bool BillyObjects::erase_object(CharacterSheet &sheet, const billyEnums objToErase) noexcept {
if (const auto it = sheet.objects.find(objToErase); it != std::end(sheet.objects)) {
const billyObjects obj{ it->second.release() };
sheet.objects.erase(objToErase);
sheet.available_objects.insert(objToErase);
@ -69,13 +69,15 @@ namespace character {
auto &local_chance = static_cast<Characteristic &>(sheet.chance);
std::visit(overloaded{
[&](const weapons &arg) { --sheet.nb_weapons; },
[&](const equipments &arg) { --sheet.nb_equipments; },
[&](const tools &arg) { --sheet.nb_tools; }
[&](const weapons &) { --sheet.nb_weapons; },
[&](const equipments &) { --sheet.nb_equipments; },
[&](const tools &) { --sheet.nb_tools; }
},
objToErase);
change_carac(obj, sheet, local_habilete, local_adresse, local_endurance, local_chance, minus);
return true;
}
return false;
}
void BillyObjects::change_carac(const billyObjects &arg,