snafaru / Wizardry.Code

Wizardry Proving Grounds v3.1 - Editing and Compiling WIZARDRY.CODE and SYSTEM.STARTUP - Apple II - UCSD Pascal 1.1
26 stars 6 forks source link

Problems with disarming chest traps #3

Closed Reiska42 closed 1 year ago

Reiska42 commented 1 year ago

I've observed two issues with chest disarming in the March 23 release, one of which is also an issue with the original Sir-tech build of 1/22/1982 and one which appears to be unique to this release.

The issue that also occurs in the original final Sir-tech build is that the text input for the name of a chest trap isn't properly bounded at 14 characters and will allow you to continue typing outside of the window frame; continuing to enter text will overwrite the "# CHARACTER NAME" text on the status display. Upon entering more than 25 characters, the display will corrupt entirely (in AppleWin it reverts to the last text mode screen to be displayed). If you press Return at this point, the game will recover (but with some lingering display corruption); if you continue to enter text the game will appear to have hung, but in fact the game does not actually appear to hang until 36 characters have been entered. (I was able, for instance, to type 12345678901234567890123456789012345 for a trap name, hit return, and have the game screen recover, but adding one more character onto that appears to cause a hang, at least on AppleWin.)

The second issue I've observed is that in some cases, after having a thief attempt to identify a chest trap, when they identify the trap incorrectly and the player then goes on to enter the name of an incorrect but valid trap in the disarm prompt, instead of blowing up the chest trap as expected, the disarm will just fail with no message printed, and the player can continue attempting to disarm the chest with different inputs until the correct trap is tried. In my limited testing this only seems to occur after an incorrect identification; entering an incorrect but valid trap after a correct identification produces the expected "OOPPS!" result, as does entering an invalid trap name in any circumstance.

snafaru commented 1 year ago

Hi Reiska42.

OK, I have never seen or heard of those issues. I will test this weekend. Concerning the second issue I always thought it displayed “Disarm Failed” and you try again... but you say it just says nothing after an incorrect identification... I will take a look at the code...

I am curious how many “unknown” issues have slipped under the radar that will be reported to me with this release!

Thank you, your feedback is much appreciated.

Eric

From: Reiska42 @.> Sent: Thursday, March 30, 2023 10:03 PM To: snafaru/Wizardry.Code @.> Cc: Subscribed @.***> Subject: [snafaru/Wizardry.Code] Problems with disarming chest traps (Issue #3)

I've observed two issues with chest disarming in the March 23 release, one of which is also an issue with the original Sir-tech build of 1/22/1982 and one which appears to be unique to this release.

The issue that also occurs in the original final Sir-tech build is that the text input for the name of a chest trap isn't properly bounded at 14 characters and will allow you to continue typing outside of the window frame; continuing to enter text will overwrite the "# CHARACTER NAME" text on the status display. Upon entering more than 25 characters, the display will corrupt entirely (in AppleWin it reverts to the last text mode screen to be displayed). If you press Return at this point, the game will recover (but with some lingering display corruption); if you continue to enter text the game will appear to have hung, but in fact the game does not actually appear to hang until 36 characters have been entered. (I was able, for instance, to type 12345678901234567890123456789012345 for a trap name, hit return, and have the game screen recover, but adding one more character onto that appears to cause a hang, at least on AppleWin.)

The second issue I've observed is that in some cases, after having a thief attempt to identify a chest trap, when they identify the trap incorrectly and the player then goes on to enter the name of an incorrect but valid trap in the disarm prompt, instead of blowing up the chest trap as expected, the disarm will just fail with no message printed, and the player can continue attempting to disarm the chest with different inputs until the correct trap is tried. In my limited testing this only seems to occur after an incorrect identification; entering an incorrect but valid trap after a correct identification produces the expected "OOPPS!" result, as does entering an invalid trap name in any circumstance.

— Reply to this email directly, view it on GitHub https://github.com/snafaru/Wizardry.Code/issues/3 , or unsubscribe https://github.com/notifications/unsubscribe-auth/A43GBF5JRBIM6LZTGFUQJ43W6Y3MFANCNFSM6AAAAAAWOBKUNI . You are receiving this because you are subscribed to this thread. https://github.com/notifications/beacon/A43GBF56SE4LMWOQXL62IVDW6Y3MFA5CNFSM6AAAAAAWOBKUNKWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHGEQXD2I.gif Message ID: @. @.> >

Reiska42 commented 1 year ago

I can confirm that "Disarm Failed" can still show up if you type in the correct result but fail the roll for a successful disarm, as intended (and then you can try again).

snafaru commented 1 year ago

Hi.

1: Concerning the screen corruption (and game crash when too long) when entering characters for a trap name that exceeds the normal allotted space, and this applies also to anything calling the procedure GETSTR (get string) such as entering a spell name, or answer to a riddle as well, and setting the time delay.

Besides corrupting the screen, the games crashes a one point... I guess when a buffer gets eventually full or something similar to that.

So, it is on the list of fixes to be done. The disk is completely full though, there may not be enough coding space for this at the moment.

2: This happens every time the trap type is 3, see below. It does not matter if you “identified” first. I believe this is caused by having an extra “end” at line 9900. So this is on the list of fixes to be done.

9880 19 23:2 174 ELSE IF TRAPTYPE = 3 THEN

9881 19 23:4 185 BEGIN

9882 19 23:5 185 CASE TRAP3TYP OF

9883 19 23:5 190 0: IF TRAPSTR = 'CROSSBOW BOLT' THEN

9884 19 23:7 212 DISARM;

9885 19 23:7 216

9886 19 23:5 216 1: IF TRAPSTR = 'EXPLODING BOX' THEN

9887 19 23:7 238 DISARM;

9888 19 23:7 242

9889 19 23:5 242 2: IF TRAPSTR = 'SPLINTERS' THEN

9890 19 23:7 260 DISARM;

9891 19 23:7 264

9892 19 23:5 264 3: IF TRAPSTR = 'BLADES' THEN

9893 19 23:7 279 DISARM;

9894 19 23:7 283

9895 19 23:5 283 4: IF TRAPSTR = 'STUNNER' THEN

9896 19 23:7 299 DISARM;

9897 19 23:5 303 END;

9898 19 23:5 320

9899 19 23:5 320 ( DOTRAPDM )

9900 19 23:4 320 END

snafaru commented 1 year ago

Issue #2: The disarming traps bug has been fixed. The solution was to un-remark -DOTRAPDM- . It was entered as sort of a hint in the code that this is how it was fixed in Wizardry III Legacy of Llylgamyn.

snafaru commented 1 year ago

Reiska42, email me at snafaru@zimlab.com if you would like me to credit the report of this bug to another name besides Reiska42.

Reiska42 commented 1 year ago

Nope, Reiska42 is fine. :)

snafaru commented 1 year ago

Regarding issue #1: Fixed in Release 09 Apr 2023. In the maze, when entering text for a spell name, trap name, time delay, or answer to a riddle, if you continue typing characters the text will overflow to next lines and eventually the game will crash. The fix is restricting the length of the entry to the minimum necessary to prevent the game from crashing. But, I did not make it so short as to prevent answering a fairly long riddle of up to 22 characters. One can still corrupt the screen by overtyping but at least the game will not crash anymore.