void HWMapContainer::askForGeneratedPreview() { pMap = new HWMap(this); connect(pMap, SIGNAL(ImageReceived(QPixmap)), this, SLOT(setImage(QPixmap))); connect(pMap, SIGNAL(HHLimitReceived(int)), this, SLOT(setHHLimit(int))); connect(pMap, SIGNAL(destroyed(QObject *)), this, SLOT(onPreviewMapDestroyed(QObject *))); pMap->getImage(m_seed, getTemplateFilter(), get_mapgen(), getMazeSize(), getDrawnMapData(), m_script ); setHHLimit(0); const QPixmap waitIcon(":/res/iconTime.png"); QPixmap waitImage(m_previewSize); QPainter p(&waitImage); p.fillRect(waitImage.rect(), linearGrad); int x = (waitImage.width() - waitIcon.width()) / 2; int y = (waitImage.height() - waitIcon.height()) / 2; p.drawPixmap(QPoint(x, y), waitIcon); addInfoToPreview(waitImage); cType->setEnabled(false); }
void menu(CBTYPE cbType, void* arg1) { PLUG_CB_MENUENTRY* info = (PLUG_CB_MENUENTRY*)arg1; if(info->hEntry == 1) { // get patch information size_t buffersize; size_t numPatches; std::unique_ptr<DBGPATCHINFO> patchList(nullptr); if(!(patchList = EnumPatches(buffersize, numPatches))) return; // browse OPENFILENAME browse; memset(&browse, 0, sizeof(browse)); browse.lStructSize = sizeof(browse); browse.hwndOwner = hwndDlg; browse.hInstance = hModule; wchar_t filter[512]; memset(filter, 0, sizeof(filter)); memset(templatename, 0, sizeof(templatename)); memset(exportedname, 0, sizeof(exportedname)); LoadString(hModule, IDS_FILTER, filter, 512); for(size_t i = 0; i < _countof(filter); i++) { if(filter[i] == '|') filter[i] = '\0'; } browse.lpstrFilter = filter; browse.nFilterIndex = 1; browse.lpstrFile = templatename; browse.lpstrFileTitle = nullptr; browse.nMaxFile = 512; browse.Flags = OFN_FILEMUSTEXIST; if(GetOpenFileName(&browse) == 0) return; std::wstring templateContent = LoadFile(templatename); std::wstring filterString = getTemplateFilter(templateContent); browse.lpstrFile = exportedname; browse.lpstrFilter = filterString.c_str(); browse.Flags = OFN_OVERWRITEPROMPT; if(GetSaveFileName(&browse) == 0) return; // export patches ExportPatch(templateContent, patchList.get(), numPatches); } else if(info->hEntry == 2) { // get patch information size_t buffersize; size_t numPatches; std::unique_ptr<DBGPATCHINFO> patchList(nullptr); if(!(patchList = EnumPatches(buffersize, numPatches))) return; // check last template if(wcslen(templatename) == 0) { MessageBox(hwndDlg, LoadWideString(IDS_NOLASTTEMPLATE).c_str(), LoadWideString(IDS_PLUGNAME).c_str(), MB_ICONERROR); return; } std::wstring templateContent = LoadFile(templatename); // browse OPENFILENAME browse; memset(&browse, 0, sizeof(browse)); browse.lStructSize = sizeof(browse); browse.hwndOwner = hwndDlg; browse.hInstance = hModule; wchar_t filter[512]; memset(filter, 0, sizeof(filter)); memset(exportedname, 0, sizeof(exportedname)); LoadString(hModule, IDS_FILTER, filter, 512); for(size_t i = 0; i < _countof(filter); i++) { if(filter[i] == '|') filter[i] = '\0'; } std::wstring filterString = getTemplateFilter(templateContent); browse.lpstrFile = exportedname; browse.lpstrFilter = filterString.c_str(); browse.nFilterIndex = 1; browse.lpstrFileTitle = nullptr; browse.nMaxFile = 512; browse.lpstrFile = exportedname; browse.Flags = OFN_OVERWRITEPROMPT; if(GetSaveFileName(&browse) == 0) return; // export patches ExportPatch(templateContent, patchList.get(), numPatches); } else if(info->hEntry == 3) { std::wstring text = LoadWideString(IDS_ABOUT); std::wstring compiledate; std::string compiledateASCII(__DATE__); utf8::utf8to16(compiledateASCII.begin(), compiledateASCII.end(), std::back_inserter(compiledate)); ReplaceWString(text, L"$compiledate", compiledate); MessageBox(hwndDlg, text.c_str(), LoadWideString(IDS_PLUGNAME).c_str(), MB_OK); } else { __debugbreak(); } }