diff --git a/pcmove.cpp b/pcmove.cpp index 0b8e3af8..4596acc6 100644 --- a/pcmove.cpp +++ b/pcmove.cpp @@ -340,13 +340,18 @@ bool pcmove::movepcto() { changes.init(checkonly); changes.value_keep(bow::bowpath_map); bow::bowpath_map.clear(); - bool b = (d >= 0 && bow::fire_mode) ? (origd = d, cwt += d, false) : (d >= 0) ? actual_move() : stay(); + bool b = (d >= 0 && bow::fire_mode) ? false : (d >= 0) ? actual_move() : stay(); if(checkonly || !b) { changes.rollback(); if(!checkonly) flipplayer = false; if(!b && items[itCrossbow] == 0 && bow::crossbow_mode() && bow::bump_to_shoot && d >= 0 && !checkonly) { changes.init(checkonly); + if(bow::fire_mode) { + origd = d; + cwt += d; + mirror::act(d, mirror::SPINSINGLE); + } changes.value_keep(bow::bowpath_map); b = try_shooting(true); if(checkonly || !b) changes.rollback();