diff -i smaug14/src/grub.c smaug18/src/grub.c
8c8
<  * Tricops and Fireblade                                      |             *
---
>  * Tricops, Fireblade, Edmond, Conran                         |             *
20a21,24
> extern OBJ_INDEX_DATA *obj_index_hash[MAX_KEY_HASH];
> extern MOB_INDEX_DATA *mob_index_hash[MAX_KEY_HASH];
> extern ROOM_INDEX_DATA *room_index_hash[MAX_KEY_HASH];
> 
181c185
<       int lo_vnum = 1, hi_vnum = 32767;
---
>       int lo_vnum = 1, hi_vnum = MAX_VNUM;
183c187
<       int i, disp_cou = 0, disp_limit;
---
>       int hash, disp_cou = 0, disp_limit;
207,208c211,212
<                       lo_vnum = URANGE( 1, atoi( arg2 ), 32767 );
<                       hi_vnum = URANGE( 1, atoi( arg3 ), 32767 );
---
>                       lo_vnum = URANGE( 1, atoi( arg2 ), MAX_VNUM );
>                       hi_vnum = URANGE( 1, atoi( arg3 ), MAX_VNUM );
222,224c226,227
<       for ( i = lo_vnum; i <= hi_vnum; i++ )
<       {
<               if ( ( pObj = get_obj_index( i ) ) && ( pProg = pObj->mudprogs ) )
---
>       for ( hash = 0; hash < MAX_KEY_HASH; hash++ )
>               for ( pObj = obj_index_hash[hash]; pObj; pObj = pObj->next )
226,231c229,240
<                       tot_vnum = 0;
<                       for ( ; pProg; pProg = pProg->next )
<                               tot_vnum += str_count( pProg->comlist, argument );
<                       tot_hits += tot_vnum;
<                       if ( tot_vnum && ++disp_cou <= disp_limit )
<                               pager_printf( ch, "%5d %5d %5d\n\r", disp_cou, i, tot_vnum );
---
>                       if ( pObj->vnum < lo_vnum || pObj->vnum > hi_vnum )
>                               continue;
> 
>                       if ( pObj && ( pProg = pObj->mudprogs ) )
>                       {
>                               tot_vnum = 0;
>                               for ( ; pProg; pProg = pProg->next )
>                                       tot_vnum += str_count( pProg->comlist, argument );
>                               tot_hits += tot_vnum;
>                               if ( tot_vnum && ++disp_cou <= disp_limit )
>                                       pager_printf( ch, "%5d %5d %5d\n\r", disp_cou, pObj->vnum, tot_vnum );
>                       }
233d241
<       }
264a273
> 
272c281
<       int lo_vnum = 1, hi_vnum = 32767;
---
>       int lo_vnum = 1, hi_vnum = MAX_VNUM;
274c283,284
<       int i, disp_cou = 0, disp_limit;
---
>       int disp_cou = 0, disp_limit;
>       int hash;
298,299c308,309
<                       lo_vnum = URANGE( 1, atoi( arg2 ), 32767 );
<                       hi_vnum = URANGE( 1, atoi( arg3 ), 32767 );
---
>                       lo_vnum = URANGE( 1, atoi( arg2 ), MAX_VNUM );
>                       hi_vnum = URANGE( 1, atoi( arg3 ), MAX_VNUM );
313,315c323,324
<       for ( i = lo_vnum; i <= hi_vnum; i++ )
<       {
<               if ( ( pMob = get_mob_index( i ) ) && ( pProg = pMob->mudprogs ) )
---
>       for ( hash = 0; hash < MAX_KEY_HASH; hash++ )
>               for ( pMob = mob_index_hash[hash]; pMob; pMob = pMob->next )
317,322c326,337
<                       tot_vnum = 0;
<                       for ( ; pProg; pProg = pProg->next )
<                               tot_vnum += str_count( pProg->comlist, argument );
<                       tot_hits += tot_vnum;
<                       if ( tot_vnum && ++disp_cou <= disp_limit )
<                               pager_printf( ch, "%5d %5d %5d\n\r", disp_cou, i, tot_vnum );
---
>                       if ( pMob->vnum < lo_vnum || pMob->vnum > hi_vnum )
>                               continue;
> 
>                       if ( pMob && ( pProg = pMob->mudprogs ) )
>                       {
>                               tot_vnum = 0;
>                               for ( ; pProg; pProg = pProg->next )
>                                       tot_vnum += str_count( pProg->comlist, argument );
>                               tot_hits += tot_vnum;
>                               if ( tot_vnum && ++disp_cou <= disp_limit )
>                                       pager_printf( ch, "%5d %5d %5d\n\r", disp_cou, pMob->vnum, tot_vnum );
>                       }
324d338
<       }
363c377
<       int lo_vnum = 1, hi_vnum = 32767;
---
>       int lo_vnum = 1, hi_vnum = MAX_VNUM;
365c379
<       int i, disp_cou = 0, disp_limit;
---
>       int hash, disp_cou = 0, disp_limit;
389,390c403,404
<                       lo_vnum = URANGE( 1, atoi( arg2 ), 32767 );
<                       hi_vnum = URANGE( 1, atoi( arg3 ), 32767 );
---
>                       lo_vnum = URANGE( 1, atoi( arg2 ), MAX_VNUM );
>                       hi_vnum = URANGE( 1, atoi( arg3 ), MAX_VNUM );
407,409c421,422
<       for ( i = lo_vnum; i <= hi_vnum; i++ )
<       {
<               if ( ( pRoom = get_room_index( i ) ) && ( pProg = pRoom->mudprogs ) )
---
>       for ( hash = 0; hash < MAX_KEY_HASH; hash++ )
>               for ( pRoom = room_index_hash[hash]; pRoom; pRoom = pRoom->next )
411,416c424,435
<                       tot_vnum = 0;
<                       for ( ; pProg; pProg = pProg->next )
<                               tot_vnum += str_count( pProg->comlist, argument );
<                       tot_hits += tot_vnum;
<                       if ( tot_vnum && ++disp_cou <= disp_limit )
<                               pager_printf( ch, "%5d %5d %5d\n\r", disp_cou, i, tot_vnum );
---
>                       if ( pRoom->vnum < lo_vnum || pRoom->vnum > hi_vnum )
>                               continue;
> 
>                       if ( pRoom && ( pProg = pRoom->mudprogs ) )
>                       {
>                               tot_vnum = 0;
>                               for ( ; pProg; pProg = pProg->next )
>                                       tot_vnum += str_count( pProg->comlist, argument );
>                               tot_hits += tot_vnum;
>                               if ( tot_vnum && ++disp_cou <= disp_limit )
>                                       pager_printf( ch, "%5d %5d %5d\n\r", disp_cou, pRoom->vnum, tot_vnum );
>                       }
418d436
<       }
499,501d516
< /*
<  * Displays the help screen for the "rgrub" command
<  */
505,507c520,521
<       send_to_char( "rgrub st n lo hi - sector type search.\n\r"
<               "   list room vnums between lo and hi that match n.\n\r", ch );
<       send_to_char( "   e.g. rgrub st 6 901 969 - list all rooms in Olympus\n\r" "      that are sectortype 6.\n\r", ch );
---
>       send_to_char( "rgrub <type> n lo hi -  type search.\n\r list room vnums between lo and hi that match n on <type> of search.\n\r", ch );
>       send_to_char( "   e.g. rgrub st 6 901 969 - list all rooms in Olympus\n\r that are sectortype 6.\n\r", ch );
508a523,524
>       send_to_char( "   e.g. rgrub f nomob 901 969 - list all rooms in Olympus\n\rthat are flagged nomon.\n\r", ch );
>       send_to_char( "   e.g. rgrub f nomob - list all rooms flagged nomob.\n\r", ch );
512a529,534
> /* modified by Edmond to support room flag searches 000820 */
> 
> #define RGRUB_MAX_SIZE 5000
>       ROOM_INDEX_DATA *pRoom;
>       int x, lo, hi, hit_cou, cou, vnum[RGRUB_MAX_SIZE];
> 
524c546
<       if ( !str_cmp( arg1, "st" ) )
---
>       if ( !arg2 )    /* empty arg gets help scrn */
526,528c548,550
< #define RGRUB_ST_MAX_SIZE 5000
<               ROOM_INDEX_DATA *pRoom;
<               int match, lo, hi, hit_cou, cou, vnum[RGRUB_ST_MAX_SIZE];
---
>               rgrub_help( ch );
>               return;
>       }
530,536c552,554
<               if ( !*arg2 )   /* empty arg gets help scrn */
<               {
<                       rgrub_help( ch );
<                       return;
<               }
<               else
<                       match = atoi( arg2 );
---
>       hit_cou = 0;
>       lo = ( *arg3 ) ? atoi( arg3 ) : 0;
>       hi = ( *arg4 ) ? atoi( arg4 ) : MAX_VNUM;
538,540c556,561
<               hit_cou = 0;    /* number of vnums found */
<               lo = ( *arg3 ) ? atoi( arg3 ) : 0;
<               hi = ( *arg4 ) ? atoi( arg4 ) : 32767;
---
> 
>       if ( !str_cmp( arg1, "st" ) )
>       {
>               int match;
> 
>               match = atoi( arg2 );
550c571
<                                               if ( match == pRoom->sector_type && hit_cou < RGRUB_ST_MAX_SIZE )
---
>                                               if ( match == pRoom->sector_type && hit_cou < RGRUB_MAX_SIZE )
557c578
<                       ch_printf( ch, "%5d %6d\n\r", cou + 1, vnum[cou] );    /* display vnums */
---
>                       ch_printf( ch, "%6d\n\r", vnum[cou] );  /* display vnums */
560c581,582
<       else
---
> 
>       if ( !str_cmp( arg1, "f" ) )
562c584,604
<               rgrub_help( ch );
---
> 
>               ch_printf( ch, "\n\rRoom Vnums\n\r" );
>               for ( cou = 0; cou < MAX_KEY_HASH; cou++ )
>               {
>                       if ( room_index_hash[cou] )
>                               for ( pRoom = room_index_hash[cou]; pRoom; pRoom = pRoom->next )
>                               {
>                                       if ( pRoom->vnum >= lo && pRoom->vnum <= hi )
>                                       {
>                                               for ( x = 0; x < MAX_ROOM_FLAG; x++ )
>                                                       if ( xIS_SET( pRoom->room_flags, x ) )
>                                                       {
>                                                               if ( !str_cmp( arg2, r_flags[x] ) && hit_cou < RGRUB_MAX_SIZE )
>                                                                       vnum[hit_cou++] = pRoom->vnum;
>                                                       }
>                                       }
>                               }
>               }
>               qsort( vnum, hit_cou, sizeof( int ), rgrub_int_comp );  /* sort vnums    */
>               for ( cou = 0; cou < hit_cou; cou++ )
>                       ch_printf( ch, "%6d\n\r", vnum[cou] );  /* display vnums */
564a607,610
> 
>       rgrub_help( ch );
>       return;
> 
566a613
> 
1700,1701c1747,1748
<       for ( cou = 1; cou <= GR_NUM_FIELDS; cou++ )    /* check field name    */
<               if ( !str_prefix( gr_fd[cou - 1].nam, arg ) )
---
>       for ( cou = 0; cou < GR_NUM_FIELDS; cou++ )     /* check field name    */
>               if ( !str_prefix( gr_fd[cou].nam, arg ) )
1703,1704c1750,1751
<                       arg += strlen( gr_fd[cou - 1].nam );    /* advance to operator */
<                       gr_op[*op_num].field = cou - 1; /* store field name    */
---
>                       arg += strlen( gr_fd[cou].nam );        /* advance to operator */
>                       gr_op[*op_num].field = cou;     /* store field name    */
1730,1731c1777,1778
<               "   ", "Gui", "DS ", "MS ", "RB ", "AR ", "Bru", "Las", "Nos", "Tre",
<               "Ven", "Inc", "Baa", "Rol"
---
>               "   ", "Gui", "DS ", "MS ", "RB ", "AR ", "Sco", "Sur", "Nom", "Oph",
>               "Ven", "Inc", "Baa", "Rol", "Asc", "Dae", "Pho", "Ill", "Mer", "Ana"
1733c1780
<       char council[][4] = { "   ", "CoE", "MC ", "NC ", "Pro", "PK ", "QC ", "Neo", "Cod", "AC ",
---
>       char council[][4] = { "   ", "CoE", "MC ", "NC ", "VC ", "PK ", "QC ", "Neo", "Cod", "CoB",
1833a1881,1882
>  *
>  * Redone by Edmond, September of 2000 -- Blodkai
1840a1890,1891
>       char arg2[MAX_STRING_LENGTH];
>       char buf[MAX_STRING_LENGTH];
1846a1898
>       argument = one_argument( argument, arg2 );
1848c1900
<       if ( !*arg1 )
---
>       if ( !*arg1 || ( !is_number( arg1 ) && str_cmp( arg1, "layer" ) ) )
1849a1902
>               set_char_color( AT_IMMORT, ch );
1851c1904,1934
<               send_to_char( "showlayers n  -  display maximum of n lines.\n\r", ch );
---
>               send_to_char( "showlayers n <w> -  display maximum of n lines <with w wear location.>\n\r", ch );
>               send_to_char( "showlayers layer ## - Show all of the sublayers a particular layer number uses.  \n\r", ch );
>               send_to_char( " Example: showlayers 30 - Show 30 layerable items.\n\r", ch );
>               send_to_char( "          showlayers 30 arms  - Show 30 items layerable on arms wearloc\n\r", ch );
>               send_to_char( "          showlayers layer 126  - Displays each of the sublayers to 126\n\r", ch );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "layer" ) )
>       {
>               int match;
>               int i = 1;
>               int argnum;
> 
>               argnum = atoi( arg2 );
>               if ( argnum < 1 || argnum > 128 )
>               {
>                       send_to_char( "Invalid Layer Number\n\r", ch );
>                       return;
>               }
> 
>               ch_printf_color( ch, " &GThe layer number %d uses the following sub layers:\n\r", argnum );
>               ch_printf_color( ch, " &Y--------------------------------------\n\r" );
>               for ( match = 0; match < 8; match++ )
>               {
>                       i = ( match == 0 ? 1 : i * 2 );
> 
>                       if IS_SET
>                               ( ( 1 << match ), argnum ) ch_printf_color( ch, " &Y%4d", i );
>               }
>               ch_printf_color( ch, "\n\r" );
1856c1939,1940
<       pager_printf( ch, "      Vnum      Wear Layer   Description \n\r" );
---
> 
>       send_to_pager_color( "   &B#  &cVnum      &WWear &YLayer   &CDescription\n\r", ch );
1857a1942
>       {
1858a1944
>               {
1859a1946
>                       {
1862,1864c1949,1955
<                                       if ( ++cou <= display_limit )
<                                               pager_printf( ch, "%4d %5d %9d %5d   %s\n\r",
<                                                       cou, pObj->vnum, pObj->wear_flags, pObj->layers, pObj->short_descr );
---
>                                       if ( arg2[0] == '\0' || IS_SET( pObj->wear_flags, 1 << get_wflag( arg2 ) ) )
>                                               if ( ++cou <= display_limit )
>                                               {
>                                                       sprintf( buf, "&B%4d &c%5d &W%9d &Y%5d   &C%s\n\r",
>                                                               cou, pObj->vnum, pObj->wear_flags, pObj->layers, pObj->short_descr );
>                                                       send_to_pager_color( buf, ch );
>                                               }
1865a1957,1962
>                       }
>               }
>       }
>       if ( !cou )
>               send_to_pager_color( "   &RNo Matches\n\r", ch );
>       return;
1916a2014,2022
> void diag_nivek_obj( CHAR_DATA * ch, OBJ_DATA * obj )
> {
>       pager_printf( ch, "***obj=%s\n\r", obj->name );
>       if ( obj->prev_content )
>               diag_nivek_obj( ch, obj->prev_content );
>       if ( obj->first_content )
>               diag_nivek_obj( ch, obj->last_content );
> }
> 
1990a2097
>       int ctimes;
2004a2112,2308
>       if ( !str_cmp( arg1, "compass" ) )
>       {
>               CHAR_DATA *victim;
>               DESCRIPTOR_DATA *d;
>               int compcount = 0;
> 
>               for ( d = first_descriptor; d; d = d->next )
>               {
>                       if ( ( d->connected == CON_PLAYING || d->connected == CON_EDITING )
>                               && ( victim = d->character ) != NULL && !IS_NPC( victim ) )
>                       {
>                               if ( xIS_SET( victim->act, PLR_COMPASS ) )
>                                       compcount++;
>                       }
>               }
>               ch_printf( ch, "%d compass users.\n\r", compcount );
>               return;
>       }
> 
> 
>       if ( !str_cmp( arg1, "clones" ) )
>       {
>               DESCRIPTOR_DATA *dsrc, *ddst, *dsrc_next, *ddst_next;
>               DESCRIPTOR_DATA *dlistf, *dlistl;
>               sh_int clone_count;
> 
>               set_pager_color( AT_PLAIN, ch );
>               pager_printf( ch, " %-12.12s | %-12.12s | %-s\n\r", "characters", "user", "host" );
>               pager_printf( ch, "--------------+--------------+---------------------------------------------\n\r" );
> 
>               dlistf = dlistl = NULL;
> 
>               for ( dsrc = first_descriptor; dsrc; dsrc = dsrc_next )
>               {
>                       if ( ( dsrc->character && !can_see( ch, dsrc->character ) ) || !dsrc->user || !dsrc->host )
>                       {
>                               dsrc_next = dsrc->next;
>                               continue;
>                       }
> 
>                       pager_printf( ch, " %-12.12s |",
>                               dsrc->original ? dsrc->original->name : ( dsrc->character ? dsrc->character->name : "(No name)" ) );
>                       clone_count = 1;
> 
>                       for ( ddst = first_descriptor; ddst; ddst = ddst_next )
>                       {
>                               ddst_next = ddst->next;
> 
>                               if ( dsrc == ddst )
>                                       continue;
>                               if ( ( ddst->character && !can_see( ch, dsrc->character ) ) || !ddst->user || !ddst->host )
>                                       continue;
> 
>                               if ( !str_cmp( dsrc->user, ddst->user ) && !str_cmp( dsrc->host, ddst->host ) )
>                               {
>                                       UNLINK( ddst, first_descriptor, last_descriptor, next, prev );
>                                       LINK( ddst, dlistf, dlistl, next, prev );
>                                       pager_printf( ch, "              |\n\r %-12.12s |",
>                                               ddst->original ? ddst->original->name :
>                                               ( ddst->character ? ddst->character->name : "(No name)" ) );
>                                       clone_count++;
>                               }
>                       }
> 
>                       pager_printf( ch, " %-12.12s | %s (%d clone%s)\n\r",
>                               dsrc->user, dsrc->host, clone_count, clone_count > 1 ? "s" : "" );
> 
>                       dsrc_next = dsrc->next;
> 
>                       UNLINK( dsrc, first_descriptor, last_descriptor, next, prev );
>                       LINK( dsrc, dlistf, dlistl, next, prev );
>               }
> 
> 
>               for ( dsrc = dlistf; dsrc; dsrc = dsrc_next )
>               {
>                       dsrc_next = dsrc->next;
>                       UNLINK( dsrc, dlistf, dlistl, next, prev );
>                       LINK( dsrc, first_descriptor, last_descriptor, next, prev );
>               }
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "mcount" ) )
>       {
>               MOB_INDEX_DATA *pMob;
>               int mcount;
>               int hash;
>               int totcount = 0;
> 
>               if ( arg2[0] == '\0' )
>               {
>                       send_to_pager_color( "\n\rSyntax:  mcount <minimum amount>\n\r", ch );
>                       return;
>               }
> 
>               mcount = atoi( arg2 );
> 
>               pager_printf( ch, "\n\rMobile count:\n\r" );
>               for ( hash = 0; hash < MAX_KEY_HASH; hash++ )
>                       for ( pMob = mob_index_hash[hash]; pMob; pMob = pMob->next )
>                       {
>                               if ( pMob->count < mcount )
>                                       continue;
>                               else if ( pMob->count >= mcount )
>                               {
>                                       ch_printf( ch, "%5d\t\t%d\t\t%s\n\r", pMob->count, pMob->vnum, pMob->player_name );
>                                       totcount++;
>                               }
>                       }
>               pager_printf( ch, "%d found.\n\r", totcount );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "dice" ) )
>       {
>               ch_printf( ch, "%d  %d\n\r", dice( level, 1 ), dice( level, 6 ) );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "color1" ) )
>       {
>               send_to_char( "Send_to_char_color with codes\n\r", ch );
>               send_to_char_color( "&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B\n\r", ch );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "color2" ) )
>       {
>               send_to_char( "Send_to_char with codes\n\r", ch );
>               send_to_char( "&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B!&B\n\r", ch );
>               return;
>       }
>       if ( !str_cmp( arg1, "color3" ) )
>       {
>               send_to_char( "Send_to_char with no codes\n\r", ch );
>               send_to_char( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\r", ch );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "color4" ) )
>       {
>               send_to_char( "Send_to_char_color with no codes\n\r", ch );
>               send_to_char_color( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\r", ch );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "color5" ) )
>       {
>               send_to_char( "Set_char_color and send_to_char_color in for\n\r", ch );
>               for ( ctimes = 0; ctimes < 15; ctimes++ )
>               {
>                       set_char_color( AT_BLUE, ch );
>                       send_to_char( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\r", ch );
>               }
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "color6" ) )
>       {
>               send_to_char( "Set_char_color one time\n\r", ch );
>               set_char_color( AT_BLUE, ch );
>               set_char_color( AT_WHITE, ch );
>               send_to_char( "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\n\r", ch );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "roll" ) )
>       {
>               ch_printf( ch, "%d\n\r", number_range( 66 * .9, 66 * 1.2 ) );
>               return;
>       }
> 
>       if ( !str_cmp( arg1, "bits" ) )
>       {
>               int match;
>               int argnum;
>               int i = 1;
> 
>               argnum = atoi( arg2 );
>               ch_printf_color( ch, " &Y| BIT | MATCHED |     INT    |\n\r" );
>               ch_printf_color( ch, "  &Y----------------------------\n\r" );
> 
>               for ( match = 0; match < 31; match++ )
>               {
>                       i = ( match == 0 ? 1 : i * 2 );
> 
>                       if IS_SET
>                               ( ( 1 << match ), argnum )
>                                       ch_printf_color( ch, " &Y| &c%3d &Y| &W%5d   &Y| &G%10d &Y|\n\r", match, match, i );
>                       else
>                               ch_printf_color( ch, " &Y| &c%3d &Y|         |            |\n\r", match );
>               }
>               ch_printf_color( ch, "  &Y----------------------------\n\r" );
>               return;
>       }
> 
2012a2317,2379
>       if ( !str_cmp( arg1, "clones" ) )
>       {
>               DESCRIPTOR_DATA *dsrc, *ddst, *dsrc_next, *ddst_next;
>               DESCRIPTOR_DATA *dlistf, *dlistl;
>               sh_int clone_count;
> 
>               set_pager_color( AT_PLAIN, ch );
>               pager_printf( ch, " %-12.12s | %-12.12s | %-s\n\r", "characters", "user", "host" );
>               pager_printf( ch, "--------------+--------------+---------------------------------------------\n\r" );
> 
>               dlistf = dlistl = NULL;
> 
>               for ( dsrc = first_descriptor; dsrc; dsrc = dsrc_next )
>               {
>                       if ( ( dsrc->character && !can_see( ch, dsrc->character ) ) || !dsrc->user || !dsrc->host )
>                       {
>                               dsrc_next = dsrc->next;
>                               continue;
>                       }
> 
>                       pager_printf( ch, " %-12.12s |",
>                               dsrc->original ? dsrc->original->name : ( dsrc->character ? dsrc->character->name : "(No name)" ) );
>                       clone_count = 1;
> 
>                       for ( ddst = first_descriptor; ddst; ddst = ddst_next )
>                       {
>                               ddst_next = ddst->next;
> 
>                               if ( dsrc == ddst )
>                                       continue;
>                               if ( ( ddst->character && !can_see( ch, dsrc->character ) ) || !ddst->user || !ddst->host )
>                                       continue;
> 
>                               if ( !str_cmp( dsrc->user, ddst->user ) && !str_cmp( dsrc->host, ddst->host ) )
>                               {
>                                       UNLINK( ddst, first_descriptor, last_descriptor, next, prev );
>                                       LINK( ddst, dlistf, dlistl, next, prev );
>                                       pager_printf( ch, "              |\n\r %-12.12s |",
>                                               ddst->original ? ddst->original->name :
>                                               ( ddst->character ? ddst->character->name : "(No name)" ) );
>                                       clone_count++;
>                               }
>                       }
> 
>                       pager_printf( ch, " %-12.12s | %s (%d clone%s)\n\r",
>                               dsrc->user, dsrc->host, clone_count, clone_count > 1 ? "s" : "" );
> 
>                       dsrc_next = dsrc->next;
> 
>                       UNLINK( dsrc, first_descriptor, last_descriptor, next, prev );
>                       LINK( dsrc, dlistf, dlistl, next, prev );
>               }
> 
>               for ( dsrc = dlistf; dsrc; dsrc = dsrc_next )
>               {
>                       dsrc_next = dsrc->next;
>                       UNLINK( dsrc, dlistf, dlistl, next, prev );
>                       LINK( dsrc, first_descriptor, last_descriptor, next, prev );
>               }
>               return;
>       }
> 
> 
2029c2396
<               hi = ( *arg4 ) ? atoi( arg4 ) : 32767;
---
>               hi = ( *arg4 ) ? atoi( arg4 ) : MAX_VNUM;
2039c2406
<                                               if ( match == ( match & pRoom->room_flags ) && hit_cou < DIAG_RF_MAX_SIZE )
---
>                                               if ( xIS_SET( pRoom->room_flags, match ) && hit_cou < DIAG_RF_MAX_SIZE )
2166a2534,2538
>       if ( !str_cmp( arg1, "nivek" ) )
>       {
>               diag_nivek_obj( ch, ch->first_carrying );
>               return;
>       }