// *************************************************************************** void CEncyclopediaManager::rebuildAlbumPage(uint32 albumName) { uint32 i; CEncyMsgAlbum *pAlbum = NULL; // Select the right album for (i = 0; i < _Albums.size(); ++i) { if (_Albums[i].Name == albumName) { _AlbumNameSelected = _Albums[i].Name; pAlbum = &_Albums[i]; break; } } if (pAlbum == NULL) return; // Update the right page CInterfaceManager *pIM = CInterfaceManager::getInstance(); // Hide and show good group CInterfaceElement *pIE = pIM->getElementFromId(PAGE_ENCY_ALBUM); nlassert(pIE != NULL); pIE->setActive(true); pIE = pIM->getElementFromId(PAGE_ENCY_HELP); pIE->setActive(false); pIE = pIM->getElementFromId(PAGE_ENCY_THEMA); pIE->setActive(false); // Setup title CViewTextID *pVT = dynamic_cast<CViewTextID*>(pIM->getElementFromId(PAGE_ENCY_ALBUM ":title")); nlassert(pVT != NULL); pVT->setTextId(pAlbum->Name); // Setup brick reward pIM->getDbProp("UI:VARIABLES:ENCY:ALBUMBRICK:SHEET")->setValue32(pAlbum->RewardBrick); CViewText *pRBVT = dynamic_cast<CViewText*>(pIM->getElementFromId(PAGE_ENCY_ALBUM ":reward:desc")); if (pRBVT != NULL) { STRING_MANAGER::CStringManagerClient *pSMC = STRING_MANAGER::CStringManagerClient::instance(); const ucstring desc(pSMC->getSBrickLocalizedDescription(CSheetId(pAlbum->RewardBrick))); pRBVT->setText(desc); } }
// *************************************************************************** void CEncyclopediaManager::rebuildThemaPage(uint32 themaName) { uint32 i; CEncyMsgThema *pThema = NULL; // Select the right album for (i = 0; i < _Albums.size(); ++i) { pThema = _Albums[i].getThema(themaName); if (pThema != NULL) { _AlbumNameSelected = _Albums[i].Name; break; } } if (pThema == NULL) return; // Update the right page CInterfaceManager *pIM = CInterfaceManager::getInstance(); // Hide and show good group CInterfaceElement *pIE = pIM->getElementFromId(PAGE_ENCY_ALBUM); nlassert(pIE != NULL); pIE->setActive(false); pIE = pIM->getElementFromId(PAGE_ENCY_HELP); pIE->setActive(false); pIE = pIM->getElementFromId(PAGE_ENCY_THEMA); pIE->setActive(true); // Setup title CViewTextID *pVT = dynamic_cast<CViewTextID*>(pIM->getElementFromId(PAGE_ENCY_THEMA ":title")); nlassert(pVT != NULL); pVT->setTextId(pThema->Name); // Setup rewards pVT = dynamic_cast<CViewTextID*>(pIM->getElementFromId(PAGE_ENCY_THEMA ":reward_text:desc")); nlassert(pVT != NULL); pVT->setTextId(pThema->RewardText); // Setup brick reward pIM->getDbProp("UI:VARIABLES:ENCY:REWARDBRICK:SHEET")->setValue32(pThema->RewardSheet); CViewText *pRBVT = dynamic_cast<CViewText*>(pIM->getElementFromId(PAGE_ENCY_THEMA ":reward:desc")); nlassert(pRBVT != NULL); STRING_MANAGER::CStringManagerClient *pSMC = STRING_MANAGER::CStringManagerClient::instance(); CEntitySheet *pES = SheetMngr.get(CSheetId(pThema->RewardSheet)); if (pES != NULL) { if (pES->type() == CEntitySheet::ITEM) { const ucstring desc(pSMC->getItemLocalizedDescription(CSheetId(pThema->RewardSheet))); pRBVT->setText(desc); } else if (pES->type() == CEntitySheet::SBRICK) { const ucstring desc(pSMC->getSBrickLocalizedDescription(CSheetId(pThema->RewardSheet))); pRBVT->setText(desc); } else if (pES->type() == CEntitySheet::SPHRASE) { const ucstring desc(pSMC->getSPhraseLocalizedDescription(CSheetId(pThema->RewardSheet))); pRBVT->setText(desc); } } // Setup the total number of steps uint32 nNbSteps = pThema->NbTask - 1; // 0th is the rite pIM->getDbProp("UI:VARIABLES:ENCY:STEPS")->setValue32(nNbSteps); // Count number of tasks done uint32 nNbTaskDone = 0; for (i = 0; i < pThema->NbTask; ++i) if (pThema->getTaskState((uint8)i) == 2) // 2 == finished ++nNbTaskDone; pIM->getDbProp("UI:VARIABLES:ENCY:DONE")->setValue32(nNbTaskDone); // setup rite & tasks for (i = 0; i < pThema->NbTask; ++i) { string sTmp; if (i == 0) sTmp = PAGE_ENCY_THEMA ":todo2:rite"; else sTmp = PAGE_ENCY_THEMA ":todo:task" + toString(i); // setup task description CViewTextID *pText = dynamic_cast<CViewTextID*>(pIM->getElementFromId(sTmp+":desc")); nlassert(pText != NULL); pText->setTextId(pThema->TaskName[i]); // setup task NPC name CStringPostProcessNPCRemoveTitle *pSPPRT = new CStringPostProcessNPCRemoveTitle; pIM->addServerID (sTmp+":npc:uc_hardtext", pThema->TaskNPCName[i], pSPPRT); // If the task is not known gray it if (pThema->getTaskState((uint8)i) == 0) pText->setAlpha(80); else pText->setAlpha(160); // If the task is finished toggle it CViewBitmap *pBitmap = dynamic_cast<CViewBitmap*>(pIM->getElementFromId(sTmp+":done")); nlassert(pBitmap != NULL); if (pThema->getTaskState((uint8)i) == 2) pBitmap->setActive(true); else pBitmap->setActive(false); } }