@Override
	public List<String> getTrainerClassNames() {
		int[] offsets = romEntry.arrayEntries.get("TrainerClassNamesOffsets");
		List<String> trainerClassNames = new ArrayList<String>();
		if (offsets.length == 2) {
			for (int i = 0; i < offsets.length; i++) {
				int offset = offsets[i];
				for (int j = 0; j < tclassesCounts[i]; j++) {
					String name = readVariableLengthString(offset);
					offset += (internalStringLength(name) + 1);
					if (i == 0 || !singularTrainers.contains(j)) {
						trainerClassNames.add(name);
					}
				}
			}
		} else {
			int offset = offsets[0];
			for (int j = 0; j < tclassesCounts[1]; j++) {
				String name = readVariableLengthString(offset);
				offset += (internalStringLength(name) + 1);
				if (!singularTrainers.contains(j)) {
					trainerClassNames.add(name);
				}
			}
		}
		return trainerClassNames;
	}