Code:
private const uint ofs_UIElements_cnt = 0x10;
And iterating:
Code:
struct Pair
{
Pair *next;
UIReference key;
UIComponent* value;
};
struct UIReference
{
ULONGLONG hash; // 0x000
char name[0x200]; // 0x008
};
struct UIComponent
{
......
DWORD visible; // 0x028
......
char* text_ptr; // 0xAE0
.....
}
for(DWORD i = 0; i < comp_map.table_size; i++)
{
UIComponentMap::Pair pair;
if(CProcess::Instance().Core.Read(CProcess::Instance().Core.Read<DWORD>((DWORD)comp_map.table + i*sizeof(UIComponentMap::Pair*)), sizeof(pair), &pair) != ERROR_SUCCESS)
continue;
//Read linked list nodes
for(; pair.value;)
{
UIComponent element;
CProcess::Instance().Core.Read((DWORD)pair.value, sizeof(element), &element);
if(CProcess::Instance().Core.Read((DWORD)pair.next, sizeof(pair), &pair) != ERROR_SUCCESS)
break;
}
}