Dear Code ist doch da oben Oder brauchst du noch anderen Code, der davor ausgeführt wird?
Zur Präzision: getTowerUnit() soll in dre Theorie eine Unitclass zurückgeben.
CvInfos.h:
Code:
//Kathy Build tower Beginn
int getTowerUnit() const; // Exposed to Python
//Kathy Build tower Beginn
CvInfos.cpp:
Code:
//Kathy Buld tower Beginn
pXML->GetChildXmlValByName(szTextVal, "TowerUnitType");
m_iUnitclass = pXML->FindInInfoClass(szTextVal);
//Kathy Buld tower ENd
Code:
//Kathy Build Tower Beginn
int CvBuildInfo::getTowerUnit() const
{
return m_iUnitclass;
}
//Kathy Build Tower End
So, zu guter Letzt noch der überarbeitete Code.
Code:
bool CvPlot::canBuild(BuildTypes eBuild, PlayerTypes ePlayer, bool bTestVisible) const
{
ImprovementTypes eImprovement;
ImprovementTypes eFinalImprovementType;
//Kathy Plant Feature Beginn
FeatureTypes eFeaturePlantType;
//Kathy Plant Feature End
RouteTypes eRoute;
bool bValid;
(...)//unveränderter Originalcode, kann ich nachreichen, wenn es von Belang sein sollte.
//Kathy Build Tower beginn
if (GC.getBuildInfo(eBuild).getTowerUnit() != NO_UNITCLASS)//Wähle nur Builds, die auch einen Eintrag unter TowerUnit haben. TowerUnit ist eine Unitclass!
{
if (getOwnerINLINE() != -1)//Auf Felden ohne Besitzer kann keine ToweUnit gebaut werden
{
CvPlayerAI pPlayer;
pPlayer = GET_PLAYER(getOwnerINLINE());//Ermittle den Besitzer des Plats
CivilizationTypes ePlayerCiv = pPlayer.getCivilizationType();//Ermittle die Zivilisation des Besitzers
UnitTypes eTowerUnitType = (UnitTypes)(GC.getCivilizationInfo(ePlayerCiv).getCivilizationUnits(GC.getBuildInfo(eBuild).getTowerUnit()));//Suche die zur Unitclass (aus der BuildInfo) gehörende Einheit der Zivilisation ePlayerCiv
if (isWater())
{
if ( GC.getUnitInfo(eTowerUnitType).getDomainType() == DOMAIN_LAND)
{
return false;
}
if ( GC.getUnitInfo(eTowerUnitType).getDomainType() == DOMAIN_IMMOBILE)
{
return false;
}
}
else
{
if ( GC.getUnitInfo(eTowerUnitType).getDomainType() == DOMAIN_SEA)
{
return false;
}
}
if (!bTestVisible)
{
if (GET_PLAYER(ePlayer).getTeam() != getTeam())
{
return false;
}
}
bValid = true;
}
}
//Kathy Build Tower end