Dilemma based on verbcalls...

Ron Stanions (chaeon@roc.clawpaw.com)
Mon, 19 Feb 1996 23:28:27 PST


Ok, its dilemma time...  I previously thought the server was already =
able to use function calls in the form of #obj:("verbindex")() but =
recent testing shows even this doesn't work, and I now remember a =
discussion a long time ago about just this problem.  Because this isn't =
in the server already, I can imagine that putting it in becomes much =
more complicated than I originally pictured.  That, coupled with the =
announcement of beta3, leads me to have next to no hope to having this =
resolved before the actual release of 1.8.0  :)

That being the case, with the move towards in-db parsing,  what I quite =
literally have is a situation where
in my environment, $thing has the verb 'l*ook this-none-none", and $room =
has the two verbs 'l*ook this-none-none' and 'l*ook none none none' in =
that order.  this lets me do 'look thing', or 'look here' or 'look' =
without having to hand it off to :here_huh() to figure that all out.  =
(And remember again this is not the lambdacore, so there is good reason =
for why I do it this way.  Plus there are other instances I am =
encountering where I will need to do multiverbs with the same name.)

The server can parse these out, and execute the correct one, but now how =
do I make #0:do_command() execute the correct one?

I think the best solution was to create a dummy verb and =
set_verb_code(obj1, verb_code(obj1, "verb")) and call that verb =
directly.  This would work, but be pretty heavy hitting on the server, =
especially with big verbs that may suspend and all.  This poses another =
problem too,  pass() can no longer be used.

Fortunately at the moment, I am cheating by having the second verb set =
dobj to this, and calling this:look() which re-calls to the first verb, =
and that verb can pass() with no problem. It's when I need to pass() to =
the second occurrance of the verb that this will never be able to work =
correctly, and I just know that this is going to bite me on the ankle =
sooner or later...

--
chaeon@roc.clawpaw.com  -- Site admin for clawpaw.com     =
http://www.clawpaw.com
Chaeon - Site Wiz or K'ryn - Bronze rider,  VirtuaPern Moo   =
http://www.clawpaw.com/VirtuaPern
VirtuaPern MOO - telnet dragon.clawpaw.com port 9999