@Override
	public void setTrainerClassNames(List<String> trainerClassNames) {
		if (romEntry.getValue("CanChangeTrainerText") > 0) {
			int[] offsets = romEntry.arrayEntries
					.get("TrainerClassNamesOffsets");
			Iterator<String> tcNamesIter = trainerClassNames.iterator();
			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);
						if (i == 0 || !singularTrainers.contains(j)) {
							String newName = tcNamesIter.next();
							writeFixedLengthString(newName, offset,
									internalStringLength(name) + 1);
						}
						offset += (internalStringLength(name) + 1);
					}
				}
			} else {
				int offset = offsets[0];
				for (int j = 0; j < tclassesCounts[1]; j++) {
					String name = readVariableLengthString(offset);
					if (!singularTrainers.contains(j)) {
						String newName = tcNamesIter.next();
						writeFixedLengthString(newName, offset,
								internalStringLength(name) + 1);
					}
					offset += (internalStringLength(name) + 1);
				}
			}
		}

	}