Your offsets seem to be valid. Don't know what is wrong, but this is how i it works for me:
PHP Code:
//sizeof = 0x1C8
//sizeof = 0x54
class NavZoneRaw
{
public:
DWORD id_navzone; // 0x000
DWORD id_world; // 0x004
DWORD id_SceneSNO; // 0x008 <- SNO id
Vec2 unknown_00C; // 0x00C
DWORD unknown_014; // 0x014
Vec2 zoneMin; // 0x018
Vec2 zoneMax; // 0x020
DWORD unknown_028[8]; // 0x028
DWORD pNavZoneDefRaw; // 0x048
DWORD pSceneRecord; // 0x04C
DWORD unknown_050; // 0x050
};
//sizeof = 0x1C8
class NavMeshRaw
{
public:
DWORD id_navmesh; // 0x000
DWORD id_world; // 0x004
DWORD unknown_008[3]; // 0x008
DWORD sno_levelarea; // 0x014
DWORD unknown_018[3]; // 0x018
DWORD sno_portalWorld; // 0x024
DWORD unknown_028[10]; // 0x028
float unknown_050; // 0x050
DWORD unknown_054[5]; // 0x054
float unknown_068; // 0x068
DWORD unknown_06C[8]; // 0x06C
DWORD sizeX; // 0x08C
DWORD sizeY; // 0x090
AABB unknown_094; // 0x094
AABB unknown_0AC; // 0x0AC
DWORD unknown_0C4[5]; // 0x0C4
DWORD id_SceneSNO; // 0x0D8 <- SNO id
DWORD unknown_0DC[4]; // 0x0DC
Vec2 MeshMin; // 0x0EC
DWORD unknown_0F4[16]; // 0x0F4
AABB bounds; // 0x134
AABB boundsMarker; // 0x14C
Vec2 MeshMax; // 0x164
float unknown_16C[3]; // 0x16C
DWORD unknown_178; // 0x178
NavZoneRaw* pZone; // 0x17C
DWORD unknown_180[9]; // 0x180
DWORD unknown_1A4; // 0x1A4 Read by D3::NavMesh::GetFlags
DWORD unknown_1A8; // 0x1A8
DWORD unknown_1AC[7]; // 0x1AC
};
//sizeof = 0x2A8
class SceneRaw
{
public:
int id_scene; // 0x000
NavMeshRaw navmesh; // 0x004
DWORD unknown_1CC[55]; // 0x1CC
};
SceneRaw is what you get from IterateScenes. And GetSnoRecord is 0x0DDE720.