From 3b1ddfa3cacc40dd44c5fdacb9aab51d966c5ae8 Mon Sep 17 00:00:00 2001 From: DjWarmonger Date: Tue, 28 Aug 2012 04:13:50 +0000 Subject: [PATCH] Fixed AI building only one upgraded dwelling per town. Minor tweaks. --- AI/VCAI/VCAI.cpp | 7 ++++--- Scripting/ERM/ERM.vcxproj | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/AI/VCAI/VCAI.cpp b/AI/VCAI/VCAI.cpp index 54b4408c9..087d1a997 100644 --- a/AI/VCAI/VCAI.cpp +++ b/AI/VCAI/VCAI.cpp @@ -1287,7 +1287,7 @@ void VCAI::buildStructure(const CGTownInstance * t) //try to upgrade dwelling for(int i = 0; i < ARRAY_COUNT(unitsUpgrade); i++) { - if (t->hasBuilt(unitsSource[i])) + if (t->hasBuilt(unitsSource[i]) && !t->hasBuilt(unitsUpgrade[i])) { if (tryBuildStructure(t, unitsUpgrade[i])) return; @@ -3133,8 +3133,9 @@ TSubgoal CGoal::whatToDoToAchieve() boost::sort(objs, isCloser); BOOST_FOREACH(const CGObjectInstance *obj, objs) { //find safe dwelling - if (isSafeToVisit(hero, obj->visitablePos())) //TODO: make use of multiple heroes - return CGoal(VISIT_TILE).sethero(hero).settile(obj->visitablePos()); + auto pos = obj->visitablePos(); + if (isSafeToVisit(hero, pos) && ai->isAccessibleForHero(pos, hero)) //TODO: make use of multiple heroes + return CGoal(VISIT_TILE).sethero(hero).settile(pos); } } diff --git a/Scripting/ERM/ERM.vcxproj b/Scripting/ERM/ERM.vcxproj index 0d7184acc..172f6a34f 100644 --- a/Scripting/ERM/ERM.vcxproj +++ b/Scripting/ERM/ERM.vcxproj @@ -76,7 +76,7 @@ $(LibraryPath) - $(SolutionDir)$(Configuration)\bin\Scripting\ + ..\..\..\RD\Scripting $(IncludePath) $(LibraryPath) @@ -98,7 +98,7 @@ true true true - ../../../libs; ../../; + G:\Programowanie\VCMI;../../../libs;../..;../../../;%(AdditionalLibraryDirectories) VCMI_lib.lib;%(AdditionalDependencies) @@ -115,7 +115,7 @@ true true true - ../../../libs; ../../; + G:\Programowanie\VCMI\libs;G:\Programowanie\VCMI\RD VCMI_lib.lib;%(AdditionalDependencies)