Make pause button working when watching ghost replay
This commit is contained in:
parent
9f3bc471d8
commit
2c79b02088
@ -388,25 +388,26 @@ void MultitouchDevice::updateAxisY(float value)
|
||||
*/
|
||||
void MultitouchDevice::handleControls(MultitouchButton* button)
|
||||
{
|
||||
if (m_controller == NULL)
|
||||
if (!isGameRunning())
|
||||
return;
|
||||
|
||||
if (button->type == MultitouchButtonType::BUTTON_STEERING)
|
||||
{
|
||||
updateAxisX(button->axis_x);
|
||||
updateAxisY(button->axis_y);
|
||||
}
|
||||
else if (button->type == MultitouchButtonType::BUTTON_UP_DOWN)
|
||||
{
|
||||
updateAxisY(button->axis_y);
|
||||
}
|
||||
else if (button->type == MultitouchButtonType::BUTTON_ESCAPE)
|
||||
|
||||
if (button->type == MultitouchButtonType::BUTTON_ESCAPE)
|
||||
{
|
||||
StateManager::get()->escapePressed();
|
||||
}
|
||||
else
|
||||
|
||||
if (m_controller != NULL && !race_manager->isWatchingReplay())
|
||||
{
|
||||
if (button->action != PA_BEFORE_FIRST)
|
||||
if (button->type == MultitouchButtonType::BUTTON_STEERING)
|
||||
{
|
||||
updateAxisX(button->axis_x);
|
||||
updateAxisY(button->axis_y);
|
||||
}
|
||||
else if (button->type == MultitouchButtonType::BUTTON_UP_DOWN)
|
||||
{
|
||||
updateAxisY(button->axis_y);
|
||||
}
|
||||
else if (button->action != PA_BEFORE_FIRST)
|
||||
{
|
||||
int value = button->pressed ? Input::MAX_VALUE : 0;
|
||||
m_controller->action(button->action, value);
|
||||
@ -416,6 +417,15 @@ void MultitouchDevice::handleControls(MultitouchButton* button)
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
bool MultitouchDevice::isGameRunning()
|
||||
{
|
||||
return StateManager::get()->getGameState() == GUIEngine::GAME &&
|
||||
!GUIEngine::ModalDialog::isADialogActive() &&
|
||||
!GUIEngine::ScreenKeyboard::isActive();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
void MultitouchDevice::updateController()
|
||||
{
|
||||
if (m_player == NULL)
|
||||
@ -427,10 +437,7 @@ void MultitouchDevice::updateController()
|
||||
// Handle multitouch events only when race is running. It avoids to process
|
||||
// it when pause dialog is active during the race. And there is no reason
|
||||
// to use it for GUI navigation.
|
||||
if (StateManager::get()->getGameState() != GUIEngine::GAME ||
|
||||
GUIEngine::ModalDialog::isADialogActive() ||
|
||||
GUIEngine::ScreenKeyboard::isActive() ||
|
||||
race_manager->isWatchingReplay())
|
||||
if (!isGameRunning())
|
||||
{
|
||||
m_controller = NULL;
|
||||
return;
|
||||
|
@ -94,6 +94,7 @@ private:
|
||||
|
||||
float getSteeringFactor(float value);
|
||||
void handleControls(MultitouchButton* button);
|
||||
bool isGameRunning();
|
||||
|
||||
public:
|
||||
/** The array that contains data for all multitouch input events */
|
||||
|
Loading…
Reference in New Issue
Block a user