Fixed crash between multiple games, switching between old/new UI.

This commit is contained in:
Doublestrike
2011-12-01 04:37:13 +00:00
parent 3e537e85cb
commit eeb9da1545
2 changed files with 32 additions and 0 deletions

View File

@@ -692,6 +692,22 @@ public class GuiDisplay extends JFrame implements CardContainer, Display {
* </p>
*/
private void addObservers() {
// Remove all observers, placed by new UI.
AllZone.getHumanPlayer().deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Hand).deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Graveyard).deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Library).deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Battlefield).deleteObservers();
AllZone.getComputerPlayer().deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Hand).deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Graveyard).deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Library).deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Battlefield).deleteObservers();
AllZone.getStack().deleteObservers();
AllZone.getInputControl().deleteObservers();
// long method
final Observer o = new Observer() {
@Override

View File

@@ -74,6 +74,22 @@ public class ControlMatchUI {
*
*/
public void initMatch() {
// Remove all observers, placed by old UI.
AllZone.getHumanPlayer().deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Hand).deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Graveyard).deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Library).deleteObservers();
AllZone.getHumanPlayer().getZone(Zone.Battlefield).deleteObservers();
AllZone.getComputerPlayer().deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Hand).deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Graveyard).deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Library).deleteObservers();
AllZone.getComputerPlayer().getZone(Zone.Battlefield).deleteObservers();
AllZone.getStack().deleteObservers();
AllZone.getInputControl().deleteObservers();
// All child components have been assembled; observers and listeners can
// be added safely.
this.view.getAreaSidebar().getTabber().getController().addObservers();