public static void drawMainMenu() {
		// Clear the last screen
		GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT);

		// Turn off lighting
		GL11.glDisable(GL11.GL_LIGHTING);

		// Enable alpha testing (transparent backgrounds)
		GL11.glEnable(GL11.GL_BLEND);
		GL11.glBlendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA);

		// Draw the menu background
		drawRec(menuBackgroundHandle, 0, 0, viewportW, viewportH, 1.0f);

		// Don't draw the buttons if loading (this same method will be called
		// for the loading screen)
		if (!loading) {
			// For each of the buttons, draw the correct image based on if the
			// cursor is over the button

			// About button
			if (onAboutButton) {
				drawRec(aboutButtonOverHandle, (int) aboutButtonPosition.x,
						(int) aboutButtonPosition.y,
						(float) aboutButton.getWidth(),
						(float) aboutButton.getHeight(), 1.0f);
			} else {
				drawRec(aboutButtonHandle, (int) aboutButtonPosition.x,
						(int) aboutButtonPosition.y,
						(float) aboutButton.getWidth(),
						(float) aboutButton.getHeight(), 1.0f);
			}

			// Play button
			if (onPlayButton) {
				drawRec(playButtonOverHandle, (int) playButtonPosition.x,
						(int) playButtonPosition.y,
						(float) playButton.getWidth(),
						(float) playButton.getHeight(), 1.0f);
			} else {
				drawRec(playButtonHandle, (int) playButtonPosition.x,
						(int) playButtonPosition.y,
						(float) playButton.getWidth(),
						(float) playButton.getHeight(), 1.0f);
			}

			// Money cheat button
			if (onCheatButton) {
				drawRec(cheatButtonOverHandle, (int) cheatButtonPosition.x,
						(int) cheatButtonPosition.y,
						(float) cheatButton.getWidth(),
						(float) cheatButton.getHeight(), 1.0f);
			} else {
				drawRec(cheatButtonHandle, (int) cheatButtonPosition.x,
						(int) cheatButtonPosition.y,
						(float) cheatButton.getWidth(),
						(float) cheatButton.getHeight(), 1.0f);
			}

			// Help button
			if (onHelpButton) {
				drawRec(helpButtonOverHandle, (int) helpButtonPosition.x,
						(int) helpButtonPosition.y,
						(float) helpButton.getWidth(),
						(float) helpButton.getHeight(), 1.0f);
			} else {
				drawRec(helpButtonHandle, (int) helpButtonPosition.x,
						(int) helpButtonPosition.y,
						(float) helpButton.getWidth(),
						(float) helpButton.getHeight(), 1.0f);
			}

			// Exit button
			if (onExitButton) {
				drawRec(exitButtonOverHandle, (int) exitButtonPosition.x,
						(int) exitButtonPosition.y,
						(float) exitButton.getWidth(),
						(float) exitButton.getHeight(), 1.0f);
			} else {
				drawRec(exitButtonHandle, (int) exitButtonPosition.x,
						(int) exitButtonPosition.y,
						(float) exitButton.getWidth(),
						(float) exitButton.getHeight(), 1.0f);
			}

			// Draw the cursor
			drawRec(cursorTextureHandle, cursorX,
					cursorY - cursorTexture.getHeight(),
					cursorTexture.getWidth(), cursorTexture.getHeight(), 1.0f);
		}

		GL11.glEnable(GL11.GL_LIGHTING);
	}