Example #1
0
	void CImp::depositGold()
	{
		path.clear();
		CBlock *destBlock;
		destBlock = CV_GAME_MANAGER->getRoomManager()->getRoom(CV_BLOCK_TYPE_TREASURE_ROOM_ID, this->getOwner());

		if(destBlock != NULL)
		{
			rooms::CRoom *currRoom = CV_GAME_MANAGER->getRoomManager()->getRoom(destBlock->getRoomIndex());

			for (std::vector<CBlock*>::iterator rmIter = currRoom->getRoomTilesVector()->begin(); rmIter != currRoom->getRoomTilesVector()->end(); rmIter++)
			{
				CBlock *thisBlock = *rmIter;
				bool found = false;

				block_objects::CBlockObject *bObject = thisBlock->GetBlockByName( "MODEL_GOLD250" );
				if (bObject != NULL)
				{
					found = true;
					mCurrentBlock = (game_objects::CBlock *)bObject;
					break;
				}
			}

			if(mCurrentBlock)
			{
				cml::vector2i currPos = cml::vector2i((int)floor(mPosition[0]/CV_BLOCK_WIDTH),(int)floor(mPosition[2]/CV_BLOCK_DEPTH));
				if(CV_GAME_MANAGER->getPathManager()->findPath(currPos,mCurrentBlock->getLogicalPosition(),&path))
				{
					m_impState = IS_GOING_TO_DEPOSITING_GOLD_DESTINATION;
					return;
				}
			}
		}
		mCurrentBlock->addModel("MODEL_GOLD250",mPosition);
		this->setGold(0);
	}