/* */ package NET.worlds.console; /* */ /* */ import NET.worlds.core.IniFile; /* */ import NET.worlds.network.NetUpdate; /* */ import NET.worlds.network.URL; /* */ import NET.worlds.scape.MusicManager; /* */ import NET.worlds.scape.Pilot; /* */ import NET.worlds.scape.TeleportAction; /* */ import NET.worlds.scape.TeleportStatus; /* */ import NET.worlds.scape.World; /* */ import java.awt.Button; /* */ import java.awt.Frame; /* */ import java.awt.GridBagConstraints; /* */ import java.awt.GridBagLayout; /* */ import java.io.File; /* */ import java.io.FileInputStream; /* */ import java.io.FileOutputStream; /* */ import java.io.PrintStream; /* */ import java.text.MessageFormat; /* */ import java.util.Enumeration; /* */ import java.util.Hashtable; /* */ import java.util.NoSuchElementException; /* */ import java.util.StringTokenizer; /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ public class Gamma /* */ implements Runnable, MainCallback, TeleportStatus /* */ { /* 135 */ private static SplashScreen splash = null; /* */ public static ProgressBar loadProgress; /* */ static final int LOAD_PROGRESS_STEPS = 12; /* */ static final float failVersion = 1.06F; /* */ static final float maxVersion = 1.13F; /* */ /* */ static class PriorityAdjuster implements MainCallback { /* */ private Thread mainThread; /* */ /* */ PriorityAdjuster(Thread t) { /* 145 */ this.mainThread = t; /* 146 */ this.mainThread.setPriority(5); /* 147 */ Main.register(this); /* */ } /* */ /* 150 */ boolean wasActivated = true; /* */ /* */ public void mainCallback() { /* 153 */ if (Window.isActivated() == this.wasActivated) { /* 154 */ return; /* */ } /* 156 */ this.wasActivated = (!this.wasActivated); /* 157 */ this.mainThread.setPriority(this.wasActivated ? 5 : /* 158 */ 1); /* */ } /* */ } /* */ /* */ /* */ /* */ static boolean checkVersion(String ver) /* */ { /* 166 */ StringTokenizer tok = new StringTokenizer(ver, "._"); /* */ /* 168 */ float version = 0.0F; /* */ try /* */ { /* 171 */ Integer i = new Integer(tok.nextToken()); /* 172 */ version = i.intValue(); /* 173 */ i = new Integer(tok.nextToken()); /* 174 */ float min = i.floatValue() / 100.0F; /* 175 */ if (min < 1.0F) { /* 176 */ version += min; /* */ } else /* 178 */ return true; /* 179 */ i = new Integer(tok.nextToken()); /* 180 */ min = i.floatValue() / 1000.0F; /* 181 */ version += min; /* */ } /* */ catch (NoSuchElementException localNoSuchElementException) {} /* */ /* */ /* */ /* 187 */ if ((version < 1.06F) || (version > 1.13F)) { /* 188 */ BlockingDialog d = new BlockingDialog(new Frame(), /* 189 */ "Worlds.com: Error", true); /* 190 */ GridBagLayout gbl = new GridBagLayout(); /* 191 */ d.setLayout(gbl); /* 192 */ d.setSize(320, 150); /* */ /* 194 */ MultiLineLabel mll = new MultiLineLabel( /* 195 */ "Your system's Java Virtual Machine\nis incompatible.\nPlease download Java 8 from www.java.com\nand try again."); /* */ /* */ /* */ /* 199 */ GridBagConstraints c = new GridBagConstraints(); /* 200 */ c.gridx = 0; /* 201 */ c.gridy = 0; /* 202 */ gbl.setConstraints(mll, c); /* 203 */ d.add(mll); /* */ /* 205 */ Button b = new Button("OK"); /* 206 */ b.addActionListener(d); /* 207 */ GridBagConstraints c2 = new GridBagConstraints(); /* 208 */ c2.gridx = 0; /* 209 */ c2.gridy = 1; /* 210 */ gbl.setConstraints(b, c2); /* */ /* 212 */ d.add(b); /* 213 */ d.validate(); /* 214 */ d.setVisible(true); /* */ /* 216 */ d.waitForResponse(); /* */ /* 218 */ return false; /* */ } /* */ /* 221 */ return true; /* */ } /* */ /* */ /* Error */ /* */ public static void main(String[] args) /* */ { /* */ // Byte code: /* */ // 0: aload_0 /* */ // 1: invokestatic 176 NET/worlds/console/Gamma:parseCommandLine ([Ljava/lang/String;)Ljava/lang/String; /* */ // 4: astore_1 /* */ // 5: ldc -76 /* */ // 7: invokestatic 182 java/lang/System:getProperty (Ljava/lang/String;)Ljava/lang/String; /* */ // 10: astore_2 /* */ // 11: aload_2 /* */ // 12: invokestatic 188 NET/worlds/console/Gamma:checkVersion (Ljava/lang/String;)Z /* */ // 15: ifne +7 -> 22 /* */ // 18: iconst_0 /* */ // 19: invokestatic 190 java/lang/System:exit (I)V /* */ // 22: ldc -62 /* */ // 24: invokestatic 182 java/lang/System:getProperty (Ljava/lang/String;)Ljava/lang/String; /* */ // 27: astore_3 /* */ // 28: getstatic 196 java/lang/System:out Ljava/io/PrintStream; /* */ // 31: new 200 java/lang/StringBuilder /* */ // 34: dup /* */ // 35: ldc -54 /* */ // 37: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 40: aload_2 /* */ // 41: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 44: ldc -47 /* */ // 46: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 49: ldc -62 /* */ // 51: invokestatic 182 java/lang/System:getProperty (Ljava/lang/String;)Ljava/lang/String; /* */ // 54: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 57: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 60: invokevirtual 214 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 63: ldc -37 /* */ // 65: astore 4 /* */ // 67: iconst_0 /* */ // 68: istore 5 /* */ // 70: aload_3 /* */ // 71: ldc -35 /* */ // 73: invokevirtual 223 java/lang/String:indexOf (Ljava/lang/String;)I /* */ // 76: iconst_m1 /* */ // 77: if_icmpeq +10 -> 87 /* */ // 80: ldc -29 /* */ // 82: astore 4 /* */ // 84: iconst_1 /* */ // 85: istore 5 /* */ // 87: getstatic 196 java/lang/System:out Ljava/io/PrintStream; /* */ // 90: new 200 java/lang/StringBuilder /* */ // 93: dup /* */ // 94: ldc -27 /* */ // 96: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 99: new 200 java/lang/StringBuilder /* */ // 102: dup /* */ // 103: getstatic 48 NET/worlds/console/Gamma:_dllPath Ljava/lang/String; /* */ // 106: invokestatic 231 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String; /* */ // 109: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 112: ldc -21 /* */ // 114: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 117: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 120: invokestatic 237 NET/worlds/console/Gamma:earlyURLUnalias (Ljava/lang/String;)Ljava/lang/String; /* */ // 123: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 126: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 129: invokevirtual 214 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 132: new 200 java/lang/StringBuilder /* */ // 135: dup /* */ // 136: getstatic 48 NET/worlds/console/Gamma:_dllPath Ljava/lang/String; /* */ // 139: invokestatic 231 java/lang/String:valueOf (Ljava/lang/Object;)Ljava/lang/String; /* */ // 142: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 145: ldc -21 /* */ // 147: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 150: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 153: invokestatic 237 NET/worlds/console/Gamma:earlyURLUnalias (Ljava/lang/String;)Ljava/lang/String; /* */ // 156: invokestatic 240 java/lang/System:load (Ljava/lang/String;)V /* */ // 159: iload 5 /* */ // 161: ifeq +6 -> 167 /* */ // 164: invokestatic 243 NET/worlds/console/Window:doMicrosoftVMHacks ()V /* */ // 167: invokestatic 248 NET/worlds/core/IniFile:gamma ()LNET/worlds/core/IniFile; /* */ // 170: ldc -2 /* */ // 172: iconst_0 /* */ // 173: invokevirtual 256 NET/worlds/core/IniFile:getIniInt (Ljava/lang/String;I)I /* */ // 176: ifne +17 -> 193 /* */ // 179: aload_1 /* */ // 180: getstatic 57 NET/worlds/console/Gamma:_autoplay Z /* */ // 183: invokestatic 260 NET/worlds/console/Startup:synchronizeStartup (Ljava/lang/String;Z)Z /* */ // 186: ifne +7 -> 193 /* */ // 189: iconst_0 /* */ // 190: invokestatic 190 java/lang/System:exit (I)V /* */ // 193: iload 5 /* */ // 195: ifne +8 -> 203 /* */ // 198: ldc_w 266 /* */ // 201: astore 4 /* */ // 203: new 268 java/awt/Color /* */ // 206: dup /* */ // 207: iconst_0 /* */ // 208: iconst_0 /* */ // 209: iconst_0 /* */ // 210: invokespecial 270 java/awt/Color: (III)V /* */ // 213: astore 6 /* */ // 215: new 273 java/net/URL /* */ // 218: dup /* */ // 219: ldc_w 275 /* */ // 222: invokespecial 277 java/net/URL: (Ljava/lang/String;)V /* */ // 225: astore 7 /* */ // 227: aload 7 /* */ // 229: invokevirtual 278 java/net/URL:openConnection ()Ljava/net/URLConnection; /* */ // 232: astore 8 /* */ // 234: aload 8 /* */ // 236: invokevirtual 282 java/net/URLConnection:connect ()V /* */ // 239: goto +10 -> 249 /* */ // 242: astore 7 /* */ // 244: goto +5 -> 249 /* */ // 247: astore 7 /* */ // 249: iload 5 /* */ // 251: ifne +8 -> 259 /* */ // 254: aload 4 /* */ // 256: invokestatic 287 NET/worlds/console/Window:hookWinAPIs (Ljava/lang/String;)V /* */ // 259: ldc_w 290 /* */ // 262: invokestatic 237 NET/worlds/console/Gamma:earlyURLUnalias (Ljava/lang/String;)Ljava/lang/String; /* */ // 265: astore 7 /* */ // 267: invokestatic 292 NET/worlds/core/Std:initProductName ()V /* */ // 270: invokestatic 297 NET/worlds/core/IniFile:override ()LNET/worlds/core/IniFile; /* */ // 273: astore 8 /* */ // 275: aload 8 /* */ // 277: ldc_w 300 /* */ // 280: ldc_w 302 /* */ // 283: invokestatic 304 NET/worlds/console/Console:message (Ljava/lang/String;)Ljava/lang/String; /* */ // 286: invokevirtual 309 NET/worlds/core/IniFile:getIniString (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; /* */ // 289: astore 9 /* */ // 291: new 313 NET/worlds/console/SplashScreen /* */ // 294: dup /* */ // 295: invokestatic 315 NET/worlds/console/GammaFrame:getDefaultTitle ()Ljava/lang/String; /* */ // 298: aload 9 /* */ // 300: invokespecial 320 NET/worlds/console/SplashScreen: (Ljava/lang/String;Ljava/lang/String;)V /* */ // 303: putstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 306: getstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 309: iconst_1 /* */ // 310: invokevirtual 321 NET/worlds/console/SplashScreen:setVisible (Z)V /* */ // 313: getstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 316: invokevirtual 322 NET/worlds/console/SplashScreen:toFront ()V /* */ // 319: invokestatic 248 NET/worlds/core/IniFile:gamma ()LNET/worlds/core/IniFile; /* */ // 322: ldc_w 325 /* */ // 325: ldc_w 327 /* */ // 328: invokevirtual 309 NET/worlds/core/IniFile:getIniString (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; /* */ // 331: astore 10 /* */ // 333: invokestatic 248 NET/worlds/core/IniFile:gamma ()LNET/worlds/core/IniFile; /* */ // 336: ldc_w 329 /* */ // 339: ldc_w 327 /* */ // 342: invokevirtual 309 NET/worlds/core/IniFile:getIniString (Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String; /* */ // 345: astore 11 /* */ // 347: aload 10 /* */ // 349: invokevirtual 331 java/lang/String:length ()I /* */ // 352: bipush 7 /* */ // 354: if_icmple +88 -> 442 /* */ // 357: invokestatic 334 java/lang/System:getProperties ()Ljava/util/Properties; /* */ // 360: astore 12 /* */ // 362: getstatic 196 java/lang/System:out Ljava/io/PrintStream; /* */ // 365: new 200 java/lang/StringBuilder /* */ // 368: dup /* */ // 369: ldc_w 338 /* */ // 372: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 375: aload 10 /* */ // 377: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 380: ldc_w 340 /* */ // 383: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 386: aload 11 /* */ // 388: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 391: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 394: invokevirtual 214 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 397: aload 12 /* */ // 399: ldc_w 342 /* */ // 402: invokevirtual 344 java/util/Properties:remove (Ljava/lang/Object;)Ljava/lang/Object; /* */ // 405: pop /* */ // 406: aload 12 /* */ // 408: ldc_w 350 /* */ // 411: invokevirtual 344 java/util/Properties:remove (Ljava/lang/Object;)Ljava/lang/Object; /* */ // 414: pop /* */ // 415: aload 12 /* */ // 417: ldc_w 342 /* */ // 420: aload 10 /* */ // 422: invokevirtual 352 java/util/Properties:put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; /* */ // 425: pop /* */ // 426: aload 12 /* */ // 428: ldc_w 350 /* */ // 431: aload 11 /* */ // 433: invokevirtual 352 java/util/Properties:put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object; /* */ // 436: pop /* */ // 437: aload 12 /* */ // 439: invokestatic 356 java/lang/System:setProperties (Ljava/util/Properties;)V /* */ // 442: new 360 NET/worlds/console/ProgressBar /* */ // 445: dup /* */ // 446: ldc_w 362 /* */ // 449: bipush 12 /* */ // 451: invokespecial 364 NET/worlds/console/ProgressBar: (Ljava/lang/String;I)V /* */ // 454: putstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 457: getstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 460: invokevirtual 369 NET/worlds/console/SplashScreen:getSize ()Ljava/awt/Dimension; /* */ // 463: astore 14 /* */ // 465: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 468: invokevirtual 373 NET/worlds/console/ProgressBar:getSize ()Ljava/awt/Dimension; /* */ // 471: astore 15 /* */ // 473: getstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 476: invokevirtual 374 NET/worlds/console/SplashScreen:getLocationOnScreen ()Ljava/awt/Point; /* */ // 479: getfield 378 java/awt/Point:x I /* */ // 482: aload 14 /* */ // 484: getfield 383 java/awt/Dimension:width I /* */ // 487: iconst_1 /* */ // 488: ishr /* */ // 489: iadd /* */ // 490: aload 15 /* */ // 492: getfield 383 java/awt/Dimension:width I /* */ // 495: iconst_1 /* */ // 496: ishr /* */ // 497: isub /* */ // 498: istore 12 /* */ // 500: getstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 503: invokevirtual 374 NET/worlds/console/SplashScreen:getLocationOnScreen ()Ljava/awt/Point; /* */ // 506: getfield 388 java/awt/Point:y I /* */ // 509: aload 14 /* */ // 511: getfield 391 java/awt/Dimension:height I /* */ // 514: iadd /* */ // 515: istore 13 /* */ // 517: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 520: iload 12 /* */ // 522: iload 13 /* */ // 524: invokevirtual 394 NET/worlds/console/ProgressBar:setLocation (II)V /* */ // 527: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 530: iconst_1 /* */ // 531: invokevirtual 397 NET/worlds/console/ProgressBar:setVisible (Z)V /* */ // 534: iconst_3 /* */ // 535: invokestatic 398 java/awt/Cursor:getPredefinedCursor (I)Ljava/awt/Cursor; /* */ // 538: astore 16 /* */ // 540: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 543: aload 16 /* */ // 545: invokevirtual 404 NET/worlds/console/ProgressBar:setCursor (Ljava/awt/Cursor;)V /* */ // 548: getstatic 40 NET/worlds/console/Gamma:splash LNET/worlds/console/SplashScreen; /* */ // 551: aload 16 /* */ // 553: invokevirtual 408 NET/worlds/console/SplashScreen:setCursor (Ljava/awt/Cursor;)V /* */ // 556: aload 7 /* */ // 558: invokevirtual 331 java/lang/String:length ()I /* */ // 561: iconst_1 /* */ // 562: if_icmple +45 -> 607 /* */ // 565: aload 7 /* */ // 567: iconst_1 /* */ // 568: invokevirtual 409 java/lang/String:charAt (I)C /* */ // 571: bipush 58 /* */ // 573: if_icmpne +34 -> 607 /* */ // 576: new 200 java/lang/StringBuilder /* */ // 579: dup /* */ // 580: invokespecial 413 java/lang/StringBuilder: ()V /* */ // 583: aload 7 /* */ // 585: iconst_0 /* */ // 586: invokevirtual 409 java/lang/String:charAt (I)C /* */ // 589: invokevirtual 414 java/lang/StringBuilder:append (C)Ljava/lang/StringBuilder; /* */ // 592: ldc_w 417 /* */ // 595: invokevirtual 205 java/lang/StringBuilder:append (Ljava/lang/String;)Ljava/lang/StringBuilder; /* */ // 598: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 601: invokestatic 419 NET/worlds/console/Startup:computeVolumeInfo (Ljava/lang/String;)V /* */ // 604: goto +7 -> 611 /* */ // 607: aconst_null /* */ // 608: invokestatic 419 NET/worlds/console/Startup:computeVolumeInfo (Ljava/lang/String;)V /* */ // 611: invokestatic 422 NET/worlds/console/LogFile:open ()V /* */ // 614: new 1 NET/worlds/console/Gamma /* */ // 617: dup /* */ // 618: aload_1 /* */ // 619: invokespecial 427 NET/worlds/console/Gamma: (Ljava/lang/String;)V /* */ // 622: astore 17 /* */ // 624: aload 17 /* */ // 626: invokestatic 428 NET/worlds/console/Main:register (LNET/worlds/console/MainCallback;)V /* */ // 629: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 632: ifnull +18 -> 650 /* */ // 635: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 638: ldc_w 434 /* */ // 641: invokevirtual 436 NET/worlds/console/ProgressBar:setMessage (Ljava/lang/String;)V /* */ // 644: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 647: invokevirtual 439 NET/worlds/console/ProgressBar:advance ()V /* */ // 650: new 442 java/lang/Thread /* */ // 653: dup /* */ // 654: aload 17 /* */ // 656: ldc_w 444 /* */ // 659: invokespecial 446 java/lang/Thread: (Ljava/lang/Runnable;Ljava/lang/String;)V /* */ // 662: astore 18 /* */ // 664: aload 18 /* */ // 666: iconst_1 /* */ // 667: invokevirtual 449 java/lang/Thread:setDaemon (Z)V /* */ // 670: aload 18 /* */ // 672: invokevirtual 452 java/lang/Thread:start ()V /* */ // 675: new 455 NET/worlds/console/Gamma$PriorityAdjuster /* */ // 678: aload 18 /* */ // 680: invokespecial 457 NET/worlds/console/Gamma$PriorityAdjuster: (Ljava/lang/Thread;)V /* */ // 683: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 686: ifnull +18 -> 704 /* */ // 689: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 692: ldc_w 460 /* */ // 695: invokevirtual 436 NET/worlds/console/ProgressBar:setMessage (Ljava/lang/String;)V /* */ // 698: getstatic 367 NET/worlds/console/Gamma:loadProgress LNET/worlds/console/ProgressBar; /* */ // 701: invokevirtual 439 NET/worlds/console/ProgressBar:advance ()V /* */ // 704: new 462 NET/worlds/console/Netscape /* */ // 707: dup /* */ // 708: invokespecial 464 NET/worlds/console/Netscape: ()V /* */ // 711: astore 19 /* */ // 713: aload 18 /* */ // 715: invokevirtual 465 java/lang/Thread:join ()V /* */ // 718: goto +18 -> 736 /* */ // 721: astore 20 /* */ // 723: new 468 java/lang/Error /* */ // 726: dup /* */ // 727: aload 20 /* */ // 729: invokevirtual 470 java/lang/InterruptedException:toString ()Ljava/lang/String; /* */ // 732: invokespecial 473 java/lang/Error: (Ljava/lang/String;)V /* */ // 735: athrow /* */ // 736: invokestatic 474 NET/worlds/console/Console:getFrame ()LNET/worlds/console/GammaFrame; /* */ // 739: astore 20 /* */ // 741: aload 20 /* */ // 743: ifnull +93 -> 836 /* */ // 746: aload 20 /* */ // 748: iconst_0 /* */ // 749: invokevirtual 478 NET/worlds/console/GammaFrame:setVisible (Z)V /* */ // 752: goto +84 -> 836 /* */ // 755: astore 17 /* */ // 757: getstatic 196 java/lang/System:out Ljava/io/PrintStream; /* */ // 760: ldc_w 479 /* */ // 763: invokevirtual 214 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 766: getstatic 196 java/lang/System:out Ljava/io/PrintStream; /* */ // 769: new 200 java/lang/StringBuilder /* */ // 772: dup /* */ // 773: ldc_w 481 /* */ // 776: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 779: aload 17 /* */ // 781: invokevirtual 483 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder; /* */ // 784: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 787: invokevirtual 214 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 790: invokestatic 486 NET/worlds/console/LogFile:close ()V /* */ // 793: goto +46 -> 839 /* */ // 796: astore 17 /* */ // 798: getstatic 196 java/lang/System:out Ljava/io/PrintStream; /* */ // 801: new 200 java/lang/StringBuilder /* */ // 804: dup /* */ // 805: ldc_w 489 /* */ // 808: invokespecial 204 java/lang/StringBuilder: (Ljava/lang/String;)V /* */ // 811: aload 17 /* */ // 813: invokevirtual 483 java/lang/StringBuilder:append (Ljava/lang/Object;)Ljava/lang/StringBuilder; /* */ // 816: invokevirtual 211 java/lang/StringBuilder:toString ()Ljava/lang/String; /* */ // 819: invokevirtual 214 java/io/PrintStream:println (Ljava/lang/String;)V /* */ // 822: invokestatic 486 NET/worlds/console/LogFile:close ()V /* */ // 825: goto +14 -> 839 /* */ // 828: astore 21 /* */ // 830: invokestatic 486 NET/worlds/console/LogFile:close ()V /* */ // 833: aload 21 /* */ // 835: athrow /* */ // 836: invokestatic 486 NET/worlds/console/LogFile:close ()V /* */ // 839: iconst_0 /* */ // 840: invokestatic 190 java/lang/System:exit (I)V /* */ // 843: return /* */ // Line number table: /* */ // Java source line #246 -> byte code offset #0 /* */ // Java source line #249 -> byte code offset #5 /* */ // Java source line #250 -> byte code offset #11 /* */ // Java source line #251 -> byte code offset #18 /* */ // Java source line #253 -> byte code offset #22 /* */ // Java source line #255 -> byte code offset #28 /* */ // Java source line #256 -> byte code offset #49 /* */ // Java source line #255 -> byte code offset #60 /* */ // Java source line #258 -> byte code offset #63 /* */ // Java source line #261 -> byte code offset #67 /* */ // Java source line #263 -> byte code offset #70 /* */ // Java source line #264 -> byte code offset #80 /* */ // Java source line #266 -> byte code offset #84 /* */ // Java source line #271 -> byte code offset #87 /* */ // Java source line #272 -> byte code offset #99 /* */ // Java source line #271 -> byte code offset #129 /* */ // Java source line #273 -> byte code offset #132 /* */ // Java source line #275 -> byte code offset #159 /* */ // Java source line #276 -> byte code offset #164 /* */ // Java source line #284 -> byte code offset #167 /* */ // Java source line #285 -> byte code offset #179 /* */ // Java source line #286 -> byte code offset #189 /* */ // Java source line #296 -> byte code offset #193 /* */ // Java source line #297 -> byte code offset #198 /* */ // Java source line #300 -> byte code offset #203 /* */ // Java source line #304 -> byte code offset #215 /* */ // Java source line #305 -> byte code offset #227 /* */ // Java source line #306 -> byte code offset #234 /* */ // Java source line #307 -> byte code offset #239 /* */ // Java source line #308 -> byte code offset #247 /* */ // Java source line #326 -> byte code offset #249 /* */ // Java source line #327 -> byte code offset #254 /* */ // Java source line #331 -> byte code offset #259 /* */ // Java source line #333 -> byte code offset #267 /* */ // Java source line #336 -> byte code offset #270 /* */ // Java source line #337 -> byte code offset #275 /* */ // Java source line #338 -> byte code offset #280 /* */ // Java source line #337 -> byte code offset #286 /* */ // Java source line #339 -> byte code offset #291 /* */ // Java source line #340 -> byte code offset #306 /* */ // Java source line #341 -> byte code offset #313 /* */ // Java source line #343 -> byte code offset #319 /* */ // Java source line #344 -> byte code offset #333 /* */ // Java source line #345 -> byte code offset #336 /* */ // Java source line #344 -> byte code offset #345 /* */ // Java source line #347 -> byte code offset #347 /* */ // Java source line #349 -> byte code offset #357 /* */ // Java source line #350 -> byte code offset #362 /* */ // Java source line #351 -> byte code offset #386 /* */ // Java source line #350 -> byte code offset #394 /* */ // Java source line #352 -> byte code offset #397 /* */ // Java source line #353 -> byte code offset #406 /* */ // Java source line #354 -> byte code offset #415 /* */ // Java source line #355 -> byte code offset #426 /* */ // Java source line #356 -> byte code offset #437 /* */ // Java source line #359 -> byte code offset #442 /* */ // Java source line #360 -> byte code offset #449 /* */ // Java source line #359 -> byte code offset #451 /* */ // Java source line #362 -> byte code offset #457 /* */ // Java source line #363 -> byte code offset #465 /* */ // Java source line #364 -> byte code offset #473 /* */ // Java source line #365 -> byte code offset #500 /* */ // Java source line #366 -> byte code offset #517 /* */ // Java source line #367 -> byte code offset #527 /* */ // Java source line #370 -> byte code offset #534 /* */ // Java source line #369 -> byte code offset #538 /* */ // Java source line #371 -> byte code offset #540 /* */ // Java source line #372 -> byte code offset #548 /* */ // Java source line #375 -> byte code offset #556 /* */ // Java source line #376 -> byte code offset #576 /* */ // Java source line #378 -> byte code offset #607 /* */ // Java source line #383 -> byte code offset #611 /* */ // Java source line #390 -> byte code offset #614 /* */ // Java source line #393 -> byte code offset #624 /* */ // Java source line #395 -> byte code offset #629 /* */ // Java source line #396 -> byte code offset #635 /* */ // Java source line #397 -> byte code offset #644 /* */ // Java source line #400 -> byte code offset #650 /* */ // Java source line #401 -> byte code offset #664 /* */ // Java source line #402 -> byte code offset #670 /* */ // Java source line #404 -> byte code offset #675 /* */ // Java source line #408 -> byte code offset #683 /* */ // Java source line #409 -> byte code offset #689 /* */ // Java source line #410 -> byte code offset #698 /* */ // Java source line #414 -> byte code offset #704 /* */ // Java source line #418 -> byte code offset #713 /* */ // Java source line #419 -> byte code offset #718 /* */ // Java source line #420 -> byte code offset #723 /* */ // Java source line #423 -> byte code offset #736 /* */ // Java source line #424 -> byte code offset #741 /* */ // Java source line #425 -> byte code offset #746 /* */ // Java source line #427 -> byte code offset #752 /* */ // Java source line #428 -> byte code offset #757 /* */ // Java source line #429 -> byte code offset #766 /* */ // Java source line #454 -> byte code offset #790 /* */ // Java source line #451 -> byte code offset #796 /* */ // Java source line #452 -> byte code offset #798 /* */ // Java source line #454 -> byte code offset #822 /* */ // Java source line #453 -> byte code offset #828 /* */ // Java source line #454 -> byte code offset #830 /* */ // Java source line #455 -> byte code offset #833 /* */ // Java source line #454 -> byte code offset #836 /* */ // Java source line #458 -> byte code offset #839 /* */ // Java source line #459 -> byte code offset #843 /* */ // Local variable table: /* */ // start length slot name signature /* */ // 0 844 0 args String[] /* */ // 4 615 1 worldURL String /* */ // 10 31 2 s String /* */ // 27 44 3 vendor String /* */ // 65 190 4 awtDll String /* */ // 68 182 5 msvm boolean /* */ // 213 3 6 black java.awt.Color /* */ // 225 3 7 stupid java.net.URL /* */ // 242 1 7 localMalformedURLException java.net.MalformedURLException /* */ // 247 1 7 localIOException java.io.IOException /* */ // 265 319 7 inihome String /* */ // 232 3 8 uc java.net.URLConnection /* */ // 273 3 8 install IniFile /* */ // 289 10 9 splashgif String /* */ // 331 90 10 proxyIP String /* */ // 345 87 11 proxyPort String /* */ // 360 78 12 p java.util.Properties /* */ // 498 23 12 px int /* */ // 515 8 13 py int /* */ // 463 47 14 sd java.awt.Dimension /* */ // 471 20 15 d java.awt.Dimension /* */ // 538 14 16 c java.awt.Cursor /* */ // 622 33 17 g Gamma /* */ // 755 25 17 oome OutOfMemoryError /* */ // 796 16 17 thr Throwable /* */ // 662 52 18 mainThread Thread /* */ // 711 3 19 ns Netscape /* */ // 721 7 20 e InterruptedException /* */ // 739 8 20 frame GammaFrame /* */ // 828 6 21 localObject Object /* */ // Exception table: /* */ // from to target type /* */ // 215 239 242 java/net/MalformedURLException /* */ // 215 239 247 java/io/IOException /* */ // 713 718 721 java/lang/InterruptedException /* */ // 611 752 755 java/lang/OutOfMemoryError /* */ // 611 752 796 java/lang/Throwable /* */ // 611 790 828 finally /* */ // 796 822 828 finally /* */ } /* */ /* */ public static void hideSplash() /* */ { /* 462 */ if (splash != null) /* */ { /* 464 */ splash.setVisible(false); /* 465 */ splash.dispose(); /* 466 */ splash = null; /* 467 */ if (loadProgress != null) { /* 468 */ loadProgress.setVisible(false); /* 469 */ loadProgress.dispose(); /* 470 */ loadProgress = null; /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ public static String earlyURLUnalias(String url) /* */ { /* 480 */ if (url.startsWith("home:")) /* 481 */ url = _home + url.substring(5); /* 482 */ if (url.startsWith("file:")) { /* 483 */ url = url.substring(5); /* */ } /* 485 */ url = url.replace('\\', '/'); /* */ /* */ /* 488 */ if ((url.length() < 2) || ((url.charAt(1) != ':') && (!url.startsWith("//")))) { /* 489 */ String curDir = System.getProperty("user.dir").replace('\\', '/'); /* 490 */ if (!curDir.endsWith("/")) /* 491 */ curDir = curDir + "/"; /* 492 */ url = curDir + url; /* */ } /* */ /* 495 */ return url; /* */ } /* */ /* 498 */ private static String _home = "file:"; /* 499 */ private static String _dllPath = "home:"; /* */ /* 501 */ private static Hashtable _params = new Hashtable(); /* 502 */ private static boolean _autoplay = false; /* */ static Shaper shaper; /* */ /* 505 */ public static String getParam(String name) { return (String)_params.get(name); } /* */ /* */ /* */ /* */ /* */ private String startingURL; /* */ /* */ /* */ /* */ private String loadErr; /* */ /* */ /* */ /* */ private static String parseCommandLine(String[] args) /* */ { /* 520 */ String world = null; /* */ /* 522 */ for (int i = 0; i < args.length; i++) { /* 523 */ if ((args[i].length() > 0) && (args[i].charAt(0) == '-')) { /* 524 */ if (args[i].equalsIgnoreCase("-help")) { /* 525 */ usage("Help message"); /* 526 */ } else if (args[i].equalsIgnoreCase("-home")) { /* 527 */ i++; if (i == args.length) /* 528 */ usage("-home must be followed by a path:"); /* 529 */ _home = "file:" + args[i]; /* 530 */ System.out.println("Home: " + args[i]); /* 531 */ } else if (args[i].equalsIgnoreCase("-dllpath")) { /* 532 */ i++; if (i == args.length) /* 533 */ usage("-dllpath must be followed by a path:"); /* 534 */ _dllPath = args[i]; /* 535 */ } else if (args[i].equalsIgnoreCase("-set")) { /* 536 */ i++; if (i != args.length) { i++; if (i != args.length) {} /* 537 */ } else { usage("-set must be followed by a name of a parameter to set and its value"); /* */ } /* 539 */ _params.put(args[(i - 1)], args[i]); /* 540 */ } else if (args[i].equalsIgnoreCase("-autoplay")) { /* 541 */ _autoplay = true; /* 542 */ } else if (!args[i].equalsIgnoreCase("-embedding")) /* */ { /* 544 */ if (!args[i].equalsIgnoreCase("/embedding")) /* */ { /* 546 */ if (!args[i].equalsIgnoreCase("-automation")) /* */ { /* 548 */ if (!args[i].equalsIgnoreCase("/automation")) /* */ { /* */ /* 551 */ usage("Unrecognized command line option: " + args[i]); } } } /* */ } /* */ } else { /* 554 */ if (world != null) /* 555 */ usage("There may be only one command-line world URL"); /* 556 */ world = args[i]; /* */ } /* */ } /* */ /* 560 */ _home = makeEndWithSlash(_home); /* 561 */ _dllPath = makeEndWithSlash(_dllPath); /* */ /* 563 */ return world; /* */ } /* */ /* */ private static String makeEndWithSlash(String url) /* */ { /* 568 */ if ((!url.endsWith("\\")) && (!url.endsWith("/")) && (!url.endsWith(":"))) { /* 569 */ url = url + "\\"; /* */ } /* 571 */ return url; /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public static void usage(String msg) /* */ { /* 580 */ System.out.println("Usage: javaw {-java_options} NET.worlds.console.Gamma {-options} WorldURL\nWorldURL is optional, the default world is the first WorldsMark.\nYes, it's gross, but the 'NET.worlds.console.Gamma' is required\nSome useful -java_options:\n -classpath Path Class search path [default is CLASSPATH env var]\n-options:\n -help Print this message (still runs Gamma)\n -home HomeDir Gamma home directory [defaults to current dir]\n -dllpath DLLPath Path to the native code DLL [current directory]\n -set Name Value Set the named parameter to the specified value"); /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 590 */ throw new Error(msg); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ public static String getHome() /* */ { /* 599 */ return _home; /* */ } /* */ /* */ public static String getExePath() { /* 603 */ return getHome() + "bin\\"; /* */ } /* */ /* */ public static void dllLoad(String dll) /* */ { /* 608 */ System.load(URL.make(_dllPath + dll).unalias()); /* */ } /* */ /* */ /* */ /* */ public static Shaper getShaper() /* */ { /* 615 */ return shaper; /* */ } /* */ /* */ /* */ /* */ /* */ public static boolean shaperEnabled() /* */ { /* 623 */ return (IniFile.gamma().getIniInt("DISABLESHAPER", 1) == 0) || ( /* 624 */ IniFile.override().getIniInt("DISABLESHAPER", 1) == 0); /* */ } /* */ /* */ /* */ /* */ /* */ /* */ private Gamma(String url) /* */ { /* 633 */ this.startingURL = url; /* */ } /* */ /* */ /* */ /* */ private void die(Throwable e) /* */ { /* 640 */ e.printStackTrace(System.out); /* 641 */ if (getShaper() != null) { /* 642 */ Console.println(Console.message("Saving-modified")); /* 643 */ Enumeration worlds = World.getWorlds(); /* 644 */ while (worlds.hasMoreElements()) { /* 645 */ World w = (World)worlds.nextElement(); /* 646 */ if (w.getEdited()) { /* 647 */ String base = w.getSourceURL().unalias(); /* */ /* 649 */ if (base.toLowerCase().endsWith(".wor")) { /* 650 */ base = base.substring(0, base.length() - 4); /* */ } /* 652 */ if (base.toLowerCase().endsWith(".world")) { /* 653 */ base = base.substring(0, base.length() - 6); /* */ } /* 655 */ int dash = base.lastIndexOf("-"); /* 656 */ if (dash != -1) { /* 657 */ for (int i = dash + 1; i < base.length(); i++) { /* 658 */ if (!Character.isDigit(base.charAt(i))) { /* 659 */ dash = -1; /* 660 */ break; /* */ } /* */ } /* */ } /* 664 */ if (dash != -1) /* 665 */ base = base.substring(0, dash); /* 666 */ String name = base + ".world"; /* 667 */ int number = 1; /* 668 */ while (new File(name).exists()) { /* 669 */ name = base + "-" + number + ".world"; /* 670 */ number++; /* */ } /* 672 */ Object[] arguments = { new String(w.getName()), /* 673 */ new String(w.getSourceURL()), new String(name) }; /* 674 */ Console.println(MessageFormat.format( /* 675 */ Console.message("Saving-name"), arguments)); /* */ try { /* 677 */ Shaper.doSave(name, w, false); /* */ } catch (Exception ex) { /* 679 */ Console.println(Console.message("Ignoring") + ex); /* */ } catch (Error er) { /* 681 */ Console.println(Console.message("Ignoring") + er); /* */ } /* */ } /* */ } /* */ } /* */ } /* */ /* */ public class RecordPosition implements MainCallback, MainTerminalCallback { /* */ public RecordPosition() {} /* */ /* */ public void mainCallback() {} /* */ /* */ public void terminalCallback() { /* 694 */ Pilot pilot = Pilot.getActive(); /* 695 */ if (pilot != null) /* 696 */ IniFile.gamma().setIniString("RestartAt", pilot.getURL()); /* 697 */ Main.unregister(this); /* */ } /* */ } /* */ /* */ /* */ /* */ public void run() /* */ { /* 705 */ Main.register(new RecordPosition()); /* */ try /* */ { /* 708 */ Main.mainLoop(); /* */ } catch (Throwable e) { /* 710 */ die(e); /* */ } /* */ } /* */ /* */ class StartupTeleport implements MainCallback { StartupTeleport() {} /* */ /* 716 */ public void mainCallback() { if ((Console.getFrame() != null) && (Console.getFrame().isShowing())) { /* 717 */ Main.unregister(this); /* */ try { /* 719 */ TeleportAction.teleport(Gamma.this.startingURL, Gamma.this, true); /* */ } /* */ catch (Exception localException) {} /* */ } /* */ } /* */ } /* */ /* */ /* */ /* */ public void mainCallback() /* */ { /* 730 */ Main.unregister(this); /* */ /* */ /* */ /* */ /* 735 */ if (NetUpdate.doUpdate(false)) { /* 736 */ Main.end(); /* 737 */ return; /* */ } /* */ /* */ /* 741 */ File bin = new File(earlyURLUnalias("home:bin")); /* 742 */ File prg = new File(bin, "gdkup.prg"); /* 743 */ File exe = new File(bin, "gdkup.exe"); /* 744 */ if ((prg.exists()) && ( /* 745 */ (!exe.exists()) || (prg.lastModified() > exe.lastModified()))) { /* 746 */ if (exe.exists()) /* 747 */ exe.delete(); /* */ try { /* 749 */ FileInputStream i = new FileInputStream(prg); /* 750 */ FileOutputStream o = new FileOutputStream(exe); /* 751 */ byte[] buf = new byte[' ']; /* */ int len; /* 753 */ while ((len = i.read(buf)) > 0) { int len; /* 754 */ o.write(buf, 0, len); } /* 755 */ i.close(); /* 756 */ o.close(); /* */ } catch (Exception e) { /* 758 */ e.printStackTrace(System.out); /* 759 */ throw new Error("Can't copy gdkup.prg"); /* */ } /* */ } /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* */ /* 785 */ if (shaperEnabled()) { /* 786 */ shaper = new Shaper(); /* */ } /* 788 */ IniFile install = IniFile.override(); /* 789 */ String splashOver = install.getIniString("splashover", /* 790 */ Console.message("Pwc.gif")); /* 791 */ int splashXOver = install.getIniInt("splashxover", 141); /* 792 */ int splashYOver = install.getIniInt("splashyover", 140); /* */ /* 794 */ if (splashXOver >= 0) { /* 795 */ splash.addOverlay(splashOver, splashXOver, splashYOver); /* */ } /* 797 */ if (loadProgress != null) { /* 798 */ loadProgress.setMessage("Teleporting to start location..."); /* 799 */ loadProgress.advance(); /* */ } /* */ /* */ try /* */ { /* 804 */ TeleportAction.teleport(this.startingURL, this, false); /* */ } catch (Exception e) { /* 806 */ this.loadErr = ("Couldn't teleport to " + this.startingURL + ": " + e); /* */ } /* */ /* 809 */ if (this.loadErr != null) { /* 810 */ System.out.println(this.loadErr); /* 811 */ this.loadErr = null; /* 812 */ TeleportAction.teleport("world:", this, false); /* 813 */ if (this.loadErr != null) { /* 814 */ this.loadErr = null; /* 815 */ TeleportAction.teleport("home:NewWorld.world", this, false); /* 816 */ if (this.loadErr != null) { /* 817 */ Main.end(); /* 818 */ return; /* */ } /* */ } /* */ /* */ /* 823 */ Main.register(new StartupTeleport()); /* */ } /* */ /* */ /* 827 */ new MusicManager(); /* */ } /* */ /* */ public void teleportStatus(String err, String url) /* */ { /* 832 */ if (err == null) { /* 833 */ this.loadErr = null; /* */ } else { /* 835 */ this.loadErr = err; /* */ } /* */ } /* */ } /* Location: C:\Program Files (x86)\Worlds Inc\WorldsPlayer - Win7\lib\worlds.jar!\NET\worlds\console\Gamma.class * Java compiler version: 6 (50.0) * JD-Core Version: 0.7.1 */