Nintenlord.ROMHacking.GBA.GBAROM.ReadPointer C# (CSharp) Method

ReadPointer() public method

public ReadPointer ( int offset ) : int
offset int
return int
        public int ReadPointer(int offset)
        {
            int ptr = BitConverter.ToInt32(ROMdata, offset);
            int val;
            if (!Pointer.GetOffset(ptr, out val))
            {
                throw new ArgumentException();
            }
            return val;
        }

Usage Example

        public MapTileset(int Offset, GBAROM ROM)
        {
            offset = Offset;
            originROM = ROM;
            byte[] temp = originROM.GetData(offset, 0x4);
            isCompressed = temp[0];
            isSecondary = temp[1];
            buffer1 = temp[2];
            buffer2 = temp[3];
            imagePointer = originROM.ReadPointer(offset + 0x4);
            imagePalsPointer = originROM.ReadPointer(offset + 0x8);
            blocksPointer = originROM.ReadPointer(offset + 0xC);

            if (Program.currentGame.RomType == "FRLG")
            {
                animationPointer = originROM.ReadPointer(offset + 0x10);
                behaviorPointer = originROM.ReadPointer(offset + 0x14);
            }
            else if (Program.currentGame.RomType == "E")
            {
                behaviorPointer = originROM.ReadPointer(offset + 0x10);
                animationPointer = originROM.ReadPointer(offset + 0x14);
            }

            blockSet = new Blockset(blocksPointer, behaviorPointer, (isSecondary & 1) == 1, originROM);
        }