From 32ab034bbb02e25ad8ee704c398b4bffbf896f26 Mon Sep 17 00:00:00 2001 From: Bernardo Cunha Date: Thu, 6 Feb 2020 13:35:01 +0000 Subject: [PATCH] State Machine Update State Machine has been updated to allow Game over if no Overtime is needed. Game over can also be declared at the end of the overtime. --- mslrb2015/Button.pde | 2 +- mslrb2015/RefreshButon.pde | 264 ++++++------ .../RefreshButon5408860871915498609.autosave | 379 ++++++++++++++++++ mslrb2015/ScoreClients.pde | 2 +- mslrb2015/StateMachine.pde | 42 +- mslrb2015/enums.java | 6 +- mslrb2015/gui.pde | 4 + 7 files changed, 554 insertions(+), 145 deletions(-) create mode 100644 mslrb2015/RefreshButon5408860871915498609.autosave create mode 100644 mslrb2015/gui.pde diff --git a/mslrb2015/Button.pde b/mslrb2015/Button.pde index ff9c783..0be04a6 100644 --- a/mslrb2015/Button.pde +++ b/mslrb2015/Button.pde @@ -303,7 +303,7 @@ void buttonEvent(char group, int pos) { // Special cases, that send only event message on game change (flags) if( clickedButton.isYellow() || clickedButton.isRed() || clickedButton.isRepair() || clickedButton.isConfig() || - clickedButton.isEndPart() || clickedButton.isReset() || clickedButton.isAlive()) + clickedButton.isEndPart() || clickedButton.isReset() || clickedButton.isAlive() || clickedButton.isSubs()) { // Do literally nothing... }else{ diff --git a/mslrb2015/RefreshButon.pde b/mslrb2015/RefreshButon.pde index f3ffe43..f1953a7 100644 --- a/mslrb2015/RefreshButon.pde +++ b/mslrb2015/RefreshButon.pde @@ -3,149 +3,150 @@ void RefreshButonStatus1() { switch(StateMachine.GetCurrentGameState()) { - // PRE-GAME - case GS_PREGAME: - if (Popup.isEnabled() && (Popup.getType() == PopupTypeEnum.POPUP_WAIT)) Popup.close(); - - buttonAdisableAll(0); //team A commands - buttonBdisableAll(0); //team B commands - buttonCdisable(); //common commands - - if(StateMachine.setpiece) - { - if(StateMachine.setpiece_left){ - buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).activate(); - buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).disable(); + // PRE-GAME + case GS_PREGAME: + if (Popup.isEnabled() && (Popup.getType() == PopupTypeEnum.POPUP_WAIT)) Popup.close(); + + buttonAdisableAll(0); //team A commands + buttonBdisableAll(0); //team B commands + buttonCdisable(); //common commands + + if(StateMachine.setpiece) + { + if(StateMachine.setpiece_left){ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).activate(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).disable(); + + }else{ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).disable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).activate(); + } + + buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_CONFIG).disable(); }else{ - buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).disable(); - buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).activate(); - } - - buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); - buttonFromEnum(ButtonsEnum.BTN_START).enable(); - buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); - buttonFromEnum(ButtonsEnum.BTN_CONFIG).disable(); - }else{ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).enable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).enable(); - buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).enable(); - buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).enable(); + buttonFromEnum(ButtonsEnum.BTN_START).disable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_RESET).activate(); + buttonFromEnum(ButtonsEnum.BTN_CONFIG).activate(); + } + - buttonFromEnum(ButtonsEnum.BTN_START).disable(); - buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); - buttonFromEnum(ButtonsEnum.BTN_RESET).activate(); - buttonFromEnum(ButtonsEnum.BTN_CONFIG).activate(); - } - + break; + + case GS_GAMEON_H1: + case GS_GAMEON_H2: + case GS_GAMEON_H3: + case GS_GAMEON_H4: + refreshbutton_game_on(); + break; + + case GS_GAMESTOP_H1: + case GS_GAMESTOP_H2: + case GS_GAMESTOP_H3: + case GS_GAMESTOP_H4: + refreshbutton_game_stopped(); + if(StateMachine.setpiece){ + buttonAdisable(); //team A commands + buttonBdisable(); //team B commands + buttonCdisable(); //common commands + buttonFromEnum(StateMachine.setpiece_button).activate(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); + }else{ + buttonFromEnum(ButtonsEnum.BTN_START).disable(); + } + break; + + case GS_HALFTIME: + case GS_OVERTIME: + case GS_HALFTIME_OVERTIME: + buttonAdisableAll(0); //team A commands + buttonBdisableAll(0); //team B commands + buttonCdisable(); //common commands + bTeamAcmds[CMDID_TEAM_GOAL].disable(); // Disable goal button if part ended with a goal + bTeamBcmds[CMDID_TEAM_GOAL].disable(); // Disable goal button if part ended with a goal + + if (StateMachine.GetCurrentGameState() == GameStateEnum.GS_OVERTIME){ + buttonFromEnum(ButtonsEnum.BTN_ENDPART).enable(); + } + + // Alternate Kick-Offs + boolean enableLeft = StateMachine.firstKickoffLeft; + if(StateMachine.GetCurrentGameState() == GameStateEnum.GS_HALFTIME || StateMachine.GetCurrentGameState() == GameStateEnum.GS_HALFTIME_OVERTIME) + enableLeft = !enableLeft; - break; - - case GS_GAMEON_H1: - case GS_GAMEON_H2: - case GS_GAMEON_H3: - case GS_GAMEON_H4: - refreshbutton_game_on(); - break; - - case GS_GAMESTOP_H1: - case GS_GAMESTOP_H2: - case GS_GAMESTOP_H3: - case GS_GAMESTOP_H4: - refreshbutton_game_stopped(); - if(StateMachine.setpiece){ + if(StateMachine.setpiece) + { + buttonFromEnum(StateMachine.setpiece_button).activate(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); + buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); + }else{ + if(enableLeft) + { + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).enable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).disable(); + }else{ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).disable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).enable(); + } + buttonFromEnum(ButtonsEnum.BTN_START).disable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_PARK).activate(); + if(StateMachine.GetCurrentGameState() == GameStateEnum.GS_OVERTIME) + buttonFromEnum(ButtonsEnum.BTN_RESET).activate(); + } + break; + + case GS_PENALTIES: + refreshbutton_game_stopped(); buttonAdisable(); //team A commands buttonBdisable(); //team B commands buttonCdisable(); //common commands - buttonFromEnum(StateMachine.setpiece_button).activate(); - buttonFromEnum(ButtonsEnum.BTN_START).enable(); - buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); - }else{ - buttonFromEnum(ButtonsEnum.BTN_START).disable(); - } - break; - - case GS_HALFTIME: - case GS_OVERTIME: - case GS_HALFTIME_OVERTIME: - buttonAdisableAll(0); //team A commands - buttonBdisableAll(0); //team B commands - buttonCdisable(); //common commands - bTeamAcmds[CMDID_TEAM_GOAL].disable(); // Disable goal button if part ended with a goal - bTeamBcmds[CMDID_TEAM_GOAL].disable(); // Disable goal button if part ended with a goal - - // Alternate Kick-Offs - boolean enableLeft = StateMachine.firstKickoffLeft; - if(StateMachine.GetCurrentGameState() == GameStateEnum.GS_HALFTIME || StateMachine.GetCurrentGameState() == GameStateEnum.GS_HALFTIME_OVERTIME) - enableLeft = !enableLeft; - - if(StateMachine.setpiece) - { + + bTeamAcmds[CMDID_TEAM_PENALTY].enable(); + bTeamBcmds[CMDID_TEAM_PENALTY].enable(); + + if(StateMachine.setpiece) buttonFromEnum(StateMachine.setpiece_button).activate(); buttonFromEnum(ButtonsEnum.BTN_START).enable(); buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); - }else{ - if(enableLeft) - { - buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).enable(); - buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).disable(); - }else{ - buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).disable(); - buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).enable(); - } - buttonFromEnum(ButtonsEnum.BTN_START).disable(); - buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); - buttonFromEnum(ButtonsEnum.BTN_PARK).activate(); - if(StateMachine.GetCurrentGameState() == GameStateEnum.GS_OVERTIME) - buttonFromEnum(ButtonsEnum.BTN_RESET).activate(); - } - break; - - case GS_PENALTIES: - refreshbutton_game_stopped(); - buttonAdisable(); //team A commands - buttonBdisable(); //team B commands - buttonCdisable(); //common commands - - bTeamAcmds[CMDID_TEAM_PENALTY].enable(); - bTeamBcmds[CMDID_TEAM_PENALTY].enable(); - - if(StateMachine.setpiece) - buttonFromEnum(StateMachine.setpiece_button).activate(); - buttonFromEnum(ButtonsEnum.BTN_START).enable(); - buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); - buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); - buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); - bCommoncmds[CMDID_COMMON_DROP_BALL].disable(); - bCommoncmds[CMDID_COMMON_HALFTIME].enable(); - break; - - case GS_PENALTIES_ON: - refreshbutton_game_on(); - break; - - case GS_ENDGAME: - buttonAdisable(); //team A commands - buttonBdisable(); //team B commands - buttonCenable(); //common commands - - bCommoncmds[CMDID_COMMON_DROP_BALL].disable(); - bCommoncmds[CMDID_COMMON_HALFTIME].disable(); - bCommoncmds[CMDID_COMMON_RESET].activate(); - bCommoncmds[CMDID_COMMON_PARKING].activate(); - buttonCSTARTdisable(); - buttonCSTOPactivate(); - break; - - default: - buttonAenable(); //team A commands - buttonBenable(); //team B commands - buttonCenable(); //common commands - buttonCSTOPactivate(); - break; + bCommoncmds[CMDID_COMMON_DROP_BALL].disable(); + bCommoncmds[CMDID_COMMON_HALFTIME].enable(); + break; + + case GS_PENALTIES_ON: + refreshbutton_game_on(); + break; + + case GS_ENDGAME: + buttonAdisableAll(-1); //disabke team A commands + buttonBdisableAll(-1); //disable team B commands + buttonCdisable(); //disable common commands + bCommoncmds[CMDID_COMMON_RESET].activate(); + bCommoncmds[CMDID_COMMON_PARKING].activate(); + buttonCSTARTdisable(); + buttonCSTOPactivate(); + break; + + default: + buttonAenable(); //team A commands + buttonBenable(); //team B commands + buttonCenable(); //common commands + buttonCSTOPactivate(); + break; } @@ -162,6 +163,7 @@ void RefreshButonStatus1() { } // Update End Part / End Game button + String endPartOrEndGame = "End Part"; switch(StateMachine.GetCurrentGameState()) { @@ -171,7 +173,13 @@ void RefreshButonStatus1() { case GS_GAMESTOP_H2: case GS_GAMESTOP_H4: endPartOrEndGame = "End Game"; + break; + case GS_PENALTIES: + case GS_OVERTIME: + endPartOrEndGame = "Game Over"; + break; } + bCommoncmds[CMDID_COMMON_HALFTIME].Label = endPartOrEndGame; } diff --git a/mslrb2015/RefreshButon5408860871915498609.autosave b/mslrb2015/RefreshButon5408860871915498609.autosave new file mode 100644 index 0000000..42527ba --- /dev/null +++ b/mslrb2015/RefreshButon5408860871915498609.autosave @@ -0,0 +1,379 @@ +//********************************************************************* +void RefreshButonStatus1() { + + switch(StateMachine.GetCurrentGameState()) + { + // PRE-GAME + case GS_PREGAME: + if (Popup.isEnabled() && (Popup.getType() == PopupTypeEnum.POPUP_WAIT)) Popup.close(); + + buttonAdisableAll(0); //team A commands + buttonBdisableAll(0); //team B commands + buttonCdisable(); //common commands + + if(StateMachine.setpiece) + { + if(StateMachine.setpiece_left){ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).activate(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).disable(); + + }else{ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).disable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).activate(); + } + + buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_CONFIG).disable(); + + }else{ + + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).enable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).enable(); + + buttonFromEnum(ButtonsEnum.BTN_START).disable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_RESET).activate(); + buttonFromEnum(ButtonsEnum.BTN_CONFIG).activate(); + } + + + break; + + case GS_GAMEON_H1: + case GS_GAMEON_H2: + case GS_GAMEON_H3: + case GS_GAMEON_H4: + refreshbutton_game_on(); + break; + + case GS_GAMESTOP_H1: + case GS_GAMESTOP_H2: + case GS_GAMESTOP_H3: + case GS_GAMESTOP_H4: + refreshbutton_game_stopped(); + if(StateMachine.setpiece){ + buttonAdisable(); //team A commands + buttonBdisable(); //team B commands + buttonCdisable(); //common commands + buttonFromEnum(StateMachine.setpiece_button).activate(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); + }else{ + buttonFromEnum(ButtonsEnum.BTN_START).disable(); + } + break; + + case GS_HALFTIME: + case GS_OVERTIME: + case GS_HALFTIME_OVERTIME: + buttonAdisableAll(0); //team A commands + buttonBdisableAll(0); //team B commands + buttonCdisable(); //common commands + bTeamAcmds[CMDID_TEAM_GOAL].disable(); // Disable goal button if part ended with a goal + bTeamBcmds[CMDID_TEAM_GOAL].disable(); // Disable goal button if part ended with a goal + + if (StateMachine.GetCurrentGameState() == GameStateEnum.GS_OVERTIME){ + buttonFromEnum(ButtonsEnum.BTN_ENDPART).enable(); + } + + // Alternate Kick-Offs + boolean enableLeft = StateMachine.firstKickoffLeft; + if(StateMachine.GetCurrentGameState() == GameStateEnum.GS_HALFTIME || StateMachine.GetCurrentGameState() == GameStateEnum.GS_HALFTIME_OVERTIME) + enableLeft = !enableLeft; + + if(StateMachine.setpiece) + { + buttonFromEnum(StateMachine.setpiece_button).activate(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); + buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); + }else{ + if(enableLeft) + { + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).enable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).disable(); + }else{ + buttonFromEnum(ButtonsEnum.BTN_L_KICKOFF).disable(); + buttonFromEnum(ButtonsEnum.BTN_R_KICKOFF).enable(); + } + buttonFromEnum(ButtonsEnum.BTN_START).disable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_PARK).activate(); + if(StateMachine.GetCurrentGameState() == GameStateEnum.GS_OVERTIME) + buttonFromEnum(ButtonsEnum.BTN_RESET).activate(); + } + break; + + case GS_PENALTIES: + refreshbutton_game_stopped(); + buttonAdisable(); //team A commands + buttonBdisable(); //team B commands + buttonCdisable(); //common commands + + bTeamAcmds[CMDID_TEAM_PENALTY].enable(); + bTeamBcmds[CMDID_TEAM_PENALTY].enable(); + + if(StateMachine.setpiece) + buttonFromEnum(StateMachine.setpiece_button).activate(); + buttonFromEnum(ButtonsEnum.BTN_START).enable(); + buttonFromEnum(ButtonsEnum.BTN_STOP).activate(); + buttonFromEnum(ButtonsEnum.BTN_PARK).disable(); + buttonFromEnum(ButtonsEnum.BTN_RESET).disable(); + + bCommoncmds[CMDID_COMMON_DROP_BALL].disable(); + bCommoncmds[CMDID_COMMON_HALFTIME].enable(); + break; + + case GS_PENALTIES_ON: + refreshbutton_game_on(); + break; + + case GS_ENDGAME: + buttonAdisableAll(0); //team A commands + buttonBdisableAll(0); //team B commands + buttonCdisable(); //common commands + +// bCommoncmds[CMDID_COMMON_DROP_BALL].disable(); +// bCommoncmds[CMDID_COMMON_SUBS].disable(); +// bCommoncmds[CMDID_COMMON_HALFTIME].disable(); +// bCommoncmds[CMDID_COMMON_CONFIG].disable(); + + bCommoncmds[CMDID_COMMON_RESET].activate(); + bCommoncmds[CMDID_COMMON_PARKING].activate(); + buttonCSTARTdisable(); + buttonCSTOPactivate(); + break; + + default: + buttonAenable(); //team A commands + buttonBenable(); //team B commands + buttonCenable(); //common commands + buttonCSTOPactivate(); + break; + + } + + // The switches are enabled only on pre-game + if(StateMachine.GetCurrentGameState() != GameStateEnum.GS_PREGAME) + { + for(int i = 0; i < bSlider.length; i++) { + //bSlider[i].disable(); + } + }else{ + for(int i = 0; i < bSlider.length; i++) { + //bSlider[i].enable(); + } + } + + // Update End Part / End Game button + + String endPartOrEndGame = "End Part"; + switch(StateMachine.GetCurrentGameState()) + { + case GS_HALFTIME: + case GS_GAMEON_H2: + case GS_GAMEON_H4: + case GS_GAMESTOP_H2: + case GS_GAMESTOP_H4: + endPartOrEndGame = "End Game"; + break; + case GS_PENALTIES: + case GS_OVERTIME: + endPartOrEndGame = "Game Over"; + break; + } + + bCommoncmds[CMDID_COMMON_HALFTIME].Label = endPartOrEndGame; +} + +//********************************************************************* +// Start button has been pressed and game is now ON +void refreshbutton_game_on() +{ + buttondisableAll(); + buttonCSTARTdisable(); + buttonCSTOPactivate(); +} + +//********************************************************************* +// +void refreshbutton_game_stopped() +{ + if(bTeamAcmds[CMDID_TEAM_GOAL].isActive()) { + buttonAdisable(); + buttonBdisable(); + buttonCdisable(); + bTeamBcmds[CMDID_TEAM_KICKOFF].enable(); + bTeamBcmds[CMDID_TEAM_GOAL].disable(); + bCommoncmds[CMDID_COMMON_HALFTIME].enable(); + } + else if(bTeamBcmds[CMDID_TEAM_GOAL].isActive()) { + buttonAdisable(); + buttonBdisable(); + buttonCdisable(); + bTeamAcmds[CMDID_TEAM_KICKOFF].enable(); + bTeamAcmds[CMDID_TEAM_GOAL].disable(); + bCommoncmds[CMDID_COMMON_HALFTIME].enable(); + } + else { + if(!StateMachine.setpiece) { + buttonA_setpieces_en(); //team A commands + buttonB_setpieces_en(); //team B commands + + bCommoncmds[CMDID_COMMON_DROP_BALL].enable(); + bCommoncmds[CMDID_COMMON_HALFTIME].enable(); + bCommoncmds[CMDID_COMMON_PARKING].disable(); + bCommoncmds[CMDID_COMMON_RESET].disable(); + bTeamAcmds[CMDID_TEAM_GOAL].enable(); + bTeamBcmds[CMDID_TEAM_GOAL].enable(); + bCommoncmds[CMDID_COMMON_SUBS].enable(); + buttonCSTARTdisable(); // Turn OFF START button + } + else + { + bTeamAcmds[CMDID_TEAM_GOAL].disable(); + bTeamBcmds[CMDID_TEAM_GOAL].disable(); + } + + for(int i = CMDID_TEAM_REPAIR_OUT; i <= CMDID_TEAM_YELLOWCARD; i++) + { + if(!bTeamAcmds[i].isActive()) + bTeamAcmds[i].enable(); + + if(!bTeamBcmds[i].isActive()) + bTeamBcmds[i].enable(); + } + } + buttonCSTOPactivate(); // Turn ON STOP button + + if (teamA.numberOfPlayingRobots() < 3) bTeamAcmds[CMDID_TEAM_REPAIR_OUT].disable(); + if (teamB.numberOfPlayingRobots() < 3) bTeamBcmds[CMDID_TEAM_REPAIR_OUT].disable(); +} + +// ============================ + +//********************************************************************* +void buttonA_setpieces_en() +{ + for (int i=CMDID_TEAM_FREEKICK; i <= CMDID_TEAM_ISALIVE; i++) + bTeamAcmds[i].enable(); + if (forceKickoff == true) + bTeamAcmds[CMDID_TEAM_KICKOFF].enable(); + else + bTeamAcmds[CMDID_TEAM_KICKOFF].disable(); +} + +//********************************************************************* +void buttonB_setpieces_en() +{ + for (int i=CMDID_TEAM_FREEKICK; i <= CMDID_TEAM_ISALIVE; i++) + bTeamBcmds[i].enable(); + if (forceKickoff == true) + bTeamBcmds[CMDID_TEAM_KICKOFF].enable(); + else + bTeamBcmds[CMDID_TEAM_KICKOFF].disable(); +} + +//********************************************************************* +void buttonAenable() { + for (int i=0; i6 && bTeamAcmds[i].isActive()) ; //maintains goals+repair+cards + else bTeamAcmds[i].enable(); + } +} +//********************************************************************* +void buttonBenable() { + for (int i=0; i6 && bTeamBcmds[i].isActive()) ; //maintains repair+cards + else bTeamBcmds[i].enable(); + } +} + +//********************************************************************* +void buttonCenable() { + for (int i=2; i// //<>// + ResetSetpiece(); //<>// //<>// if(btnCurrent.isStop()){ SetPieceDelay.resetStopWatch(); SetPieceDelay.stopTimer(); @@ -467,7 +484,7 @@ static class StateMachine case GS_PENALTIES: return GameStateEnum.GS_ENDGAME; } - return null; + return gsCurrent; } //************************************************************************ @@ -494,9 +511,10 @@ static class StateMachine case GS_HALFTIME_OVERTIME: case GS_GAMESTOP_H4: return GameStateEnum.GS_GAMEON_H4; - - case GS_PENALTIES: return GameStateEnum.GS_PENALTIES_ON; - case GS_PENALTIES_ON: return GameStateEnum.GS_PENALTIES; + case GS_PENALTIES: + return GameStateEnum.GS_PENALTIES_ON; + case GS_PENALTIES_ON: + return GameStateEnum.GS_PENALTIES; } return null; diff --git a/mslrb2015/enums.java b/mslrb2015/enums.java index 57504e1..e8b70e7 100644 --- a/mslrb2015/enums.java +++ b/mslrb2015/enums.java @@ -172,13 +172,13 @@ enum GameStateEnum GS_GAMESTOP_H3(7), // Game stopped during first half of overtime GS_GAMEON_H3(8), // Game on during first half of overtime - GS_HALFTIME_OVERTIME(9), // First half time of oertime + GS_HALFTIME_OVERTIME(9), // First half time of overtime GS_GAMESTOP_H4(10), // Game stopped during second half of overtime GS_GAMEON_H4(11), // Game on during second half of overtime - GS_PENALTIES(12), // Penalties period on mbc???? - GS_PENALTIES_ON(13), // Penalties period on mbc???? + GS_PENALTIES(12), // Penalties shoot out period on - setpiece OFF + GS_PENALTIES_ON(13), // Penalties shoot out period on - setpiece ON GS_ENDGAME(14), // Game over GS_FORCE_ENDGAME(15), // Game over GS_RESET(16), // Reset Game diff --git a/mslrb2015/gui.pde b/mslrb2015/gui.pde new file mode 100644 index 0000000..e77b741 --- /dev/null +++ b/mslrb2015/gui.pde @@ -0,0 +1,4 @@ +// gui.pde + + +