[Adv3Lite] how to exclude a library module?

DWIM means “Do What I Mean” and is one of the most evil thing existing in command line interfaces. (think about finding the disk erased because the DWIM decides that the typo means “delete every file”)

In IF its evilness is somewhat reduced, but in debugging a porting to adv3lite I have these issues:

example, in a game where is a die Dim-WItted-Meanie decides that “dix” refer to it, with this result:

push dix
(push die)
Pushing the testing die has no effect.

whose can easily turn typos in cheating/spoilers, considering the mass of synonyms (whose already caused mess in the adv3 version…)

I think that the annoyance (I never liked this type of artificial stupidity) lies in english/newbie.t, and if I’m correct, how I can exclude this component, my WIP is definitively not one for newbies, after all.

Incidentally, in newbie.t is a bodypart method, whose in presence of unimplemented bodypart gives this definitively misleading (and inappropriate for my IF, where the PC has a different body) reporting:

x nose
Generally speaking, there is no need to refer to your body parts individually in interactive fiction. WEAR SHOES ON FEET will not necessarily be implemented, for instance; WEAR SHOES is enough. And unless you get some hint to the contrary, you probably cannot OPEN DOOR WITH FOOT or PUT THE SAPPHIRE RING IN MY MOUTH.

I prefer not to touch the library directory itself, so I prefer not altering the *.tl files, so, how to exclude newbie.t without editing the relevant *.tl or worst, breaking the library dependencies ?

TIA and best regards from Italy,
dott. Piergiorgio.

1 Like

This is the parser’s auto-spell feature, which sometimes backfires. You can disable it by setting Parser.autoSpell to nil (with modify, of course).

You can disable this by setting the bodyParts.initialLocationClass to nil, which effectively prevents the bodyParts object (which is a MultiLoc) from being present in any of your game’s rooms. (Again, using modify to avoid touching the library files.)

But to answer your question about removing newbie.t outright … it looks like adv3Lite packages an englishmin.tl file that does not include newbie.t. You might try setting LANGUAGE=englishmin in your build file. (Don’t know this for sure this works, never tried it before.)


Thanks !!!
(also for the “sometimes backfires” understatement :smiley: )

Best regards from Italy,
dott. Piergiorgio.

EDIT: works as expected:

x nose
You see no nose here.

x dix
You see no dix here.

1 Like