m.java

来自「很好的3款手机游戏源码」· Java 代码 · 共 1,846 行 · 第 1/3 页

JAVA
1,846
字号
// 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.util.Vector;
import javax.microedition.lcdui.*;

public class m
{

	p try;
	l g;
	Image f;
	Image l;
	Image do;
	Image int;
	int i;
	int c;
	int case;
	int e;
	int j;
	int else;
	int new;
	public static final int h = 0;
	public static final int byte = 1;
	public static final int if = 4;
	public static final int char = 5;
	public static final int long = 3;
	public static final int b = 2;
	String d[];
	int null[];
	String a[];
	int void;
	String for[];
	int k;
	u goto[];

	public m(p p1)
	{
		i = 0;
		c = 0;
		case = 0;
		e = 0;
		j = 0;
		else = 0;
		new = 0;
		d = new String[4];
		null = null;
		a = null;
		void = 0;
		for = null;
		k = 0;
		goto = new u[4];
		try = p1;
		p  = try;
		g = p.cI;
		d[0] = "游戏储存";
		d[1] = "游戏设置";
		d[2] = "世界地图";
		d[3] = "退出游戏";
		f = GameMidlet.a(f, "/topbar.png");
		l = GameMidlet.a(l, "/manstate.png");
		do = GameMidlet.a(do, "/exp.png");
		int = GameMidlet.a(int, "/letter.png");
		i = 0;
		for = null;
		case = 0;
		for = null;
		k = 0;
	}

	void byte(Graphics g1)
	{
		switch (i)
		{
		case 0: // '\0'
			for(g1);
			break;

		case 1: // '\001'
		case 4: // '\004'
			a(g1);
			break;

		case 2: // '\002'
			a(g1);
			break;

		case 5: // '\005'
			new(g1);
			break;

		case 3: // '\003'
			if(g1);
			break;
		}
		p  = try;
		p.a(g1, true, true);
	}

	void new(Graphics g1)
	{
		int i1 = g1.getColor();
		g1.setColor(0, 0, 0);
		g1.fillRect(0, 0, g.getWidth(), g.getHeight());
		int j1 = 0;
		int k1 = try(g1);
		int l1 = k1;
		l1 += 3;
		int i2 = g.getWidth();
		k1 = g.getHeight() - k1 - 3;
		p  = try;
		p.a(g1, j1, l1, i2, k1, 0, 0, 0, 150, 150, 150, 2, 2, false);
		l1 += 5;
		g1.setColor(255, 255, 255);
		for (int j2 = 0; j2 < d.length; j2++)
		{
			l 1 = g;
			l 2 = g;
			g1.drawString(d[j2], g.getWidth() - l.if.stringWidth(d[j2]) >> 1, l1 + j2 * (l.if.getHeight() + 5), 0);
			if (j2 == e)
			{
				p 3 = try;
				l 4 = g;
				p 5 = try;
				l 6 = g;
				g1.drawImage(p.cd, ((g.getWidth() - l.if.stringWidth(d[j2]) >> 1) - 20) + ((p.cK / 5) % 2) * 2, l1 + j2 * (l.if.getHeight() + 5), 0);
			}
		}

	}

	void do(Graphics g1)
	{
		int i1 = 0;
		int j1 = g.getWidth();
		int k1 = 0;
		int l1 = g1.getColor();
		g1.setColor(0, 0, 0);
		g1.fillRect(0, 0, g.getWidth(), g.getHeight());
		int i2 = 20;
		p  = try;
		p.a(g1, i1, k1, g.getWidth(), i2, 0, 0, 0, 200, 200, 200, 5, 2, true);
		k1 += 2;
		for(g1, i1, j1, k1 - 2, i2);
		k1 += i2;
		byte byte0 = 40;
		p 1 = try;
		p.a(g1, i1, g.getHeight() - byte0, j1, byte0, 0, 0, 0, 150, 150, 150, 5, 2, false);
		i2 = g.getHeight() - i2 - 6 - byte0;
		p 2 = try;
		p.a(g1, i1, k1, j1, i2, 0, 0, 0, 150, 150, 150, 2, 2, false);
		g1.setColor(l1);
	}

	static boolean if(u u1, a a1)
	{
		if (u1 == null)
			return false;
		if (u1 == a1.ag)
			return true;
		if (u1 == a1.aq)
			return true;
		if (u1 == a1.Z)
			return true;
		if (u1 == a1.at)
			return true;
		if (u1 == a1.ak)
			return true;
		return u1 == a1.ab;
	}

