#include <sys/types.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "mud.h"
void do_gocials( CHAR_DATA * ch, char *argument )
{
char arg[MAX_INPUT_LENGTH], buf[MAX_INPUT_LENGTH];
CHAR_DATA *victim;
SOCIALTYPE *social;
argument = one_argument( argument, arg );
if ((social = find_social (arg)) == NULL)
{
send_to_char ("That is not a social.\n\r", ch);
return;
}
if (!IS_NPC (ch) && xIS_SET (ch->act, PLR_NO_EMOTE))
{
send_to_char ("You are anti-social!\n\r", ch);
return;
}
switch (ch->position)
{
case POS_DEAD:
send_to_char ("Lie still; you are DEAD.\n\r", ch);
return;
case POS_INCAP:
case POS_MORTAL:
send_to_char ("You are hurt far too bad for that.\n\r", ch);
return;
case POS_STUNNED:
send_to_char ("You are too stunned to do that.\n\r", ch);
return;
case POS_SLEEPING:
/*
* I just know this is the path to a 12" 'if' statement. :(
* But two players asked for it already! -- Furey
*/
if (!str_cmp (social->name, "snore"))
break;
send_to_char ("In your dreams, or what?\n\r", ch);
return;
}
one_argument (argument, arg);
victim = NULL;
if (arg[0] == '\0')
{
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->others_no_arg);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_MUD);
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->char_no_arg);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_CHAR);
return;
}
if ((victim = get_char_world (ch, arg)) == NULL)
{
send_to_char ("You really shouldn't talk about people who aren't logged in.\n\r", ch);
return;
}
if (victim == ch)
{
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->others_auto);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_MUD);
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->char_auto);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_CHAR);
return;
}
else
{
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->others_found);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_MUD);
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->char_found);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_CHAR);
sprintf (buf, "&R[&zG&GO&zC&GI&zA&GL&R]&c %s", social->vict_found);
act (AT_SOCIAL, buf, ch, NULL, victim, TO_VICT);
return;
}
}