screen_save();
std::vector<int> sp(MAX_KEEP);
char choice = 0;
- auto flag = select_spell_stopping(sp, out_val, &choice);
+ auto flag = select_spell_stopping(sp, out_val, choice);
screen_load();
if (flag) {
auto n = sp.at(A2I(choice));
* @param choice 選択した呪文
* @return 選択が完了したらtrue、キャンセルならばfalse
*/
-bool RealmHex::select_spell_stopping(std::vector<int> &sp, char *out_val, char *choice)
+bool RealmHex::select_spell_stopping(std::vector<int> &sp, char *out_val, char &choice)
{
while (true) {
this->display_spells_list(sp);
- if (!get_com(out_val, choice, true)) {
+ if (!get_com(out_val, &choice, true)) {
return false;
}
- if (isupper(*choice)) {
- *choice = static_cast<char>(tolower(*choice));
+ if (isupper(choice)) {
+ choice = static_cast<char>(tolower(choice));
}
/* All */
- if (*choice == 'l') {
+ if (choice == 'l') {
screen_load();
return this->stop_all_spells();
}
- if ((*choice < I2A(0)) || (*choice > I2A(casting_hex_num(this->caster_ptr) - 1))) {
+ if ((choice < I2A(0)) || (choice > I2A(casting_hex_num(this->caster_ptr) - 1))) {
continue;
}
ADD_BAR_FLAG(BAR_EYEEYE);
if (creature_ptr->realm1 == REALM_HEX) {
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_BLESS))
+ RealmHex realm_hex(creature_ptr);
+ if (realm_hex.is_spelling_specific(HEX_BLESS))
ADD_BAR_FLAG(BAR_BLESSED);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_DEMON_AURA)) {
+ if (realm_hex.is_spelling_specific(HEX_DEMON_AURA)) {
ADD_BAR_FLAG(BAR_SHFIRE);
ADD_BAR_FLAG(BAR_REGENERATION);
}
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_XTRA_MIGHT))
+ if (realm_hex.is_spelling_specific(HEX_XTRA_MIGHT))
ADD_BAR_FLAG(BAR_MIGHT);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_DETECT_EVIL))
+ if (realm_hex.is_spelling_specific(HEX_DETECT_EVIL))
ADD_BAR_FLAG(BAR_ESP_EVIL);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_ICE_ARMOR))
+ if (realm_hex.is_spelling_specific(HEX_ICE_ARMOR))
ADD_BAR_FLAG(BAR_SHCOLD);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_RUNESWORD))
+ if (realm_hex.is_spelling_specific(HEX_RUNESWORD))
ADD_BAR_FLAG(BAR_RUNESWORD);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_BUILDING))
+ if (realm_hex.is_spelling_specific(HEX_BUILDING))
ADD_BAR_FLAG(BAR_BUILD);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_ANTI_TELE))
+ if (realm_hex.is_spelling_specific(HEX_ANTI_TELE))
ADD_BAR_FLAG(BAR_ANTITELE);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_SHOCK_CLOAK))
+ if (realm_hex.is_spelling_specific(HEX_SHOCK_CLOAK))
ADD_BAR_FLAG(BAR_SHELEC);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_SHADOW_CLOAK))
+ if (realm_hex.is_spelling_specific(HEX_SHADOW_CLOAK))
ADD_BAR_FLAG(BAR_SHSHADOW);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_CONFUSION))
+ if (realm_hex.is_spelling_specific(HEX_CONFUSION))
ADD_BAR_FLAG(BAR_ATTKCONF);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_EYE_FOR_EYE))
+ if (realm_hex.is_spelling_specific(HEX_EYE_FOR_EYE))
ADD_BAR_FLAG(BAR_EYEEYE);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_ANTI_MULTI))
+ if (realm_hex.is_spelling_specific(HEX_ANTI_MULTI))
ADD_BAR_FLAG(BAR_ANTIMULTI);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_VAMP_BLADE))
+ if (realm_hex.is_spelling_specific(HEX_VAMP_BLADE))
ADD_BAR_FLAG(BAR_VAMPILIC);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_ANTI_MAGIC))
+ if (realm_hex.is_spelling_specific(HEX_ANTI_MAGIC))
ADD_BAR_FLAG(BAR_ANTIMAGIC);
- if (RealmHex(creature_ptr).is_spelling_specific(HEX_CURE_LIGHT) || RealmHex(creature_ptr).is_spelling_specific(HEX_CURE_SERIOUS) || RealmHex(creature_ptr).is_spelling_specific(HEX_CURE_CRITICAL))
+ if (realm_hex.is_spelling_specific(HEX_CURE_LIGHT) || realm_hex.is_spelling_specific(HEX_CURE_SERIOUS) || realm_hex.is_spelling_specific(HEX_CURE_CRITICAL))
ADD_BAR_FLAG(BAR_CURE);
if (hex_revenge_turn(creature_ptr)) {