its icon indicating copy to clipboard operation
its copied to clipboard

Cannot fix global object bugs in Muddle Zork which are fixable in Confusion Zork

Open AlexProudfoot opened this issue 2 years ago • 8 comments

Pull request https://github.com/heasm66/mdlzork/pull/30 doesn’t work when applied to https://github.com/PDP-10/its. It seems that any new GOBJECTS added to the game can't be successfully turned into RGLOBALS. See https://github.com/heasm66/mdlzork/pull/59. I have, unfortunately, found it necessary to give up on this since I have no idea what is going on.

AlexProudfoot avatar Nov 10 '23 17:11 AlexProudfoot

@eswenson1 is our Muddle and Zork expert. What do you think?

larsbrinkhoff avatar Nov 10 '23 17:11 larsbrinkhoff

@AlexProudfoot Can you explain why adding the "DWIND" ID to the DWINDOW object is going to fix the issue? I don't see any reference to "DWIND" in the code. Only to the existing ID, "WINDO". I would think there would need to be a reference to "DWIND" somewhere in the code in order for this to have any meaningful effect.

eswenson1 avatar Nov 10 '23 18:11 eswenson1

As I understand it, although I’m by no means an expert, the identifiers in question are loaded into the parser’s vocabulary table when the game starts and matched (or not) to the player’s commands so I would not expect to see references elsewhere in the source code.

I believe “WINDO” is elsewhere in the source code because there is at least one other window (the kitchen window) in the game.

It’s not that https://github.com/heasm66/mdlzork/pull/30 is going to fix the problem. It has fixed the problem.

The solution is based on the CPWALL objects, each of which has a unique first noun entry. I reasoned that if DWINDOW had the same kind of definition, it might fix the problem.

Why this works in Confusion but not in Muddle eludes me.

AlexProudfoot avatar Nov 10 '23 19:11 AlexProudfoot

There are references to “WINDO” in the code, but none to “DWIND”. For your change to the object to have any effect, you’d need to have some other code reference “DWIND”. Does your code reference “DWIND” anywhere?

I don’t see why anyone would ever type “dwind”, or a word with that prefix to the parser? In any case, how would it fix anything?

eswenson1 avatar Nov 10 '23 20:11 eswenson1

With respect, as I explained, the change does have the desired effect when using Confusion. The nouns “DWIND” and “WINDO” don’t have to be referenced elsewhere in the code.

I think (that is I’m not certain since I’m no expert) that each object must have a unique list of nouns. The point of “DWIND” is to provide a unique list of nouns, not to allow the player to type commands like “look at dwind”.

AlexProudfoot avatar Nov 10 '23 20:11 AlexProudfoot

Ok. I’ll take your word for it. I’ll apply the fix and debug the original problem if it still occurs.

eswenson1 avatar Nov 10 '23 21:11 eswenson1

Ok Eric. Good luck.

AlexProudfoot avatar Nov 11 '23 07:11 AlexProudfoot

Here is the output from the Confusion patched version of Zork after fixing the "WINDO" GOBJECT.

Untitled

AlexProudfoot avatar Nov 11 '23 13:11 AlexProudfoot