aboutsummaryrefslogtreecommitdiff
path: root/frontend/cmd/equip.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/cmd/equip.cpp')
-rw-r--r--frontend/cmd/equip.cpp20
1 files changed, 10 insertions, 10 deletions
diff --git a/frontend/cmd/equip.cpp b/frontend/cmd/equip.cpp
index fe951b1..8f37c0c 100644
--- a/frontend/cmd/equip.cpp
+++ b/frontend/cmd/equip.cpp
@@ -16,21 +16,21 @@ void GameController::cmd_equip(string & target_name) {
Object & object = **it;
- WeaponObject * weapon = dynamic_cast<WeaponObject *>(&object);
- if (weapon != nullptr) {
- player.inventory.remove(weapon);
- player.equip(weapon);
+ try {
+ WeaponObject & weapon = dynamic_cast<WeaponObject &>(object);
+ player.inventory.remove(&weapon);
+ player.equip(&weapon);
this->dungeon->update();
return;
- }
+ } catch (std::bad_cast &) {};
- ArmorObject * armor = dynamic_cast<ArmorObject *>(&object);
- if (armor != nullptr) {
- player.inventory.remove(armor);
- player.equip(armor);
+ try {
+ ArmorObject & armor = dynamic_cast<ArmorObject &>(object);
+ player.inventory.remove(&armor);
+ player.equip(&armor);
this->dungeon->update();
return;
- }
+ } catch (std::bad_cast &) {};
throw Exception("object \"%s\" is niet draagbaar", target_name.c_str());
}