<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Room-based vs. coordinate-based --> <!--X-From-R13: Eunja Vnycraal <znynpunvNvanzr.pbz> --> <!--X-Date: from babe.globecomm.net [207.51.48.8] by in12.ibm.net id 865529066.35734-1 Thu Jun 5 16:44:26 1997 CUT --> <!--X-Message-Id: 3396ECE4.41C67EA6#iname,com --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199706041750.KAA00769#xsvr3,cup.hp.com --> <!--X-Head-End--> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>MUD-Dev message, Re: [MUD-Dev] Room-based vs. coordinate-based</title> <!-- meta name="robots" content="noindex,nofollow" --> <link rev="made" href="mailto:malachai#iname,com"> </head> <body background="/backgrounds/paperback.gif" bgcolor="#ffffff" text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000"> <font size="+4" color="#804040"> <strong><em>MUD-Dev<br>mailing list archive</em></strong> </font> <br> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] <br clear=all><hr> <!--X-Body-Begin--> <!--X-User-Header--> <!--X-User-Header-End--> <!--X-TopPNI--> Date: [ <a href="msg01199.html">Previous</a> | <a href="msg01201.html">Next</a> ] Thread: [ <a href="msg01153.html">Previous</a> | <a href="msg01237.html">Next</a> ] Index: [ <A HREF="author.html#01200">Author</A> | <A HREF="#01200">Date</A> | <A HREF="thread.html#01200">Thread</A> ] <!--X-TopPNI-End--> <!--X-MsgBody--> <!--X-Subject-Header-Begin--> <H1>Re: [MUD-Dev] Room-based vs. coordinate-based</H1> <HR> <!--X-Subject-Header-End--> <!--X-Head-of-Message--> <UL> <LI><em>To</em>: <A HREF="mailto:mud-dev#null,net">mud-dev#null,net</A></LI> <LI><em>Subject</em>: Re: [MUD-Dev] Room-based vs. coordinate-based</LI> <LI><em>From</em>: Shawn Halpenny <<A HREF="mailto:malachai#iname,com">malachai#iname,com</A>></LI> <LI><em>Date</em>: Thu, 05 Jun 1997 12:44:21 -0400</LI> <LI><em>Sender</em>: <A HREF="mailto:rsh#iname,com">rsh#iname,com</A></LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> clawrenc#cup,hp.com wrote: > > In <<A HREF="msg01099.html">33943B87.41C67EA6#iname,com</A>>, on 06/03/97 > at 08:58 AM, Shawn Halpenny <malachai#iname,com> said: > > >Alex Oren wrote: > > >> (*) Area effects. > >> > >> How will I handle "Boffo arrives from the north" type of messages? > >> > >> Room-based (or, rather, "container-based") has an advantage here. A > >> container may send messages to the objects it contains. In a > >> coordinate-based system I will need to consult a "map" of object > >> locations to determine message recipients. Or am I wrong? > > >Well, I have a mapping of locations to objects as well as each > >objects existing in a container (i.e. the room it's in). To make > >Boffo arrive from the north, I (roughly): > > - set Boffo's coordinates to the new location > > - check the location->object mapping to see if there is a real > > room at that location > > - if so, add Boffo to that container and generate a message > > for its contents > > - if not (the room is deterministically generated, so there > > is no room container), from the mapping grab all objects at > > Boffo's new location and tell them of Boffo's arrival. > > In which case how do you handle remote effects? This was discussed > back when for the Sceptre and the Elven Forest: [ Sceptre moving in/out of forest means magic fails/works in Castle Krak ] This would likely be handled by putting a method on the Sceptre to notify the rooms of Castle Krak whenever the Sceptre moved in and out of the Forest. When the rooms receive notification of the Sceptre in the Forest, the rooms would destroy any magical effect on any of their contents and also temporarily redefine the method used to create magical effect objects while within Castle Krak (note that Thrud's Sword of Doom wouldn't change at all but anything it tries to do that requires creation of a magical effect would fail--this should have the (intended) consequence of the Sword essentially failing to work. You may argue that Thrud's Sword should change in some further fashion, but I will disagree, since there is nothing aside from the magical-effect-creation that makes the Sword inherently magical--that is, you can't necessarily tell something is magical just by looking at it...things are magical only if they create magical effects). Once the Sceptre moves out of the forest, the rooms again receive notification and the effect-creation method is redefined to its original meaning. If a region surrounded by Castle Krak were deterministically generated, this can still be done, but would have to be done by notifying an object within Castle Krak of the sceptre's whereabouts. This object would handle destroying effects in each real room of Castle Krak as well as the deterministic, virtual region surrounded by the Castle (since it can't receive any notifications on its own). > Now, just to prevent you special casing the magic calls to go check we > had the relics of the Great God GooGoo and the Magic Sack. Hmm. Is the above special casing the magic calls? I suppose in a sense it is, since any call to make magic will do a check to see if the effect is being done in Castle Krak (the check is not on an effect-by-effect basis, though). There would have to be a check done _somewhere_ no matter your implementation, though, no? This seems general enough...if you had a large number of Castle Krak's , however, things could start to slow down as the conditional for each was evaluated. > Ohh, what > the crap, I might as well post the entire scenario (it was what was > used to develop and exercise my spoof and watcher models): [ three relics of GGGG and description of their function ] This can be done in similar (though more complex) fashion. Whenever object A requires notification of a change in object B, B must have A in its list of objects who are notified of a change in B. The watchers must be correctly set up and the methods called by the watchers must execute the correct actions, but I think it all can be done with what I've got. I've no explicit concept for spoofs. I would do that with variables that would be conditionally set in the objects that are the spoofs. The methods that care about whether or not they're working with a spoof or not can then check that fact. I had hashed out precisely this scenario (prompting a couple small modifications to the way effects and magic worked) when you last posted it to the list, so I know the remote effect handling works acceptably well. -- Shawn Halpenny "Tell a man there are 300 billion stars in the universe and he'll believe you. Tell him a bench has wet paint on it and he'll have to touch to be sure." - Unknown </PRE> <!--X-Body-of-Message-End--> <!--X-MsgBody-End--> <!--X-Follow-Ups--> <HR> <ul compact><li><strong>Follow-Ups</strong>: <ul> <li><strong><A NAME="01237" HREF="msg01237.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong> <ul compact><li><em>From:</em> clawrenc#cup,hp.com</li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="01153" HREF="msg01153.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> <UL><LI><EM>From:</EM> clawrenc#cup,hp.com</LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg01199.html">Re: [MUD-Dev] RP=MUSH/PG=MUD</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg01201.html">Re: [MUD-Dev] RP=MUSH/PG=MUD</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg01153.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg01237.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#01200"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#01200"><STRONG>Thread</STRONG></A></LI> </UL> </LI> </UL> <!--X-BotPNI-End--> <!--X-User-Footer--> <!--X-User-Footer-End--> <ul><li>Thread context: <BLOCKQUOTE><UL> <LI><STRONG>Room-based vs. coordinate-based</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <LI><strong><A NAME="01059" HREF="msg01059.html">Room-based vs. coordinate-based</A></strong>, Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Tue 03 Jun 1997, 01:02 GMT <UL> <LI><strong><A NAME="01096" HREF="msg01096.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Adam Wiggins <a href="mailto:nightfall#inficad,com">nightfall#inficad,com</a>, Tue 03 Jun 1997, 19:31 GMT </LI> <LI><strong><A NAME="01099" HREF="msg01099.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Tue 03 Jun 1997, 22:43 GMT <UL> <LI><strong><A NAME="01153" HREF="msg01153.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Thu 05 Jun 1997, 00:52 GMT <UL> <LI><strong><A NAME="01200" HREF="msg01200.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Thu 05 Jun 1997, 23:44 GMT <LI><strong><A NAME="01237" HREF="msg01237.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Thu 08 Jan 1970, 05:01 GMT <LI><strong><A NAME="01266" HREF="msg01266.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Tue 10 Jun 1997, 03:03 GMT <LI><strong><A NAME="01299" HREF="msg01299.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Thu 12 Jun 1997, 08:02 GMT <LI><strong><A NAME="01308" HREF="msg01308.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Thu 12 Jun 1997, 21:03 GMT </LI> </LI> </LI> </LI> </LI> </UL> </LI> </UL> </LI> </UL> </LI> </ul> </ul> </ul> </ul> </ul> </ul> </LI> </UL></BLOCKQUOTE> </ul> <hr> <center> [ <a href="../">Other Periods</a> | <a href="../../">Other mailing lists</a> | <a href="/search.php3">Search</a> ] </center> <hr> </body> </html>