home *** CD-ROM | disk | FTP | other *** search
- import java.io.DataInputStream;
- import java.io.FilterInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.net.MalformedURLException;
- import java.net.URL;
-
- public class DisplayScript {
- LineList list;
- LineList ptr;
- LineList start;
- // $FF: renamed from: ok int
- int field_0;
- String scrpt;
- URL documentURL;
- String colors = new String("wrgbyopcl");
-
- LineInfo getFunc(String var1) {
- LineInfo var4 = new LineInfo();
- var4.func = -1;
- var4.line = 1;
- var4.delay = 1000;
- var4.times = -1;
- var4.remaining = 0;
- var4.text = new String();
- var4.url = null;
- var4.target = null;
- var4.ret = null;
- var1 = var1.trim();
- String var3 = this.getParam(var1, "text");
- if (var3 != null) {
- var4.text = var3;
- }
-
- try {
- var3 = this.getParam(var1, "wait");
- if (var3 != null) {
- var4.delay = new Integer(var3);
- }
-
- if (var4.delay < 0) {
- var4.delay = 1000;
- }
- } catch (NumberFormatException var9) {
- System.out.println("Bad wait value '" + var3 + "'. Setting wait=1000.");
- var4.delay = 1000;
- }
-
- try {
- var3 = this.getParam(var1, "line");
- if (var3 != null) {
- var4.line = new Integer(var3);
- }
-
- if (var4.line <= 0) {
- var4.line = 1;
- }
- } catch (NumberFormatException var8) {
- System.out.println("Bad line number '" + var3 + "'. Setting line=1.");
- var4.line = 1;
- }
-
- try {
- var3 = this.getParam(var1, "times");
- if (var3 != null) {
- var4.times = new Integer(var3);
- var4.remaining = var4.times;
- }
- } catch (NumberFormatException var7) {
- System.out.println("Bad times value '" + var3 + "'. Setting times=-1.");
- var4.times = -1;
- var4.remaining = 0;
- }
-
- var3 = this.getParam(var1, "URL");
- if (var3 != null) {
- if (var3.indexOf(44) != -1) {
- var4.target = var3.substring(var3.indexOf(44) + 1);
- var3 = var3.substring(0, var3.indexOf(44));
- }
-
- try {
- var4.url = new URL(var3);
- } catch (MalformedURLException var6) {
- System.out.println("Bad URL '" + var3 + "'. Deleting URL value.");
- var4.url = null;
- }
- }
-
- int var2 = var1.indexOf(" ");
- if (var2 != -1) {
- var3 = var1.substring(0, var2);
- } else {
- var3 = var1;
- }
-
- if (var3.compareTo("Show") == 0) {
- var4.func = 0;
- } else if (var3.compareTo("Remove") == 0) {
- var4.func = 1;
- } else if (var3.compareTo("Sleep") == 0) {
- var4.func = 2;
- } else if (var3.compareTo("Do") == 0) {
- var4.func = 97;
- } else if (var3.compareTo("Repeat") == 0) {
- var4.func = 98;
- } else if (var3.compareTo("Reload") == 0) {
- var4.func = 99;
- } else {
- System.out.println("Bad function '" + var3 + "'. Setting function=Sleep.");
- var4.func = 2;
- }
-
- var4.store = var4.text;
- return var4;
- }
-
- LineInfo nextFunc() {
- LineInfo var1 = this.ptr.li;
- this.ptr = this.ptr.next;
- switch (var1.func) {
- case 97:
- var1 = this.nextFunc();
- break;
- case 98:
- if (var1.times >= 0) {
- var1.remaining += -1;
- if (var1.remaining <= 0) {
- var1.remaining = var1.times;
- var1 = this.nextFunc();
- } else {
- this.ptr = var1.ret;
- var1 = this.nextFunc();
- }
- } else {
- this.ptr = var1.ret;
- var1 = this.nextFunc();
- }
- break;
- case 99:
- if (this.initScript() == -1) {
- var1 = null;
- } else {
- var1 = this.nextFunc();
- }
- }
-
- return var1;
- }
-
- boolean isColor(char var1) {
- return this.colors.indexOf(var1) != -1;
- }
-
- String getParam(String var1, String var2) {
- int var3 = -1;
- int var4 = -1;
- boolean var6 = false;
-
- while(!var6) {
- var3 = var1.indexOf(var2, var3 + 1);
- if (var3 == -1) {
- var6 = true;
- } else if (var1.charAt(var3 - 1) == ' ') {
- var6 = true;
- }
- }
-
- var6 = false;
-
- while(!var6) {
- var4 = var1.indexOf("text", var4 + 1);
- if (var4 == -1) {
- var6 = true;
- } else if (var1.charAt(var4 - 1) == ' ') {
- var6 = true;
- }
- }
-
- if (var4 != -1 && var3 > var4) {
- return null;
- } else if (var3 == -1) {
- return null;
- } else {
- String var5 = var1.substring(var3);
- var3 = var5.indexOf("=");
- if (var3 == -1) {
- System.out.println("Error in '" + var2 + "' parameter in " + var1);
- return null;
- } else {
- ++var3;
- if (var2.compareTo("text") == 0) {
- var5 = var5.substring(var3);
- } else {
- var5 = var5.substring(var3);
- if (var5.indexOf(" ") != -1) {
- var5 = var5.substring(0, var5.indexOf(" "));
- }
- }
-
- var5.trim();
- return var5;
- }
- }
- }
-
- public DisplayScript(URL var1, String var2) {
- this.scrpt = var2;
- this.documentURL = var1;
- if (this.initScript() == -1) {
- this.field_0 = -1;
- } else {
- this.field_0 = 1;
- }
-
- }
-
- int initScript() {
- InputStream var1;
- DataInputStream var2;
- try {
- URL var3 = new URL(this.documentURL, this.scrpt);
- var1 = var3.openStream();
- var2 = new DataInputStream(var1);
- } catch (IOException var11) {
- return -1;
- }
-
- try {
- this.list = new LineList();
- this.start = this.list;
- this.ptr = this.list;
- int var5 = 0;
- int var6 = 0;
-
- String var4;
- while((var4 = var2.readLine()) != null) {
- var4 = var4.trim();
- if (!var4.startsWith("//") && var4.length() != 0) {
- ++var5;
- this.ptr.li = this.getFunc(var4);
- if (this.ptr.li.func == 97) {
- ++var6;
- }
-
- this.ptr.next = new LineList();
- this.ptr = this.ptr.next;
- }
- }
-
- LineList[] var8 = new LineList[var6];
- this.ptr = this.start;
- var6 = 0;
-
- for(int var7 = 0; var7 < var5; ++var7) {
- if (this.ptr.li.func == 97) {
- var8[var6] = new LineList();
- var8[var6] = this.ptr;
- ++var6;
- } else if (this.ptr.li.func == 98) {
- if (var6 > 0) {
- --var6;
- this.ptr.li.ret = var8[var6];
- } else {
- System.out.println("Repeat error in line : Repeat times=" + this.ptr.li.times);
- }
- }
-
- this.ptr = this.ptr.next;
- }
-
- this.ptr = this.start;
- var1.close();
- ((FilterInputStream)var2).close();
- return 1;
- } catch (IOException var10) {
- return -1;
- }
- }
-
- LineInfo parseLine(LineInfo var1, int var2) {
- String var3 = var1.store;
- String var7 = new String();
- if (var1.func == 0 || var1.func == 1) {
- char var5 = 'w';
- int var4 = 0;
-
- while(var4 < var3.length()) {
- if (var3.charAt(var4) == '\\') {
- String var6 = var3.substring(var4 + 1, var4 + 2);
- var3 = var3.substring(0, var4).concat(var3.substring(var4 + 2));
- if (this.isColor(var6.charAt(0))) {
- var5 = var6.charAt(0);
- } else if (var6.compareTo("\\") == 0) {
- var3 = var3.substring(0, var4).concat(var3.substring(var4 + 1));
- --var4;
- } else {
- System.out.println("Backslash (\\) error in text line: " + var1.store);
- }
- } else {
- ++var4;
- var7 = var7.concat((new Character(var5)).toString());
- }
- }
- }
-
- var1.text = var3;
- var1.color = new int[var2 + 1];
-
- for(int var8 = 0; var8 < var2; ++var8) {
- if (var8 >= var7.length()) {
- var1.color[var8] = 0;
- } else {
- var1.color[var8] = this.colors.indexOf(var7.charAt(var8));
- }
- }
-
- return var1;
- }
- }
-