⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 y.java

📁 j2me 武林传之刀剑江湖录[前篇]反编译源代码
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space 

import java.io.PrintStream;
import java.util.Vector;
import javax.microedition.lcdui.Graphics;

public abstract class y
{

	public static z e[];
	public short f[];
	public short g[];
	public short h[];
	public short i;
	public short j;
	public int k;
	public int l;
	public int m;
	public short n;
	public short o;
	public short p;
	public short q[];
	public short r;
	public short s;
	public short t;
	public int u;
	public static byte v;
	public short w;
	private int V;
	public byte x;
	public byte y;
	public byte z;
	public byte A;
	public byte B;
	public short C[];
	public Vector D;
	public int E;
	public byte F[][];
	public byte G[][];
	public short H;
	public short I;
	public byte J[];
	public boolean K;
	public Vector L;
	public static final byte M[] = {
		2, 3, 4, 7, 8, 9, 14
	};
	public int N;
	public int O;
	public static final int P[] = {
		0xffffff, 65331, 52479, 0xcc9900, 0xffcc00, 0xfafd02
	};
	public boolean Q[];
	public int R[];
	public short S[];
	public static final byte T[] = {
		63, 62, 64
	};
	public short U[][];

	public y()
	{
		m = -1;
		q = new short[2];
		C = new short[4];
		D = new Vector();
		E = -1;
		I = 0;
		L = new Vector();
		O = 0;
		Q = new boolean[3];
		R = new int[3];
		S = new short[3];
		U = new short[3][2];
	}

	public final void a(short aword0[])
	{
		f = aword0;
		f[3] = 0;
		k.a(this);
		i = f[8];
		j = f[9];
		a();
	}

	public final void h()
	{
		L.removeAllElements();
	}

	public abstract byte[][] g();

	public final void a(int i1)
	{
		f[2] |= i1;
	}

	public final void b(int i1)
	{
		f[2] &= ~i1;
	}

	public final boolean c(int i1)
	{
		return (f[2] & i1) != 0;
	}

	public final short[] i()
	{
		C[0] = f[10];
		C[1] = f[11];
		C[2] = f[12];
		C[3] = f[13];
		return C;
	}

	public final boolean j()
	{
		if (f[5] > -1 && !K)
		{
			k.c(this);
			if (K)
				return true;
		}
		return false;
	}

	public final void a(short word0)
	{
		f[4] = word0;
	}

	public boolean b()
	{
		G();
		if (Q[2] && f[3] != 0 && f[3] != 6 && f[3] != 8)
		{
			if ((this instanceof e) || (this instanceof l) || (this instanceof m))
				return true;
			if ((this instanceof aa) && f[3] != 12 || f[3] != 11 || f[3] != 10)
				return true;
			if ((this instanceof q) && f[3] != 14 || f[3] != 11 || f[3] != 10)
				return true;
			if ((this instanceof s) && f[3] != 13 || f[3] != 14 || f[3] != 10)
				return true;
		}
		if (B > 0)
			B--;
		if (A > 0)
			A--;
		if (j())
			return true;
		switch (f[3])
		{
		case 0: // '\0'
			d();
			return true;

		case 1: // '\001'
			e();
			return true;

		case 2: // '\002'
			k();
			return true;

		case 3: // '\003'
			return true;

		case 4: // '\004'
			l();
			return true;

		case 5: // '\005'
			m();
			return true;

		case 6: // '\006'
			n();
			return true;

		case 7: // '\007'
			o();
			return true;

		case 8: // '\b'
			p();
			return true;
		}
		return false;
	}

	public void d()
	{
	}

	public void k()
	{
	}

	public void e()
	{
	}

	public void l()
	{
		F();
	}

	public void m()
	{
	}

	public void n()
	{
	}

	public void o()
	{
		if (s())
			b((short)0);
	}

	public void p()
	{
		if (s())
		{
			b(128);
			a(256);
			b(8);
			b(16);
		}
	}

