Ja bym to zhookował tak: HookEngineF(7369071,6,_InstancjaINazwa);
i wtedy item to:
var int ptr; ptr = MEM_ReadInt (ESP+324+4);
var c_item itm; itm = _^(ptr);
Jest to wydajniejsze, bo nie wywołujemy dodatkowych metod z silnika.
Trzeba też zaznaczyć, że jeżeli chce tylko instance np. do printu, to nie ma co przypisywać pointera do obiektu, bo zjada to niepotrzebnie tylko wydajność.
Nazwa instance to np. MEM_ReadString(ptr+16);
Resztę można sobie policzyć z offsetów klasy oCItem.
Int to 4 bajty, a string to 20 i po prostu dodajemy kolejne rozmiary zmiennych, aż dotrzemy do tej, która nas interesuje.