Added 2003-06-10 CVS patches
This commit is contained in:
parent
9e36096953
commit
14eb6d6656
48
bin/vms_circlemud.com
Normal file
48
bin/vms_circlemud.com
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
$!
|
||||||
|
$! VMS_CIRCLEMUD.COM
|
||||||
|
$! Written By: Robert Alan Byer
|
||||||
|
$! byer@mail.ourservers.net
|
||||||
|
$!
|
||||||
|
$! This command procedure is called from [-]VMS_AUTORUN.COM to run CIRCLE.EXE
|
||||||
|
$! as a standalone detached process.
|
||||||
|
$!
|
||||||
|
$! The CIRCLE.EXE accepts the following parameters.
|
||||||
|
$!
|
||||||
|
$! -m Mini-Mud Mode. Mini-mud will be one of your most powerful
|
||||||
|
$! debugging tools; it causes Circle to boot with an abridged
|
||||||
|
$! world, cutting the boot time down to several seconds. It
|
||||||
|
$! is useful for testing features with are not world-related.
|
||||||
|
$! (i.e. new commands or spells)
|
||||||
|
$!
|
||||||
|
$! -q Quick boot. Prevents checking of times out object files.
|
||||||
|
$! Every time Circle boots, it checks every object file to
|
||||||
|
$! see if it has timed out; if so, it is deleted. This is
|
||||||
|
$! done primarily to save disk space. If time is more important
|
||||||
|
$! to you than disk space, use the -q option. "-q" is
|
||||||
|
$! automatically activated when you use "-m"
|
||||||
|
$!
|
||||||
|
$! -d Data directory. Useful as a debugging and development tool,
|
||||||
|
$! if you want to keep one or more sets of game data in addition
|
||||||
|
$! to the standard set, and choose which set is to be used at
|
||||||
|
$! run-time. Example, you can copy the entire world into a
|
||||||
|
$! seperate directory so you can test additions without
|
||||||
|
$! messing up the existing world files. The default directory
|
||||||
|
$! is "lib". Any core dumps (may they never happen to you!)
|
||||||
|
$! will take place in the selected data directory.
|
||||||
|
$!
|
||||||
|
$! port Port selection. Allows you to choose on which port the
|
||||||
|
$! game is to listen for connections. The default is 4000,
|
||||||
|
$! which is historically the port used by most DikuMUDs.
|
||||||
|
$!
|
||||||
|
$!
|
||||||
|
$! Define The Symbol For CIRCLE.EXE
|
||||||
|
$!
|
||||||
|
$ CIRCLE :== $CIRCLEMUD_ROOT:[BIN]CIRCLE.EXE
|
||||||
|
$!
|
||||||
|
$! Run CircleMUD.
|
||||||
|
$!
|
||||||
|
$ CIRCLE
|
||||||
|
$!
|
||||||
|
$! Time To Exit This Procedure.
|
||||||
|
$!
|
||||||
|
$ EXIT
|
16
bin/vms_circlemud_utils.com
Normal file
16
bin/vms_circlemud_utils.com
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
$!
|
||||||
|
$! VMS_CIRCLEMUD_UTILS.COM
|
||||||
|
$! Written By: Robert Alan Byer
|
||||||
|
$! byer@mail.ourservers.net
|
||||||
|
$!
|
||||||
|
$! Define The CircleMUD Symbols.
|
||||||
|
$!
|
||||||
|
$ DELOBJS :== $CIRCLEMUD_BIN:DELOBJS.EXE
|
||||||
|
$ LISTRENT :== $CIRCLEMUD_BIN:LISTRENT.EXE
|
||||||
|
$ MUDPASSWD :== $CIRCLEMUD_BIN:MUDPASSWD.EXE
|
||||||
|
$ PLAY2TO3 :== $CIRCLEMUD_BIN:PLAY2TO3.EXE
|
||||||
|
$ PURGEPLAY :== $CIRCLEMUD_BIN:PURGEPLAY.EXE
|
||||||
|
$ SHOPCONV :== $CIRCLEMUD_BIN:SHOPCONV.EXE
|
||||||
|
$ SHOWPLAY :== $CIRCLEMUD_BIN:SHOWPLAY.EXE
|
||||||
|
$ SPLIT :== $CIRCLEMUD_BIN:SPLIT.EXE
|
||||||
|
$ WLD2HTML :== $CIRCLEMUD_BIN:WLD2HTML.EXE
|
4253
doc/Changelog-3.0
Normal file
4253
doc/Changelog-3.0
Normal file
File diff suppressed because it is too large
Load Diff
@ -350,7 +350,7 @@ You gently massage $N's shoulders.
|
|||||||
$n massages $N's shoulders.
|
$n massages $N's shoulders.
|
||||||
$n gently massages your shoulders...ahhhhhhhhhh...
|
$n gently massages your shoulders...ahhhhhhhhhh...
|
||||||
You can only massage someone in the same room as you.
|
You can only massage someone in the same room as you.
|
||||||
You practise yoga as you try to massage yourself.
|
You practice yoga as you try to massage yourself.
|
||||||
$n gives a show on yoga-positions, trying to massage $mself.
|
$n gives a show on yoga-positions, trying to massage $mself.
|
||||||
|
|
||||||
moan 0 0
|
moan 0 0
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
Welcome to
|
Welcome to
|
||||||
|
|
||||||
C I R C L E M U D 3 . 0
|
C I R C L E M U D 3 . 1
|
||||||
"We addict players for their own enjoyment."
|
"We addict players for their own enjoyment."
|
||||||
Created by Jeremy Elson (jelson@circlemud.org)
|
Created by Jeremy Elson (jelson@circlemud.org)
|
||||||
|
|
||||||
|
@ -139,7 +139,7 @@ robe froboz~
|
|||||||
Froboz' robe~
|
Froboz' robe~
|
||||||
Froboz' robe has been dropped here.~
|
Froboz' robe has been dropped here.~
|
||||||
~
|
~
|
||||||
11 0 1024
|
11 0 1025
|
||||||
0 0 0 0
|
0 0 0 0
|
||||||
5 15000 2500
|
5 15000 2500
|
||||||
A
|
A
|
||||||
|
@ -249,7 +249,7 @@ A black rod has been left here.~
|
|||||||
20 3 3 22
|
20 3 3 22
|
||||||
4 1200 200
|
4 1200 200
|
||||||
#2528
|
#2528
|
||||||
wand wooden~
|
stick wooden wand~
|
||||||
a wooden stick~
|
a wooden stick~
|
||||||
a wooden stick is here~
|
a wooden stick is here~
|
||||||
~
|
~
|
||||||
|
@ -1205,7 +1205,7 @@ door.
|
|||||||
~
|
~
|
||||||
73 adj 1
|
73 adj 1
|
||||||
D2
|
D2
|
||||||
You can see a picture with some peeple crawling around a huge moon.
|
You can see a picture with some people crawling around a huge moon.
|
||||||
~
|
~
|
||||||
moon door~
|
moon door~
|
||||||
1 -1 7315
|
1 -1 7315
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
all:
|
|
||||||
# You must run "configure" in Circle's top-level directory. See the
|
|
||||||
# README file in that directory for more information.
|
|
@ -100,6 +100,12 @@ void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode)
|
|||||||
{
|
{
|
||||||
if (!obj || !ch) {
|
if (!obj || !ch) {
|
||||||
log("SYSERR: NULL pointer in show_obj_to_char(): obj=%p ch=%p", obj, ch);
|
log("SYSERR: NULL pointer in show_obj_to_char(): obj=%p ch=%p", obj, ch);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* Somehow a NULL pointer was sent to show_obj_to_char() in either the
|
||||||
|
* 'obj' or the 'ch' variable. The error will indicate which was NULL
|
||||||
|
* be listing both of the pointers passed to it. This is often a
|
||||||
|
* difficult one to trace, and may require stepping through a debugger.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -136,6 +142,13 @@ void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
log("SYSERR: Bad display mode (%d) in show_obj_to_char().", mode);
|
log("SYSERR: Bad display mode (%d) in show_obj_to_char().", mode);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* show_obj_to_char() has some predefined 'mode's (argument #3) to tell
|
||||||
|
* it what to display to the character when it is called. If the mode
|
||||||
|
* is not one of these, it will output this error, and indicate what
|
||||||
|
* mode was passed to it. To correct it, you will need to find the
|
||||||
|
* call with the incorrect mode and change it to an acceptable mode.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1289,6 +1302,14 @@ ACMD(do_gen_ps)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log("SYSERR: Unhandled case in do_gen_ps. (%d)", subcmd);
|
log("SYSERR: Unhandled case in do_gen_ps. (%d)", subcmd);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* General page string function for such things as 'credits', 'news',
|
||||||
|
* 'wizlist', 'clear', 'version'. This occurs when a call is made to
|
||||||
|
* this routine that is not one of the predefined calls. To correct
|
||||||
|
* it, either a case needs to be added into the function to account for
|
||||||
|
* the subcmd that is being passed to it, or the call to the function
|
||||||
|
* needs to have the correct subcmd put into place.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -481,6 +481,10 @@ int perform_drop(struct char_data *ch, struct obj_data *obj,
|
|||||||
return (value);
|
return (value);
|
||||||
default:
|
default:
|
||||||
log("SYSERR: Incorrect argument %d passed to perform_drop.", mode);
|
log("SYSERR: Incorrect argument %d passed to perform_drop.", mode);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This error comes from perform_drop() and is output when perform_drop()
|
||||||
|
* is called with an illegal 'mode' argument.
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -748,11 +752,14 @@ void weight_change_object(struct obj_data *obj, int weight)
|
|||||||
obj_to_obj(obj, tmp_obj);
|
obj_to_obj(obj, tmp_obj);
|
||||||
} else {
|
} else {
|
||||||
log("SYSERR: Unknown attempt to subtract weight from an object.");
|
log("SYSERR: Unknown attempt to subtract weight from an object.");
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* weight_change_object() outputs this error when weight is attempted to
|
||||||
|
* be removed from an object that is not carried or in another object.
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void name_from_drinkcon(struct obj_data *obj)
|
void name_from_drinkcon(struct obj_data *obj)
|
||||||
{
|
{
|
||||||
char *new_name, *cur_name, *next;
|
char *new_name, *cur_name, *next;
|
||||||
@ -765,6 +772,11 @@ void name_from_drinkcon(struct obj_data *obj)
|
|||||||
liqname = drinknames[GET_OBJ_VAL(obj, 2)];
|
liqname = drinknames[GET_OBJ_VAL(obj, 2)];
|
||||||
if (!isname(liqname, obj->name)) {
|
if (!isname(liqname, obj->name)) {
|
||||||
log("SYSERR: Can't remove liquid '%s' from '%s' (%d) item.", liqname, obj->name, obj->item_number);
|
log("SYSERR: Can't remove liquid '%s' from '%s' (%d) item.", liqname, obj->name, obj->item_number);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* From name_from_drinkcon(), this error comes about if the object
|
||||||
|
* noted (by keywords and item vnum) does not contain the liquid string
|
||||||
|
* being searched for.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1409,6 +1421,10 @@ void perform_remove(struct char_data *ch, int pos)
|
|||||||
|
|
||||||
if (!(obj = GET_EQ(ch, pos)))
|
if (!(obj = GET_EQ(ch, pos)))
|
||||||
log("SYSERR: perform_remove: bad pos %d passed.", pos);
|
log("SYSERR: perform_remove: bad pos %d passed.", pos);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This error occurs when perform_remove() is passed a bad 'pos'
|
||||||
|
* (location) to remove an object from.
|
||||||
|
*/
|
||||||
else if (OBJ_FLAGGED(obj, ITEM_NODROP))
|
else if (OBJ_FLAGGED(obj, ITEM_NODROP))
|
||||||
act("You can't remove $p, it must be CURSED!", FALSE, ch, obj, 0, TO_CHAR);
|
act("You can't remove $p, it must be CURSED!", FALSE, ch, obj, 0, TO_CHAR);
|
||||||
else if (IS_CARRYING_N(ch) >= CAN_CARRY_N(ch))
|
else if (IS_CARRYING_N(ch) >= CAN_CARRY_N(ch))
|
||||||
|
@ -620,7 +620,7 @@ ACMD(do_rest)
|
|||||||
default:
|
default:
|
||||||
send_to_char(ch, "You stop floating around, and stop to rest your tired bones.\r\n");
|
send_to_char(ch, "You stop floating around, and stop to rest your tired bones.\r\n");
|
||||||
act("$n stops floating around, and rests.", FALSE, ch, 0, 0, TO_ROOM);
|
act("$n stops floating around, and rests.", FALSE, ch, 0, 0, TO_ROOM);
|
||||||
GET_POS(ch) = POS_SITTING;
|
GET_POS(ch) = POS_RESTING;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -657,6 +657,10 @@ ACMD(do_use)
|
|||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
log("SYSERR: Unknown subcmd %d passed to do_use.", subcmd);
|
log("SYSERR: Unknown subcmd %d passed to do_use.", subcmd);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This is the same as the unhandled case in do_gen_ps(), but in the
|
||||||
|
* function which handles 'quaff', 'recite', and 'use'.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -820,6 +824,11 @@ ACMD(do_gen_write)
|
|||||||
|
|
||||||
if (stat(filename, &fbuf) < 0) {
|
if (stat(filename, &fbuf) < 0) {
|
||||||
perror("SYSERR: Can't stat() file");
|
perror("SYSERR: Can't stat() file");
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This is from do_gen_write() and indicates that it cannot call the
|
||||||
|
* stat() system call on the file required. The error string at the
|
||||||
|
* end of the line should explain what the problem is.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (fbuf.st_size >= max_filesize) {
|
if (fbuf.st_size >= max_filesize) {
|
||||||
@ -828,6 +837,12 @@ ACMD(do_gen_write)
|
|||||||
}
|
}
|
||||||
if (!(fl = fopen(filename, "a"))) {
|
if (!(fl = fopen(filename, "a"))) {
|
||||||
perror("SYSERR: do_gen_write");
|
perror("SYSERR: do_gen_write");
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This is from do_gen_write(), and will be output if the file in
|
||||||
|
* question cannot be opened for appending to. The error string
|
||||||
|
* at the end of the line should explain what the problem is.
|
||||||
|
*/
|
||||||
|
|
||||||
send_to_char(ch, "Could not open the file. Sorry.\r\n");
|
send_to_char(ch, "Could not open the file. Sorry.\r\n");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -943,6 +958,10 @@ ACMD(do_gen_tog)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log("SYSERR: Unknown subcmd %d in do_gen_toggle.", subcmd);
|
log("SYSERR: Unknown subcmd %d in do_gen_toggle.", subcmd);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This is the same as the unhandled case in do_gen_ps(), but in the
|
||||||
|
* function which handles 'compact', 'brief', and so forth.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -179,6 +179,11 @@ char *fread_action(FILE *fl, int nr)
|
|||||||
fgets(buf, MAX_STRING_LENGTH, fl);
|
fgets(buf, MAX_STRING_LENGTH, fl);
|
||||||
if (feof(fl)) {
|
if (feof(fl)) {
|
||||||
log("SYSERR: fread_action: unexpected EOF near action #%d", nr);
|
log("SYSERR: fread_action: unexpected EOF near action #%d", nr);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* fread_action() will fail if it discovers an end of file marker
|
||||||
|
* before it is able to read in the expected string. This can be
|
||||||
|
* caused by a truncated socials file.
|
||||||
|
*/
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (*buf == '#')
|
if (*buf == '#')
|
||||||
@ -220,6 +225,11 @@ void boot_social_messages(void)
|
|||||||
/* open social file */
|
/* open social file */
|
||||||
if (!(fl = fopen(SOCMESS_FILE, "r"))) {
|
if (!(fl = fopen(SOCMESS_FILE, "r"))) {
|
||||||
log("SYSERR: can't open socials file '%s': %s", SOCMESS_FILE, strerror(errno));
|
log("SYSERR: can't open socials file '%s': %s", SOCMESS_FILE, strerror(errno));
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This error, from boot_social_messages(), occurs when the server
|
||||||
|
* fails to open the file containing the social messages. The error
|
||||||
|
* at the end will indicate the reason why.
|
||||||
|
*/
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
/* count socials & allocate space */
|
/* count socials & allocate space */
|
||||||
@ -236,10 +246,25 @@ void boot_social_messages(void)
|
|||||||
break;
|
break;
|
||||||
if (fscanf(fl, " %d %d \n", &hide, &min_pos) != 2) {
|
if (fscanf(fl, " %d %d \n", &hide, &min_pos) != 2) {
|
||||||
log("SYSERR: format error in social file near social '%s'", next_soc);
|
log("SYSERR: format error in social file near social '%s'", next_soc);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* From boot_social_messages(), this error is output when the
|
||||||
|
* server is expecting to find the remainder of the first line of the
|
||||||
|
* social ('hide' and 'minimum position'). These must follow the
|
||||||
|
* name of the social with a single space such as: 'accuse 0 5\n'.
|
||||||
|
* This error often occurs when one of the numbers is missing or the
|
||||||
|
* social name has a space in it (i.e., 'bend over').
|
||||||
|
*/
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
if (++curr_soc > list_top) {
|
if (++curr_soc > list_top) {
|
||||||
log("SYSERR: Ran out of slots in social array. (%d > %d)", curr_soc, list_top);
|
log("SYSERR: Ran out of slots in social array. (%d > %d)", curr_soc, list_top);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* The server creates enough space for all of the socials that it finds
|
||||||
|
* in the command structure (cmd_info[] in interpreter.c). These are
|
||||||
|
* designated with the 'do_action' command call. If there are more
|
||||||
|
* socials in the file than in the cmd_info structure, the
|
||||||
|
* boot_social_messages() function will fail with this error.
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,6 +276,13 @@ void boot_social_messages(void)
|
|||||||
#ifdef CIRCLE_ACORN
|
#ifdef CIRCLE_ACORN
|
||||||
if (fgetc(fl) != '\n')
|
if (fgetc(fl) != '\n')
|
||||||
log("SYSERR: Acorn bug workaround failed.");
|
log("SYSERR: Acorn bug workaround failed.");
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* The only time that this error should ever arise is if you are running
|
||||||
|
* your CircleMUD on the Acorn platform. The error arises when the
|
||||||
|
* server cannot properly read a '\n' out of the file at the end of the
|
||||||
|
* first line of the social (that with 'hide' and 'min position'). This
|
||||||
|
* is in boot_social_messages().
|
||||||
|
*/
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
soc_mess_list[curr_soc].char_no_arg = fread_action(fl, nr);
|
soc_mess_list[curr_soc].char_no_arg = fread_action(fl, nr);
|
||||||
@ -270,6 +302,14 @@ void boot_social_messages(void)
|
|||||||
/* If social not found, re-use this slot. 'curr_soc' will be reincremented. */
|
/* If social not found, re-use this slot. 'curr_soc' will be reincremented. */
|
||||||
if (nr < 0) {
|
if (nr < 0) {
|
||||||
log("SYSERR: Unknown social '%s' in social file.", next_soc);
|
log("SYSERR: Unknown social '%s' in social file.", next_soc);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This occurs when the find_command() function in interpreter.c cannot
|
||||||
|
* find the social of the name in the file in the cmd_info[] structure.
|
||||||
|
* This is returned to boot_social_messages(), and the function
|
||||||
|
* reassigns that slot to another social to avoid running out of memory.
|
||||||
|
* The solution is to add this social to the cmd_info[] array in
|
||||||
|
* interpreter.c or to remove the social from the file.
|
||||||
|
*/
|
||||||
memset(&soc_mess_list[curr_soc--], 0, sizeof(struct social_messg));
|
memset(&soc_mess_list[curr_soc--], 0, sizeof(struct social_messg));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -277,6 +317,11 @@ void boot_social_messages(void)
|
|||||||
/* If the command we found isn't do_action, we didn't count it for the CREATE(). */
|
/* If the command we found isn't do_action, we didn't count it for the CREATE(). */
|
||||||
if (cmd_info[nr].command_pointer != do_action) {
|
if (cmd_info[nr].command_pointer != do_action) {
|
||||||
log("SYSERR: Social '%s' already assigned to a command.", next_soc);
|
log("SYSERR: Social '%s' already assigned to a command.", next_soc);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This error occurs when boot_social_messages() reads in a social and
|
||||||
|
* then discovers that it is not assigned 'do_action' as a command in
|
||||||
|
* the cmd_info[] array in interpreter.c
|
||||||
|
*/
|
||||||
memset(&soc_mess_list[curr_soc--], 0, sizeof(struct social_messg));
|
memset(&soc_mess_list[curr_soc--], 0, sizeof(struct social_messg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1846,6 +1846,10 @@ ACMD(do_wizutil)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
log("SYSERR: Unknown subcmd %d passed to do_wizutil (%s)", subcmd, __FILE__);
|
log("SYSERR: Unknown subcmd %d passed to do_wizutil (%s)", subcmd, __FILE__);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* This is the same as the unhandled case in do_gen_ps(), but this
|
||||||
|
* function handles 'reroll', 'pardon', 'freeze', etc.
|
||||||
|
*/
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
save_char(vict);
|
save_char(vict);
|
||||||
|
20
src/alias.c
20
src/alias.c
@ -33,8 +33,12 @@ void write_aliases(struct char_data *ch)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
if ((file = fopen(fn, "w")) == NULL) {
|
if ((file = fopen(fn, "w")) == NULL) {
|
||||||
log("SYSERR: Couldn't save aliases for %s in '%s'.", GET_NAME(ch), fn);
|
log("SYSERR: Couldn't save aliases for %s in '%s': %s", GET_NAME(ch), fn, strerror(errno));
|
||||||
perror("SYSERR: write_aliases");
|
/* SYSERR_DESC:
|
||||||
|
* This error occurs when the server fails to open the relevant alias
|
||||||
|
* file for writing. The text at the end of the error should give a
|
||||||
|
* valid reason why.
|
||||||
|
*/
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -64,8 +68,12 @@ void read_aliases(struct char_data *ch)
|
|||||||
|
|
||||||
if ((file = fopen(xbuf, "r")) == NULL) {
|
if ((file = fopen(xbuf, "r")) == NULL) {
|
||||||
if (errno != ENOENT) {
|
if (errno != ENOENT) {
|
||||||
log("SYSERR: Couldn't open alias file '%s' for %s.", xbuf, GET_NAME(ch));
|
log("SYSERR: Couldn't open alias file '%s' for %s: %s", xbuf, GET_NAME(ch), strerror(errno));
|
||||||
perror("SYSERR: read_aliases");
|
/* SYSERR_DESC:
|
||||||
|
* This error occurs when the server fails to open the relevant alias
|
||||||
|
* file for reading. The text at the end version should give a valid
|
||||||
|
* reason why.
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -124,5 +132,9 @@ void delete_aliases(const char *charname)
|
|||||||
|
|
||||||
if (remove(filename) < 0 && errno != ENOENT)
|
if (remove(filename) < 0 && errno != ENOENT)
|
||||||
log("SYSERR: deleting alias file %s: %s", filename, strerror(errno));
|
log("SYSERR: deleting alias file %s: %s", filename, strerror(errno));
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* When an alias file cannot be removed, this error will occur,
|
||||||
|
* and the reason why will be the tail end of the error.
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -531,6 +531,8 @@ void Board_clear_board(int board_type)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < MAX_BOARD_MESSAGES; i++) {
|
for (i = 0; i < MAX_BOARD_MESSAGES; i++) {
|
||||||
|
if (MSG_SLOTNUM(board_type, i) == -1)
|
||||||
|
continue; /* don't try to free non-existant slots */
|
||||||
if (MSG_HEADING(board_type, i))
|
if (MSG_HEADING(board_type, i))
|
||||||
free(MSG_HEADING(board_type, i));
|
free(MSG_HEADING(board_type, i));
|
||||||
if (msg_storage[MSG_SLOTNUM(board_type, i)])
|
if (msg_storage[MSG_SLOTNUM(board_type, i)])
|
||||||
|
@ -90,6 +90,11 @@ void castle_mob_spec(mob_vnum mobnum, SPECIAL(*specproc))
|
|||||||
if (rmr == NOBODY) {
|
if (rmr == NOBODY) {
|
||||||
if (!mini_mud)
|
if (!mini_mud)
|
||||||
log("SYSERR: assign_kings_castle(): can't find mob #%d.", vmv);
|
log("SYSERR: assign_kings_castle(): can't find mob #%d.", vmv);
|
||||||
|
/* SYSERR_DESC:
|
||||||
|
* When the castle_mob_spec() function is given a mobnum that
|
||||||
|
* does not correspond to a mod loaded (when not in minimud mode),
|
||||||
|
* this error will result.
|
||||||
|
*/
|
||||||
} else
|
} else
|
||||||
mob_index[rmr].func = specproc;
|
mob_index[rmr].func = specproc;
|
||||||
}
|
}
|
||||||
|
18
src/comm.c
18
src/comm.c
@ -147,6 +147,7 @@ int open_logfile(const char *filename, FILE *stderr_fp);
|
|||||||
#if defined(POSIX)
|
#if defined(POSIX)
|
||||||
sigfunc *my_signal(int signo, sigfunc *func);
|
sigfunc *my_signal(int signo, sigfunc *func);
|
||||||
#endif
|
#endif
|
||||||
|
void free_bufpool(void);
|
||||||
|
|
||||||
/* extern fcnts */
|
/* extern fcnts */
|
||||||
void reboot_wizlists(void);
|
void reboot_wizlists(void);
|
||||||
@ -163,6 +164,7 @@ void free_messages(void);
|
|||||||
void Board_clear_all(void);
|
void Board_clear_all(void);
|
||||||
void free_social_messages(void);
|
void free_social_messages(void);
|
||||||
void Free_Invalid_List(void);
|
void Free_Invalid_List(void);
|
||||||
|
void free_mail_index(void);
|
||||||
|
|
||||||
#ifdef __CXREF__
|
#ifdef __CXREF__
|
||||||
#undef FD_ZERO
|
#undef FD_ZERO
|
||||||
@ -327,9 +329,11 @@ int main(int argc, char **argv)
|
|||||||
|
|
||||||
if (!scheck) {
|
if (!scheck) {
|
||||||
log("Clearing other memory.");
|
log("Clearing other memory.");
|
||||||
|
free_bufpool(); /* comm.c */
|
||||||
free_player_index(); /* db.c */
|
free_player_index(); /* db.c */
|
||||||
free_messages(); /* fight.c */
|
free_messages(); /* fight.c */
|
||||||
clear_free_list(); /* mail.c */
|
clear_free_list(); /* mail.c */
|
||||||
|
free_mail_index(); /* mail.c */
|
||||||
free_text_files(); /* db.c */
|
free_text_files(); /* db.c */
|
||||||
Board_clear_all(); /* boards.c */
|
Board_clear_all(); /* boards.c */
|
||||||
free(cmd_sort_info); /* act.informative.c */
|
free(cmd_sort_info); /* act.informative.c */
|
||||||
@ -2518,3 +2522,17 @@ void circle_sleep(struct timeval *timeout)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#endif /* CIRCLE_WINDOWS */
|
#endif /* CIRCLE_WINDOWS */
|
||||||
|
|
||||||
|
void free_bufpool(void)
|
||||||
|
{
|
||||||
|
struct txt_block *tmpblock;
|
||||||
|
|
||||||
|
while (bufpool) {
|
||||||
|
tmpblock = bufpool;
|
||||||
|
bufpool = bufpool->next;
|
||||||
|
|
||||||
|
if (tmpblock->text)
|
||||||
|
free(tmpblock->text);
|
||||||
|
free(tmpblock);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
2
src/db.c
2
src/db.c
@ -298,6 +298,8 @@ void destroy_db(void)
|
|||||||
while (character_list) {
|
while (character_list) {
|
||||||
chtmp = character_list;
|
chtmp = character_list;
|
||||||
character_list = character_list->next;
|
character_list = character_list->next;
|
||||||
|
if (chtmp->master)
|
||||||
|
stop_follower(chtmp);
|
||||||
free_char(chtmp);
|
free_char(chtmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -324,7 +324,7 @@ void hcontrol_list_houses(struct char_data *ch)
|
|||||||
if (house_control[i].last_payment) {
|
if (house_control[i].last_payment) {
|
||||||
timestr = asctime(localtime(&(house_control[i].last_payment)));
|
timestr = asctime(localtime(&(house_control[i].last_payment)));
|
||||||
*(timestr + 10) = '\0';
|
*(timestr + 10) = '\0';
|
||||||
strlcpy(last_pay, timestr, sizeof(built_on));
|
strlcpy(last_pay, timestr, sizeof(last_pay));
|
||||||
} else
|
} else
|
||||||
strcpy(last_pay, "None"); /* strcpy: OK (for 'strlen("None") < 128') */
|
strcpy(last_pay, "None"); /* strcpy: OK (for 'strlen("None") < 128') */
|
||||||
|
|
||||||
|
@ -966,18 +966,15 @@ char *one_argument(char *argument, char *first_arg)
|
|||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* one_word is like one_argument, except that words in quotes ("") are
|
* one_word is like any_one_arg, except that words in quotes ("") are
|
||||||
* considered one word.
|
* considered one word.
|
||||||
|
*
|
||||||
|
* No longer ignores fill words. -dak, 6 Jan 2003
|
||||||
*/
|
*/
|
||||||
char *one_word(char *argument, char *first_arg)
|
char *one_word(char *argument, char *first_arg)
|
||||||
{
|
{
|
||||||
char *begin = first_arg;
|
|
||||||
|
|
||||||
do {
|
|
||||||
skip_spaces(&argument);
|
skip_spaces(&argument);
|
||||||
|
|
||||||
first_arg = begin;
|
|
||||||
|
|
||||||
if (*argument == '\"') {
|
if (*argument == '\"') {
|
||||||
argument++;
|
argument++;
|
||||||
while (*argument && *argument != '\"') {
|
while (*argument && *argument != '\"') {
|
||||||
@ -993,8 +990,6 @@ char *one_word(char *argument, char *first_arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
*first_arg = '\0';
|
*first_arg = '\0';
|
||||||
} while (fill_word(begin));
|
|
||||||
|
|
||||||
return (argument);
|
return (argument);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
18
src/mail.c
18
src/mail.c
@ -614,3 +614,21 @@ void postmaster_receive_mail(struct char_data *ch, struct char_data *mailman,
|
|||||||
act("$N gives $n a piece of mail.", FALSE, ch, 0, mailman, TO_ROOM);
|
act("$N gives $n a piece of mail.", FALSE, ch, 0, mailman, TO_ROOM);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void free_mail_index(void)
|
||||||
|
{
|
||||||
|
while (mail_index) {
|
||||||
|
mail_index_type *tmp_index = mail_index;
|
||||||
|
mail_index = mail_index->next;
|
||||||
|
|
||||||
|
while (tmp_index->list_start) {
|
||||||
|
position_list_type *tmp_list;
|
||||||
|
|
||||||
|
tmp_list = tmp_index->list_start;
|
||||||
|
tmp_index->list_start = tmp_index->list_start->next;
|
||||||
|
free(tmp_list);
|
||||||
|
}
|
||||||
|
free(tmp_index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -171,7 +171,7 @@ ASPELL(spell_locate_object)
|
|||||||
if (!isname(name, i->name))
|
if (!isname(name, i->name))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
send_to_char(ch, "%c%s", UPPER(*i->short_description), i->short_description);
|
send_to_char(ch, "%c%s", UPPER(*i->short_description), i->short_description+1);
|
||||||
|
|
||||||
if (i->carried_by)
|
if (i->carried_by)
|
||||||
send_to_char(ch, " is being carried by %s.\r\n", PERS(i->carried_by, ch));
|
send_to_char(ch, " is being carried by %s.\r\n", PERS(i->carried_by, ch));
|
||||||
|
@ -317,7 +317,7 @@
|
|||||||
|
|
||||||
|
|
||||||
/* Take/Wear flags: used by obj_data.obj_flags.wear_flags */
|
/* Take/Wear flags: used by obj_data.obj_flags.wear_flags */
|
||||||
#define ITEM_WEAR_TAKE (1 << 0) /* Item can be takes */
|
#define ITEM_WEAR_TAKE (1 << 0) /* Item can be taken */
|
||||||
#define ITEM_WEAR_FINGER (1 << 1) /* Can be worn on finger */
|
#define ITEM_WEAR_FINGER (1 << 1) /* Can be worn on finger */
|
||||||
#define ITEM_WEAR_NECK (1 << 2) /* Can be worn around neck */
|
#define ITEM_WEAR_NECK (1 << 2) /* Can be worn around neck */
|
||||||
#define ITEM_WEAR_BODY (1 << 3) /* Can be worn on body */
|
#define ITEM_WEAR_BODY (1 << 3) /* Can be worn on body */
|
||||||
|
@ -33,7 +33,7 @@ int get_filename(char *filename, size_t fbufsize, int mode, const char *orig_nam
|
|||||||
time_t mud_time_to_secs(struct time_info_data *now);
|
time_t mud_time_to_secs(struct time_info_data *now);
|
||||||
struct time_info_data *age(struct char_data *ch);
|
struct time_info_data *age(struct char_data *ch);
|
||||||
int num_pc_in_room(struct room_data *room);
|
int num_pc_in_room(struct room_data *room);
|
||||||
void core_dump_real(const char *, int);
|
void core_dump_real(const char *who, int line);
|
||||||
int room_is_dark(room_rnum room);
|
int room_is_dark(room_rnum room);
|
||||||
|
|
||||||
#define core_dump() core_dump_real(__FILE__, __LINE__)
|
#define core_dump() core_dump_real(__FILE__, __LINE__)
|
||||||
|
Loading…
Reference in New Issue
Block a user