@Override
	public void setMoveTutorMoves(List<Integer> moves) {
		if (!romEntry.isCrystal) {
			return;
		}
		if (moves.size() != 3) {
			return;
		}
		Iterator<Integer> mvList = moves.iterator();
		for (int offset : romEntry.arrayEntries.get("MoveTutorMoves")) {
			rom[offset] = mvList.next().byteValue();
		}

		// Construct a new menu
		if (romEntry.getValue("MoveTutorMenuOffset") > 0
				&& romEntry.getValue("MoveTutorMenuNewSpace") > 0) {
			String[] moveNames = readMoveNames();
			String[] names = new String[] { moveNames[moves.get(0)],
					moveNames[moves.get(1)], moveNames[moves.get(2)], "CANCEL" };
			int menuOffset = romEntry.getValue("MoveTutorMenuNewSpace");
			rom[menuOffset++] = (byte) 0x80;
			rom[menuOffset++] = 0x4;
			for (int i = 0; i < 4; i++) {
				byte[] trans = traduire(names[i]);
				System.arraycopy(trans, 0, rom, menuOffset, trans.length);
				menuOffset += trans.length;
				rom[menuOffset++] = 0x50;
			}
			int pointerOffset = romEntry.getValue("MoveTutorMenuOffset");
			writeWord(pointerOffset,
					makeGBPointer(romEntry.getValue("MoveTutorMenuNewSpace")));
		}
	}