public void genHookIds() {
		if (totalPlays == 0) {
			//return middle
			int[] coords = new int[dimSizesWB.length];
			for (int i=0; i<dimSizesWB.length; i++) {
				coords[i] = dimSizesWB[i] / 2;
			}
			int middleId = getId(coords);
			hookIds[0] = middleId;
			hookIds[1] = -1;
		} else {
			int p = 0;
			hookBitSet.reset();
			for (int i=0; i<totalPlays; i++) {
				for (int posId : playPosIds[i]) {
					for (int dimStep : dimStepsWB) {
						while (true) {
							int id = posId + dimStep;
							if (tileLetters[id] == 0) {
								if (!hookBitSet.isSet(id)) { 
									hookIds[p++] = id;
									hookBitSet.set(id);
								}
							}
							if (dimStep > 0) dimStep = -dimStep; else break;
						}
					}
				}
			}
			hookIds[p] = -1;
		}
	}