/*

 ---  ---  ---  ---  ---  ---          ---  ---  ---  --- 
 |S|  |P|  |I|  |R|  |A|  |L|          |V|  |O|  |I|  |D| 
 ---  ---  ---  ---  ---  ---          ---  ---  ---  ---

  replace your stock wizhelp with this
  the command will need to be edited in a few places
  to match how your imm levels are setup 
 






*/








void do_wizhelp( CHAR_DATA *ch, char *argument )
{
        CMDTYPE * cmd;
        int col, hash;
        int level2 = 0;
        int level = 0;
        int lev_end = 0;
        char buf[MAX_STRING_LENGTH];
        char arg[MAX_INPUT_LENGTH];
        char arg2[MAX_INPUT_LENGTH];
        char title[MAX_STRING_LENGTH];
        
        argument = one_argument( argument, arg);
        argument = one_argument( argument, arg2);
        
      
    col = 0;
    set_pager_color( AT_PLAIN, ch );
        send_to_pager( "\n\r", ch );
        
        /*
        The if statement lines below 
        if there is no argument all commands leveled
        100 to 116 are shown
        if there is an argument the argument is converted
        to an intiger and all commands from that
        intiger up to 116 are shown in the wizhelp
        */
        if ( arg[0] == '\0' )
        {
         level = LEVEL_AVATAR;
         lev_end = MAX_LEVEL;
        }                    
        else
        /*
        The if statement below enable wizhelp to show commands
        in a range of levels
        from arg to arg2
        */
        if ( arg[0] != '\0' && arg2[0] != '\0') 
        {
         level = atoi( arg );
         lev_end = atoi( arg2 );
        }
        else
        if ( arg[0] != '\0' && arg2[0] == '\0')
        {
         level = atoi( arg );
         lev_end = MAX_LEVEL;
        }
         
        
         
        
        for ( level2 = level ; level2 <= lev_end ; level2++ )
        {
	            switch(level2)
	            {
		         case 100:  sprintf(title,"&YAvatar"); break;
		         case 101:  sprintf(title,"&YTrial Immortals"); break;
		         case 102:  sprintf(title,"&YTrial Rp Enforcers"); break;
		         case 103:  sprintf(title,"&YRp Enforcers"); break;
		         case 104:  sprintf(title,"&YSenior Rp Enforcers"); break;
		         case 105:  sprintf(title,"&YHead Rp Enforcer"); break;
		         case 106:  sprintf(title,"&YTrial Builders"); break;
		         case 107:  sprintf(title,"&YBuilders"); break;
		         case 108:  sprintf(title,"&YShip Builders"); break;
		         case 109:  sprintf(title,"&YSenior Builders"); break;
		         case 110:  sprintf(title,"&YHead Builder"); break;
		         case 111:  sprintf(title,"&YTrial Coders"); break;
		         case 112:  sprintf(title,"&YCoders"); break;
		         case 113:  sprintf(title,"&YSenior Coders"); break;
		         case 114:  sprintf(title,"&YHead Coder"); break;
		         case 115:  sprintf(title,"&YTrial Admins"); break;
		         case 116:  sprintf(title,"&YAdmins"); break;
		         default: sprintf(title,"&RERROR"); break;
	            }
	            
                sprintf( buf, "\n\r&R[&zLevel &G%d &zCommands&R] %s", level2,title );

                col = 0;
           if ( get_trust(ch) >= level2 )
           {
                send_to_pager(buf,ch);
                send_to_pager( "\n\r", ch );

                for ( hash = 0; hash < 126; hash++ )
                {
                        for ( cmd = command_hash[hash]; cmd; cmd = cmd->next )
                        {
                                if ( cmd->level >= LEVEL_IMMORTAL && cmd->level <= get_trust( ch ) && cmd->level == level2 )

                                {
                                        pager_printf( ch, "&Y-&B %-15.15s &Y- ", cmd->name );
                                        if ( ++col % 6 == 0 )
                                                send_to_pager( "\n\r", ch );
                                }
                        }
                }
           }
        }
        if ( col % 6 != 0 )
        send_to_pager( "\n\r", ch );
   
   
  
    
    
  return;
}