@Override
	public List<Integer> getCurrentFieldTMs() {
		if (!mapLoadingDone) {
			preprocessMaps();
			mapLoadingDone = true;
		}
		List<Integer> fieldTMs = new ArrayList<Integer>();

		for (int offset : itemOffs) {
			int itemHere = readWord(offset);
			if (allowedItems.isTM(itemHere)) {
				int thisTM = itemHere - 0x120;
				// hack for repeat TMs
				if (fieldTMs.contains(thisTM) == false) {
					fieldTMs.add(thisTM);
				}
			}
		}
		return fieldTMs;
	}