<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-1" http-equiv=Content-Type>
<META content="MSHTML 5.00.2314.1000" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial size=2>Okay, thanks to your advices I have already
overrided the call_other function</FONT></DIV>
<DIV><FONT face=Arial size=2>with great success but I still have one bloody
problem.</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>Here's the shadow code:</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>private mapping shadows;</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>void shadow(object ob, object trg)
{<BR> if(!shadows[trg]) {<BR> shadows+=([ trg: ({ ob })
]);<BR> }<BR> else {<BR> shadows[trg]+=({ ob
});<BR> }<BR>}</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>object query_shadowing(object who, object whom)
{<BR> int i;<BR> if(!shadows[whom]) return
0;<BR> i=member_array(who, shadows[whom]);<BR> if(i==-1) return
0;<BR> return shadows[whom][i];<BR>}</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>object find_shadow_by_func(object trg, string func)
{<BR> int i;<BR> object *shs;<BR></FONT><FONT face=Arial
size=2> if(!shadows[trg]) return 0; /* (*) THIS IS THE
MARKED LINE!*/<BR> shs=shadows[trg];<BR> for(i=sizeof(shs);i--; )
{</FONT></DIV>
<DIV><FONT face=Arial size=2> if(function_object(func, shs[i]))
{<BR> return
shs[i];<BR> }<BR> }<BR> return 0;<BR>}</FONT></DIV>
<DIV> </DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2>And here comes the call_other:</FONT></DIV>
<DIV> </DIV>
<DIV><FONT face=Arial size=2><FONT face=Arial size=2>static varargs mixed
call_other(mixed obj, string func, mixed args...) {<BR> object
ob;<BR> rlimits(-1;-1)
{<BR> if(objectp(obj)) ob=find_shadow_by_func(obj,
func);<BR> if(ob) obj=ob;<BR> return ::call_other(obj,
func, args...);<BR> }<BR>}</FONT></FONT></DIV>
<DIV><FONT face=Arial size=2><FONT face=Arial size=2></FONT></FONT> </DIV>
<DIV><FONT face=Arial size=2><FONT face=Arial size=2></FONT></FONT> </DIV>
<DIV><FONT face=Arial size=2><FONT face=Arial size=2>Now it still don't work. I
have an object with shadow(this_object(), trg_ob);</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial>in it but it still won't work. It seems that
the code can't get past the line marked</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial>with (*), but to me, it seems that it SHOULD
get over it when I have called</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial>shadow...</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial></FONT></FONT> </DIV>
<DIV><FONT size=2><FONT face=Arial>I'm helpless, I've used all my tricks and
tried some really interesting fixes</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial>but none of them has worked. Please help a
fellow in trouble ;)</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial></FONT></FONT> </DIV>
<DIV><FONT size=2><FONT face=Arial>Regards,</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial>Risto Karjalainen</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial></FONT></FONT> </DIV>
<DIV><FONT size=2><FONT face=Arial>ps. The problem's prolly something too
relevant, if so, you can call me stupid</FONT></FONT></DIV>
<DIV><FONT size=2><FONT face=Arial> or what ever
you wan't but PLEASE tell me where the problem
is.<BR></DIV></FONT></FONT></BODY></HTML>