/** * This is the effect shadow inherit. * @changed Changed to use the shadow handler to recycle shadow. * - Sandoz, 3rd September 2002. */ object player; int id; /** @ignore yes */ object attach_to_player( object p, int i ) { player = p; id = i; return shadow( player, 1 ); } /* attach_to_player() */ /** @ignore yes */ void remove_effect_shadow( int i ) { if( i == id ) { if( !SHADOW_H->recycle_shadow(TO) ) destruct(TO); } else { player->remove_effect_shadow(i); } } /* remove_effect_shadow() */ /** @ignore yes */ protected mixed arg() { int enum; if( ( enum = (int)player->sid_to_enum( id ) ) == -1 ) { #ifdef DEBUG log_file("EFFECTS", "%s: no effect for %s on %s\n", time(), file_name(TO), file_name(player) ); #endif destruct(TO); return 0; } return (mixed)player->arg_of( enum ); } /* arg() */ /** @ignore yes */ protected void set_arg( mixed newarg ) { player->set_arg_of( player->sid_to_enum(id), newarg ); } /* set_arg() */ /** @ignore yes */ protected void remove_this_effect() { player->delete_effect( (int)player->sid_to_enum( id ) ); } /* remove_this_effect() */