	void a(Graphics g1, Vector vector, a a1, int i1, int j1, int k1, int l1, 
			int i2, boolean flag, int j2, int k2, boolean flag1)
	{
		int l2 = g1.getColor();
		g1.setColor(255, 255, 255);
		if (vector.size() > 0)
		{
			int i3 = l.if.getHeight();
			int j3 = l1 / (i3 <= k2 ? k2 : i3);
			int k3 = vector.size();
			int l3 = 0;
			if (k3 > j3)
				l3 = j3;
			else
				l3 = k3;
			int i4 = 0;
			int j4 = 0;
			boolean flag2 = false;
			if (i2 < j3)
			{
				i4 = 0;
				int k4 = i2;
				j4 = i4 + j3 >= k3 ? k3 : i4 + j3;
			} else
			{
				i4 = i2 - (j3 - 1);
				int l4 = j3 - 1;
				j4 = i4 + j3 >= k3 ? k3 : i4 + j3;
			}
			int i5 = j1 + 3;
			for (int j5 = i4; j5 < j4; j5++)
			{
				u u1 = (u)vector.elementAt(j5);
				if (i2 == j5 && flag)
				{
					p  = try;
					p 1 = try;
					g1.drawImage(p.cd, (i1 + (!flag ? 0 : ((p.cK / 6) % 2) * 3)) - 4, i5 + (k2 - p.cd.getHeight()) / 2, 0);
				}
				if (a1 != null)
				{
					if (if(u1, a1))
						g1.drawImage(try.b7, i1 + 8, i5, 0);
					if (flag1 && int(u1))
					{
						p 2 = try;
						GameMidlet.a(g1, p.bk, i1 + 8, i5, 10, 8, 1);
					}
				}
				GameMidlet.a(g1, u.do(u1.do, try), i1 + 16, i5, j2, k2, u.int(u1.do, try));
				String s1 = u.case(u1.do, try);
				g1.setColor(255, 255, 255);
				g1.drawString(s1, i1 + 18 + j2, i5 + (k2 - i3) / 2, 0);
				if (u1.byte > 0)
					try.a(g1, u1.byte, (i1 + k1) - 33, i5 + (k2 - i3) / 2 + (i3 - 9 >> 1));
				else
					g1.drawString("坏", (i1 + k1) - 33, i5, 0);
				i5 += k2;
			}

			if (i4 > 0)
			{
				p 3 = try;
				GameMidlet.a(g1, p.t, g.getWidth() - 14 >> 1, j1 - 6 - ((p.cK / 6) % 2) * 2, 14, 8, 0);
			}
			if (j4 < k3)
			{
				p 4 = try;
				GameMidlet.a(g1, p.t, g.getWidth() - 14 >> 1, (j1 + l1) - ((p.cK / 6) % 2) * 2, 14, 8, 1);
			}
		} else
		{
			String s = "无物品";
			l 5 = g;
			g1.drawString(s, i1 + (k1 - l.if.stringWidth(s) >> 1), j1 + 20, 0);
		}
		g1.setColor(l2);
	}

	void int(Graphics g1)
	{
		int i1 = g.getWidth() - 10;
		int j1 = g.getHeight() - 10;
		int k1 = g.getWidth() - i1 >> 1;
		int l1 = g.getHeight() - j1 >> 1;
		l  = g;
		int i2 = l.if.getHeight();
		p 1 = try;
		p.a(g1, g.getWidth() - i1 >> 1, g.getHeight() - j1 >> 1, i1, j1, 0, 0, 100, -1, -1, 250, 3, 3, true);
		if (k < for.length - 1)
		{
			p 2 = try;
			GameMidlet.a(g1, p.t, k1 + (i1 - 14 >> 1), (l1 + j1) - 8 - (p.cK / 6) % 2, 14, 8, 1);
		}
		int j2 = (j1 - 3) / i2;
		int k2 = j1 - 3 - j2 * i2;
		for (int l2 = 0; l2 < j2; l2++)
			if (k + l2 < for.length)
				p.a(g1, for[k + l2], k1 + 5, l1 + 3 + l2 * i2 + k2 / 2);

	}

