[599] in Coldmud discussion meeting
Deleting inherited parameters
daemon@ATHENA.MIT.EDU (Sat Nov 26 16:53:58 1994
)
From: brandon@avon.declab.usu.edu
To: coldstuff@MIT.EDU
Date: Sat, 26 Nov 94 14:52:39 -0700
Once again I am bringing this subject up :) I REALLY would like to see this
ability in the driver, what were the arguments against it? Basically a func
could be created along the lines of: (called on the defining object)
clear_parameter($descendant, 'parameter)
Example:
-----
Two Objects:
Object: $A:
Parents: [$misc]
Methods:
bar() (returns the value of bar)
$root Parameters:
[...]
$A Parameters:
bar: ['nothing]
Object: $B
Parents: [$A]
Methods:
(none)
$root Parameters:
[...]
$A Parameters:
bar: ['my_own_value, 1]
-----
Object $A removes the parameter 'bar.
Object $B still has 'bar set on $A. However, it is completely useless
since $A no longer defines 'bar (calling $B.bar() will return ~paramnf--
it will work again if you add the parameter back to $A)
-----
Then on $A a method is defined as:
@program $A.clear_bar
clear_parameter(this(), 'bar);
.
-----
At which point you should be able to call $B.clear_bar() and remove 'bar...
Comments?
(BTW, I do not consider copying an entire object just to clear a parameter as
a valid option, it is a horrid kludge to get around a gaping hole, in my
opinion)
-Brandon (Lynx)-