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; }