diff --git a/doc/fixes34.3 b/doc/fixes34.3 index b68347c80..4a998e193 100644 --- a/doc/fixes34.3 +++ b/doc/fixes34.3 @@ -30,6 +30,7 @@ do not double credit when putting gold into an unpaid container manes are nonliving poles and grappling hook worked thru walls when wearing Eyes of the Overworld more tweaks to fog cloud behavior +when dismounting by choice and unimpaired, try not to land on a boulder Platform- and/or Interface-Specific Fixes diff --git a/src/steed.c b/src/steed.c index 1395767af..25ec9f8a2 100644 --- a/src/steed.c +++ b/src/steed.c @@ -424,7 +424,7 @@ int forceit; boolean found = FALSE; struct trap *t; - /* avoid known traps (i == 0), but allow them as a backup */ + /* avoid known traps (i == 0) and boulders, but allow them as a backup */ if (reason != DISMOUNT_BYCHOICE || Stunned || Confusion || Fumbling) i = 1; for (; !found && i < 2; ++i) { for (x = u.ux-1; x <= u.ux+1; x++) @@ -436,7 +436,9 @@ int forceit; distance = distu(x,y); if (min_distance < 0 || distance < min_distance || (distance == min_distance && rn2(2))) { - if (i > 0 || (t = t_at(x, y)) == 0 || !t->tseen) { + if (i > 0 || (((t = t_at(x, y)) == 0 || !t->tseen) && + (!sobj_at(BOULDER, x, y) || + throws_rocks(youmonst.data)))) { spot->x = x; spot->y = y; min_distance = distance;