diff -u rogue24b3/src/.depend rogue24b4/src/.depend
--- rogue24b3/src/.depend Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/.depend Sat Jul 14 15:27:37 2001
@@ -59,8 +59,10 @@
tables.h olc.h recycle.h staffcmds.h
olc_save.o: olc_save.cpp merc.h types.h conf.h sysdep.h board.h \
tables.h olc.h staffcmds.h
-pueblo.o: pueblo.cpp merc.h types.h conf.h sysdep.h board.h interp.h \
- recycle.h tables.h pueblo.h
+pedit.o: pedit.cpp merc.h types.h conf.h sysdep.h board.h db.h \
+ tables.h lookup.h
+pueblo.o: pueblo.cpp merc.h types.h conf.h sysdep.h board.h db.h \
+ interp.h recycle.h tables.h pueblo.h
quest.o: quest.cpp merc.h types.h conf.h sysdep.h board.h interp.h
recycle.o: recycle.cpp merc.h types.h conf.h sysdep.h board.h \
recycle.h
@@ -72,6 +74,7 @@
skills.o: skills.cpp merc.h types.h conf.h sysdep.h board.h interp.h \
magic.h lookup.h recycle.h
songs.o: songs.cpp merc.h types.h conf.h sysdep.h board.h songs.h
+space.o: space.cpp merc.h types.h conf.h sysdep.h board.h space.h
special.o: special.cpp merc.h types.h conf.h sysdep.h board.h interp.h \
magic.h
string.o: string.cpp merc.h types.h conf.h sysdep.h board.h tables.h \
diff -u rogue24b3/src/Makefile rogue24b4/src/Makefile
--- rogue24b3/src/Makefile Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/Makefile Sat Jul 14 15:27:36 2001
@@ -1,35 +1,27 @@
CC = c++
MYFLAGS = -g3 -Wall -Wno-unused -Wno-sign-compare -fno-inline
-
-PROFILE =
-
+PROFILE = #-DNOCRYPT -DNOWEBUTILS -DGCC
BINDIR = ../src
-
CFLAGS = -O $(MYFLAGS) $(PROFILE)
+PROC = -lcrypt
OBJFILES = act_comm.o act_enter.o act_info.o act_move.o act_obj.o act_wiz.o \
alias.o ban.o bit.o board.o characters.o comm.o const.o db.o db2.o \
drunk.o effects.o fight.o flags.o guild.o handler.o healer.o interp.o \
jukebox.o lookup.o magic.o magic2.o mapper.o mem.o mob_cmds.o \
mob_prog.o music.o olc.o olc_act.o olc_mpcode.o olc_save.o pueblo.o \
- quest.o recycle.o save.o scan.o sedit.o skills.o special.o \
- songs.o string.o system.o tables.o update.o vehicles.o webutils.o \
- wizutils.o
+ pedit.o quest.o recycle.o save.o scan.o sedit.o skills.o special.o \
+ space.o songs.o string.o system.o tables.o update.o vehicles.o \
+ webutils.o wizutils.o
default:
$(MAKE) ../src/rogue
-all:
- $(MAKE) ../src/rogue
-
rogue:
$(MAKE) $(BINDIR)/rogue
../src/rogue : $(OBJFILES)
- $(CC) -o $(BINDIR)/rogue $(PROFILE) $(OBJFILES)
-
-../src/rogue++ :$(OBJFILES)
- $(CC) -o $(BINDIR)/rogue++ $(PROFILE) $(OBJFILES)
+ $(CC) -o $(BINDIR)/rogue $(PROFILE) $(OBJFILES) $(PROC)
clean:
rm -f *.o
diff -u rogue24b3/src/act_comm.cpp rogue24b4/src/act_comm.cpp
--- rogue24b3/src/act_comm.cpp Sun Jun 24 14:25:38 2001
+++ rogue24b4/src/act_comm.cpp Sat Jul 14 15:27:37 2001
@@ -84,7 +84,10 @@
break;
}
- ch->desc->snoop_by = NULL;
+ if (ch->desc->snoop_by) {
+ send_to_desc("Your victim has entered privacy mode.\n\r",ch->desc->snoop_by);
+ ch->desc->snoop_by = NULL;
+ }
act("$n enters privacy mode.", ch, 0, 0, TO_ROOM);
STATE(ch->desc) = CON_MENU;
ch->Send(MENU);
@@ -193,13 +196,14 @@
buf1[0] = '\0';
buf2[0] = '\0';
buf3[0] = '\0';
+
argument = one_argument(argument, command);
if (command[0] == '\0') {
send_to_char("What do you wish to gocial?\n\r", ch);
return;
}
- if ((cmd = social_lookup(command)) == -1) {
+ if ((cmd = social_lookup_sh(command)) == -1) {
send_to_char("What kind of social is that?!?!\n\r",ch);
return;
}
@@ -296,44 +300,44 @@
{ "You cannot chat!!\n\r",
"chat",
"You aren't even on the channel!\n\r",
- "`y[`bCHAT`y] $n`y: %s`n",
- "`y[`bCHAT`y] -> %s`n"
+ "`y[`bCHAT`y] $n`y: $t`n",
+ "`y[`bCHAT`y] -> $t`n"
},
{ "You cannot sing!!\n\r",
"sing",
"You aren't even on the channel!\n\r",
- "`y[`mMUSIC by $n`y] `m%s`n",
- "`y[`mMUSIC`y] -> `w%s`n"
+ "`y[`mMUSIC by $n`y] `m$t`n",
+ "`y[`mMUSIC`y] -> `w$t`n"
},
{ "You cannot congratulate!!\n\r",
"congrat",
"You aren't even on the channel!\n\r",
- "`y[`bCONGRATS`y] $n`g: %s`n",
- "`y[`bCONGRATS`y] -> `g%s`n"
+ "`y[`bCONGRATS`y] $n`g: $t`n",
+ "`y[`bCONGRATS`y] -> `g$t`n"
},
{ "You cannot shout!!\n\r",
"shout",
"Turn off your noshout flag first!\n\r",
- "$n `yshouts '%s`y'`n",
- "`yYou shout '%s`y'`n"
+ "$n `yshouts '$t`y'`n",
+ "`yYou shout '$t`y'`n"
},
{ "You cannot quest talk!!\n\r",
"quest talk",
"You aren't even on the channel!\n\r",
- "`y[`bQUEST`y] $n`r: %s`n",
- "`y[`bQUEST`y] -> `r%s`n"
+ "`y[`bQUEST`y] $n`r: $t`n",
+ "`y[`bQUEST`y] -> `r$t`n"
},
{ "You cannot converse with your clan!\n\r",
"clan chat",
"You aren't even on the channel!\n\r",
- "`y[`bCLAN`y] $n`c: %s`n",
- "`y[`bCLAN`y] -> `c%s`n"
+ "`y[`bCLAN`y] $n`c: $t`n",
+ "`y[`bCLAN`y] -> `c$t`n"
},
{ "You cannot broadcast info!\n\r",
"broadcast",
"",
- "`y[`bINFO`y] $n`w: %s`n",
- "`y[`bINFO`y] -> `w%s`n"
+ "`y[`bINFO`y] $n`w: $t`n",
+ "`y[`bINFO`y] -> `w$t`n"
}
};
@@ -349,17 +353,18 @@
send_to_char("You aren't even a clan member!\n\r", ch);
return;
}
+
if ((subcmd != SCMD_BROADCAST) && (GET_COND(ch, COND_DRUNK) > 10))
argument = makedrunk(argument, ch);
+
if (!*argument) {
ch->Send("Yes, %s, fine, %s we must, but WHAT???\n\r",
com_msgs[subcmd][1], com_msgs[subcmd][1]);
return;
}
check_color_string(argument);
- sprintf(buf, com_msgs[subcmd][4], argument);
- act2(buf, ch, NULL, NULL, TO_CHAR, POS_DEAD);
- sprintf(buf, com_msgs[subcmd][3], argument);
+
+ act2(com_msgs[subcmd][4], ch, argument, NULL, TO_CHAR, POS_DEAD);
for (d = descriptor_list; d != NULL; d = d->next) {
CHAR_DATA *vch = Original(d);
@@ -375,7 +380,7 @@
if ((subcmd == SCMD_CLAN) && !is_same_clan(ch, vch))
continue;
- act2(buf, ch, NULL, vch, TO_VICT, POS_DEAD);
+ act2(com_msgs[subcmd][3], ch, argument, vch, TO_VICT, POS_DEAD);
}
}
}
@@ -1110,14 +1115,14 @@
ch->max_hit = ch->hit = 5000;
ch->max_mana = ch->mana = 5000;
ch->max_move = ch->move = 82;
- ch->pcdata->security = 9;
- ch->staff_level = CAT_CODER;
+ ch->pcdata->security = 9;
+ ch->staff_level = CAT_CODER;
update_wizlist(ch, ch->level);
SET_BIT(STF_FLAGS(ch), 0xFFFFFFFF);
- SET_BIT(PLR_FLAGS(ch), PLR_LOADROOM);
+ ch->exp = exp_per_level(ch,ch->pcdata->points) * ch->level;
+ SET_BIT(PLR_FLAGS(ch), PLR_LOADROOM | PLR_NOHASSLE | PLR_HOLYLIGHT);
GET_LOADROOM(ch) = 1210;
save_char_obj(ch);
- build_player_index();
}
sprintf(buf, "the %s",
diff -u rogue24b3/src/act_info.cpp rogue24b4/src/act_info.cpp
--- rogue24b3/src/act_info.cpp Sun Jun 24 14:25:36 2001
+++ rogue24b4/src/act_info.cpp Sat Jul 14 15:27:35 2001
@@ -1092,11 +1092,6 @@
if (found_char) {
show_char_to_char_1(found_char, ch);
- if (ch != found_char) {
- if (can_see(found_char, ch))
- act("$n looks at you.", ch, 0, found_char, TO_VICT);
- act("$n looks at $N.", ch, 0, found_char, TO_NOTVICT);
- }
return;
}
@@ -1104,12 +1099,14 @@
page_to_char(desc, ch);
return;
}
+
for (obj = ch->carrying; obj != NULL; obj = obj->next_content) {
if ((desc = get_extra_descr(arg, obj->extra_descr)) != NULL) {
page_to_char(desc, ch);
found = TRUE;
}
}
+
for (obj = IN_ROOM(ch)->contents; obj != NULL; obj = obj->next_content) {
if (found)
break;
@@ -1526,8 +1523,10 @@
vict->move, vict->max_move);
ch->Send(
- "You have %ld gold coins, %ld silver coins (0 gold in bank).\n\r",
- vict->gold, vict->silver);
+ "You have %ld gold coin%s, %ld silver coin%s, %d quest point%s.\n\r",
+ vict->gold, vict->gold == 1 ? "" : "s",
+ vict->silver, vict->silver == 1 ? "" : "s",
+ vict->questpoints, vict->questpoints == 1 ? "" : "s");
sprintf(buf,
"You have %d practices and %d training sessions.\n\r",
@@ -2740,7 +2739,7 @@
return;
}
- if ( strcmp( crypt( arg1, ch->pcdata->pwd ), ch->pcdata->pwd ) )
+ if (strcmp(CRYPT(arg1, ch->pcdata->pwd), ch->pcdata->pwd))
{
WAIT_STATE( ch, 40 );
send_to_char( "Wrong password. Wait 10 seconds.\n\r", ch );
@@ -2757,7 +2756,7 @@
/*
* No tilde allowed because of player file format.
*/
- pwdnew = crypt( arg2, ch->name );
+ pwdnew = CRYPT(arg2, ch->name);
for ( p = pwdnew; *p != '\0'; p++ )
{
if ( *p == '~' )
diff -u rogue24b3/src/act_wiz.cpp rogue24b4/src/act_wiz.cpp
--- rogue24b3/src/act_wiz.cpp Sun Jun 24 14:25:36 2001
+++ rogue24b4/src/act_wiz.cpp Sat Jul 14 15:27:36 2001
@@ -1318,6 +1318,7 @@
{ "olc", STAFF_OLC },
{ "olcadmin", STAFF_OLCADMIN },
{ "script", STAFF_SCRIPT },
+ { "pmusic", STAFF_PMUSIC },
{ "security", STAFF_SECURITY },
{ "socials", STAFF_SOCIALS },
{ "coder", STAFF_CODER },
@@ -3708,7 +3709,7 @@
vict->perm_stat[STAT_CHA] = value;
break;
case 6:
- if (!(i = class_lookup(val_arg))) {
+ if ((i = class_lookup(val_arg)) == -1) {
send_to_char("That is not a class.\n\r",ch);
return FALSE;
}
@@ -3851,7 +3852,7 @@
} else {
char *pwdnew;
smash_tilde(val_arg);
- pwdnew = crypt(val_arg, vict->name);
+ pwdnew = CRYPT(val_arg, vict->name);
free_string(vict->pcdata->pwd);
vict->pcdata->pwd = str_dup(pwdnew);
sprintf(output, "Password changed to '%s'.", val_arg);
@@ -4531,15 +4532,17 @@
send_to_char("Not at your level!\n\r",ch);
return;
}
+
mudlogf(NRM, LVL_STAFF, TRUE, "(GC) %s forced all to %s", RealName(ch), argument);
+
for ( vch = char_list; vch != NULL; vch = vch_next )
{
vch_next = vch->next;
- if ( !IS_NPC(vch) && get_trust( vch ) < get_trust( ch ) )
+ if (!IS_NPC(vch) && get_trust(vch) < get_trust(ch))
{
- act( buf, ch, NULL, vch, TO_VICT );
- interpret( vch, argument );
+ act(buf, ch, NULL, vch, TO_VICT);
+ interpret(vch, argument);
}
}
}
diff -u rogue24b3/src/board.cpp rogue24b4/src/board.cpp
--- rogue24b3/src/board.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/board.cpp Sat Jul 14 15:27:36 2001
@@ -669,6 +669,80 @@
}
}
+ACMD(do_nprint) {
+ NOTE_DATA *note;
+ OBJ_DATA *obj = NULL;
+ char buf[4*MAX_STRING_LENGTH];
+
+ if (IS_NPC(ch))
+ return;
+
+ if (!is_number(argument)) {
+ ch->Send("Print which note?\n\r");
+ return;
+ }
+
+ if (!(note = find_note(ch, ch->pcdata->board, atoi(argument)))) {
+ ch->Send("There is no such note on this board.\n\r");
+ return;
+ }
+
+ if (str_cmp(ch->name, note->to_list) && (get_trust(ch) < MAX_LEVEL)) {
+ ch->Send("You are not authorised to print that note.\n\r");
+ return;
+ }
+
+ obj = create_object(get_obj_index(OBJ_VNUM_PROTOPLASM), 0);
+ obj->cost = 0;
+ obj->weight = 0;
+ obj->item_type = ITEM_NOTE;
+ obj->wear_flags = ITEM_TAKE | ITEM_HOLD;
+
+ free_string(obj->name);
+ obj->name = str_dup("printout email mail paper letter note");
+
+ free_string(obj->short_descr);
+ sprintf(buf, "a printed e-mail from %s", note->sender);
+ obj->short_descr = str_dup(buf);
+
+ free_string(obj->description);
+ obj->description = str_dup("someone has left a printout here.");
+
+ free_string(obj->note_descr);
+ sprintf(buf,
+ "Date: %s\n\r"
+ " To: %s\n\r"
+ "From: %s\n\r\n\r%s",
+ note->date, note->to_list,
+ note->sender, note->text);
+ obj->note_descr = str_dup(buf);
+
+ obj_to_char(obj, ch);
+ unlink_note(ch->pcdata->board, note);
+ free_note(note);
+ ch->Send("Note has been printed and removed from the board.\n\r");
+ save_board(ch->pcdata->board);
+}
+
+ACMD(do_nreply) {
+ NOTE_DATA *note;
+
+ if (IS_NPC(ch))
+ return;
+
+ if (!is_number(argument)) {
+ ch->Send("Reply to which note?\n\r");
+ return;
+ }
+
+ if (!(note = find_note(ch, ch->pcdata->board, atoi(argument)))) {
+ ch->Send("There is no such note on this board.\n\r");
+ return;
+ }
+ ch->Send("This is still being worked on.\n\r");
+ return;
+}
+
/* Dispatch function for backwards compatibility */
ACMD(do_note) {
char arg[MAX_INPUT_LENGTH];
@@ -686,12 +760,12 @@
do_nwrite(ch, argument, 0);
else if (!str_prefix(arg, "remove"))
do_nremove(ch, argument, 0);
- else if (!str_prefix(arg, "purge"))
- send_to_char("Obsolete.\n\r",ch);
- else if (!str_prefix(arg, "archive"))
- send_to_char("Obsolete.\n\r",ch);
else if (!str_prefix(arg, "catchup"))
do_ncatchup(ch, argument, 0);
+ else if (!str_prefix(arg, "print"))
+ do_nprint(ch, argument, 0);
+ else if (!str_prefix(arg, "reply"))
+ do_nreply(ch, argument, 0);
else
do_help(ch, "note", 0);
}
diff -u rogue24b3/src/characters.cpp rogue24b4/src/characters.cpp
--- rogue24b3/src/characters.cpp Sun Jun 24 14:25:43 2001
+++ rogue24b4/src/characters.cpp Sat Jul 14 15:27:40 2001
@@ -23,7 +23,7 @@
if (MOB_FLAGGED(ch, ACT_PET) && ch->master)
load_room = StartRoom(ch->master);
- if ((load_room == NULL && PLR_FLAGGED(ch, PLR_NEWBIE)) || !ch->level)
+ if ((load_room == NULL) && !ch->level)
load_room = get_room_index(newbie_start_rooms[GET_RACE(ch)]);
if ((load_room == NULL) && PLR_FLAGGED(ch, PLR_LOADROOM))
diff -u rogue24b3/src/comm.cpp rogue24b4/src/comm.cpp
--- rogue24b3/src/comm.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/comm.cpp Sat Jul 14 15:27:36 2001
@@ -1666,6 +1666,9 @@
int iClass,race,i,weapon;
bool fOld;
+ int get_player_database();
+ void set_player_database(int num);
+
/* Delete leading spaces UNLESS character is writing a note */
if (d->connected != CON_NOTE_TEXT)
{
@@ -1781,7 +1784,7 @@
write_to_buffer( d, "\n\r", 2 );
#endif
- if ( strcmp( crypt( argument, ch->pcdata->pwd ), ch->pcdata->pwd ))
+ if (strcmp(CRYPT(argument, ch->pcdata->pwd), ch->pcdata->pwd))
{
write_to_buffer( d, "Wrong password.\n\r", 0 );
mudlogf(NRM, LVL_STAFF, TRUE, "Bad PW: %s [%s]", RealName(d->character), d->host);
@@ -1891,7 +1894,7 @@
return;
}
- pwdnew = crypt( argument, ch->name );
+ pwdnew = CRYPT(argument, ch->name);
for ( p = pwdnew; *p != '\0'; p++ )
{
if ( *p == '~' )
@@ -1915,7 +1918,7 @@
write_to_buffer( d, "\n\r", 2 );
#endif
- if ( strcmp( crypt( argument, ch->pcdata->pwd ), ch->pcdata->pwd ) )
+ if (strcmp(CRYPT(argument, ch->pcdata->pwd), ch->pcdata->pwd))
{
write_to_buffer( d, "Passwords don't match.\n\rRetype password: ",
0 );
@@ -2125,7 +2128,6 @@
group_add(ch, class_table[ch->Class].default_group, TRUE);
group_add(ch, class_table[ch->Class].base_group, TRUE);
write_to_buffer(d,
- "\n\r"
"Please pick a weapon from the following choices:\n\r",0);
buf[0] = '\0';
for (i = 0; weapon_table[i].name != NULL; i++)
@@ -2304,11 +2306,12 @@
send_to_char("\n\r",ch);
STATE(d) = CON_PLAYING;
+ char_to_room(ch, StartRoom(ch));
if (ch->level == 0) {
do_start(ch);
do_function(ch, &do_help, "newbie info", 0);
+ set_player_database(get_player_database()+1);
}
- char_to_room(ch, StartRoom(ch));
act("$n has entered the game.", ch, NULL, NULL, TO_ROOM);
look_at_room(ch, 0);
info(ch, 0, "`y[`bINFO`y] %s has entered the game!`n\n\r",ch->name);
@@ -2379,7 +2382,7 @@
}
break;
case CON_CHPWD_GETOLD:
- if (strcmp(crypt(argument, ch->pcdata->pwd), ch->pcdata->pwd)) {
+ if (strcmp(CRYPT(argument, ch->pcdata->pwd), ch->pcdata->pwd)) {
send_to_desc(echo_on_str, d);
send_to_desc("\n\rIncorrect password.\n\r", d);
send_to_desc(MENU, d);
@@ -2391,7 +2394,7 @@
break;
case CON_DELETE_CONF1:
send_to_desc(echo_on_str, d);
- if (strcmp(crypt(argument, ch->pcdata->pwd), ch->pcdata->pwd)) {
+ if (strcmp(CRYPT(argument, ch->pcdata->pwd), ch->pcdata->pwd)) {
send_to_desc("\n\rIncorrect password.\n\r", d);
send_to_desc(MENU, d);
STATE(d) = CON_MENU;
@@ -2437,6 +2440,7 @@
bool check_parse_name( char *name )
{
int clan;
+ DESCRIPTOR_DATA *d, *dnext;
/*
* Reserved words.
@@ -2454,6 +2458,15 @@
&& !str_cmp(name,clan_table[clan].name))
return FALSE;
}
+
+ /* Duped Fags */
+ for (d = descriptor_list; d != NULL; d = dnext) {
+ dnext = d->next;
+
+ if (d->character != CON_PLAYING && d->character != NULL &&
+ d->character->name[0] != '\0' && !str_cmp(d->character->name,name))
+ return FALSE;
+ }
/*
* Length restrictions.
@@ -2489,7 +2502,7 @@
if ( !isalpha(*pc) )
return FALSE;
- if ( isupper(*pc)) /* ugly anti-caps hack */
+ if (isupper(*pc)) /* ugly anti-caps hack */
{
if (adjcaps)
cleancaps = TRUE;
@@ -2567,7 +2580,7 @@
REMOVE_BIT(PLR_FLAGS(ch), PLR_WRITING);
d->connected = CON_PLAYING;
if (ch->pcdata->in_progress)
- send_to_char ("You have a note in progress. Type NWRITE to continue it.\n\r",ch);
+ send_to_char ("You have a note in progress. Type 'note write' to continue it.\n\r",ch);
}
return TRUE;
}
@@ -2972,6 +2985,7 @@
return "(NULL)";
}
+
void perform_act(const char *orig, CHAR_DATA *ch, const void *arg1,
const void *arg2, CHAR_DATA *to, bool Relation, bool RName)
{
@@ -3062,8 +3076,10 @@
}
++str;
- while ((*point = *i) != '\0')
- point++, i++;
+// while ((*point = *i) != '\0')
+// point++, i++;
+ while ((*point = *(i++)))
+ point++;
if (relation != RELATION_NONE) {
*point++ = '`';
diff -u rogue24b3/src/conf.h rogue24b4/src/conf.h
--- rogue24b3/src/conf.h Sun Jun 24 14:25:38 2001
+++ rogue24b4/src/conf.h Sat Jul 14 15:27:37 2001
@@ -3,6 +3,7 @@
#define STDC_HEADERS 1
#define TIME_WITH_SYS_TIME 1
#define HAVE_CRYPT 1
+#define HAVE_CRYPT_H 1
#define HAVE_RANDOM 1
#define HAVE_ARPA_TELNET_H 1
#define HAVE_ASSERT_H 1
@@ -17,4 +18,3 @@
#define HAVE_UNISTD_H 1
#define HAVE_SYS_ERRNO_H 1
#define HAVE_SIGNAL_H 1
-#define NOCRYPT
diff -u rogue24b3/src/const.cpp rogue24b4/src/const.cpp
--- rogue24b3/src/const.cpp Sun Jun 24 14:27:14 2001
+++ rogue24b4/src/const.cpp Sat Jul 14 15:27:37 2001
@@ -30,7 +30,7 @@
#include "interp.h"
char roguemud_version[] = {
- "Rogue MUD: Version 2.4b3\n\r"
+ "Rogue MUD: Version 2.4b4\n\r"
"Compiled on " __DATE__ " at " __TIME__ ".\n\r"
};
diff -u rogue24b3/src/db.cpp rogue24b4/src/db.cpp
--- rogue24b3/src/db.cpp Sun Jun 24 14:25:36 2001
+++ rogue24b4/src/db.cpp Sat Jul 14 15:27:36 2001
@@ -419,6 +419,8 @@
load_bans();
log("Reading music list.");
load_songs();
+ log("Reading pmusic table.");
+ load_pmusic_table();
log("Reading wizlist system.");
load_wizlist();
log("Reading system data.");
@@ -1559,8 +1561,6 @@
}
}
}
-
-#define PLR_INDEX_FILE DATA_DIR "plr_index"
void build_player_index( void )
{
diff -u rogue24b3/src/db.h rogue24b4/src/db.h
--- rogue24b3/src/db.h Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/db.h Sat Jul 14 15:27:36 2001
@@ -40,6 +40,7 @@
/* from db2.c */
extern int maxSocial;
+extern int maxPSong;
/* conversion from db.h */
void convert_mob(MOB_INDEX_DATA *mob);
diff -u rogue24b3/src/fight.cpp rogue24b4/src/fight.cpp
--- rogue24b3/src/fight.cpp Sun Jun 24 14:25:36 2001
+++ rogue24b4/src/fight.cpp Sat Jul 14 15:27:36 2001
@@ -2067,14 +2067,16 @@
{
if (ch == victim)
{
- sprintf( buf1, "$n %s $melf%c",vp,punct);
- sprintf( buf2, "You %s yourself%c",vs,punct);
+ sprintf(buf1, "$n %s $melf%c",vp,punct);
+ sprintf(buf2, "You %s yourself%c",vs,punct);
}
else
{
- sprintf( buf1, "$n %s $N%c", vp, punct );
- sprintf( buf2, "You %s $N%c", vs, punct );
- sprintf( buf3, "$n %s you%c", vp, punct );
+ sprintf(buf1, "$n %s $N%c", vp, punct);
+ sprintf(buf2, "%sYou %s $N%c",
+ PLR_FLAGGED(ch, PLR_AUTODAMAGE) ? mesg : "", vs, punct);
+ sprintf(buf3, "%s$n %s you%c",
+ PLR_FLAGGED(victim, PLR_AUTODAMAGE) ? mesg : "", vp, punct);
}
}
else
@@ -2110,31 +2112,29 @@
if (ch == victim)
{
sprintf(buf1, "$n's %s %s $m%c",attack,vp,punct);
- sprintf(buf2, "Your %s %s you%c",attack,vp,punct);
+ sprintf(buf2, "%sYour %s %s you%c",
+ PLR_FLAGGED(ch, PLR_AUTODAMAGE) ? mesg : "",
+ attack,vp,punct);
} else {
sprintf(buf1, "$n's %s %s $N%c", attack, vp, punct);
sprintf(buf2, "%sYour %s %s $N%c",
- PLR_FLAGGED(ch, PLR_AUTODAMAGE) ? mesg : "",
- attack, vp, punct);
+ PLR_FLAGGED(ch, PLR_AUTODAMAGE) ? mesg : "",
+ attack, vp, punct);
sprintf(buf3, "%s$n's %s %s you%c",
- PLR_FLAGGED(victim, PLR_AUTODAMAGE) ? mesg : "",
- attack, vp, punct);
+ PLR_FLAGGED(victim, PLR_AUTODAMAGE) ? mesg : "",
+ attack, vp, punct);
}
}
}
- if (ch == victim)
- {
- act(buf1,ch,NULL,NULL,TO_ROOM);
- act(buf2,ch,NULL,NULL,TO_CHAR);
+ if (ch == victim) {
+ act(buf1, ch, NULL, NULL, TO_ROOM);
+ act(buf2, ch, NULL, NULL, TO_CHAR);
+ } else {
+ act(buf1, ch, NULL, victim, TO_NOTVICT);
+ act(buf2, ch, NULL, victim, TO_CHAR);
+ act(buf3, ch, NULL, victim, TO_VICT);
}
- else
- {
- act( buf1, ch, NULL, victim, TO_NOTVICT );
- act( buf2, ch, NULL, victim, TO_CHAR );
- act( buf3, ch, NULL, victim, TO_VICT );
- }
-
return;
}
diff -u rogue24b3/src/handler.cpp rogue24b4/src/handler.cpp
--- rogue24b3/src/handler.cpp Sun Jun 24 14:25:38 2001
+++ rogue24b4/src/handler.cpp Sat Jul 14 15:27:37 2001
@@ -216,7 +216,7 @@
{
int pclass;
- for ( pclass = 0; pclass < MAX_CLASS; pclass++)
+ for (pclass = 0; pclass < MAX_CLASS; pclass++)
{
if (LOWER(name[0]) == LOWER(class_table[pclass].name[0])
&& !str_prefix( name,class_table[pclass].name))
@@ -1249,7 +1249,7 @@
*paf_new = *paf;
- VALIDATE(paf); /* in case we missed it when we set up paf */
+ VALIDATE(paf_new); /* in case we missed it when we set up paf */
paf_new->next = ch->affected;
ch->affected = paf_new;
@@ -1266,7 +1266,7 @@
*paf_new = *paf;
- VALIDATE(paf); /* in case we missed it when we set up paf */
+ VALIDATE(paf_new); /* in case we missed it when we set up paf */
paf_new->next = obj->affected;
obj->affected = paf_new;
@@ -3000,6 +3000,7 @@
if (staff_flags & STAFF_CODER ) strcat(buf, " CODER");
if (staff_flags & STAFF_ASSOCIATE)strcat(buf, " ASSOCIATE");
if (staff_flags & STAFF_TRAINEE ) strcat(buf, " TRAINEE");
+ if (staff_flags & STAFF_PMUSIC ) strcat(buf, " PMUSIC");
return ( buf[0] != '\0' ) ? buf+1 : str_dup("none");
}
diff -u rogue24b3/src/interp.cpp rogue24b4/src/interp.cpp
--- rogue24b3/src/interp.cpp Sun Jun 24 14:25:38 2001
+++ rogue24b4/src/interp.cpp Sat Jul 14 15:27:37 2001
@@ -155,7 +155,7 @@
{ "combine", do_gen_tog, POS_DEAD, 0, 1, 0, SCMD_COMBINE },
{ "compact", do_gen_tog, POS_DEAD, 0, 1, 0, SCMD_COMPACT },
{ "description", do_gen_menu, POS_DEAD, 0, 1 },
- { "delete", do_olc_delete, POS_DEAD, -1, 1, STAFF_OLCADMIN },
+ { "delete", do_gen_menu, POS_DEAD, 0, 1 },
{ "donate", do_donate, POS_RESTING, 0, 1 },
{ "nofollow", do_gen_tog, POS_DEAD, 0, 1, 0, SCMD_NOFOLLOW },
{ "nopueblo", do_gen_tog, POS_DEAD, 0, 1, 0, SCMD_NOPUEBLO },
@@ -347,7 +347,7 @@
{ "rmessage", do_rmsg, POS_DEAD, -1, 1, STAFF_CHAR },
{ "gecho", do_echo, POS_DEAD, -1, 1, STAFF_GAME },
{ "holylight", do_gen_tog, POS_DEAD, -1, 1, STAFF_GEN | STAFF_ASSOCIATE | STAFF_TRAINEE, SCMD_HOLYLIGHT },
- { "nohassle", do_gen_tog, POS_DEAD, -1, 1, STAFF_GEN, SCMD_NOHASSLE },
+ { "nohassle", do_gen_tog, POS_DEAD, -1, 1, STAFF_GEN | STAFF_ASSOCIATE | STAFF_TRAINEE, SCMD_NOHASSLE },
{ "incognito", do_incognito, POS_DEAD, -1, 1, STAFF_GEN },
{ "invis", do_invis, POS_DEAD, -1, 0, STAFF_GEN | STAFF_ASSOCIATE | STAFF_TRAINEE },
{ "log", do_log, POS_DEAD, -1, 1, STAFF_SECADMIN },
@@ -371,7 +371,7 @@
{ "clone", do_clone, POS_DEAD, -1, 1, STAFF_GEN },
{ "immtalk", do_immtalk, POS_DEAD, -1, 1, STAFF_GEN | STAFF_ASSOCIATE | STAFF_TRAINEE},
- { "imotd", do_gen_ps, POS_DEAD, -1, 1, STAFF_GEN, SCMD_IMOTD },
+ { "imotd", do_gen_ps, POS_DEAD, -1, 1, STAFF_GEN, SCMD_IMOTD },
{ ";", do_immtalk, POS_DEAD, -1, 0, STAFF_GEN | STAFF_TRAINEE | STAFF_ASSOCIATE},
{ "smote", do_smote, POS_DEAD, -1, 1, STAFF_GEN },
{ "prefix", do_prefix, POS_DEAD, -1, 1, STAFF_GEN },
@@ -383,6 +383,7 @@
* OLC
*/
{ "olc", do_olclist, POS_DEAD, -1, 1, STAFF_OLC },
+ { "olcdelete", do_olc_delete, POS_DEAD, -1, 1, STAFF_OLCADMIN },
{ "path", do_path, POS_DEAD, -1, 1, STAFF_GAME },
{ "immtitle", do_immtitle, POS_DEAD, -1, 1, STAFF_ADMIN },
{ "immcurse", do_immcurse, POS_DEAD, -1, 1, STAFF_ADMIN },
@@ -402,6 +403,7 @@
{ "hedit", do_hedit, POS_DEAD, -1, 1, STAFF_HELP },
{ "gedit", do_gedit, POS_DEAD, -1, 1, STAFF_CLANS },
{ "sedit", do_sedit, POS_DEAD, -1, 1, STAFF_SOCIALS },
+ { "pedit", do_pedit, POS_DEAD, -1, 1, STAFF_PMUSIC },
/*
* End of list.
*/
diff -u rogue24b3/src/interp.h rogue24b4/src/interp.h
--- rogue24b3/src/interp.h Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/interp.h Sat Jul 14 15:27:36 2001
@@ -35,11 +35,11 @@
bool is_abbrev(const char *arg1, const char *arg2);
// EGCS Does not like this, GCC requires it.
-/*
+#if defined(GCC)
inline void skip_spaces(char *&string) {
return skip_spaces(const_cast<const char *>(string));
}
-*/
+#endif
/* for command types */
#define ML MAX_LEVEL /* implementor */
@@ -425,6 +425,7 @@
DECLARE_DO_FUN( do_hedit );
DECLARE_DO_FUN( do_gedit );
DECLARE_DO_FUN( do_sedit );
+DECLARE_DO_FUN( do_pedit );
DECLARE_DO_FUN( save_guilds );
// Pueblo
DECLARE_DO_FUN( do_pstop );
diff -u rogue24b3/src/merc.h rogue24b4/src/merc.h
--- rogue24b3/src/merc.h Sun Jun 24 14:26:25 2001
+++ rogue24b4/src/merc.h Sat Jul 14 15:28:10 2001
@@ -118,6 +118,7 @@
typedef struct social_type SOCIAL_DATA;
typedef struct wizlist_data WIZLIST_DATA;
typedef struct race_type RACE_DATA;
+typedef struct pmusic_type PMUSIC_DATA;
/*
* Function types.
@@ -1464,7 +1465,7 @@
#define PLR_MSP (1 << 18)
#define PLR_PERMIT (1 << 19)
#define PLR_LOG (1 << 20)
-#define PLR_NEWBIE (1 << 21)
+#define PLR_UNUSED21 (1 << 21)
#define PLR_FREEZE (1 << 22)
#define PLR_THIEF (1 << 23)
#define PLR_KILLER (1 << 24)
@@ -2273,6 +2274,16 @@
#define CHAR_WATCHING(ch) ((ch)->watching)
/*
+ * Structure for a song in the pmusic table.
+ */
+struct pmusic_type
+{
+ char * name;
+ char * fname;
+ char * locurl;
+};
+
+/*
* Structure for a social in the socials table.
*/
struct social_type
@@ -2314,6 +2325,7 @@
extern const struct song_type song_table [MAX_SONGS];
extern const struct group_type group_table [MAX_GROUP];
extern struct social_type *social_table;
+extern struct pmusic_type *pmusic_table;
extern struct clan_type clan_table [MAX_CLAN];
extern char * const title_table [MAX_CLASS]
[MAX_LEVEL+1]
@@ -2353,22 +2365,9 @@
* These are all very standard library functions,
* but some systems have incomplete or non-ansi header files.
*/
-#if defined(_AIX)
-char * crypt args( ( const char *key, const char *salt ) );
-#endif
-
#if defined(apollo)
int atoi args( ( const char *string ) );
void * calloc args( ( unsigned nelem, size_t size ) );
-char * crypt args( ( const char *key, const char *salt ) );
-#endif
-
-#if defined(hpux)
-char * crypt args( ( const char *key, const char *salt ) );
-#endif
-
-#if defined(linux)
-char * crypt args( ( const char *key, const char *salt ) );
#endif
#if defined(macintosh)
@@ -2378,10 +2377,6 @@
#endif
#endif
-#if defined(MIPS_OS)
-char * crypt args( ( const char *key, const char *salt ) );
-#endif
-
#if defined(MSDOS)
#define NOCRYPT
#if defined(unix)
@@ -2389,12 +2384,7 @@
#endif
#endif
-#if defined(NeXT)
-char * crypt args( ( const char *key, const char *salt ) );
-#endif
-
#if defined(sequent)
-char * crypt args( ( const char *key, const char *salt ) );
int fclose args( ( FILE *stream ) );
int fprintf args( ( FILE *stream, const char *format, ... ) );
int fread args( ( void *ptr, int size, int n, FILE *stream ) );
@@ -2404,7 +2394,6 @@
#endif
#if defined(sun)
-char * crypt args( ( const char *key, const char *salt ) );
int fclose args( ( FILE *stream ) );
int fprintf args( ( FILE *stream, const char *format, ... ) );
#if defined(SYSV)
@@ -2418,10 +2407,6 @@
int ungetc args( ( int c, FILE *stream ) );
#endif
-#if defined(ultrix)
-char * crypt args( ( const char *key, const char *salt ) );
-#endif
-
/*
@@ -2431,8 +2416,10 @@
* Turn on NOCRYPT to keep passwords in plain text.
*/
-#if defined(NOCRYPT)
-#define crypt(s1, s2) (s1)
+#if defined(NOCRYPT) || !defined(HAVE_CRYPT)
+#define CRYPT(a,b) (a)
+#else
+#define CRYPT(a,b) ((char *) crypt((a),(b)))
#endif
@@ -2467,8 +2454,8 @@
#define NULL_FILE "/dev/null" /* To reserve one stream */
#endif
+#define AREA_LIST "area.lst"
#define DATA_DIR "../data/"
-#define AREA_LIST "area.lst" /* List of areas */
#define IDEA_FILE "../log/ideas.txt" /* idea logs */
#define BUG_FILE "../log/bugs.txt" /* For 'bug' and bug() */
#define TYPO_FILE "../log/typos.txt" /* For 'typo' */
@@ -2476,13 +2463,16 @@
#define BAN_FILE DATA_DIR "ban.txt"
#define MUSIC_FILE DATA_DIR "music.txt"
#define SOCIAL_FILE DATA_DIR "social.txt"
+#define PMUSIC_FILE DATA_DIR "pmusic.txt" // Pueblo Music stuff..
#define WIZ_FILE DATA_DIR "wizlist.txt"
#define RACE_FILE DATA_DIR "races.txt"
+#define PLR_INDEX_FILE DATA_DIR "pfiles.txt"
/*
* Our function prototypes.
* One big lump ... this is every function in Merc.
*/
+#define PMD PMUSIC_DATA
#define SD SOCIAL_DATA
#define CD CHAR_DATA
#define MID MOB_INDEX_DATA
@@ -2729,6 +2719,7 @@
CD * get_char_world args( (CHAR_DATA *ch, char *argument) );
CD * get_pc_world args( (CHAR_DATA *ch, char *argument) );
SD * get_social_data args( (char *argument) );
+PMD * get_pmusic_data args( (char *argument) );
OD * get_obj_list_type args( (int type, OBJ_DATA *list) );
OD * get_obj_type args( (OBJ_INDEX_DATA *pObjIndexData) );
OD * get_obj_list args( (CHAR_DATA *ch, char *argument,
@@ -2847,6 +2838,10 @@
void load_social_table();
void save_social_table();
+/* pedit.cpp */
+void load_pmusic_table();
+void save_pmusic_table();
+
/* olc.c */
bool run_olc_editor args( ( DESCRIPTOR_DATA *d ) );
char *olc_ed_name args( ( CHAR_DATA *ch ) );
@@ -2863,6 +2858,7 @@
int item_lookup args( ( const char *name ) );
int liq_lookup args( ( const char *name ) );
+#undef PMD
#undef SD
#undef CD
#undef MID
diff -u rogue24b3/src/olc.cpp rogue24b4/src/olc.cpp
--- rogue24b3/src/olc.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/olc.cpp Sat Jul 14 15:27:36 2001
@@ -23,6 +23,7 @@
*/
AREA_DATA *get_area_data args( ( int vnum ) );
bool SOCIAL_CHANGED = FALSE;
+bool PMUSIC_CHANGED = FALSE;
/* Executed from comm.c. Minimizes compiling when changes are made. */
bool run_olc_editor( DESCRIPTOR_DATA *d )
@@ -53,6 +54,9 @@
case ED_SOCIAL:
sedit( d->character, d->incomm );
break;
+ case ED_PMUSIC:
+ pedit( d->character, d->incomm );
+ break;
default:
return FALSE;
}
@@ -92,6 +96,9 @@
case ED_SOCIAL:
sprintf( buf, "SEdit" );
break;
+ case ED_PMUSIC:
+ sprintf( buf, "PEdit" );
+ break;
default:
sprintf( buf, " " );
break;
@@ -106,6 +113,12 @@
buf[0] = '\0';
switch (ch->desc->editor)
{
+ case ED_PMUSIC: {
+ PMUSIC_DATA *pMusic;
+ pMusic = (PMUSIC_DATA *)ch->desc->pEdit;
+ sprintf(buf, "%s", pMusic->name);
+ break;
+ }
case ED_SOCIAL: {
SOCIAL_DATA *pSocial;
pSocial = (SOCIAL_DATA *)ch->desc->pEdit;
@@ -154,11 +167,6 @@
sprintf(buf, "%s", pMprog->name);
break;
}
- case ED_RACE: {
- RACE_DATA *pRace = (RACE_DATA *)ch->desc->pEdit;
- sprintf(buf, "%s", pRace->name);
- break;
- }
default:
sprintf(buf, "ERROR");
break;
@@ -173,6 +181,12 @@
buf[0] = '\0';
switch (ch->desc->editor)
{
+ case ED_PMUSIC: {
+ PMUSIC_DATA *pMusic;
+ pMusic = (PMUSIC_DATA *)ch->desc->pEdit;
+ sprintf(buf, "%d", pmusic_lookup(pMusic->name));
+ break;
+ }
case ED_SOCIAL: {
SOCIAL_DATA *pSocial;
pSocial = (SOCIAL_DATA *)ch->desc->pEdit;
@@ -221,11 +235,6 @@
sprintf(buf, "%d", pMprog ? pMprog->vnum : 0);
break;
}
- case ED_RACE: {
- RACE_DATA *pRace = (RACE_DATA *)ch->desc->pEdit;
- sprintf(buf, "%d", race_lookup(pRace->name));
- break;
- }
default:
sprintf(buf, " ");
break;
@@ -300,6 +309,9 @@
case ED_SOCIAL:
show_olc_cmds( ch, sedit_table );
break;
+ case ED_PMUSIC:
+ show_olc_cmds( ch, pedit_table );
+ break;
}
return FALSE;
@@ -474,6 +486,20 @@
{ NULL, 0, }
};
+// PMusic stuff...
+const struct olc_cmd_type pedit_table[] =
+{
+ { "commands", show_commands },
+ { "create", pedit_create },
+ { "delete", pedit_delete },
+ { "file", pedit_file },
+ { "name", pedit_name },
+ { "url", pedit_locurl },
+ { "show", pedit_show },
+ { "?", show_help },
+ { NULL, 0 }
+};
+
/* Social Editor - Mendanbar */
const struct olc_cmd_type sedit_table[] =
{
@@ -853,6 +879,42 @@
return;
}
+/* PMusic Editor - Mendanbar */
+void pedit(CHAR_DATA *ch, char *argument)
+{
+ int cmd = 0;
+ char arg[MAX_INPUT_LENGTH], command[MAX_INPUT_LENGTH];
+
+ smash_tilde(argument);
+ strcpy(arg, argument);
+ argument = one_argument(argument, command);
+
+ if (!STF_FLAGGED(ch, STAFF_PMUSIC)) {
+ ch->Send("PEdit: Insufficient security to modify pueblo music.\n\r");
+ edit_done(ch);
+ }
+
+ if (!str_cmp(command, "done")) {
+ edit_done(ch);
+ return;
+ }
+
+ if (!*command) {
+ pedit_show(ch, argument);
+ return;
+ }
+
+ for (cmd = 0; pedit_table[cmd].name != NULL; cmd++) {
+ if (!str_prefix(command, pedit_table[cmd].name)) {
+ if ((*pedit_table[cmd].olc_fun) (ch, argument))
+ PMUSIC_CHANGED = TRUE;
+ return;
+ }
+ }
+ interpret(ch, arg);
+ return;
+}
+
/* Social Editor - Mendanbar */
void sedit(CHAR_DATA *ch, char *argument)
{
@@ -944,6 +1006,7 @@
{ "mpcode", do_mpedit },
{ "help", do_hedit },
{ "social", do_sedit },
+ { "pmusic", do_pedit },
{ NULL, 0, }
};
@@ -1164,6 +1227,10 @@
strcat(buf, " - Socials\n\r");
count++;
}
+ if (PMUSIC_CHANGED) {
+ strcat(buf, " - Pueblo Music\n\r");
+ count++;
+ }
if (!count)
send_to_char("The database is up to date.\r\n", ch);
else {
@@ -1179,6 +1246,11 @@
char arg1[MAX_INPUT_LENGTH];
char arg2[MAX_INPUT_LENGTH];
+ if (!STF_FLAGGED(ch, STAFF_OLCADMIN)) {
+ ch->Send("You do not have permission to use olc delete.\n\r");
+ return;
+ }
+
argument = one_argument(argument, arg1);
argument = one_argument(argument, arg2);
@@ -1612,6 +1684,67 @@
}
send_to_char( "MEdit: There is no default mobile to edit.\n\r", ch );
+ return;
+}
+
+/* PMusic Editor - Mendanbar */
+ACMD(do_pedit) {
+ PMUSIC_DATA *pMusic;
+ char arg1[MAX_INPUT_LENGTH];
+
+ argument = one_argument(argument, arg1);
+
+ if (IS_NPC(ch))
+ return;
+
+ if (!STF_FLAGGED(ch, STAFF_PMUSIC)) {
+ ch->Send("Insuficient security to edit socials.\n\r");
+ return;
+ }
+
+ if (!str_cmp(arg1, "show")) {
+ if (argument[0] == '\0') {
+ ch->Send("Syntax: pedit show [song]\n\r");
+ return;
+ }
+ pedit_show(ch, argument);
+ return;
+ }
+
+ if (!str_cmp(arg1, "create")) {
+ if (!*argument) {
+ ch->Send("Syntax: pedit create [song]\n\r");
+ return;
+ }
+ if (pedit_create(ch, argument)) {
+ PMUSIC_CHANGED = TRUE;
+ ch->desc->editor = ED_PMUSIC;
+ }
+ return;
+ }
+
+ if (!str_cmp(arg1, "delete")) {
+ if (!*argument) {
+ ch->Send("Syntax: pedit delete [song]\n\r");
+ return;
+ }
+ if (pedit_delete(ch, argument))
+ PMUSIC_CHANGED = TRUE;
+ return;
+ }
+
+ if ((pMusic = get_pmusic_data(arg1)) != NULL) {
+ ch->desc->pEdit = (void *)pMusic;
+ ch->desc->editor= ED_PMUSIC;
+ return;
+ }
+
+ if (pMusic == NULL && arg1[0] != '\0') {
+ ch->Send("That song does not exist!\n\r");
+ return;
+ }
+
+ ch->Send("PEdit: There is no default song to edit.\n\r");
return;
}
diff -u rogue24b3/src/olc.h rogue24b4/src/olc.h
--- rogue24b3/src/olc.h Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/olc.h Sat Jul 14 15:27:36 2001
@@ -48,7 +48,9 @@
DECLARE_SPELL_FUN( spell_null );
-int social_lookup (const char *name);
+int social_lookup (const char *name);
+int social_lookup_sh (const char *name);
+int pmusic_lookup (const char *name);
/*
* Connected states for editor.
@@ -62,7 +64,7 @@
#define ED_HELP 6
#define ED_GUILD 7
#define ED_SOCIAL 8
-#define ED_RACE 9
+#define ED_PMUSIC 9
/*
* Interpreter Prototypes
@@ -75,6 +77,7 @@
void mpedit args( ( CHAR_DATA *ch, char *argument ) );
void hedit args( ( CHAR_DATA *ch, char *argument ) );
void sedit args( ( CHAR_DATA *ch, char *argument ) );
+void pedit args( ( CHAR_DATA *ch, char *argument ) );
/*
* OLC Constants
@@ -130,6 +133,7 @@
extern const struct olc_cmd_type hedit_table[];
extern const struct olc_cmd_type sedit_table[];
extern const struct olc_cmd_type mpedit_table[];
+extern const struct olc_cmd_type pedit_table[];
/*
* Editor Commands.
@@ -142,6 +146,7 @@
DECLARE_DO_FUN( do_mpedit );
DECLARE_DO_FUN( do_hedit );
DECLARE_DO_FUN( do_sedit );
+DECLARE_DO_FUN( do_pedit );
/*
@@ -304,6 +309,14 @@
DECLARE_OLC_FUN( hedit_delete );
DECLARE_OLC_FUN( hedit_copy );
+/* PMusic Editor - Mendanbar */
+DECLARE_OLC_FUN( pedit_show );
+DECLARE_OLC_FUN( pedit_create );
+DECLARE_OLC_FUN( pedit_delete );
+DECLARE_OLC_FUN( pedit_file );
+DECLARE_OLC_FUN( pedit_name );
+DECLARE_OLC_FUN( pedit_locurl );
+
/* Social Editor - Mendanbar */
DECLARE_OLC_FUN( sedit_show );
DECLARE_OLC_FUN( sedit_create );
@@ -329,6 +342,7 @@
#define EDIT_HELP(ch, Help) (Help = (HELP_DATA *)ch->desc->pEdit)
#define EDIT_SOCIAL(ch, iSoc) (iSoc = (SOCIAL_DATA *)ch->desc->pEdit)
#define EDIT_GUILD(ch, Clan) (Clan = (CLAN_DATA *)ch->desc->pEdit)
+#define EDIT_PMUSIC(ch, pMus) (pMus = (PMUSIC_DATA *)ch->desc->pEdit)
/*
* Prototypes
diff -u rogue24b3/src/olc_act.cpp rogue24b4/src/olc_act.cpp
--- rogue24b3/src/olc_act.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/olc_act.cpp Sat Jul 14 15:27:36 2001
@@ -29,6 +29,7 @@
#define HEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
#define GEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
#define SEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
+#define PEDIT( fun ) bool fun( CHAR_DATA *ch, char *argument )
struct olc_help_type
{
@@ -5229,6 +5230,160 @@
return TRUE;
}
+#define ISNULL(str) (*(str) ? (str) : "<NULL>")
+
+PEDIT(pedit_show)
+{
+ PMUSIC_DATA *pMusic;
+ char arg[MAX_STRING_LENGTH];
+
+ argument = one_argument(argument, arg);
+
+ if (!*arg)
+ EDIT_PMUSIC(ch, pMusic);
+ else
+ pMusic = get_pmusic_data(arg);
+
+ if (pMusic == NULL) {
+ ch->Send("That song does not exist.\n\r");
+ return FALSE;
+ }
+
+ ch->Send(
+#if defined(CLEAR_SCREEN)
+ "\x1B[H\x1B[J"
+#endif
+ "Name : %s\n\r"
+ "File Name : %s\n\r"
+ "Location : %s\n\r",
+ ISNULL(pMusic->name),
+ ISNULL(pMusic->fname),
+ ISNULL(pMusic->locurl));
+
+ return TRUE;
+}
+
+PEDIT(pedit_delete)
+{
+ int i, j;
+ PMUSIC_DATA *pMusic;
+ PMUSIC_DATA *new_table = (PMUSIC_DATA *)malloc(sizeof(struct pmusic_type) * maxPSong);
+
+ if (!new_table) {
+ ch->Send("Memory allocation failed. Brace for impact...\n\r");
+ return FALSE;
+ }
+
+ if (*argument)
+ EDIT_PMUSIC(ch, pMusic);
+ else
+ pMusic = get_pmusic_data(argument);
+
+ if (pMusic == NULL) {
+ ch->Send("No such song exists.\n\r");
+ return FALSE;
+ }
+
+ for (i=0, j=0; i < maxPSong; i++) {
+ if (&pmusic_table[i] != pMusic) {
+ new_table[j] = pmusic_table[i];
+ j++;
+ }
+ }
+
+ free(pmusic_table);
+ pmusic_table = new_table;
+ maxPSong--;
+ ch->desc->pEdit = NULL;
+ ch->desc->editor = 0;
+ ch->Send("Song deleted.\n\r");
+ return TRUE;
+}
+
+PEDIT(pedit_create)
+{
+ int iMusic;
+ PMUSIC_DATA *pMusic;
+ char arg[MAX_INPUT_LENGTH];
+ struct pmusic_type *new_table;
+
+ argument = one_argument(argument, arg);
+
+ if (!*arg) {
+ ch->Send("Syntax: pedit create [song]\n\r");
+ return FALSE;
+ }
+ if ((iMusic = pmusic_lookup(arg)) != -1) {
+ ch->Send("A song with that name already exists.\n\r");
+ return FALSE;
+ }
+ maxPSong++;
+ new_table = (PMUSIC_DATA *)realloc(pmusic_table, sizeof(struct pmusic_type) * (maxPSong+1));
+
+ if (!new_table) {
+ ch->Send("Memory allocation failed. Brace for impact...\n\r");
+ return FALSE;
+ }
+
+ pmusic_table = new_table;
+ pmusic_table[maxPSong].name = str_dup("");
+ pmusic_table[maxPSong-1].name = str_dup(arg);
+ pmusic_table[maxPSong-1].fname = str_dup("");
+ pmusic_table[maxPSong-1].locurl = str_dup("");
+
+ pMusic = get_pmusic_data(arg);
+ ch->desc->pEdit = (void *)pMusic;
+ ch->Send("Song created.\n\r");
+ return TRUE;
+}
+
+PEDIT(pedit_name)
+{
+ PMUSIC_DATA *pMusic;
+ EDIT_PMUSIC(ch, pMusic);
+
+ if (pMusic == NULL) {
+ ch->Send("No song to edit.\n\r");
+ return FALSE;
+ }
+
+ free_string(pMusic->name);
+ pMusic->name = str_dup(argument);
+ ch->Send("Name changed.\n\r");
+ return TRUE;
+}
+
+PEDIT(pedit_file)
+{
+ PMUSIC_DATA *pMusic;
+ EDIT_PMUSIC(ch, pMusic);
+
+ if (pMusic == NULL) {
+ ch->Send("No song to edit.\n\r");
+ return FALSE;
+ }
+ free_string(pMusic->fname);
+ pMusic->fname = str_dup(argument);
+ ch->Send("File name changed.\n\r");
+ return TRUE;
+}
+
+PEDIT(pedit_locurl)
+{
+ PMUSIC_DATA *pMusic;
+ EDIT_PMUSIC(ch, pMusic);
+
+ if (pMusic == NULL) {
+ ch->Send("No song to edit.\n\r");
+ return FALSE;
+ }
+
+ free_string(pMusic->locurl);
+ pMusic->locurl = str_dup(argument);
+ ch->Send("Location changed.\n\r");
+ return TRUE;
+}
+
SEDIT(sedit_show)
{
SOCIAL_DATA *pSocial;
@@ -5243,7 +5398,7 @@
send_to_char("That social does not exist.\n\r", ch);
return FALSE;
}
- #define ISNULL(str) (*(str) ? (str) : "<NULL>")
+
ch->Send(
#if defined(CLEAR_SCREEN)
"\x1B[H\x1B[J"
diff -u rogue24b3/src/olc_save.cpp rogue24b4/src/olc_save.cpp
--- rogue24b3/src/olc_save.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/olc_save.cpp Sat Jul 14 15:27:36 2001
@@ -26,6 +26,7 @@
#define DIF(a,b) (~((~a)|(b)))
extern bool SOCIAL_CHANGED;
+extern bool PMUSIC_CHANGED;
/*
* Verbose writes reset data in plain english into the comments
@@ -1225,6 +1226,14 @@
save_social_table();
SOCIAL_CHANGED = FALSE;
send_to_char("Socials Saved.\n\r", ch);
+ return;
+ }
+
+ if (!str_prefix(arg1, "pmusic"))
+ {
+ save_pmusic_table();
+ PMUSIC_CHANGED = FALSE;
+ ch->Send("Songs Saved.\n\r");
return;
}
Only in rogue24b4/src/: pedit.cpp
diff -u rogue24b3/src/pueblo.cpp rogue24b4/src/pueblo.cpp
--- rogue24b3/src/pueblo.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/pueblo.cpp Sat Jul 14 15:27:36 2001
@@ -10,70 +10,46 @@
\***************************************************************************/
#include "merc.h"
+#include "db.h"
#include "interp.h"
#include "recycle.h"
#include "tables.h"
#include "pueblo.h"
ACMD(do_pmusic) {
- char arg[MSL];
- char buf[MSL];
int i, x;
+ char arg[MAX_STRING_LENGTH];
- const char *def_music[][2] = {
- { "FF2 World", "ff2world.mid" },
- { "FF3 Main", "ff3main.mid" },
- { "FF3 World", "ff3wld.mid" },
- { "DragonLance", "dragonl.mid" },
- { "FF2 Cecil", "ff2cecil.mid" },
- { "Organ Theme", "organ.mid" },
- { "FF5 Theme", "ff5theme.mid" },
- { "Aeris Theme", "aeris.mid" },
- { "Sephiroth", "sephiroth.mid" },
- { "FF7 World", "ff7world.mid" },
- { "FF7 Ancients", "ancients.mid" },
- { "Heroic Song", "heroic.mid" },
- { "Crystal Prelude", "prelude.mid" },
- { "FF8 Landing", "landing.mid" },
- { "FF8 Find your Way", "findyourway.mid"},
- { "\n", "\n"}
- };
-
- argument = one_argument(argument, arg);
-
- if (IS_NPC(ch) || (!IS_SET(ch->act,PLR_PUEBLO) &&
- !IS_SET(ch->act, PLR_MSP))) {
- send_to_char("Huh?\n\r",ch);
- }
- else if (!arg || !*arg) {
- send_to_char("The following pre-set music is availible...\n\r",ch);
- for (i = 0; *def_music[i][0] != '\n'; i++) {
- sprintf(buf," %2d. %-25s `y%s`n\r\n",i,def_music[i][0],
- IS_STAFF(ch) ? def_music[i][1] : "");
- send_to_char(buf,ch);
- }
- send_to_char( "\r\nUsage: pmusic <number>\r\n", ch);
- } else if (!isdigit(*arg))
- send_to_char( "Usage: pmusic <number>\r\n"
- "Type \"pmusic\" without arguments for a list of pre-set music.\r\n",ch);
+ argument = one_argument(argument, arg);
+
+ if (!PLR_FLAGGED(ch, PLR_PUEBLO) && !PLR_FLAGGED(ch, PLR_MSP)) {
+ ch->Send("You do not have Pueblo or MSP enabled.\n\r");
+ return;
+ }
+
+ if (!arg || !*arg) {
+ ch->Send("The following pre-set music is availible...\n\r");
+
+ for (i = 0; i < maxPSong; i++)
+ ch->Send(" %3d. %-25s `y%s`n\n\r", i+1, pmusic_table[i].name,
+ IS_STAFF(ch) ? pmusic_table[i].fname : "");
+
+ ch->Send("\n\rUsage: pmusic <number>\n\r");
+ } else if (!isdigit(*arg)) {
+ ch->Send("Usage: pmusic <number>\n\r"
+ "Type 'pmusic' without an argument for a list of songs.\n\r");
+ } else {
+ if ((i = (atoi(arg)-1)) < 0)
+ ch->Send("The number cannot be negative.\n\r");
else {
- i = atoi(arg);
- if (i < 0) {
- send_to_char("The number cannot be negative.\r\n", ch);
- } else {
- for (x = 0; *def_music[x][0] != '\n'; x++);
-
- if (i >= x) {
- // Subtract 1 to account for the NULL line...
- sprintf(buf,"The range for the pmusic number is 0-%d.\r\n", x-1);
- send_to_char(buf,ch);
- } else {
- sprintf(buf,"Activating Music: %s, Infinate Loop...\n\r",def_music[i][0]);
- send_to_char(buf,ch);
- music_to_char(ch, def_music[i][1]);
- }
- }
- }
+ if (i >= maxPSong)
+ ch->Send("The range for the pmusic number is 1-%d.\n\r", maxPSong);
+ else {
+ ch->Send("Activating Music: %s, Infinite Loop...\n\r", pmusic_table[i].name);
+ music_to_char(ch, pmusic_table[i].fname);
+ }
+ }
+ }
}
ACMD(do_pstop) {
diff -u rogue24b3/src/pueblo.h rogue24b4/src/pueblo.h
--- rogue24b3/src/pueblo.h Sun Jun 24 14:26:50 2001
+++ rogue24b4/src/pueblo.h Sat Jul 14 15:27:36 2001
@@ -10,7 +10,7 @@
\***************************************************************************/
// HTTP for Pueblo enhancments.
-#define PUEBLO_DIR "http://.../pueblo/"
+#define PUEBLO_DIR "http://www.geocities.com/rogue_mud/pueblo/"
#define PUEBLO_START "ff3main.mid" // Start Midi
#define PUEBLO_S_IMG "rog.gif" // Start Image
#define PUEBLO_V_TEST "vtest.wav" // Volume Test Sound
diff -u rogue24b3/src/quest.cpp rogue24b4/src/quest.cpp
--- rogue24b3/src/quest.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/quest.cpp Sat Jul 14 15:27:36 2001
@@ -42,22 +42,22 @@
void do_tell_quest( CHAR_DATA *ch, CHAR_DATA *victim, char *argument);
/* Object vnums for Quest Rewards */
-#define QUEST_ITEM1 18
-#define QUEST_ITEM2 18
-#define QUEST_ITEM3 18
-#define QUEST_ITEM4 18
-#define QUEST_ITEM5 18
+#define QUEST_ITEM1 1001
+#define QUEST_ITEM2 1001
+#define QUEST_ITEM3 1001
+#define QUEST_ITEM4 1001
+#define QUEST_ITEM5 1001
/* Object vnums for object quest 'tokens'. In Moongate, the tokens are
things like 'the Shield of Moongate', 'the Sceptre of Moongate'. These
items are worthless and have the rot-death flag, as they are placed
into the world when a player receives an object quest. */
-#define QUEST_OBJQUEST1 6
-#define QUEST_OBJQUEST2 6
-#define QUEST_OBJQUEST3 6
-#define QUEST_OBJQUEST4 6
-#define QUEST_OBJQUEST5 6
+#define QUEST_OBJQUEST1 8
+#define QUEST_OBJQUEST2 8
+#define QUEST_OBJQUEST3 8
+#define QUEST_OBJQUEST4 8
+#define QUEST_OBJQUEST5 8
/* Local functions */
void generate_quest args(( CHAR_DATA *ch, CHAR_DATA *questman ));
diff -u rogue24b3/src/save.cpp rogue24b4/src/save.cpp
--- rogue24b3/src/save.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/save.cpp Sat Jul 14 15:27:36 2001
@@ -99,10 +99,16 @@
char strsave[MAX_INPUT_LENGTH];
FILE *fp;
- if ( IS_NPC(ch) )
+ if (IS_NPC(ch))
+ return;
+
+ if (!IS_VALID(ch)) {
+ mudlogf(BRF, LVL_STAFF, TRUE,
+ "save_char_obj: Trying to save invalidated character %s.", RealName(ch));
return;
+ }
- if ( ch->desc != NULL && ch->desc->original != NULL )
+ if (ch->desc != NULL && ch->desc->original != NULL)
ch = ch->desc->original;
#if defined(unix)
@@ -147,20 +153,20 @@
return;
}
-void save_crash(CHAR_DATA *ch)
-{
+void save_crash(CHAR_DATA *ch) {
if (IS_NPC(ch))
return;
if (is_exact_name(ch->name, IMP_NAME) && (ch->level != MAX_LEVEL)) {
- ch->level = MAX_LEVEL;
- ch->pcdata->security = 9;
- ch->staff_level = CAT_CODER;
- update_wizlist(ch, ch->level);
- SET_BIT(STF_FLAGS(ch), 0xFFFFFFFF);
- SET_BIT(PLR_FLAGS(ch), PLR_LOADROOM);
- GET_LOADROOM(ch) = 1210;
- }
+ ch->level = MAX_LEVEL;
+ ch->pcdata->security = 9;
+ ch->staff_level = CAT_CODER;
+ update_wizlist(ch, ch->level);
+ SET_BIT(STF_FLAGS(ch), 0xFFFFFFFF);
+ ch->exp = exp_per_level(ch,ch->pcdata->points) * ch->level;
+ SET_BIT(PLR_FLAGS(ch), PLR_LOADROOM | PLR_NOHASSLE | PLR_HOLYLIGHT);
+ GET_LOADROOM(ch) = 1210;
+ }
}
/*
@@ -965,14 +971,13 @@
KEY( "Class", ch->Class, fread_number( fp ) );
KEY( "Cla", ch->Class, fread_number( fp ) );
KEY( "CName", ch->cname, fread_string( fp ) );
- if ( !str_cmp( word, "Clan" ) )
- {
- char *tmp = fread_string(fp);
- ch->clan = clan_lookup(tmp);
- free_string(tmp);
- fMatch = TRUE;
- break;
- }
+ if (!str_cmp(word, "Clan")) {
+ char *tmp = fread_string(fp);
+ ch->clan = clan_lookup(tmp);
+ free_string(tmp);
+ fMatch = TRUE;
+ break;
+ }
if ( !str_cmp( word, "Condition" ) || !str_cmp(word,"Cond"))
{
ch->pcdata->condition[0] = fread_number( fp );
@@ -1135,8 +1140,8 @@
fMatch = TRUE;
break;
}
- KEYS( "Prompt", ch->prompt, fread_string( fp ) );
- KEY( "Prom", ch->prompt, fread_string( fp ) );
+ KEYS( "Prompt", ch->prompt, fread_string( fp ) );
+ KEYS( "Prom", ch->prompt, fread_string( fp ) );
break;
case 'Q':
@@ -1145,8 +1150,7 @@
break;
case 'R':
- if ( !str_cmp( word, "Race" ) )
- {
+ if (!str_cmp(word, "Race")) {
char *tmp = fread_string(fp);
ch->race = race_lookup(tmp);
free_string(tmp);
@@ -2032,17 +2036,20 @@
"Mobile Kills: %6d. Mobile Deaths: %6d.\r\n",
dash, f_pk, f_pd, f_mk, f_md);
- if (!IS_IMMORTAL(ch))
- f_host = "###.###.###.###";
+ ch->Send(dash);
- ch->Send("%s"
- "Last: %-45.45s On: %s\r\n",
- dash, f_host[0] != '\0' ? f_host : "###.###.###.###",
- f_lasttime[0] != '\0' ? f_lasttime : "### ### ## ##:##:## ####");
+ if (IS_IMMORTAL(ch)) {
+ ch->Send("Host: %s\n\r",
+ f_host[0] != '\0' ? f_host : "###.###.###.###");
+ }
+
+ ch->Send("Last: %s\n\r",
+ f_lasttime[0] != '\0' ? f_lasttime : "### ### ## ##:##:## ####");
if (offline)
ch->Send(
"That was %d days, %d hours, %d minutes and %d seconds ago.\n\r",
d, h, m, s);
+
send_to_char(dash, ch);
}
diff -u rogue24b3/src/sedit.cpp rogue24b4/src/sedit.cpp
--- rogue24b3/src/sedit.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/sedit.cpp Sat Jul 14 15:27:36 2001
@@ -120,3 +120,12 @@
return i;
return -1;
}
+
+int social_lookup_sh(const char *name)
+{
+ int i;
+ for (i = 0; i < maxSocial; i++)
+ if (!str_prefix(name, social_table[i].name))
+ return i;
+ return -1;
+}
diff -u rogue24b3/src/skills.cpp rogue24b4/src/skills.cpp
--- rogue24b3/src/skills.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/skills.cpp Sat Jul 14 15:27:37 2001
@@ -1116,31 +1116,29 @@
char buf[MAX_STRING_LENGTH];
sh_int modsex=0;
- argument = one_argument( argument, arg );
+ argument = one_argument(argument, arg);
- if (IS_NPC(ch)) return;
- if (arg[0] == '\0' )
- {
- send_to_char( "Change to look like whom?\n\r", ch );
+ if (IS_NPC(ch))
+ return;
+
+ if (arg[0] == '\0') {
+ send_to_char("Change to look like whom?\n\r", ch);
return;
}
- if (( victim = get_char_room( ch, arg ) ) == NULL )
- {
- send_to_char( "They aren't here.\n\r", ch );
+ if ((victim = get_char_room(ch, arg)) == NULL) {
+ send_to_char("They aren't here.\n\r", ch);
return;
}
- if ((!IS_IMMORTAL(ch) && IS_IMMORTAL(victim) && victim != ch) &&
- victim->level >= ch->level)
- {
- send_to_char( "You cannot disguise yourself as them.\n\r", ch );
+ if (IS_IMMORTAL(victim)) {
+ send_to_char("You cannot disguise yourself as staff.\n\r", ch);
return;
}
- if (number_percent() >= 20 + get_skill(ch,gsn_shapeshift) * 4/5)
- {
+
+ if (number_percent() >= 20 + get_skill(ch,gsn_shapeshift) * 4/5) {
check_improve(ch,gsn_shapeshift,FALSE,2);
- send_to_char( "You failed!\n\r", ch );
+ send_to_char("You failed!\n\r", ch);
if (!IS_IMMORTAL(ch))
WAIT_STATE(ch, 4);
return;
@@ -1161,8 +1159,8 @@
act("Your features twist and distort until you look like $n.",ch,NULL,NULL,TO_CHAR);
free_string( ch->long_descr );
ch->long_descr = str_dup( "" );
- if (!IS_IMMORTAL(ch))
- WAIT_STATE( ch, 2 * PULSE_VIOLENCE );
+ if (!IS_IMMORTAL(ch))
+ WAIT_STATE( ch, 2 * PULSE_VIOLENCE );
return;
}
@@ -1171,12 +1169,12 @@
act("$n's features twist and distort until $e looks like $N.",ch,NULL,victim,TO_NOTVICT);
affect_strip( ch, gsn_shapeshift );
// Ugly modifier for sex differences to work with affect...
- if (ch->sex == victim->sex) modsex=0;
- else if ((ch->sex == 2) && (victim->sex == 0)) modsex=-2;
- else if ((ch->sex == 1) && (victim->sex == 0)) modsex=-1;
- else if ((ch->sex == 2) && (victim->sex == 1)) modsex=-1;
- else if ((ch->sex == 0) && (victim->sex == 2)) modsex= 2;
- else modsex=1;
+ if (ch->sex == victim->sex) modsex= 0;
+ else if ((ch->sex == 2) && (victim->sex == 0)) modsex=-2;
+ else if ((ch->sex == 1) && (victim->sex == 0)) modsex=-1;
+ else if ((ch->sex == 2) && (victim->sex == 1)) modsex=-1;
+ else if ((ch->sex == 0) && (victim->sex == 2)) modsex= 2;
+ else modsex= 1;
af.where = TO_AFFECTS;
af.type = gsn_shapeshift;
af.level = ch->level;
Only in rogue24b4/src/: space.cpp
Only in rogue24b4/src/: space.h
diff -u rogue24b3/src/staffcmds.h rogue24b4/src/staffcmds.h
--- rogue24b3/src/staffcmds.h Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/staffcmds.h Sat Jul 14 15:27:37 2001
@@ -26,6 +26,7 @@
#define STAFF_CODER (1 << 12)
#define STAFF_ASSOCIATE (1 << 13)
#define STAFF_TRAINEE (1 << 14)
+#define STAFF_PMUSIC (1 << 15)
#define STAFF_LASTBIT (1 << 31) // 31 is the 32nd bit ;P
// Add more up to 32. IF you need 32 groups.
diff -u rogue24b3/src/string.cpp rogue24b4/src/string.cpp
--- rogue24b3/src/string.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/string.cpp Sat Jul 14 15:27:36 2001
@@ -89,13 +89,14 @@
return str_dup( xbuf );
}
-#define PARSE_REPLACE 0
-#define PARSE_HELP 1
-#define PARSE_DELETE 2
-#define PARSE_INSERT 3
-#define PARSE_EDIT 4
+#define PARSE_FORMAT 0
+#define PARSE_REPLACE 1
+#define PARSE_HELP 2
+#define PARSE_DELETE 3
+#define PARSE_INSERT 4
#define PARSE_LIST_NORM 5
#define PARSE_LIST_NUM 6
+#define PARSE_EDIT 7
void parse_action(int command, char *string, CHAR_DATA *ch)
{
@@ -103,18 +104,25 @@
switch (command) {
case PARSE_HELP:
- send_to_char("Edit help (commands on blank line):\n\r", ch);
- send_to_char("/r 'old' 'new' - replace a substring\n\r", ch);
- send_to_char(" (requires '', \"\")\n\r", ch);
- send_to_char("/h - get help (this info)\n\r", ch);
- send_to_char("/l - show string so far\n\r", ch);
- send_to_char("/n - show numbered string so far\n\r", ch);
- send_to_char("/f - (word wrap) string\n\r", ch);
- send_to_char("/c - clear string so far\n\r", ch);
- send_to_char("/d# - delete line number <num>\n\r", ch);
- send_to_char("/i# <str> - insert <str> on line <num>\n\r", ch);
- send_to_char("/e# <str> - replace line <num> with <str>\n\r", ch);
- send_to_char("/s - end string\n\r", ch);
+ ch->Send(
+ "Edit help (commands on blank line):\n\r"
+ "/h - get help (this info)\n\r"
+ "/l - show string so far\n\r"
+ "/n - show numbered string so far\n\r"
+ "/f - formats text\n\r"
+ "/fi - indented formatting of text\n\r"
+ "/c - clear string so far\n\r"
+ "/d# - delete line number <num>\n\r"
+ "/i# <str> - insert <str> on line <num>\n\r"
+ "/e# <str> - replace line <num> with <str>\n\r"
+ "/r 'a' 'b' - replace first occurance of text\n\r"
+ "/ra 'a' 'b' - replace all occurances of text\n\r"
+ " usage: /r[a] 'pattern' 'replacement'\n\r"
+ "/s - end string\n\r");
+ break;
+ case PARSE_FORMAT:
+ *ch->desc->pString = format_string(*ch->desc->pString);
+ ch->Send("String formatted.\n\r");
break;
case PARSE_EDIT:
string = one_argument(string, arg1);
@@ -196,8 +204,7 @@
parse_action(PARSE_REPLACE, actions, ch);
return;
case 'f':
- *ch->desc->pString = format_string(*ch->desc->pString);
- send_to_char("String formatted.\n\r", ch);
+ parse_action(PARSE_FORMAT, actions, ch);
return;
case 'd':
parse_action(PARSE_DELETE, actions, ch);
diff -u rogue24b3/src/sysdep.h rogue24b4/src/sysdep.h
--- rogue24b3/src/sysdep.h Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/sysdep.h Sat Jul 14 15:27:36 2001
@@ -150,7 +150,7 @@
#endif
#ifndef crypt
- char *crypt();
+ char *crypt(const char *key, const char *salt);
#endif
#ifndef fclose
diff -u rogue24b3/src/tables.cpp rogue24b4/src/tables.cpp
--- rogue24b3/src/tables.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/tables.cpp Sat Jul 14 15:27:37 2001
@@ -121,7 +121,7 @@
{ "pueblo", PLR_PUEBLO, FALSE },
{ "permit", PLR_PERMIT, TRUE },
{ "log", PLR_LOG, FALSE },
- { "newbie", PLR_NEWBIE, FALSE },
+ { "UNUSED21", PLR_UNUSED21, FALSE },
{ "freeze", PLR_FREEZE, FALSE },
{ "thief", PLR_THIEF, FALSE },
{ "killer", PLR_KILLER, FALSE },
diff -u rogue24b3/src/webutils.cpp rogue24b4/src/webutils.cpp
--- rogue24b3/src/webutils.cpp Sun Jun 24 14:25:37 2001
+++ rogue24b4/src/webutils.cpp Sat Jul 14 15:27:36 2001
@@ -63,15 +63,19 @@
return TRUE;
}
-void web_update( void ) {
+void web_update( void )
+{
+#if !defined(NOWEBUTILS)
gen_who_html();
+#endif
/* I figure wizlist only needs to be generated
* when the wizlist file is saved. - Mendanbar
- *
+
gen_wiz_html();
mudlogf(NRM, LVL_STAFF, FALSE, "UPDATE: Generating %s file.", WIZ_HTML);
*/
+
return;
}