@Override
	public List<IngameTrade> getIngameTrades() {
		List<IngameTrade> trades = new ArrayList<IngameTrade>();
		try {
			NARCContents tradeNARC = this.readNARC(romEntry
					.getString("InGameTrades"));
			int[] spTrades = new int[0];
			if (romEntry.arrayEntries.containsKey("StaticPokemonTrades")) {
				spTrades = romEntry.arrayEntries.get("StaticPokemonTrades");
			}
			List<String> tradeStrings = getStrings(romEntry
					.getInt("IngameTradesTextOffset"));
			int tradeCount = tradeNARC.files.size();
			for (int i = 0; i < tradeCount; i++) {
				boolean isSP = false;
				for (int j = 0; j < spTrades.length; j++) {
					if (spTrades[j] == i) {
						isSP = true;
						break;
					}
				}
				if (isSP) {
					continue;
				}
				byte[] tfile = tradeNARC.files.get(i);
				IngameTrade trade = new IngameTrade();
				trade.nickname = tradeStrings.get(i);
				trade.givenPokemon = pokes[readLong(tfile, 0)];
				trade.ivs = new int[6];
				for (int iv = 0; iv < 6; iv++) {
					trade.ivs[iv] = readLong(tfile, 4 + iv * 4);
				}
				trade.otId = readWord(tfile, 0x20);
				trade.otName = tradeStrings.get(i + tradeCount);
				trade.item = readLong(tfile, 0x3C);
				trade.requestedPokemon = pokes[readLong(tfile, 0x4C)];
				trades.add(trade);
			}
		} catch (IOException ex) {
		}
		return trades;
	}