void PauseMenuMode::Update(float timeElapsed) {
   if (mResume.IsPressed())
      mNextMode = mWorldMode;
   if (mClick.IsPressed()) {
      InputManager *im = mGameWindow->GetInputManager();

      int mouseX = im->GetMouseX();
      int mouseY = im->GetMouseY();

      mButtonPressed = -1;
      for (int i = 0; i < NUM_PAUSE_BUTTONS; ++i) {
         if (mButtons[i].IsIn(mouseX, mouseY)) {
            mButtonPressed = i;
         }
      }
   }
   else {
      if (mButtonPressed == BTN_RESUME) {
         mNextMode = mWorldMode;
      }
      else if (mButtonPressed == BTN_OPTIONS) {
         // TODO: add options menu
      }
      else if (mButtonPressed == BTN_QUIT) {
         mNextMode = mMainMenuMode;
      }
      mButtonPressed = -1;
   }
}
void CharacterSelectMode::Update(float timeElapsed) {
	if (mClick.IsPressed()) {
		InputManager *im = mGameWindow->GetInputManager();

		int mouseX = im->GetMouseX();
		int mouseY = im->GetMouseY();

		mButtonPressed = -1;
		for (int i = 0; i < NUM_SELECT_BUTTONS; ++i) {
			if (mButtons[i].IsIn(mouseX, mouseY)) {
				mButtonPressed = i;
			}
		}
	}
	else {
		if (mButtonPressed == BTN_PREVIOUS) {
			mCharacterNdx = mCharacterNdx - 1 < 0 ? NUM_CHARACTERS - 1 : 
				mCharacterNdx - 1;
		}
		else if (mButtonPressed == BTN_BACK) {
			mNextMode = mMainMenuMode;
		}
		else if (mButtonPressed == BTN_OK) {
			mWorldMode->Reset();
			mWorldMode->SetPlayerNdx(mCharacterNdx);
			mNextMode = mWorldMode;
		}
		else if (mButtonPressed == BTN_NEXT) {
			mCharacterNdx = mCharacterNdx + 1 > NUM_CHARACTERS - 1 ? 0 : 
				mCharacterNdx + 1;
		}
		mButtonPressed = -1;
	}

	mRotation += 90.0f * timeElapsed;
}