public boolean activate()
    {
      String str = null;
      try
      {
        Object localObject;
        if (this.which == 0)
        {
          str = "Error saving game! Contact bugs@legomindstorm.com for assistance.";

          localObject = new ByteArrayOutputStream();
          ObjectOutputStream localObjectOutputStream;
          if (!(this.out instanceof ObjectOutputStream))
            localObjectOutputStream = new ObjectOutputStream((OutputStream)localObject);
          else {
            localObjectOutputStream = (ObjectOutputStream)this.out;
          }
          localObjectOutputStream.writeDouble(0.5D);
          localObjectOutputStream.writeDouble(1.1D);
          localObjectOutputStream.writeObject(this.desc);
          localObjectOutputStream.writeLong(this.tick);
          localObjectOutputStream.writeObject(GameApplet.this.CurrentGameState);
          localObjectOutputStream.writeInt(GameApplet.this.statpanel.getPanelState());
          localObjectOutputStream.writeInt(GameApplet.this.LastState);
          localObjectOutputStream.close();
        }
        else
        {
          str = "Error loading game! Contact bugs@legomindstorm.com for assistance.";

          if (!(this.inp instanceof ObjectInputStream))
            localObject = new ObjectInputStream(this.inp);
          else {
            localObject = (ObjectInputStream)this.inp;
          }

          double d = ((ObjectInputStream)localObject).readDouble();

          if (d < 0.4D)
          {
            failout("That save file doesn't work with this version of the game.", "Save file version (" + d + ") < MINIMUM_SAVE_FORMAT_VERSION (" + 0.4D + ")\nUnable to load.", null);
            return false;
          }

          GameApplet.this.VersionOfCurrentSavegame = ((ObjectInputStream)localObject).readDouble();
          ((ObjectInputStream)localObject).readObject();
          this.tick = ((ObjectInputStream)localObject).readLong();
          GameState localGameState = (GameState)((ObjectInputStream)localObject).readObject();
          ((ObjectInputStream)localObject).readInt();
          int i = ((ObjectInputStream)localObject).readInt();
          ((ObjectInputStream)localObject).close();

          localGameState.setTickCount(this.tick);

          if (GameApplet.this.CurrentGameState != null) {
            GameApplet.this.CurrentGameState.dispose();
          }
          GameApplet.this.CurrentGameState = null;
          GameApplet.this.CurrentRenderer = null;

          GameApplet.thisApplet.removeAll();

          GameApplet.this.CurrentGrid = null;
          GameApplet.this.statpanel = null;
          GameApplet.this.CurrentEditor = null;
          GameApplet.this.opspanel = null;
          GameApplet.this.bay.clearRamp();
          GameApplet.this.bay = null;
          GameApplet.this.buildpanel = null;
          System.gc();
          GameApplet.this.cacheThread.politeStop();

          GameApplet.this.progressDialog.notifyProgress(4096);

          GameApplet.this.startup(localGameState);

          GameApplet.this.buildpanel.setUsername(localGameState.getUsername());
          GameApplet.this.buildpanel.setUserRank(localGameState.getUserRank());
          GameApplet.this.buildpanel.setSecurityLevel(localGameState.getSecurityLevel());
          GameApplet.this.buildpanel.setPolymetals(localGameState.getPolymetals());
          GameApplet.this.buildpanel.setEnergyUnits(localGameState.getEnergyUnits());

          Enumeration localEnumeration = localGameState.getCurrentScene().getObjects().elements();
          while (localEnumeration.hasMoreElements())
          {
            PhysicalObject localPhysicalObject = (PhysicalObject)localEnumeration.nextElement();
            if ((localPhysicalObject instanceof Trigger)) {
              ((Trigger)localPhysicalObject).setGameState(localGameState);
            }
          }
          GameApplet.this.progressDialog.notifyProgress(2048);

          GameApplet.this.statpanel.reportNewCurrentRobot(GameApplet.this.CurrentGameState.getCurrentRobot());

          GameApplet.this.CurrentEditor.setRobot(GameApplet.this.CurrentGameState.getCurrentRobot());

          this.applet.setState(i);

          GameApplet.this.playing = true;

          GameApplet.this.progressDialog.notifyProgress(2048);
          GameApplet.this.optionspanel.remove(GameApplet.this.progressDialog);
          GameApplet.this.progressDialog = null;
          GameApplet.this.optionspanel.setEnabled(true);
        }
      }
      catch (Exception localException)
      {
        failout(str, str, localException);
      }

      return false;
    }