1stMUD/corefiles/
1stMUD/gods/
1stMUD/notes/
1stMUD/player/
1stMUD/win32/
1stMUD/win32/ROM/
diff -ur src/act_wiz.c new/act_wiz.c
--- src/act_wiz.c	Thu Mar 27 02:17:55 2003
+++ new/act_wiz.c	Wed Apr  9 23:26:58 2003
@@ -1485,10 +1485,9 @@
 	chprintlnf(ch,
 			   "Vnum: %ld  Format: %s  Race: %s  Group: %d  Sex: %s  Room: %ld",
 			   IS_NPC(victim) ? victim->pIndexData->vnum : 0,
-			   IS_NPC(victim) ? victim->
-			   pIndexData->new_format ? "new" : "old" : "pc",
-			   victim->race->name, IS_NPC(victim) ? victim->group : 0,
-			   sex_table[victim->sex].name,
+			   IS_NPC(victim) ? victim->pIndexData->
+			   new_format ? "new" : "old" : "pc", victim->race->name,
+			   IS_NPC(victim) ? victim->group : 0, sex_table[victim->sex].name,
 			   victim->in_room == NULL ? 0 : victim->in_room->vnum);
 
 	if (IS_NPC(victim))
@@ -4094,8 +4093,8 @@
 			count++;
 			sprintf(buf + strlen(buf), "[%3d %2d] %s@%s\n\r",
 					d->descriptor, d->connected,
-					d->original ? d->original->name : d->
-					character ? d->character->name : "(none)", d->host);
+					d->original ? d->original->name : d->character ? d->
+					character->name : "(none)", d->host);
 		}
 	}
 	if (count == 0)
diff -ur src/arena.c new/arena.c
--- src/arena.c	Thu Mar 27 02:17:55 2003
+++ new/arena.c	Wed Apr  9 23:26:58 2003
@@ -79,8 +79,9 @@
 		chprintlnf
 			(ch,
 			 "You have already been challenged, either ACCEPT or DECLINE %s first.",
-			 ch->pcdata->challenger ? ch->pcdata->challenger->name : ch->
-			 pcdata->challenged ? ch->pcdata->challenged->name : "!BUG!");
+			 ch->pcdata->challenger ? ch->pcdata->challenger->
+			 name : ch->pcdata->challenged ? ch->pcdata->challenged->
+			 name : "!BUG!");
 		return;
 	}
 
diff -ur src/auction.c new/auction.c
--- src/auction.c	Thu Mar 27 02:17:55 2003
+++ new/auction.c	Wed Apr  9 23:26:58 2003
@@ -237,9 +237,9 @@
 					reset_auc(auc, TRUE);
 				}
 				else if ((unsigned long) (!IS_OBJ_STAT(auc->item, ITEM_QUEST)
-										  ? auc->high_bidder->
-										  gold : auc->high_bidder->pcdata->
-										  questpoints) < auc->bid)
+										  ? auc->high_bidder->gold : auc->
+										  high_bidder->pcdata->questpoints) <
+						 auc->bid)
 				{
 					announce(auc->high_bidder, INFO_AUCTION,
 							 "$n can't cover their stake in the auction, sale stopped.");
diff -ur src/automap.c new/automap.c
--- src/automap.c	Thu Mar 27 02:17:55 2003
+++ new/automap.c	Wed Apr  9 23:26:58 2003
@@ -47,9 +47,7 @@
 	char symbol;
 	vnum_t vnum;
 	int depth;
-	flag_t info;
-	bool up;
-	bool dn;
+	ROOM_INDEX_DATA *pRoom;
 };
 
 typedef struct map_type MAP_DATA;
@@ -88,9 +86,7 @@
 	map[x][y].symbol = ' ';
 	map[x][y].vnum = 0;
 	map[x][y].depth = 0;
-	map[x][y].up = FALSE;
-	map[x][y].dn = FALSE;
-	map[x][y].info = 0;
+	map[x][y].pRoom = NULL;
 }
 
 void clear_room(int x, int y)
@@ -159,21 +155,10 @@
 	if (!can_see_room(ch, pRoom))
 		return;
 
-	map[x][y].symbol = get_sector_symbol(ch->in_room->sector_type);
+	map[x][y].symbol = get_sector_symbol(pRoom->sector_type);
 	map[x][y].vnum = pRoom->vnum;
 	map[x][y].depth = depth;
-	map[x][y].dn = FALSE;
-	map[x][y].up = FALSE;
-
-	if (!IS_NPC(ch) && getbit(ch->pcdata->explored, pRoom->vnum))
-	{
-		map[x][y].info = pRoom->room_flags;
-
-		if (pRoom->exit[DIR_DOWN] != NULL)
-			map[x][y].dn = TRUE;
-		if (pRoom->exit[DIR_UP] != NULL)
-			map[x][y].up = TRUE;
-	}
+	map[x][y].pRoom = pRoom;
 
 	if (depth >= MAXDEPTH)
 		return;
