/**
* This is used to repeat all events onto the object that requested it
* (excluding events from the object itself). The methods it calls on
* the repeater object are:
* <ul>
* <li>repeat_event_person_say
* <li>repeat_event_emote
* <li>repeat_event_say
* <li>repeat_event_enter
* <li>repeat_event_exit
* </ul>
* @author Pinkfish
* @started Thu Sep 23 19:09:49 PDT 1999
*/
private nosave object _repeater;
/**
* This method sets the owner of the repeater.
* @param owner the object that owns the repeater
*/
void set_repeater_owner(object owner) {
_repeater = owner;
} /* set_repeater_owner() */
/**
* This method returns the owner of the repeater.
* @return the object to inform of all events
*/
object query_repeater_owner() {
return _repeater;
} /* query_repeater_owner() */
/*
* Stuff to relay the messages from the environment to the person on the
* horse and vica versa.
*/
/**
* This is called on the repeater object to process the actual message
* event_person_say message.
* @param caller the repeater who sent the message
* @param ob the object that did the say
* @param start the start string
* @param mess the message string
* @param lang the language the message is in
*/
void repeat_event_person_say(object caller,
object ob,
string start,
string mess,
string lang) {
} /* repeat_event_person_say() */
/** @ignore yes */
void event_person_say(object ob, string start, string mess, string lang) {
if (_repeater) {
_repeater->repeat_event_person_say(this_object(),
ob,
start,
mess,
lang);
}
} /* event_person_say() */
/**
* This is called on the repeater object to process the actual message
* event_emote message.
* @param caller the repeater who sent the message
* @param ob the object that did the semote
* @param mess the message string
*/
void repeat_event_emote(object caller,
object ob,
string mess) {
} /* repeat_event_emote() */
/** @ignore yes */
void event_emote( object ob, string mess ) {
if (_repeater) {
_repeater->repeat_event_emote(this_object(),
ob,
mess);
}
} /* event_emote() */
/**
* This is called on the repeater object to process the actual message
* event_say message.
* @param caller the repeater who sent the message
* @param ob the object that did the event_say
* @param mess the message string
* @param avoid the array of objects not to print the message
*/
void repeat_event_say(object caller,
object ob,
string mess,
object *avoid) {
} /* repeat_event_say() */
/** @ignore yes */
void event_say(object ob, string str, mixed avoid) {
if (_repeater) {
_repeater->repeat_event_say(this_object(),
ob,
str,
avoid);
}
} /* event_say() */
/**
* This is called on the repeater object to process the actual message
* event_soul message.
* @param caller the repeater who sent the message
* @param ob the object that did the event_soul
* @param mess the message string
* @param avoid the array of objects not to print the message
*/
void repeat_event_soul(object caller,
object ob,
string mess,
object *avoid) {
} /* repeat_event_soul() */
/** @ignore yes */
void event_soul(object ob, string str, mixed avoid) {
if (_repeater) {
_repeater->repeat_event_soul(this_object(),
ob,
str,
avoid);
}
} /* event_soul() */
/**
* This is called on the repeater object to process the actual message
* event_enter message.
* @param caller the repeater who sent the message
* @param ob the object that did the event_say
* @param mess the message string
* @param prev the last environment of the object
*/
void repeat_event_enter(object caller,
object ob,
string mess,
object prev) {
} /* repeat_event_enter() */
/** @ignore yes */
void event_enter( object thing,
string mess,
object prev ) {
if (_repeater) {
_repeater->repeat_event_enter(this_object(),
thing,
mess,
prev);
}
} /* event_enter() */
/**
* This is called on the repeater object to process the actual message
* event_exit message.
* @param caller the repeater who sent the message
* @param ob the object that did the event_say
* @param mess the message string
* @param exit where the object is going to
*/
void repeat_event_exit(object caller,
object ob,
string mess,
object dest) {
} /* repeat_event_exit() */
/** @ignore yes */
void event_exit( object thing,
string mess,
object dest ) {
if (_repeater) {
_repeater->repeat_event_enter(this_object(),
thing,
mess,
dest);
}
} /* event_exit() */