// setup the distance and history for a platform turn. This should only be called when the center track has the turn that needs to spawn // platforms from it. Don't call it immediately on a right or left track - wait until the player turns to see which turn platforms need to be spawned from private void setupPlatformTurn() { int platformIndex = infiniteObjectHistory.getLastLocalIndex(ObjectType.Platform); float platformSize = platformSizes[platformIndex].x; if (turnPlatform[(int)ObjectLocation.Center].isLeftTurn && turnPlatform[(int)ObjectLocation.Center].isRightTurn) { platformSize /= 2; } else { platformSize -= straightPlatformWidth / 2; } // same with the infinite object manager, the localDistance and localSceneDistance must start out equal localDistance[(int)ObjectLocation.Left] = localDistance[(int)ObjectLocation.Right] = platformSize; localSceneDistance[(int)ObjectLocation.Left] = localSceneDistance[(int)ObjectLocation.Right] = platformSize; localPlatformHeight[(int)ObjectLocation.Left] = localPlatformHeight[(int)ObjectLocation.Right] = localPlatformHeight[(int)ObjectLocation.Center]; localSceneHeight[(int)ObjectLocation.Left] = localSceneHeight[(int)ObjectLocation.Right] = localSceneHeight[(int)ObjectLocation.Center]; infiniteObjectHistory.resetTurnCount(); }