@Override
	public void startUp(GameTime gameTime) {
		// Call the startUp methods of all the register GameLayers
		super.startUp(gameTime);
		// Change the mouse
		GameEngine.setCustomCursor(GameAssetManager.getInstance().getObject(BufferedImage.class,
				Configuration.GUI.Misc.GAME_MOUSE));

		// Realign all of the menus off to the side
		int x = -menuWidth;

		// I remember reading that a foreach loop is faster than get(i), i have
		// no source to back this up though. We iterate through each logical
		// child added to the menuOptions gamelayer, in this case it will be
		// only the GameButtonGraphical children, and restart them to their
		// desired positions
		/**
		 * Alternate between the menu item being to the left of the screen and
		 * to the right of the screen so that they can be zoomed in
		 */
		int i = 0;
		for (ILogical logicalObject : menuOptions.getAllLogicalChildren()) {
			GameButton option = (GameButton) logicalObject;
			option.setX(i++ % 2 == 0 ? -menuWidth : GameSettings.getGameWidth());
		}

		// Default the starting state of the stateManager to start animating the
		// menu buttons
		stateManager.setStartingState("animatingButtons");
	}