1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-08-13 19:54:17 +02:00

Final fix. AI heroes won't loose their turn when visiting adjacent objects.

This commit is contained in:
DjWarmonger
2012-05-08 09:38:01 +00:00
parent b316be1701
commit 05742afd60
2 changed files with 10 additions and 8 deletions

View File

@@ -1554,12 +1554,12 @@ bool VCAI::moveHeroToTile(int3 dst, const CGHeroInstance * h)
performObjectInteraction (visitedObject, h);
}
if(h->tempOwner == playerID) //lost hero after last move
if(h->tempOwner == playerID) //we could have lost hero after last move
{
cb->recalculatePaths();
if (startHpos == h->visitablePos())
if (startHpos == h->visitablePos() && !ret) //we didn't move and didn't reach the target
{
throw cannotFulfillGoalException("Invalid path found!"); //FIXME
throw cannotFulfillGoalException("Invalid path found!");
}
}
BNLOG("Hero %s moved from %s to %s", h->name % startHpos % h->visitablePos());
@@ -2364,7 +2364,9 @@ TSubgoal CGoal::whatToDoToAchieve()
case EXPLORE:
{
if (hero)
{
return CGoal(VISIT_TILE).settile(whereToExplore(hero)).sethero(hero);
}
auto hs = cb->getHeroesInfo();
int howManyHeroes = hs.size();
@@ -2902,7 +2904,7 @@ int3 SectorMap::firstTileToGet(const CGHeroInstance *h, crint3 dst)
if(!preds[dst])
{
write("test.txt");
throw cannotFulfillGoalException(str(format("Cannot found connection between sectors %d and %d") % src->id % dst->id));
throw cannotFulfillGoalException(str(format("Cannot find connection between sectors %d and %d") % src->id % dst->id));
}
std::vector<const Sector*> toTraverse;

View File

@@ -63,11 +63,11 @@
<PropertyGroup Label="UserMacros" />
<PropertyGroup>
<_ProjectFileVersion>10.0.30128.1</_ProjectFileVersion>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(Configuration)\</IntDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='RD|Win32'">$(SolutionDir)$(Configuration)\bin\</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='RD|Win32'">..\..\RD</OutDir>
<OutDir Condition="'$(Configuration)|$(Platform)'=='RD|x64'">$(SolutionDir)$(Configuration)\bin\</OutDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='RD|Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='RD|x64'">$(Configuration)\</IntDir>
@@ -108,7 +108,7 @@
</ClCompile>
<Link>
<AdditionalDependencies>VCMI_lib.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>G:\Programowanie\VCMI\AI;../..;../../libs;../;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<TargetMachine>MachineX86</TargetMachine>
</Link>
@@ -155,7 +155,7 @@
</ClCompile>
<Link>
<AdditionalDependencies>VCMI_lib.lib;zlib.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalLibraryDirectories>G:\Programowanie\VCMI\libs;G:\Programowanie\VCMI;$(OutDir);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<GenerateDebugInformation>true</GenerateDebugInformation>
<GenerateMapFile>true</GenerateMapFile>
<OptimizeReferences>true</OptimizeReferences>