public GumpInfo(IntPtr processHandle, IntPtr gumpFunctionCaveAddress, IntPtr gumpHandle, int datestamp) { myProcessHandle = processHandle; myGumpFunctionCaveAddress = gumpFunctionCaveAddress; myGumpHandle = gumpHandle; myType = GetGumpType(processHandle, gumpHandle); myXAddress = (IntPtr)((ulong)gumpHandle + 0x34); myYAddress = (IntPtr)((ulong)gumpHandle + 0x38); myWidth = GumpHelper.GetINT(processHandle, gumpHandle, 0x24); myHeight = GumpHelper.GetINT(processHandle, gumpHandle, 0x28); myID = GetID(processHandle, gumpHandle, myType); mySerial = GetSerial(processHandle, gumpHandle, myType, datestamp); myGumpHandleBytes = BitConverter.GetBytes((uint)gumpHandle); myDateStamp = datestamp; List<GumpInfo> gumpInfoList = new List<GumpInfo>(); IntPtr[] gumpHandles = GumpHelper.GetSubGumps(processHandle, gumpHandle); foreach (IntPtr i in gumpHandles) { gumpInfoList.Add(new GumpInfo(processHandle, gumpFunctionCaveAddress, i, datestamp)); } mySubGumps = gumpInfoList.ToArray(); }