示例#1
0
//================================================================================================
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);
}
示例#2
0
/*
* 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());
	}
}
示例#3
0
// ***************************************************************************
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);
	}

}
示例#4
0
// ***************************************************************************
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;
	}
}