Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Christminster release 4 (and sources)

3 views
Skip to first unread message

Gareth Rees

unread,
Nov 22, 1996, 3:00:00 AM11/22/96
to

I've just uploaded release 4 of "Christminster" to the IF archive:

<URL:ftp://ftp.gmd.de/if-archive/games/infocom/minster.z5>

The new release fixes a couple of major bugs, incluing the problems with
the cellar (touch wood) and the parrot, and there are another thirty or
so minor improvements and bug fixes. I haven't made any big changes,
nor do I intend to.

I've also released the complete source code to "Christminster":

<URL:ftp://ftp.gmd.de/if-archive/games/source/inform/minster-sources.tar.gz>

The sources are not extensively commented, and I must admit that I find
some of the algorithms a bit daunting now (though I'm sure I must have
understood them at the time). Inform programmers may still find parts
interesting.

Missing from the uploaded code are a few hacks I made to the library
sources, code that makes doors automatically open when the player tries
to go through them. (And also some pedantic removing of double-spaces.)
I will add these hacks to the archive eventually, and patch files are
given at the end of this article.

Thanks to everyone who sent me comments or bug reports, Volker Blasius
for running the archive, and Graham Nelson for writing Inform.

--
Gareth Rees

------------------------------------------------------------------------------
*** verblib.h:
< [ GoSub i j k df movewith thedir;
---
> [ GoSub i j k df movewith thedir ks;
1066a1067,1073
> #IFDEF USE_AUTOOPEN;
> if (j hasnt open && j has openable && j hasnt locked && j has autoopen)
> { L__M(##Go,7,j);
> ks=keep_silent; keep_silent=1; <Open j>; keep_silent=ks;
> if (j hasnt open) rtrue;
> }
> #ENDIF;
1068c1075,1076
< { if (noun==u_obj) return L__M(##Go,3,j);
---
> { if (j has locked) return L__M(##Go,8,j);
> if (noun==u_obj) return L__M(##Go,3,j);
1568,1569c1576,1577
< if (n==6) "[Your interpreter does not provide ~undo~. Sorry!]";
< if (n==7) "~Undo~ failed. [Not all interpreters provide it.]";
---
> if (n==6) "[Your interpreter does not provide ~undo~. Sorry!]";
> if (n==7) "~Undo~ failed. [Not all interpreters provide it.]";
1697c1705,1708
< print "You can't, since "; DefArt(x1); " leads nowhere.";
---
> if (n==6) { print "You can't, since "; DefArt(x1);
> " leads nowhere."; }
> if (n==7) print_ret "(Opening ", (the) x1, " first)";
> if (n==8) print_ret (The) x1, " is locked.";
1726c1737
< Examine: if (n==1) "Darkness, noun. An absence of light to see by.";
---
> Examine: if (n==1) "Darkness, noun. An absence of light to see by.";
1783c1794
< print "You eat "; DefArt(x1); ". Not bad.";
---
> print "You eat "; DefArt(x1); ". Not bad.";
------------------------------------------------------------------------------
*** parser.h:
44a45,47
> #IFDEF USE_AUTOOPEN;
> Attribute autoopen;
> #ENDIF;
------------------------------------------------------------------------------
*** grammar.h
107d106
< * multiinside "from" noun -> Remove
111d109
< * multiinside "off" noun -> Remove
113a112,113
> * multiinside "off" noun -> Remove
> * multiinside "from" noun -> Remove
------------------------------------------------------------------------------

0 new messages