So my big question is what the title says. I’m 99% sure it’s something with Inform, but I’m also 99% sure there may be a constant I can set so that things don’t blow up.
Below is my list of tables. I suspect the names aren’t important, but I want to give some background to the problem.
Array TableOfTables → TheEmptyTable T0_final_question_options T1_locale_priorities T2_ordinary_status T3_fri_finds T4_fri_milestones T5_edu_finds T6_edu_milestones T7_sup_finds T8_sup_milestones T9_peo_finds T10_peo_milestones T11_stu_finds T12_stu_milestones T13_las_finds T14_las_milestones T15_fri_near_misses T16_edu_near_misses T17_sup_near_misses T18_peo_near_misses T19_stu_near_misses T20_scenery_3 T21_scenery_4 T22_scenery_5 T23_scenery_6 T24_scenery_7 T25_scenery_8 T26_scenery_9 T27_scenery_10 T28_silly_randoms T29_elevensies T30_dirmatches T32_silly_jokes 0 0;
outside-area is a privately-named room. printed name of outside-area is "Sector [your-sec]". "[outside-rand]" to say outside-rand: unless set to unabbreviated room descriptions: continue the action; else: say "[one of]You feel as if you both should and shouldn't know this area[or]There's a [one of]smaller[or]larger[at random] than usual crowd by the [one of]teleports[or]vertical tubes[at random] here. Well, it can't always be constant[or]The sidewalks go from too crowded to too empty to unremarkable as you walk around[or]You think you see someone from a few blocks ago, coming the opposite way again, but you can't just go up and ASK them[or]Suddenly you remember how, as a kid, you wanted to visit every single sector one day[or]Someone complains their map-tracker has led them the wrong way[or]You stop to wonder how confusing old times must have been, when city subsectors had curvy bent borders[or]You wonder what living in a smaller city, one where diagonal streets were legal, would be like[in random order].[no line break]";
Now what happens after running certain test scripts repeatedly in Z-machine is, I get an error like
[** Programming error: tried to read from ->-4 in the array “T26_scenery_9”, which has entries 0 up to 31 **]
But this array/table is nowhere near the code above! In fact it’s only accessed in very specific instances I didn’t get close to testing.
So it looks like something is getting overwritten here. I tried this code which worked for Threediopolis
Use maximum indexed text length of at least 3000. [2000 is usual] Use dynamic memory allocation of at least 16384. [8192 is usual]
But I am still getting the errors, and I can’t increase the dynamic memory allocation any more.
Is there anything else I can reasonably try to get a z-machine binary? Should I maybe try converting tables to lists, or something? Or am I just stuck with glulx?
(Note: it would be possible to reorganize everything from tables but that’s more code-munging than I’m willing to undergo at the moment. It’d be nice but not critical to have a z8/zblorb binary.)