Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - Xerxes314

Pages: [1]
1
Classic Roguelikes / Re: Bug in Rogue v1.1 for DOS?
« on: October 03, 2013, 06:04:22 AM »
Elwin, sorry I missed your post. Thanks for checking this out. I think you might be mixed up about the hungry status affecting ISRUN in Unix v5.4. When I checked that part of the code, I concluded that ISRUN is only set to false when the player has fainted due to extreme starvation. That would match the expected behavior for conditions where the player is unconscious.

I don't suppose you have the source for my DOS version lying around somewhere? I'd love to check the exact code.

2
Classic Roguelikes / Re: Bug in Rogue v1.1 for DOS?
« on: July 12, 2013, 05:46:47 AM »
I'm pretty sure that it's never true, though I couldn't find the initialization of the player's flags. It's possible they are all set to 0 using default initialization, which would also be a bug. Monsters have their ISRUN set true when they are set to chase the player. My testing always showed monsters getting the extra 20% hits even on a just-born character.

3
Classic Roguelikes / Bug in Rogue v1.1 for DOS?
« on: July 11, 2013, 10:35:33 PM »
I was recently playing my childhood version of Rogue, v1.1 for DOS, and contemplating how brutally difficult it is. To help me judge whether my character could go toe-to-toe with trolls, I wrote a combat simulator to give me the probability of winning. The simulator insisted my odds were 90% or better even though I kept dying. So I delved into the source code (for not quite the same version) and discovered that sleep/held status is not properly handled for the player.

When a monster or player is sleeping or held, the to-hit roll for an attacker is supposed to be at +4; this is handled by a flag called ISRUN (for "is the thing up and running around?"). However, although the player can have his ISRUN set to false (by potions of paralysis, scrolls of sleep, starving, etc.), no part of the code ever sets it to true. I checked a Unix version (v5.4) and verified that ISRUN is set true whenever a sleep/hold expires. By tedious bookkeeping, I checked that while a level-1 monster (say, an emu) should hit a starting character 35% of the time, they actually hit 55% of the time.

Now I wonder: Is this a known bug? Was it ever fixed on DOS? If a bug goes undetected for 30 years, does that make it a feature? Do I have to get the amulet of Yendor with this -4 penalty to really win?

Pages: [1]