diff -i smaug14/src/reset.c  smaug18/src/reset.c
8c8
<  * Tricops and Fireblade                                      |             *
---
>  * Tricops, Fireblade, Edmond, Conran                         |             *
67c67,68
< void list_resets args( ( CHAR_DATA * ch, AREA_DATA * pArea, ROOM_INDEX_DATA * pRoom, int start, int end ) );
---
> void list_resets args( ( CHAR_DATA * ch, AREA_DATA * pArea,
>               ROOM_INDEX_DATA * pRoom, int start, int end, char extraarg ) );
374a376
>       char extraarg = '\0';
427c429
<               int start, end;
---
>               int start, end, nNumber;
429,433c431,493
<               argument = one_argument( argument, arg );
<               start = is_number( arg ) ? atoi( arg ) : -1;
<               argument = one_argument( argument, arg );
<               end = is_number( arg ) ? atoi( arg ) : -1;
<               list_resets( ch, pArea, aRoom, start, end );
---
>               start = -1;
>               end = -1;
>               nNumber = 0;
> 
>               for ( ;; )
>               {
>                       argument = one_argument( argument, arg );
>                       if ( arg[0] == '\0' )
>                               break;
>                       if ( is_number( arg ) )
>                       {
>                               switch ( ++nNumber )
>                               {
>                                       case 1:
>                                               start = atoi( arg );
>                                               break;
>                                       case 2:
>                                               end = atoi( arg );
>                                               break;
>                                       default:
>                                               send_to_char( "Only two number parameters allowed.\n\r", ch );
>                                               return;
>                               }
>                       }
>                       else
>                       {
> /* Tiki - March 2002
> Check for reset type from below
>   A = all objects (E, G, O, and P)
>   B = bit                      D = door
>   E = object worn by mob       G = object in mob's inventory
>   H = hide flag on object      M = mob
>   O = object placed in room    P = object placed in container
>   R = randomized rooms (maze)  T = trap
> */
>                               extraarg = UPPER( arg[0] );
>                               switch ( extraarg )
>                               {
>                                       default:
>                                               send_to_char( "Reset list parameter must be one of the following:\n\r", ch );
>                                               send_to_char( "  A = all objects (E, G, O, and P)\n\r", ch );
>                                               send_to_char( "  B = bit                      D = door\n\r", ch );
>                                               send_to_char( "  E = object worn by mob       G = object in mob's inventory\n\r", ch );
>                                               send_to_char( "  H = hide flag on object      M = mob\n\r", ch );
>                                               send_to_char( "  O = object placed in room    P = object placed in container\n\r", ch );
>                                               send_to_char( "  R = randomized rooms (maze)  T = trap\n\r", ch );
>                                               return;
>                                       case 'A':
>                                       case 'B':
>                                       case 'D':
>                                       case 'E':
>                                       case 'G':
>                                       case 'H':
>                                       case 'M':
>                                       case 'O':
>                                       case 'P':
>                                       case 'R':
>                                       case 'T':
>                                               break;
>                               }
>                       }
>               }
>               list_resets( ch, pArea, aRoom, start, end, extraarg );
436a497
> 
1359c1420
<                                       if ( pRoomPrev && IS_SET( pRoomPrev->room_flags, ROOM_PET_SHOP ) )
---
>                                       if ( pRoomPrev && xIS_SET( pRoomPrev->room_flags, ROOM_PET_SHOP ) )
1366a1428,1429
>                               if ( HAS_PROG( mob->pIndexData, LOAD_PROG ) )
>                                       mprog_percent_check( mob, NULL, NULL, NULL, NULL, LOAD_PROG );
1384c1447
<                                       int olevel = generate_itemlevel( pArea, pObjIndex );
---
>                                       int olevel = UMIN( generate_itemlevel( pArea, pObjIndex ), level );
1535c1598
<                                       to_obj = make_trap( pReset->arg1, pReset->arg1, 10, pReset->extra );
---
>                                       to_obj = make_trap( pReset->arg2, pReset->arg1, 10, pReset->extra );
1639c1702
<                               if ( IS_SET( pReset->arg2, BIT_RESET_SET ) )
---
>                               if ( IS_SET( pReset->arg2, BIT_RESET_SET ) && plc != NULL )
1712c1775
< void list_resets( CHAR_DATA * ch, AREA_DATA * pArea, ROOM_INDEX_DATA * pRoom, int start, int end )
---
> void list_resets( CHAR_DATA * ch, AREA_DATA * pArea, ROOM_INDEX_DATA * pRoom, int start, int end, char extraarg )
1724a1788
>       bool show = FALSE;
1736a1801
>               show = FALSE;
1740c1805,1815
<               sprintf( buf, "%2d) ", num );
---
>               if ( !extraarg || extraarg == '\0' || extraarg == pReset->command )
>                       show = TRUE;
>               else    /*Check for 'A', which displays all objects (E, G, O, and P) */
>               {
>                       if ( extraarg == 'A' &&
>                               ( pReset->command == 'E' ||
>                                       pReset->command == 'G' || pReset->command == 'O' || pReset->command == 'P' ) )
>                               show = TRUE;
>               }
> 
>               sprintf( buf, "%3d) ", num );
1760c1835
<                               if ( ( room = get_room_index( pReset->arg3 - 1 ) ) && IS_SET( room->room_flags, ROOM_PET_SHOP ) )
---
>                               if ( ( room = get_room_index( pReset->arg3 - 1 ) ) && xIS_SET( room->room_flags, ROOM_PET_SHOP ) )
2002c2077
<               if ( start == -1 || num >= start )
---
>               if ( ( start == -1 || num >= start ) && show )