[Dec 29 2007] - Rumble

Fixed top_of_helpt bug being off by one. (thanks Jamdog)
  Fixed trigedit copy bug where it used real_room and not real_trigger. (thanks Jamdog)
[Dec 21 2007] - Rumble
  Fixed dg_affect crash caused by a typo on my part.
  Renamed shit again! No really in zmalloc.c unsigned char * shit.
[Dec 15 2007] - Rumble
  Showvnums shows [T#] for a single attached trig or [TRIGS] for multiple attached trigs (except for rooms since there is plenty of room to list all attached trigs).
  Fixed bug where showvnums would not show if attached. (thanks Sryth)
This commit is contained in:
Rumble 2007-12-05 09:55:41 +00:00
parent b93379190f
commit 9336b21d40
12 changed files with 12293 additions and 12258 deletions

View file

@ -4,11 +4,21 @@ Rumble
The Builder Academy The Builder Academy
builderacademy.net 9091 builderacademy.net 9091
tbaMUD 3.55
[Dec 29 2007] - Rumble
Fixed top_of_helpt bug being off by one. (thanks Jamdog)
Fixed trigedit copy bug where it used real_room and not real_trigger. (thanks Jamdog)
[Dec 21 2007] - Rumble
Fixed dg_affect crash caused by a typo on my part.
Renamed shit again! No really in zmalloc.c unsigned char * shit.
[Dec 15 2007] - Rumble
Showvnums shows [T#] for a single attached trig or [TRIGS] for multiple attached trigs (except for rooms since there is plenty of room to list all attached trigs).
Fixed bug where showvnums would not show if attached. (thanks Sryth)
tbaMUD 3.54 tbaMUD 3.54
[Nov 12 2007] - Rumble [Nov 12 2007] - Rumble
Updated users command to fix GET_INVIS_LEV bug. Updated users command to fix GET_INVIS_LEV bug.
Updated the drink command to work in rooms where the sector type should logically allow it. Updated the drink command to work in rooms where the sector type should logically allow it.
[Oct 04 2007] - Rumble [Nov 04 2007] - Rumble
Increased the size of a mail message from 4k to 8k. Increased the size of a mail message from 4k to 8k.
Updated remove_player so that the players command would not show phantom users when someone self-deletes. Updated remove_player so that the players command would not show phantom users when someone self-deletes.
Updated sedit_rooms_menu to prevent a crash bug when trying to display a shop with rooms that have been removed. Updated sedit_rooms_menu to prevent a crash bug when trying to display a shop with rooms that have been removed.
@ -439,6 +449,7 @@ CircleMUD 3.5
- Added buildwalk and dig. - Added buildwalk and dig.
Release history: Release history:
Version 3.54 release: December, 2007
Version 3.53 release: July, 2007 Version 3.53 release: July, 2007
Version 3.52 release: April, 2007 Version 3.52 release: April, 2007
Version 3.51 release: February, 2007 Version 3.51 release: February, 2007

File diff suppressed because it is too large Load diff

View file

@ -4,9 +4,11 @@
Implementors Implementors
~~~~~~~~~~~~ ~~~~~~~~~~~~
Detta Rumble
Greater Gods Greater Gods
~~~~~~~~~~~~ ~~~~~~~~~~~~
Zizazat
Gods Gods
~~~~ ~~~~

View file

@ -133,8 +133,12 @@ void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode)
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS)) { if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS)) {
send_to_char(ch, "[%d] ", GET_OBJ_VNUM(obj)); send_to_char(ch, "[%d] ", GET_OBJ_VNUM(obj));
if (SCRIPT(obj)) if (SCRIPT(obj)) {
send_to_char(ch, "[T%d] ", obj->proto_script->vnum); if (!TRIGGERS(SCRIPT(obj))->next)
send_to_char(ch, "[T%d] ", GET_TRIG_VNUM(TRIGGERS(SCRIPT(obj))));
else
send_to_char(ch, "[TRIGS] ");
}
} }
send_to_char(ch, "%s", CCGRN(ch, C_NRM)); send_to_char(ch, "%s", CCGRN(ch, C_NRM));
send_to_char(ch, "%s", obj->description); send_to_char(ch, "%s", obj->description);
@ -143,8 +147,12 @@ void show_obj_to_char(struct obj_data *obj, struct char_data *ch, int mode)
case SHOW_OBJ_SHORT: case SHOW_OBJ_SHORT:
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS)) { if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS)) {
send_to_char(ch, "[%d] ", GET_OBJ_VNUM(obj)); send_to_char(ch, "[%d] ", GET_OBJ_VNUM(obj));
if (SCRIPT(obj)) if (SCRIPT(obj)) {
send_to_char(ch, "[T%d] ", obj->proto_script->vnum); if (!TRIGGERS(SCRIPT(obj))->next)
send_to_char(ch, "[T%d] ", GET_TRIG_VNUM(TRIGGERS(SCRIPT(obj))));
else
send_to_char(ch, "[TRIGS] ");
}
} }
send_to_char(ch, "%s", obj->short_description); send_to_char(ch, "%s", obj->short_description);
break; break;
@ -325,10 +333,14 @@ void list_one_char(struct char_data *i, struct char_data *ch)
" is standing here." " is standing here."
}; };
if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS) && IS_NPC(i)) { if (!IS_NPC(ch) && PRF_FLAGGED(ch, PRF_SHOWVNUMS) && IS_NPC(i)) {
send_to_char(ch, "[%d] ", GET_MOB_VNUM(i)); send_to_char(ch, "[%d] ", GET_MOB_VNUM(i));
if (SCRIPT(i)) if SCRIPT(i) {
send_to_char(ch, "[T%d] ", i->proto_script->vnum); if (!TRIGGERS(SCRIPT(i))->next)
send_to_char(ch, "[T%d] ", GET_TRIG_VNUM(TRIGGERS(SCRIPT(i))));
else
send_to_char(ch, "[TRIGS] ");
}
} }
if (IS_NPC(i) && i->player.long_descr && GET_POS(i) == GET_DEFAULT_POS(i)) { if (IS_NPC(i) && i->player.long_descr && GET_POS(i) == GET_DEFAULT_POS(i)) {
@ -483,7 +495,9 @@ ACMD(do_exits)
void look_at_room(struct char_data *ch, int ignore_brief) void look_at_room(struct char_data *ch, int ignore_brief)
{ {
trig_data *t;
struct room_data *rm = &world[IN_ROOM(ch)]; struct room_data *rm = &world[IN_ROOM(ch)];
if (!ch->desc) if (!ch->desc)
return; return;
@ -500,14 +514,17 @@ void look_at_room(struct char_data *ch, int ignore_brief)
sprintbitarray(ROOM_FLAGS(IN_ROOM(ch)), room_bits, RF_ARRAY_MAX, buf); sprintbitarray(ROOM_FLAGS(IN_ROOM(ch)), room_bits, RF_ARRAY_MAX, buf);
send_to_char(ch, "[%5d] ", GET_ROOM_VNUM(IN_ROOM(ch))); send_to_char(ch, "[%5d] ", GET_ROOM_VNUM(IN_ROOM(ch)));
send_to_char(ch, "%s [ %s] ", world[IN_ROOM(ch)].name, buf);
if (rm->proto_script)
send_to_char(ch, "[T%d] ", rm->proto_script->vnum); if (SCRIPT(rm)) {
send_to_char(ch, "[T");
send_to_char(ch, "%s [ %s]", world[IN_ROOM(ch)].name, buf); for (t = TRIGGERS(SCRIPT(rm)); t; t = t->next)
} else send_to_char(ch, " %d", GET_TRIG_VNUM(t));
send_to_char(ch, "]");
}
}
else
send_to_char(ch, "%s", world[IN_ROOM(ch)].name); send_to_char(ch, "%s", world[IN_ROOM(ch)].name);
send_to_char(ch, "%s\r\n", CCNRM(ch, C_NRM)); send_to_char(ch, "%s\r\n", CCNRM(ch, C_NRM));
if ((!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_BRIEF)) || ignore_brief || if ((!IS_NPC(ch) && !PRF_FLAGGED(ch, PRF_BRIEF)) || ignore_brief ||
@ -1066,7 +1083,7 @@ ACMD(do_help)
send_to_char(ch, "There is no help on that word.\r\n"); send_to_char(ch, "There is no help on that word.\r\n");
mudlog(NRM, MAX(LVL_IMPL, GET_INVIS_LEV(ch)), TRUE, mudlog(NRM, MAX(LVL_IMPL, GET_INVIS_LEV(ch)), TRUE,
"%s tried to get help on %s", GET_NAME(ch), argument); "%s tried to get help on %s", GET_NAME(ch), argument);
for (i = 0; i <= top_of_helpt; i++) { for (i = 0; i < top_of_helpt; i++) {
if (help_table[i].min_level > GET_LEVEL(ch)) if (help_table[i].min_level > GET_LEVEL(ch))
continue; continue;
/* To help narrow down results, if they don't start with the same letters, move on. */ /* To help narrow down results, if they don't start with the same letters, move on. */
@ -1567,8 +1584,12 @@ void print_object_location(int num, struct obj_data *obj, struct char_data *ch,
else else
send_to_char(ch, "%33s", " - "); send_to_char(ch, "%33s", " - ");
if (obj->proto_script) if (SCRIPT(obj)) {
send_to_char(ch, "[T%d]", obj->proto_script->vnum); if (!TRIGGERS(SCRIPT(obj))->next)
send_to_char(ch, "[T%d] ", GET_TRIG_VNUM(TRIGGERS(SCRIPT(obj))));
else
send_to_char(ch, "[TRIGS] ");
}
if (IN_ROOM(obj) != NOWHERE) if (IN_ROOM(obj) != NOWHERE)
send_to_char(ch, "[%5d] %s%s\r\n", GET_ROOM_VNUM(IN_ROOM(obj)), world[IN_ROOM(obj)].name, QNRM); send_to_char(ch, "[%5d] %s%s\r\n", GET_ROOM_VNUM(IN_ROOM(obj)), world[IN_ROOM(obj)].name, QNRM);
@ -1611,9 +1632,13 @@ void perform_immort_where(struct char_data *ch, char *arg)
found = 1; found = 1;
send_to_char(ch, "M%3d. %-25s%s - [%5d] %-25s%s", ++num, GET_NAME(i), QNRM, send_to_char(ch, "M%3d. %-25s%s - [%5d] %-25s%s", ++num, GET_NAME(i), QNRM,
GET_ROOM_VNUM(IN_ROOM(i)), world[IN_ROOM(i)].name, QNRM); GET_ROOM_VNUM(IN_ROOM(i)), world[IN_ROOM(i)].name, QNRM);
if (SCRIPT(i)) if (IS_NPC(i) && SCRIPT(i)) {
send_to_char(ch, "[T%5d] ", i->proto_script->vnum); if (!TRIGGERS(SCRIPT(i))->next)
send_to_char(ch, "%s\r\n", QNRM); send_to_char(ch, "[T%d] ", GET_TRIG_VNUM(TRIGGERS(SCRIPT(i))));
else
send_to_char(ch, "[TRIGS] ");
}
send_to_char(ch, "%s\r\n", QNRM);
} }
for (num = 0, k = object_list; k; k = k->next) for (num = 0, k = object_list; k; k = k->next)
if (CAN_SEE_OBJ(ch, k) && isname(arg, k->name)) { if (CAN_SEE_OBJ(ch, k) && isname(arg, k->name)) {

View file

@ -299,6 +299,6 @@ int use_autowiz = YES;
* levels below the level you specify will go on the immlist instead.) */ * levels below the level you specify will go on the immlist instead.) */
int min_wizlist_lev = LVL_GOD; int min_wizlist_lev = LVL_GOD;
/* To mimic stack behavior set to NO. To allow mortals to see doors in exits /* To mimic stock behavior set to NO. To allow mortals to see doors in exits
* set to YES. */ * set to YES. */
int display_closed_doors = YES; int display_closed_doors = YES;

View file

@ -238,7 +238,7 @@ void do_dg_affect(void *go, struct script_data *sc, trig_data *trig,
af.bitvector = 0; af.bitvector = 0;
} else { } else {
af.location = 0; af.location = 0;
af.bitvector = (i); af.bitvector = i;
} }
affect_to_char(ch, &af); affect_to_char(ch, &af);

View file

@ -375,7 +375,7 @@ void trigedit_parse(struct descriptor_data *d, char *arg)
return; return;
case TRIGEDIT_COPY: case TRIGEDIT_COPY:
if ((i = real_room(atoi(arg))) != NOWHERE) { if ((i = real_trigger(atoi(arg))) != NOWHERE) {
trigedit_setup_existing(d, i); trigedit_setup_existing(d, i);
} else } else
write_to_output(d, "That trigger does not exist.\r\n"); write_to_output(d, "That trigger does not exist.\r\n");

View file

@ -143,7 +143,7 @@ void hedit_save_internally(struct descriptor_data *d)
for (i = 0; i < top_of_helpt; i++) for (i = 0; i < top_of_helpt; i++)
new_help_table[i] = help_table[i]; new_help_table[i] = help_table[i];
new_help_table[++top_of_helpt] = *OLC_HELP(d); new_help_table[top_of_helpt++] = *OLC_HELP(d);
free(help_table); free(help_table);
help_table = new_help_table; help_table = new_help_table;
} else } else

View file

@ -1183,7 +1183,7 @@ void oedit_parse(struct descriptor_data *d, char *arg)
break; break;
case OEDIT_COPY: case OEDIT_COPY:
if ((number = real_object(atoi(arg))) != NOWHERE) { if ((number = real_object(atoi(arg))) != NOTHING) {
oedit_setup_existing(d, number); oedit_setup_existing(d, number);
} else } else
write_to_output(d, "That object does not exist.\r\n"); write_to_output(d, "That object does not exist.\r\n");

View file

@ -819,8 +819,7 @@ void load_HMVS(struct char_data *ch, const char *line, int mode)
} }
} }
/* until further notice, the alias->pfiles save and load functions will /* Aliases are now saved in pfiles only. */
* * function along side the old seperate alias file load, for compatibility. */
void write_aliases_ascii(FILE *file, struct char_data *ch) void write_aliases_ascii(FILE *file, struct char_data *ch)
{ {
struct alias_data *temp; struct alias_data *temp;

View file

@ -19,7 +19,6 @@
#define MAX_PWD_LENGTH 30 /* Used in char_file_u *DO*NOT*CHANGE* */ #define MAX_PWD_LENGTH 30 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_TITLE_LENGTH 80 /* Used in char_file_u *DO*NOT*CHANGE* */ #define MAX_TITLE_LENGTH 80 /* Used in char_file_u *DO*NOT*CHANGE* */
#define HOST_LENGTH 40 /* Used in char_file_u *DO*NOT*CHANGE* */ #define HOST_LENGTH 40 /* Used in char_file_u *DO*NOT*CHANGE* */
#define PLR_DESC_LENGTH 512 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_TONGUE 3 /* Used in char_file_u *DO*NOT*CHANGE* */ #define MAX_TONGUE 3 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_SKILLS 200 /* Used in char_file_u *DO*NOT*CHANGE* */ #define MAX_SKILLS 200 /* Used in char_file_u *DO*NOT*CHANGE* */
#define MAX_AFFECT 32 /* Used in char_file_u *DO*NOT*CHANGE* */ #define MAX_AFFECT 32 /* Used in char_file_u *DO*NOT*CHANGE* */

View file

@ -358,41 +358,41 @@ void pad_check(meminfo *m)
int main() int main()
{ {
unsigned char * shit; unsigned char * tmp;
zmalloc_init(); zmalloc_init();
/* You should see no error here. */ /* You should see no error here. */
shit = (unsigned char*)malloc(200); tmp = (unsigned char*)malloc(200);
free(shit); free(tmp);
/* Multiple frees test */ /* Multiple frees test */
shit = (unsigned char*)malloc(200); tmp = (unsigned char*)malloc(200);
strcpy(shit, "This should show up in the dump but truncated to MAX_ZDUMP_SIZE chars"); strcpy(tmp, "This should show up in the dump but truncated to MAX_ZDUMP_SIZE chars");
free(shit); free(tmp);
free(shit); free(tmp);
/* Free unallocated mem test */ /* Free unallocated mem test */
shit += 4; tmp += 4;
free(shit); free(tmp);
/* Unfreed mem test... You should see "UNfreed mem at line 370" (at end) because of this */ /* Unfreed mem test... You should see "UNfreed mem at line 370" (at end) because of this */
shit = (unsigned char*)malloc(200); tmp = (unsigned char*)malloc(200);
strcpy(shit, "This is unfreed memory!"); strcpy(tmp, "This is unfreed memory!");
/* Buffer overrun test... You should see an ERR:endPad here */ /* Buffer overrun test... You should see an ERR:endPad here */
shit = (unsigned char*)malloc(200); tmp = (unsigned char*)malloc(200);
shit[202] = 0xbb; tmp[202] = 0xbb;
free(shit); free(tmp);
/* Buffer underrun test... You should see an ERR:beginPad here */ /* Buffer underrun test... You should see an ERR:beginPad here */
shit = (unsigned char*)malloc(200); tmp = (unsigned char*)malloc(200);
shit[-3] = 0x0f; tmp[-3] = 0x0f;
free(shit); free(tmp);
/* Free NULL pointer test... */ /* Free NULL pointer test... */
shit = NULL; tmp = NULL;
free(shit); free(tmp);
printf("Test completed. See zmalloc.log for the messages.\n"); printf("Test completed. See zmalloc.log for the messages.\n");