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