private int light;
/*
* NAME: _F_add_light()
* DESCRIPTION: add to the local light value of this object
*/
nomask int _F_add_light(int i)
{
if (PRIVILEGED()) {
light += i;
}
return light;
}
/*
* NAME: query_light()
* DESCRIPTION: return the local light value of an object
*/
private int query_light(object obj)
{
return obj->_F_add_light(0);
}
/*
* NAME: add_light()
* DESCRIPTION: adjust the light value of this object, including environments
*/
private int add_light(int i)
{
int total_light;
object env;
total_light = light += i;
for (env = environment(); env != 0; env = environment(env)) {
total_light = env->_F_add_light(i);
}
return total_light;
}
/*
* NAME: set_light()
* DESCRIPTION: set the light value of an object
*/
static int set_light(int i)
{
rlimits (-1; -1) {
i = add_light(i);
}
return i;
}