CustomCursor CursorPointer; dword CursorFile = FROM "../TWB/pointer.cur"; #include "..\lib\collection.h" #define NOLINE 0 #define UNDERLINE 1 #define MAXLINKS 400 struct array_link { dword link; int x,y,w,h; int underline, underline_h; }; struct LinksArray { array_link links[MAXLINKS]; collection page_links; int count; int active; bool HoverAndProceed(); void AddLink(); void AddText(); dword GetURL(); void Clear(); } PageLinks; void LinksArray::AddLink(dword lpath) { if (count>= MAXLINKS) return; page_links.add(lpath); } void LinksArray::AddText(dword _x, _y, _w, _h, _link_underline, _underline_h) { if (count>= MAXLINKS) return; links[count].x = _x; links[count].y = _y; links[count].w = _w; links[count].h = _h; links[count].underline = _link_underline; links[count].underline_h = _underline_h; links[count].link = page_links.get(page_links.count-1); count++; } dword LinksArray::GetURL(int id) { return links[id].link; } void LinksArray::Clear() { page_links.drop(); page_links.realloc_size = 4096 * 32; count = 0; active = -1; CursorPointer.Restore(); } char temp[sizeof(URL)]; PathShow_data status_text = {0, 17,250, 6, 250, 0, 0, 0x0, 0xFFFfff, 0, #temp, 0}; bool LinksArray::HoverAndProceed(dword mx, my) { int i; for (i=0; ilinks[i].x) && (my>links[i].y) && (mx