Code
464void CvPlot::doImprovement()465{466 CvCity* pCity;467 CvString strBuffer;468 int iI;469 int iResourceNum = 0;470 CvTeam& thisTeam = GET_TEAM(getTeam());471472 CvAssert(isBeingWorked() && isOwned());473474 if(m_eImprovementType != NO_IMPROVEMENT)475 {476 if(m_eResourceType == NO_RESOURCE)477 {478 CvAssertMsg((0 < GC.getNumResourceInfos()), "GC.getNumResourceInfos() is not greater than zero but an array is being allocated in CvPlot::doImprovement");479 int iNumResourceInfos = GC.getNumResourceInfos();480 CvImprovementEntry* thisImprovementInfo = GC.getImprovementInfo((ImprovementTypes)m_eImprovementType);481 for(iI = 0; iI < iNumResourceInfos; ++iI)482 {483 CvResourceInfo* thisResourceInfo = GC.getResourceInfo((ResourceTypes) iI);484 if (thisResourceInfo)485 {486 if(thisTeam.GetTeamTechs()->HasTech((TechTypes)(thisResourceInfo->getTechReveal())))487 {488 if(thisImprovementInfo->GetImprovementResourceDiscoverRand(iI) > 0)489 {490 if(GC.getGame().getJonRandNum(thisImprovementInfo->GetImprovementResourceDiscoverRand(iI), "Resource Discovery") == 0)491 {492 iResourceNum = GC.getMap().getRandomResourceQuantity((ResourceTypes)iI);493 setResourceType((ResourceTypes)iI, iResourceNum);494 if(getOwner() == GC.getGame().getActivePlayer())495 {496 pCity = GC.getMap().findCity(getX(), getY(), getOwner(), NO_TEAM, false);497 if(pCity != NULL)498 {499 if(strcmp(thisResourceInfo->GetType(), "RESOURCE_ARTIFACTS") == 0)500 {501 strBuffer = GetLocalizedText("TXT_KEY_MISC_DISCOVERED_ARTIFACTS_NEAR", pCity->getNameKey());502 }503 else if(strcmp(thisResourceInfo->GetType(), "RESOURCE_HIDDEN_ARTIFACTS") == 0)504 {505 strBuffer = GetLocalizedText("TXT_KEY_MISC_DISCOVERED_HIDDEN_ARTIFACTS_NEAR", pCity->getNameKey());506 }507 else508 {509 strBuffer = GetLocalizedText("TXT_KEY_MISC_DISCOVERED_NEW_RESOURCE", thisResourceInfo->GetTextKey(), pCity->getNameKey());510 }511512 GC.GetEngineUserInterface()->AddCityMessage(0, pCity->GetIDInfo(), getOwner(), false, GC.getEVENT_MESSAGE_TIME(), strBuffer/*, "AS2D_DISCOVERRESOURCE", MESSAGE_TYPE_MINOR_EVENT, thisResourceInfo.GetButton(), (ColorTypes)GC.getInfoTypeForString("COLOR_WHITE"), getX(), getY(), true, true*/);513 }514 }515516 break;517 }518 }519 }520 }521 }522 }523 }524525 doImprovementUpgrade();526}