/* $Id: comm_irc.patch,v 1.666 2004/09/20 10:50:27 shrike Exp $ */
diff -U 3 ../old_src/Makefile ./Makefile
--- ../old_src/Makefile Tue Apr 23 03:30:22 2002
+++ ./Makefile Tue Apr 23 04:21:43 2002
@@ -43,7 +43,7 @@
mapout.o misc.o mpxset.o mud_comm.o mud_prog.o player.o polymorph.o \
requests.o reset.o save.o shops.o skills.o special.o tables.o \
track.o update.o grub.o stat_obj.o ban.o services.o planes.o \
- imm_host.o $(IMC_OFILES) colorize.o
+ imm_host.o $(IMC_OFILES) colorize.o comm_irc.o
C_FILES = act_comm.c act_info.c act_move.c act_obj.c act_wiz.c boards.c \
build.c clans.c comm.c comments.c const.c db.c deity.c fight.c \
@@ -51,7 +51,7 @@
mapout.c misc.c mpxset.c mud_comm.c mud_prog.c player.c polymorph.c \
requests.c reset.c save.c shops.c skills.c special.c tables.c \
track.c update.c grub.c stat_obj.c ban.c services.c planes.c \
- imm_host.c $(IMC_CFILES) colorize.c
+ imm_host.c $(IMC_CFILES) colorize.c comm_irc.c
H_FILES = mud.h bet.h imc-config.h imc-mercbase.h imc-mercdefs.h imc.h \
ice.h icec.h icec-mercbase.h
diff -U 3 ../old_src/act_comm.c ./act_comm.c
--- ../old_src/act_comm.c Tue Apr 23 03:30:22 2002
+++ ./act_comm.c Tue Apr 23 03:30:52 2002
@@ -2150,56 +2150,12 @@
send_page_to_char(ch, victim->pIndexData, arg2[0]);
}
-
+/* Moved the functionality do_rip and do_ansi to a new do_color command
+ in comm_irc.c --Cronel
void do_rip( CHAR_DATA *ch, char *argument )
-{
- char arg[MAX_INPUT_LENGTH];
-
- one_argument( argument, arg );
-
- if ( arg[0] == '\0' )
- {
- send_to_char( "Rip ON or OFF?\n\r", ch );
- return;
- }
- if ( (strcmp(arg,"on")==0) || (strcmp(arg,"ON") == 0) ) {
- send_rip_screen(ch);
- xSET_BIT(ch->act,PLR_RIP);
- xSET_BIT(ch->act,PLR_ANSI);
- return;
- }
-
- if ( (strcmp(arg,"off")==0) || (strcmp(arg,"OFF") == 0) ) {
- xREMOVE_BIT(ch->act,PLR_RIP);
- send_to_char( "!|*\n\rRIP now off...\n\r", ch );
- return;
- }
-}
-
void do_ansi( CHAR_DATA *ch, char *argument )
-{
- char arg[MAX_INPUT_LENGTH];
-
- one_argument( argument, arg );
-
- if ( arg[0] == '\0' )
- {
- send_to_char( "ANSI ON or OFF?\n\r", ch );
- return;
- }
- if ( (strcmp(arg,"on")==0) || (strcmp(arg,"ON") == 0) ) {
- xSET_BIT(ch->act,PLR_ANSI);
- set_char_color( AT_WHITE + AT_BLINK, ch);
- send_to_char( "ANSI ON!!!\n\r", ch);
- return;
- }
+*/
- if ( (strcmp(arg,"off")==0) || (strcmp(arg,"OFF") == 0) ) {
- xREMOVE_BIT(ch->act,PLR_ANSI);
- send_to_char( "Okay... ANSI support is now off\n\r", ch );
- return;
- }
-}
void do_save( CHAR_DATA *ch, char *argument )
{
diff -U 3 ../old_src/act_info.c ./act_info.c
--- ../old_src/act_info.c Tue Apr 23 03:30:22 2002
+++ ./act_info.c Tue Apr 23 03:30:52 2002
@@ -3849,7 +3849,7 @@
set_char_color( AT_DGREEN, ch );
send_to_char( "Display: ", ch );
set_char_color( AT_GREY, ch );
- ch_printf( ch, "%-12s %-12s %-12s %-12s\n\r %-12s %-12s %-12s %-12s",
+ ch_printf( ch, "%-12s %-12s %-12s %-12s\n\r %-12s %-12s %-12s",
IS_SET( ch->pcdata->flags, PCFLAG_PAGERON ) ? "[+] PAGER"
: "[-] pager",
IS_SET( ch->pcdata->flags, PCFLAG_GAG ) ? "[+] GAG"
@@ -3862,10 +3862,8 @@
: "[-] blank",
xIS_SET(ch->act, PLR_PROMPT ) ? "[+] PROMPT"
: "[-] prompt",
- xIS_SET(ch->act, PLR_ANSI ) ? "[+] ANSI"
- : "[-] ansi",
- xIS_SET(ch->act, PLR_RIP ) ? "[+] RIP"
- : "[-] rip" );
+ xIS_SET(ch->act, PLR_PRIVMSG) ? "[+] MSG" /* Cronel, IRC */
+ : "[-] msg" );
set_char_color( AT_DGREEN, ch );
send_to_char( "\n\r\n\rAuto: ", ch );
set_char_color( AT_GREY, ch );
@@ -3964,8 +3962,8 @@
else if ( !str_prefix( arg+1, "combine" ) ) bit = PLR_COMBINE;
else if ( !str_prefix( arg+1, "prompt" ) ) bit = PLR_PROMPT;
else if ( !str_prefix( arg+1, "telnetga" ) ) bit = PLR_TELNET_GA;
- else if ( !str_prefix( arg+1, "ansi" ) ) bit = PLR_ANSI;
- else if ( !str_prefix( arg+1, "rip" ) ) bit = PLR_RIP;
+ /* removed ansi & rip, added privmsg */
+ else if ( !str_prefix( arg+1, "msg" ) ) bit = PLR_PRIVMSG;
/* else if ( !str_prefix( arg+1, "flee" ) ) bit = PLR_FLEE; */
else if ( !str_prefix( arg+1, "nice" ) ) bit = PLR_NICE;
else if ( !str_prefix( arg+1, "drag" ) ) bit = PLR_SHOVEDRAG;
@@ -4472,14 +4470,33 @@
strcat(buf2, ".\n\r");
send_to_pager(buf2, ch);
}
- if ( victim->desc && victim->desc->host[0]!='\0' ) /* added by Gorog */
- {
+ if ( victim->desc && victim->desc->host[0]!='\0' ) /* added by Gorog */
+ {
sprintf (buf2, "%s's IP info: %s ", victim->name, victim->desc->host);
if (get_trust(ch) >= LEVEL_GOD)
strcat (buf2, victim->desc->user);
strcat (buf2, "\n\r");
send_to_pager(buf2, ch);
- }
+ }
+ if ( victim->desc ) /* added by Cronel, IRC */
+ {
+ sprintf(buf2, "%s is playing via %s.\n\r",
+ victim->name,
+ IS_IRC_DESC(victim->desc) ? "IRC" :
+ IS_DCC_DESC(victim->desc) ? "DCC" :
+ IS_TELNET_DESC(victim->desc) ? "Telnet" : "Unknown" );
+ if( victim->desc->nick_data )
+ {
+ sh_int login_mode = victim->desc->nick_data->login_mode;
+ sprintf(buf2 + strlen(buf2), "%s's nick: %s, login mode: %s. ",
+ victim->name, victim->desc->nick_data->nick,
+ login_mode == MODE_LOGIN ? "login" :
+ (login_mode == MODE_SLOGIN ? "slogin" :
+ (login_mode == MODE_DCC ? "DCC" : "Unknown")) );
+ strcat( buf2, "\n\r" );
+ }
+ send_to_pager( buf2, ch );
+ } /* if (victim->desc ) */
}
}
diff -U 3 ../old_src/act_wiz.c ./act_wiz.c
--- ../old_src/act_wiz.c Tue Apr 23 03:30:22 2002
+++ ./act_wiz.c Tue Apr 23 03:30:52 2002
@@ -42,7 +42,7 @@
int generate_itemlevel args ( ( AREA_DATA *pArea, OBJ_INDEX_DATA *pObjIndex ));
/* from comm.c */
-bool write_to_descriptor args( ( int desc, char *txt, int length ) );
+bool write_low_level args( (DESCRIPTOR_DATA *d, char *txt, int len, bool use_privmsg ) );
bool check_parse_name args( ( char *name, bool newchar ) );
/* from boards.c */
@@ -1040,7 +1040,10 @@
desc = atoi( arg );
for ( d = first_descriptor; d; d = d->next )
{
- if ( d->descriptor == desc )
+ /* Modified by Cronel to allow for "disconnect <nick>" for irc
+ logged-in players (who dont have an actual descriptor */
+ if ( (!IS_IRC_DESC(d) && d->descriptor == desc)
+ || (IS_IRC_DESC(d) && !str_prefix(arg, d->nick_data->nick)) )
{
if ( d->character && get_trust(d->character) >= get_trust(ch) )
{
@@ -1142,6 +1145,12 @@
send_to_char( "\n\r", d->character );
}
}
+ /* Added msging it to the mud channel if connected to irc --Cronel */
+ {
+ char buf[ MAX_STRING_LENGTH ];
+ sprintf( buf, "%s\r", argument );
+ write_to_channel( buf, FALSE );
+ }
return;
}
@@ -2714,7 +2723,7 @@
/* Snoop notification for higher imms, if desired, uncomment this */
#ifdef TOOSNOOPY
if ( get_trust(victim) > LEVEL_GOD && get_trust(ch) < LEVEL_SUPREME )
- write_to_descriptor( victim->desc->descriptor, "\n\rYou feel like someone is watching your every move...\n\r", 0 );
+ write_low_level( victim->desc, "\n\rYou feel like someone is watching your every move...\n\r", 0, FALSE );
#endif
victim->desc->snoop_by = ch->desc;
send_to_char( "Ok.\n\r", ch );
@@ -4345,6 +4354,7 @@
return;
}
+/* Modified by Cronel to show login type and nick of irc players */
void do_users( CHAR_DATA *ch, char *argument )
{
char buf[MAX_STRING_LENGTH];
@@ -4358,11 +4368,11 @@
count = 0;
buf[0] = '\0';
- sprintf(buf, "\n\rDesc|Con|Idle| Port | Player @HostIP ");
+ sprintf(buf, "\n\rType|Desc| Port |Con|Idle| Player @HostIP ");
if ( get_trust(ch) >= LEVEL_GOD)
strcat(buf, "| Username");
strcat(buf, "\n\r");
- strcat(buf, "----+---+----+------+-------------------------------");
+ strcat(buf, "----+----+------+---+----+-------------------------------");
if ( get_trust(ch) >= LEVEL_GOD)
strcat(buf, "+---------");
strcat(buf, "\n\r");
@@ -4376,12 +4386,20 @@
|| (d->character && can_see( ch, d->character )) )
{
count++;
- sprintf( buf,
- " %3d| %2d|%4d|%6d| %-12s@%-16s ",
- d->descriptor,
+ sprintf( buf, "%-4s",
+ IS_IRC_DESC(d) ? "IRC" :
+ (IS_DCC_DESC(d) ? "DCC" :
+ (IS_TELNET_DESC(d) ? "TELN" : "?")) );
+ if( IS_IRC_DESC(d) )
+ sprintf( buf + strlen(buf), "| %-10s",
+ d->nick_data->nick );
+ else
+ sprintf( buf + strlen(buf), "| %3d|%6d",
+ d->descriptor,
+ d->port );
+ sprintf( buf + strlen(buf), "| %2d|%4d| %-12s@%-16s ",
d->connected,
d->idle / 4,
- d->port,
d->original ? d->original->name :
d->character ? d->character->name : "(none)",
d->host);
@@ -4399,12 +4417,21 @@
|| ( d->character && !str_prefix( arg, d->character->name ) ) ) )
{
count++;
+ pager_printf( ch, "%-4s",
+ IS_IRC_DESC(d) ? "IRC" :
+ (IS_DCC_DESC(d) ? "DCC" :
+ (IS_TELNET_DESC(d) ? "TELN" : "?")) );
+ if( IS_IRC_DESC(d) )
+ pager_printf( ch, "| %-10s",
+ d->nick_data->nick );
+ else
+ pager_printf( ch, "| %3d|%6d",
+ d->descriptor,
+ d->port );
pager_printf( ch,
- " %3d| %2d|%4d|%6d| %-12s@%-16s ",
- d->descriptor,
+ "| %2d|%4d| %-12s@%-16s ",
d->connected,
d->idle / 4,
- d->port,
d->original ? d->original->name :
d->character ? d->character->name : "(none)",
d->host
diff -U 3 ../old_src/comm.c ./comm.c
--- ../old_src/comm.c Tue Apr 23 03:30:22 2002
+++ ./comm.c Tue Apr 23 04:00:19 2002
@@ -120,7 +120,7 @@
*/
void game_loop args( ( ) );
int init_socket args( ( int port ) );
-void new_descriptor args( ( int new_desc ) );
+DESCRIPTOR_DATA *new_descriptor args( ( int new_desc ) );
bool read_from_descriptor args( ( DESCRIPTOR_DATA *d ) );
bool write_to_descriptor args( ( int desc, char *txt, int length ) );
@@ -151,6 +151,37 @@
int port;
+
+
+/*
+ * Functions in comm_irc.c
+ * --Cronel
+ */
+void connect_to_irc args( ( void ) );
+void disconnect_from_irc args( ( char *txt ) );
+void irc_game_loop args( ( void ) );
+bool write_low_level args( ( DESCRIPTOR_DATA *d, char *txt,
+ int len, bool use_privmsg ) );
+void free_irc_desc args( ( DESCRIPTOR_DATA *d ) );
+void free_dcc_desc args( ( DESCRIPTOR_DATA *d ) );
+bool create_color_code args( ( sh_int col, CHAR_DATA *ch, char *buf ) );
+bool create_special_code args( ( char code, CHAR_DATA *ch, char *buf ) );
+sh_int atype_to_color args( ( sh_int AType, CHAR_DATA *ch ) );
+void check_restrictions args( ( DESCRIPTOR_DATA *d ) );
+void ircstart args( ( void ) );
+bool is_auth_nickserv args( ( DESCRIPTOR_DATA *d ) );
+void send_greeting args( ( DESCRIPTOR_DATA *d ) );
+/*
+ * This should calculate the length in characters of a
+ * color sequence. Made to allow two-character color
+ * sequences ("&SC"). --Cronel
+ */
+#define COLOR_SEQ_LEN(colstr) /* length of a color sequence */ \
+ ((colstr)[1] != 'S' ? 2 : 3)
+
+
+
+
#ifdef WIN32
int mainthread( int argc, char **argv )
#else
@@ -270,12 +301,16 @@
log_string("Booting Database");
boot_db( );
+
+ ircstart(); /* <- this one MUST go */
+ connect_to_irc( ); /* <- BEFORE this one */
+
log_string("Initializing socket");
control = init_socket( port );
control2 = init_socket( port+1 );
conclient= init_socket( port+10);
conjava = init_socket( port+20);
-
+
#ifdef OLD_IMC
/* Be sure to change RoD to your mud's name! */
if(port == 4000)
@@ -315,6 +350,8 @@
closesocket( conclient);
closesocket( conjava );
+ disconnect_from_irc( "Shutdown" );
+
#ifdef WIN32
if (service_shut_down)
{
@@ -490,7 +527,7 @@
}
-void accept_new( int ctrl )
+DESCRIPTOR_DATA *accept_new( int ctrl )
{
static struct timeval null_time;
DESCRIPTOR_DATA *d;
@@ -512,6 +549,8 @@
newdesc = 0;
for ( d = first_descriptor; d; d = d->next )
{
+ if( IS_IRC_DESC(d) )
+ continue;
maxdesc = UMAX( maxdesc, d->descriptor );
FD_SET( d->descriptor, &in_set );
FD_SET( d->descriptor, &out_set );
@@ -541,8 +580,9 @@
if ( FD_ISSET( ctrl, &in_set ) )
{
newdesc = ctrl;
- new_descriptor( newdesc );
+ return new_descriptor( newdesc );
}
+ return NULL;
}
void game_loop( )
@@ -570,7 +610,10 @@
accept_new( conjava );
auth_check(&in_set, &out_set, &exc_set);
-
+
+ /* irc */
+ irc_game_loop( );
+
/*
* Kick out descriptors with raised exceptions
* or have been idle, then check for input.
@@ -585,7 +628,7 @@
d_next = d->next;
d->idle++; /* make it so a descriptor can idle out */
- if ( FD_ISSET( d->descriptor, &exc_set ) )
+ if ( !IS_IRC_DESC(d) && FD_ISSET( d->descriptor, &exc_set ) )
{
FD_CLR( d->descriptor, &in_set );
FD_CLR( d->descriptor, &out_set );
@@ -597,13 +640,13 @@
close_socket( d, TRUE );
continue;
}
- else
+ else
if ( (!d->character && d->idle > 360) /* 2 mins */
|| ( d->connected != CON_PLAYING && d->idle > 1200) /* 5 mins */
|| d->idle > 28800 ) /* 2 hrs */
{
- write_to_descriptor( d->descriptor,
- "Idle timeout... disconnecting.\n\r", 0 );
+ write_low_level( d,
+ "Idle timeout... disconnecting.\n\r", 0, FALSE );
d->outtop = 0;
close_socket( d, TRUE );
continue;
@@ -612,7 +655,7 @@
{
d->fcommand = FALSE;
- if ( FD_ISSET( d->descriptor, &in_set ) )
+ if ( !IS_IRC_DESC(d) && FD_ISSET( d->descriptor, &in_set ) )
{
d->idle = 0;
if ( d->character )
@@ -644,7 +687,7 @@
strcpy( cmdline, d->incomm );
d->incomm[0] = '\0';
-
+
if ( d->character )
set_cur_char( d->character );
@@ -692,7 +735,7 @@
d_next = d->next;
if ( ( d->fcommand || d->outtop > 0 )
- && FD_ISSET(d->descriptor, &out_set) )
+ && (IS_IRC_DESC(d) || FD_ISSET(d->descriptor, &out_set)) )
{
if ( d->pagepoint )
{
@@ -785,7 +828,7 @@
}
-void new_descriptor( int new_desc )
+DESCRIPTOR_DATA *new_descriptor( int new_desc )
{
char buf[MAX_STRING_LENGTH];
DESCRIPTOR_DATA *dnew;
@@ -802,7 +845,7 @@
if ( check_bad_desc( new_desc ) )
{
set_alarm( 0 );
- return;
+ return NULL;
}
set_alarm( 20 );
alarm_section = "new_descriptor::accept";
@@ -812,12 +855,12 @@
sprintf(bugbuf, "[*****] BUG: New_descriptor: accept");
log_string_plus( bugbuf, LOG_COMM, sysdata.log_level );
set_alarm( 0 );
- return;
+ return NULL;
}
if ( check_bad_desc( new_desc ) )
{
set_alarm( 0 );
- return;
+ return NULL;
}
#if !defined(FNDELAY)
#define FNDELAY O_NDELAY
@@ -834,10 +877,10 @@
{
perror( "New_descriptor: fcntl: FNDELAY" );
set_alarm( 0 );
- return;
+ return NULL;
}
if ( check_bad_desc( new_desc ) )
- return;
+ return NULL;
CREATE( dnew, DESCRIPTOR_DATA, 1 );
dnew->next = NULL;
@@ -873,7 +916,7 @@
"Your site has been banned from this Mud.\n\r", 0);
free_desc (dnew);
set_alarm (0);
- return;
+ return NULL;
}
/*
@@ -895,13 +938,7 @@
/*
* Send the greeting.
*/
- {
- extern char * help_greeting;
- if ( help_greeting[0] == '.' )
- write_to_buffer( dnew, help_greeting+1, 0 );
- else
- write_to_buffer( dnew, help_greeting , 0 );
- }
+ send_greeting( dnew ); /* Cronel, IRC */
alarm_section = "new_descriptor: set_auth";
set_auth(dnew);
@@ -922,7 +959,7 @@
save_sysdata( sysdata );
}
set_alarm(0);
- return;
+ return dnew;
}
void free_desc( DESCRIPTOR_DATA *d )
@@ -1061,7 +1098,12 @@
if ( dclose->descriptor == maxdesc )
--maxdesc;
- free_desc( dclose );
+ if( IS_IRC_DESC( dclose ) )
+ free_irc_desc( dclose );
+ else if( IS_DCC_DESC( dclose) )
+ free_dcc_desc( dclose );
+ else
+ free_desc( dclose );
--num_descriptors;
return;
}
@@ -1082,7 +1124,7 @@
sprintf( log_buf, "%s input overflow!", d->host );
log_string( log_buf );
write_to_descriptor( d->descriptor,
- "\n\r*** PUT A LID ON IT!!! ***\n\rYou cannot enter the same command more than 20 consecutive times!\n\r", 0 );
+ "\n\r*** PUT A LID ON IT!!! ***\n\rYou cannot enter the same command more than 20 consecutive times!\n\r", 0);
return FALSE;
}
@@ -1153,7 +1195,7 @@
{
if ( k >= 254 )
{
- write_to_descriptor( d->descriptor, "Line too long.\n\r", 0 );
+ write_low_level( d, "Line too long.\n\r", 0, FALSE );
/* skip the rest of the line */
/*
@@ -1197,8 +1239,8 @@
/* sprintf( log_buf, "%s input spamming!", d->host );
log_string( log_buf );
*/
- write_to_descriptor( d->descriptor,
- "\n\r*** PUT A LID ON IT!!! ***\n\rYou cannot enter the same command more than 20 consecutive times!\n\r", 0 );
+ write_low_level( d,
+ "\n\r*** PUT A LID ON IT!!! ***\n\rYou cannot enter the same command more than 20 consecutive times!\n\r", 0, FALSE );
strcpy( d->incomm, "quit" );
}
}
@@ -1231,32 +1273,61 @@
{
char buf[MAX_INPUT_LENGTH];
extern bool mud_down;
+ sh_int spit_len;
+ char *p;
/*
* If buffer has more than 4K inside, spit out .5K at a time -Thoric
*/
if ( !mud_down && d->outtop > 4096 )
{
- memcpy( buf, d->outbuf, 512 );
- d->outtop -= 512;
- memmove( d->outbuf, d->outbuf + 512, d->outtop );
+ spit_len = 512;
+ /*
+ * Unless its an IRC or DCC descriptor. For these descriptors, new
+ * lines are inserted if not present because of how IRC works. So
+ * if we just cut on 512 bytes it won't look good, lines will be
+ * broken. So we look for the last new line in these 512 bytes
+ * instead, and send that. --Cronel
+ */
+ if( !IS_TELNET_DESC(d) )
+ {
+ p = d->outbuf + spit_len;
+ while( *p != '\n' && *p != '\r' && p > d->outbuf )
+ p--;
+ if( p == d->outbuf )
+ spit_len = 512;
+ else
+ {
+ spit_len = p - d->outbuf;
+ if( (p[0] == '\n' && p[1] == '\r')
+ || (p[0] == '\r' && p[1] == '\n') )
+ spit_len += 2;
+ else
+ spit_len ++;
+ }
+ }
+
+ memcpy( buf, d->outbuf, spit_len );
+ memmove( d->outbuf, d->outbuf + spit_len, d->outtop - spit_len );
+ d->outtop -= spit_len;
+
if ( d->snoop_by )
{
char snoopbuf[MAX_INPUT_LENGTH];
- buf[512] = '\0';
+ buf[spit_len] = '\0';
if ( d->character && d->character->name )
{
if (d->original && d->original->name)
sprintf( snoopbuf, "%s (%s)", d->character->name, d->original->name );
- else
+ else
sprintf( snoopbuf, "%s", d->character->name);
write_to_buffer( d->snoop_by, snoopbuf, 0);
}
write_to_buffer( d->snoop_by, "% ", 2 );
write_to_buffer( d->snoop_by, buf, 0 );
}
- if ( !write_to_descriptor( d->descriptor, buf, 512 ) )
+ if ( !write_low_level( d, buf, spit_len, FALSE ) )
{
d->outtop = 0;
return FALSE;
@@ -1279,7 +1350,7 @@
if ( xIS_SET(ch->act, PLR_PROMPT) )
display_prompt(d);
- if ( xIS_SET(ch->act, PLR_TELNET_GA) )
+ if ( IS_TELNET_DESC(d) && xIS_SET(ch->act, PLR_TELNET_GA) )
write_to_buffer( d, go_ahead_str, 0 );
}
@@ -1311,7 +1382,7 @@
/*
* OS-dependent output.
*/
- if ( !write_to_descriptor( d->descriptor, d->outbuf, d->outtop ) )
+ if ( !write_low_level( d, d->outbuf, d->outtop, FALSE ) )
{
d->outtop = 0;
return FALSE;
@@ -1392,7 +1463,6 @@
return;
}
-
/*
* Lowest level output function.
* Write a block of text to the file descriptor.
@@ -1428,10 +1498,10 @@
if ( !IS_SET( ch->pcdata->flags, PCFLAG_NOINTRO ) )
{
- if (xIS_SET(ch->act, PLR_RIP))
+ if( WANT_RIP_COLOR(ch) )
send_rip_title(ch);
else
- if (xIS_SET(ch->act, PLR_ANSI))
+ if( WANT_ANSI_COLOR(ch) )
send_ansi_title(ch);
else
send_ascii_title(ch);
@@ -1626,8 +1696,18 @@
return;
}
/* Old player */
+ /* This is for the nickserv->password transition --Cronel */
+ if( ch->pcdata->pwd == NULL || ch->pcdata->pwd[0] == '\0' )
+ {
+ d->connected = CON_GET_OLD_PASSWORD;
+ /* so that nanny gets called again immediately
+ * kludgy but seems better than a recursive call --Cronel */
+ strcpy( d->inbuf, "\n\r" );
+ return;
+ }
write_to_buffer( d, "Password: ", 0 );
- write_to_buffer( d, echo_off_str, 0 );
+ if( IS_TELNET_DESC(d) )
+ write_to_buffer( d, echo_off_str, 0 );
d->connected = CON_GET_OLD_PASSWORD;
return;
}
@@ -1660,7 +1740,15 @@
case CON_GET_OLD_PASSWORD:
write_to_buffer( d, "\n\r", 2 );
- if ( strcmp( crypt( argument, ch->pcdata->pwd ), ch->pcdata->pwd ) )
+ /* This is for the nickserv->pwd transition --Cronel */
+ if( (ch->pcdata->pwd == NULL || ch->pcdata->pwd[0] == '\0')
+ && !is_auth_nickserv(d) )
+ return;
+
+ /* if is_auth_nickserv let them pass it means they are
+ * authenticated to nickserv --Cronel */
+ if ( (ch->pcdata->pwd != NULL && ch->pcdata->pwd[0] != '\0')
+ && strcmp( crypt( argument, ch->pcdata->pwd ), ch->pcdata->pwd ) )
{
write_to_buffer( d, "Wrong password.\n\r", 0 );
/* clear descriptor pointer to get rid of bug message in log */
@@ -1669,7 +1757,8 @@
return;
}
- write_to_buffer( d, echo_on_str, 0 );
+ if( IS_TELNET_DESC(d ) )
+ write_to_buffer( d, echo_on_str, 0 );
if ( check_playing( d, ch->pcdata->filename, TRUE ) )
return;
@@ -1716,7 +1805,7 @@
case 'y': case 'Y':
sprintf( buf, "\n\rMake sure to use a password that won't be easily guessed by someone else."
"\n\rPick a good password for %s: %s",
- ch->name, echo_off_str );
+ ch->name, (IS_TELNET_DESC(d) ? echo_off_str : "") );
write_to_buffer( d, buf, 0 );
d->connected = CON_GET_NEW_PASSWORD;
break;
@@ -1776,7 +1865,8 @@
return;
}
- write_to_buffer( d, echo_on_str, 0 );
+ if( IS_TELNET_DESC(d) )
+ write_to_buffer( d, echo_on_str, 0 );
write_to_buffer( d, "\n\rWhat is your sex (M/F/N)? ", 0 );
d->connected = CON_GET_NEW_SEX;
break;
@@ -1952,21 +2042,20 @@
return;
}
- write_to_buffer( d, "\n\rWould you like RIP, ANSI or no graphic/color support, (R/A/N)? ", 0 );
+ write_to_buffer( d, "\n\rWould you like RIP, ANSI, MIRCW, MIRCB, or no graphic/color support, (R/A/W/B/N)? ", 0 );
d->connected = CON_GET_WANT_RIPANSI;
break;
case CON_GET_WANT_RIPANSI:
switch ( argument[0] )
{
- case 'r': case 'R':
- xSET_BIT(ch->act,PLR_RIP);
- xSET_BIT(ch->act,PLR_ANSI);
- break;
- case 'a': case 'A': xSET_BIT(ch->act,PLR_ANSI); break;
+ case 'r': case 'R': ch->color = COLOR_RIP; break;
+ case 'a': case 'A': ch->color = COLOR_ANSI; break;
+ case 'W': case 'w': ch->color = COLOR_MIRCW; break;
+ case 'B': case 'b': ch->color = COLOR_MIRCB; break;
case 'n': case 'N': break;
default:
- write_to_buffer( d, "Invalid selection.\n\rRIP, ANSI or NONE? ", 0 );
+ write_to_buffer( d, "Invalid selection.\n\rRIP, ANSI, MIRCW, MIRCB or NONE? ", 0 );
return;
}
sprintf( log_buf, "%s@%s new %s %s.", ch->name, d->host,
@@ -1993,12 +2082,13 @@
ch->position = POS_STANDING;
set_pager_color( AT_PLAIN, ch );
- if ( xIS_SET(ch->act, PLR_RIP) )
+ if( WANT_RIP_COLOR(ch) )
send_rip_screen(ch);
- if ( xIS_SET(ch->act, PLR_ANSI) )
- send_to_pager( "\033[2J", ch );
+ if( WANT_ANSI_COLOR(ch) )
+ send_to_pager( "\033[2J\033[0;37;40m", ch ); /* Cronel, IRC, 1.3 fix */
else
send_to_pager( "\014", ch );
+ set_pager_color( AT_LBLUE, ch ); /* Stock color bug fix --Cronel */
if ( IS_IMMORTAL(ch) )
do_help( ch, "imotd" );
if ( ch->level == 50)
@@ -2180,6 +2270,8 @@
else if ( !ch->was_in_room )
ch->was_in_room = ch->in_room;
+ check_restrictions( d );
+
break;
}
@@ -2303,6 +2395,8 @@
d->character = ch;
ch->desc = d;
ch->timer = 0;
+ if( WANT_ANSI_COLOR( ch ) )
+ send_to_char( "\033[0;37;40m", ch ); /* Cronel, IRC, 1.3 fix */
send_to_char( "Reconnecting.\n\r", ch );
do_look( ch, "auto" );
act( AT_ACTION, "$n has reconnected.", ch, NULL, NULL, TO_CANSEE );
@@ -2314,6 +2408,9 @@
to_channel( log_buf, CHANNEL_MONITOR, "Monitor", ch->level );
*/
d->connected = CON_PLAYING;
+
+ check_restrictions( d );
+
}
return TRUE;
}
@@ -2355,6 +2452,8 @@
}
if ( !kick )
return TRUE;
+ if( WANT_ANSI_COLOR(ch) ) /* Cronel IRC, 1.3 fix */
+ write_to_buffer( d, "\033[0;37;40m", 0 );
write_to_buffer( d, "Already playing... Kicking off old connection.\n\r", 0 );
write_to_buffer( dold, "Kicking off old connection... bye!\n\r", 0 );
close_socket( dold, FALSE );
@@ -2379,6 +2478,8 @@
to_channel( log_buf, CHANNEL_MONITOR, "Monitor", ch->level );
*/
d->connected = cstate;
+
+ check_restrictions( d );
return TRUE;
}
}
@@ -2475,7 +2576,7 @@
}
else if ( ln > 0 )
write_to_buffer(d, colbuf, ln);
- prevstr = colstr+2;
+ prevstr = colstr+COLOR_SEQ_LEN(colstr);
}
if ( *prevstr )
write_to_buffer(d, prevstr, 0);
@@ -2587,7 +2688,7 @@
}
else if ( ln > 0 )
write_to_pager(d, colbuf, ln);
- prevstr = colstr+2;
+ prevstr = colstr+COLOR_SEQ_LEN(colstr);
}
if ( *prevstr )
write_to_pager(d, prevstr, 0);
@@ -2617,19 +2718,16 @@
{
char buf[16];
CHAR_DATA *och;
-
+ sh_int color;
+
if ( !ch || !ch->desc )
return;
-
+
och = (ch->desc->original ? ch->desc->original : ch);
- if ( !IS_NPC(och) && xIS_SET(och->act, PLR_ANSI) )
+ AType = figure_color(AType, och);
+ color = atype_to_color( AType, och );
+ if( create_color_code( color, och, buf ) )
{
- AType = figure_color(AType, och);
- if ( AType == 7 )
- strcpy( buf, "\033[m" );
- else
- sprintf(buf, "\033[0;%d;%s%dm", (AType & 8) == 8,
- (AType > 15 ? "5;" : ""), (AType & 7)+30);
write_to_buffer( ch->desc, buf, strlen(buf) );
}
return;
@@ -2639,21 +2737,18 @@
{
char buf[16];
CHAR_DATA *och;
-
+ sh_int color;
+
if ( !ch || !ch->desc )
return;
-
+
och = (ch->desc->original ? ch->desc->original : ch);
- if ( !IS_NPC(och) && xIS_SET(och->act, PLR_ANSI) )
+ AType = figure_color(AType, ch);
+ color = atype_to_color( AType, och );
+ if( create_color_code( color, och, buf ) )
{
- AType = figure_color(AType, ch);
- if ( AType == 7 )
- strcpy( buf, "\033[m" );
- else
- sprintf(buf, "\033[0;%d;%s%dm", (AType & 8) == 8,
- (AType > 15 ? "5;" : ""), (AType & 7)+30);
send_to_pager( buf, ch );
- ch->desc->pagecolor = AType;
+ ch->desc->pagecolor = color;
}
return;
}
@@ -3122,7 +3217,6 @@
CHAR_DATA *ch = d->character;
CHAR_DATA *och = (d->original ? d->original : d->character);
CHAR_DATA *victim;
- bool ansi = (!IS_NPC(och) && xIS_SET(och->act, PLR_ANSI));
const char *prompt;
const char *helpstart = "<Type HELP START>";
char buf[MAX_STRING_LENGTH];
@@ -3152,11 +3246,9 @@
}
else
prompt = ch->pcdata->prompt;
- if ( ansi )
+ if( create_color_code( 0x07, (d->original ? d->original : d->character), pbuf ) )
{
- strcpy(pbuf, "\033[m");
- d->prevcolor = 0x07;
- pbuf += 3;
+ pbuf += strlen(pbuf);
}
/* Clear out old color stuff */
/* make_color_sequence(NULL, NULL, NULL);*/
@@ -3192,7 +3284,10 @@
if ( stat < 0 )
--prompt;
else if ( stat > 0 )
+ {
pbuf += stat;
+ prompt += COLOR_SEQ_LEN(prompt-1) - 2;
+ }
break;
case '%':
*pbuf = '\0';
@@ -3427,10 +3522,8 @@
const char *ctype = col;
unsigned char cl;
CHAR_DATA *och;
- bool ansi;
och = (d->original ? d->original : d->character);
- ansi = (!IS_NPC(och) && xIS_SET(och->act, PLR_ANSI));
col++;
if ( !*col )
ln = -1;
@@ -3445,11 +3538,9 @@
buf[1] = '\0';
ln = 1;
}
- else if ( !ansi )
- ln = 0;
else
{
- cl = d->prevcolor;
+ cl = 0x7;
switch(*ctype)
{
default:
@@ -3467,7 +3558,16 @@
case '^':
{
int newcol;
-
+
+ /* Special escape codes for mIRC (Bold, underline..) */
+ if ( *col == 'S' )
+ {
+ if( create_special_code( col[1], och, buf ) )
+ ln = strlen( buf );
+ else
+ ln = 0;
+ break;
+ }
if ( (newcol = getcolor(*col)) < 0 )
{
ln = 0;
@@ -3478,42 +3578,10 @@
else
cl = (cl & 0x0F) | (newcol << 4);
}
- if ( cl == d->prevcolor )
- {
- ln = 0;
- break;
- }
- strcpy(buf, "\033[");
- if ( (cl & 0x88) != (d->prevcolor & 0x88) )
- {
- strcat(buf, "m\033[");
- if ( (cl & 0x08) )
- strcat(buf, "1;");
- if ( (cl & 0x80) )
- strcat(buf, "5;");
- d->prevcolor = 0x07 | (cl & 0x88);
- ln = strlen(buf);
- }
- else
- ln = 2;
- if ( (cl & 0x07) != (d->prevcolor & 0x07) )
- {
- sprintf(buf+ln, "3%d;", cl & 0x07);
- ln += 3;
- }
- if ( (cl & 0x70) != (d->prevcolor & 0x70) )
- {
- sprintf(buf+ln, "4%d;", (cl & 0x70) >> 4);
- ln += 3;
- }
- if ( buf[ln-1] == ';' )
- buf[ln-1] = 'm';
+ if( create_color_code( cl, och, buf ))
+ ln = strlen( buf );
else
- {
- buf[ln++] = 'm';
- buf[ln] = '\0';
- }
- d->prevcolor = cl;
+ ln = 0;
}
}
if ( ln <= 0 )
@@ -3536,6 +3604,7 @@
int pclines;
register int lines;
bool ret;
+ char buf[32];
if ( !d || !d->pagepoint || d->pagecmd == -1 )
return TRUE;
@@ -3580,8 +3649,8 @@
++last;
if ( last != d->pagepoint )
{
- if ( !write_to_descriptor(d->descriptor, d->pagepoint,
- (last-d->pagepoint)) )
+ if ( !write_low_level(d, d->pagepoint,
+ (last-d->pagepoint), FALSE) )
return FALSE;
d->pagepoint = last;
}
@@ -3597,23 +3666,20 @@
return TRUE;
}
d->pagecmd = -1;
- if ( xIS_SET( ch->act, PLR_ANSI ) )
- if ( write_to_descriptor(d->descriptor, "\033[1;36m", 7) == FALSE )
- return FALSE;
- if ( (ret=write_to_descriptor(d->descriptor,
- "(C)ontinue, (N)on-stop, (R)efresh, (B)ack, (Q)uit: [C] ", 0)) == FALSE )
- return FALSE;
- if ( xIS_SET( ch->act, PLR_ANSI ) )
- {
- char buf[32];
- if ( d->pagecolor == 7 )
- strcpy( buf, "\033[m" );
- else
- sprintf(buf, "\033[0;%d;%s%dm", (d->pagecolor & 8) == 8,
- (d->pagecolor > 15 ? "5;" : ""), (d->pagecolor & 7)+30);
- ret = write_to_descriptor( d->descriptor, buf, 0 );
- }
+ if( create_color_code( (0x8|0x6), ch, buf ) )
+ {
+ if( write_low_level( d, buf, strlen(buf), FALSE ) == FALSE )
+ return FALSE;
+ }
+ if ( (ret=write_low_level(d,
+ "(C)ontinue, (R)efresh, (B)ack, (Q)uit: [C] ", 0, FALSE)) == FALSE )
+ return FALSE;
+ if( d->pagecolor == 0 ) d->pagecolor = 0xF;
+ if( create_color_code( d->pagecolor, (d->original ? d->original : d->character), buf ) )
+ {
+ ret = write_low_level( d, buf, 0, FALSE );
+ }
return ret;
}
Only in .: comm_irc.c
Only in .: comm_irc.patch
diff -U 3 ../old_src/interp.c ./interp.c
--- ../old_src/interp.c Tue Apr 23 03:30:22 2002
+++ ./interp.c Tue Apr 23 03:30:52 2002
@@ -743,6 +743,7 @@
tmptime = UMIN(time_used.tv_sec,19) * 1000000 + time_used.tv_usec;
/* laggy command notice: command took longer than 1.5 seconds */
+#ifdef 0
if ( tmptime > 1500000 )
{
#ifdef TIMEFORMAT
@@ -759,7 +760,7 @@
log_string_plus(log_buf, LOG_NORMAL, get_trust(ch));
cmd->lag_count++; /* count the lag flags */
}
-
+#endif 0 /* REMOVEME */
tail_chain( );
}
diff -U 3 ../old_src/mapout.c ./mapout.c
--- ../old_src/mapout.c Tue Apr 23 03:30:22 2002
+++ ./mapout.c Tue Apr 23 03:30:52 2002
@@ -250,7 +250,7 @@
{
if(map_index->map_of_vnums[y][x]==ch->in_room->vnum)
{
- if ( xIS_SET(ch->act, PLR_ANSI) ){
+ if( WANT_ANSI_COLOR(ch) ) {
text_map[i] = (char) '\x1B'; /* Bold */
i++;
text_map[i] = (char) '[';
diff -U 3 ../old_src/mud.h ./mud.h
--- ../old_src/mud.h Tue Apr 23 03:30:22 2002
+++ ./mud.h Tue Apr 23 03:30:52 2002
********************************************************************************************VVV**
@@ -154,6 +154,9 @@
typedef struct lcnv_data LCNV_DATA;
typedef struct lang_data LANG_DATA;
+typedef struct ircdata IRCDATA; /* Cronel, IRC */
+typedef struct nick_data NICK_DATA; /* Cronel, IRC */
+
********************************************************************************************^^^**
/*
@@ -704,6 +707,89 @@
SUB_TIMER_DO_ABORT = 128, SUB_TIMER_CANT_ABORT
} char_substates;
********************************************************************************************VVV**
+
+
+/*
+ * IRC related structures and #defines
+ * --Cronel
+ */
+/* Login modes for IRC and DCC descriptors */
+typedef enum
+{
+ MODE_NONE, MODE_LOGIN, MODE_SLOGIN, MODE_DCC
+} login_modes;
+
+/* Nickserv substates */
+typedef enum
+{
+ NICKSERV_NONE, NICKSERV_START, NICKSERV_UNREG, NICKSERV_UNREC, NICKSERV_REC
+} nickserv_states;
+
+/* Mud connetion modes to IRC */
+typedef enum
+{
+ MODE_CLIENT, MODE_SERVER
+} mud_con;
+
+/* IRC nickname info */
+struct nick_data
+{
+ char * nick;
+ char * user;
+ char * host;
+
+ DESCRIPTOR_DATA * desc;
+ sh_int login_mode;
+
+ struct nick_data * next;
+ struct nick_data * prev;
+
+ sh_int nickserv;
+};
+
+#define IS_TELNET_DESC(d) ((d) && (d)->nick_data == NULL )
+#define IS_IRC_DESC( d ) ((d) && (d)->nick_data != NULL && (d)->nick_data->login_mode != MODE_DCC )
+#define IS_DCC_DESC( d ) ((d) && (d)->nick_data != NULL && (d)->nick_data->login_mode == MODE_DCC )
+#define CAN_TELNET( ch ) ((ch) && !IS_NPC(ch) && (IS_IMMORTAL(ch) || NOT_AUTHED(ch) || IS_WAITING_FOR_AUTH(ch)) )
+
+/* Struc for the IRC commands table */
+struct irc_cmd
+{
+ char * cmd_name;
+ char * cmd_letter;
+ void (*cmd_proc)(char *, char*);
+};
+
+/* Configuration data for mud IRC connection */
+struct ircdata
+{
+ sh_int mode;
+
+ char * sserver;
+ int sport;
+ char * spwd;
+
+ char * cserver;
+ int cport;
+ char * cpwd;
+
+ sh_int resp_timeout;
+ bool reconnect;
+
+ char * mud_nick;
+ char * mud_channel;
+
+ char * mud_pseudo_host;
+ char * mud_server;
+
+ int dcc_port;
+ sh_int dcc_timeout;
+
+ char * mud_desc;
+} ;
+void write_to_channel( char *msg, bool use_privmsg );
+void send_mirc_sound( CHAR_DATA *ch, char *sound_file );
+
********************************************************************************************^^^**
/*
* Descriptor (channel) structure.
*/
@@ -738,6 +824,10 @@
char * user;
int newstate;
unsigned char prevcolor;
+
+ NICK_DATA * nick_data;
+ bool must_bleed;
+ char bleeding[ 16 ];
};
@@ -929,7 +1019,7 @@
#define AT_IMMORT AT_YELLOW
#define AT_HURT AT_RED
#define AT_FALLING AT_WHITE + AT_BLINK
-#define AT_DANGER AT_RED + AT_BLINK
+#define AT_DANGER AT_BLUE + AT_BLINK
#define AT_MAGIC AT_BLUE
#define AT_CONSIDER AT_GREY
#define AT_REPORT AT_GREY
@@ -2016,6 +2106,15 @@
STYLE_EVASIVE,
} styles;
+/* Color settings --Cronel */
+typedef enum
+{
+ COLOR_NONE, COLOR_ANSI, COLOR_RIP, COLOR_MIRCB, COLOR_MIRCW
+} color_sets;
+#define WANT_MIRC_COLOR(ch) ((ch)->color == COLOR_MIRCB || (ch)->color == COLOR_MIRCW)
+#define WANT_ANSI_COLOR(ch) ((ch)->color == COLOR_ANSI || (ch)->color == COLOR_RIP)
+#define WANT_RIP_COLOR(ch) ((ch)->color == COLOR_RIP)
+
/*
* ACT bits for players.
*/
@@ -2025,9 +2124,12 @@
PLR_AUTOSAC, PLR_BLANK, PLR_OUTCAST, PLR_BRIEF, PLR_COMBINE, PLR_PROMPT,
PLR_TELNET_GA, PLR_HOLYLIGHT, PLR_WIZINVIS, PLR_ROOMVNUM, PLR_SILENCE,
PLR_NO_EMOTE, PLR_ATTACKER, PLR_NO_TELL, PLR_LOG, PLR_DENY, PLR_FREEZE,
- PLR_THIEF, PLR_KILLER, PLR_LITTERBUG, PLR_ANSI, PLR_RIP, PLR_NICE, PLR_FLEE,
+ PLR_THIEF, PLR_KILLER, PLR_LITTERBUG, PLR_PRIVMSG, PLR_UNUSED, PLR_NICE, PLR_FLEE,
PLR_AUTOGOLD, PLR_AUTOMAP, PLR_AFK, PLR_INVISPROMPT
} player_flags;
+ /* Moved colors to its own field, added PLR_PRIVMSG. Left PLR_UNUSED
+ * cause we dont want all the ones after it moving up.. It would
+ * screw up existing pfiles and mobs.. --Cronel */
/* Bits for pc_data->flags. */
#define PCFLAG_R1 BV00
@@ -2344,6 +2446,8 @@
int retran;
int regoto;
sh_int mobinvis; /* Mobinvis level SB */
+
+ sh_int color; /* Color setting for the player --Cronel */
};
@@ -3701,7 +3805,6 @@
DECLARE_DO_FUN( do_afk );
DECLARE_DO_FUN( do_aid );
DECLARE_DO_FUN( do_allow );
-DECLARE_DO_FUN( do_ansi );
DECLARE_DO_FUN( do_answer );
DECLARE_DO_FUN( do_apply );
DECLARE_DO_FUN( do_appraise );
@@ -3753,6 +3856,7 @@
DECLARE_DO_FUN( do_close );
DECLARE_DO_FUN( do_cmdtable );
DECLARE_DO_FUN( do_cmenu );
+DECLARE_DO_FUN( do_color ); /* Cronel, IRC */
DECLARE_DO_FUN( do_colorize ); /* Alty */
DECLARE_DO_FUN( do_commands );
DECLARE_DO_FUN( do_comment );
@@ -3852,6 +3956,10 @@
DECLARE_DO_FUN( do_inventory );
DECLARE_DO_FUN( do_invis );
DECLARE_DO_FUN( do_ipcompare );
+DECLARE_DO_FUN( do_ircconnect ); /* Cronel, IRC */
+DECLARE_DO_FUN( do_ircdisconnect); /* Cronel, IRC */
+DECLARE_DO_FUN( do_ircset ); /* Cronel, IRC */
+DECLARE_DO_FUN( do_irclink ); /* Cronel, IRC */
DECLARE_DO_FUN( do_khistory );
DECLARE_DO_FUN( do_kick );
DECLARE_DO_FUN( do_kill );
@@ -3998,7 +4106,6 @@
DECLARE_DO_FUN( do_return );
DECLARE_DO_FUN( do_revert );
DECLARE_DO_FUN( do_rgrub );
-DECLARE_DO_FUN( do_rip );
DECLARE_DO_FUN( do_rlist );
DECLARE_DO_FUN( do_rolldie );
DECLARE_DO_FUN( do_rpfind );
diff -U 3 ../old_src/save.c ./save.c
--- ../old_src/save.c Tue Apr 23 03:30:23 2002
+++ ./save.c Tue Apr 23 03:30:52 2002
@@ -300,6 +300,7 @@
fprintf( fp, "Exp %d\n", ch->exp );
fprintf( fp, "Height %d\n", ch->height );
fprintf( fp, "Weight %d\n", ch->weight );
+ fprintf( fp, "Color %d\n", ch->color );
if ( !xIS_EMPTY(ch->act) )
fprintf( fp, "Act %s\n", print_bitvector(&ch->act) );
if ( !xIS_EMPTY(ch->affected_by) )
@@ -1156,6 +1157,7 @@
}
KEY( "Class", ch->class, fread_number( fp ) );
+ KEY( "Color", ch->color, fread_number( fp ) );
if ( !str_cmp( word, "Color" ) )
{
Only in .: shutdown.txt
diff -U 3 ../old_src/tables.c ./tables.c
--- ../old_src/tables.c Tue Apr 23 03:30:23 2002
+++ ./tables.c Tue Apr 23 03:30:52 2002
@@ -173,7 +173,6 @@
if ( !str_cmp( name, "do_afk" )) return do_afk;
if ( !str_cmp( name, "do_aid" )) return do_aid;
if ( !str_cmp( name, "do_allow" )) return do_allow;
- if ( !str_cmp( name, "do_ansi" )) return do_ansi;
if ( !str_cmp( name, "do_answer" )) return do_answer;
if ( !str_cmp( name, "do_apply" )) return do_apply;
if ( !str_cmp( name, "do_appraise" )) return do_appraise;
@@ -228,6 +227,7 @@
if ( !str_cmp( name, "do_close" )) return do_close;
if ( !str_cmp( name, "do_cmdtable" )) return do_cmdtable;
if ( !str_cmp( name, "do_cmenu" )) return do_cmenu;
+ if ( !str_cmp( name, "do_color" )) return do_color; /* Cronel, IRC */
if ( !str_cmp( name, "do_colorize" )) return do_colorize;
if ( !str_cmp( name, "do_commands" )) return do_commands;
if ( !str_cmp( name, "do_comment" )) return do_comment;
@@ -340,6 +340,10 @@
if ( !str_cmp( name, "do_immortalize" )) return do_immortalize;
if ( !str_cmp( name, "do_immtalk" )) return do_immtalk;
if ( !str_cmp( name, "do_imm_morph" )) return do_imm_morph;
+ if ( !str_cmp( name, "do_ircconnect" )) return do_ircconnect; /* Cronel, IRC */
+ if ( !str_cmp( name, "do_ircdisconnect" )) return do_ircdisconnect; /* Cronel, IRC */
+ if ( !str_cmp( name, "do_ircset" )) return do_ircset; /* Cronel, IRC */
+ if ( !str_cmp( name, "do_irclink" )) return do_irclink; /* Cronel, IRC */
if ( !str_cmp( name, "do_imm_unmorph" )) return do_imm_unmorph;
if ( !str_cmp( name, "do_induct" )) return do_induct;
if ( !str_cmp( name, "do_installarea" )) return do_installarea;
@@ -592,7 +596,6 @@
if ( !str_cmp( name, "do_rignore" )) return do_rignore;
if ( !str_cmp( name, "do_rinfo" )) return do_rinfo;
#endif
- if ( !str_cmp( name, "do_rip" )) return do_rip;
if ( !str_cmp( name, "do_rlist" )) return do_rlist;
if ( !str_cmp( name, "do_rmenu" )) return do_rmenu;
if ( !str_cmp( name, "do_rolldie" )) return do_rolldie;
@@ -851,7 +854,6 @@
if ( skill == do_afk ) return "do_afk";
if ( skill == do_aid ) return "do_aid";
if ( skill == do_allow ) return "do_allow";
- if ( skill == do_ansi ) return "do_ansi";
if ( skill == do_answer ) return "do_answer";
if ( skill == do_apply ) return "do_apply";
if ( skill == do_appraise ) return "do_appraise";
@@ -902,6 +904,7 @@
if ( skill == do_close ) return "do_close";
if ( skill == do_cmdtable ) return "do_cmdtable";
if ( skill == do_cmenu ) return "do_cmenu";
+ if ( skill == do_color ) return "do_color";
if ( skill == do_colorize ) return "do_colorize";
if ( skill == do_commands ) return "do_commands";
if ( skill == do_comment ) return "do_comment";
@@ -1000,6 +1003,10 @@
if ( skill == do_imm_morph) return "do_imm_morph";
if ( skill == do_imm_unmorph) return "do_imm_unmorph";
if ( skill == do_induct ) return "do_induct";
+ if ( skill == do_ircconnect ) return "do_ircconnect"; /* Cronel, IRC */
+ if ( skill == do_ircdisconnect ) return "do_ircdisconnect"; /* Cronel, IRC */
+ if ( skill == do_ircset ) return "do_ircset"; /* Cronel, IRC */
+ if ( skill == do_irclink ) return "do_irclink"; /* Cronel, IRC */
if ( skill == do_installarea ) return "do_installarea";
if ( skill == do_instaroom ) return "do_instaroom";
if ( skill == do_instazone ) return "do_instazone";
@@ -1232,7 +1239,6 @@
if ( skill == do_rignore ) return "do_rignore";
if ( skill == do_rinfo ) return "do_rinfo";
#endif
- if ( skill == do_rip ) return "do_rip";
if ( skill == do_rlist ) return "do_rlist";
if ( skill == do_rmenu ) return "do_rmenu";
if ( skill == do_rolldie ) return "do_rolldie";