home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 October / PCO1097.ISO / FilesBBS / FREI / ANI10.EXE / runtime / ANIScript.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-08-19  |  9.1 KB  |  652 lines

  1. import java.awt.Color;
  2. import java.awt.Font;
  3. import java.awt.FontMetrics;
  4. import java.awt.Graphics;
  5. import java.awt.Image;
  6. import java.io.DataInputStream;
  7. import java.io.FilterInputStream;
  8. import java.io.IOException;
  9. import java.io.InputStream;
  10. import java.net.MalformedURLException;
  11. import java.net.URL;
  12. import java.util.Vector;
  13.  
  14. public final class ANIScript {
  15.    // $FF: renamed from: ├Å int
  16.    static final int field_0 = 1;
  17.    // $FF: renamed from: ├É int
  18.    static final int field_1 = 2;
  19.    // $FF: renamed from: ├æ int
  20.    static final int field_2 = 3;
  21.    // $FF: renamed from: ├Æ java.lang.String
  22.    private String field_3 = new String(",AGENTITEM,01,STARTANIMATION,02,ENDANIMATION,03,");
  23.    // $FF: renamed from: ├ô int
  24.    static final int field_4 = 0;
  25.    // $FF: renamed from: ├ö int
  26.    static final int field_5 = 1;
  27.    // $FF: renamed from: ├ò int
  28.    static final int field_6 = 2;
  29.    // $FF: renamed from: ├û int
  30.    static final int field_7 = 3;
  31.    // $FF: renamed from: ├ÿ int
  32.    static final int field_8 = 4;
  33.    // $FF: renamed from: ├Ö int
  34.    static final int field_9 = 5;
  35.    // $FF: renamed from: ├Ü int
  36.    static final int field_10 = 6;
  37.    // $FF: renamed from: ├¢ int
  38.    static final int field_11 = 7;
  39.    // $FF: renamed from: ├£ java.lang.String
  40.    private String field_12 = new String(",SHOWTIME,00,SHOWSEQ,01,SCROLL_RTL,02,SCROLL_PTL,03,SCROLL_LTR,04,SCROLL_LTP,05,SCROLL_RTP,06,SCROLL_PTR,07,");
  41.    // $FF: renamed from: ok int
  42.    public int field_13;
  43.    // $FF: renamed from: ├ç ANI
  44.    private ANI field_14;
  45.    // $FF: renamed from: ├¥ java.lang.String
  46.    private String field_15;
  47.    // $FF: renamed from: ├₧ java.net.URL
  48.    private URL field_16;
  49.    // $FF: renamed from: ├ƒ java.lang.String
  50.    private String field_17;
  51.    // $FF: renamed from: ├á java.lang.String
  52.    private String field_18;
  53.    public Vector AgentItems;
  54.    // $FF: renamed from: ├í int
  55.    private int field_19;
  56.    // $FF: renamed from: ├ó ANIAgentItem
  57.    private ANIAgentItem field_20;
  58.    // $FF: renamed from: ├ú int
  59.    private int field_21;
  60.    // $FF: renamed from: ├ñ java.awt.Font
  61.    private Font field_22;
  62.    // $FF: renamed from: ├Ñ java.awt.Color
  63.    private Color field_23;
  64.    // $FF: renamed from: ├ª java.awt.FontMetrics
  65.    private FontMetrics field_24;
  66.    // $FF: renamed from: ├º boolean
  67.    private boolean field_25;
  68.    // $FF: renamed from: ├¿ boolean
  69.    private boolean field_26;
  70.  
  71.    // $FF: renamed from: ├Å (java.lang.String, java.lang.String) java.awt.Color
  72.    static final Color method_0(String var0, String var1) {
  73.       int var4 = Integer.parseInt(var1.substring(0, var1.indexOf(",")));
  74.       String var3 = var1.substring(var1.indexOf(",") + 1);
  75.       int var5 = Integer.parseInt(var3.substring(0, var3.indexOf(",")));
  76.       var3 = var3.substring(var3.indexOf(",") + 1);
  77.       int var6 = Integer.parseInt(var3);
  78.       Color var2 = new Color(var4, var5, var6);
  79.       return var2;
  80.    }
  81.  
  82.    public ANIScript(ANI var1, URL var2, String var3, int var4) {
  83.       this.field_14 = var1;
  84.       this.field_15 = var3;
  85.       this.field_16 = var2;
  86.       this.field_19 = var4;
  87.       if (this.field_19 == 1) {
  88.          this.AgentItems = new Vector();
  89.       }
  90.  
  91.       this.field_13 = this.method_7();
  92.    }
  93.  
  94.    // $FF: renamed from: ├É (java.lang.String) int
  95.    private final int method_1(String var1) {
  96.       String var2 = var1.toUpperCase();
  97.       int var3 = -1;
  98.       String var4 = "," + var2 + ",";
  99.       int var5 = this.field_12.indexOf(var4);
  100.       if (var5 != -1) {
  101.          var5 += var4.length();
  102.          var3 = Integer.parseInt(this.field_12.substring(var5, var5 + 2));
  103.       }
  104.  
  105.       return var3;
  106.    }
  107.  
  108.    // $FF: renamed from: ├æ (ANIAgentItem) int
  109.    private final int method_2(ANIAgentItem var1) {
  110.       int var2 = 0;
  111.       int var3 = this.field_21;
  112.       Font var4 = this.field_22;
  113.  
  114.       for(char var5 = this.method_8(var1); var5 != 0 && var5 != ' ' && var5 != '\r'; var5 = this.method_8(var1)) {
  115.          var2 += this.field_24.charWidth(var5);
  116.       }
  117.  
  118.       this.field_21 = var3;
  119.       this.field_22 = var4;
  120.       this.field_24 = this.field_14.getFontMetrics(this.field_22);
  121.       return var2;
  122.    }
  123.  
  124.    // $FF: renamed from: ├Æ (java.lang.String, int) boolean
  125.    private final boolean method_3(String var1, int var2) {
  126.       boolean var3 = true;
  127.       int var4 = 0;
  128.       String var5 = var1;
  129.       String var6 = null;
  130.       String var7 = null;
  131.       ANIAgentItem var8 = new ANIAgentItem();
  132.       var8.id = this.field_14.iID;
  133.       var8.xHelp = 100;
  134.       var8.yHelp = 5;
  135.       var8.wHelp = 100;
  136.       var8.hHelp = 40;
  137.       var8.fHelpToRight = true;
  138.       var8.aniIndex = -1;
  139.       var8.aniFrames = 1;
  140.       var8.aniSequences = 1;
  141.       var8.banIndex = -1;
  142.       var8.banSequences = 1;
  143.       var8.delay = 50;
  144.       var8.xInc = 1;
  145.       var8.holdTime = 10;
  146.       var8.launchRepeat = -1;
  147.       var8.launchIntervalMin = 60;
  148.       var8.launchIntervalMax = 60;
  149.       if (var2 == 1) {
  150.          var8.preAni = new Vector();
  151.          var8.postAni = new Vector();
  152.          var8.banFrames = 1;
  153.          var8.scriptLines = var1;
  154.       } else {
  155.          ANIAgentItem var10000 = this.field_20;
  156.          String var10001 = var10000.scriptLines;
  157.          var10000.scriptLines = var10001 + var1;
  158.       }
  159.  
  160.       ANI var15 = this.field_14;
  161.       var15.iID += 2;
  162.  
  163.       while(var4 != -1) {
  164.          var4 = this.method_6(var5);
  165.          if (var4 != -1) {
  166.             var5 = var5.substring(var4 + 1).trim();
  167.             if (this.field_17.equals("METHOD")) {
  168.                var8.method = this.method_1(this.field_18);
  169.             } else if (this.field_17.equals("DELAY")) {
  170.                var8.delay = Integer.parseInt(this.field_18);
  171.             } else if (this.field_17.equals("XINC")) {
  172.                var8.xInc = Integer.parseInt(this.field_18);
  173.             } else if (this.field_17.equals("HOLDTIME")) {
  174.                var8.holdTime = Integer.parseInt(this.field_18);
  175.             } else if (this.field_17.equals("ENDDELAY")) {
  176.                var8.endDelay = Integer.parseInt(this.field_18);
  177.             } else if (this.field_17.equals("ANIIMAGE")) {
  178.                var8.aniImage = getURL(this.field_17, this.field_18, this.field_16);
  179.             } else if (this.field_17.equals("ANIIMAGEFRAMES")) {
  180.                var8.aniFrames = Integer.parseInt(this.field_18);
  181.             } else if (this.field_17.equals("ANIIMAGEINC")) {
  182.                var6 = this.field_18;
  183.             } else if (this.field_17.equals("ANIIMAGESEQUENCES")) {
  184.                var8.aniSequences = Integer.parseInt(this.field_18);
  185.             } else if (this.field_17.equals("ANIIMAGEXOFFSET")) {
  186.                var8.xpAni = Integer.parseInt(this.field_18);
  187.             } else if (this.field_17.equals("ANIIMAGEYOFFSET")) {
  188.                var8.ypAni = Integer.parseInt(this.field_18);
  189.             } else if (var2 == 1) {
  190.                if (this.field_17.equals("HELP")) {
  191.                   var8.helpText = this.field_18;
  192.                } else if (this.field_17.equals("HELPXOFFSET")) {
  193.                   var8.xHelp = Integer.parseInt(this.field_18);
  194.                } else if (this.field_17.equals("HELPYOFFSET")) {
  195.                   var8.yHelp = Integer.parseInt(this.field_18);
  196.                } else if (this.field_17.equals("HELPWIDTH")) {
  197.                   var8.wHelp = Integer.parseInt(this.field_18);
  198.                } else if (this.field_17.equals("HELPHEIGHT")) {
  199.                   var8.hHelp = Integer.parseInt(this.field_18);
  200.                } else if (this.field_17.equals("HELPDIRECTION")) {
  201.                   if (this.field_18.toUpperCase().equals("LEFT")) {
  202.                      var8.fHelpToRight = false;
  203.                   }
  204.                } else if (this.field_17.equals("URL")) {
  205.                   var8.url = getURL(this.field_17, this.field_18, this.field_16);
  206.                } else if (this.field_17.equals("TARGET")) {
  207.                   var8.target = this.field_18;
  208.                } else if (this.field_17.equals("BANIMAGE")) {
  209.                   var8.banImage = getURL(this.field_17, this.field_18, this.field_16);
  210.                } else if (this.field_17.equals("BANIMAGEFRAMES")) {
  211.                   var8.banFrames = Integer.parseInt(this.field_18);
  212.                } else if (this.field_17.equals("BANIMAGEINC")) {
  213.                   var7 = this.field_18;
  214.                } else if (this.field_17.equals("BANIMAGESEQUENCES")) {
  215.                   var8.banSequences = Integer.parseInt(this.field_18);
  216.                } else if (this.field_17.equals("BANIMAGEXOFFSET")) {
  217.                   var8.xpBan = Integer.parseInt(this.field_18);
  218.                } else if (this.field_17.equals("BANIMAGEYOFFSET")) {
  219.                   var8.ypBan = Integer.parseInt(this.field_18);
  220.                } else if (this.field_17.equals("LAUNCHINTERVAL")) {
  221.                   int[] var9 = this.method_11(this.field_17, this.field_18);
  222.                   var8.launchIntervalMin = var9[0];
  223.                   var8.launchIntervalMax = var9[1];
  224.                } else if (this.field_17.equals("LAUNCHFIRST")) {
  225.                   var8.launchFirst = Integer.parseInt(this.field_18);
  226.                } else if (this.field_17.equals("LAUNCHREPEAT")) {
  227.                   var8.launchRepeat = Integer.parseInt(this.field_18);
  228.                } else if (this.field_17.equals("SOUND")) {
  229.                   var8.sound = this.field_18;
  230.                } else if (this.field_17.equals("SOUNDDELAY")) {
  231.                   var8.soundDelay = Integer.parseInt(this.field_18);
  232.                }
  233.             }
  234.          }
  235.       }
  236.  
  237.       var8.aniIncList = new int[var8.aniFrames];
  238.       int var12 = var8.aniFrames;
  239.  
  240.       while(true) {
  241.          --var12;
  242.          if (var12 < 0) {
  243.             if (var6 != null) {
  244.                var8.aniIncList = this.method_9(var6, var8.aniFrames);
  245.             }
  246.  
  247.             var8.banIncList = new int[var8.banFrames];
  248.             var12 = var8.banFrames;
  249.  
  250.             while(true) {
  251.                --var12;
  252.                if (var12 < 0) {
  253.                   if (var7 != null) {
  254.                      var8.banIncList = this.method_9(var7, var8.banFrames);
  255.                   }
  256.  
  257.                   if (var3) {
  258.                      if (var8.method != 0) {
  259.                         var8.holdTime = 1000;
  260.                      }
  261.  
  262.                      switch (var2) {
  263.                         case 1:
  264.                            this.AgentItems.addElement(var8);
  265.                            if (var8.helpText != null) {
  266.                               Image var14 = this.field_14.ANICreateImage(var8.wHelp, var8.hHelp);
  267.                               Graphics var10 = var14.getGraphics();
  268.                               var10.setColor(this.field_14.agentBgColor);
  269.                               var10.fillRect(0, 0, var8.wHelp, var8.hHelp);
  270.                               var10.setColor(this.field_14.helpBgColor);
  271.                               var10.fillRoundRect(0, 0, var8.wHelp, var8.hHelp, 20, 20);
  272.                               var10.setColor(this.field_14.helpBorderColor);
  273.                               var10.drawRoundRect(0, 0, var8.wHelp - 1, var8.hHelp - 1, 20, 20);
  274.                               this.method_12(var8, var10);
  275.                               ANIImageTransition var11 = new ANIImageTransition(var14, this.field_14);
  276.                               var11.makeTransparent(this.field_14.agentBgColor);
  277.                               var8.helpTextImg = var11.createImage();
  278.                            }
  279.  
  280.                            this.field_20 = var8;
  281.                            break;
  282.                         case 2:
  283.                            this.field_20.preAni.addElement(var8);
  284.                            break;
  285.                         case 3:
  286.                            this.field_20.postAni.addElement(var8);
  287.                      }
  288.                   }
  289.  
  290.                   return var3;
  291.                }
  292.  
  293.                var8.banIncList[var12] = 1;
  294.             }
  295.          }
  296.  
  297.          var8.aniIncList[var12] = 1;
  298.       }
  299.    }
  300.  
  301.    // $FF: renamed from: ├ô (java.lang.String, int) int
  302.    private final int method_4(String var1, int var2) {
  303.       boolean var3 = false;
  304.       int var4 = var2;
  305.  
  306.       while(!var3) {
  307.          var4 = var1.indexOf("\"", var4 + 1);
  308.          if (var4 > 0) {
  309.             if (var1.charAt(var4 - 1) != '\\') {
  310.                var3 = true;
  311.             }
  312.          } else {
  313.             if (var4 == -1) {
  314.                return -1;
  315.             }
  316.  
  317.             var3 = true;
  318.          }
  319.       }
  320.  
  321.       return var4;
  322.    }
  323.  
  324.    // $FF: renamed from: ├ö (java.lang.String) int
  325.    private final int method_5(String var1) {
  326.       int var4 = -1;
  327.       int var3 = var1.indexOf(" ");
  328.       String var2;
  329.       if (var3 != -1) {
  330.          var2 = var1.substring(0, var3);
  331.       } else {
  332.          var2 = var1;
  333.       }
  334.  
  335.       var2 = var2.toUpperCase();
  336.       String var5 = "," + var2 + ",";
  337.       int var6 = this.field_3.indexOf(var5);
  338.       if (var6 != -1) {
  339.          var6 += var5.length();
  340.          var4 = Integer.parseInt(this.field_3.substring(var6, var6 + 2));
  341.       }
  342.  
  343.       return var4;
  344.    }
  345.  
  346.    // $FF: renamed from: ├ò (java.lang.String) int
  347.    private final int method_6(String var1) {
  348.       this.field_17 = null;
  349.       this.field_18 = null;
  350.       var1 = var1.trim();
  351.       int var2 = var1.indexOf("=");
  352.       if (var2 == -1) {
  353.          return -1;
  354.       } else {
  355.          this.field_17 = var1.substring(0, var2).toUpperCase();
  356.          String var3 = var1.substring(var2 + 1);
  357.          int var4 = this.method_4(var3, -1);
  358.          int var5 = var4;
  359.          if (var4 != -1) {
  360.             var5 = this.method_4(var3, var4);
  361.          }
  362.  
  363.          this.field_18 = var3.substring(var4 + 1, var5 - var4);
  364.          int var6 = 0;
  365.  
  366.          while(var6 != -1) {
  367.             var6 = this.field_18.indexOf("\\\"");
  368.             if (var6 != -1) {
  369.                this.field_18 = this.field_18.substring(0, var6) + this.field_18.substring(var6 + 1);
  370.             }
  371.          }
  372.  
  373.          return var2 + var5 + 1;
  374.       }
  375.    }
  376.  
  377.    public static final URL getURL(String var0, String var1, URL var2) {
  378.       URL var3;
  379.       try {
  380.          var3 = new URL(var1);
  381.       } catch (MalformedURLException var5) {
  382.          var3 = null;
  383.       }
  384.  
  385.       if (var3 == null) {
  386.          try {
  387.             var3 = new URL(var2, var1);
  388.          } catch (MalformedURLException var4) {
  389.          }
  390.       }
  391.  
  392.       return var3;
  393.    }
  394.  
  395.    // $FF: renamed from: ├û () int
  396.    private final int method_7() {
  397.       Object var4 = null;
  398.       byte var8 = 1;
  399.  
  400.       InputStream var1;
  401.       DataInputStream var2;
  402.       try {
  403.          URL var12 = new URL(this.field_16, this.field_15);
  404.          var1 = var12.openStream();
  405.          var2 = new DataInputStream(var1);
  406.       } catch (IOException var10) {
  407.          return -1;
  408.       }
  409.  
  410.       Vector var3 = new Vector();
  411.  
  412.       try {
  413.          String var5;
  414.          while((var5 = var2.readLine()) != null) {
  415.             var5 = var5.trim();
  416.             if (!var5.startsWith("//") && var5.length() != 0) {
  417.                while(var5.endsWith("\\")) {
  418.                   var5 = var5.substring(0, var5.length() - 1);
  419.                   String var6 = var2.readLine();
  420.                   if (var6 == null) {
  421.                      var8 = -1;
  422.                      break;
  423.                   }
  424.  
  425.                   var6 = var6.trim();
  426.                   if (!var6.startsWith("//") && var6.length() != 0) {
  427.                      var5 = var5 + var6;
  428.                   }
  429.                }
  430.  
  431.                var3.addElement(var5);
  432.             }
  433.          }
  434.  
  435.          var1.close();
  436.          ((FilterInputStream)var2).close();
  437.          if (var8 == -1) {
  438.             return var8;
  439.          }
  440.       } catch (IOException var11) {
  441.          return -1;
  442.       }
  443.  
  444.       for(int var7 = 0; var7 < var3.size(); ++var7) {
  445.          String var14 = (String)var3.elementAt(var7);
  446.          this.method_10(var14);
  447.       }
  448.  
  449.       return var8;
  450.    }
  451.  
  452.    // $FF: renamed from: ├ÿ (ANIAgentItem) char
  453.    private final char method_8(ANIAgentItem var1) {
  454.       char var2 = 0;
  455.       boolean var3 = true;
  456.       String var5 = var1.helpText;
  457.       int var6 = var5.length();
  458.  
  459.       while(var3) {
  460.          var3 = false;
  461.          if (this.field_21 < var6) {
  462.             var2 = var5.charAt(this.field_21);
  463.             switch (var2) {
  464.                case '&':
  465.                   String var11 = var5.substring(this.field_21, this.field_21 + 4).toUpperCase();
  466.                   if (var11.equals(">")) {
  467.                      var2 = '>';
  468.                      this.field_21 += 3;
  469.                   } else if (var11.equals("<")) {
  470.                      var2 = '<';
  471.                      this.field_21 += 3;
  472.                   }
  473.  
  474.                   ++this.field_21;
  475.                   break;
  476.                case '<':
  477.                   if (this.field_21 + 2 <= var6) {
  478.                      String var4 = var5.substring(this.field_21, this.field_21 + 3).toUpperCase();
  479.                      if (var4.equals("<B>")) {
  480.                         this.field_26 = true;
  481.                         this.field_21 += 2;
  482.                         var3 = true;
  483.                      } else if (var4.equals("<I>")) {
  484.                         this.field_25 = true;
  485.                         this.field_21 += 2;
  486.                         var3 = true;
  487.                      }
  488.                   }
  489.  
  490.                   if (this.field_21 + 3 <= var6) {
  491.                      String var9 = var5.substring(this.field_21, this.field_21 + 4).toUpperCase();
  492.                      if (var9.equals("</B>")) {
  493.                         this.field_26 = false;
  494.                         this.field_21 += 3;
  495.                         var3 = true;
  496.                      } else if (var9.equals("</I>")) {
  497.                         this.field_25 = false;
  498.                         this.field_21 += 3;
  499.                         var3 = true;
  500.                      } else if (var9.equals("<BR>")) {
  501.                         var2 = '\r';
  502.                         this.field_21 += 3;
  503.                      }
  504.                   }
  505.  
  506.                   if (this.field_21 + 7 <= var6) {
  507.                      String var10 = var5.substring(this.field_21, this.field_21 + 7).toUpperCase();
  508.                      if (var10.compareTo("<COLOR ") == 0) {
  509.                         int var7 = var5.indexOf(">", this.field_21 + 1);
  510.                         String var8 = var5.substring(this.field_21 + 7, var7).trim();
  511.                         this.method_6(var8);
  512.                         if (this.field_17.equals("VALUE")) {
  513.                            this.field_23 = method_0("<color>", this.field_18);
  514.                         }
  515.  
  516.                         this.field_21 = var7;
  517.                         var3 = true;
  518.                      }
  519.                   }
  520.  
  521.                   ++this.field_21;
  522.                   if (var3) {
  523.                      int var12 = 0;
  524.                      if (this.field_26) {
  525.                         var12 |= 1;
  526.                      }
  527.  
  528.                      if (this.field_25) {
  529.                         var12 |= 2;
  530.                      }
  531.  
  532.                      this.field_22 = new Font(this.field_22.getName(), var12, this.field_22.getSize());
  533.                      this.field_24 = this.field_14.getFontMetrics(this.field_22);
  534.                   }
  535.                   break;
  536.                default:
  537.                   ++this.field_21;
  538.             }
  539.          } else {
  540.             var2 = 0;
  541.          }
  542.       }
  543.  
  544.       return var2;
  545.    }
  546.  
  547.    // $FF: renamed from: ├Ö (java.lang.String, int) int[]
  548.    private final int[] method_9(String var1, int var2) {
  549.       String var3 = var1;
  550.       int var4 = 0;
  551.  
  552.       int var5;
  553.       int[] var6;
  554.       for(var6 = new int[var2]; (var5 = var3.indexOf(",")) != -1 && var4 < var2; var3 = var3.substring(var5 + 1)) {
  555.          var6[var4++] = Integer.parseInt(var3.substring(0, var5));
  556.       }
  557.  
  558.       if (var4 < var2) {
  559.          var6[var4] = Integer.parseInt(var3);
  560.       }
  561.  
  562.       return var6;
  563.    }
  564.  
  565.    // $FF: renamed from: ├Ü (java.lang.String) boolean
  566.    private final boolean method_10(String var1) {
  567.       boolean var2 = false;
  568.       String var5 = null;
  569.       int var3 = this.method_5(var1);
  570.       int var4 = var1.indexOf(" ");
  571.       if (var4 != -1) {
  572.          var5 = var1.substring(var4 + 1).trim();
  573.       }
  574.  
  575.       switch (var3) {
  576.          case 1:
  577.          case 2:
  578.          case 3:
  579.             var2 = this.method_3(var5, var3);
  580.          default:
  581.             return var2;
  582.       }
  583.    }
  584.  
  585.    // $FF: renamed from: ├¢ (java.lang.String, java.lang.String) int[]
  586.    private final int[] method_11(String var1, String var2) {
  587.       int[] var3 = new int[2];
  588.       if (var2.indexOf(",") != -1) {
  589.          var3[0] = Integer.parseInt(var2.substring(0, var2.indexOf(",")));
  590.          var3[1] = Integer.parseInt(var2.substring(var2.indexOf(",") + 1));
  591.       } else {
  592.          var3[0] = Integer.parseInt(var2);
  593.          var3[1] = var3[0];
  594.       }
  595.  
  596.       return var3;
  597.    }
  598.  
  599.    // $FF: renamed from: ├£ (ANIAgentItem, java.awt.Graphics) void
  600.    private final void method_12(ANIAgentItem var1, Graphics var2) {
  601.       boolean var3 = false;
  602.       int var4 = var1.wHelp - 10;
  603.       byte var10 = 5;
  604.       this.field_23 = this.field_14.helpTextColor;
  605.       this.field_22 = this.field_14.helpTextFont;
  606.       this.field_24 = this.field_14.getFontMetrics(this.field_22);
  607.       this.field_21 = 0;
  608.       this.field_26 = false;
  609.       this.field_25 = false;
  610.       int var8 = var10;
  611.  
  612.       int var6;
  613.       for(int var9 = this.field_24.getHeight() - this.field_24.getLeading() - this.field_24.getMaxDescent() + 2; !var3; this.field_21 = var6) {
  614.          int var5 = this.method_2(var1);
  615.          if (var8 + var5 > var4 && var5 < var4) {
  616.             var8 = var10;
  617.             var9 += this.field_24.getHeight();
  618.          }
  619.  
  620.          char var7;
  621.          for(var7 = this.method_8(var1); var7 != 0 && var7 != ' ' && var7 != '\r'; var7 = this.method_8(var1)) {
  622.             var2.setFont(this.field_22);
  623.             var2.setColor(this.field_23);
  624.             var2.drawString(String.valueOf(var7), var8, var9);
  625.             var8 += this.field_24.charWidth(var7);
  626.             if (var8 > var4) {
  627.                var8 = var10;
  628.                var9 += this.field_24.getHeight();
  629.             }
  630.          }
  631.  
  632.          var6 = this.field_21;
  633.          if (var7 == 0) {
  634.             var3 = true;
  635.          } else {
  636.             while(var7 == ' ' || var7 == '\r') {
  637.                if (var7 == '\r') {
  638.                   var8 = var10;
  639.                   var9 += this.field_24.getHeight();
  640.                } else if (var7 == ' ') {
  641.                   var8 += this.field_24.charWidth(var7);
  642.                }
  643.  
  644.                var6 = this.field_21;
  645.                var7 = this.method_8(var1);
  646.             }
  647.          }
  648.       }
  649.  
  650.    }
  651. }
  652.