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

📄 level.java

📁 j2me游戏Global星球文明,是国外的游戏,45度视角.
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
// 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 + -