-
Notifications
You must be signed in to change notification settings - Fork 10
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
Compiler auto-continue issue #38
Comments
This occurred in a few places during my message combinations, so there are a few places in my current code where I had to keep two or even three (Update: As of my third test build, there are a total of eight excess print messages being used to pad around this issue. Since my game is at the 99-message limit this has a genuine impact on my ability to add/enhance content.) |
Is there any way to make that kind of compile bork more informative? It doesn't give us any information (that I can decode, anyway) about where in the source the issue is happening. If you can't dump line numbers can you at least dump nearby text/symbols? (This had a practical effect on me... when I was first going through and boiling down these multiple print strings to single strings, I created multiple of these bork spots and ultimately had to revert all my changes and start over, doing a test recompile after changing every action block. That's pretty fast on modern hardware, but if I were writing the game from scratch and hit that kind of roadblock it would have been harder to recover from.) |
As discussed on the intfiction forum, rolling my own fix in ScottKit does work around the problem:
This does compile and run correctly and saves the two excess messages. However, the documentation officially forbids this coding approach, so I continue to defer to you, when you have time to address it. :)
|
Multi-line messages (with embedded But why can't you just say
? |
Ah, OK — I see that very problem is what this issue is about. Sorry. I'll stop reacting to individual messages and wait till I have time to look at the bugs properly. |
As far as I can tell, the compiler uses The obvious solution is to insert Would this be feasible? |
…never mind, I spoke too soon. I'd thought that the nouns used in all conditions could be used as result parameters, but it seems it can only use ones with the condition NOP (condition code 0). Ignore that part. |
A question about Ghost King's published .dat having a continue-within-continue prompted me to look at a decompilation of adv11, and I think there is some evidence there that it isn't necessary to repeat continue, and indeed that there may be an opportunity to introduce more flexibility with conditional checks than we currently have if you wanted to go that route:
Two things jump out at me about that code. For one, there are several occur 0%s which can be evaluated without additional continues (there's no continue between the two "when here Neanderthal" blocks), and for the other, it seems like Adams uses continue in part as a way to evaluate different conditions inside a condition: "is flag 18 unset, or is the Neanderthal here?". adv03 also has examples of this kind of branching inside a continue. |
In trying to solve my own problem from #37 by reducing the number of printed messages, I've run into an oddity with the "condition has 6 conditions" error and the compiler's attempts to fix.
This original .sck code (see my source in #37 for full details) compiles and works:
Decompiled, it becomes:
However, if I edit that action into this:
then the following compiler bork occurs:
The text was updated successfully, but these errors were encountered: