From b04573f659df7ba89756fa9f9c4c93364e35e746 Mon Sep 17 00:00:00 2001 From: Jesse Ruderman Date: Mon, 12 Jul 2021 06:52:14 -0700 Subject: [PATCH] Fix crash: prevent slime from duplicating dice --- pcmove.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pcmove.cpp b/pcmove.cpp index dd3e052b..304c9f1a 100644 --- a/pcmove.cpp +++ b/pcmove.cpp @@ -1093,16 +1093,20 @@ EX int fatigue_cost(const movei& mi) { (againstWind(mi.s, mi.t) ? 0 : 1); } +bool alchMayDuplicate(eWall w) { + return !isDie(w) && w != waBoat && w != waArrowTrap; +} + bool pcmove::perform_actual_move() { cell*& c2 = mi.t; changes.at_commit([&] { flipplayer = true; if(multi::players > 1) multi::flipped[multi::cpid] = true; }); if(c2->item && isAlch(c2)) { - if(cwt.at->wall == waBoat) - c2->wall = waNone; - else + if(alchMayDuplicate(cwt.at->wall)) c2->wall = cwt.at->wall; + else + c2->wall = waNone; } #if CAP_COMPLEX2 if(c2->wall == waRoundTable) {