# Dilemma based on verbcalls...

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

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    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