Avoid using doopen return value in test_move

We can't rely on doopen_indir return value to
check whether hero moved and opened a door.
Instead, explicitly check whether the door is still
closed, and whether hero moved.
This commit is contained in:
Pasi Kallinen
2024-12-17 20:57:59 +02:00
parent 8da4f74dcf
commit 20c456cbbb

View File

@@ -1073,9 +1073,9 @@ test_move(
" but can't squeeze your possessions through.");
if (flags.autoopen && !svc.context.run
&& !Confusion && !Stunned && !Fumbling) {
svc.context.door_opened
= svc.context.move
= (doopen_indir(x, y) == ECMD_TIME ? 1 : 0);
(void) doopen_indir(x, y);
svc.context.door_opened = !closed_door(x, y);
svc.context.move = (x != u.ux || y != u.uy);
} else if (x == ux || y == uy) {
if (Blind || Stunned || ACURR(A_DEX) < 10
|| Fumbling) {