After the idle discussion about how to implement Craverly Heights in ZIL (particularly the name-changing paperwork), Jesse and Henrik have come up with a compact way to introduce that convenience in ZILF.
Starting with Suspended, some Infocom games had various ways behind the scenes to change the printed name. Learning ZIL mentions the SDESC property, but the Infocom approaches were not consistent and the ZILF stdlib does not implement SDESC.
But they came up with this brief example which introduces an SDESC function similar in spirit to the (implemented) DESCFCN and shows it off, with a map which changes names and a compass which does not:
While we’re talking over here, I notice that you prefer to do an explicit T? check, but the resulting .z5s from both of these pieces of code are identical:
So it’s just a legibility/explicitness preference, yes? Making it extra-clear to a casual reader that nothing is being gotten by that first GETP other than a true-or-false?
I tend not to be so compact in my coding… I’m still not fully comfortable with the LISP style of indentation and lines full of closing brackets. I often format my code ALGOL-style because I find it easier to read.
Here’s an implementation of such an object in I6, with the added bonus that the game will recognize the last printed name when used in player input too, while not recognizing the alternate name. This has great potential to drive the player mad.
Back in the “good old days” , when you wanted to do something more tricky that was not covered in “Learning ZIL”, there were probably some seasoned implementor in the cubicle next to you that you could ask (Disclaimer: I have no idea how the office at Infocom was organized).
It doesn’t say exactly when, just that it was “earlier this year”. According to the Infocom Fact Sheet they moved to 125 CambridgePark Drive in April 1985, and the images I got when searching for that address certainly does look a lot like the exterior shot in the video. So I guess they just moved in. Maybe that’s why the walls look so bare?
Edit: Jason Scott commented on the video three years ago, confirming it was the CambridgePark Drive office.
This is pretty apparent. I’ve browsed enough of the source code to recognize that although by no means is there a “uniform Infocom style”, there are some super-crazy outliers which to my eyes look nothing at all like other stuff, such as the offsite-developed Sherlock.
Hey, what if you wanted to have a bunch of adjectives (say two) change? Like it becomes a small curious map and big curious map (so big and small randomly change too). Is that possible at all?
Sure. The ADJECTIVE property can contain any number of adjectives, up to the platform limit on property sizes.
When it contains more than one, you can’t use GETP or PUTP to access them. Instead, use GETPT to get the address of the property data, PTSIZE to get the size of the property (in bytes), and GET or PUT to access the individual words, similarly to how you’d use .&, .#, and --> in Inform 6.
Also note: in V3, adjectives are stored as single bytes instead of words, so you’d use adjective numbers like ,A?CURIOUS instead of vocab word pointers like ,W?CURIOUS, and PUTB instead of PUT.
VOC is mentioned in the ZILF compiler test cases, which admittedly are the equivalent of the dark room down the broken stairs through the locked door marked “Beward of Leopard”.