• [slashem] Bug: boulder/levelport trap - game hangup, infinite loop?

    From Janis Papanagnou@21:1/5 to All on Mon Apr 12 17:11:06 2021
    This is a (reproducible) bug observed in Slashem, don't know it applies
    to a similar setup in Nethack as well.

    Actual situation: Neutral quest, a boulder (part of a boulder trap) and
    a level-teleport trap. Pushed the boulder onto the trap to get it appear
    on some random other level. The process did not finish, the CPU showed
    100% business. Killed the slashem process, recovered the game, repeated
    the test; same effect again.

    I think I've that way dislocated boulders in the past without issue,
    so the bug might be triggered by the level being a special one (a flat one-level branch) reachable through a portal. But that's of course just speculation.

    Janis

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Pat Rankin@21:1/5 to Janis on Mon Apr 12 11:56:02 2021
    On Monday, April 12, 2021 at 8:11:08 AM UTC-7, Janis wrote:
    This is a (reproducible) bug observed in Slashem, don't know it applies
    to a similar setup in Nethack as well.

    Actual situation: Neutral quest, a boulder (part of a boulder trap) and
    a level-teleport trap. Pushed the boulder onto the trap to get it appear
    on some random other level. The process did not finish, the CPU showed
    100% business. Killed the slashem process, recovered the game, repeated
    the test; same effect again.

    3.4.3 had the buggy code but wouldn't become stuck
    repeating itself. When pushing the boulder onto the trap,
    the game would issue a message as if the boulder had
    vanished but if the destination happened to be the same
    level then it would try again. For any branch with more
    than one level, it would eventually pick a valid destination.

    I think I've that way dislocated boulders in the past without issue,
    so the bug might be triggered by the level being a special one (a flat one-level branch) reachable through a portal. But that's of course just speculation.

    If the randomly chosen destination level is the same as the
    current level, it tries again. For a single level branch, there's
    only one choice for the destination and it will end up trying
    over and over with no chance of success. In nethack, there
    is only one branch with a single level. Since Fort Ludios
    doesn't have explicit level teleporters or random traps which
    might be created as level teleporters, you'd never get stuck
    in a loop except by wishing for a level teleporter in wizard
    mode. Slash'EM has multiple single level branches and any
    that allow level teleporters are vulnerable.

    This bug was fixed in 3.6.0.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)