Skip to content
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

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

Open
AlexProudfoot opened this issue Nov 10, 2023 · 8 comments
Labels
bug dynamic modeling Things from the Dynamic Modeling machine. muddle Muddle/MDL

Comments

@AlexProudfoot
Copy link

Pull request heasm66/mdlzork#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 heasm66/mdlzork#59.
I have, unfortunately, found it necessary to give up on this since I have no idea what is going on.

@larsbrinkhoff
Copy link
Member

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

@larsbrinkhoff larsbrinkhoff added bug dynamic modeling Things from the Dynamic Modeling machine. muddle Muddle/MDL labels Nov 10, 2023
@eswenson1
Copy link
Member

@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.

@AlexProudfoot
Copy link
Author

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 heasm66/mdlzork#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.

@eswenson1
Copy link
Member

eswenson1 commented Nov 10, 2023

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?

@AlexProudfoot
Copy link
Author

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”.

@eswenson1
Copy link
Member

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

@AlexProudfoot
Copy link
Author

Ok Eric. Good luck.

@AlexProudfoot
Copy link
Author

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

Untitled

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug dynamic modeling Things from the Dynamic Modeling machine. muddle Muddle/MDL
Projects
None yet
Development

No branches or pull requests

3 participants