	public final void q()
	{
		byte abyte0[];
		int j1 = (abyte0 = k.aF[k.ay][N]).length / 9;
		int i1;
		do
		{
			i1 = O * 9;
			byte byte0 = abyte0[i1 + 8];
			if (k.az == k.a(abyte0[i1 + 0], abyte0[i1 + 0 + 1]))
			{
				if (k.aA % 3 == 0)
				{
					if ((byte0 & 2) == 2 || (byte0 & 4) == 4)
					{
						b(16);
						b(8);
					} else
					{
						a(16);
					}
					if ((byte0 & 1) == 1)
						c((short)1);
					else
						c((short)3);
					if ((byte0 & 8) == 8)
					{
						N = -1;
						return;
					}
					int k1 = abyte0[i1 + 2] & 0xff;
					f[8] = k.a(abyte0[i1 + 4], abyte0[i1 + 4 + 1]);
					f[9] = k.a(abyte0[i1 + 6], abyte0[i1 + 6 + 1]);
					byte byte1;
					if ((byte1 = abyte0[i1 + 3]) == 99)
						k.k();
					else
					if (byte1 == 100)
						k.m();
					boolean flag = false;
					d((short)k1);
				}
				break;
			}
			if (k.az > k.a(abyte0[(abyte0.length - 9) + 0], abyte0[(abyte0.length - 9) + 0 + 1]) || k.az > k.a(abyte0[i1 + 0], abyte0[i1 + 0 + 1]) && k.az < k.a(abyte0[i1 + 9 + 0], abyte0[i1 + 9 + 0 + 1]))
				break;
			if (k.az < k.a(abyte0[i1 + 0], abyte0[i1 + 0 + 1]))
			{
				O--;
				if (O < 0)
				{
					b(16);
					O = 0;
					return;
				}
			} else
			if (k.az >= k.a(abyte0[i1 + 9 + 0], abyte0[i1 + 9 + 0 + 1]))
				O++;
		} while (true);
		if (O < j1 - 1)
		{
			short word0 = k.a(abyte0[i1 + 4], abyte0[i1 + 4 + 1]);
			short word1 = k.a(abyte0[i1 + 6], abyte0[i1 + 6 + 1]);
			short word2 = k.a(abyte0[i1 + 4 + 9], abyte0[i1 + 4 + 9 + 1]);
			short word3 = k.a(abyte0[i1 + 6 + 9], abyte0[i1 + 6 + 9 + 1]);
			int l1 = (k.a(abyte0[i1 + 9 + 0], abyte0[i1 + 9 + 0 + 1]) - k.a(abyte0[i1 + 0], abyte0[i1 + 0 + 1])) * 3;
			int i2 = k.aA - k.a(abyte0[i1 + 0], abyte0[i1 + 0 + 1]) * 3;
			f[8] = (short)(word0 + ((word2 - word0) * i2) / l1);
			f[9] = (short)(word1 + ((word3 - word1) * i2) / l1);
		}
	}

	public void a(Graphics g1, int i1, int j1)
	{
		z z1 = null;
		short word0;
		if ((word0 = f[6]) < 0)
			return;
		if ((z1 = e[word0]) == null)
		{
			System.out.println(">>paint(): Cant paint! maybe you don't set \"Pack Anim?\" to \"No\"!! Or you dont select this animation into this scene! Or has error in load animation\n\tactorID=" + f[1] + "\n\tclassID=" + f[0] + "\n\tanimationID=" + word0);
			return;
		}
		if (f[0] != 5)
			z1.b(g1, f[7], q[0], i1, j1, f[14] == 1);
		else
			z1.a(g1, f[7], q[0], i1, j1, f[14] == 1, h);
		if (!c(128) && !c(256))
		{
			d(g1, i1, j1);
			if (f[3] != 8 && ((k.l[f[0]] & 4) == 4 || (k.l[f[0]] & 2) == 2) && k.V)
				b(g1, i1, j1);
			c(g1, i1, j1 - 50);
			e(g1, i1, j1);
		}
		return;
		JVM INSTR dup ;
		Exception exception;
		exception;
		printStackTrace();
	}

	public final void b(Graphics g1, int i1, int j1)
	{
		boolean flag = false;
		boolean flag1 = false;
		int k1 = i1 - 10;
		int l1 = j1 - 50;
		int i2 = (g[4] * 20) / g[5] + 1;
		g1.setColor(0xff0000);
		g1.fillRect(k1, l1, i2, 2);
		g1.setColor(0);
		g1.drawRect(k1, l1, 20, 2);
		u.a(g1, k.f(g[19]), i1, l1 - 3, 33, P[g[20]], 0);
	}

	public final void d(int i1)
	{
		if (E != i1)
			E = i1;
	}

	public final void c(Graphics g1, int i1, int j1)
	{
		if (E != -1)
			k.a(g1, E, i1, j1);
	}

	public final void d(Graphics g1, int i1, int j1)
	{
		boolean flag = false;
		for (int l1 = 0; l1 < D.size(); l1++)
		{
			String as[];
			int k1 = Integer.parseInt((as = (String[])D.elementAt(l1))[1]);
			if (as[0].startsWith("-"))
			{
				k1++;
				boolean flag1 = false;
				if (k1 > 1)
				{
					int i2 = String.valueOf(as[0]).length() * 8 >> 1;
					u.a(g1, k.H, String.valueOf(as[0]), new int[] {
						0, i1 - i2, j1 - 50 - k1 * 2 - 7, i2 << 1, 7
					});
				} else
				{
					int j2 = String.valueOf(as[0]).length() * 9 >> 1;
					u.a(g1, k.I, String.valueOf(as[0]), new int[] {
						0, i1 - j2, j1 - 50 - k1 * 2 - 9, j2 << 1, 9
					});
				}
			} else
			if (++k1 > 0)
				u.a(g1, as[0], i1, j1 - 20 - k1 * 2, 33, 0xf0ba09, 0);
			D.removeElementAt(l1);
			if (k1 < 8)
			{
				as[1] = String.valueOf(k1);
				D.insertElementAt(as, l1);
			}
		}

	}

