From 7742373142c7418bbce65346a7632ef1dffdafa7 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Mon, 20 Jan 2025 14:42:40 -0600 Subject: [PATCH] Try recast opposite spell type: Toggle the hint --- src/game/boe.actions.cpp | 8 ++++++++ src/game/boe.graphics.cpp | 12 ++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/game/boe.actions.cpp b/src/game/boe.actions.cpp index 46ce13d8..a6973b68 100644 --- a/src/game/boe.actions.cpp +++ b/src/game/boe.actions.cpp @@ -266,6 +266,14 @@ void handle_spellcast(eSkill which_type, bool& did_something, bool& need_redraw, short store_sp[6]; extern short spec_target_fail; extern eSpecCtxType spec_target_type; + // Dual-caster recast hint toggle: + // Change the recast hint to mage if last spell wasn't mage + if(spell_forced && is_combat() && univ.current_pc().last_cast_type != which_type){ + spell_forced = false; + univ.current_pc().last_cast_type = which_type; + need_redraw = true; + return; + } if(!someone_awake()) { ASB("Everyone's asleep/paralyzed."); need_reprint = true; diff --git a/src/game/boe.graphics.cpp b/src/game/boe.graphics.cpp index 9fe6eb4f..a0f2b9e5 100644 --- a/src/game/boe.graphics.cpp +++ b/src/game/boe.graphics.cpp @@ -634,11 +634,15 @@ void draw_text_bar() { } if(!hint_prefix.empty()){ hint_out << hint_prefix << ": "; - const cSpell& spell = (*current_pc.last_cast[type]); - if(pc_can_cast_spell(current_pc,type) && spell.cost <= current_pc.get_magic()) { - hint_out << "Recast " << spell.name(); + if(current_pc.last_cast[type] != eSpell::NONE){ + const cSpell& spell = (*current_pc.last_cast[type]); + if(pc_can_cast_spell(current_pc,type) && spell.cost <= current_pc.get_magic()) { + hint_out << "Recast " << spell.name(); + }else{ + hint_out << "Cannot recast"; + } }else{ - hint_out << "Cannot recast"; + hint_out << "No spell to recast"; } }