	void if(Graphics g1)
	{
		int i1;
		int j1;
		int k1;
		int l1;
		int i2;
		int j2;
		if (else == 9)
		{
			int(g1);
			return;
		}
		i1 = 0;
		j1 = g.getWidth();
		k1 = g1.getColor();
		g1.setColor(0, 0, 0);
		g1.fillRect(0, 0, g.getWidth(), g.getHeight());
		l1 = 20;
		i2 = 0;
		try;
		p.a(g1, i1, i2, g.getWidth(), l1, 0, 0, 0, 200, 200, 200, 5, 2, true);
		j2 = 0;
_L13:
		if (j2 >= 4) goto _L2; else goto _L1
_L1:
		if (goto[j2] != null)
			break MISSING_BLOCK_LABEL_189;
		g1;
		try.w;
		i1 + 2 + j2 * 18;
		i2 + 3;
		if (else != 0) goto _L4; else goto _L3
_L3:
		if (j2 != j) goto _L6; else goto _L5
_L5:
		try;
		(p.cK / 3) % 2;
		  goto _L7
_L6:
		false;
		  goto _L7
_L4:
		false;
_L7:
		JVM INSTR isub ;
		16;
		16;
		0;
		GameMidlet.a();
		continue; /* Loop/switch isn't completed */
		g1;
		u.do(goto[j2].do, try);
		i1 + 2 + j2 * 18;
		i2 + 3;
		if (else != 0) goto _L9; else goto _L8
_L8:
		if (j2 != j) goto _L11; else goto _L10
_L10:
		try;
		(p.cK / 3) % 2;
		  goto _L12
_L11:
		false;
		  goto _L12
_L9:
		false;
_L12:
		JVM INSTR isub ;
		16;
		16;
		u.int(goto[j2].do, try);
		GameMidlet.a();
		j2++;
		  goto _L13
_L2:
		i2 += l1 + 2;
		byte byte0 = 40;
		try;
		p.a(g1, i1, g.getHeight() - byte0, j1, byte0, 0, 0, 0, 150, 150, 150, 5, 2, false);
		g1.setColor(255, 255, 255);
		if (else == 0)
		{
			String s = "";
			switch (null[0])
			{
			case 2: // '\002'
				s = "查看 杖";
				break;

			case 8: // '\b'
				s = "查看 鞋子";
				break;

			case 12: // '\f'
				s = "查看 戒指";
				break;

			case 10: // '\n'
				s = "查看 项链";
				break;

			case 6: // '\006'
				s = "查看 帽子";
				break;

			case 4: // '\004'
				s = "查看 袍";
				break;

			case 0: // '\0'
				s = "查看 消耗品";
				break;

			case 20: // '\024'
				s = "查看 材料";
				break;

			case 14: // '\016'
				s = "查看 卷轴";
				break;
			}
			g;
			g;
			g;
			g1.drawString(s, g.getWidth() - l.if.stringWidth(s) >> 1, g.getHeight() - l.if.getHeight() - (byte0 - l.if.getHeight() >> 1), 0);
		} else
		{
			if (for == null)
			{
				Vector vector = try.goto(null[0]);
				if (vector == null)
					return;
				int l2 = vector.size();
				if (l2 <= 0)
					return;
				u u1 = (u)vector.elementAt(new);
				vector = null;
				String s1 = u.goto(u1.do, try);
				int k3 = j1 - 10;
				for = p.if(s1, k3);
				k = 0;
				u1 = null;
			}
			g;
			int k2 = l.if.getHeight();
			if (k > 0)
				GameMidlet.a(g1, p.bm, (i1 - 5) + ((p.cK / 4) % 2) * 2, i2 + (l1 - p.bm.getHeight() >> 1), 8, 14, 0);
			if (k < for.length - 1)
				GameMidlet.a(g1, p.bm, (i1 + j1) - 3 - ((p.cK / 4) % 2) * 2, i2 + (l1 - p.bm.getHeight() >> 1), 8, 14, 1);
			int i3 = (byte0 - 3) / k2;
			int j3 = byte0 - 3 - i3 * k2;
			byte byte3 = 5;
			int l3 = g.getHeight() - byte0;
			for (int i4 = 0; i4 < i3; i4++)
				if (k + i4 < for.length)
					p.a(g1, for[k + i4], byte3 + 5, l3 + 3 + i4 * k2 + j3 / 2);

		}
		l1 = g.getHeight() - l1 - 4 - byte0;
		try;
		p.a(g1, i1, i2, j1, l1, 0, 0, 0, 150, 150, 150, 2, 2, false);
		byte byte1 = 16;
		byte byte2 = 16;
		switch (i)
		{
		case 4: // '\004'
			byte1 = 24;
			byte2 = 24;
			break;

		default:
			byte1 = 16;
			byte2 = 16;
			break;
		}
		a(g1, a(null[0]), try.aQ, 5, i2 + 5, g.getWidth() - 10, l1 - 10, new, else == 1, byte1, byte2, true);
		if (else == 2)
			case(g1);
		try;
		p.a(g1, true, true);
		g1.setColor(k1);
		return;
	}

