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