From 64eef1aa288c52e71b135316b391483b8824be83 Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Tue, 2 Jan 2024 19:06:05 +0200 Subject: [PATCH 1/3] Rename GamePlayerInfoPanelThread -> GamePlayerInfoPanelTimerThread This more accurately reflects what the thread does. It's only purpose is to tick down the time remaining counter for strokes. --- .../src/main/java/agolf/game/GamePanel.java | 4 +- .../java/agolf/game/GamePlayerInfoPanel.java | 18 +- ...va => GamePlayerInfoPanelTimerThread.java} | 12 +- doc/uml/org.moparforia.client.svg | 254 +++++++++--------- 4 files changed, 144 insertions(+), 144 deletions(-) rename client/src/main/java/agolf/game/{GamePlayerInfoPanelThread.java => GamePlayerInfoPanelTimerThread.java} (61%) diff --git a/client/src/main/java/agolf/game/GamePanel.java b/client/src/main/java/agolf/game/GamePanel.java index 5aae71f4..fbd8dcc1 100644 --- a/client/src/main/java/agolf/game/GamePanel.java +++ b/client/src/main/java/agolf/game/GamePanel.java @@ -463,7 +463,7 @@ protected void requestNewGame() { protected void method342() { this.gameCanvas.restartGame(); - this.gamePlayerInfoPanel.stop(); + this.gamePlayerInfoPanel.stopTimer(); this.gameContainer.gameApplet.setGameState(0); this.gameContainer.connection.writeData("game\tback"); this.gameContainer.gameApplet.removePlayerList(); @@ -511,7 +511,7 @@ protected boolean canStroke(boolean stopInfoPanel) { } if (stopInfoPanel) {// ??????????????????????????????????? - this.gamePlayerInfoPanel.stop(); + this.gamePlayerInfoPanel.stopTimer(); } else { this.gameCanvas.stop(); } diff --git a/client/src/main/java/agolf/game/GamePlayerInfoPanel.java b/client/src/main/java/agolf/game/GamePlayerInfoPanel.java index 65b7c1d4..bbbe0c33 100644 --- a/client/src/main/java/agolf/game/GamePlayerInfoPanel.java +++ b/client/src/main/java/agolf/game/GamePlayerInfoPanel.java @@ -56,7 +56,7 @@ class GamePlayerInfoPanel extends Panel implements ItemListener, MouseListener { private Choicer aChoicer399; private Image image; private Graphics graphics; - private GamePlayerInfoPanelThread panelThread; + private GamePlayerInfoPanelTimerThread timerThread; private int currentTimeForShot; @@ -182,7 +182,7 @@ public void update(Graphics g) { if (this.playerCount > 1 && this.playerID == player) { if (this.playerID == this.currentPlayerId) { playerInfo = "GamePlayerInfo_OwnTurn"; - if (this.panelThread != null && this.currentTimeForShot > 0 && (this.strokeTimeout > 0 || this.strokeTimeout == 0 && this.currentTimeForShot <= 30)) { + if (this.timerThread != null && this.currentTimeForShot > 0 && (this.strokeTimeout > 0 || this.strokeTimeout == 0 && this.currentTimeForShot <= 30)) { var11 = " (" + this.gameContainer.textManager.getTime((long) this.currentTimeForShot) + ")"; } } else { @@ -380,9 +380,9 @@ protected boolean canShoot(int playerNumber) { int timeout = this.strokeTimeout > 0 ? this.strokeTimeout : 180; if (this.playerCount > 1 && playerNumber == this.currentPlayerId && timeout > 0) { - this.stop(); + this.stopTimer(); this.currentTimeForShot = timeout; - this.panelThread = new GamePlayerInfoPanelThread(this); + this.timerThread = new GamePlayerInfoPanelTimerThread(this); } this.repaint(); @@ -520,10 +520,10 @@ protected int method377() { return this.playerCount > 1 ? -1 : this.trackStrokes[0][this.anInt386].get(); } - protected void stop() { - if (this.panelThread != null) { - this.panelThread.stopRunning(); - this.panelThread = null; + protected void stopTimer() { + if (this.timerThread != null) { + this.timerThread.stopRunning(); + this.timerThread = null; } } @@ -570,7 +570,7 @@ protected boolean run() { this.repaint(); if (this.currentTimeForShot <= 0) { this.gameContainer.gamePanel.canStroke(false); - this.panelThread = null; + this.stopTimer(); return false; } else { return true; diff --git a/client/src/main/java/agolf/game/GamePlayerInfoPanelThread.java b/client/src/main/java/agolf/game/GamePlayerInfoPanelTimerThread.java similarity index 61% rename from client/src/main/java/agolf/game/GamePlayerInfoPanelThread.java rename to client/src/main/java/agolf/game/GamePlayerInfoPanelTimerThread.java index aeca62d3..7fc923c9 100644 --- a/client/src/main/java/agolf/game/GamePlayerInfoPanelThread.java +++ b/client/src/main/java/agolf/game/GamePlayerInfoPanelTimerThread.java @@ -2,18 +2,18 @@ import com.aapeli.tools.Tools; -class GamePlayerInfoPanelThread implements Runnable { +class GamePlayerInfoPanelTimerThread implements Runnable { private final GamePlayerInfoPanel gamePlayerInfoPanel; private boolean running; - protected GamePlayerInfoPanelThread(GamePlayerInfoPanel var1) { - this.gamePlayerInfoPanel = var1; + protected GamePlayerInfoPanelTimerThread(GamePlayerInfoPanel gamePlayerInfoPanel) { + this.gamePlayerInfoPanel = gamePlayerInfoPanel; this.running = true; - Thread var2 = new Thread(this); - var2.setDaemon(true); - var2.start(); + Thread thread = new Thread(this); + thread.setDaemon(true); + thread.start(); } public void run() { diff --git a/doc/uml/org.moparforia.client.svg b/doc/uml/org.moparforia.client.svg index 60a7fe89..6f7c90a0 100644 --- a/doc/uml/org.moparforia.client.svg +++ b/doc/uml/org.moparforia.client.svg @@ -1,119 +1,119 @@ -agolfagolf.gameagolf.lobbyorg.moparforia.clientorg.moparforia.client.trackdumpAGolfgetAppletInfo () : StringConnaString2372 : StringaString2373 : StringcipherCmds : [Ljava.lang.String;connection : com.aapeli.connection.ConnectionconnectionLost ( paramint1 : int ) : voiddataReceived ( paramString1 : String ) : voiddisconnect () : voidhandlePacket ( paramString1 : String ) : voidmethod1158 () : booleannotifyConnectionDown () : voidnotifyConnectionUp () : voidsendVersion () : voidwriteData ( paramString1 : String ) : voidGameAppletaBoolean3773 : booleananImage3774 : java.awt.ImageanInt3769 : intcolourButtonBlue : java.awt.ColorcolourButtonGreen : java.awt.ColorcolourButtonRed : java.awt.ColorcolourButtonYellow : java.awt.ColorcolourGameBackground : java.awt.ColorcolourTextBlack : java.awt.ColorcolourTextDarkGreen : java.awt.ColorcolourTextRed : java.awt.ColordisableGuestChat : booleanfontDialog11 : java.awt.FontfontDialog12 : java.awt.FontfontDialog14b : java.awt.FontfontSerif20 : java.awt.FontfontSerif26b : java.awt.Fontverbose : booleanappletReady () : voidconnectToServer () : voidcontainsDomain ( paramString1 : String , paramString2 : String , paramString;3 : [Ljava.lang.String; ) : booleancreateImages () : voiddefineImages ( paramImageManager1 : com.aapeli.client.ImageManager , paramString2 : String ) : voiddefineSounds ( paramSoundManager1 : com.aapeli.client.SoundManager ) : voiddestroyApplet () : voidgameFinished ( paramboolean1 : boolean ) : voidgetPlayerAccessLevel () : inthasSession () : booleaninitApplet ( paramParameters1 : com.aapeli.client.Parameters ) : voidisDebug () : booleanisEmailVerified () : booleanisGuestChatDisabled () : booleanisValidSite () : booleanmethod32 () : intquit ( paramString1 : String ) : voidremovePlayerList () : voidremovePlayerListWinnders () : voidsetGameSettings ( paramboolean1 : boolean , paramint2 : int , paramboolean3 : boolean , paramboolean4 : boolean ) : voidsetGameState ( paramint1 : int ) : voidsetGameState ( paramint1 : int , paramint2 : int ) : voidsetGameState ( paramint1 : int , paramint2 : int , paramint3 : int ) : voidshowPlayerCard ( paramString1 : String ) : booleanshowPlayerList ( paramString;1 : [Ljava.lang.String; ) : voidshowPlayerListWinners ( param[Z1 : [Z ) : voidtextsLoadedNotify ( paramTextManager1 : com.aapeli.client.TextManager ) : voidtrackTestLogin ( paramString1 : String , paramString2 : String ) : voidGameContaineradverts : [Ljava.lang.String;anInt992 : intautoPopup : com.aapeli.client.AutoPopupsbadWordFilter : com.aapeli.client.BadWordFilterdefaultLobby : StringdisableSinglePlayer : booleangraphicsQualityIndex : intimageManager : com.aapeli.client.ImageManagerparams : com.aapeli.client.ParameterssafeMode : booleansoundManager : com.aapeli.client.SoundManagertextManager : com.aapeli.client.TextManagerdestroy () : voidinit () : voidLobbySelectPanelaLongArray528 : [JaStringArray544 : [Ljava.lang.String;anInt527 : intanIntArray526 : [IbuttonDual : com.aapeli.colorgui.ColorButtonbuttonMulti : com.aapeli.colorgui.ColorButtonbuttonMultiQuick : com.aapeli.colorgui.ColorButtonbuttonQuit : com.aapeli.colorgui.ColorButtonbuttonSingle : com.aapeli.colorgui.ColorButtonbuttonSingleQuick : com.aapeli.colorgui.ColorButtoncheckboxPlayHidden : com.aapeli.colorgui.ColorCheckboxchoicerGraphics : com.aapeli.colorgui.Choicerheight : intlobbyMaxPlayers : intlobbyNumPlayers : [IplayHidden : booleanwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voiddestroyRNOP () : voiddrawNumPlayers ( paramGraphics1 : java.awt.Graphics , paramint2 : int , paramint3 : int ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : voiditemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmethod442 ( paramint1 : int ) : Stringmethod443 ( paramint1 : int , paramboolean2 : boolean ) : booleanmouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrequestNumberOfPlayers () : voidresetRNOP () : voidselectLobby ( paramint1 : int ) : booleanupdate ( paramGraphics1 : java.awt.Graphics ) : voidwriteData ( paramString1 : String ) : voidLobbySelectRNOPspammerrunning : booleanrun () : voidstop () : voidSeedrnd : longclone () : Objectclone () : agolf.Seednext () : intSpriteManageranIntArrayArray968 : [[Iballs : [Ljava.awt.Image;elements : [Ljava.awt.Image;imageManager : com.aapeli.client.ImageManagerpixelshapeMasks : [[[Ishapes : [Ljava.awt.Image;specialPixelMasks : [[[Ispecials : [Ljava.awt.Image;combineElementAndElement ( paramint1 : int , paramint2 : int , paramint3 : int ) : [IcombineElementAndSpecial ( paramint1 : int , paramint2 : int ) : [IcombineShapeAndTwoElements ( param[[I1 : [[I , param[I2 : [I , param[I3 : [I ) : [IcreateShapeMask ( param[I1 : [I ) : [[IgetPixelMask ( paramint1 : int , paramint2 : int ) : [[IgetPixelsFromTileCode ( paramint1 : int ) : [IgetShapePixelMask ( paramint1 : int ) : [[IgetSpecialPixels ( paramint1 : int ) : [[IloadSprites () : voidmethod1138 () : [[IparseSpriteSheet ( paramString1 : String , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : [Ljava.awt.Image;SynchronizedBoolaBoolean995 : booleananInt994 : intclone () : Objectclone () : agolf.SynchronizedBoolget () : boolean «synchronized»priv_set ( paramboolean1 : boolean ) : voidset ( paramboolean1 : boolean ) : boolean «synchronized»SynchronizedIntegeraLong996 : longanInt997 : intget () : int «synchronized»get_upd () : int «synchronized»get_upd ( paramint1 : int ) : int «synchronized»priv_set ( paramint1 : int ) : voidset ( paramint1 : int ) : int «synchronized»TrackCollectiontracks : java.util.HashtableaddTrack ( paramString1 : String , paramString2 : String , paramString3 : String ) : voidgetTrack ( paramString1 : String , paramString2 : String ) : StringTrackTestLoginPanelbuttonOk : java.awt.Buttonheight : intlabelError : java.awt.LabellabelName : java.awt.LabellabelName2 : java.awt.LabellabelPassword : java.awt.LabellabelPassword2 : java.awt.Labelpattern : java.util.regex.PatterntextFieldName : java.awt.TextFieldtextFieldPassword : java.awt.TextFieldwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidkeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidConfirmButtonactionListener : java.awt.event.ActionListenercolourBackground : java.awt.ColorcolourBackgroundBrighter : java.awt.ColorcolourBackgroundBrightest : java.awt.ColorcolourBackgroundDarker : java.awt.ColorcolourBlack : java.awt.ColorcolourForeground : java.awt.ColorcolourWhite : java.awt.Colorfont : java.awt.FontfontDialog12 : java.awt.FontfontMetrics : java.awt.FontMetricsfontSize : intmouseDown : booleanmouseHover : booleanstate : inttext : StringtextConfirm : StringaddNotify () : voidfireAction () : voidmouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseDragged ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseMoved ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidsaturate ( paramColor1 : java.awt.Color , paramint2 : int ) : java.awt.ColorsetBackground ( paramColor1 : java.awt.Color ) : voidsetForeground ( paramColor1 : java.awt.Color ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameBackgroundCanvasaBooleanArray98 : [ZaColor75 : java.awt.ColoraGraphics85 : java.awt.GraphicsaStringArray100 : [Ljava.lang.String;aStringArray80 : [Ljava.lang.String;anInt99 : intanIntArray78 : [IanIntArray79 : [IanIntArrayArray97 : [[IbackgroundImg : java.awt.ImagedefaultTrackSettings : Stringimage : java.awt.ImageisSolidArrayIThink : [[BmapChars : StringtrackAdvertSize : inttrackAuthor : StringtrackComment : StringtrackFirstBest : StringtrackLastBest : StringtrackName : StringtrackRatings : [ItrackSettings : StringtrackSpecialSettings : [ZtrackStats : [ItrackTiles : [[IaddNotify () : voidcheckSolidTile ( paramint1 : int , paramint2 : int ) : voidcheckSolids () : voiddrawForegroundMap () : voiddrawMap ( paramint1 : int ) : voidexpandMap ( paramString1 : String ) : StringgenerateTrackInformation () : [Ljava.lang.String;generateTrackStatistics () : [[IgetTileAt ( paramint1 : int , paramint2 : int ) : java.awt.Imagemethod120 () : [Zmethod123 ( paramString1 : String , paramint2 : int ) : intmethod126 ( paramint1 : int , paramint2 : int ) : booleanmethod127 ( paramint1 : int , paramint2 : int ) : booleanmethod128 ( param[I1 : [I , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : voidmethod129 ( paramint1 : int , paramint2 : int , paramdouble3 : double ) : intpaint ( paramGraphics1 : java.awt.Graphics ) : voidparseMapCommands ( paramString1 : String ) : booleanparseMapInstruction ( paramString1 : String ) : booleanupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameCanvasaBoolean2832 : booleanaBoolean2843 : booleanaBooleanArray2830 : [ZaBooleanArray2834 : [ZaColor2804 : java.awt.ColoraColor2805 : java.awt.ColoraDouble2798 : doubleaDouble2817 : doubleaDouble2818 : doubleaDouble2819 : doubleaDouble2820 : doubleaDoubleArray2821 : [DaDoubleArray2822 : [DaDoubleArray2828 : [DaDoubleArray2829 : [DaFont2803 : java.awt.FontaShortArrayArrayArray2825 : [[[SaString2835 : StringaSynchronizedBoolArray2831 : [Lagolf.SynchronizedBool;aThread2842 : ThreadaVectorArray2823 : [Ljava.util.Vector;aVectorArray2824 : [Ljava.util.Vector;allowCheating : booleananImage2840 : java.awt.ImageanImageArray2808 : [Ljava.awt.Image;anInt2799 : intanInt2809 : intanInt2810 : intanInt2811 : intanInt2816 : intanInt2833 : intanInt2838 : intanInt2839 : intanIntArray2837 : [IbackgroundColour : java.awt.ColorcolourAimLine : java.awt.ColorcurrentPlayerID : intcursorCrosshair : java.awt.CursorcursorDefault : java.awt.CursorgameState : intgraphics : java.awt.GraphicshackedX : doublehackedY : doubleisCheating : booleankeyCountMod4 : intmouseX : intmouseY : intplayerX : [DplayerY : [DdecodeCoords ( paramint1 : int , paramboolean2 : boolean , paramString3 : String ) : voiddoHackedStroke ( paramint1 : int , paramboolean2 : boolean , paramint3 : int , paramint4 : int , paramint5 : int ) : voiddoStroke ( paramint1 : int , paramboolean2 : boolean , paramint3 : int , paramint4 : int , paramint5 : int ) : voiddrawMap ( paramint1 : int ) : voiddrawTile ( paramint1 : int , paramint2 : int , paramGraphics3 : java.awt.Graphics , paramGraphics4 : java.awt.Graphics ) : voidendGame () : voidgetSynchronizedBool ( paramint1 : int ) : booleankeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : void «synchronized»keyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidmethod132 ( paramint1 : int , paramint2 : int , paramint3 : int ) : voidmethod134 () : booleanmethod135 ( paramint1 : int , paramboolean2 : boolean , paramboolean3 : boolean ) : voidmethod137 () : booleanmethod139 ( paramint1 : int ) : voidmethod142 () : Stringmethod145 ( paramint1 : int , paramboolean2 : boolean ) : voidmethod146 ( paramint1 : int , paramint2 : int , paramint3 : int ) : [Dmethod147 ( paramint1 : int , paramint2 : int ) : booleanmethod148 ( paramint1 : int , paramint2 : int ) : booleanmethod149 ( paramint1 : int , paramint2 : int , paramint3 : int ) : booleanmethod150 ( paramint1 : int , paramdouble2 : double ) : doublemethod151 ( paramint1 : int ) : doublemethod152 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramint7 : int , paramint8 : int , paramint9 : int , paramint10 : int , paramint11 : int , paramGraphics12 : java.awt.Graphics , paramGraphics13 : java.awt.Graphics ) : voidmethod153 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramGraphics5 : java.awt.Graphics , paramGraphics6 : java.awt.Graphics , paramint7 : int , paramint8 : int ) : doublemethod154 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : voidmethod155 ( paramboolean1 : boolean , paramint2 : int , paramint3 : int , paramint4 : int , paramGraphics5 : java.awt.Graphics , paramGraphics6 : java.awt.Graphics ) : voidmethod156 ( paramint1 : int , paramint2 : int , paramGraphics3 : java.awt.Graphics , paramGraphics4 : java.awt.Graphics , paramint5 : int , paramint6 : int , paramboolean7 : boolean ) : booleanmethod157 ( paramint1 : int , paramint2 : int ) : intmethod158 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramGraphics7 : java.awt.Graphics , paramGraphics8 : java.awt.Graphics , paramboolean9 : boolean , paramint10 : int ) : [Imethod159 ( paramint1 : int , paramint2 : int , paramGraphics3 : java.awt.Graphics , paramGraphics4 : java.awt.Graphics ) : voidmethod161 ( paramGraphics1 : java.awt.Graphics , paramint2 : int , paramdouble3 : double ) : voidmethod162 ( paramboolean1 : boolean ) : voidmethod163 ( paramGraphics1 : java.awt.Graphics , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : voidmethod164 ( paramint1 : int ) : voidmouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseDragged ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseMoved ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : void «synchronized»mouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidparseMap ( paramString1 : String , paramString2 : String , paramint3 : int ) : booleanrestartGame () : voidrun () : voidstop () : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameChatPanelanIntArray330 : [IbuttonSay : com.aapeli.colorgui.ColorButtoncreated : booleangameExtra : intheight : inttextAreaChat : com.aapeli.multiuser.ChatTextAreatextFieldMessage : com.aapeli.client.InputTextFieldwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddBroadcastMessage ( paramString1 : String ) : voidaddMessage ( paramString1 : String ) : voidaddNotify () : voidaddSay ( paramint1 : int , paramString2 : String , paramString3 : String , paramboolean4 : boolean ) : voidcreate () : voidhaveFocus () : booleankeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidmethod323 () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidprintSpecialSettingstoTextArea ( paramString1 : String , paramString2 : String , param[Z3 : [Z ) : voidremoveUserColour ( paramString1 : String ) : voidsendMessage () : voidsetUserColour ( paramString1 : String , paramint2 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameControlPanelaStringArray351 : [Ljava.lang.String;anInt342 : intanInt343 : intbuttonBack : com.aapeli.colorgui.ColorButtonbuttonNewGame : com.aapeli.colorgui.ColorButtonbuttonSkip : com.aapeli.colorgui.ColorButtoncheckboxMaxFps : java.awt.CheckboxchoicerNames : com.aapeli.colorgui.ChoicerplayerCount : intskipButtonVisible : booleanactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voiddisplaySkipButton () : voidhideSkipButton () : voiditemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmaxFps () : booleanmethod327 ( paramint1 : int ) : voidmethod329 () : voidmethod330 () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidshowSkipButton () : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGamePanelaBoolean363 : booleanaLong364 : longanObject365 : Objectheight : intisSinglePlayerGame : booleanisWaitingForTurn : booleanplayerCount : intstate : intwidth : intaddMultiPlayerPanels ( paramint1 : int ) : voidaddNotify () : voidbroadcastMessage ( paramString1 : String ) : voidcanStroke ( paramboolean1 : boolean ) : booleancreate ( paramImage1 : java.awt.Image ) : voidencodeCoords ( paramint1 : int , paramint2 : int , paramint3 : int ) : StringgetPlayerInfo ( paramint1 : int ) : [Ljava.lang.String;hideSkipButton () : voidisValidPlayerID ( paramint1 : int ) : booleanmaxFps () : booleanmethod333 ( paramString;1 : [Ljava.lang.String; ) : voidmethod336 () : voidmethod339 ( paramboolean1 : boolean ) : booleanmethod342 () : voidmethod345 ( paramint1 : int ) : voidmethod348 ( paramint1 : int ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrateTrack ( paramint1 : int , paramint2 : int ) : voidrequestNewGame () : voidrespondNewGame ( paramint1 : int , paramboolean2 : boolean ) : voidsendChatMessage ( paramString1 : String ) : voidsendEndStroke ( paramint1 : int , paramSynchronizedBool;2 : [Lagolf.SynchronizedBool; , paramint3 : int ) : voidsetBeginStroke ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGamePlayerInfoPanelaBoolean380 : booleanaBooleanArray396 : [ZaChoicer399 : com.aapeli.colorgui.ChoiceraColor371 : java.awt.ColoraColor372 : java.awt.ColoraColor373 : java.awt.ColoraColor374 : java.awt.ColoraColorArrayArray375 : [[Ljava.awt.Color;anInt376 : intanInt382 : intanInt383 : intanInt385 : intanInt386 : intanIntArray394 : [IanIntArray397 : [IanIntArrayArray398 : [[IcurrentPlayerId : intcurrentTimeForShot : intfontDialog10 : java.awt.FontfontDialog12 : java.awt.FontfontDialog12b : java.awt.FontgameOutcome : [Igraphics : java.awt.Graphicsheight : intimage : java.awt.ImageplayerClans : [Ljava.lang.String;playerCount : intplayerID : intplayerNames : [Ljava.lang.String;playerVotedToSkip : [ZplayersId : [Lagolf.SynchronizedInteger;strokeTimeout : inttrackStrokes : [[Lagolf.SynchronizedInteger;width : intaddNotify () : voidaddPlayer ( paramint1 : int , paramString2 : String , paramString3 : String , paramboolean4 : boolean ) : voidcanShoot ( paramint1 : int ) : booleangetPlayerInfo ( paramint1 : int ) : [Ljava.lang.String;itemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmethod355 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : voidmethod356 ( param[I1 : [I ) : voidmethod358 ( paramint1 : int , paramint2 : int ) : booleanmethod359 () : voidmethod360 () : intmethod361 ( paramint1 : int ) : booleanmethod363 ( paramint1 : int , paramboolean2 : boolean ) : voidmethod366 () : voidmethod371 ( paramint1 : int ) : voidmethod372 () : voidmethod374 () : [Ljava.lang.String;method375 ( param[[I1 : [[I ) : voidmethod376 () : booleanmethod377 () : intmethod379 () : [ImouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidreadyForNewGame ( paramint1 : int ) : voidreadyForNewGameLocal () : voidrun () : booleansetScores ( paramint1 : int , param[I2 : [I ) : voidstop () : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidvoteSkip ( paramint1 : int ) : voidvoteSkipReset () : voidGamePlayerInfoPanelThreadrunning : booleanrun () : voidstopRunning () : voidGameTrackInfoPanelaBoolean436 : booleanaBoolean437 : booleanbuttonAccept : com.aapeli.colorgui.ColorButtonbuttonNoVote : com.aapeli.colorgui.ColorButtonbuttonR : com.aapeli.colorgui.ColorButtonbuttonReject : com.aapeli.colorgui.ColorButtonbuttonsVote : [Lcom.aapeli.colorgui.ColorButton;created : booleancurrentTrack : intfirstBestPlayerDate : StringfirstBestPlayerName : StringfontDialog11 : java.awt.FontfontDialog12 : java.awt.FontfontDialog14 : java.awt.FontfontSerif16 : java.awt.Fontgraphics : java.awt.GraphicshasNotRatedTrack : booleanheight : intimage : java.awt.ImagelastBestPlayerDate : StringlastBestPlayerName : StringnumTracks : intresultAverage : doubleresultBestNumStrokes : intresultBestPercent : doubleshowLongAvgResult : booleantrackAuthor : StringtrackAverageRating : doubletrackName : StringtrackPending : booleantrackRating : inttrackTotalRatings : intvoteColours : [Ljava.awt.Color;width : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidmethod384 () : voidmethod385 () : intmethod388 ( paramboolean1 : boolean ) : voidmethod390 ( paramboolean1 : boolean ) : voidmethod391 ( paramboolean1 : boolean ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidparseBestPlayerInformation ( paramString1 : String ) : [Ljava.lang.String;parseTrackInfoStats ( paramString1 : String , paramString2 : String , param[I3 : [I , param[I4 : [I , paramString5 : String , paramString6 : String , paramboolean7 : boolean , paramboolean8 : boolean , paramboolean9 : boolean ) : voidresetCurrentTrack () : voidtoggleAcceptRejectButtons ( paramboolean1 : boolean ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidHackedShotaBoolean2832 : booleanaBoolean2843 : booleanaBooleanArray2830 : [ZaBooleanArray2834 : [ZaDouble2798 : doubleaDouble2817 : doubleaDouble2818 : doubleaDouble2819 : doubleaDouble2820 : doubleaDoubleArray2821 : [DaDoubleArray2822 : [DaDoubleArray2828 : [DaDoubleArray2829 : [DaShortArrayArrayArray2825 : [[[SaSynchronizedBoolArray2831 : [Lagolf.SynchronizedBool;aVectorArray2823 : [Ljava.util.Vector;aVectorArray2824 : [Ljava.util.Vector;anInt2799 : intanInt2809 : intanInt2810 : intanInt2811 : intanInt2816 : intanInt2838 : intanInt2839 : intanIntArray2837 : [IcurrentPlayerID : intisSolidArrayIThink : [[BmapTiles : [[IplayerX : [DplayerY : [DgetHackedCoordintes () : [Dmethod145 ( paramint1 : int , paramboolean2 : boolean ) : voidmethod147 ( paramint1 : int , paramint2 : int ) : booleanmethod148 ( paramint1 : int , paramint2 : int ) : booleanmethod149 ( paramint1 : int , paramint2 : int , paramint3 : int ) : booleanmethod150 ( paramint1 : int , paramdouble2 : double ) : doublemethod151 ( paramint1 : int ) : doublemethod152 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramint7 : int , paramint8 : int , paramint9 : int , paramint10 : int , paramint11 : int ) : voidmethod153 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int ) : doublemethod154 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : voidmethod155 ( paramboolean1 : boolean , paramint2 : int , paramint3 : int , paramint4 : int ) : voidmethod156 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramboolean5 : boolean ) : booleanmethod157 ( paramint1 : int , paramint2 : int ) : intmethod158 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramboolean7 : boolean , paramint8 : int ) : [Imethod159 ( paramint1 : int , paramint2 : int ) : voidmethod164 ( paramint1 : int ) : voidrun () : voidLobbyChatPanelaBoolean3712 : booleanaBoolean3713 : booleanaBoolean3714 : booleanlobbyId : intgetUser ( paramString1 : String , paramboolean2 : boolean ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanlocalUserAdminCommand ( paramString1 : String , paramString2 : String ) : voidlocalUserAdminCommand ( paramString1 : String , paramString2 : String , paramString3 : String ) : voidlocalUserSay ( paramString1 : String ) : voidlocalUserSay ( paramint1 : int , paramString2 : String ) : voidlocalUserSayPrivately ( paramString1 : String , paramString2 : String ) : voidLobbyControlPanelbuttonBack : com.aapeli.colorgui.ColorButtonbuttonMulti : com.aapeli.colorgui.ColorButtonbuttonQuit : com.aapeli.colorgui.ColorButtonbuttonSingle : com.aapeli.colorgui.ColorButtonheight : intwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidsetState ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyDualPlayerPanelbuttonAccept : com.aapeli.colorgui.ColorButtonbuttonCancel : com.aapeli.colorgui.ColorButtonbuttonChallenge : com.aapeli.colorgui.ColorButtonbuttonRefuse : com.aapeli.colorgui.ColorButtonchallengeFloodProtection : com.aapeli.multiuser.ChallengeFloodProtectioncheckboxBeep : com.aapeli.colorgui.ColorCheckboxcheckboxNoChallenges : com.aapeli.multiuser.NoChallCheckboxchoicerCollision : com.aapeli.colorgui.ChoicerchoicerMaxStrokes : com.aapeli.colorgui.ChoicerchoicerScoring : com.aapeli.colorgui.ChoicerchoicerScoringEnd : com.aapeli.colorgui.ChoicerchoicerTimeLimit : com.aapeli.colorgui.ChoicerchoicerTrackTypes : com.aapeli.colorgui.ChoicerchoicerTracksNum : com.aapeli.colorgui.ChoicerchoicerWaterEvent : com.aapeli.colorgui.Choicercollision : intcurrentState : intextraText : Stringgraphics : java.awt.Graphicsheight : intimage : java.awt.ImagemaxStrokes : intopponentName : Stringscoring : intscoringEnd : intsynchronizedObject : ObjecttimeLimit : inttrackType : inttracksNum : intwaterEvent : intwidth : intaccept () : voidactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidallowChallenges () : voidcreate () : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidrefuse () : voidupdate ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyGamePasswordPanelbuttonCancel : com.aapeli.colorgui.ColorButtonbuttonOk : com.aapeli.colorgui.ColorButtonemptyField : booleangameId : inttextField : java.awt.TextFieldactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidjoinGame () : voidkeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : void «synchronized»LobbyMultiPlayerPanelbuttonCreate : com.aapeli.colorgui.ColorButtonbuttonJoin : com.aapeli.colorgui.ColorButtonchoicerCollision : com.aapeli.colorgui.ChoicerchoicerMaxStrokes : com.aapeli.colorgui.ChoicerchoicerNumPlayers : com.aapeli.colorgui.ChoicerchoicerNumTracks : com.aapeli.colorgui.ChoicerchoicerPermission : com.aapeli.colorgui.ChoicerchoicerScoring : com.aapeli.colorgui.ChoicerchoicerScoringEnd : com.aapeli.colorgui.ChoicerchoicerTimeLimit : com.aapeli.colorgui.ChoicerchoicerTrackTypes : com.aapeli.colorgui.ChoicerchoicerWaterEvent : com.aapeli.colorgui.Choicergraphics : java.awt.Graphicsheight : intimage : java.awt.ImagejoinError : inttextFieldGameName : com.aapeli.client.FilterTextFieldtextFieldGamePassword : com.aapeli.client.InputTextFieldtrackList : com.aapeli.colorgui.MultiColorListwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidaskPassword ( paramint1 : int ) : voidattemptJoinGame ( param[I1 : [I ) : voidcreate () : voidgameListAdd ( paramString;1 : [Ljava.lang.String; , paramint2 : int , paramint3 : int ) : voidgameListChange ( paramString;1 : [Ljava.lang.String; ) : voidgameListFull ( paramString;1 : [Ljava.lang.String; ) : voidgameListRemove ( paramString;1 : [Ljava.lang.String; ) : voidgetSelectedGameData () : [IgetSelectedGameId () : inthandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidjoinMultiPlayerGame ( paramint1 : int , paramString2 : String ) : voidmouseDoubleClicked ( paramMultiColorListItem1 : com.aapeli.colorgui.MultiColorListItem ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidremoveTrack ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyPanelaBoolean465 : booleanactiveLobby : intgameTimeLimits : [Iheight : intnumGameTimeLimits : intwidth : intaddChoicerCollision ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerMaxStrokes ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerNumTracks ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerScoring ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerScoringEnd ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerTimeLimit ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerTrackCategory ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerTrackTypes ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerWaterEvent ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddMessage ( paramString1 : String ) : voidaddNotify () : voidbroadcastMessage ( paramString1 : String ) : voidgetSelectedNickForChallenge () : StringgetTime ( paramint1 : int ) : StringgetUser ( paramString1 : String , paramboolean2 : boolean ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : voidisNotAcceptingChallenges ( paramString1 : String ) : booleanisUserIgnored ( paramString1 : String ) : booleanmethod395 () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidquitLobby () : voidrequestTrackSetList () : voidselectLobby ( paramint1 : int , paramint2 : int ) : voidsetJoinError ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidwriteData ( paramString1 : String ) : voidLobbySinglePlayerPanelbuttonStartChampionship : com.aapeli.colorgui.ColorButtonbuttonStartTraining : com.aapeli.colorgui.ColorButtonchoicerTrackTypes : com.aapeli.colorgui.ChoicerchoicerTracksNum : com.aapeli.colorgui.ChoicerchoicerWaterEvent : com.aapeli.colorgui.Choicergraphics : java.awt.Graphicsheight : intimage : java.awt.ImageisUsingCustomServer : booleanrequestTrackSetList : booleanselectedTrackData : StringtrackSetList : com.aapeli.colorgui.MultiColorListwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidgetSelectedTrackSetData () : StringhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmouseDoubleClicked ( paramMultiColorListItem1 : com.aapeli.colorgui.MultiColorListItem ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrequestTrackSetList () : voidstartChampionship ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyTrackListAdminPanelbuttonPlay : com.aapeli.colorgui.ColorButtonbuttonQuit : com.aapeli.colorgui.ColorButtonbuttonRefresh : com.aapeli.colorgui.ColorButtonbuttonUnselect : com.aapeli.colorgui.ColorButtoncheckboxRandom : java.awt.CheckboxcheckboxRepeat : java.awt.CheckboxcheckboxSafeMode : java.awt.CheckboxcheckboxTracks : [Ljava.awt.Checkbox;height : intrefreshTrackList : booleantrackList : com.aapeli.colorgui.MultiColorListwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate ( paramboolean1 : boolean ) : voidcreateTrackList ( paramString;1 : [[Ljava.lang.String; , paramboolean2 : boolean ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrandomize ( paramString;1 : [Ljava.lang.String; ) : [Ljava.lang.String;refreshTrackList () : voidrepeat ( paramString;1 : [Ljava.lang.String; ) : [Ljava.lang.String;update ( paramGraphics1 : java.awt.Graphics ) : voidGameHEIGHT : intWIDTH : intGame$Stubparams : java.util.Mapserver : StringappletResize ( paramint1 : int , paramint2 : int ) : voidgetAppletContext () : java.applet.AppletContextgetCodeBase () : java.net.URLgetDocumentBase () : java.net.URLgetParameter ( paramString1 : String ) : StringisActive () : booleanLauncherDEFAULT_PORT : intDEFAULT_SERVER : Stringhostname : Stringport : intverbose : booleancall () : Voidcall () : ObjectcreateFrame () : javax.swing.JFramedebug () : booleanisUsingCustomServer () : booleanlaunchGame ( paramJFrame1 : javax.swing.JFrame , paramString2 : String , paramint3 : int , paramLauncher$Language4 : org.moparforia.client.Launcher$Language , paramboolean5 : boolean ) : org.moparforia.client.GameloadIcon () : java.awt.Imagelogin ( paramJFrame1 : javax.swing.JFrame ) : [Ljava.lang.String;main ( paramString;1 : [Ljava.lang.String; ) : voidshowSettingDialog ( paramJFrame1 : javax.swing.JFrame , paramString2 : String , paramint3 : int ) : booleanLauncher$Languageen_USfi_FIsv_SEMD5ChecksumcreateChecksum ( paramString1 : String ) : [BgetMD5Checksum ( paramString1 : String ) : StringgetMD5Checksum ( param[B1 : [B ) : Stringmain ( paramString;1 : [Ljava.lang.String; ) : voidTrackDumperaStringArray2369 : [Ljava.lang.String;map_dir : Stringtrack_basic : inttrack_hio : inttrack_long : inttrack_modern : inttrack_short : inttrack_traditional : inttrack_type : inttries : intconnectionLost ( paramint1 : int ) : voiddataReceived ( paramString1 : String ) : voidmain ( paramString;1 : [Ljava.lang.String; ) : voidnotifyConnectionDown () : voidnotifyConnectionUp () : voidrecordzlistTracks ( paramString1 : String ) : [Ljava.io.File;main ( paramString;1 : [Ljava.lang.String; ) : voidClass100aLong1632 : longmethod1799 ( paramint1 : int , paramint2 : int ) : intmethod1800 () : intmethod1801 () : intClass98aLong1607 : longaVector1604 : java.util.VectoranInt1605 : intmethod1772 ( paramString1 : String ) : voidmethod1773 () : Stringmethod1774 () : voidConnCryptoanInt1601 : intanIntArrayArray1602 : [[IanIntArrayArray1603 : [[Ikey : intdecrypt ( paramString1 : String ) : Stringencrypt ( paramString1 : String ) : Stringmethod1763 () : intmethod1768 ( paramint1 : int ) : intmethod1769 ( paramint1 : int ) : intmethod1770 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : intmethod1771 ( paramint1 : int , paramint2 : int , paramint3 : int ) : intresetKey () : voidConnListenerconnectionLost ( paramint1 : int ) : voiddataReceived ( paramString1 : String ) : voidnotifyConnectionDown () : voidnotifyConnectionUp () : voidConnectionDCR_BYUSER : intDCR_HANDLEFAILED : intDCR_NORETRY : intDCR_RETRYFAIL : intDCR_UNDEFINED : intDCR_VERSION : intaBoolean1615 : booleanaBoolean1616 : booleanaLong1620 : longaSocket1617 : java.net.SocketaString1608 : StringaThread1628 : ThreadaVector1624 : java.util.VectoranInt1613 : intanInt1621 : intanInt1629 : intdisconnectReason : intin : java.io.BufferedReaderlastCmdReceived : longnumReceivedGamePackets : longout : java.io.BufferedWriterconnect () : booleandisconnect () : voidgetLocalIP () : Stringmethod1775 () : voidmethod1776 () : booleanmethod1777 () : voidmethod1778 () : voidmethod1779 () : voidmethod1780 () : voidmethod1781 () : voidmethod1782 () : booleanmethod1783 () : voidmethod1788 () : voidmethod1790 () : voidmethod1791 () : voidmethod1792 () : voidreadLine () : Stringrun () : voidwriteData ( paramString1 : String ) : voidwriteLine ( paramString1 : String ) : booleanwriteLineC ( paramString1 : String ) : booleanwriteLineD ( paramString1 : String ) : booleanwriteLineS ( paramString1 : String ) : booleanwriteThriftLog ( paramint1 : int , paramString2 : String , paramString3 : String ) : voidGameCryptoaStringArray1631 : [Ljava.lang.String;decrypt ( paramString1 : String ) : Stringencrypt ( paramString1 : String ) : Stringmethod1793 () : intmethod1796 ( paramString;1 : [Ljava.lang.String; ) : [Ljava.lang.String;method1797 ( paramString1 : String ) : charmethod1798 ( paramString1 : String , paramint2 : int , paramchar3 : char ) : booleanGamePacketQueuepackets : java.util.Vectorrunning : booleanthread : ThreadaddGamePacket ( paramString1 : String ) : void «synchronized»nextGamePacket () : String «synchronized»run () : voidstop () : voidgameContainerconnectiongameContainergameAppletsyncIsValidSitesyncUnknownBoolsyncPlayerAccessLevellobbySelectionPanelgameContainerspriteManagersynchronizedTrackTestModetrackCollectiongamePanelgameContainerlobbyPanelgameContainerlobbySelectRNOPlobbySelectPanelgameAppletgameContaineraSeed_2836gameContainergameContaineraGamePlayerInfoPanel__341gameCanvasgameChatPanelgameControlPanelgamePlayerInfoPanelgameTrackInfoPanelgameContainerpanelThreadgamePlayerInfoPanelgameContainerbuttonBackaSeed_2836gameContainergameContainergameContainergameContainerlobbyMultiPlayerPanellobbyGamePasswordPanelgameContainerlobbyChatPanelDuallobbyChatPanelMultilobbyChatPanelSinglelobbyControlPanellobbyDualPlayerPanellobbyMultiPlayerPanellobbySinglePlayerPanellobbyTrackListAdminPanelgameContainergameContainerthis$0langconnaConnCrypto_1606aClass98_1622connCryptoaConnListener1611aGameCrypto_1612aGamePacketQueue_1623connconnListeneragolfagolf.gameagolf.lobbyorg.moparforia.clientorg.moparforia.client.trackdumpAGolfgetAppletInfo () : StringConnaString2372 : StringaString2373 : StringcipherCmds : [Ljava.lang.String;connection : com.aapeli.connection.ConnectionconnectionLost ( paramint1 : int ) : voiddataReceived ( paramString1 : String ) : voiddisconnect () : voidhandlePacket ( paramString1 : String ) : voidmethod1158 () : booleannotifyConnectionDown () : voidnotifyConnectionUp () : voidsendVersion () : voidwriteData ( paramString1 : String ) : voidGameAppletaBoolean3773 : booleananImage3774 : java.awt.ImageanInt3769 : intcolourButtonBlue : java.awt.ColorcolourButtonGreen : java.awt.ColorcolourButtonRed : java.awt.ColorcolourButtonYellow : java.awt.ColorcolourGameBackground : java.awt.ColorcolourTextBlack : java.awt.ColorcolourTextDarkGreen : java.awt.ColorcolourTextRed : java.awt.ColordisableGuestChat : booleanfontDialog11 : java.awt.FontfontDialog12 : java.awt.FontfontDialog14b : java.awt.FontfontSerif20 : java.awt.FontfontSerif26b : java.awt.Fontverbose : booleanappletReady () : voidconnectToServer () : voidcontainsDomain ( paramString1 : String , paramString2 : String , paramString;3 : [Ljava.lang.String; ) : booleancreateImages () : voiddefineImages ( paramImageManager1 : com.aapeli.client.ImageManager , paramString2 : String ) : voiddefineSounds ( paramSoundManager1 : com.aapeli.client.SoundManager ) : voiddestroyApplet () : voidgameFinished ( paramboolean1 : boolean ) : voidgetPlayerAccessLevel () : inthasSession () : booleaninitApplet ( paramParameters1 : com.aapeli.client.Parameters ) : voidisDebug () : booleanisEmailVerified () : booleanisGuestChatDisabled () : booleanisValidSite () : booleanmethod32 () : intquit ( paramString1 : String ) : voidremovePlayerList () : voidremovePlayerListWinnders () : voidsetGameSettings ( paramboolean1 : boolean , paramint2 : int , paramboolean3 : boolean , paramboolean4 : boolean ) : voidsetGameState ( paramint1 : int ) : voidsetGameState ( paramint1 : int , paramint2 : int ) : voidsetGameState ( paramint1 : int , paramint2 : int , paramint3 : int ) : voidshowPlayerCard ( paramString1 : String ) : booleanshowPlayerList ( paramString;1 : [Ljava.lang.String; ) : voidshowPlayerListWinners ( param[Z1 : [Z ) : voidtextsLoadedNotify ( paramTextManager1 : com.aapeli.client.TextManager ) : voidtrackTestLogin ( paramString1 : String , paramString2 : String ) : voidGameContaineradverts : [Ljava.lang.String;anInt992 : intautoPopup : com.aapeli.client.AutoPopupsbadWordFilter : com.aapeli.client.BadWordFilterdefaultLobby : StringdisableSinglePlayer : booleangraphicsQualityIndex : intimageManager : com.aapeli.client.ImageManagerparams : com.aapeli.client.ParameterssafeMode : booleansoundManager : com.aapeli.client.SoundManagertextManager : com.aapeli.client.TextManagerdestroy () : voidinit () : voidLobbySelectPanelaLongArray528 : [JaStringArray544 : [Ljava.lang.String;anInt527 : intanIntArray526 : [IbuttonDual : com.aapeli.colorgui.ColorButtonbuttonMulti : com.aapeli.colorgui.ColorButtonbuttonMultiQuick : com.aapeli.colorgui.ColorButtonbuttonQuit : com.aapeli.colorgui.ColorButtonbuttonSingle : com.aapeli.colorgui.ColorButtonbuttonSingleQuick : com.aapeli.colorgui.ColorButtoncheckboxPlayHidden : com.aapeli.colorgui.ColorCheckboxchoicerGraphics : com.aapeli.colorgui.Choicerheight : intlobbyMaxPlayers : intlobbyNumPlayers : [IplayHidden : booleanwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voiddestroyRNOP () : voiddrawNumPlayers ( paramGraphics1 : java.awt.Graphics , paramint2 : int , paramint3 : int ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : voiditemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmethod442 ( paramint1 : int ) : Stringmethod443 ( paramint1 : int , paramboolean2 : boolean ) : booleanmouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrequestNumberOfPlayers () : voidresetRNOP () : voidselectLobby ( paramint1 : int ) : booleanupdate ( paramGraphics1 : java.awt.Graphics ) : voidwriteData ( paramString1 : String ) : voidLobbySelectRNOPspammerrunning : booleanrun () : voidstop () : voidSeedrnd : longclone () : Objectclone () : agolf.Seednext () : intSpriteManageranIntArrayArray968 : [[Iballs : [Ljava.awt.Image;elements : [Ljava.awt.Image;imageManager : com.aapeli.client.ImageManagerpixelshapeMasks : [[[Ishapes : [Ljava.awt.Image;specialPixelMasks : [[[Ispecials : [Ljava.awt.Image;combineElementAndElement ( paramint1 : int , paramint2 : int , paramint3 : int ) : [IcombineElementAndSpecial ( paramint1 : int , paramint2 : int ) : [IcombineShapeAndTwoElements ( param[[I1 : [[I , param[I2 : [I , param[I3 : [I ) : [IcreateShapeMask ( param[I1 : [I ) : [[IgetPixelMask ( paramint1 : int , paramint2 : int ) : [[IgetPixelsFromTileCode ( paramint1 : int ) : [IgetShapePixelMask ( paramint1 : int ) : [[IgetSpecialPixels ( paramint1 : int ) : [[IloadSprites () : voidmethod1138 () : [[IparseSpriteSheet ( paramString1 : String , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : [Ljava.awt.Image;SynchronizedBoolaBoolean995 : booleananInt994 : intclone () : Objectclone () : agolf.SynchronizedBoolget () : boolean «synchronized»priv_set ( paramboolean1 : boolean ) : voidset ( paramboolean1 : boolean ) : boolean «synchronized»SynchronizedIntegeraLong996 : longanInt997 : intget () : int «synchronized»get_upd () : int «synchronized»get_upd ( paramint1 : int ) : int «synchronized»priv_set ( paramint1 : int ) : voidset ( paramint1 : int ) : int «synchronized»TrackCollectiontracks : java.util.HashtableaddTrack ( paramString1 : String , paramString2 : String , paramString3 : String ) : voidgetTrack ( paramString1 : String , paramString2 : String ) : StringTrackTestLoginPanelbuttonOk : java.awt.Buttonheight : intlabelError : java.awt.LabellabelName : java.awt.LabellabelName2 : java.awt.LabellabelPassword : java.awt.LabellabelPassword2 : java.awt.Labelpattern : java.util.regex.PatterntextFieldName : java.awt.TextFieldtextFieldPassword : java.awt.TextFieldwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidkeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidConfirmButtonactionListener : java.awt.event.ActionListenercolourBackground : java.awt.ColorcolourBackgroundBrighter : java.awt.ColorcolourBackgroundBrightest : java.awt.ColorcolourBackgroundDarker : java.awt.ColorcolourBlack : java.awt.ColorcolourForeground : java.awt.ColorcolourWhite : java.awt.Colorfont : java.awt.FontfontDialog12 : java.awt.FontfontMetrics : java.awt.FontMetricsfontSize : intmouseDown : booleanmouseHover : booleanstate : inttext : StringtextConfirm : StringaddNotify () : voidfireAction () : voidmouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseDragged ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseMoved ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidsaturate ( paramColor1 : java.awt.Color , paramint2 : int ) : java.awt.ColorsetBackground ( paramColor1 : java.awt.Color ) : voidsetForeground ( paramColor1 : java.awt.Color ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameBackgroundCanvasaBooleanArray98 : [ZaColor75 : java.awt.ColoraGraphics85 : java.awt.GraphicsaStringArray100 : [Ljava.lang.String;aStringArray80 : [Ljava.lang.String;anInt99 : intanIntArray78 : [IanIntArray79 : [IanIntArrayArray97 : [[IbackgroundImg : java.awt.ImagedefaultTrackSettings : Stringimage : java.awt.ImageisSolidArrayIThink : [[BmapChars : StringtrackAdvertSize : inttrackAuthor : StringtrackComment : StringtrackFirstBest : StringtrackLastBest : StringtrackName : StringtrackRatings : [ItrackSettings : StringtrackSpecialSettings : [ZtrackStats : [ItrackTiles : [[IaddNotify () : voidcheckSolidTile ( paramint1 : int , paramint2 : int ) : voidcheckSolids () : voiddrawForegroundMap () : voiddrawMap ( paramint1 : int ) : voidexpandMap ( paramString1 : String ) : StringgenerateTrackInformation () : [Ljava.lang.String;generateTrackStatistics () : [[IgetTileAt ( paramint1 : int , paramint2 : int ) : java.awt.Imagemethod120 () : [Zmethod123 ( paramString1 : String , paramint2 : int ) : intmethod126 ( paramint1 : int , paramint2 : int ) : booleanmethod127 ( paramint1 : int , paramint2 : int ) : booleanmethod128 ( param[I1 : [I , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : voidmethod129 ( paramint1 : int , paramint2 : int , paramdouble3 : double ) : intpaint ( paramGraphics1 : java.awt.Graphics ) : voidparseMapCommands ( paramString1 : String ) : booleanparseMapInstruction ( paramString1 : String ) : booleanupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameCanvasaBoolean2832 : booleanaBoolean2843 : booleanaBooleanArray2830 : [ZaBooleanArray2834 : [ZaColor2804 : java.awt.ColoraColor2805 : java.awt.ColoraDouble2798 : doubleaDouble2817 : doubleaDouble2818 : doubleaDouble2819 : doubleaDouble2820 : doubleaDoubleArray2821 : [DaDoubleArray2822 : [DaDoubleArray2828 : [DaDoubleArray2829 : [DaFont2803 : java.awt.FontaShortArrayArrayArray2825 : [[[SaString2835 : StringaSynchronizedBoolArray2831 : [Lagolf.SynchronizedBool;aThread2842 : ThreadaVectorArray2823 : [Ljava.util.Vector;aVectorArray2824 : [Ljava.util.Vector;allowCheating : booleananImage2840 : java.awt.ImageanImageArray2808 : [Ljava.awt.Image;anInt2799 : intanInt2809 : intanInt2810 : intanInt2811 : intanInt2816 : intanInt2833 : intanInt2838 : intanInt2839 : intanIntArray2837 : [IbackgroundColour : java.awt.ColorcolourAimLine : java.awt.ColorcurrentPlayerID : intcursorCrosshair : java.awt.CursorcursorDefault : java.awt.CursorgameState : intgraphics : java.awt.GraphicshackedX : doublehackedY : doubleisCheating : booleankeyCountMod4 : intmouseX : intmouseY : intplayerX : [DplayerY : [DdecodeCoords ( paramint1 : int , paramboolean2 : boolean , paramString3 : String ) : voiddoHackedStroke ( paramint1 : int , paramboolean2 : boolean , paramint3 : int , paramint4 : int , paramint5 : int ) : voiddoStroke ( paramint1 : int , paramboolean2 : boolean , paramint3 : int , paramint4 : int , paramint5 : int ) : voiddrawMap ( paramint1 : int ) : voiddrawTile ( paramint1 : int , paramint2 : int , paramGraphics3 : java.awt.Graphics , paramGraphics4 : java.awt.Graphics ) : voidendGame () : voidgetSynchronizedBool ( paramint1 : int ) : booleankeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : void «synchronized»keyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidmethod132 ( paramint1 : int , paramint2 : int , paramint3 : int ) : voidmethod134 () : booleanmethod135 ( paramint1 : int , paramboolean2 : boolean , paramboolean3 : boolean ) : voidmethod137 () : booleanmethod139 ( paramint1 : int ) : voidmethod142 () : Stringmethod145 ( paramint1 : int , paramboolean2 : boolean ) : voidmethod146 ( paramint1 : int , paramint2 : int , paramint3 : int ) : [Dmethod147 ( paramint1 : int , paramint2 : int ) : booleanmethod148 ( paramint1 : int , paramint2 : int ) : booleanmethod149 ( paramint1 : int , paramint2 : int , paramint3 : int ) : booleanmethod150 ( paramint1 : int , paramdouble2 : double ) : doublemethod151 ( paramint1 : int ) : doublemethod152 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramint7 : int , paramint8 : int , paramint9 : int , paramint10 : int , paramint11 : int , paramGraphics12 : java.awt.Graphics , paramGraphics13 : java.awt.Graphics ) : voidmethod153 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramGraphics5 : java.awt.Graphics , paramGraphics6 : java.awt.Graphics , paramint7 : int , paramint8 : int ) : doublemethod154 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : voidmethod155 ( paramboolean1 : boolean , paramint2 : int , paramint3 : int , paramint4 : int , paramGraphics5 : java.awt.Graphics , paramGraphics6 : java.awt.Graphics ) : voidmethod156 ( paramint1 : int , paramint2 : int , paramGraphics3 : java.awt.Graphics , paramGraphics4 : java.awt.Graphics , paramint5 : int , paramint6 : int , paramboolean7 : boolean ) : booleanmethod157 ( paramint1 : int , paramint2 : int ) : intmethod158 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramGraphics7 : java.awt.Graphics , paramGraphics8 : java.awt.Graphics , paramboolean9 : boolean , paramint10 : int ) : [Imethod159 ( paramint1 : int , paramint2 : int , paramGraphics3 : java.awt.Graphics , paramGraphics4 : java.awt.Graphics ) : voidmethod161 ( paramGraphics1 : java.awt.Graphics , paramint2 : int , paramdouble3 : double ) : voidmethod162 ( paramboolean1 : boolean ) : voidmethod163 ( paramGraphics1 : java.awt.Graphics , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : voidmethod164 ( paramint1 : int ) : voidmouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseDragged ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseMoved ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : void «synchronized»mouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidparseMap ( paramString1 : String , paramString2 : String , paramint3 : int ) : booleanrestartGame () : voidrun () : voidstop () : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameChatPanelanIntArray330 : [IbuttonSay : com.aapeli.colorgui.ColorButtoncreated : booleangameExtra : intheight : inttextAreaChat : com.aapeli.multiuser.ChatTextAreatextFieldMessage : com.aapeli.client.InputTextFieldwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddBroadcastMessage ( paramString1 : String ) : voidaddMessage ( paramString1 : String ) : voidaddNotify () : voidaddSay ( paramint1 : int , paramString2 : String , paramString3 : String , paramboolean4 : boolean ) : voidcreate () : voidhaveFocus () : booleankeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidmethod323 () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidprintSpecialSettingstoTextArea ( paramString1 : String , paramString2 : String , param[Z3 : [Z ) : voidremoveUserColour ( paramString1 : String ) : voidsendMessage () : voidsetUserColour ( paramString1 : String , paramint2 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGameControlPanelaStringArray351 : [Ljava.lang.String;anInt342 : intanInt343 : intbuttonBack : com.aapeli.colorgui.ColorButtonbuttonNewGame : com.aapeli.colorgui.ColorButtonbuttonSkip : com.aapeli.colorgui.ColorButtoncheckboxMaxFps : java.awt.CheckboxchoicerNames : com.aapeli.colorgui.ChoicerplayerCount : intskipButtonVisible : booleanactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voiddisplaySkipButton () : voidhideSkipButton () : voiditemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmaxFps () : booleanmethod327 ( paramint1 : int ) : voidmethod329 () : voidmethod330 () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidshowSkipButton () : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGamePanelaBoolean363 : booleanaLong364 : longanObject365 : Objectheight : intisSinglePlayerGame : booleanisWaitingForTurn : booleanplayerCount : intstate : intwidth : intaddMultiPlayerPanels ( paramint1 : int ) : voidaddNotify () : voidbroadcastMessage ( paramString1 : String ) : voidcanStroke ( paramboolean1 : boolean ) : booleancreate ( paramImage1 : java.awt.Image ) : voidencodeCoords ( paramint1 : int , paramint2 : int , paramint3 : int ) : StringgetPlayerInfo ( paramint1 : int ) : [Ljava.lang.String;hideSkipButton () : voidisValidPlayerID ( paramint1 : int ) : booleanmaxFps () : booleanmethod333 ( paramString;1 : [Ljava.lang.String; ) : voidmethod336 () : voidmethod339 ( paramboolean1 : boolean ) : booleanmethod342 () : voidmethod345 ( paramint1 : int ) : voidmethod348 ( paramint1 : int ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrateTrack ( paramint1 : int , paramint2 : int ) : voidrequestNewGame () : voidrespondNewGame ( paramint1 : int , paramboolean2 : boolean ) : voidsendChatMessage ( paramString1 : String ) : voidsendEndStroke ( paramint1 : int , paramSynchronizedBool;2 : [Lagolf.SynchronizedBool; , paramint3 : int ) : voidsetBeginStroke ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidGamePlayerInfoPanelaBoolean380 : booleanaBooleanArray396 : [ZaChoicer399 : com.aapeli.colorgui.ChoiceraColor371 : java.awt.ColoraColor372 : java.awt.ColoraColor373 : java.awt.ColoraColor374 : java.awt.ColoraColorArrayArray375 : [[Ljava.awt.Color;anInt376 : intanInt382 : intanInt383 : intanInt385 : intanInt386 : intanIntArray394 : [IanIntArray397 : [IanIntArrayArray398 : [[IcurrentPlayerId : intcurrentTimeForShot : intfontDialog10 : java.awt.FontfontDialog12 : java.awt.FontfontDialog12b : java.awt.FontgameOutcome : [Igraphics : java.awt.Graphicsheight : intimage : java.awt.ImageplayerClans : [Ljava.lang.String;playerCount : intplayerID : intplayerNames : [Ljava.lang.String;playerVotedToSkip : [ZplayersId : [Lagolf.SynchronizedInteger;strokeTimeout : inttrackStrokes : [[Lagolf.SynchronizedInteger;width : intaddNotify () : voidaddPlayer ( paramint1 : int , paramString2 : String , paramString3 : String , paramboolean4 : boolean ) : voidcanShoot ( paramint1 : int ) : booleangetPlayerInfo ( paramint1 : int ) : [Ljava.lang.String;itemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmethod355 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : voidmethod356 ( param[I1 : [I ) : voidmethod358 ( paramint1 : int , paramint2 : int ) : booleanmethod359 () : voidmethod360 () : intmethod361 ( paramint1 : int ) : booleanmethod363 ( paramint1 : int , paramboolean2 : boolean ) : voidmethod366 () : voidmethod371 ( paramint1 : int ) : voidmethod372 () : voidmethod374 () : [Ljava.lang.String;method375 ( param[[I1 : [[I ) : voidmethod376 () : booleanmethod377 () : intmethod379 () : [ImouseClicked ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseEntered ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseExited ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmousePressed ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidmouseReleased ( paramMouseEvent1 : java.awt.event.MouseEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidreadyForNewGame ( paramint1 : int ) : voidreadyForNewGameLocal () : voidrun () : booleansetScores ( paramint1 : int , param[I2 : [I ) : voidstop () : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidvoteSkip ( paramint1 : int ) : voidvoteSkipReset () : voidGamePlayerInfoPanelThreadrunning : booleanrun () : voidstopRunning () : voidGameTrackInfoPanelaBoolean436 : booleanaBoolean437 : booleanbuttonAccept : com.aapeli.colorgui.ColorButtonbuttonNoVote : com.aapeli.colorgui.ColorButtonbuttonR : com.aapeli.colorgui.ColorButtonbuttonReject : com.aapeli.colorgui.ColorButtonbuttonsVote : [Lcom.aapeli.colorgui.ColorButton;created : booleancurrentTrack : intfirstBestPlayerDate : StringfirstBestPlayerName : StringfontDialog11 : java.awt.FontfontDialog12 : java.awt.FontfontDialog14 : java.awt.FontfontSerif16 : java.awt.Fontgraphics : java.awt.GraphicshasNotRatedTrack : booleanheight : intimage : java.awt.ImagelastBestPlayerDate : StringlastBestPlayerName : StringnumTracks : intresultAverage : doubleresultBestNumStrokes : intresultBestPercent : doubleshowLongAvgResult : booleantrackAuthor : StringtrackAverageRating : doubletrackName : StringtrackPending : booleantrackRating : inttrackTotalRatings : intvoteColours : [Ljava.awt.Color;width : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidmethod384 () : voidmethod385 () : intmethod388 ( paramboolean1 : boolean ) : voidmethod390 ( paramboolean1 : boolean ) : voidmethod391 ( paramboolean1 : boolean ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidparseBestPlayerInformation ( paramString1 : String ) : [Ljava.lang.String;parseTrackInfoStats ( paramString1 : String , paramString2 : String , param[I3 : [I , param[I4 : [I , paramString5 : String , paramString6 : String , paramboolean7 : boolean , paramboolean8 : boolean , paramboolean9 : boolean ) : voidresetCurrentTrack () : voidtoggleAcceptRejectButtons ( paramboolean1 : boolean ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidHackedShotaBoolean2832 : booleanaBoolean2843 : booleanaBooleanArray2830 : [ZaBooleanArray2834 : [ZaDouble2798 : doubleaDouble2817 : doubleaDouble2818 : doubleaDouble2819 : doubleaDouble2820 : doubleaDoubleArray2821 : [DaDoubleArray2822 : [DaDoubleArray2828 : [DaDoubleArray2829 : [DaShortArrayArrayArray2825 : [[[SaSynchronizedBoolArray2831 : [Lagolf.SynchronizedBool;aVectorArray2823 : [Ljava.util.Vector;aVectorArray2824 : [Ljava.util.Vector;anInt2799 : intanInt2809 : intanInt2810 : intanInt2811 : intanInt2816 : intanInt2838 : intanInt2839 : intanIntArray2837 : [IcurrentPlayerID : intisSolidArrayIThink : [[BmapTiles : [[IplayerX : [DplayerY : [DgetHackedCoordintes () : [Dmethod145 ( paramint1 : int , paramboolean2 : boolean ) : voidmethod147 ( paramint1 : int , paramint2 : int ) : booleanmethod148 ( paramint1 : int , paramint2 : int ) : booleanmethod149 ( paramint1 : int , paramint2 : int , paramint3 : int ) : booleanmethod150 ( paramint1 : int , paramdouble2 : double ) : doublemethod151 ( paramint1 : int ) : doublemethod152 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramint7 : int , paramint8 : int , paramint9 : int , paramint10 : int , paramint11 : int ) : voidmethod153 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int ) : doublemethod154 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : voidmethod155 ( paramboolean1 : boolean , paramint2 : int , paramint3 : int , paramint4 : int ) : voidmethod156 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramboolean5 : boolean ) : booleanmethod157 ( paramint1 : int , paramint2 : int ) : intmethod158 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int , paramint6 : int , paramboolean7 : boolean , paramint8 : int ) : [Imethod159 ( paramint1 : int , paramint2 : int ) : voidmethod164 ( paramint1 : int ) : voidrun () : voidLobbyChatPanelaBoolean3712 : booleanaBoolean3713 : booleanaBoolean3714 : booleanlobbyId : intgetUser ( paramString1 : String , paramboolean2 : boolean ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanlocalUserAdminCommand ( paramString1 : String , paramString2 : String ) : voidlocalUserAdminCommand ( paramString1 : String , paramString2 : String , paramString3 : String ) : voidlocalUserSay ( paramString1 : String ) : voidlocalUserSay ( paramint1 : int , paramString2 : String ) : voidlocalUserSayPrivately ( paramString1 : String , paramString2 : String ) : voidLobbyControlPanelbuttonBack : com.aapeli.colorgui.ColorButtonbuttonMulti : com.aapeli.colorgui.ColorButtonbuttonQuit : com.aapeli.colorgui.ColorButtonbuttonSingle : com.aapeli.colorgui.ColorButtonheight : intwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidsetState ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyDualPlayerPanelbuttonAccept : com.aapeli.colorgui.ColorButtonbuttonCancel : com.aapeli.colorgui.ColorButtonbuttonChallenge : com.aapeli.colorgui.ColorButtonbuttonRefuse : com.aapeli.colorgui.ColorButtonchallengeFloodProtection : com.aapeli.multiuser.ChallengeFloodProtectioncheckboxBeep : com.aapeli.colorgui.ColorCheckboxcheckboxNoChallenges : com.aapeli.multiuser.NoChallCheckboxchoicerCollision : com.aapeli.colorgui.ChoicerchoicerMaxStrokes : com.aapeli.colorgui.ChoicerchoicerScoring : com.aapeli.colorgui.ChoicerchoicerScoringEnd : com.aapeli.colorgui.ChoicerchoicerTimeLimit : com.aapeli.colorgui.ChoicerchoicerTrackTypes : com.aapeli.colorgui.ChoicerchoicerTracksNum : com.aapeli.colorgui.ChoicerchoicerWaterEvent : com.aapeli.colorgui.Choicercollision : intcurrentState : intextraText : Stringgraphics : java.awt.Graphicsheight : intimage : java.awt.ImagemaxStrokes : intopponentName : Stringscoring : intscoringEnd : intsynchronizedObject : ObjecttimeLimit : inttrackType : inttracksNum : intwaterEvent : intwidth : intaccept () : voidactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidallowChallenges () : voidcreate () : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidrefuse () : voidupdate ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyGamePasswordPanelbuttonCancel : com.aapeli.colorgui.ColorButtonbuttonOk : com.aapeli.colorgui.ColorButtonemptyField : booleangameId : inttextField : java.awt.TextFieldactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidjoinGame () : voidkeyPressed ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyReleased ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidkeyTyped ( paramKeyEvent1 : java.awt.event.KeyEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : void «synchronized»LobbyMultiPlayerPanelbuttonCreate : com.aapeli.colorgui.ColorButtonbuttonJoin : com.aapeli.colorgui.ColorButtonchoicerCollision : com.aapeli.colorgui.ChoicerchoicerMaxStrokes : com.aapeli.colorgui.ChoicerchoicerNumPlayers : com.aapeli.colorgui.ChoicerchoicerNumTracks : com.aapeli.colorgui.ChoicerchoicerPermission : com.aapeli.colorgui.ChoicerchoicerScoring : com.aapeli.colorgui.ChoicerchoicerScoringEnd : com.aapeli.colorgui.ChoicerchoicerTimeLimit : com.aapeli.colorgui.ChoicerchoicerTrackTypes : com.aapeli.colorgui.ChoicerchoicerWaterEvent : com.aapeli.colorgui.Choicergraphics : java.awt.Graphicsheight : intimage : java.awt.ImagejoinError : inttextFieldGameName : com.aapeli.client.FilterTextFieldtextFieldGamePassword : com.aapeli.client.InputTextFieldtrackList : com.aapeli.colorgui.MultiColorListwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidaskPassword ( paramint1 : int ) : voidattemptJoinGame ( param[I1 : [I ) : voidcreate () : voidgameListAdd ( paramString;1 : [Ljava.lang.String; , paramint2 : int , paramint3 : int ) : voidgameListChange ( paramString;1 : [Ljava.lang.String; ) : voidgameListFull ( paramString;1 : [Ljava.lang.String; ) : voidgameListRemove ( paramString;1 : [Ljava.lang.String; ) : voidgetSelectedGameData () : [IgetSelectedGameId () : inthandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidjoinMultiPlayerGame ( paramint1 : int , paramString2 : String ) : voidmouseDoubleClicked ( paramMultiColorListItem1 : com.aapeli.colorgui.MultiColorListItem ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidremoveTrack ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyPanelaBoolean465 : booleanactiveLobby : intgameTimeLimits : [Iheight : intnumGameTimeLimits : intwidth : intaddChoicerCollision ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerMaxStrokes ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerNumTracks ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerScoring ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerScoringEnd ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerTimeLimit ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerTrackCategory ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerTrackTypes ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddChoicerWaterEvent ( paramPanel1 : java.awt.Panel , paramint2 : int , paramint3 : int , paramint4 : int , paramint5 : int ) : com.aapeli.colorgui.ChoiceraddMessage ( paramString1 : String ) : voidaddNotify () : voidbroadcastMessage ( paramString1 : String ) : voidgetSelectedNickForChallenge () : StringgetTime ( paramint1 : int ) : StringgetUser ( paramString1 : String , paramboolean2 : boolean ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : voidisNotAcceptingChallenges ( paramString1 : String ) : booleanisUserIgnored ( paramString1 : String ) : booleanmethod395 () : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidquitLobby () : voidrequestTrackSetList () : voidselectLobby ( paramint1 : int , paramint2 : int ) : voidsetJoinError ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidwriteData ( paramString1 : String ) : voidLobbySinglePlayerPanelbuttonStartChampionship : com.aapeli.colorgui.ColorButtonbuttonStartTraining : com.aapeli.colorgui.ColorButtonchoicerTrackTypes : com.aapeli.colorgui.ChoicerchoicerTracksNum : com.aapeli.colorgui.ChoicerchoicerWaterEvent : com.aapeli.colorgui.Choicergraphics : java.awt.Graphicsheight : intimage : java.awt.ImageisUsingCustomServer : booleanrequestTrackSetList : booleanselectedTrackData : StringtrackSetList : com.aapeli.colorgui.MultiColorListwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate () : voidgetSelectedTrackSetData () : StringhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidmouseDoubleClicked ( paramMultiColorListItem1 : com.aapeli.colorgui.MultiColorListItem ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrequestTrackSetList () : voidstartChampionship ( paramint1 : int ) : voidupdate ( paramGraphics1 : java.awt.Graphics ) : voidLobbyTrackListAdminPanelbuttonPlay : com.aapeli.colorgui.ColorButtonbuttonQuit : com.aapeli.colorgui.ColorButtonbuttonRefresh : com.aapeli.colorgui.ColorButtonbuttonUnselect : com.aapeli.colorgui.ColorButtoncheckboxRandom : java.awt.CheckboxcheckboxRepeat : java.awt.CheckboxcheckboxSafeMode : java.awt.CheckboxcheckboxTracks : [Ljava.awt.Checkbox;height : intrefreshTrackList : booleantrackList : com.aapeli.colorgui.MultiColorListwidth : intactionPerformed ( paramActionEvent1 : java.awt.event.ActionEvent ) : voidaddNotify () : voidcreate ( paramboolean1 : boolean ) : voidcreateTrackList ( paramString;1 : [[Ljava.lang.String; , paramboolean2 : boolean ) : voidhandlePacket ( paramString;1 : [Ljava.lang.String; ) : booleanitemStateChanged ( paramItemEvent1 : java.awt.event.ItemEvent ) : voidpaint ( paramGraphics1 : java.awt.Graphics ) : voidrandomize ( paramString;1 : [Ljava.lang.String; ) : [Ljava.lang.String;refreshTrackList () : voidrepeat ( paramString;1 : [Ljava.lang.String; ) : [Ljava.lang.String;update ( paramGraphics1 : java.awt.Graphics ) : voidGameHEIGHT : intWIDTH : intGame$Stubparams : java.util.Mapserver : StringappletResize ( paramint1 : int , paramint2 : int ) : voidgetAppletContext () : java.applet.AppletContextgetCodeBase () : java.net.URLgetDocumentBase () : java.net.URLgetParameter ( paramString1 : String ) : StringisActive () : booleanLauncherDEFAULT_PORT : intDEFAULT_SERVER : Stringhostname : Stringport : intverbose : booleancall () : Voidcall () : ObjectcreateFrame () : javax.swing.JFramedebug () : booleanisUsingCustomServer () : booleanlaunchGame ( paramJFrame1 : javax.swing.JFrame , paramString2 : String , paramint3 : int , paramLauncher$Language4 : org.moparforia.client.Launcher$Language , paramboolean5 : boolean ) : org.moparforia.client.GameloadIcon () : java.awt.Imagelogin ( paramJFrame1 : javax.swing.JFrame ) : [Ljava.lang.String;main ( paramString;1 : [Ljava.lang.String; ) : voidshowSettingDialog ( paramJFrame1 : javax.swing.JFrame , paramString2 : String , paramint3 : int ) : booleanLauncher$Languageen_USfi_FIsv_SEMD5ChecksumcreateChecksum ( paramString1 : String ) : [BgetMD5Checksum ( paramString1 : String ) : StringgetMD5Checksum ( param[B1 : [B ) : Stringmain ( paramString;1 : [Ljava.lang.String; ) : voidTrackDumperaStringArray2369 : [Ljava.lang.String;map_dir : Stringtrack_basic : inttrack_hio : inttrack_long : inttrack_modern : inttrack_short : inttrack_traditional : inttrack_type : inttries : intconnectionLost ( paramint1 : int ) : voiddataReceived ( paramString1 : String ) : voidmain ( paramString;1 : [Ljava.lang.String; ) : voidnotifyConnectionDown () : voidnotifyConnectionUp () : voidrecordzlistTracks ( paramString1 : String ) : [Ljava.io.File;main ( paramString;1 : [Ljava.lang.String; ) : voidClass100aLong1632 : longmethod1799 ( paramint1 : int , paramint2 : int ) : intmethod1800 () : intmethod1801 () : intClass98aLong1607 : longaVector1604 : java.util.VectoranInt1605 : intmethod1772 ( paramString1 : String ) : voidmethod1773 () : Stringmethod1774 () : voidConnCryptoanInt1601 : intanIntArrayArray1602 : [[IanIntArrayArray1603 : [[Ikey : intdecrypt ( paramString1 : String ) : Stringencrypt ( paramString1 : String ) : Stringmethod1763 () : intmethod1768 ( paramint1 : int ) : intmethod1769 ( paramint1 : int ) : intmethod1770 ( paramint1 : int , paramint2 : int , paramint3 : int , paramint4 : int ) : intmethod1771 ( paramint1 : int , paramint2 : int , paramint3 : int ) : intresetKey () : voidConnListenerconnectionLost ( paramint1 : int ) : voiddataReceived ( paramString1 : String ) : voidnotifyConnectionDown () : voidnotifyConnectionUp () : voidConnectionDCR_BYUSER : intDCR_HANDLEFAILED : intDCR_NORETRY : intDCR_RETRYFAIL : intDCR_UNDEFINED : intDCR_VERSION : intaBoolean1615 : booleanaBoolean1616 : booleanaLong1620 : longaSocket1617 : java.net.SocketaString1608 : StringaThread1628 : ThreadaVector1624 : java.util.VectoranInt1613 : intanInt1621 : intanInt1629 : intdisconnectReason : intin : java.io.BufferedReaderlastCmdReceived : longnumReceivedGamePackets : longout : java.io.BufferedWriterconnect () : booleandisconnect () : voidgetLocalIP () : Stringmethod1775 () : voidmethod1776 () : booleanmethod1777 () : voidmethod1778 () : voidmethod1779 () : voidmethod1780 () : voidmethod1781 () : voidmethod1782 () : booleanmethod1783 () : voidmethod1788 () : voidmethod1790 () : voidmethod1791 () : voidmethod1792 () : voidreadLine () : Stringrun () : voidwriteData ( paramString1 : String ) : voidwriteLine ( paramString1 : String ) : booleanwriteLineC ( paramString1 : String ) : booleanwriteLineD ( paramString1 : String ) : booleanwriteLineS ( paramString1 : String ) : booleanwriteThriftLog ( paramint1 : int , paramString2 : String , paramString3 : String ) : voidGameCryptoaStringArray1631 : [Ljava.lang.String;decrypt ( paramString1 : String ) : Stringencrypt ( paramString1 : String ) : Stringmethod1793 () : intmethod1796 ( paramString;1 : [Ljava.lang.String; ) : [Ljava.lang.String;method1797 ( paramString1 : String ) : charmethod1798 ( paramString1 : String , paramint2 : int , paramchar3 : char ) : booleanGamePacketQueuepackets : java.util.Vectorrunning : booleanthread : ThreadaddGamePacket ( paramString1 : String ) : void «synchronized»nextGamePacket () : String «synchronized»run () : voidstop () : voidgameContainerconnectiongameContainergameAppletsyncIsValidSitesyncUnknownBoolsyncPlayerAccessLevellobbySelectionPanelgameContainerspriteManagersynchronizedTrackTestModetrackCollectiongamePanelgameContainerlobbyPanelgameContainerlobbySelectRNOPlobbySelectPanelgameAppletgameContaineraSeed_2836gameContainergameContaineraGamePlayerInfoPanel__341gameCanvasgameChatPanelgameControlPanelgamePlayerInfoPanelgameTrackInfoPanelgameContainerpanelThreadgamePlayerInfoPanelgameContainerbuttonBackaSeed_2836gameContainergameContainergameContainergameContainerlobbyMultiPlayerPanellobbyGamePasswordPanelgameContainerlobbyChatPanelDuallobbyChatPanelMultilobbyChatPanelSinglelobbyControlPanellobbyDualPlayerPanellobbyMultiPlayerPanellobbySinglePlayerPanellobbyTrackListAdminPanelgameContainergameContainerthis$0langconnaConnCrypto_1606aClass98_1622connCryptoaConnListener1611aGameCrypto_1612aGamePacketQueue_1623connconnListener \ No newline at end of file From 5742b1de281d9d93dc249eebbcf5dcd3c8e658fc Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Tue, 2 Jan 2024 19:36:35 +0200 Subject: [PATCH 2/3] Deobfuscate code around drawing player names No behavior changes. --- client/src/main/java/agolf/GameContainer.java | 1 - .../src/main/java/agolf/game/GameCanvas.java | 150 ++++++++++-------- .../java/agolf/game/GameControlPanel.java | 33 ++-- .../src/main/java/agolf/game/GamePanel.java | 10 +- .../java/agolf/game/GameTrackInfoPanel.java | 2 +- .../java/com/aapeli/client/StringDraw.java | 13 +- 6 files changed, 102 insertions(+), 107 deletions(-) diff --git a/client/src/main/java/agolf/GameContainer.java b/client/src/main/java/agolf/GameContainer.java index dba5600e..7bac91ab 100644 --- a/client/src/main/java/agolf/GameContainer.java +++ b/client/src/main/java/agolf/GameContainer.java @@ -32,7 +32,6 @@ public class GameContainer {// some kind of a container for everything protected String[] adverts; public GamePanel gamePanel; public int graphicsQualityIndex; - public static int anInt992; public GameContainer(GameApplet gameApplet, Parameters params) { diff --git a/client/src/main/java/agolf/game/GameCanvas.java b/client/src/main/java/agolf/game/GameCanvas.java index c8f3f3b9..ac8851cf 100644 --- a/client/src/main/java/agolf/game/GameCanvas.java +++ b/client/src/main/java/agolf/game/GameCanvas.java @@ -29,7 +29,7 @@ public class GameCanvas extends GameBackgroundCanvas implements Runnable, MouseM private Image[] ballSprites; private int playerCount; private int onShoreSetting; - private int anInt2811; + private int collisionMode; private int currentPlayerID; private int mouseX; private int mouseY; @@ -51,7 +51,7 @@ public class GameCanvas extends GameBackgroundCanvas implements Runnable, MouseM private boolean[] aBooleanArray2830; private SynchronizedBool[] onHoleSync; //not sure private boolean isLocalPlayer; - private int anInt2833; + private int playerNamesDisplayMode; // 0 == Hide names, 1 == Show initials, 2 == Show names, 3 == Name + clan private boolean[] aBooleanArray2834; private String aString2835; private Seed rngSeed; @@ -70,16 +70,17 @@ public class GameCanvas extends GameBackgroundCanvas implements Runnable, MouseM private double hackedY = 0; private boolean isCheating = false; - protected GameCanvas(GameContainer var1, Image var2) { - super(var1, var2); - this.ballSprites = var1.spriteManager.getBalls(); + protected GameCanvas(GameContainer gameContainer, Image image) { + super(gameContainer, image); + this.ballSprites = gameContainer.spriteManager.getBalls(); this.playerCount = this.currentPlayerID = this.mouseX = this.mouseY = -1; - this.anInt2833 = 0; + this.playerNamesDisplayMode = 0; this.gameState = 0; this.anInt2839 = anInt2838; - this.norandom = Parameters.getBooleanValue(var1.params.getParameter("norandom")); + this.norandom = Parameters.getBooleanValue(gameContainer.params.getParameter("norandom")); } + @Override public void update(Graphics g) { if (this.anImage2840 == null) { this.anImage2840 = this.createImage(735, 375); @@ -127,9 +128,9 @@ public void update(Graphics g) { this.graphics.setFont(gameFont); this.graphics.setColor(blackColour); - for (int var10 = 0; var10 < this.playerCount; ++var10) { - if (this.aBooleanArray2830[var10] && var10 != this.currentPlayerID) { - this.drawPlayerInfo(this.graphics, var10, this.onHoleSync[var10].get() ? 2.1666666666666665D : 0.0D); + for (int player = 0; player < this.playerCount; ++player) { + if (this.aBooleanArray2830[player] && player != this.currentPlayerID) { + this.drawPlayerInfo(this.graphics, player, this.onHoleSync[player].get() ? 2.1666666666666665D : 0.0D); } } @@ -144,6 +145,7 @@ public void update(Graphics g) { g.drawImage(this.anImage2840, 0, 0, this); } + @Override public void run() { Image ballImage = this.createImage(735, 375); Image var2 = super.image; @@ -208,14 +210,12 @@ public void run() { tempCoord3Y[i] = this.playerY[i]; } - int i; - int var44; for (int var42 = 0; var42 < this.anInt2839; ++var42) { var24 = 0; - for (i = 0; i < this.playerCount; ++i) { + for (int i = 0; i < this.playerCount; ++i) { if (this.aBooleanArray2830[i] && !this.onHoleSync[i].get()) { - for (var44 = 0; var44 < 10; ++var44) { + for (int j = 0; j < 10; ++j) { //this moves player this.playerX[i] += this.speedX[i] * 0.1D; @@ -240,7 +240,7 @@ public void run() { //checks player vs player collision int anotherPlayer; - if (this.anInt2811 == 1 && !onHole[i] && !onLiquidOrSwamp[i]) { + if (this.collisionMode == 1 && !onHole[i] && !onLiquidOrSwamp[i]) { for (anotherPlayer = 0; anotherPlayer < this.playerCount; ++anotherPlayer) { if (i != anotherPlayer && this.aBooleanArray2830[anotherPlayer] && !this.onHoleSync[anotherPlayer].get() && !onHole[anotherPlayer] && !onLiquidOrSwamp[anotherPlayer] && this.handlePlayerCollisions(i, anotherPlayer)) { //collision is calculated in another function this just makes it less effective @@ -476,7 +476,7 @@ public void run() { } } - for (i = 0; i < this.playerCount; ++i) { + for (int i = 0; i < this.playerCount; ++i) { if (this.aBooleanArray2830[i]) { int x1 = (int) (tempCoord3X[i] - 6.5D + 0.5D); int y1 = (int) (tempCoord3Y[i] - 6.5D + 0.5D); @@ -484,9 +484,9 @@ public void run() { int y2 = y1 + 13; ballGraphic.drawImage(var2, x1, y1, x2, y2, x1, y1, x2, y2, this); - for (var44 = 0; var44 < this.playerCount; ++var44) { - if (this.aBooleanArray2830[var44] && var44 != this.currentPlayerID) { - this.drawPlayerInfo(ballGraphic, var44, var10[var44]); + for (int j = 0; j < this.playerCount; ++j) { + if (this.aBooleanArray2830[j] && j != this.currentPlayerID) { + this.drawPlayerInfo(ballGraphic, j, var10[j]); } } @@ -539,6 +539,7 @@ public void run() { } } + @Override public void mouseMoved(MouseEvent var1) { this.mouseX = var1.getX(); this.mouseY = var1.getY(); @@ -558,18 +559,22 @@ public void mouseMoved(MouseEvent var1) { this.repaint(); } + @Override public void mouseDragged(MouseEvent var1) { } + @Override public void mouseEntered(MouseEvent var1) { this.mouseMoved(var1); } + @Override public void mouseExited(MouseEvent var1) { this.mouseX = this.mouseY = -1; this.repaint(); } + @Override public synchronized void mousePressed(MouseEvent event) { if (this.gameState == 1) { if (event.isMetaDown()) { @@ -599,6 +604,7 @@ public synchronized void mousePressed(MouseEvent event) { } } + @Override public void mouseReleased(MouseEvent var1) { if (this.gameState == 1) { var1.consume(); @@ -606,9 +612,11 @@ public void mouseReleased(MouseEvent var1) { } + @Override public void mouseClicked(MouseEvent var1) { } + @Override public synchronized void keyPressed(KeyEvent var1) { if (allowCheating) { @@ -629,31 +637,34 @@ public synchronized void keyPressed(KeyEvent var1) { } } + @Override public void keyReleased(KeyEvent var1) { } + @Override public void keyTyped(KeyEvent var1) { } - protected void method132(int var1, int var2, int var3) { - this.playerCount = var1; - this.onShoreSetting = var2; - this.anInt2811 = var3; - this.playerX = new double[var1]; - this.playerY = new double[var1]; - this.speedX = new double[var1]; - this.speedY = new double[var1]; - this.onHoleSync = new SynchronizedBool[var1]; + protected void init(int playerCount, int waterMode, int collisionMode) { + this.playerCount = playerCount; + this.onShoreSetting = waterMode; + this.collisionMode = collisionMode; + this.playerX = new double[playerCount]; + this.playerY = new double[playerCount]; + this.speedX = new double[playerCount]; + this.speedY = new double[playerCount]; + this.onHoleSync = new SynchronizedBool[playerCount]; - for (int var4 = 0; var4 < var1; ++var4) { - this.onHoleSync[var4] = new SynchronizedBool(); + for (int i = 0; i < playerCount; ++i) { + this.onHoleSync[i] = new SynchronizedBool(); } - this.aBooleanArray2830 = new boolean[var1]; - this.aBooleanArray2834 = new boolean[var1]; - this.anInt2833 = var1 <= 2 ? 0 : 3; + this.aBooleanArray2830 = new boolean[playerCount]; + this.aBooleanArray2834 = new boolean[playerCount]; + this.playerNamesDisplayMode = playerCount <= 2 ? 0 : 3; } + @Override protected void createMap(int var1) { super.createMap(var1); this.currentPlayerID = this.mouseX = this.mouseY = -1; @@ -838,12 +849,12 @@ protected boolean method134() { return this.aString2835 != null; } - protected void startTurn(int playerId, boolean var2, boolean var3) { + protected void startTurn(int playerId, boolean canLocalPlayerPlay, boolean var3) { this.currentPlayerID = playerId; this.aBooleanArray2834[playerId] = true; this.mouseX = this.mouseY = -1; this.shootingMode = 0; - if (var2) { + if (canLocalPlayerPlay) { this.method162(var3); this.gameState = 1; } else { @@ -857,8 +868,8 @@ protected void decodeCoords(int playerId, boolean isLocalPlayer, String encoded) int var4 = Integer.parseInt(encoded, 36); int x = var4 / 1500; int y = var4 % 1500 / 4; - int mod = var4 % 4; - this.doStroke(playerId, isLocalPlayer, x, y, mod); + int shootingMode = var4 % 4; + this.doStroke(playerId, isLocalPlayer, x, y, shootingMode); } protected boolean method137() { @@ -874,8 +885,8 @@ protected void endGame() { this.repaint(); } - protected void method139(int var1) { - this.anInt2833 = var1; + protected void setPlayerNamesDisplayMode(int mode) { + this.playerNamesDisplayMode = mode; this.repaint(); } @@ -914,7 +925,7 @@ protected String method142() { } } - protected void stop() { + protected void doZeroLengthStroke() { this.removeMouseMotionListener(this); this.removeMouseListener(this); this.removeKeyListener(this); @@ -925,24 +936,24 @@ protected void stop() { this.doStroke(this.currentPlayerID, true, x, y, 0); } - private void doStroke(int playerId, boolean isLocalPlayer, int mouseX, int mouseY, int mod) { + private void doStroke(int playerId, boolean isLocalPlayer, int mouseX, int mouseY, int shootingMode) { this.anInt2816 = super.gameContainer.gamePanel.isValidPlayerID(playerId) ? playerId : -1; double[] power = this.getStrokePower(playerId, mouseX, mouseY); this.speedX[playerId] = power[0]; this.speedY[playerId] = power[1]; - if (mod == 1) { + if (shootingMode == 1) { this.speedX[playerId] = -this.speedX[playerId]; this.speedY[playerId] = -this.speedY[playerId]; } double temp; - if (mod == 2) { + if (shootingMode == 2) { temp = this.speedX[playerId]; this.speedX[playerId] = this.speedY[playerId]; this.speedY[playerId] = -temp; } - if (mod == 3) { + if (shootingMode == 3) { temp = this.speedX[playerId]; this.speedX[playerId] = -this.speedY[playerId]; this.speedY[playerId] = temp; @@ -1003,7 +1014,7 @@ private void doHackedStroke(int playerId, boolean isLocalPlayer, int mouseX, int temp_aBoolean2843 = false; - HackedShot hs = new HackedShot(playerCount, onShoreSetting, anInt2811, currentPlayerID, temp_anInt2816, + HackedShot hs = new HackedShot(playerCount, onShoreSetting, collisionMode, currentPlayerID, temp_anInt2816, aDouble2817, aDouble2818, bounciness, somethingSpeedThing, resetPositionX, resetPositionY, teleportStarts, teleportExists, magnetMap, playerX, playerY, temp_aDoubleArray2828, temp_aDoubleArray2829, aBooleanArray2830, onHoleSync, temp_aBoolean2832, aBooleanArray2834, @@ -1592,54 +1603,53 @@ private void drawTile(int tileX, int tileY, Graphics var3, Graphics var4) { } private void drawPlayerInfo(Graphics g, int playerid, double var3) { - int var5 = (int) (this.playerX[playerid] - 6.5D + 0.5D); - int var6 = (int) (this.playerY[playerid] - 6.5D + 0.5D); + int x = (int) (this.playerX[playerid] - 6.5D + 0.5D); + int y = (int) (this.playerY[playerid] - 6.5D + 0.5D); int var7 = 13; if (var3 > 0.0D) { - var5 = (int) ((double) var5 + var3); - var6 = (int) ((double) var6 + var3); + x = (int) ((double) x + var3); + y = (int) ((double) y + var3); var7 = (int) ((double) var7 - var3 * 2.0D); } int var8 = 0; if (super.gameContainer.graphicsQualityIndex == 3) { - var8 = (var5 / 5 + var6 / 5) % 2 * 4; + var8 = (x / 5 + y / 5) % 2 * 4; } if (var3 == 0.0D) { - g.drawImage(this.ballSprites[playerid + var8], var5, var6, this); - if (this.anInt2833 > 0 && this.aBooleanArray2834[playerid] && this.gameState != 2 && this.playerCount > 1) { - String[] var9 = super.gameContainer.gamePanel.getPlayerInfo(playerid); - if (this.anInt2833 == 1) { - StringDraw.drawString(g, var9[0].substring(0, 1), var5 + 6, var6 + 13 - 3, 0); + g.drawImage(this.ballSprites[playerid + var8], x, y, this); + if (this.playerNamesDisplayMode > 0 && this.aBooleanArray2834[playerid] && this.gameState != 2 && this.playerCount > 1) { + String[] playerName = super.gameContainer.gamePanel.getPlayerName(playerid); + if (this.playerNamesDisplayMode == 1) { + StringDraw.drawString(g, playerName[0].substring(0, 1), x + 6, y + 13 - 3, 0); return; } - int var10 = StringDraw.getStringWidth(g, var9[0]); - int var11 = var5 + 13 + 2; - if (this.anInt2833 != 2 && var9[1] != null) { - String var12 = "[" + var9[1] + "]"; - int var13 = StringDraw.getStringWidth(g, var12); + int nameWidth = StringDraw.getStringWidth(g, playerName[0]); + int textX = x + 13 + 2; + if (this.playerNamesDisplayMode != 2 && playerName[1] != null) { + String clanName = "[" + playerName[1] + "]"; + int clanWidth = StringDraw.getStringWidth(g, clanName); byte var14 = -1; - if (var11 + var10 >= 733 || var11 + var13 >= 733) { - var11 = var5 - 2; + if (textX + nameWidth >= 733 || textX + clanWidth >= 733) { + textX = x - 2; var14 = 1; } - StringDraw.drawOutlinedString(g, backgroundColour, var9[0], var11, var6 + 13 - 3 - 6, var14); - StringDraw.drawOutlinedString(g, backgroundColour, var12, var11, var6 + 13 - 3 + 7, var14); + StringDraw.drawOutlinedString(g, backgroundColour, playerName[0], textX, y + 13 - 3 - 6, var14); + StringDraw.drawOutlinedString(g, backgroundColour, clanName, textX, y + 13 - 3 + 7, var14); return; } - if (var11 + var10 >= 733) { - var11 = var5 - 2 - var10; + if (textX + nameWidth >= 733) { + textX = x - 2 - nameWidth; } - StringDraw.drawOutlinedString(g, backgroundColour, var9[0], var11, var6 + 13 - 3, -1); - return; + StringDraw.drawOutlinedString(g, backgroundColour, playerName[0], textX, y + 13 - 3, -1); } } else { - g.drawImage(this.ballSprites[playerid + var8], var5, var6, var5 + var7, var6 + var7, 0, 0, 13, 13, this); + g.drawImage(this.ballSprites[playerid + var8], x, y, x + var7, y + var7, 0, 0, 13, 13, this); } } @@ -1658,7 +1668,7 @@ private void method162(boolean var1) { private void drawDashedLine(Graphics var1, int var2, int var3, int var4, int var5) { int var6 = var4 >= 0 ? var4 : -var4; int var7 = var5 >= 0 ? var5 : -var5; - int var8 = (var6 > var7 ? var6 : var7) / 10; + int var8 = Math.max(var6, var7) / 10; double var9 = (double) var2; double var11 = (double) var3; double var13 = (double) var4 / ((double) var8 * 2.0D); diff --git a/client/src/main/java/agolf/game/GameControlPanel.java b/client/src/main/java/agolf/game/GameControlPanel.java index c6f2ed5e..c3ac1217 100644 --- a/client/src/main/java/agolf/game/GameControlPanel.java +++ b/client/src/main/java/agolf/game/GameControlPanel.java @@ -24,10 +24,9 @@ class GameControlPanel extends Panel implements ActionListener, ItemListener { private ColorButton buttonSkip; private ColorButton buttonNewGame; private ColorButton buttonBack; - private Choicer choicerNames; + private Choicer playerNamesDisplayModeChoicer; private Checkbox checkboxMaxFps; private boolean skipButtonVisible; - private static final String[] aStringArray351 = new String[5]; protected GameControlPanel(GameContainer var1, GamePlayerInfoPanel var2, int var3, int var4) { @@ -83,9 +82,9 @@ public void actionPerformed(ActionEvent var1) { } } - public void itemStateChanged(ItemEvent var1) { - if (var1.getSource() == this.choicerNames) { - this.gameContainer.gamePanel.method348(this.choicerNames.getSelectedIndex()); + public void itemStateChanged(ItemEvent event) { + if (event.getSource() == this.playerNamesDisplayModeChoicer) { + this.gameContainer.gamePanel.setPlayerNamesDisplayMode(this.playerNamesDisplayModeChoicer.getSelectedIndex()); } } @@ -106,11 +105,11 @@ protected void displaySkipButton() { this.setVisible(true); } - protected void method327(int var1) { + protected void method327(int state) { this.setVisible(false); this.removeAll(); this.skipButtonVisible = false; - if (var1 == 2) { + if (state == 2) { this.buttonNewGame = new ColorButton(this.gameContainer.textManager.getGame("GameControl_New")); this.buttonNewGame.setBounds(0, this.anInt343 - 55, this.anInt342, 25); this.buttonNewGame.setBackground(GameApplet.colourButtonGreen); @@ -132,16 +131,16 @@ protected void method327(int var1) { } if (this.playerCount > 1) { - this.choicerNames = new Choicer(); + this.playerNamesDisplayModeChoicer = new Choicer(); for (int var2 = 0; var2 < 4; ++var2) { - this.choicerNames.addItem(this.gameContainer.textManager.getGame("GameControl_Names" + var2)); + this.playerNamesDisplayModeChoicer.addItem(this.gameContainer.textManager.getGame("GameControl_Names" + var2)); } - this.choicerNames.select(this.playerCount <= 2 ? 0 : 3); - this.choicerNames.setBounds(0, this.anInt343 - 80, this.anInt342, 20); - this.choicerNames.addItemListener(this); - this.add(this.choicerNames); + this.playerNamesDisplayModeChoicer.select(this.playerCount <= 2 ? 0 : 3); + this.playerNamesDisplayModeChoicer.setBounds(0, this.anInt343 - 80, this.anInt342, 20); + this.playerNamesDisplayModeChoicer.addItemListener(this); + this.add(this.playerNamesDisplayModeChoicer); } } @@ -189,12 +188,4 @@ protected void showSkipButton() { this.skipButtonVisible = true; } } - - static { - aStringArray351[0] = "GameControl_Names"; - aStringArray351[1] = "GameControl_Skip"; - aStringArray351[2] = "Max FPS"; - aStringArray351[3] = "GameControl_New"; - aStringArray351[4] = "GameControl_Back"; - } } diff --git a/client/src/main/java/agolf/game/GamePanel.java b/client/src/main/java/agolf/game/GamePanel.java index fbd8dcc1..667f70b0 100644 --- a/client/src/main/java/agolf/game/GamePanel.java +++ b/client/src/main/java/agolf/game/GamePanel.java @@ -85,7 +85,7 @@ public void handlePacket(String[] args) { this.gamePlayerInfoPanel.method355(this.playerCount, trackCount, maxStrokes, strokeTimeout, trackScoring); this.gameTrackInfoPanel.setNumTracks(trackCount); this.gameControlPanel.setPlayerCount(this.playerCount); - this.gameCanvas.method132(this.playerCount, waterEvent, collision); + this.gameCanvas.init(this.playerCount, waterEvent, collision); if (mode == 2) { String settings = ""; if (passworded) { @@ -488,12 +488,12 @@ protected boolean maxFps() { return this.gameControlPanel.maxFps(); } - protected String[] getPlayerInfo(int playerId) { + protected String[] getPlayerName(int playerId) { return this.gamePlayerInfoPanel.getPlayerInfo(playerId); } - protected void method348(int var1) { - this.gameCanvas.method139(var1); + protected void setPlayerNamesDisplayMode(int mode) { + this.gameCanvas.setPlayerNamesDisplayMode(mode); } public void broadcastMessage(String message) { @@ -513,7 +513,7 @@ protected boolean canStroke(boolean stopInfoPanel) { if (stopInfoPanel) {// ??????????????????????????????????? this.gamePlayerInfoPanel.stopTimer(); } else { - this.gameCanvas.stop(); + this.gameCanvas.doZeroLengthStroke(); } return true; diff --git a/client/src/main/java/agolf/game/GameTrackInfoPanel.java b/client/src/main/java/agolf/game/GameTrackInfoPanel.java index e81328b3..10cdf16f 100644 --- a/client/src/main/java/agolf/game/GameTrackInfoPanel.java +++ b/client/src/main/java/agolf/game/GameTrackInfoPanel.java @@ -282,7 +282,7 @@ protected int method385() { } private void create() { - this.setLayout((LayoutManager) null); + this.setLayout(null); this.buttonNoVote = new ColorButton("-"); this.buttonNoVote.setBounds(this.width - 264, this.height - 15, 22, 15); this.buttonNoVote.addActionListener(this); diff --git a/client/src/main/java/com/aapeli/client/StringDraw.java b/client/src/main/java/com/aapeli/client/StringDraw.java index 84190940..69786c0d 100644 --- a/client/src/main/java/com/aapeli/client/StringDraw.java +++ b/client/src/main/java/com/aapeli/client/StringDraw.java @@ -66,7 +66,7 @@ public static int[] drawStringWithMaxWidth(Graphics g, String text, int var2, in return drawOutlinedStringWithMaxWidth(g, (Color) null, text, var2, var3, var4, var5); } - public static int[] drawOutlinedStringWithMaxWidth(Graphics g, Color colour, String text, int var3, int var4, int var5, int var6) { + public static int[] drawOutlinedStringWithMaxWidth(Graphics g, Color colour, String text, int x, int y, int alignment, int var6) { Font font = g.getFont(); FontMetrics fontMetrics = g.getFontMetrics(font); Vector vector = createLines(fontMetrics, text, var6); @@ -81,27 +81,22 @@ public static int[] drawOutlinedStringWithMaxWidth(Graphics g, Color colour, Str var12[2] = 0; for (int var14 = 0; var14 < var12[0]; ++var14) { - int var13 = drawOutlinedString(g, colour, (String) ((String) vector.elementAt(var14)), var3, var4, var5); + int var13 = drawOutlinedString(g, colour, (String) vector.elementAt(var14), x, y, alignment); if (var13 > var12[2]) { var12[2] = var13; } - var4 += var11; + y += var11; } return var12; } public static int drawString(Graphics var0, String var1, int var2, int var3, int var4, int var5) { - int[] var6 = drawOutlinedStringWithMaxWidth(var0, (Color) null, var1, var2, var3, var4, var5); + int[] var6 = drawOutlinedStringWithMaxWidth(var0, null, var1, var2, var3, var4, var5); return var6[2]; } - public static int drawOutlinedString(Graphics var0, Color var1, String var2, int var3, int var4, int var5, int var6) { - int[] var7 = drawOutlinedStringWithMaxWidth(var0, var1, var2, var3, var4, var5, var6); - return var7[2]; - } - public static int getStringWidth(Graphics var0, String var1) { return getStringWidth(var0, var0.getFont(), var1); } From 46ee568194e3b216a48a773b78211722e2b53fdb Mon Sep 17 00:00:00 2001 From: Sten Laane <21343173+StenAL@users.noreply.github.com> Date: Fri, 5 Jan 2024 13:41:30 +0200 Subject: [PATCH 3/3] Deobfuscate and clarify GamePanel and GamePlayerInfoPanel code No functional changes. --- .../src/main/java/agolf/game/GamePanel.java | 58 ++++--- .../java/agolf/game/GamePlayerInfoPanel.java | 155 +++++++++--------- 2 files changed, 106 insertions(+), 107 deletions(-) diff --git a/client/src/main/java/agolf/game/GamePanel.java b/client/src/main/java/agolf/game/GamePanel.java index 667f70b0..ac2160ff 100644 --- a/client/src/main/java/agolf/game/GamePanel.java +++ b/client/src/main/java/agolf/game/GamePanel.java @@ -7,7 +7,6 @@ import java.awt.Graphics; import java.awt.Image; -import java.awt.LayoutManager; import java.awt.Panel; import java.util.StringTokenizer; @@ -26,8 +25,8 @@ public class GamePanel extends Panel { private boolean isSinglePlayerGame; private boolean aBoolean363; private long aLong364; - private Object anObject365; - private boolean isWaitingForTurn; + private final Object canStrokeLock; + private boolean isWaitingForTurnStart; public GamePanel(GameContainer gameContainer, int width, int height, Image image) { @@ -37,7 +36,7 @@ public GamePanel(GameContainer gameContainer, int width, int height, Image image this.setSize(width, height); this.create(image); this.aBoolean363 = true; - this.anObject365 = new Object(); + this.canStrokeLock = new Object(); this.state = -1; this.setState(0); } @@ -82,7 +81,7 @@ public void handlePacket(String[] args) { } this.addMultiPlayerPanels(mode); - this.gamePlayerInfoPanel.method355(this.playerCount, trackCount, maxStrokes, strokeTimeout, trackScoring); + this.gamePlayerInfoPanel.init(this.playerCount, trackCount, maxStrokes, strokeTimeout, trackScoring); this.gameTrackInfoPanel.setNumTracks(trackCount); this.gameControlPanel.setPlayerCount(this.playerCount); this.gameCanvas.init(this.playerCount, waterEvent, collision); @@ -308,7 +307,7 @@ else if (args[1].equals("starttrack")) { this.gameTrackInfoPanel.parseTrackInfoStats(trackInformation[0], trackInformation[1], trackStats[0], trackStats[1], trackInformation[2], trackInformation[3], trackTestMode1, trackTestMode2, this.gameCanvas.method134()); - int numberOfPlayers = this.gamePlayerInfoPanel.method360(); + int numberOfPlayers = this.gamePlayerInfoPanel.startNextTrack(); if (numberOfPlayers > 1) { this.gameChatPanel.addMessage(gameContainer.textManager.getGame("GameChat_ScoreMultiNotify", numberOfPlayers)); } @@ -319,10 +318,10 @@ else if (args[1].equals("starttrack")) { } } else if (args[1].equals("startturn")) { - this.isWaitingForTurn = false; + this.isWaitingForTurnStart = false; int playerId = Integer.parseInt(args[2]); - boolean canPlay = this.gamePlayerInfoPanel.canShoot(playerId); + boolean canPlay = this.gamePlayerInfoPanel.startTurn(playerId); //canPlay = true; this.gameCanvas.startTurn(playerId, canPlay, !this.gameChatPanel.haveFocus()); @@ -352,7 +351,7 @@ else if (args[1].equals("voteskip")) { this.gamePlayerInfoPanel.voteSkip(Integer.parseInt(args[2])); } else if (args[1].equals("resetvoteskip")) { this.gamePlayerInfoPanel.voteSkipReset(); - if (!this.gameCanvas.getSynchronizedBool(this.gamePlayerInfoPanel.currentPlayerId)) { + if (!this.gameCanvas.getSynchronizedBool(this.gamePlayerInfoPanel.playerId)) { this.gameControlPanel.showSkipButton(); } @@ -375,7 +374,7 @@ else if(args[1].equals("end")) { this.gamePlayerInfoPanel.setGameOutcome(gameOutcome); this.gameContainer.gameApplet.showPlayerListWinners(isWinner); } else { - this.gamePlayerInfoPanel.setGameOutcome((int[]) null); + this.gamePlayerInfoPanel.setGameOutcome(null); } this.setState(2);// game state? @@ -387,16 +386,16 @@ else if(args[1].equals("end")) { } } - protected void sendChatMessage(String var1) { - String var2 = "say\t" + var1; + protected void sendChatMessage(String message) { + String var2 = "say\t" + message; this.gameContainer.connection.writeData("game\t" + var2); - this.gameChatPanel.addSay(this.gamePlayerInfoPanel.currentPlayerId, this.gamePlayerInfoPanel.playerNames[this.gamePlayerInfoPanel.currentPlayerId], var1, true); + this.gameChatPanel.addSay(this.gamePlayerInfoPanel.playerId, this.gamePlayerInfoPanel.playerNames[this.gamePlayerInfoPanel.playerId], message, true); } - protected void setBeginStroke(int playerId, int x, int y, int keycount) { + protected void setBeginStroke(int playerId, int x, int y, int shootingMode) { this.gameTrackInfoPanel.method384(); this.gamePlayerInfoPanel.method363(playerId, false); - String data = "beginstroke\t" + this.encodeCoords(x, y, keycount); + String data = "beginstroke\t" + this.encodeCoords(x, y, shootingMode); this.gameContainer.connection.writeData("game\t" + data); this.gameContainer.soundManager.playGameMove(); } @@ -489,7 +488,7 @@ protected boolean maxFps() { } protected String[] getPlayerName(int playerId) { - return this.gamePlayerInfoPanel.getPlayerInfo(playerId); + return this.gamePlayerInfoPanel.getPlayerName(playerId); } protected void setPlayerNamesDisplayMode(int mode) { @@ -501,13 +500,12 @@ public void broadcastMessage(String message) { } protected boolean canStroke(boolean stopInfoPanel) { - synchronized (anObject365) { - if (this.isWaitingForTurn) { - boolean var3 = false; - return var3; + synchronized (canStrokeLock) { + if (this.isWaitingForTurnStart) { + return false; } - this.isWaitingForTurn = true; + this.isWaitingForTurnStart = true; } if (stopInfoPanel) {// ??????????????????????????????????? @@ -521,7 +519,7 @@ protected boolean canStroke(boolean stopInfoPanel) { private void create(Image image) { if (this.gameContainer.gameApplet.syncIsValidSite.get()) { - this.setLayout((LayoutManager) null); + this.setLayout(null); this.gamePlayerInfoPanel = new GamePlayerInfoPanel(this.gameContainer, 735, 60); this.gamePlayerInfoPanel.setLocation(0, 0); this.add(this.gamePlayerInfoPanel); @@ -548,20 +546,20 @@ private void addMultiPlayerPanels(int mode) { } } - private void setState(int var1) { - if (var1 != this.state) { - this.state = var1; - this.gamePlayerInfoPanel.method371(var1); - this.gameControlPanel.method327(var1); + private void setState(int state) { + if (state != this.state) { + this.state = state; + this.gamePlayerInfoPanel.method371(state); + this.gameControlPanel.method327(state); } } private String encodeCoords(int x, int y, int mod) { int var4 = x * 375 * 4 + y * 4 + mod;//mod.. or something, possible values 0..3 - String out; - for (out = Integer.toString(var4, 36); out.length() < 4; out = "0" + out) { - ; + String out = Integer.toString(var4, 36); + while (out.length() < 4) { + out = "0" + out; } return out; diff --git a/client/src/main/java/agolf/game/GamePlayerInfoPanel.java b/client/src/main/java/agolf/game/GamePlayerInfoPanel.java index bbbe0c33..5beea558 100644 --- a/client/src/main/java/agolf/game/GamePlayerInfoPanel.java +++ b/client/src/main/java/agolf/game/GamePlayerInfoPanel.java @@ -9,7 +9,6 @@ import java.awt.Font; import java.awt.Graphics; import java.awt.Image; -import java.awt.LayoutManager; import java.awt.Panel; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; @@ -18,10 +17,10 @@ class GamePlayerInfoPanel extends Panel implements ItemListener, MouseListener { - private static final Font fontDialog12 = new Font("Dialog", 0, 12); - private static final Font fontDialog12b = new Font("Dialog", 1, 12); - private static final Font fontDialog10 = new Font("Dialog", 0, 10); - private static final Color aColor371 = new Color(224, 255, 224); + private static final Font fontDialog12 = new Font("Dialog", Font.PLAIN, 12); + private static final Font fontDialog12b = new Font("Dialog", Font.BOLD, 12); + private static final Font fontDialog10 = new Font("Dialog", Font.PLAIN, 10); + private static final Color currentTrackScoreHighlightColor = new Color(224, 255, 224); private static final Color aColor372 = new Color(128, 208, 128); private static final Color aColor373 = new Color(224, 0, 0); private static final Color aColor374 = new Color(0, 128, 0); @@ -32,18 +31,18 @@ class GamePlayerInfoPanel extends Panel implements ItemListener, MouseListener { private static int anInt376; private GameContainer gameContainer; - private int width; - private int height; - private boolean aBoolean380; + private final int width; + private final int height; + private boolean initialized; private int playerCount; private int trackCount; - private int anInt383; + private int maxStrokes; private int strokeTimeout; private int trackScoring; // either stroke scoring (0) or track scoring (1) - private int anInt386; - private int playerID; // id of whoever's turn it is + private int currentTrackIndex; + private int activePlayerId; // id of whoever's turn it is private int[] gameOutcome; - protected int currentPlayerId; // player id of this client + protected int playerId; // player id of this client protected String[] playerNames; protected String[] playerClans; private SynchronizedInteger[][] trackStrokes; @@ -65,9 +64,9 @@ protected GamePlayerInfoPanel(GameContainer gameContainer, int width, int height this.width = width; this.height = height; this.setSize(width, height); - this.setLayout((LayoutManager) null); + this.setLayout(null); this.currentTimeForShot = -1; - this.aBoolean380 = false; + this.initialized = false; this.anIntArray397 = null; this.anIntArrayArray398 = null; } @@ -77,10 +76,12 @@ public void addNotify() { this.repaint(); } + @Override public void paint(Graphics g) { this.update(g); } + @Override public void update(Graphics g) { if (this.image == null) { this.image = this.createImage(this.width, this.height); @@ -89,8 +90,7 @@ public void update(Graphics g) { this.graphics.setColor(GameApplet.colourGameBackground); this.graphics.fillRect(0, 0, this.width, this.height); - //System.out.println("yyeeep " + aBoolean380); - if (this.aBoolean380) { + if (this.initialized) { int[] var2 = null; if (this.anIntArrayArray398 != null && anInt376 > 0) { var2 = this.anIntArrayArray398[anInt376 - 1]; @@ -99,7 +99,7 @@ public void update(Graphics g) { this.graphics.drawString(this.gameContainer.textManager.getGame("GamePlayerInfo_CompareResultNick"), 20, 20); int var3 = 0; - for (int offset = 0; offset <= this.anInt386 && offset < this.trackCount; ++offset) { + for (int offset = 0; offset <= this.currentTrackIndex && offset < this.trackCount; ++offset) { this.graphics.drawString(var2[offset] > 0 ? String.valueOf(var2[offset]) : "?", 130 + offset * 20, 20); var3 += var2[offset]; } @@ -109,16 +109,16 @@ public void update(Graphics g) { } } - int[] scoreDifferences = this.getScoreDifferences(); int offsetY = (5 - this.playerCount) * 13; - if (this.anInt386 >= 0 && this.anInt386 < this.trackCount) { - this.graphics.setColor(aColor371); - this.graphics.fillRect(130 + this.anInt386 * 20 - 5 + 1, offsetY - 13, 19, this.playerCount * 15 + 2); - this.graphics.fillRect(130 + this.anInt386 * 20 - 5, offsetY - 13 + 1, 21, this.playerCount * 15 + 2 - 2); + // draw highlight around scores for current track + if (this.currentTrackIndex >= 0 && this.currentTrackIndex < this.trackCount) { + this.graphics.setColor(currentTrackScoreHighlightColor); + this.graphics.fillRect(130 + this.currentTrackIndex * 20 - 5 + 1, offsetY - 13, 19, this.playerCount * 15 + 2); + this.graphics.fillRect(130 + this.currentTrackIndex * 20 - 5, offsetY - 13 + 1, 21, this.playerCount * 15 + 2 - 2); } for (int player = 0; player < this.playerCount; ++player) { - Font font = this.currentPlayerId == player ? fontDialog12b : fontDialog12; + Font font = this.playerId == player ? fontDialog12b : fontDialog12; Color color = playerColors[player][this.anIntArray394[player] == 0 ? 0 : 1]; this.graphics.setFont(font); this.graphics.setColor(color); @@ -131,10 +131,10 @@ public void update(Graphics g) { } for (int track = 0; track < this.trackCount; ++track) { - if (track <= this.anInt386) { + if (track <= this.currentTrackIndex) { int var9 = this.trackStrokes[player][track].get(); if (var2 != null) { - if (track < this.anInt386 && var9 < var2[track]) { + if (track < this.currentTrackIndex && var9 < var2[track]) { this.graphics.setColor(aColor374); } @@ -158,6 +158,7 @@ public void update(Graphics g) { this.graphics.drawString("= " + this.playersId[player].get(), 130 + this.trackCount * 20 + 15, offsetY); String playerInfo; + int[] scoreDifferences = this.getScoreDifferences(); if (scoreDifferences != null && this.anIntArray394[player] == 0) { playerInfo = null; if (scoreDifferences[player] == 0) { @@ -174,16 +175,16 @@ public void update(Graphics g) { } playerInfo = null; - String var11 = null; + String timeRemaining = null; if (this.playerNames[player] == null) { playerInfo = "GamePlayerInfo_WaitingPlayer"; } - if (this.playerCount > 1 && this.playerID == player) { - if (this.playerID == this.currentPlayerId) { + if (this.playerCount > 1 && this.activePlayerId == player) { + if (this.activePlayerId == this.playerId) { playerInfo = "GamePlayerInfo_OwnTurn"; if (this.timerThread != null && this.currentTimeForShot > 0 && (this.strokeTimeout > 0 || this.strokeTimeout == 0 && this.currentTimeForShot <= 30)) { - var11 = " (" + this.gameContainer.textManager.getTime((long) this.currentTimeForShot) + ")"; + timeRemaining = " (" + this.gameContainer.textManager.getTime(this.currentTimeForShot) + ")"; } } else { playerInfo = "GamePlayerInfo_PlayerTurn"; @@ -199,7 +200,7 @@ public void update(Graphics g) { } if (playerInfo != null) { - this.graphics.drawString(this.gameContainer.textManager.getGame(playerInfo) + (var11 != null ? var11 : ""), 130 + this.trackCount * 20 + 15 + 40 + 40, offsetY); + this.graphics.drawString(this.gameContainer.textManager.getGame(playerInfo) + (timeRemaining != null ? timeRemaining : ""), 130 + this.trackCount * 20 + 15 + 40 + 40, offsetY); } playerInfo = null; @@ -263,10 +264,10 @@ public void mouseReleased(MouseEvent var1) { public void mouseClicked(MouseEvent var1) { } - protected void method355(int playerCount, int trackCount, int startidx, int strokeTimeout, int trackScoring) { + protected void init(int playerCount, int trackCount, int maxStrokes, int strokeTimeout, int trackScoring) { this.playerCount = playerCount; this.trackCount = trackCount; - this.anInt383 = startidx; + this.maxStrokes = maxStrokes; this.strokeTimeout = strokeTimeout; this.trackScoring = trackScoring; this.playerNames = new String[playerCount]; @@ -274,33 +275,32 @@ protected void method355(int playerCount, int trackCount, int startidx, int stro this.trackStrokes = new SynchronizedInteger[playerCount][trackCount]; this.playersId = new SynchronizedInteger[playerCount]; - int var7; - for (int var6 = 0; var6 < playerCount; ++var6) { - for (var7 = 0; var7 < trackCount; ++var7) { - this.trackStrokes[var6][var7] = new SynchronizedInteger(); + for (int player = 0; player < playerCount; ++player) { + for (int track = 0; track < trackCount; ++track) { + this.trackStrokes[player][track] = new SynchronizedInteger(); } - this.playersId[var6] = new SynchronizedInteger(); + this.playersId[player] = new SynchronizedInteger(); } this.anIntArray394 = new int[playerCount]; this.playerVotedToSkip = new boolean[playerCount]; this.playerReadyForNewGame = new boolean[playerCount]; - for (var7 = 0; var7 < playerCount; ++var7) { - this.playerNames[var7] = this.playerClans[var7] = null; - this.anIntArray394[var7] = 0; + for (int player = 0; player < playerCount; ++player) { + this.playerNames[player] = this.playerClans[player] = null; + this.anIntArray394[player] = 0; } this.anIntArray397 = new int[trackCount]; - for (int var8 = 0; var8 < trackCount; ++var8) { - this.anIntArray397[var8] = 1; + for (int track = 0; track < trackCount; ++track) { + this.anIntArray397[track] = 1; } - this.currentPlayerId = -1; + this.playerId = -1; this.method359(); - this.aBoolean380 = true; + this.initialized = true; this.repaint(); } @@ -313,7 +313,7 @@ protected void addPlayer(int playerID, String name, String clan, boolean isLocal this.playerNames[playerID] = name; this.playerClans[playerID] = clan; if (isLocalPlayer) { - this.currentPlayerId = playerID; + this.playerId = playerID; } this.repaint(); @@ -347,55 +347,56 @@ protected void method359() { this.playerVotedToSkip[player] = this.playerReadyForNewGame[player] = false; } - this.anInt386 = this.playerID = -1; + this.currentTrackIndex = -1; + this.activePlayerId = -1; this.gameOutcome = null; this.repaint(); } - protected int method360() { - for (int var1 = 0; var1 < this.playerCount; ++var1) { - this.playerVotedToSkip[var1] = false; + protected int startNextTrack() { + for (int player = 0; player < this.playerCount; ++player) { + this.playerVotedToSkip[player] = false; } - ++this.anInt386; + ++this.currentTrackIndex; this.repaint(); - return this.anIntArray397[this.anInt386]; + return this.anIntArray397[this.currentTrackIndex]; } protected boolean method361(int var1) { - if (this.anInt383 == 0) { + if (this.maxStrokes == 0) { return false; } else { - int var2 = this.trackStrokes[var1][this.anInt386].get(); + int var2 = this.trackStrokes[var1][this.currentTrackIndex].get(); if (this.trackScoring == 0) { - var2 /= this.anIntArray397[this.anInt386]; + var2 /= this.anIntArray397[this.currentTrackIndex]; } - return var2 >= this.anInt383; + return var2 >= this.maxStrokes; } } - protected boolean canShoot(int playerNumber) { - this.playerID = playerNumber; + protected boolean startTurn(int playerId) { + this.activePlayerId = playerId; int timeout = this.strokeTimeout > 0 ? this.strokeTimeout : 180; - if (this.playerCount > 1 && playerNumber == this.currentPlayerId && timeout > 0) { + if (this.playerCount > 1 && playerId == this.playerId) { this.stopTimer(); this.currentTimeForShot = timeout; this.timerThread = new GamePlayerInfoPanelTimerThread(this); } this.repaint(); - return playerNumber == this.currentPlayerId; + return playerId == this.playerId; } protected void method363(int playerId, boolean isStrokeEnd) { if (this.trackScoring == 0) { - int var3 = !isStrokeEnd ? this.anIntArray397[this.anInt386] : 1; - this.trackStrokes[playerId][this.anInt386].get_upd(var3); + int var3 = !isStrokeEnd ? this.anIntArray397[this.currentTrackIndex] : 1; + this.trackStrokes[playerId][this.currentTrackIndex].get_upd(var3); this.playersId[playerId].get_upd(var3); } else { - this.trackStrokes[playerId][this.anInt386].get_upd(); + this.trackStrokes[playerId][this.currentTrackIndex].get_upd(); } this.repaint(); @@ -419,22 +420,22 @@ protected void setScores(int trackId, int[] scores) { protected void setGameOutcome(int[] outcome) { this.gameOutcome = outcome; - this.anInt386 = this.trackCount; + this.currentTrackIndex = this.trackCount; if (outcome != null) { - if (outcome[this.currentPlayerId] == 1) { + if (outcome[this.playerId] == 1) { this.gameContainer.soundManager.playGameWinner(); - } else if (outcome[this.currentPlayerId] == 0) { + } else if (outcome[this.playerId] == 0) { this.gameContainer.soundManager.playGameDraw(); } else { this.gameContainer.soundManager.playGameLoser(); } } - this.playerID = -1; + this.activePlayerId = -1; this.repaint(); } protected void method366() { - this.voteSkip(this.currentPlayerId); + this.voteSkip(this.playerId); } protected void voteSkip(int playerId) { @@ -451,7 +452,7 @@ protected void voteSkipReset() { } protected void readyForNewGameLocal() { - this.readyForNewGame(this.currentPlayerId); + this.readyForNewGame(this.playerId); } protected void readyForNewGame(int var1) { @@ -459,11 +460,11 @@ protected void readyForNewGame(int var1) { this.repaint(); } - protected void method371(int var1) { - if (var1 == 2) { - for (int var2 = 0; var2 < this.playerCount && var1 == 2; ++var2) { - if (this.anIntArray394[var2] != 0) { - var1 = 3; + protected void method371(int state) { + if (state == 2) { + for (int player = 0; player < this.playerCount && state == 2; ++player) { + if (this.anIntArray394[player] != 0) { + state = 3; this.gameContainer.gamePanel.state = 3; } } @@ -473,14 +474,14 @@ protected void method371(int var1) { protected void method372() { if (this.trackScoring == 0) { - this.playersId[this.playerID].get_upd(-this.trackStrokes[this.playerID][this.anInt386].get()); + this.playersId[this.activePlayerId].get_upd(-this.trackStrokes[this.activePlayerId][this.currentTrackIndex].get()); } - this.trackStrokes[this.playerID][this.anInt386].set(-1); + this.trackStrokes[this.activePlayerId][this.currentTrackIndex].set(-1); this.repaint(); } - protected String[] getPlayerInfo(int playerId) { + protected String[] getPlayerName(int playerId) { return new String[]{this.playerNames[playerId], this.playerClans[playerId]}; } @@ -517,7 +518,7 @@ protected boolean method376() { } protected int method377() { - return this.playerCount > 1 ? -1 : this.trackStrokes[0][this.anInt386].get(); + return this.playerCount > 1 ? -1 : this.trackStrokes[0][this.currentTrackIndex].get(); } protected void stopTimer() {