private ArrayList<ItemObject> loadItemObjects( String      sourceFile )
                         throws IOException, BadDataTypeException  {
    ArrayList<ItemObject> result = new ArrayList<ItemObject>();
    String[]    line;
    InputStream stream;
    CSVReader   reader = null;
    int         num, type, coun;
    String      name = "";

    try {
      stream = getClass().getClassLoader().getResourceAsStream( sourceFile );
      reader = new CSVReader( new BufferedReader( new InputStreamReader( stream ) ) );
    } // try
    catch ( NullPointerException notUsed ) {
      throw new IOException( "Unable to open file: " + sourceFile );
    } // catch

    while ( ( line = reader.readNext() ) != null) {

      if ( ( !line[0].startsWith("#") ) && ( line[0].trim().length() ) > 0 ) {  // skip comment & blank
        if ( line.length == 4 ) {
          num  = Data.getIntegerValue(  line[0].trim() );
          name =                        line[1].trim()  ;
          type = ItemTypes.getItemType( line[2].trim() );
          coun = Data.getIntegerValue(  line[3].trim() );
          result.add( new ItemObject( num, name, type, coun ) );
        } // if
        else {
          throw new BadDataTypeException( "! Invalid data line: (" + sourceFile + "):\n" + line[1] );
        } // else
      } // if
      Splash.updateSplashProgress( 1 );

    } // while

    if ( reader != null ) { reader.close(); } // if
    if ( stream != null ) { stream.close(); } // if

    return result;
  } // loadItemObjects ---------------------------------------------------------