Upon re-reading, I could have been more clear. Here's how I define ptr_base:
Code:
ptr_base = (uint)readIntFromMemory(0x10BD5F4);
ptr_base = (uint)readIntFromMemory(ptr_base + 0x34);
ptr_base = (uint)readIntFromMemory(ptr_base + 0x24);
Basically what everone does. Immediately following that, I set descriptor.
Code:
ptr_descriptor = (uint)readIntFromMemory(ptr_base + 0x8);
Now, from there, I can easily get anything out of the UnitFields. I copypasta'd directly from the 3.1.3 Info Dump to make that Enum, as well as the PlayerFields. For example, getting level with these two variables set:
Code:
public int getLevel() {
return readIntFromMemory(ptr_descriptor + ((uint)UnitFields.UNIT_FIELD_LEVEL * 4));
}
However, I'm not sure how to find the base offset of the PlayerFields for my character. I interpreted what you said as [basePtr + 0x16], but that didn't return the correct value for PlayerFields.PLAYER_FIELDS_COINAGE. Am I totally doing it wrong?