	public abstract void a();

	public boolean a(y y1)
	{
		boolean flag = y1.f[0] == 5;
		byte byte0 = k.l[f[0]];
		if (flag && ((byte0 & 2) != 2 && (byte0 & 4) != 4 || f[3] == 8 || (byte0 & 2) == 2 && f[3] == 6 && y == 2))
			return false;
		boolean flag1 = false;
		int i1;
		if (y1 instanceof f)
			i1 = ((f)y1).ab();
		else
			i1 = y1.g[8];
		if (u.a(y1.g[32]))
		{
			i1 *= 2;
			flag1 = true;
		}
		short word0 = g[9];
		int j1;
		if ((j1 = a(i1, word0)) > 0)
		{
			a(j1, ((String) (null)));
			A = 4;
			if (flag1)
				k.s.a(0, "致命一击");
		}
		if (flag)
			a(y1, byte0, false);
		return true;
	}

	private void a(y y1, byte byte0, boolean flag)
	{
		if (c(128))
		{
			k.s.d(this);
			y = 0;
			b((short)8);
			return;
		}
		int i1 = 0;
		i1 = y1.y();
		if ((byte0 & 2) == 2)
		{
			if (i1 > 0)
			{
				c(c(y1));
				a(y1, i1);
			} else
			{
				y = (byte)i1;
			}
		} else
		if ((byte0 & 4) == 4)
			y = 0;
		w = y1.f[14];
		b((short)6);
		b(y1);
	}

	public final void b(y y1)
	{
		for (int i1 = Q.length - 1; i1 >= 0; i1--)
			if (Q[i1])
				return;

		boolean flag = false;
		for (int j1 = 12; j1 <= 14 && !flag; j1++)
		{
			if (!u.a(y1.g[j1]))
				continue;
			int k1 = j1 - 12;
			int l1 = y1.k(k1);
			int i2 = y1.l(k1);
			int j2 = k1 + 3;
			short word0 = 0;
			short word1 = 0;
			if (g[12 + j2] >= 0)
			{
				word0 = n.d[j2][g[12 + j2]][2];
				word1 = n.d[j2][g[12 + j2]][1];
			}
			l1 -= word0;
			i2 -= word1;
			if (l1 > 0)
			{
				a((byte)k1, l1, (short)i2);
				flag = true;
			}
		}

	}

	private final int k(int i1)
	{
		if (this instanceof f)
			return ((f)this).t(i1);
		if (g[18] >= 0)
			switch (i1)
			{
			case 0: // '\0'
				return n.d[i1][g[18]][2];

			case 1: // '\001'
				return n.d[i1][g[18]][2];

			case 2: // '\002'
				return n.d[i1][g[18]][2];
			}
		return 0;
	}

	private final int l(int i1)
	{
		if (this instanceof f)
			return ((f)this).u(i1);
		if (g[18] >= 0)
			switch (i1)
			{
			case 0: // '\0'
				return n.d[i1][g[18]][1];

			case 1: // '\001'
				return n.d[i1][g[18]][1];

			case 2: // '\002'
				return n.d[i1][g[18]][1];
			}
		return 0;
	}

	private final void a(byte byte0, int i1, short word0)
	{
		Q[byte0] = true;
		R[byte0] = (i1 * 1000) / 70;
		switch (byte0)
		{
		case 0: // '\0'
			S[byte0] = g[2];
			g[2] *= (100 - word0) / 100;
			if (g[2] <= 0)
			{
				g[2] = 2;
				return;
			}
			break;

		case 2: // '\002'
			S[byte0] = 0;
			b((short)0);
			return;

		case 1: // '\001'
			S[byte0] = word0;
			break;
		}
	}

	public final void a(byte byte0)
	{
		switch (byte0)
		{
		case 0: // '\0'
			g[2] = S[byte0];
			// fall through

		case 1: // '\001'
		case 2: // '\002'
		default:
			Q[byte0] = false;
			break;
		}
		R[byte0] = 0;
		S[byte0] = 0;
	}

	private final void G()
	{
		for (byte byte0 = 0; byte0 < Q.length; byte0++)
		{
			if (!Q[byte0])
				continue;
			R[byte0]--;
			if (R[byte0] <= 0)
				a(byte0);
			if (R[byte0] % 14 == 0)
				switch (byte0)
				{
				case 1: // '\001'
					f(-S[byte0]);
					if (S[byte0] > 0)
						a(S[byte0], ((String) (null)));
					if (c(128))
					{
						if (!(this instanceof f))
							k.s.d(this);
						b((short)8);
						R[byte0] = 0;
						a(byte0);
						t();
					}
					break;
				}
		}

	}

	public final void e(Graphics g1, int i1, int j1)
	{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -