-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
PRE-TURN oddities #4
Comments
I did notice this in <COND (<EQUAL? .GBIT ,RMUNGBIT>
<RETURN ,ROOMS>)> I'm not sure what that implies. Possibly it has to do with the syntax definitions that use <SYNTAX TURN OBJECT (FIND TURNBIT) (HELD CARRIED ON-GROUND IN-ROOM)
WITH OBJECT (FIND RMUNGBIT) = V-TURN PRE-TURN> |
Here's what I get in Zork I: An object that can't be turned, e.g. the bubble:
I think "TURN" should have printed "You can't turn that". The bolt:
I think "TURN BOLT WITH HANDS" should produce the same message as "TURN BOLT". The switch:
I think "TURN SWITCH WITH HANDS" should print the same message as "TURN SWITCH". Still, every object that handles the "TURN" action does work. |
Here's what I get in Zork II: Any object that can't be turned acts like in Zork I. The robot:
Actually, I have no idea why the robot even handles the TURN action. The second response is clearly wrong, though. The key:
Clearly, the "TURN KEY" response is nonsense. But more seriously, the key wasn't in the lock and I was nowhere near the door when I got the other responses. I need to test this without cheating (I wrote a debug verb to just move the key and some other tools to me), but I do think I just stumbled across another bug... The menhir:
I think "TURN MENHIR" should print the same message as "TURN MENHIR WITH object". |
Here's what I get in Zork III: Any object that can't be turned acts like in Zork I. Telling the Dungeon Master to turn the dial in the endgame:
The first two are, presumably, the same problem as when ordering the robot in Zork II to turn anything. The dial in the endgame:
The first message is wrong. It's neither the "You should turn the object to something." message from "TURN DIAL WITH SWORD" is presumably interpreted as "TURN DIAL TO SWORD". I don't think that's a problem. At least not if the "TURN DIAL" message is fixed. The T-bar:
The response to "TURN T-BAR" is wrong, and the custom message from Turning the compass rose acts like turning an object that can't be turned. The custom message in The time machine dial:
The response to "TURN DIAL" is correct, but could probably be handled by The second one is a bit nonsensical, but is probably intended as the response to "TURN DIAL TO SWORD". |
So, to summarize: The current exceptions in I'm not sure why we need We may still have to check if "TURN object" and "TURN object WITH HANDS" ought to have the same default error message. |
While the
V-TURN
routine has remained the same in all preserved versions of the Zork I, II and III source code:The
PRE-TURN
routine has gone through a series of evolutions, with the last one appearing to have some bugs. Here are the various versions of it:Zork II R22
Zork I R88, Zork II R48, Zork III R17
Zork I R119 and Solid Gold, Zork II R63, Zork III R25
A couple of things here:
PRSI
can ever be equal toROOMS
. I haven't checked, though.TURNBIT
. Shouldn't it say "You can't turn that!" instead?In Zork III, it makes exceptions for
DIAL
,TM-DIAL
andT-BAR
. I can understand the first two, butT-BAR
can't be turned to anything, doesn't even haveTURNBIT
(it probably shouldn't) and has its own custom action:I can't find any way to trigger that message at the moment:
I'm still a bit fuzzy on exactly when actions are handled where. Can some of these checks be moved to V-TURN instead, to avoid overriding custom handlers? Judging by a quick search the following action routines handle TURN:
BOLT-F
,BLACK-BOOK
,MSWITCH-FUNCTION
ROBOT-FCN
,PKEY-FCN
,MENHIR-FCN
DUNGEON-MASTER-F
,DIAL
,T-BAR-F
,ROSE-F
,TM-DIAL-F
(
ROBOT-FCN
andDUNGEON-MASTER-F
are probably for ordering the robot and Dungeon Master around.)I haven't had the time to check if all of these work as intended.
The text was updated successfully, but these errors were encountered: