Newsgroups: rec.arts.int-fiction
Path: news.duke.edu!newsgate.duke.edu!nntp-out.monmouth.com!newspeer.monmouth.com!news.maxwell.syr.edu!jfk3-feed1.news.digex.net!dca6-feed2.news.digex.net!intermedia!feed2.news.rcn.net!rcn!netnews.com!xfer02.netnews.com!newsfeed1.cidera.com!Cidera!news-reader.ntrnet.net!uunet!ash.uu.net!world!buzzard
From: buzzard@world.std.com (Sean T Barrett)
Subject: Re: [Inform] Hard-to-explain problem...
Message-ID: <GJ9q41.7GB@world.std.com>
Date: Fri, 7 Sep 2001 01:14:25 GMT
References: <20010906210236.19917.00000235@mb-mr.aol.com>
Organization: The World Public Access UNIX, Brookline, MA
Lines: 34
Xref: news.duke.edu rec.arts.int-fiction:92278

Robotboy8 <robotboy8@aol.com> wrote:
>It'll work fine, but then when you're in the meadow "Violence
>isn't the answer to this one" is printed.  Why?  I've tried placing the fight
>code in the imp's "life" routine, it's "before" routine, and it's
>"react_before" routine.  It always works the same.  I've tried inserting
>"return" in random places and it still says that violence won't solve anything.

It sounds like you need to return *true* (i.e. "rtrue"), rather
than return false (which is what 'return' alone does).

Normally routines like this are written to print using a quoted
string:

   "Have a big cut scene!";

which is an abberviation for

   print_ret "Have a big cut scene!";

which is an abbreviation for

   print "Have a biug cut scene!";
   new_line;
   rtrue;

So you need to add in the "rtrue" yourself if you're not using
print_ret or its abbreviated form. If it's not that, you've got me.

In general, returning "true" from these routines means "stop all
processing, I've done it myself", and returning "false" from the
routines means, "I've done some processing, but keep going with
the normal course of events".

SeanB
