<!-- MHonArc v2.4.4 --> <!--X-Subject: Re: [MUD-Dev] Room-based vs. coordinate-based --> <!--X-From-R13: nyrkbNovtsbbg.pbz (Oyrk Aera) --> <!--X-Date: from fabius.globecomm.net [207.51.48.6] by in10.ibm.net id 867056395.49358-1 Mon Jun 23 08:59:55 1997 CUT --> <!--X-Message-Id: 33b33947.521449955@neptune --> <!--X-Content-Type: text/plain --> <!--X-Reference: 199706120100.SAA01212#xsvr3,cup.hp.com --> <!--X-Reference: 33A001A5.41C67EA6#iname,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:alexo#bigfoot,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="msg01451.html">Previous</a> | <a href="msg01453.html">Next</a> ] Thread: [ <a href="msg01319.html">Previous</a> | <a href="msg01458.html">Next</a> ] Index: [ <A HREF="author.html#01452">Author</A> | <A HREF="#01452">Date</A> | <A HREF="thread.html#01452">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>: <A HREF="mailto:alexo#bigfoot,com">alexo#bigfoot,com</A> (Alex Oren)</LI> <LI><em>Date</em>: Mon, 23 Jun 1997 08:59:50 GMT</LI> </UL> <!--X-Head-of-Message-End--> <!--X-Head-Body-Sep-Begin--> <HR> <!--X-Head-Body-Sep-End--> <!--X-Body-of-Message--> <PRE> Which brings me back to the topic. How would I implement the equivalent of room-spoofs in a coordinate-based setting? Shawn wrote: } clawrenc#cup,hp.com wrote: } > } > In <<A HREF="msg01266.html">339C618C.167EB0E7#iname,com</A>>, on 06/09/97 } > at 05:16 PM, Shawn Halpenny <malachai#iname,com> said: } } [ original handling of user-programming ] } } > You're going to have a checklist to run every piece of code past to } > make sure nothing has been missed? You're never going to skip or } > skimp something on this list? This list is going to always be updated } > as the system changes? } > } > >The solution above is not exactly conducive to that. } > } > Quite. } } _Originally_ that was my intent, though the more I thought about what I } wanted to be possible, the less I looked forward to the amount of work } involved. So no, there won't be any checklist that I have to watch over, } since if I can make things generic enough, everything will hold itself } together and not need me to hold its hand. The addition of user-programming } was a fairly recent thing for me, so some changes of methodology are } definitely necessary. } } [ spoof implementation ] } } Which is essentially what I'm getting at here: } } > >I make the magic-effect creator a method on a container (say, a room) } > >and whenever I want to "spoof", I just override the method in a } > >derived object (something I already do elsewhere, hence my realizing } > >I'd not thought the post through enough). Simple enough, since all } > >the rooms are derived from a common object (which would have been } > >that magic-effect creator if you went high enough up the inheritance } > >tree) anyhow. That should now account for stupid programmers and } > >make things much more scalable. And of course, if one does the } > >inheritance and overriding properly, it's nicely applicable to all } > >sorts of other situations. } > } > Bingo. } } Good. Nothing new or quirky going on here, just plain OOD. What I called } "inheritance" is your spoof-by-cloning, and your generic methods are what } I do through overriding. } } > >If A wants to watch B, A sticks a reference to itself in a list } > >inside B. State changes in B will now send notification to A } > >provided the change matches the parameters required by the watcher. } > >A can stop watching B whenever it chooses, but only the destruction } > >of B can force A to stop watching B. } > } > Ahh. I don't have any sort of filtering or definition of watchers. A } > watcher just triggers whenever an object changes. The result is a } > message sent to the waiting object of the form, "I HAVE CHANGED". I } > then leave it up to the waiting object to figure out what changed, and } > if they are interested in that change. } } A watcher will only trigger if the correct property (or properties) } changes so that the watching object isn't deluged by messages about state } changes it doesn't care about on busy objects. The waiting object only has } to decide what to do with the change, since it only gets messages } concerning the things it cares about. } } > This allows a watcher to trigger on a state change for a private data } > member in an object. Depending on the strictness of your views on } > data encapsulation, this can be thought of as a Good Thing, or a Bad } > Thing. } } Watchers can trigger on private data changes by not defining exactly what } they're watching, but choosing to watch for a change in any property. So } I still maintain the low message traffic for watchers waiting on a few } properties, and don't have to cheat my encapsulation by allowing watching } on the entire object if desired. } } -- } Shawn Halpenny } } "Caesar si viveret, ad remum dareris" } - Latin for All Occasions } } Have fun, Alex. </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="01618" HREF="msg01618.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong> <ul compact><li><em>From:</em> clawrenc#cup,hp.com</li></ul> <li><strong><A NAME="01465" HREF="msg01465.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong> <ul compact><li><em>From:</em> Nathan Yospe <yospe#hawaii,edu></li></ul> <li><strong><A NAME="01458" HREF="msg01458.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong> <ul compact><li><em>From:</em> Shawn Halpenny <malachai#iname,com></li></ul> </UL></LI></UL> <!--X-Follow-Ups-End--> <!--X-References--> <UL><LI><STRONG>References</STRONG>: <UL> <LI><STRONG><A NAME="01299" HREF="msg01299.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> <UL><LI><EM>From:</EM> clawrenc#cup,hp.com</LI></UL></LI> <LI><STRONG><A NAME="01308" HREF="msg01308.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> <UL><LI><EM>From:</EM> Shawn Halpenny <malachai#iname,com></LI></UL></LI> </UL></LI></UL> <!--X-References-End--> <!--X-BotPNI--> <UL> <LI>Prev by Date: <STRONG><A HREF="msg01451.html">Re: [MUD-Dev] Alright... IF your gonan do DESIESE...</A></STRONG> </LI> <LI>Next by Date: <STRONG><A HREF="msg01453.html">Pen-and-paper and Computer-based systems</A></STRONG> </LI> <LI>Prev by thread: <STRONG><A HREF="msg01319.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> </LI> <LI>Next by thread: <STRONG><A HREF="msg01458.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></STRONG> </LI> <LI>Index(es): <UL> <LI><A HREF="index.html#01452"><STRONG>Date</STRONG></A></LI> <LI><A HREF="thread.html#01452"><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>Re: [MUD-Dev] Room-based vs. coordinate-based</STRONG>, <EM>(continued)</EM> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <ul compact> <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><strong><A NAME="01313" HREF="msg01313.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Fri 13 Jun 1997, 05:35 GMT <LI><strong><A NAME="01319" HREF="msg01319.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Fri 13 Jun 1997, 20:34 GMT </LI> </LI> <LI><strong><A NAME="01452" HREF="msg01452.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Mon 23 Jun 1997, 15:59 GMT <LI><strong><A NAME="01458" HREF="msg01458.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Mon 23 Jun 1997, 23:52 GMT <LI><strong><A NAME="01619" HREF="msg01619.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, clawrenc <a href="mailto:clawrenc#cup,hp.com">clawrenc#cup,hp.com</a>, Tue 01 Jul 1997, 06:45 GMT </LI> </LI> <LI><strong><A NAME="01465" HREF="msg01465.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Nathan Yospe <a href="mailto:yospe#hawaii,edu">yospe#hawaii,edu</a>, Tue 24 Jun 1997, 01:33 GMT <LI><strong><A NAME="01474" HREF="msg01474.html">Re: [MUD-Dev] Room-based vs. coordinate-based</A></strong>, Alex Oren <a href="mailto:alexo#bigfoot,com">alexo#bigfoot,com</a>, Tue 24 Jun 1997, 14:09 GMT </LI> </LI> </LI> </LI> </LI> </ul> </ul> </ul> </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>