/
LIB3/
LIB3/D/ADMIN/
LIB3/D/ADMIN/OBJ/
LIB3/D/ADMIN/ROOM/W/
LIB3/D/HOME/
LIB3/D/HOME/CITY/ARENA/
LIB3/D/HOME/CITY/ITEMS/
LIB3/D/HOME/CITY/POSTOFFI/
LIB3/DOC/
LIB3/GLOBAL/SPECIAL/
LIB3/GLOBAL/VIRTUAL/
LIB3/NET/
LIB3/NET/CONFIG/
LIB3/NET/DAEMON/CHARS/
LIB3/NET/GOPHER/
LIB3/NET/INHERIT/
LIB3/NET/OBJ/
LIB3/NET/SAVE/
LIB3/NET/VIRTUAL/
LIB3/OBJ/B_DAY/
LIB3/OBJ/HANDLERS/TERM_TYP/
LIB3/PLAYERS/B/
LIB3/PLAYERS/N/
LIB3/ROOM/
LIB3/SAVE/
LIB3/SAVE/BOARDS/
LIB3/SAVE/ENVIRON/
LIB3/SAVE/POST/
LIB3/STD/COMMANDS/SHADOWS/
LIB3/STD/CREATOR/
LIB3/STD/DOM/
LIB3/STD/EFFECTS/
LIB3/STD/EFFECTS/HEALING/
LIB3/STD/EFFECTS/OTHER/
LIB3/STD/EFFECTS/POISONS/
LIB3/STD/ENVIRON/
LIB3/STD/GUILDS/
LIB3/STD/LIQUIDS/
LIB3/STD/ROOM/
LIB3/STD/TRIGGER/SHADOW/
LIB3/W/
LIB3/W/BANNOR/
LIB3/W/NEWSTYLE/
#include "path.h"
#define MY_NAME "UPPER CASE"

/*
 * The upper case curse.  Means everything you say comes out in upper
 * case.
 */
object  my_player;

int     init_curse( object pl )
{
    string  str;
    int     i;

    if( sscanf( (str = file_name( this_object() )), "%s#%d", str, i ) != 2 )
    {
/* A class not a clone */
	seteuid( (string)"/secure/master"->creator_file( str ) );
	return( int ) clone_object( str )->init_curse( pl );
    }
    my_player = pl;
    pl->add_curse( MY_NAME, str );
    if( !shadow( pl, 1 ) )
    {
	pl->remove_curse( MY_NAME );
	return 0;
    }
    return 1;
}				/* init_curse() */

/*
 * No special requirements for removeing this curse...
 */
int     query_remove()
{
    return 1;
}

/*
 * Called when the player logs on
 */
int     player_start( object pl )
{
    object  ob;

    if( !pl )
	pl = this_player();
    ob = clone_object( file_name( this_object() ) );
    ob->init_curse( pl );
}				/* player_start() */

/*
 * This gets called with the name of the curse we are getting rid of.
 */
int     destruct_curse( string str )
{
    if( str == MY_NAME )
	destruct( this_object() );
    else
	my_player->destruct_curse( str );
}				/* destruct_curse() */

static string upper_case( string str )
{
    string  ret;
    int     i;

    ret = "";
    for( i = 0; i < strlen( str ); i++ )
	ret += capitalize( str[ i..i ] );
    return ret;
}				/* upper_case() */

int     do_say( string str )
{
    return( int ) my_player->do_say( upper_case( str ) );
}				/* do_say() */

int     do_tell( string str )
{
    return( int ) my_player->do_tell( upper_case( str ) );
}				/* do_tell() */

int     do_loud_say( string str )
{
    return( int ) my_player->do_loud_say( upper_case( str ) );
}				/* do_loud_say() */

int     do_echo( string str )
{
    return( int ) my_player->do_echo( upper_case( str ) );
}				/* do_echo() */

int     do_emote_all( string str )
{
    return( int ) my_player->do_echo_all( upper_case( str ) );
}				/* do_emote_all() */

int     do_emote( string str )
{
    return( int ) my_player->do_emote( upper_case( str ) );
}				/* do_emote() */

int     do_whisper( string str )
{
    return( int ) my_player->do_whisper( upper_case( str ) );
}				/* do_whisper() */

int     do_echo_to( string str )
{
    return( int ) my_player->do_echo_to( upper_case( str ) );
}				/* do_echo_to() */

int     do_shout( string str )
{
    return( int ) my_player->do_shout( upper_case( str ) );
}				/* do_shout() */