@@ -209,7 +194,7 @@
 		map[exitx][exity].depth = depth;
 		map[exitx][exity].vnum = pExit->u1.to_room->vnum;
 		map[exitx][exity].symbol = map_chars[door];
-		map[exitx][exity].info = pExit->exit_info;
+		map[exitx][exity].pRoom = pExit->u1.to_room;
 
 		if ((depth < MAXDEPTH)
 			&& ((map[roomx][roomy].vnum == pExit->u1.to_room->vnum)
@@ -277,7 +262,11 @@
 	for (m = 0; m <= strlen(desc); m++)
 	{
 		if (desc[m] == ANSI_KEY)
-			m += 2;
+		{
+			m++;
+			lcolor = desc[m];
+			m++;
+		}
 		else if (desc[m] == ANSI_CUSTOM)
 		{
 			while (desc[m] != ANSI_END)
@@ -291,14 +280,6 @@
 	}
 
 	for (l = m; l > 0; l--)
-	{
-		if (desc[l] == ANSI_KEY)
-		{
-			lcolor = desc[l + 1];
-			break;
-		}
-	}
-	for (l = m; l > 0; l--)
 		if (desc[l] == ' ')
 			break;
 
@@ -353,18 +334,29 @@
 
 		for (x = 0; x <= MAPX; x++)
 		{
-			if (map[x][y].symbol == 'o')
+			if (map[x][y].pRoom)
 			{
-				if (map[x][y].up && map[x][y].dn)
-					map[x][y].symbol = 'O';
-				if (!map[x][y].up && map[x][y].dn)
-					map[x][y].symbol = 'D';
-				if (map[x][y].up && !map[x][y].dn)
-					map[x][y].symbol = 'U';
+				if (map[x][y].symbol ==
+					get_sector_symbol(map[x][y].pRoom->sector_type)
+					&& !IS_NPC(ch)
+					&& getbit(ch->pcdata->explored, map[x][y].pRoom->vnum))
+				{
+					if (map[x][y].pRoom->exit[DIR_UP]
+						&& map[x][y].pRoom->exit[DIR_DOWN])
+						map[x][y].symbol = 'O';
+					else if (!map[x][y].pRoom->exit[DIR_UP]
+							 && map[x][y].pRoom->exit[DIR_DOWN])
+						map[x][y].symbol = 'D';
+					else if (map[x][y].pRoom->exit[DIR_UP]
+							 && !map[x][y].pRoom->exit[DIR_DOWN])
+						map[x][y].symbol = 'U';
+				}
+				sprintf(buf + strlen(buf), "%s%c",
+						get_sector_color(map[x][y].pRoom->sector_type),
+						map[x][y].symbol);
 			}
-			sprintf(buf + strlen(buf), "%s%c",
-					get_sector_color(ch->in_room->sector_type),
-					map[x][y].symbol);
+			else
+				strcat(buf, &map[x][y].symbol);
 		}
 
 		strcat(buf, "{R| {");
diff -ur src/clans.c new/clans.c
--- src/clans.c	Thu Mar 27 02:17:55 2003
+++ new/clans.c	Wed Apr  9 23:26:58 2003
@@ -330,8 +330,8 @@
 			{
 				chprintlnf(ch, "%-12s %-8s %s", victim->name,
 						   position_table[victim->position].name,
-						   victim->in_room ? victim->in_room->
-						   area->name : "Unknown");
+						   victim->in_room ? victim->in_room->area->
+						   name : "Unknown");
 				found = TRUE;
 			}
 		}
diff -ur src/comm.c new/comm.c
--- src/comm.c	Thu Mar 27 02:17:55 2003
+++ new/comm.c	Wed Apr  9 23:26:58 2003
@@ -111,6 +111,8 @@
 void read_from_buffer args((DESCRIPTOR_DATA * d));
 void stop_idling args((CHAR_DATA * ch));
 void bust_a_prompt args((CHAR_DATA * ch));
+void set_game_levels args((int Old, int New));
+void save_helps args((void));
 
 #if !defined(WIN32)
 #if !defined(__CYGWIN__)
@@ -200,7 +202,21 @@
 	port = 4000;
 	if (argc > 1)
 	{
-		if (!is_number(argv[1]))
+		if (!str_cmp(argv[1], "levels"))
+		{
+			if (IS_NULLSTR(argv[2]) || IS_NULLSTR(argv[3])
+				|| !is_number(argv[2]) || !is_number(argv[3]))
+			{
+				logf("Usage: %s levels [old max level] [new max level]",
+					 argv[0]);
+				exit(1);
+			}
+
+			boot_db();
+			set_game_levels(atoi(argv[2]), atoi(argv[3]));
+			exit(0);
+		}
+		else if (!is_number(argv[1]))
 		{
 			logf("Usage: %s [port #]\n", argv[0]);
 			exit(1);
@@ -1577,8 +1593,8 @@
 						((!IS_NPC(ch) &&
 						  IS_SET(ch->act, PLR_HOLYLIGHT)) ||
 						 (!IS_AFFECTED(ch, AFF_BLIND) &&
-						  !room_is_dark(ch->in_room))) ? ch->
-						in_room->name : "darkness");
+						  !room_is_dark(ch->in_room))) ? ch->in_room->
+						name : "darkness");
 			else
 				sprintf(buf2, " ");
 			i = buf2;
@@ -1879,8 +1895,8 @@
 			dold->connected != CON_GET_NAME &&
 			dold->connected != CON_GET_OLD_PASSWORD &&
 			!str_cmp(name,
-					 dold->original ? dold->original->name : dold->
-					 character->name))
+					 dold->original ? dold->original->name : dold->character->
+					 name))
 		{
 			write_to_buffer(d, "That character is already playing.\n\r", 0);
 			write_to_buffer(d, "Do you wish to connect anyway (Y/N)?", 0);
@@ -2759,3 +2775,81 @@
 	}
 }
 #endif
+
+void set_game_levels(int Old, int New)
+{
+	CMD_DATA *cmd;
+	HELP_DATA *pHelp;
+	OBJ_INDEX_DATA *pObj;
+	MOB_INDEX_DATA *pMob;
+	BAN_DATA *ban;
+	DISABLED_DATA *d;
+	MBR_DATA *mbr;
+	int hash, sn, x;
+	int diff = MAX_LEVEL - LEVEL_IMMORTAL;
+	int imm_level = Old - diff;
+	int mod = New - Old;
+
+	logf("Old Imm Level = %d, Old Max Level = %d.", imm_level, Old);
+	logf("New Imm Level = %d, New Max Level = %d.", New - diff, New);
+
+	for (cmd = cmd_first; cmd; cmd = cmd->next)
+	{
+		if (cmd->level >= imm_level)
+			cmd->level += mod;
+	}
+	save_commands();
+	for (pHelp = help_first; pHelp; pHelp = pHelp->next)
+	{
+		if (pHelp->level >= imm_level)
+			pHelp->level += mod;
+	}
+	save_helps();
+	for (hash = 0; hash < MAX_KEY_HASH; hash++)
+	{
+		for (pMob = mob_index_hash[hash]; pMob; pMob = pMob->next)
+		{
+			if (pMob->level >= imm_level)
+			{
+				pMob->level += mod;
+				SET_BIT(pMob->area->area_flags, AREA_CHANGED);
+			}
+		}
+		for (pObj = obj_index_hash[hash]; pObj; pObj = pObj->next)
+		{
+			if (pObj->level >= imm_level)
+			{
+				pObj->level += mod;
+				SET_BIT(pObj->area->area_flags, AREA_CHANGED);
+			}
+		}
+	}
+	do_asave(NULL, "changed");
+	for (ban = ban_first; ban; ban = ban->next)
+	{
+		if (ban->level >= imm_level)
+			ban->level += mod;
+	}
+	save_bans();
+	for (d = disabled_first; d; d = d->next)
+	{
+		if (d->level >= imm_level)
+			d->level += mod;
+	}
+	save_disabled();
+	for (sn = 0; sn < maxSkill; sn++)
+	{
+		for (x = 0; x < maxClass; x++)
+		{
+			if (skill_table[sn].skill_level[x] >= imm_level)
+				skill_table[sn].skill_level[x] += mod;
+		}
+	}
+	save_skills();
+	for (mbr = mbr_first; mbr; mbr = mbr->next)
+	{
+		if (mbr->level >= imm_level)
+			mbr->level += mod;
+	}
+	save_members();
+}
diff -ur src/fight.c new/fight.c
--- src/fight.c	Thu Mar 27 02:17:55 2003
+++ new/fight.c	Wed Apr  9 23:26:58 2003
@@ -3112,8 +3112,9 @@
 		if ((pexit = was_in->exit[door]) == 0 || pexit->u1.to_room == NULL
 			|| IS_SET(pexit->exit_info, EX_CLOSED) ||
 			number_range(0, ch->daze) != 0 || (IS_NPC(ch) &&
-											   IS_SET(pexit->u1.to_room->
-													  room_flags, ROOM_NO_MOB)))
+											   IS_SET(pexit->u1.
+													  to_room->room_flags,
+													  ROOM_NO_MOB)))
 			continue;
 
 		move_char(ch, door, FALSE);
diff -ur src/handler.c new/handler.c
--- src/handler.c	Thu Mar 27 02:17:55 2003
+++ new/handler.c	Wed Apr  9 23:26:58 2003
@@ -319,7 +319,8 @@
 
 bool is_same_clan(CHAR_DATA * ch, CHAR_DATA * victim)
 {
-	if (ch->clan->independent || victim->clan->independent)
+	if (ch->clan == NULL || victim->clan == NULL
+		|| ch->clan->independent || victim->clan->independent)
 		return FALSE;
 	else
 		return (ch->clan == victim->clan);
@@ -1898,6 +1899,9 @@
 
 	UNLINK(obj, object_first, object_last, next, prev);
 
+	if (obj->item_type == ITEM_CORPSE_PC)
+		update_corpses(obj, TRUE);
+
 	--obj->pIndexData->count;
 	free_obj(obj);
 	return;
@@ -1951,7 +1955,10 @@
 	/* Death room is set in the clan tabe now */
 	if (!fPull)
 	{
-		ROOM_INDEX_DATA *room = get_room_index(ch->clan->hall);
+		ROOM_INDEX_DATA *room = NULL;
+
+		if (is_clan(ch))
+			room = get_room_index(ch->clan->hall);
 		if (room == NULL)
 			room = get_room_index(ROOM_VNUM_ALTAR);
 		char_to_room(ch, room);
diff -ur src/magic.c new/magic.c
--- src/magic.c	Thu Mar 27 02:17:55 2003
+++ new/magic.c	Wed Apr  9 23:26:58 2003
@@ -286,8 +286,8 @@
 	if ((sn = find_spell(ch, arg1)) < 1 ||
 		skill_table[sn].spell_fun == spell_null || (!IS_NPC(ch) &&
 													(!can_use_skpell(ch, sn)
-													 || ch->
-													 pcdata->learned[sn] == 0)))
+													 || ch->pcdata->
+													 learned[sn] == 0)))
 	{
 		chprintln(ch, "You don't know any spells of that name.");
 		return;
@@ -2788,7 +2788,9 @@
 		|| IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL)
 		|| IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) || (IS_NPC(victim)
 															   && is_gqmob(ch,
-																		   victim->pIndexData->vnum)
+																		   victim->
+																		   pIndexData->
+																		   vnum)
 															   != -1)
 		|| (IS_NPC(victim) && IS_QUESTOR(ch)
 			&& ch->pcdata->questmob == victim->pIndexData->vnum)
diff -ur src/magic2.c new/magic2.c
--- src/magic2.c	Thu Mar 27 02:17:55 2003
+++ new/magic2.c	Wed Apr  9 23:26:58 2003
@@ -64,9 +64,7 @@
 		|| IS_SET(victim->in_room->room_flags, ROOM_NO_RECALL)
 		|| IS_SET(ch->in_room->room_flags, ROOM_NO_RECALL) || (IS_NPC(victim)
 															   && is_gqmob(ch,
-																		   victim->
-																		   pIndexData->
-																		   vnum)
+																		   victim->pIndexData->vnum)
 															   != -1)
 		|| (IS_NPC(victim) && IS_QUESTOR(ch)
 			&& ch->pcdata->questmob == victim->pIndexData->vnum)
@@ -125,17 +123,10 @@
 		|| IS_SET(to_room->room_flags, ROOM_ARENA)
 		|| IS_SET(from_room->room_flags, ROOM_ARENA) || (IS_NPC(victim)
 														 && is_gqmob(ch,
-																	 victim->
-																	 pIndexData->
-																	 vnum) !=
-														 -1) || (IS_NPC(victim)
-																 &&
-																 IS_QUESTOR(ch)
-																 && ch->pcdata->
-																 questmob ==
-																 victim->
-																 pIndexData->
-																 vnum)
+																	 victim->pIndexData->vnum)
+														 != -1)
+		|| (IS_NPC(victim) && IS_QUESTOR(ch)
+			&& ch->pcdata->questmob == victim->pIndexData->vnum)
 		|| victim->level >= level + 3 || (!IS_NPC(victim) && victim->level >= LEVEL_HERO)	/* NOT trust */
 		|| (IS_NPC(victim) && IS_SET(victim->imm_flags, IMM_SUMMON))
 		|| (IS_NPC(victim) && saves_spell(level, victim, DAM_NONE))
diff -ur src/mob_cmds.c new/mob_cmds.c
--- src/mob_cmds.c	Thu Mar 27 02:17:55 2003
+++ new/mob_cmds.c	Wed Apr  9 23:26:58 2003
@@ -1340,8 +1340,8 @@
 			|| IS_SET(pexit->exit_info, EX_CLOSED) || (IS_NPC(ch)
 													   &&
 													   IS_SET
-													   (pexit->u1.to_room->
-														room_flags,
+													   (pexit->u1.
+														to_room->room_flags,
 														ROOM_NO_MOB)))
 			continue;
 
@@ -1792,8 +1792,8 @@
 	{
 		if ((vobj =
 			 get_obj_here(NULL,
-						  obj->in_room ? obj->in_room : obj->carried_by->
-						  in_room, arg)))
+						  obj->in_room ? obj->in_room : obj->
+						  carried_by->in_room, arg)))
 		{
 			extract_obj(vobj);
 		}
@@ -2026,8 +2026,8 @@
 
 		if ((victim =
 			 get_char_room(NULL,
-						   (obj->in_room) ? obj->in_room : obj->carried_by->
-						   in_room, arg)) == NULL)
+						   (obj->in_room) ? obj->in_room : obj->
+						   carried_by->in_room, arg)) == NULL)
 			return;
 
 		interpret(victim, argument);
