//================================================================================================ void CWeatherManagerClient::init() { // Get the list of the weather setups sheets std::vector<CSheetId> result; CSheetId::buildIdVector(result, "weather_setup"); std::vector<const CWeatherSetupSheetBase *> wsSheets; std::vector<std::string> wsSheetsNames; for(uint k = 0; k < result.size(); ++k) { CEntitySheet *sheet = SheetMngr.get(result[k]); if (sheet && sheet->type() == CEntitySheet::WEATHER_SETUP) { //nlwarning("Sheet name = %s, weather setup = %s", result[k].toString().c_str(), NLMISC::CStringMapper::unmap((dynamic_cast<CWeatherSetupSheetBase *>(sheet))->SetupName).c_str()); wsSheetsNames.push_back(result[k].toString()); wsSheets.push_back(dynamic_cast<CWeatherSetupSheetBase *>(sheet)); } } init(wsSheets, wsSheetsNames); }
/* * draw the view */ void CViewBitmapFaberMp::draw () { ///\todo nico : draw icon /*xOffset+=_XReal; yOffset+=_YReal; _SheetText->setText(ucstring(toString(_SheetId.getSInt32()))); _SheetText->draw(xOffset,yOffset+20); _QuantityText->setText(ucstring(toString(_Quantity.getSInt32()))); _QuantityText->draw(xOffset,yOffset+10); _QualityText->setText(ucstring(toString(_Quality.getSInt32()))); _QualityText->draw(xOffset,yOffset); */ //get the item CViewRenderer &rVR = CInterfaceManager::getInstance()->getViewRenderer(); uint32 sheet = (uint32)_SheetId.getSInt64(); CSheetId sheetId(sheet); CEntitySheet *pES = SheetMngr.get (sheetId); if ((pES != NULL) && (pES->type() == CEntitySheet::ITEM)) { CItemSheet *pIS = (CItemSheet*)pES; if (pIS->getIconBack() != "") { if (_AccIconBackString != pIS->getIconBack()) { _AccIconBackString = pIS->getIconBack(); _AccIconBackId = rVR.getTextureIdFromName (_AccIconBackString); } rVR.drawRotFlipBitmap (_RenderLayer, _XReal, _YReal, _WReal, _HReal, (uint8)_Rot, _Flip, _AccIconBackId); } if (pIS->getIconMain() != "") { if (_AccIconMainString != pIS->getIconMain()) { _AccIconMainString = pIS->getIconMain(); _AccIconMainId = rVR.getTextureIdFromName (_AccIconMainString); } rVR.drawRotFlipBitmap (_RenderLayer, _XReal, _YReal, _WReal, _HReal, (uint8)_Rot, _Flip, _AccIconMainId); } if (pIS->getIconOver() != "") { if (_AccIconOverString != pIS->getIconOver()) { _AccIconOverString = pIS->getIconOver(); _AccIconOverId = rVR.getTextureIdFromName (_AccIconOverString); } rVR.drawRotFlipBitmap (_RenderLayer, _XReal, _YReal, _WReal, _HReal, (uint8)_Rot, _Flip, _AccIconOverId); } /* // draw wanted quantity { //draw the units uint units = _NeededQuantity.getSInt32() % 10; rVR.drawRotFlipBitmap (_RenderLayer, _XReal+xOffset+13, _YReal+yOffset, 8, 8, (uint8)_Rot.getSInt32(), _Flip.getBool(), rVR.getFigurTextureId(units), _Color.getRGBA()); //draw the tens uint tens = _NeededQuantity.getSInt32() / 10; sint32 tensId; if (tens > 9 || tens == 0) tensId = rVR.getFigurBlankTextureId(); else tensId = rVR.getFigurTextureId(tens); rVR.drawRotFlipBitmap (_RenderLayer, _XReal+xOffset+8, _YReal+yOffset, 8, 8, (uint8)_Rot.getSInt32(), _Flip.getBool(), tensId, _Color.getRGBA()); } // draw current quantity if (_Quantity.getSInt32() > 1) { //draw the units uint units = _Quantity.getSInt32() % 10; rVR.drawRotFlipBitmap (_RenderLayer, _XReal+xOffset+_WReal-8, _YReal+yOffset, 8, 8, (uint8)_Rot.getSInt32(), _Flip.getBool(), rVR.getFigurTextureId(units), _Color.getRGBA()); //draw the tens uint tens = _Quantity.getSInt32() / 10; sint32 tensId; if (tens > 9 || tens == 0) tensId = rVR.getFigurBlankTextureId(); else tensId = rVR.getFigurTextureId(tens); rVR.drawRotFlipBitmap (_RenderLayer, _XReal+xOffset+_WReal-13, _YReal+yOffset, 8, 8, (uint8)_Rot.getSInt32(), _Flip.getBool(), tensId, _Color.getRGBA()); } */ uint16 qty = (uint16) ( _NeededQuantity.getSInt32() - _Quantity.getSInt32() ); // draw missing quantity if (qty > 1) { //draw the units uint units = qty % 10; rVR.drawRotFlipBitmap (_RenderLayer, _XReal+_WReal-8, _YReal, 8, 8, (uint8)_Rot, _Flip, rVR.getFigurTextureId(units), _Color); //draw the tens uint tens = qty / 10; sint32 tensId; if (tens > 9 || tens == 0) tensId = rVR.getFigurBlankTextureId(); else tensId = rVR.getFigurTextureId(tens); rVR.drawRotFlipBitmap (_RenderLayer, _XReal+_WReal-13, _YReal, 8, 8, (uint8)_Rot, _Flip, tensId, _Color); } } else { if (_TextureNoItemId == -2) _TextureNoItemId = rVR.getTextureIdFromName (_TextureNoItemName); rVR.drawRotFlipBitmap (_RenderLayer, _XReal, _YReal, _WReal, _HReal, (uint8)_Rot, _Flip, _TextureNoItemId, _ColorNoItem.getRGBA()); } }
// *************************************************************************** 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); } }
// *************************************************************************** void CSheetManagerEntry::readGeorges (const NLMISC::CSmartPtr<NLGEORGES::UForm> &form, const NLMISC::CSheetId &sheetId) { // Load the form with given sheet id if (form) { // if (EntitySheet != NULL) // delete EntitySheet; CEntitySheet *sheet = NULL; std::string extension = NLMISC::CSheetId::fileExtensionFromType(sheetId.getSheetType()); // create the new structure if (extension == "creature") sheet = new CCharacterSheet; else if(extension == "player") sheet = new CPlayerSheet; else if(extension == "fx") sheet = new CFXSheet; else if(extension == "building") sheet = new CBuildingSheet; else if(extension == "sitem" || extension == "item" ) sheet = new CItemSheet; else if(extension == "plant") sheet = new CPlantSheet; else if(extension == "death_impact") sheet = new CPactSheet; else if(extension == "mission") sheet = new CMissionSheet; else if(extension == "race_stats") sheet = new CRaceStatsSheet; else if(extension == "light_cycle") sheet = new CLightCycleSheet; else if(extension == "weather_setup") sheet = new CWeatherSetupSheet; else if(extension == "continent") sheet = new CContinentSheet; else if(extension == "world") sheet = new CWorldSheet; else if(extension == "weather_function_params") sheet = new CWeatherFunctionParamsSheet; else if(extension == "mission_icon") sheet = new CMissionIconSheet; else if(extension == "sbrick") sheet = new CSBrickSheet; else if(extension == "sphrase") sheet = new CSPhraseSheet; else if(extension == "skill_tree") sheet = new CSkillsTreeSheet; else if(extension == "titles") sheet = new CUnblockTitlesSheet; else if(extension == "succes_chances_table") sheet = new CSuccessTableSheet; else if(extension == "automaton_list") sheet = new CAutomatonListSheet; else if(extension == "animset_list") sheet = new CAnimationSetListSheet; else if(extension == "animation_fx") sheet = new CAnimationFXSheet; else if(extension == "id_to_string_array") sheet = new CIDToStringArraySheet; else if(extension == "emot") sheet = new CEmotListSheet; else if(extension == "forage_source") sheet = new CForageSourceSheet; else if(extension == "flora") sheet = new CFloraSheet; else if(extension == "animation_fx_set") sheet = new CAnimationFXSetSheet; else if(extension == "attack_list") sheet = new CAttackListSheet; else if(extension == "text_emotes") sheet = new CTextEmotListSheet; else if(extension == "sky") sheet = new CSkySheet; else if(extension == "outpost") sheet = new COutpostSheet; else if(extension == "outpost_building") sheet = new COutpostBuildingSheet; else if(extension == "outpost_squad") sheet = new COutpostSquadSheet; else if(extension == "faction") sheet = new CFactionSheet; else { nlwarning("CSheetManager::loadSheet: Do not know how to create the class from the sheet '%s'.", sheetId.toString().c_str()); return; } // Build the sheet from an external file. sheet->Id = sheetId; sheet->build(form->getRootNode()); EntitySheet = sheet; SheetMngr.processSheet(EntitySheet); } // Error while loading the form. else { // nlwarning("CSheetManager::loadSheet: Cannot load the form '%s'.", filename.c_str()); EntitySheet = 0; } }