	void a(Graphics g1)
	{
		int i1 = 0;
		int j1 = g.getWidth();
		int k1 = g1.getColor();
		g1.setColor(0, 0, 0);
		g1.fillRect(0, 0, g.getWidth(), g.getHeight());
		int l1 = 20;
		int i2 = 0;
		p  = try;
		p.a(g1, i1, i2, g.getWidth(), l1, 0, 0, 0, 200, 200, 200, 5, 2, true);
		for(g1, i1, j1, i2, l1);
		i2 += l1 + 2;
		byte byte0 = 40;
		p 1 = try;
		p.a(g1, i1, g.getHeight() - byte0, j1, byte0, 0, 0, 0, 150, 150, 150, 5, 2, false);
		g1.setColor(255, 255, 255);
		if (else == 0)
		{
			String s = "";
			switch (null[j])
			{
			case 2: // '\002'
				s = "查看 杖";
				break;

			case 8: // '\b'
				s = "查看 鞋子";
				break;

			case 12: // '\f'
				s = "查看 戒指";
				break;

			case 10: // '\n'
				s = "查看 项链";
				break;

			case 6: // '\006'
				s = "查看 帽子";
				break;

			case 4: // '\004'
				s = "查看 袍";
				break;

			case 0: // '\0'
				s = "查看 消耗品";
				break;

			case 20: // '\024'
				s = "查看 材料";
				break;

			case 14: // '\016'
				s = "查看 卷轴";
				break;
			}
			l 2 = g;
			l 3 = g;
			l 4 = g;
			g1.drawString(s, g.getWidth() - l.if.stringWidth(s) >> 1, g.getHeight() - l.if.getHeight() - (byte0 - l.if.getHeight() >> 1), 0);
		} else
		{
			if (for == null)
			{
				Vector vector = try.goto(null[j]);
				if (vector == null)
					return;
				int k2 = vector.size();
				if (k2 <= 0)
					return;
				u u1 = (u)vector.elementAt(new);
				vector = null;
				String s1 = u.goto(u1.do, try);
				int j3 = j1 - 10;
				for = p.if(s1, j3);
				k = 0;
				u1 = null;
			}
			l 5 = g;
			int j2 = l.if.getHeight();
			if (k > 0)
				GameMidlet.a(g1, p.bm, (i1 - 2) + ((p.cK / 4) % 2) * 2, (g.getHeight() - byte0) + (byte0 - p.bm.getHeight() >> 1), 8, 14, 0);
			if (k < for.length - 1)
				GameMidlet.a(g1, p.bm, (i1 + j1) - 5 - ((p.cK / 4) % 2) * 2, (g.getHeight() - byte0) + (byte0 - p.bm.getHeight() >> 1), 8, 14, 1);
			int l2 = (byte0 - 3) / j2;
			int i3 = byte0 - 3 - l2 * j2;
			byte byte3 = 5;
			int k3 = g.getHeight() - byte0;
			for (int l3 = 0; l3 < l2; l3++)
				if (k + l3 < for.length)
					p.a(g1, for[k + l3], byte3 + 5, k3 + 3 + l3 * j2 + i3 / 2);

		}
		l1 = g.getHeight() - l1 - 4 - byte0;
		p 6 = try;
		p.a(g1, i1, i2, j1, l1, 0, 0, 0, 150, 150, 150, 2, 2, false);
		byte byte1 = 16;
		byte byte2 = 16;
		switch (i)
		{
		case 4: // '\004'
			byte1 = 24;
			byte2 = 24;
			break;

		default:
			byte1 = 16;
			byte2 = 16;
			break;
		}
		a(g1, a(null[j]), try.aQ, 5, i2 + 5, g.getWidth() - 10, l1 - 10, new, else == 1, byte1, byte2, false);
		if (else == 2)
			case(g1);
		p 7 = try;
		p.a(g1, true, true);
		g1.setColor(k1);
	}

	void case(Graphics g1)
	{
		int i1 = g1.getColor();
		l  = g;
		int j1 = l.if.getHeight();
		int k1 = a.length * j1;
		p 1 = try;
		p.a(g1, 0, 10, 100, k1 + 10, 0, 100, 0, -1, 200, -1, 5, 2, true);
		p 2 = try;
		p 3 = try;
		g1.drawImage(p.cd, ((p.cK / 4) % 2) * 3, 15 + void * j1, 0);
		g1.setColor(255, 255, 255);
		for (int l1 = 0; l1 < a.length; l1++)
			g1.drawString(a[l1], 30, 15 + l1 * j1, 0);

		g1.setColor(i1);
	}

	Vector a(int i1)
	{
		switch (i1)
		{
		case 0: // '\0'
			return try.ag;

		case 20: // '\024'
			return try.bD;

		case 6: // '\006'
			return try.az;

		case 4: // '\004'
			return try.ae;

		case 8: // '\b'
			return try.i;

⌨️ 快捷键说明

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