@@ -2119,8 +2119,8 @@
 		fAll = TRUE;
 	else if ((victim =
 			  get_char_room(NULL,
-							obj->in_room ? obj->in_room : obj->carried_by->
-							in_room, target)) == NULL)
+							obj->in_room ? obj->in_room : obj->
+							carried_by->in_room, target)) == NULL)
 		return;
 
 	if (is_number(min))
@@ -2228,8 +2228,8 @@
 	if (!IS_NULLSTR(arg))
 		vch =
 			get_char_room(NULL,
-						  obj->in_room ? obj->in_room : obj->carried_by->
-						  in_room, arg);
+						  obj->in_room ? obj->in_room : obj->
+						  carried_by->in_room, arg);
 	argument = one_argument(argument, arg);
 	if (!IS_NULLSTR(arg))
 		obj1 =
@@ -2355,8 +2355,8 @@
 	}
 	else if ((ch =
 			  get_char_room(NULL,
-							obj->in_room ? obj->in_room : obj->carried_by->
-							in_room, target)) == NULL)
+							obj->in_room ? obj->in_room : obj->
+							carried_by->in_room, target)) == NULL)
 		return;
 
 	if (!str_cmp(arg1, "none"))
diff -ur src/mob_prog.c new/mob_prog.c
--- src/mob_prog.c	Thu Mar 27 02:17:55 2003
+++ new/mob_prog.c	Wed Apr  9 23:26:58 2003
@@ -296,8 +296,8 @@
 					|| (iFlag == 2 && IS_NPC(vch)) || (iFlag == 3
 													   && IS_NPC(mob)
 													   && IS_NPC(vch)
-													   && mob->pIndexData->
-													   vnum ==
+													   && mob->
+													   pIndexData->vnum ==
 													   vch->pIndexData->vnum)
 					|| (iFlag == 4 && is_same_group(mob, vch)))
 				&& can_see(mob, vch))
@@ -1021,8 +1021,8 @@
 		else if (lval_obj != NULL
 				 && (lval_obj->in_room != NULL || lval_obj->carried_by != NULL))
 			lval =
-				lval_obj->in_room ? lval_obj->in_room->
-				vnum : lval_obj->carried_by->in_room->vnum;
+				lval_obj->in_room ? lval_obj->in_room->vnum : lval_obj->
+				carried_by->in_room->vnum;
 		break;
 	case CHK_SEX:
 		if (lval_char != NULL)
@@ -1331,8 +1331,8 @@
 		else if (lval_obj != NULL
 				 && (lval_obj->in_room != NULL || lval_obj->carried_by != NULL))
 			lval =
-				lval_obj->in_room ? lval_obj->in_room->
-				vnum : lval_obj->carried_by->in_room->vnum;
+				lval_obj->in_room ? lval_obj->in_room->vnum : lval_obj->
+				carried_by->in_room->vnum;
 		break;
 	case CHK_SEX:
 		if (lval_char != NULL)
@@ -1441,8 +1441,8 @@
 		case 'N':
 			i = (ch != NULL
 				 && can_see(mob,
-							ch)) ? (IS_NPC(ch) ? ch->
-									short_descr : ch->name) : someone;
+							ch)) ? (IS_NPC(ch) ? ch->short_descr : ch->
+									name) : someone;
 			break;
 		case 't':
 			i = someone;
@@ -1455,8 +1455,8 @@
 		case 'T':
 			i = (vch != NULL
 				 && can_see(mob,
-							vch)) ? (IS_NPC(vch) ? vch->
-									 short_descr : vch->name) : someone;
+							vch)) ? (IS_NPC(vch) ? vch->short_descr : vch->
+									 name) : someone;
 			break;
 		case 'r':
 			if (rch == NULL)
@@ -1473,8 +1473,8 @@
 				rch = get_random_char(mob, NULL, NULL);
 			i = (rch != NULL
 				 && can_see(mob,
-							rch)) ? (IS_NPC(ch) ? ch->
-									 short_descr : ch->name) : someone;
+							rch)) ? (IS_NPC(ch) ? ch->short_descr : ch->
+									 name) : someone;
 			break;
 		case 'q':
 			i = someone;
@@ -1488,10 +1488,10 @@
 			i = (mob->mprog_target != NULL
 				 && can_see(mob,
 							mob->mprog_target)) ? (IS_NPC(mob->mprog_target) ?
-												   mob->
-												   mprog_target->short_descr :
 												   mob->mprog_target->
-												   name) : someone;
+												   short_descr : mob->
+												   mprog_target->name) :
+				someone;
 			break;
 		case 'j':
 			i = he_she[URANGE(0, mob->sex, 2)];
@@ -1513,7 +1513,9 @@
 		case 'X':
 			i = (mob->mprog_target != NULL
 				 && can_see(mob, mob->mprog_target)) ? he_she[URANGE(0,
-																	 mob->mprog_target->sex,
+																	 mob->
+																	 mprog_target->
+																	 sex,
 																	 2)] :
 				someone;
 			break;
