void HelpWindow::AddFurnitureManipulationInformation(int column) { auto furnitureManiuplationGrid = new HelpWindowGridLayout(); furnitureManiuplationGrid->AddHeading("Furniture Object Manipulation"); furnitureManiuplationGrid->AddTitle("Movement"); furnitureManiuplationGrid->AddDescription(""); furnitureManiuplationGrid->AddShortcut("X + Left Click Drag\nY + Left Click Drag\nZ + Left Click Drag"); furnitureManiuplationGrid->AddDescription(QString("<b>Move mouse up/down:</b> Move object ") .append("in the positive/negative direction of the axis ") .append("corresponding to X, Y, and Z")); furnitureManiuplationGrid->AddTitle("Rotation"); furnitureManiuplationGrid->AddDescription(""); furnitureManiuplationGrid->AddShortcut("X + Left Click Drag\nY + Left Click Drag\nZ + Left Click Drag"); furnitureManiuplationGrid->AddDescription(QString("<b>Move mouse up/down:</b> rotate object ") .append("in the positive/negative angle direction of the axis ") .append("corresponding to X, Y, and Z")); furnitureManiuplationGrid->AddTitle("Scale"); furnitureManiuplationGrid->AddDescription(""); furnitureManiuplationGrid->AddShortcut("Left Click Drag"); furnitureManiuplationGrid->AddDescription("<b>Move mouse up/down</b>: uniformly scale the object up/down"); furnitureManiuplationGrid->AddShortcut("N"); furnitureManiuplationGrid->AddDescription("Cycle wall-mounted furnitures between the walls"); furnitureManiuplationGrid->AddShortcut("DELETE"); furnitureManiuplationGrid->AddDescription("Remove the currently selected object from the scene"); furnitureManiuplationGrid->AddShortcut("SPACE"); furnitureManiuplationGrid->AddDescription("Cycle through exising objects"); furnitureManiuplationGrid->AddShortcut("ESCAPE"); furnitureManiuplationGrid->AddDescription("De-select the currently selected object"); AddToColumn(furnitureManiuplationGrid, column); }
void HelpWindow::AddWallAndFloorInformation(int column) { auto wallFloorControlsGrid = new HelpWindowGridLayout(); wallFloorControlsGrid->AddHeading("Wall and Floor Controls"); wallFloorControlsGrid->AddTitle("Change Wall Color"); wallFloorControlsGrid->AddDescription("Shows a color picker dialog to change wall color"); wallFloorControlsGrid->AddTitle("Change Wall Texture"); wallFloorControlsGrid->AddDescription("Shows texture selection to change wall texture"); wallFloorControlsGrid->AddTitle("Change Floor Texture"); wallFloorControlsGrid->AddDescription("Shows a color picker dialog to change floor color"); wallFloorControlsGrid->AddTitle("Change Floor Texture"); wallFloorControlsGrid->AddDescription("Shows texture selection to change floor texture"); AddToColumn(wallFloorControlsGrid, column); }
void Dlg_GameLibrary::RefreshList() { std::map<std::string, std::string>::iterator iter = Results.begin(); while (iter != Results.end()) { const std::string& filepath = iter->first; const std::string& md5 = iter->second; if (VisibleResults.find(filepath) == VisibleResults.end()) { // Not yet added, if (m_GameHashLibrary.find(md5) != m_GameHashLibrary.end()) { // Found in our hash library! const GameID nGameID = m_GameHashLibrary[md5]; RA_LOG("Found one! Game ID %d (%s)", nGameID, m_GameTitlesLibrary[nGameID].c_str()); const std::string& sGameTitle = m_GameTitlesLibrary[nGameID]; AddTitle(sGameTitle, filepath, nGameID); SetDlgItemText(m_hDialogBox, IDC_RA_SCANNERFOUNDINFO, NativeStr(sGameTitle).c_str()); VisibleResults[filepath] = md5; // Copy to VisibleResults } } iter++; } }
void HelpWindow::AddFurnitureInformation(int column) { auto furnitureGrid = new HelpWindowGridLayout(); furnitureGrid->AddHeading("Furniture Controls"); furnitureGrid->AddTitle("Movement Speed"); furnitureGrid->AddDescription("Changes speed of furniture movement"); furnitureGrid->AddTitle("Rotation Speed"); furnitureGrid->AddDescription("Changes speed of furniture rotation"); furnitureGrid->AddTitle("Scale Speed"); furnitureGrid->AddDescription("Changes speed of furniture scaling"); furnitureGrid->AddTitle("Action Selection Radio Buttons"); furnitureGrid->AddDescription("Select whether to move, rotate, or scale furniture"); furnitureGrid->AddTitle("Furniture Model Selection Dropdown"); furnitureGrid->AddDescription("Select which furniture object to load"); AddToColumn(furnitureGrid, column); }
void HelpWindow::AddStatusBarInformation(int column) { auto statusBarGrid = new HelpWindowGridLayout(); statusBarGrid->AddHeading("Status Bar"); statusBarGrid->AddTitle("Status Message Text"); statusBarGrid->AddDescription(QString("Shows program status information such as furniture") .append("loading status or error messages")); statusBarGrid->AddTitle("OBB Status"); statusBarGrid->AddDescription("Furnitures' oriented bounding box display status"); statusBarGrid->AddTitle("AABB Status"); statusBarGrid->AddDescription("Furnitures' axis-aligned bounding box display status"); statusBarGrid->AddTitle("W-Axis (World Axis)"); statusBarGrid->AddDescription("Room's center axis display status"); statusBarGrid->AddTitle("L-Axis (Local Axis)"); statusBarGrid->AddDescription("Furnitures' axis display status"); AddToColumn(statusBarGrid, column); }
void HelpWindow::AddWorldAxisInformation(int column) { auto worldAxisGrid = new HelpWindowGridLayout(); worldAxisGrid->AddHeading("World (room) Axis/Pivot Controls"); worldAxisGrid->AddTitle(""); worldAxisGrid->AddDescription("(only when the axis is being displayed)"); worldAxisGrid->AddShortcut("SHIFT + L"); worldAxisGrid->AddDescription("Display room's pivot"); worldAxisGrid->AddShortcut("{"); worldAxisGrid->AddDescription("Move axis up"); worldAxisGrid->AddShortcut("/"); worldAxisGrid->AddDescription("Move axis down"); worldAxisGrid->AddShortcut("'"); worldAxisGrid->AddDescription("Move axis to the right"); worldAxisGrid->AddShortcut(";"); worldAxisGrid->AddDescription("Move axis to the left"); worldAxisGrid->AddShortcut("SHIFT + /"); worldAxisGrid->AddDescription("Reset axis' location to its original position"); AddToColumn(worldAxisGrid, column); }
void Dlg_GameLibrary::ScanAndAddRomsRecursive(const std::string& sBaseDir) { char sSearchDir[2048]; sprintf_s(sSearchDir, 2048, "%s\\*.*", sBaseDir.c_str()); WIN32_FIND_DATA ffd; HANDLE hFind = FindFirstFile(NativeStr(sSearchDir).c_str(), &ffd); if (hFind != INVALID_HANDLE_VALUE) { unsigned int ROM_MAX_SIZE = 6 * 1024 * 1024; unsigned char* sROMRawData = new unsigned char[ROM_MAX_SIZE]; do { if (KEYDOWN(VK_ESCAPE)) break; memset(sROMRawData, 0, ROM_MAX_SIZE); //?!?? const std::string sFilename = Narrow(ffd.cFileName); if (strcmp(sFilename.c_str(), ".") == 0 || strcmp(sFilename.c_str(), "..") == 0) { // Ignore 'this' } else if (ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { RA_LOG("Directory found: %s\n", ffd.cFileName); std::string sRecurseDir = sBaseDir + "\\" + sFilename.c_str(); ScanAndAddRomsRecursive(sRecurseDir); } else { LARGE_INTEGER filesize; filesize.LowPart = ffd.nFileSizeLow; filesize.HighPart = ffd.nFileSizeHigh; if (filesize.QuadPart < 2048 || filesize.QuadPart > ROM_MAX_SIZE) { // Ignore: wrong size RA_LOG("Ignoring %s, wrong size\n", sFilename.c_str()); } else { // Parse as ROM! RA_LOG("%s looks good: parsing!\n", sFilename.c_str()); char sAbsFileDir[2048]; sprintf_s(sAbsFileDir, 2048, "%s\\%s", sBaseDir.c_str(), sFilename.c_str()); HANDLE hROMReader = CreateFile(NativeStr(sAbsFileDir).c_str(), GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (hROMReader != INVALID_HANDLE_VALUE) { BY_HANDLE_FILE_INFORMATION File_Inf; int nSize = 0; if (GetFileInformationByHandle(hROMReader, &File_Inf)) nSize = (File_Inf.nFileSizeHigh << 16) + File_Inf.nFileSizeLow; DWORD nBytes = 0; BOOL bResult = ReadFile(hROMReader, sROMRawData, nSize, &nBytes, NULL); const std::string sHashOut = RAGenerateMD5(sROMRawData, nSize); if (m_GameHashLibrary.find(sHashOut) != m_GameHashLibrary.end()) { const unsigned int nGameID = m_GameHashLibrary[std::string(sHashOut)]; RA_LOG("Found one! Game ID %d (%s)", nGameID, m_GameTitlesLibrary[nGameID].c_str()); const std::string& sGameTitle = m_GameTitlesLibrary[nGameID]; AddTitle(sGameTitle, sAbsFileDir, nGameID); SetDlgItemText(m_hDialogBox, IDC_RA_GLIB_NAME, NativeStr(sGameTitle).c_str()); InvalidateRect(m_hDialogBox, nullptr, TRUE); } CloseHandle(hROMReader); } } } } while (FindNextFile(hFind, &ffd) != 0); delete[](sROMRawData); sROMRawData = NULL; FindClose(hFind); } SetDlgItemText(m_hDialogBox, IDC_RA_SCANNERFOUNDINFO, TEXT("Scanning complete")); }
bool OnGossipSelect(Player *player, Creature *creature, uint32 sender, uint32 action ) { if (!player->getAttackers().empty()) { creature->MonsterWhisper(MSG_ERR_INCOMBAT, player->GetGUID()); player->CLOSE_GOSSIP_MENU(); return false; } switch (action) { case 2: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(144); AddTitle(player, creature, titleInfo); } break; case 3: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(62); AddTitle(player, creature, titleInfo); } break; case 4: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(135); AddTitle(player, creature, titleInfo); } break; case 5: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(141); AddTitle(player, creature, titleInfo); } break; case 6: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(138); AddTitle(player, creature, titleInfo); } break; case 7: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(170); AddTitle(player, creature, titleInfo); } break; case 8: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(28); AddTitle(player, creature, titleInfo); } break; case 9: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(48); AddTitle(player, creature, titleInfo); } break; case 10: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(134); AddTitle(player, creature, titleInfo); } break; case 11: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(72); AddTitle(player, creature, titleInfo); } break; case 12: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_42, GOSSIP_SENDER_MAIN, 13); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_113, GOSSIP_SENDER_MAIN, 14); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_147, GOSSIP_SENDER_MAIN, 15); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_143, GOSSIP_SENDER_MAIN, 16); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_79, GOSSIP_SENDER_MAIN, 17); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_64, GOSSIP_SENDER_MAIN, 18); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_43, GOSSIP_SENDER_MAIN, 19); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_80, GOSSIP_SENDER_MAIN, 20); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_47, GOSSIP_SENDER_MAIN, 21); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_122, GOSSIP_SENDER_MAIN, 22); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_BACK_1, GOSSIP_SENDER_MAIN, 56); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_NEXT_3, GOSSIP_SENDER_MAIN, 23); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,creature->GetGUID()); break; case 13: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(42); AddTitle(player, creature, titleInfo); } break; case 14: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(113); AddTitle(player, creature, titleInfo); } break; case 15: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(147); AddTitle(player, creature, titleInfo); } break; case 16: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(143); AddTitle(player, creature, titleInfo); } break; case 17: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(79); AddTitle(player, creature, titleInfo); } break; case 18: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(64); AddTitle(player, creature, titleInfo); } break; case 19: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(43); AddTitle(player, creature, titleInfo); } break; case 20: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(80); AddTitle(player, creature, titleInfo); } break; case 21: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(47); AddTitle(player, creature, titleInfo); } break; case 22: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(122); AddTitle(player, creature, titleInfo); } break; case 23: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_81, GOSSIP_SENDER_MAIN, 24); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_78, GOSSIP_SENDER_MAIN, 25); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_156, GOSSIP_SENDER_MAIN, 26); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_83, GOSSIP_SENDER_MAIN, 27); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_71, GOSSIP_SENDER_MAIN, 28); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_142, GOSSIP_SENDER_MAIN, 29); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_146, GOSSIP_SENDER_MAIN, 30); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_150, GOSSIP_SENDER_MAIN, 31); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_46, GOSSIP_SENDER_MAIN, 32); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_278, GOSSIP_SENDER_MAIN, 33); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_BACK_2, GOSSIP_SENDER_MAIN, 57); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_NEXT_4, GOSSIP_SENDER_MAIN, 34); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,creature->GetGUID()); break; case 24: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(81); AddTitle(player, creature, titleInfo); } break; case 25: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(78); AddTitle(player, creature, titleInfo); } break; case 26: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(156); AddTitle(player, creature, titleInfo); } break; case 27: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(83); AddTitle(player, creature, titleInfo); } break; case 28: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(71); AddTitle(player, creature, titleInfo); } break; case 29: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(142); AddTitle(player, creature, titleInfo); } break; case 30: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(146); AddTitle(player, creature, titleInfo); } break; case 31: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(150); AddTitle(player, creature, titleInfo); } break; case 32: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(46); AddTitle(player, creature, titleInfo); } break; case 33: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(278); AddTitle(player, creature, titleInfo); } break; case 34: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_139, GOSSIP_SENDER_MAIN, 35); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_77, GOSSIP_SENDER_MAIN, 36); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_74, GOSSIP_SENDER_MAIN, 37); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_45, GOSSIP_SENDER_MAIN, 38); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_177, GOSSIP_SENDER_MAIN, 39); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_151, GOSSIP_SENDER_MAIN, 40); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_171, GOSSIP_SENDER_MAIN, 41); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_131, GOSSIP_SENDER_MAIN, 42); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_173, GOSSIP_SENDER_MAIN, 43); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_157, GOSSIP_SENDER_MAIN, 44); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_BACK_3, GOSSIP_SENDER_MAIN, 58); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_NEXT_5, GOSSIP_SENDER_MAIN, 45); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,creature->GetGUID()); break; case 35: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(139); AddTitle(player, creature, titleInfo); } break; case 36: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(77); AddTitle(player, creature, titleInfo); } break; case 37: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(74); AddTitle(player, creature, titleInfo); } break; case 38: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(45); AddTitle(player, creature, titleInfo); } break; case 39: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(177); AddTitle(player, creature, titleInfo); } break; case 40: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(151); AddTitle(player, creature, titleInfo); } break; case 41: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(171); AddTitle(player, creature, titleInfo); } break; case 42: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(131); AddTitle(player, creature, titleInfo); } break; case 43: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(173); AddTitle(player, creature, titleInfo); } break; case 44: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(157); AddTitle(player, creature, titleInfo); } break; case 45: player->PlayerTalkClass->ClearMenus(); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_75, GOSSIP_SENDER_MAIN, 46); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_140, GOSSIP_SENDER_MAIN, 47); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_172, GOSSIP_SENDER_MAIN, 48); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_124, GOSSIP_SENDER_MAIN, 49); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_133, GOSSIP_SENDER_MAIN, 50); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_76, GOSSIP_SENDER_MAIN, 51); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_125, GOSSIP_SENDER_MAIN, 52); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_145, GOSSIP_SENDER_MAIN, 53); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_155, GOSSIP_SENDER_MAIN, 54); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TRAINER, MSG_GOSSIP_TEXT_84, GOSSIP_SENDER_MAIN, 55); player->ADD_GOSSIP_ITEM(GOSSIP_ICON_TALK, MSG_GOSSIP_TEXT_BACK_4, GOSSIP_SENDER_MAIN, 59); player->SEND_GOSSIP_MENU(DEFAULT_GOSSIP_MESSAGE,creature->GetGUID()); break; case 46: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(75); AddTitle(player, creature, titleInfo); } break; case 47: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(140); AddTitle(player, creature, titleInfo); } break; case 48: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(172); AddTitle(player, creature, titleInfo); } break; case 49: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(124); AddTitle(player, creature, titleInfo); } break; case 50: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(133); AddTitle(player, creature, titleInfo); } break; case 51: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(125); AddTitle(player, creature, titleInfo); } break; case 52: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(76); AddTitle(player, creature, titleInfo); } break; case 53: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(145); AddTitle(player, creature, titleInfo); } break; case 54: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(155); AddTitle(player, creature, titleInfo); } break; case 55: {CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(84); AddTitle(player, creature, titleInfo); } break; case 56: OnGossipHello(player, creature); break; case 57: OnGossipSelect(player, creature, sender, 12); break; case 58: OnGossipSelect(player, creature, sender, 23); break; case 59: OnGossipSelect(player, creature, sender, 34); break; } return true; }
void ContentKaiVector::DownloadCompleted(HttpItem * itm) { if(itm->getResponseCode() == 200) { if(strcmp(itm->getTag().c_str(), VERSION_URLTAG) == 0) { MemoryBuffer& buff = itm->GetMemoryBuffer(); DWORD dwLen = buff.GetDataLength(); BYTE * verData = buff.GetData(); CHAR * context = NULL; CHAR * szData = strtok_s( (char*)verData, ";", &context); if(szData != NULL && strcmp(szData, VERSION_HEADER) == 0) { m_nVersion = atoi(strtok_s(NULL, ";", &context)); DebugMsg("ContentKaiVector", "Vector Version = %d", m_nVersion); } context = NULL; string fullPath = vectorDataPath + "\\KaiContent.bin"; Load(fullPath); } else if(strcmp(itm->getTag().c_str(), APPSPEC_URLTAG) == 0) { m_mapTitles.clear(); MemoryBuffer& buff = itm->GetMemoryBuffer(); buff.GetDataLength(); BYTE * phpData = buff.GetData(); CHAR * context = NULL; CHAR * szData = strtok_s( (char*)phpData, ";", &context); string szHeader = szData; if(szData != NULL && szHeader.find(APPSPEC_HEADER) != string::npos) { string strXex, strArena; CHAR * szToken; while( (szToken = strtok_s( NULL, ";", &context )) != NULL) { strXex = szToken; if(strXex.find(APPSPEC_PREFIX) == 0 || strXex.find(APPSPEC_PREFIX_CLASSIC) == 0) { strArena = strtok_s(NULL, ";", &context); DWORD dwTitleId = strtoul(strXex.substr(4, strXex.length()).c_str(), NULL, 16); strArena = str_replaceallA(strArena, "&", "&"); AddTitle(dwTitleId, strArena); } } m_bDirty = true; context = NULL; DebugMsg("ContentKaiVector", "Download and Parsing Completed Successfully."); Save(vectorDataPath + "\\KaiContent.bin"); } } } else { if(strcmp(itm->getTag().c_str(), VERSION_URLTAG) == 0) { DebugMsg("ContentKaiVector", "Failed to Download Version File, Processing existing data"); // HttpItem failed- we'll need to try to load the item already from file, or fail completely string fullPath = vectorDataPath + "\\KaiContent.bin"; Load(fullPath); } } }
//intiace - vola se ze vsech konstruktoru void CGUIEditWindow::InitEditWindow(float _x, float _y, float _sx, float _sy, CDXFont *dxfont, int textColor, int bgColor, int wordwrap,int noscrollbars, int _multiline, int xmargin, int ymargin, char *title_text, CGUIRectHost *_icon, UINT resizer_color) { RemoveFromTrash(); //kvuli vyjimkam - viz. GUI highlight = 0; //bez highlitovani highlighter = 0; selectonfocus = 0; changed = 0; mousesel=0; //mysi se ted nic neoznacuje SetAvailableEvents(availableEvents,numEvents); //nastavi eventy multiline = _multiline; //viceradkovy editor? defaultfont=0; //defaultni font allowtab = 0; //zakazu psat tab readonly = 0; //neni readonly if(title_text) { //pridam titulek, ikonu, resizery a scrolbary AddResizers(resizer_color,styleSet->Get("Resizers")); //pridam resizery AddTitle(title_text,_icon,STD_TITLE_HEIGHT); //pridam titulek //nastavi velikost viewportu CGUIStyle &style = *(styleSet->Get("Resizers")); SetViewPortBackWnd(style[1], style[0]+STD_TITLE_HEIGHT, _sx - 2*style[1], _sy - 2*style[0]-STD_TITLE_HEIGHT); //nastavi limity velikosti SetLimitSizes(4*STD_TITLE_HEIGHT,3*STD_SCROLLBAR_WIDTH+STD_TITLE_HEIGHT+2*style[0]); if(!noscrollbars) { //pridam vertikalni scrolbar CGUIScrollBar* dual = AddSimpleScrollbar(Vertical, sx-style[1]-STD_SCROLLBAR_WIDTH, style[0]+STD_TITLE_HEIGHT, STD_SCROLLBAR_WIDTH, sy - 2*style[0]-STD_TITLE_HEIGHT, STD_SCROLLBAR_SHIFT, 0, STD_SCROLLBAR_SLIDER_RESIZE,0,0,0); if(!wordwrap) //budu zalamovat radky? { //nebudu - pridam horizontalni scrolbar AddSimpleScrollbar(Horizontal, style[1], sy-style[0]-STD_SCROLLBAR_WIDTH, STD_SCROLLBAR_WIDTH, sx - 2*style[1], STD_SCROLLBAR_SHIFT, 0, STD_SCROLLBAR_SLIDER_RESIZE,dual,0,0); } } }else{ //bez titulku, ramecku if(!noscrollbars) { //pridam vertikalni scrolbar CGUIScrollBar* dual = AddSimpleScrollbar(Vertical, sx-STD_SCROLLBAR_WIDTH, 0, STD_SCROLLBAR_WIDTH, sy, STD_SCROLLBAR_SHIFT, 0, STD_SCROLLBAR_SLIDER_RESIZE,0,0,0); if(!wordwrap) //budu zalamovat radky? { //nebudu - pridam horizontalni scrolbar AddSimpleScrollbar(Horizontal, 0, sy-STD_SCROLLBAR_WIDTH, STD_SCROLLBAR_WIDTH, sx, STD_SCROLLBAR_SHIFT, 0, STD_SCROLLBAR_SLIDER_RESIZE,dual,0,0); } } } //chci dostaveat zpravy od mysi a timeru MsgAcceptConsume(MsgMouseL|MsgMouseOver); MsgAcceptConsume(MsgTimer); text = NULL; blttext = NULL; focused=0; //nejsem focusovany if(!dxfont) { //neni zadam defaultni font dxfont = (CDXFont*) RefMgr->Find(DEFAULT_EDITFONT); //najdu defaultfont if(!dxfont) { //chyba - font neexistuje throw CExc(eGUI,E_BAD_ARGUMENTS,"Font not exist!"); } } dxfont->AddRef(); //zvysim pocet referenci defaultfont = dxfont; text = new CFormatedText(dxfont,textColor,wordwrap); //vytvori formatovany text CTextBlock *b; b = new CTextBlock(""); text->AddTextBlockToEnd(b); //pridam jeden prazdny blok blttext = new CBltFormatedText(text,xmargin,ymargin); //vytvori zobrazovac formatovaneho textu back->AddChild(blttext); //pridam zobrazovac dovnitr okna text->CreateCursor(); //vytvori textovy kurzor blttext->SetCursor(1); if(_sy<0) //pokud _sy<0 -> spocitam vysku editboxu { _sy = (float)blttext->CmpEditBoxHeight(); Resize(_sx,_sy); } float xx,yy; GetVPSize(xx,yy); //zjisti velikost viewportu blttext->SetWidth((int)xx); //nastavi sirku textu - pro zalamovani SetTextSize(); //opravi scrollbary ScrollToCursor(); blttext->BlinkCursor(0); //zmizi kurzor cursorblinktimerID=0; mousescrolltimerID=0; mousescroll=0; AddToTrash(); //kvuli vyjimkam - viz. GUI }