typedef struct { ESQ type; char zero; char title[]; } XPAK_META; XPAK_META *GetXPakMeta(HANDLE h) { char *p=HeapDeref(h); p=p+2+*(unsigned int *)p-7; if (strcmp(p+1,"XPAK")) return 0; // p points to the zero... while (*--p); return (XPAK_META *)(p-1); }
XPAK_META *xpak; if ((xpak=GetXPakMeta(hd))) { type_str = xpak->type==OTH_TAG ? xpak->title : ""; if (!*type_str) type_str = GetTypeString(xpak->type); } else { ... }