List of usage examples for com.google.gwt.user.client Window alert
public static void alert(String msg)
From source file:com.fullmetalgalaxy.client.game.board.DlgJoinGame.java
License:Open Source License
@Override public void onClick(ClickEvent p_event) { if (p_event.getSource() == m_btnCancel) { this.hide(); return;/*w w w . j av a 2s .co m*/ } else if (p_event.getSource() == m_btnOk) { if (GameEngine.model().getGame().isPasswordProtected() && !m_txtPassword.getText().equals(GameEngine.model().getGame().getPassword())) { Window.alert(MAppBoard.s_messages.pleaseCheckGamePasword()); return; } this.hide(); if (!FmpConstant.getDefaultInitialHolds().equals(GameEngine.model().getGame().getInitialHolds()) || !FmpConstant.getDefaultReserve(GameEngine.model().getGame().getMaxNumberOfPlayer()) .equals(GameEngine.model().getGame().getConstructReserve())) { // not default variant... display a little message to player DlgJoinDisplayVariant.instance().show(); DlgJoinDisplayVariant.instance().center(); } else { DlgJoinChooseColor.instance().show(); DlgJoinChooseColor.instance().center(); } return; } }
From source file:com.fullmetalgalaxy.client.game.board.WgtBoardBase.java
License:Open Source License
private void onUp(UserAction userAction, int p_x, int p_y) { AnBoardPosition position = convertPixPositionToHexPosition(new AnPair(p_x, p_y)); try {/* w w w. j av a2 s. c om*/ EventBuilderMsg eventBuilderMsg = EventBuilderMsg.None; eventBuilderMsg = GameEngine.model().getActionBuilder().userBoardClick(position, userAction); switch (eventBuilderMsg) { case Updated: AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); break; case MustRun: GameEngine.model().runCurrentAction(); break; default: } } catch (RpcFmpException ex) { if (ex.getLocalizedMessage() != null) { MAppMessagesStack.s_instance.showWarning(ex.getLocalizedMessage()); } GameEngine.model().getActionBuilder().cancel(); try { GameEngine.model().getActionBuilder().userBoardClick(position, UserAction.Primary); } catch (Throwable iniore) { } AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } catch (Throwable ex) { Window.alert("Une erreur est survenu, la page va tre recharge \n" + ex.getMessage()); ClientUtil.sendPM("" + AppMain.instance().getMyAccount().getId(), "5001", "js error", ex.getMessage()); ClientUtil.reload(); } }
From source file:com.fullmetalgalaxy.client.game.context.WgtContextAction.java
License:Open Source License
@Override public void onClick(ClickEvent p_event) { Object sender = p_event.getSource(); try {//from ww w. j a v a 2 s . c o m EventsPlayBuilder actionBuilder = GameEngine.model().getActionBuilder(); if (sender == m_btnOk) { actionBuilder.userOk(); GameEngine.model().runCurrentAction(); } else if (sender == m_btnCancel) { actionBuilder.userCancel(); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } else if (sender == m_btnRepairTurret) { EventBuilderMsg eventBuilderMsg = actionBuilder.userAction(GameLogType.EvtRepair); if (eventBuilderMsg == EventBuilderMsg.MustRun) { GameEngine.model().runSingleAction(actionBuilder.getSelectedAction()); } } else if (sender == m_btnFire) { actionBuilder.userAction(GameLogType.EvtFire); if (((EbEvtFire) actionBuilder.getSelectedAction()) .getTokenTarget(GameEngine.model().getGame()) == null) { MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectDestroyerTarget()); } else { MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectTwoDestroyers()); } } else if (sender == m_btnControl) { actionBuilder.userAction(GameLogType.EvtControl); if (((EbEvtFire) actionBuilder.getSelectedAction()) .getTokenTarget(GameEngine.model().getGame()) == null) { MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectDestroyerTarget()); } else { MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectTwoDestroyers()); } } else if (sender == m_btnFireCoverOn) { GameEngine.model().setFireCoverDisplayed(true); } else if (sender == m_btnFireCoverOff) { GameEngine.model().setFireCoverDisplayed(false); } else if (sender == m_btnGridOn) { GameEngine.model().setGridDisplayed(true); } else if (sender == m_btnGridOff) { GameEngine.model().setGridDisplayed(false); } else if (sender == m_btnZoomIn) { GameEngine.model().setZoomDisplayed(EnuZoom.Medium); } else if (sender == m_btnZoomOut) { GameEngine.model().setZoomDisplayed(EnuZoom.Small); } else if (sender == m_btnRegister || sender == m_pnlRegister) { DlgJoinGame.instance().show(); DlgJoinGame.instance().center(); } else if (sender == m_btnPractice || sender == m_btnPracticeCancel) { if (GameEngine.model().getGame().getGameType() == GameType.MultiPlayer || GameEngine.model().getGame().getGameType() == GameType.Initiation) { Window.alert(MAppBoard.s_messages.activateTrainningMode()); m_actionIndexBeforePracticeMode = GameEngine.model().getGame().getLogs().size(); GameEngine.model().getGame().setGameType(GameType.Practice); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } else { // Window.alert( MAppBoard.s_messages.deactivateTrainningMode() ); // ClientUtil.reload(); // cancel locally EbEvtCancel evtCancel = new EbEvtCancel(); evtCancel.setGame(GameEngine.model().getGame()); evtCancel.setFromActionIndex(GameEngine.model().getGame().getLogs().size() + GameEngine.model().getGame().getAdditionalEventCount() + GameEngine.model() .getMyRegistration().getTeam(GameEngine.model().getGame()).getMyEvents().size() - 1); evtCancel.setToActionIndex(GameEngine.model().getGame().getAdditionalEventCount() + m_actionIndexBeforePracticeMode); evtCancel.setAccountId(AppMain.instance().getMyAccount().getId()); GameEngine.model().runSingleAction(evtCancel); GameEngine.model().getGame().setGameType(GameType.MultiPlayer); MAppMessagesStack.s_instance.removeMessage(m_pnlPractice); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } } else if (sender == m_btnPracticeOk) { // after playing offline, user want to commit his turn to server // put all actions to event builder GameEngine.model().getActionBuilder().clear(); int iAction = m_actionIndexBeforePracticeMode; ArrayList<AnEventPlay> eventsBackup = new ArrayList<AnEventPlay>(); while (GameEngine.model().getGame().getLogs().size() > iAction) { AnEvent event = GameEngine.model().getGame().getLogs().get(iAction); if (event instanceof AnEventPlay) { eventsBackup.add((AnEventPlay) event); } iAction++; } // cancel locally EbEvtCancel evtCancel = new EbEvtCancel(); evtCancel.setGame(GameEngine.model().getGame()); evtCancel.setFromActionIndex(GameEngine.model().getGame().getLogs().size() + GameEngine.model().getGame().getAdditionalEventCount() + GameEngine.model() .getMyRegistration().getTeam(GameEngine.model().getGame()).getMyEvents().size() - 1); evtCancel.setToActionIndex(m_actionIndexBeforePracticeMode); evtCancel.setAccountId(AppMain.instance().getMyAccount().getId()); GameEngine.model().runSingleAction(evtCancel); // finally send actions to server GameEngine.model().getGame().setGameType(GameType.MultiPlayer); GameEngine.model().getActionBuilder().getActionList().addAll(eventsBackup); GameEngine.model().runCurrentAction(); MAppMessagesStack.s_instance.removeMessage(m_pnlPractice); } else if (sender == m_btnEndTurn || sender == m_pnlEndTurn) { String msg = null; int oldPt = GameEngine.model().getMyRegistration().getPtAction(); int newPt = GameEngine.model().getMyRegistration().getRoundedActionPt(GameEngine.model().getGame()); if (oldPt == newPt) { msg = MAppBoard.s_messages.confirmEndTurn(oldPt); } else { msg = MAppBoard.s_messages.confirmEndTurnRoundedPA(oldPt, newPt); } if (Window.confirm(msg)) { EbEvtPlayerTurn action = new EbEvtPlayerTurn(); action.setGame(GameEngine.model().getGame()); action.setAccountId(AppMain.instance().getMyAccount().getId()); GameEngine.model().runSingleAction(action); } } else if (sender == m_btnTakeOff) { if (Window.confirm(MAppBoard.s_messages .confirmTakeOff(Messages.getTokenString(0, actionBuilder.getSelectedToken())))) { EbEvtTakeOff action = new EbEvtTakeOff(); action.setGame(GameEngine.model().getGame()); action.setRegistration(GameEngine.model().getMyRegistration()); action.setToken(actionBuilder.getSelectedToken()); GameEngine.model().runSingleAction(action); } } else if (sender == m_pnlLand) { // search for my freighter to land GameEngine.model().getActionBuilder().userTokenClick( GameEngine.model().getGame().getFreighter(GameEngine.model().getMyRegistration())); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } else if (sender == m_pnlDeploy) { // search for any unit to deploy EbToken myFreighter = GameEngine.model().getGame() .getFreighter(GameEngine.model().getMyRegistration()); if (myFreighter.containToken()) { EbToken firstToken = myFreighter.getContains().iterator().next(); GameEngine.model().getActionBuilder().userTokenClick(firstToken); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } } else if (sender == m_pnlTakeOff) { GameEngine.model().getActionBuilder().clear(); // search for my freighter to take off for (EbToken token : GameEngine.model().getGame() .getAllFreighter(GameEngine.model().getMyRegistration().getColor())) { if (token.getLocation() == Location.Board) { GameEngine.model().getActionBuilder().userTokenClick(token); break; } } AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } } catch (RpcFmpException e) { MAppMessagesStack.s_instance.showWarning(e.getLocalizedMessage()); } }
From source file:com.fullmetalgalaxy.client.game.GameEngine.java
License:Open Source License
protected void receiveModelUpdate(ModelFmpUpdate p_result) { if (p_result == null || getGame() == null) { // this shouldn't occur anymore ! return;/*from w w w. j av a 2 s . com*/ } try { if ((getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation) && getGame().getVersion() >= p_result.getToVersion()) { // assume we can discard this update ! return; } if (getGame().getVersion() < p_result.getFromVersion() || (getGame().getVersion() != p_result.getFromVersion() && getGame().getVersion() < p_result.getToVersion())) { Window.alert("Error: receive incoherant model update (" + p_result.getFromVersion() + " expected " + getGame().getVersion() + "). reload page"); ClientUtil.reload(); return; } if (p_result.getClientID() == m_lastModelUpdateClientID) { // this update correspond to the last action request // and we receive response from channel before RCP ! AppMain.instance().stopLoading(); getActionBuilder().clear(); } if (p_result.getAccountId() == AppMain.instance().getMyAccount().getId()) { getActionBuilder().clear(); } getGame().setVersion(p_result.getToVersion()); // handle game events first // boolean isNewPlayerTurn = false; List<AnEvent> events = p_result.getGameEvents(); for (AnEvent event : events) { // if we receive and end turn event after an hidden parallel time step // we need to unexec my private event logs if (event instanceof EbEvtPlayerTurn && getGame().getCurrentPlayerIds().size() == 1) { isNewPlayerTurn = true; if (getGame().isTimeStepParallelHidden(getGame().getCurrentTimeStep()) && getMyRegistration() != null && !getMyRegistration().getTeam(getGame()).getMyEvents().isEmpty()) { for (int i = getMyRegistration().getTeam(getGame()).getMyEvents().size() - 1; i >= 0; i--) { getMyRegistration().getTeam(getGame()).getMyEvents().get(i).unexec(getGame()); } } } if (event.getType() == GameLogType.EvtCancel) { ((EbEvtCancel) event).execCancel(getGame()); } else if (event instanceof AnEventUser && event.canBeParallelHidden() && getGame().isTimeStepParallelHidden(getGame().getCurrentTimeStep()) && ((AnEventUser) event).getMyRegistration(getGame()) != null) { EbTeam myTeam = ((AnEventUser) event).getMyRegistration(getGame()).getTeam(getGame()); myTeam.addMyEvent(event); if (myTeam == getMyRegistration().getTeam(getGame())) { event.exec(getGame()); getGame().updateLastTokenUpdate(null); AppRoot.getEventBus().fireEvent(new GameActionEvent(event)); } } else { event.exec(getGame()); getGame().addEvent(event); getGame().updateLastTokenUpdate(null); AppRoot.getEventBus().fireEvent(new GameActionEvent(event)); } } // assume that if we receive an update, something has changed ! AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); if (isNewPlayerTurn && getMyRegistration() != null && (getGame().getCurrentPlayerIds().size() == 0 || getGame().getCurrentPlayerIds().contains(getMyRegistration().getId()))) { Window.alert(MAppBoard.s_messages.yourTurnToPlay()); } } catch (Throwable e) { // no i18n RpcUtil.logError("error ", e); Window.alert("unexpected error : " + e); } }
From source file:com.fullmetalgalaxy.client.game.GameEngine.java
License:Open Source License
/** * rpc call to run the current action.//from w ww .j a va2s . c o m * Clear the current action. */ public void runSingleAction(AnEvent p_action) { if (m_lastModelUpdateClientID != 0) { // no i18n as HMI is lock, so it shouldn't occur Window.alert("An action is already send to server... wait for server response."); return; } AppMain.instance().startLoading(); m_lastModelUpdateClientID = Random.nextInt(); ModelFmpUpdate modelUpdate = new ModelFmpUpdate(getGame()); modelUpdate.setClientID(m_lastModelUpdateClientID); try { if (!GameEngine.model().isLogged() && (getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation)) { // no i18n as HMI won't allow that. so unusual throw new RpcFmpException("You must be logged to do this action"); } // do not check player is logged to let him join action // action.check(); if (getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation) { AppMain.instance().scheduleCheckChannelTimer(); modelUpdate.setFromPageId(AppMain.instance().getPageId()); modelUpdate.setFromPseudo(AppMain.instance().getMyAccount().getPseudo()); modelUpdate.setGameEvents(new ArrayList<AnEvent>()); modelUpdate.getGameEvents().add(p_action); AppMain.getRpcService().runModelUpdate(modelUpdate, m_callbackEvents); } else { LocalGame.runEvent(p_action, m_callbackEvents, this); } } catch (RpcFmpException ex) { Window.alert(ex.getLocalizedMessage()); m_lastModelUpdateClientID = 0; AppMain.instance().stopLoading(); getActionBuilder().cancel(); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } catch (Throwable p_caught) { Window.alert("Unknown error on client: " + p_caught); m_lastModelUpdateClientID = 0; AppMain.instance().stopLoading(); getActionBuilder().cancel(); } }
From source file:com.fullmetalgalaxy.client.game.GameEngine.java
License:Open Source License
/** * rpc call to run the current action.//from w ww.j av a 2 s.c o m * Clear the current action. */ public void runCurrentAction() { if (m_lastModelUpdateClientID != 0) { Window.alert("Une action a dj t envoy au serveur... sans rponse pour l'instant"); return; } AppMain.instance().startLoading(); m_lastModelUpdateClientID = Random.nextInt(); ModelFmpUpdate modelUpdate = new ModelFmpUpdate(getGame()); modelUpdate.setClientID(m_lastModelUpdateClientID); try { if (!GameEngine.model().isJoined()) { // no i18n ? throw new RpcFmpException("you didn't join this game."); } // action.check(); getActionBuilder().unexec(); if (getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation) { AppMain.instance().scheduleCheckChannelTimer(); // then send request modelUpdate.setFromPageId(AppMain.instance().getPageId()); modelUpdate.setFromPseudo(AppMain.instance().getMyAccount().getPseudo()); modelUpdate.setGameEvents(new ArrayList<AnEvent>()); modelUpdate.getGameEvents().addAll(getActionBuilder().getActionList()); AppMain.getRpcService().runModelUpdate(modelUpdate, m_callbackEvents); } else { LocalGame.runAction(getActionBuilder().getActionList(), m_callbackEvents, this); } } catch (RpcFmpException ex) { Window.alert(ex.getLocalizedMessage()); m_lastModelUpdateClientID = 0; AppMain.instance().stopLoading(); getActionBuilder().cancel(); } catch (Throwable p_caught) { Window.alert("Unknown error on client: " + p_caught); m_lastModelUpdateClientID = 0; AppMain.instance().stopLoading(); getActionBuilder().cancel(); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); } }
From source file:com.fullmetalgalaxy.client.game.GameEngine.java
License:Open Source License
/** * in time line mode, play several events backward * @param p_actionCount// w ww. j av a2s .c o m */ public void timeBack(int p_actionCount) { if (p_actionCount > m_currentActionIndex) { GameEngine.model().loadAdditionalEvents(); return; } List<AnEvent> logs = getGame().getLogs(); while ((m_currentActionIndex > 0) && (p_actionCount > 0)) { m_currentActionIndex--; AnEvent action = null; if (m_currentActionIndex >= logs.size() && getMyRegistration() != null) { action = getMyRegistration().getTeam(getGame()).getMyEvents() .get(m_currentActionIndex - logs.size()); } else { action = logs.get(m_currentActionIndex); } if (action != null && !(action instanceof EbAdmin) && !(action instanceof EbGameJoin) && !(action instanceof EbEvtCancel)) { // unexec action try { action.unexec(getGame()); } catch (RpcFmpException e) { RpcUtil.logError("error ", e); Window.alert("unexpected error : " + e); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); return; } // don't count automatic action as one action to play if (!action.isAuto()) { p_actionCount--; } // if previous action is EvtConstruct, then unexec too action = null; if (m_currentActionIndex >= logs.size() + 1 && getMyRegistration() != null) { action = getMyRegistration().getTeam(getGame()).getMyEvents() .get(m_currentActionIndex - logs.size() - 1); } else if (m_currentActionIndex > 0) { action = logs.get(m_currentActionIndex - 1); } if (action != null && action.getType() == GameLogType.EvtConstruct) { p_actionCount++; } } } AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); }
From source file:com.fullmetalgalaxy.client.game.GameEngine.java
License:Open Source License
/** * in time mode, play several events/*w w w . j a v a 2 s . co m*/ * @param p_actionCount */ public void timePlay(int p_actionCount) { List<AnEvent> logs = getGame().getLogs(); boolean execAnimation = p_actionCount == 1; int totalEventCount = logs.size(); if (GameEngine.model().getMyRegistration() != null) { totalEventCount += GameEngine.model().getMyRegistration().getTeam(getGame()).getMyEvents().size(); } while ((m_currentActionIndex < totalEventCount) && (p_actionCount > 0)) { AnEvent action = null; if (m_currentActionIndex >= logs.size() && getMyRegistration() != null) { action = getMyRegistration().getTeam(getGame()).getMyEvents() .get(m_currentActionIndex - logs.size()); } else { action = logs.get(m_currentActionIndex); } if (!(action instanceof EbAdmin) && !(action instanceof EbGameJoin) && !(action instanceof EbEvtCancel)) { // exec action try { action.exec(getGame()); } catch (RpcFmpException e) { logger.severe(e.getMessage()); Window.alert("unexpected error : " + e); return; } // don't count automatic action as one action to play if (!action.isAuto() && action.getType() != GameLogType.EvtConstruct) { p_actionCount--; } // if next action is automatic, then exec too if (m_currentActionIndex < logs.size() - 1 && logs.get(m_currentActionIndex + 1).isAuto()) { p_actionCount++; } if (!(action instanceof EbEvtMessage) && execAnimation) { AppRoot.getEventBus().fireEvent(new GameActionEvent(action)); } } m_currentActionIndex++; } AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); }
From source file:com.fullmetalgalaxy.client.game.GameEngine.java
License:Open Source License
/** * in time mode, play events up to the given one * @param p_actionCount//w w w . ja v a2s.co m */ public void timePlay(AnEvent p_event) { if (!isTimeLineMode() || p_event == null || p_event.getIdGame() != getGame().getId()) { logger.warning("time play command but wrong mode or wrong params"); return; } AnEvent currentEvent = getCurrentAction(); boolean timeForward = false; if (currentEvent != null && currentEvent.getLastUpdate().getTime() < p_event.getLastUpdate().getTime()) { timeForward = true; } try { while (currentEvent != p_event) { // we assume playing event in same way during the whole method // this insure us not going in endless loop if (timeForward) { currentEvent.exec(getGame()); m_currentActionIndex++; currentEvent = getCurrentAction(); } else { m_currentActionIndex--; currentEvent = getCurrentAction(); if (!(currentEvent instanceof EbAdmin) && !(currentEvent instanceof EbGameJoin) && !(currentEvent instanceof EbEvtCancel)) { currentEvent.unexec(getGame()); } } if (m_currentActionIndex < 0 || m_currentActionIndex >= getGame().getLogs().size()) { logger.severe("time play command but given event wasn't found"); AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); return; } } } catch (RpcFmpException e) { logger.severe(e.getMessage()); Window.alert("unexpected error : " + e); } AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model())); }
From source file:com.fullmetalgalaxy.client.game.tabmenu.WgtGameTimeMode.java
License:Open Source License
@Override public void onClick(ClickEvent p_event) { Object sender = p_event.getSource(); if (sender == m_btnOk) { if (GameEngine.model().getCurrentAction() == null) { // user click ok to cancel action // but action selected was then last one: no cancel GameEngine.model().setTimeLineMode(false); return; }//w w w. jav a2s. c o m if (GameEngine.model().getLastTurnPlayed() != GameEngine.model().getGame().getCurrentTimeStep() || (GameEngine.model().getMyRegistration() != null && !GameEngine.model().getGame() .getCurrentPlayerIds().contains(GameEngine.model().getMyRegistration().getId()))) { if (!AppMain.instance().iAmAdmin()) { // no i18n: this dialog shouldn't appear Window.alert("Only admin can cancel such action"); return; } // admin is going to perform admin action, show confirm dialog // it may also a training game // TODO i18n if (!Window.confirm("Perform admin cancel ?")) { return; } } // just in case another action was in preparation EventsPlayBuilder actionBuilder = GameEngine.model().getActionBuilder(); actionBuilder.clear(); EbEvtCancel evtCancel = new EbEvtCancel(); evtCancel.setGame(GameEngine.model().getGame()); int fromIndex = GameEngine.model().getGame().getLogs().size() - 1; fromIndex += GameEngine.model().getGame().getAdditionalEventCount(); if (GameEngine.model().getMyRegistration() != null) { fromIndex += GameEngine.model().getMyRegistration().getTeam(GameEngine.model().getGame()) .getMyEvents().size(); } evtCancel.setFromActionIndex(fromIndex); evtCancel.setToActionIndex(GameEngine.model().getGame().getAdditionalEventCount() + GameEngine.model().getCurrentActionIndex()); evtCancel.setAccountId(AppMain.instance().getMyAccount().getId()); // this action is required to send the last game version to server GameEngine.model().setTimeLineMode(false); GameEngine.model().runSingleAction(evtCancel); } else if (sender == m_btnForward) { GameEngine.model().timePlay(1); } else if (sender == m_btnFastPlay) { GameEngine.model().timePlay(10); } else if (sender == m_btnBack) { GameEngine.model().timeBack(1); } else if (sender == m_btnFastBack) { GameEngine.model().timeBack(10); } else if (sender == m_btnPlay) { GameEngine.model().startPlayAnimation(); } else if (sender == m_btnPause) { GameEngine.model().stopPlayAnimation(); } }