return nullptr;
}
- spell_hex.set_revenge_type(1);
+ spell_hex.set_revenge_type(SpellHexRevengeType::PATIENCE);
spell_hex.set_revenge_turn(r, true);
spell_hex.set_revenge_power(0, true);
msg_print(_("じっと耐えることにした。", "You decide to endure damage for future retribution."));
msg_format(_("%d点のダメージを返した。", "You return %d damage."), power);
}
- spell_hex.set_revenge_type(0);
+ spell_hex.set_revenge_type(SpellHexRevengeType::NONE);
spell_hex.set_revenge_turn(0, true);
spell_hex.set_revenge_power(0, true);
}
return nullptr;
}
- spell_hex.set_revenge_type(2);
+ spell_hex.set_revenge_type(SpellHexRevengeType::REVENGE);
spell_hex.set_revenge_turn(r, true);
msg_format(_("あなたは復讐を宣告した。あと %d ターン。", "You declare your revenge. %d turns left."), r);
add = false;
}
switch (this->get_revenge_type()) {
- case 1:
+ case SpellHexRevengeType::PATIENCE:
exe_spell(this->player_ptr, REALM_HEX, HEX_PATIENCE, SPELL_CONT);
return;
- case 2:
+ case SpellHexRevengeType::REVENGE:
exe_spell(this->player_ptr, REALM_HEX, HEX_REVENGE, SPELL_CONT);
return;
default:
}
}
-byte SpellHex::get_revenge_type() const
+SpellHexRevengeType SpellHex::get_revenge_type() const
{
- return this->player_ptr->magic_num2[1];
+ return static_cast <SpellHexRevengeType>(this->player_ptr->magic_num2[1]);
}
-void SpellHex::set_revenge_type(byte type)
+void SpellHex::set_revenge_type(SpellHexRevengeType type)
{
- this->player_ptr->magic_num2[1] = type;
+ this->player_ptr->magic_num2[1] = enum2i(type);
}
#include "system/angband.h"
#include "realm/realm-hex-numbers.h"
+enum class SpellHexRevengeType : byte {
+ NONE = 0,
+ PATIENCE = 1,
+ REVENGE = 2,
+};
+
struct monap_type;
struct player_type;
class SpellHex {
void set_revenge_power(int32_t power, bool substitution);
byte get_revenge_turn() const;
void set_revenge_turn(byte power, bool substitution);
- byte get_revenge_type() const;
- void set_revenge_type(byte type);
+ SpellHexRevengeType get_revenge_type() const;
+ void set_revenge_type(SpellHexRevengeType type);
private:
player_type *player_ptr;
if (spell_hex.get_revenge_turn() > 0) {
auto revenge_type = spell_hex.get_revenge_type();
- if (revenge_type == 1) {
+ if (revenge_type == SpellHexRevengeType::PATIENCE) {
ADD_BAR_FLAG(BAR_PATIENCE);
}
- if (revenge_type == 2) {
+ if (revenge_type == SpellHexRevengeType::REVENGE) {
ADD_BAR_FLAG(BAR_REVENGE);
}
}