📄 level.java
字号:
// Decompiled by Jad v1.5.7g. Copyright 2000 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/SiliconValley/Bridge/8617/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi
import java.util.Random;
public class Level
{
public static final byte FL_ANIMATED = 4;
public static final byte FL_PEOPLE = 2;
public static final byte FL_SHADOW = 1;
public static final int LEVEL_H = 64;
public static final int LEVEL_W = 64;
public byte barhany[];
public byte bereg[];
public byte flags[][];
public Global gw;
public byte ljod[];
public byte map[][];
public byte resources[][];
public byte voda[];
public Level(Global global)
{
map = new byte[64][64];
flags = new byte[64][64];
resources = new byte[64][64];
bereg = new byte[64];
barhany = new byte[64];
ljod = new byte[64];
voda = new byte[64];
gw = global;
}
public Level()
{
map = new byte[64][64];
flags = new byte[64][64];
resources = new byte[64][64];
bereg = new byte[64];
barhany = new byte[64];
ljod = new byte[64];
voda = new byte[64];
}
public void bereg()
{
int i = 63;
int j = (32 + (gw.gs.rnd.nextInt() & 0xf)) - 8;
for(int k = 0; k < 64; k++)
voda[k] = 0;
try
{
while(i >= 0 && j >= 0)
{
voda[i] = (byte)j;
for(int l = j; l >= 0; l--)
{
if((gw.gs.rnd.nextInt() & 0xff) < 128)
map[l][i] = 3;
else
map[l][i] = 4;
resources[l][i] = 0;
}
boolean flag = (gw.gs.rnd.nextInt() & 0x1) == 1;
if(i == 63 || j == 0)
flag = false;
if(flag)
{
map[j][i] = 7;
resources[j][i] = 0;
voda[i] = (byte)j;
if(--j < 0)
break;
do
{
boolean flag1 = (gw.gs.rnd.nextInt() & 0x1) == 1;
if(j == 0)
flag1 = false;
if(flag1)
{
map[j][i] = 11;
resources[j][i] = 0;
voda[i] = (byte)j;
i--;
break;
}
map[j][i] = 8;
resources[j][i] = 0;
voda[i] = (byte)j;
} while(--j >= 0 && i >= 0);
} else
{
map[j][i] = 12;
resources[j][i] = 0;
voda[i] = (byte)j;
i--;
}
}
}
catch(Exception exception) { }
}
public void desert()
{
int i = 0;
int j = (32 + (gw.gs.rnd.nextInt() & 0xf)) - 8;
for(int k = 0; k < 64; k++)
barhany[k] = 0;
try
{
while(i < 64 && j >= 0)
{
try
{
barhany[j] = (byte)i;
}
catch(Exception exception) { }
for(int l = j; l >= 0; l--)
{
byte byte0 = map[l][i];
if(byte0 != 3 && byte0 != 4 && byte0 != 7 && byte0 != 8 && byte0 != 11 && byte0 != 12)
{
if((gw.gs.rnd.nextInt() & 0xff) < 32)
map[l][i] = 6;
else
map[l][i] = 2;
resources[l][i] = 0;
}
}
do
{
try
{
barhany[j] = (byte)i;
}
catch(Exception exception2) { }
boolean flag = (gw.gs.rnd.nextInt() & 0x1) == 1;
if(i == 0)
flag = true;
if(j == 0)
flag = false;
if(flag)
{
byte byte1 = map[j][i];
if(byte1 != 3 && byte1 != 4 && byte1 != 7 && byte1 != 8 && byte1 != 11 && byte1 != 12)
{
map[j][i] = 10;
resources[j][i] = 0;
}
i++;
break;
}
byte byte2 = map[j][i];
if(byte2 != 3 && byte2 != 4 && byte2 != 7 && byte2 != 8 && byte2 != 11 && byte2 != 12)
{
map[j][i] = 10;
resources[j][i] = 0;
}
} while(--j >= 0 && i < 64 && j >= 0);
}
}
catch(Exception exception1) { }
}
public void generate()
{
for(int j1 = 0; j1 < 64; j1++)
{
for(int k1 = 0; k1 < 64; k1++)
{
resources[j1][k1] = 0;
flags[j1][k1] = 1;
if(k1 != gw.gs.castlei || j1 != gw.gs.castlej)
{
int i = 128 - (k1 + (64 - j1) << 1);
if((gw.gs.rnd.nextInt() & 0x3f) < i)
{
map[j1][k1] = 42;
int j = gw.gs.rnd.nextInt() & 0xff;
if(j < 96)
{
int l = j & 0x3;
if(l != 0)
{
int i1 = (((gw.gs.rnd.nextInt() & 0xff) * 5 >> 8) + 1) * 5;
resources[j1][k1] = (byte)(l << 6 | i1);
}
} else
{
resources[j1][k1] = 3;
}
} else
{
map[j1][k1] = 1;
int k = gw.gs.rnd.nextInt() & 0xff;
if(k < 24)
{
map[j1][k1] = 41;
resources[j1][k1] = 3;
} else
if(k < 28)
{
map[j1][k1] = 5;
resources[j1][k1] = (byte)((((gw.gs.rnd.nextInt() & 0xff) * 5 >> 8) + 1) * 5);
} else
if(k < 40)
{
map[j1][k1] = 43;
resources[j1][k1] = 3;
}
}
}
}
}
bereg();
lednik();
desert();
gw.gs.cursori = gw.gs.castlei;
gw.gs.cursorj = gw.gs.castlej;
gw.gs.buildNum = 0;
gw.gm.build(gw.gs.cursorj, gw.gs.cursori);
gw.lv.map[gw.gs.cursorj][gw.gs.cursori] = 60;
}
public void lednik()
{
int i = (32 + (gw.gs.rnd.nextInt() & 0xf)) - 8;
int j = 63;
for(int k = 0; k < 64; k++)
ljod[k] = 63;
try
{
while(i < 64 && j >= 0)
{
ljod[j] = (byte)i;
for(int l = j; l < 64; l++)
{
byte byte0 = map[l][i];
if(byte0 != 3 && byte0 != 4 && byte0 != 7 && byte0 != 8 && byte0 != 11 && byte0 != 12)
{
if((gw.gs.rnd.nextInt() & 0xff) < 64)
map[l][i] = 20;
else
map[l][i] = 9;
resources[l][i] = 0;
}
}
if(j < 63)
{
boolean flag = (gw.gs.rnd.nextInt() & 0x1) == 1;
if(flag)
{
byte byte1 = map[j][i];
ljod[j] = (byte)i;
if(byte1 != 3 && byte1 != 4 && byte1 != 7 && byte1 != 8 && byte1 != 11 && byte1 != 12)
{
map[j][i] = 13;
resources[j][i] = 0;
}
if(--j < 0)
break;
} else
{
byte byte2 = map[j][i];
ljod[j] = (byte)i;
if(byte2 != 3 && byte2 != 4 && byte2 != 7 && byte2 != 8 && byte2 != 11 && byte2 != 12)
{
map[j][i] = 16;
resources[j][i] = 0;
}
i++;
continue;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -