diff --git a/src/game/boe.actions.cpp b/src/game/boe.actions.cpp index 72aca8de..3d79aa43 100644 --- a/src/game/boe.actions.cpp +++ b/src/game/boe.actions.cpp @@ -732,6 +732,7 @@ static void handle_switch_pc(short which_pc, bool& need_redraw, bool& need_repri univ.cur_pc = which_pc; set_stat_window_for_pc(which_pc); add_string_to_buf("Now " + std::string(overall_mode == MODE_SHOPPING ? "shopping" : "active") + ": " + pc.name); + if (overall_mode==MODE_SHOPPING) set_up_shop_array(); // needed to be sure healing is updated adjust_spell_menus(); need_redraw = true; } diff --git a/src/universe/creature.cpp b/src/universe/creature.cpp index 3496bbb5..0cfc4d6e 100644 --- a/src/universe/creature.cpp +++ b/src/universe/creature.cpp @@ -302,7 +302,7 @@ int cCreature::magic_adjust(int how_much) { if(how_much <= 0) return how_much; if(abil[eMonstAbil::ABSORB_SPELLS].active && get_ran(1,1,1000) <= abil[eMonstAbil::ABSORB_SPELLS].special.extra1) { int gain = abil[eMonstAbil::ABSORB_SPELLS].special.extra2; - if(32767 - health > gain) + if(32767 - int(health) > gain) health = 32767; else health += gain; return 0;