@@ -1540,7 +1542,9 @@
 		case 'Y':
 			i = (mob->mprog_target != NULL
 				 && can_see(mob, mob->mprog_target)) ? him_her[URANGE(0,
-																	  mob->mprog_target->sex,
+																	  mob->
+																	  mprog_target->
+																	  sex,
 																	  2)] :
 				someone;
 			break;
@@ -1567,7 +1571,9 @@
 		case 'Z':
 			i = (mob->mprog_target != NULL
 				 && can_see(mob, mob->mprog_target)) ? his_her[URANGE(0,
-																	  mob->mprog_target->sex,
+																	  mob->
+																	  mprog_target->
+																	  sex,
 																	  2)] :
 				someones;
 			break;
@@ -1733,13 +1739,14 @@
 		case 'Q':
 			i = (obj
 				 && obj->oprog_target !=
-				 NULL) ? (IS_NPC(obj->oprog_target) ? obj->
-						  oprog_target->short_descr : obj->oprog_target->
-						  name) : (room
-								   && room->rprog_target !=
-								   NULL) ? (IS_NPC(room->rprog_target) ? room->
-											rprog_target->short_descr : room->
-											rprog_target->name) : someone;
+				 NULL) ? (IS_NPC(obj->oprog_target) ? obj->oprog_target->
+						  short_descr : obj->oprog_target->name) : (room
+																	&& room->
+																	rprog_target
+																	!=
+																	NULL)
+				? (IS_NPC(room->rprog_target) ? room->rprog_target->
+				   short_descr : room->rprog_target->name) : someone;
 			break;
 		case 'j':
 			bug("Obj/room received case 'j'", 0);
@@ -1757,13 +1764,15 @@
 		case 'X':
 			i = (obj
 				 && obj->oprog_target != NULL) ? he_she[URANGE(0,
-															   obj->oprog_target->sex,
-															   2)] : (room
-																	  &&
-																	  room->rprog_target
-																	  !=
-																	  NULL) ?
-				he_she[URANGE(0, room->rprog_target->sex, 2)] : someone;
+															   obj->
+															   oprog_target->
+															   sex, 2)] : (room
+																		   &&
+																		   room->
+																		   rprog_target
+																		   !=
+																		   NULL)
+				? he_she[URANGE(0, room->rprog_target->sex, 2)] : someone;
 			break;
 		case 'k':
 			bug("received case 'k'.", 0);
@@ -1785,13 +1794,15 @@
 		case 'Y':
 			i = (obj
 				 && obj->oprog_target != NULL) ? him_her[URANGE(0,
-																obj->oprog_target->sex,
-																2)] : (room
-																	   &&
-																	   room->rprog_target
-																	   !=
-																	   NULL) ?
-				him_her[URANGE(0, room->rprog_target->sex, 2)] : someone;
+																obj->
+																oprog_target->
+																sex, 2)] : (room
+																			&&
+																			room->
+																			rprog_target
+																			!=
+																			NULL)
+				? him_her[URANGE(0, room->rprog_target->sex, 2)] : someone;
 			break;
 		case 'l':
 			bug("received case 'l'.", 0);
@@ -1813,13 +1824,15 @@
 		case 'Z':
 			i = (obj
 				 && obj->oprog_target != NULL) ? his_her[URANGE(0,
-																obj->oprog_target->sex,
-																2)] : (room
-																	   &&
-																	   room->rprog_target
-																	   !=
-																	   NULL) ?
-				his_her[URANGE(0, room->rprog_target->sex, 2)] : someones;
+																obj->
+																oprog_target->
+																sex, 2)] : (room
+																			&&
+																			room->
+																			rprog_target
+																			!=
+																			NULL)
+				? his_her[URANGE(0, room->rprog_target->sex, 2)] : someones;
 			break;
 		case 'o':
 			i = something;
diff -ur src/nanny.c new/nanny.c
--- src/nanny.c	Thu Mar 27 02:17:55 2003
+++ new/nanny.c	Wed Apr  9 23:26:58 2003
@@ -216,8 +216,8 @@
 
 			if (str_cmp
 				(ch->name,
-				 d_old->original ? d_old->original->name : d_old->character->
-				 name))
+				 d_old->original ? d_old->original->name : d_old->
+				 character->name))
 				continue;
 
 			close_socket(d_old);
diff -ur src/olc.c new/olc.c
--- src/olc.c	Thu Mar 27 02:17:55 2003
+++ new/olc.c	Wed Apr  9 23:26:59 2003
@@ -1896,14 +1896,7 @@
 		return;
 	}
 
-	pClan = clan_lookup(arg);
-
-	if (!pClan || IS_NULLSTR(pClan->name))
-	{
-		chprintln(ch, "That clan does not exist.");
-		return;
-	}
-	else if (!str_cmp(arg, "save"))
+	if (!str_cmp(arg, "save"))
 	{
 		save_clans();
 		chprintln(ch, "Clan database saved.");
@@ -1920,6 +1913,11 @@
 
 		return;
 	}
