Code: Select all
DWORD __stdcall RefreshMountKeyRingThread(PVOID pData)
{
pkrdata kr = (pkrdata)pData;
if(kr) {
CXWnd *krwnd = kr->phWnd;
bool bExact = kr->bExact;
bool bUseCmd = kr->bUseCmd;
CHAR szItemName[256] = {0};
strcpy_s(szItemName,kr->ItemName);
LocalFree(kr);
if(krwnd) {
bool bToggled = 0;
if(!krwnd->dShow) {
bToggled = true;
DWORD ShowWindow = (DWORD)krwnd->pvfTable->ShowWindow;
__asm {
push ecx;
mov ecx, [krwnd];
call dword ptr [ShowWindow];
pop ecx;
}
((CSidlScreenWnd*)krwnd)->StoreIniVis();
}
if(CTabWnd *pTab = (CTabWnd*)((CSidlScreenWnd*)(krwnd))->GetChildItem("IW_Subwindows")) {
pTab->SetPage(6,true, true);//tab 6 is the mount key ring tab...
gMouseEventTime = GetFastTime();
}
if(CListWnd *clist = (CListWnd*)krwnd->GetChildItem("IW_Mounts_MountList")) {
ULONGLONG now = MQGetTickCount64();
while(!((CSidlScreenWnd*)clist)->Items) {
Sleep(10);
if(now+5000 < MQGetTickCount64()) {
WriteChatColor("Timed out waiting for mount keyring refresh",CONCOLOR_YELLOW);
break;
}
}
if(bToggled) {
((CXWnd*)krwnd)->Show(0,1);
((CSidlScreenWnd*)krwnd)->StoreIniVis();
}
if(bUseCmd && ((CSidlScreenWnd*)clist)->Items) {
UseItemCmd(GetCharInfo()->pSpawn,szItemName);
}
}
}
}
return 0;
}Code: Select all
UseItemCmd(GetCharInfo()->pSpawn,szItemName);

donations for this month's patches.