Example #1
0
    public static ObjRec[] getBlocksDt2(int blockIndex)
    {
        ObjRec[] blocks = Utils.readBlocksFromAlignedArrays(Globals.romdata, ConfigScript.getTilesAddr(blockIndex), ConfigScript.getBlocksCount());
        //decode palByte
        int palInfoCount = ConfigScript.getBlocksCount() / 4;
        var palInfo      = new byte[palInfoCount];

        for (int i = 0; i < palInfoCount; i++)
        {
            palInfo[i] = (byte)blocks[i].palBytes[0];
        }
        for (int i = 0; i < blocks.Length; i++)
        {
            var palInfoByte = palInfo[i / 4];
            int parByteNo   = i % 4;
            blocks[i].palBytes[0] = (byte)((palInfoByte >> parByteNo * 2) & 3);
        }
        //
        //rebuild blocks to dt2 blocks
        for (int i = 0; i < blocks.Length; i++)
        {
            blocks[i] = new Dt2ObjRec(blocks[i], i);
        }
        //
        return(blocks);
    }
 public ObjRec[] getBlocksDt2(int blockIndex)
 {
     ObjRec[] blocks = Utils.readBlocksFromAlignedArrays(Globals.romdata, ConfigScript.getTilesAddr(blockIndex), getBlocksCount());
     //decode typeColor
     int palInfoCount = getBlocksCount()/4;
     var palInfo = new byte[palInfoCount];
     for (int i = 0; i < palInfoCount; i++)
     {
     palInfo[i] = blocks[i].typeColor;
     }
     for (int i = 0; i < blocks.Length; i++)
     {
     var palInfoByte = palInfo[i/4];
     int parByteNo = i % 4;
     blocks[i].typeColor = (byte)((palInfoByte >> parByteNo*2) & 3);
     }
     //
     //rebuild blocks to dt2 blocks
     for (int i = 0; i < blocks.Length; i++)
     {
     blocks[i] = new Dt2ObjRec(blocks[i], i);
     }
     //
     return blocks;
 }