+	else if (!(pClan = clan_lookup(arg)) || IS_NULLSTR(pClan->name))
+	{
+		chprintln(ch, "That clan does not exist.");
+		return;
+	}
 
 	edit_start(ch, pClan, ED_CLAN);
 	return;
@@ -1942,14 +1940,7 @@
 		return;
 	}
 
-	pCmd = command_lookup(arg);
-
-	if (!pCmd || IS_NULLSTR(pCmd->name))
-	{
-		chprintln(ch, "That command does not exist.");
-		return;
-	}
-	else if (!str_cmp(arg, "save"))
+	if (!str_cmp(arg, "save"))
 	{
 		save_commands();
 		chprintln(ch, "Command database saved.");
@@ -1968,6 +1959,11 @@
 
 		return;
 	}
+	else if (!(pCmd = command_lookup(arg)) || IS_NULLSTR(pCmd->name))
+	{
+		chprintln(ch, "That command does not exist.");
+		return;
+	}
 
 	edit_start(ch, pCmd, ED_CMD);
 
@@ -2410,9 +2406,7 @@
 	RESET_DATA *reset;
 	int iReset = 0;
 
-	pIndex--;
-
-	if (pIndex == 0 || !room->reset_first)
+	if (!room->reset_first)
 	{
 		LINK(pReset, room->reset_first, room->reset_last, next, prev);
 		return;
@@ -2420,11 +2414,14 @@
 
 	for (reset = room->reset_first; reset; reset = reset->next)
 	{
-		if (++iReset == pIndex || reset->next == NULL)
+		if (++iReset == pIndex)
 			break;
 	}
 
-	INSERT(pReset, reset, room->reset_first, next, prev);
+	if (reset)
+		INSERT(pReset, reset, room->reset_first, next, prev);
+	else
+		LINK(pReset, room->reset_first, room->reset_last, next, prev);
 	return;
 }
 
@@ -2585,7 +2582,8 @@
 					 * --------------------------
 					 */
 				{
-					if (flag_value(wear_loc_flags, arg4) == -1)
+					if (str_cmp(arg4, "none")
+						&& flag_value(wear_loc_flags, arg4) == -1)
 					{
 						chprintln(ch, "Resets: '? wear-loc'");
 						return;
@@ -2596,11 +2594,16 @@
 						return;
 					}
 					pReset->arg1 = atol(arg3);
-					pReset->arg3 = flag_value(wear_loc_flags, arg4);
-					if (pReset->arg3 == WEAR_NONE)
+					if (!str_cmp(arg4, "none"))
+					{
+						pReset->arg3 = WEAR_NONE;
 						pReset->command = 'G';
+					}
 					else
+					{
+						pReset->arg3 = flag_value(wear_loc_flags, arg4);
 						pReset->command = 'E';
+					}
 				}
 			}
 			add_reset(ch->in_room, pReset, atol(arg1));
diff -ur src/olc_act.c new/olc_act.c
--- src/olc_act.c	Thu Mar 27 02:17:55 2003
+++ new/olc_act.c	Wed Apr  9 23:26:58 2003
@@ -820,9 +820,8 @@
 
 #if 0							/* ROM OLC */
 	chprintlnf(ch, "Recall:   [%5d] %s", pArea->recall,
-			   get_room_index(pArea->recall) ? get_room_index(pArea->
-															  recall)->name :
-			   "none");
+			   get_room_index(pArea->recall) ? get_room_index(pArea->recall)->
+			   name : "none");
 #endif							/* ROM */
 
 	chprintlnf(ch, "File:     %s", pArea->file_name);
@@ -2068,9 +2067,8 @@
 				   "[v4] Weight Mult [%ld]", obj->value[0],
 				   flag_string(container_flags, obj->value[1]),
 				   get_obj_index(obj->value[2]) ? get_obj_index(obj->value
-																[2])->
-				   short_descr : "none", obj->value[2], obj->value[3],
-				   obj->value[4]);
+																[2])->short_descr
+				   : "none", obj->value[2], obj->value[3], obj->value[4]);
 		break;
 
 	case ITEM_DRINK_CON:
diff -ur src/olc_cmd.c new/olc_cmd.c
--- src/olc_cmd.c	Thu Mar 27 02:17:55 2003
+++ new/olc_cmd.c	Wed Apr  9 23:26:59 2003
@@ -139,7 +139,7 @@
 	if (!IS_NULLSTR(argument) && command_lookup(argument) == NULL)
 		sprintf(buf, argument);
 	else
-		sprintf(buf, "New Command%d", maxCommands + 1);
+		sprintf(buf, "NewCommand%d", maxCommands + 1);
 
 	pCmd = new_command();
 	replace_string(pCmd->name, buf);
diff -ur src/save.c new/save.c
--- src/save.c	Thu Mar 27 02:17:55 2003
+++ new/save.c	Wed Apr  9 23:26:59 2003
@@ -377,11 +377,11 @@
 
 	fprintf(fp, "Name %s~\n", pet->name);
 	fprintf(fp, "LogO %ld\n", current_time);
-	if (pet->short_descr != pet->pIndexData->short_descr)
+	if (str_cmp(pet->short_descr, pet->pIndexData->short_descr))
 		fprintf(fp, "ShD  %s~\n", pet->short_descr);
-	if (pet->long_descr != pet->pIndexData->long_descr)
+	if (str_cmp(pet->long_descr, pet->pIndexData->long_descr))
 		fprintf(fp, "LnD  %s~\n", pet->long_descr);
-	if (pet->description != pet->pIndexData->description)
+	if (str_cmp(pet->description, pet->pIndexData->description))
 		fprintf(fp, "Desc %s~\n", pet->description);
 	if (pet->race != pet->pIndexData->race)
 		fprintf(fp, "Race %s~\n", pet->race->name);
@@ -486,11 +486,11 @@
 
 	/* these data are only used if they do not match the defaults */
 
-	if (!ch || obj->name != obj->pIndexData->name)
+	if (!ch || str_cmp(obj->name, obj->pIndexData->name))
 		fprintf(fp, "Name %s~\n", obj->name);
-	if (!ch || obj->short_descr != obj->pIndexData->short_descr)
+	if (!ch || str_cmp(obj->short_descr, obj->pIndexData->short_descr))
 		fprintf(fp, "ShD  %s~\n", obj->short_descr);
-	if (!ch || obj->description != obj->pIndexData->description)
+	if (!ch || str_cmp(obj->description, obj->pIndexData->description))
 		fprintf(fp, "Desc %s~\n", obj->description);
 	if (!ch || obj->extra_flags != obj->pIndexData->extra_flags)
 		fprintf(fp, "ExtF %s\n", fwrite_flags(obj->extra_flags));
@@ -574,6 +574,22 @@
 	return;
 }
 
+void set_player_level(CHAR_DATA * ch, int Old, int New, int version)
+{
+	int diff = MAX_LEVEL - LEVEL_IMMORTAL;
+	int imm_level = Old - diff;
+	int mod = New - Old;
+
+	if (ch->version >= version)
+		return;
+
+	if (ch->level >= imm_level)
+		ch->level += mod;
+	if (ch->trust >= imm_level)
+		ch->trust += mod;
+	save_char_obj(ch);
+}
+
 void pload_default(CHAR_DATA * ch)
 {
 	int stat, i, iClass;
@@ -737,6 +753,14 @@
 	{
 		ch->gold /= 100;
 	}
+
+	if (found)
+		/* Change this to set player levels when changing max level 
+		   The first number is the OLD max level, the second is the
+		   NEW max level, and the third is the version that should be
+		   in the pfile after the change. */
+		set_player_level(ch, 0, 0, 0);
+
 	return found;
 }
 
diff -ur src/tables.c new/tables.c
--- src/tables.c	Thu Mar 27 02:17:55 2003
+++ new/tables.c	Wed Apr  9 23:26:59 2003
@@ -711,14 +711,14 @@
 };
 
 const struct flag_type position_flags[] = {
-	{"dead", POS_DEAD, FALSE},
+	{"dead", POS_DEAD, TRUE},
 	{"mortal", POS_MORTAL, FALSE},
 	{"incap", POS_INCAP, FALSE},
 	{"stunned", POS_STUNNED, FALSE},
 	{"sleeping", POS_SLEEPING, TRUE},
 	{"resting", POS_RESTING, TRUE},
 	{"sitting", POS_SITTING, TRUE},
-	{"fighting", POS_FIGHTING, FALSE},
+	{"fighting", POS_FIGHTING, TRUE},
 	{"standing", POS_STANDING, TRUE},
 	{NULL, 0, 0}
 };
diff -ur src/tablesave.c new/tablesave.c
--- src/tablesave.c	Thu Mar 27 02:17:55 2003
+++ new/tablesave.c	Wed Apr  9 23:26:59 2003
@@ -771,8 +771,8 @@
 			fprintf(fp, "%s\t\t", temp->field);
 			for (i = 0;
 				 i <
-				 (temp->argument ? (int) temp->argument : *(int *) temp->
-				  argument2); i++)
+				 (temp->argument ? (int) temp->
+				  argument : *(int *) temp->argument2); i++)
 				fprintf(fp, "%d ", pbool[i] == TRUE ? 1 : 0);
 			fprintf(fp, "@\n");
 			break;
diff -ur src/webserver.c new/webserver.c
--- src/webserver.c	Thu Mar 27 02:17:55 2003
+++ new/webserver.c	Wed Apr  9 23:26:59 2003
@@ -1170,8 +1170,8 @@
 		else if (victim->in_room == victim->fighting->in_room)
 		{
 			strcat(buf,
-				   IS_NPC(victim) ? victim->fighting->short_descr : victim->
-				   fighting->name);
+				   IS_NPC(victim) ? victim->fighting->
+				   short_descr : victim->fighting->name);
 			strcat(buf, ".");
 		}
 		else