diff --git a/.gitignore b/.gitignore index fb89a80..10c755b 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ *.user *.json +vc/x64 vc/release vc/debug vc/.vs diff --git a/ext/crlib b/ext/crlib index c103117..2fec50b 160000 --- a/ext/crlib +++ b/ext/crlib @@ -1 +1 @@ -Subproject commit c1031171d42c1d9489928ef1b4ce6e52ef5a1bb7 +Subproject commit 2fec50bc189ad16e83855b74840fcd27394a18b7 diff --git a/src/botlib.cpp b/src/botlib.cpp index bb4028a..a648909 100644 --- a/src/botlib.cpp +++ b/src/botlib.cpp @@ -1576,7 +1576,7 @@ void Bot::syncUpdatePredictedIndex () { } int pathLength = 0; - planner.find (destIndex, currentNodeIndex, [&] (int index) { + auto result = planner.find (destIndex, currentNodeIndex, [&] (int index) { ++pathLength; if (vistab.visible (currentNodeIndex, index) && botOrigin.distanceSq (graph[index].origin) > cr::sqrf (256.0f)) { @@ -1586,7 +1586,7 @@ void Bot::syncUpdatePredictedIndex () { return true; }); - if (bestIndex != kInvalidNodeIndex) { + if (result && bestIndex != kInvalidNodeIndex) { m_lastPredictIndex = bestIndex; m_lastPredictLength = pathLength; diff --git a/src/engine.cpp b/src/engine.cpp index 4720c35..b464b30 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -765,6 +765,11 @@ bool Game::loadCSBinary () { } StringArray libs { "mp", "cs", "cs_i386" }; + // lookup for x64 binaries first + if (plat.x64) { + libs.insert (0, { "mp_amd64", "cs_amd64" }); + } + auto libCheck = [&] (StringRef mod, StringRef dll) { // try to load gamedll if (!m_gameLib) { diff --git a/src/navigate.cpp b/src/navigate.cpp index 555e220..d88d780 100644 --- a/src/navigate.cpp +++ b/src/navigate.cpp @@ -1473,7 +1473,7 @@ int Bot::findAimingNode (const Vector &to, int &pathLength) { return kInvalidNodeIndex; } - planner.find (destIndex, m_currentNodeIndex, [&] (int index) { + auto result = planner.find (destIndex, m_currentNodeIndex, [&] (int index) { ++pathLength; if (vistab.visible (m_currentNodeIndex, index)) { @@ -1483,7 +1483,7 @@ int Bot::findAimingNode (const Vector &to, int &pathLength) { return true; }); - if (bestIndex == m_currentNodeIndex) { + if (result && bestIndex == m_currentNodeIndex) { return kInvalidNodeIndex; } return bestIndex; diff --git a/vc/yapb.sln b/vc/yapb.sln index ce15a58..1adbf3d 100644 --- a/vc/yapb.sln +++ b/vc/yapb.sln @@ -8,13 +8,19 @@ EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 Release|Win32 = Release|Win32 + Release|x64 = Release|x64 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Debug|Win32.ActiveCfg = Debug|Win32 {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Debug|Win32.Build.0 = Debug|Win32 + {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Debug|x64.ActiveCfg = Debug|x64 + {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Debug|x64.Build.0 = Debug|x64 {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Release|Win32.ActiveCfg = Release|Win32 {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Release|Win32.Build.0 = Release|Win32 + {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Release|x64.ActiveCfg = Release|x64 + {C232645A-3B99-48F4-A1F3-F20CF0A9568B}.Release|x64.Build.0 = Release|x64 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/vc/yapb.vcxproj b/vc/yapb.vcxproj index 2cde87f..a2addf8 100644 --- a/vc/yapb.vcxproj +++ b/vc/yapb.vcxproj @@ -5,10 +5,18 @@ Debug Win32 + + Debug + x64 + Release Win32 + + Release + x64 + @@ -64,7 +72,9 @@ true + true true + true @@ -90,7 +100,9 @@ false + false false + false @@ -110,6 +122,13 @@ true false + + DynamicLibrary + v143 + false + true + false + DynamicLibrary false @@ -117,15 +136,28 @@ false false + + DynamicLibrary + false + ClangCL + false + false + + + + + + + <_ProjectFileVersion>12.0.21005.1 @@ -140,6 +172,16 @@ false false + + .\x64\debug\ + .\x64\debug\inf\ + true + true + false + NativeRecommendedRules.ruleset + false + false + .\release\ .\release\inf\ @@ -148,6 +190,14 @@ false false + + .\x64\release\ + .\x64\release\inf\ + false + false + false + false + @@ -218,6 +268,82 @@ + + + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\x64\debug\yapb.tlb + + + + + Disabled + ..\vc;..\inc;..\ext;..\ext\crlib;..\ext\linkage;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;CR_DEBUG;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + yapb.h + .\x64\debug\inf\yapb.pch + false + NoListing + .\x64\debug\asm\ + .\x64\debug\obj\ + .\x64\debug\inf + + + + + Level4 + true + Default + false + false + Default + true + false + stdcpp17 + ProgramDatabase + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + + + + + .\x64\debug\yapb.dll + true + DebugFull + .\x64\debug\inf\yapb.pdb + true + .\x64\debug\inf\yapb.map + true + Windows + false + false + + + .\x64\debug\inf\yapb.lib + ws2_32.lib;%(AdditionalDependencies) + false + + + + + + @@ -231,7 +357,7 @@ true true Win32 - .\Release/yapb.tlb + .\release\yapb.tlb @@ -308,6 +434,100 @@ + + + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + .\release\yapb.tlb + + + + + AnySuitable + true + Speed + false + ..\vc;..\inc;..\ext;..\ext\crlib;..\ext\linkage;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;%(PreprocessorDefinitions) + false + AdvancedVectorExtensions + + + .\x64\release\inf\yapb.pch + .\x64\release\asm\ + .\x64\release\inf\ + Level4 + true + ProgramDatabase + CompileAsCpp + MultiFile + true + false + Precise + Full + AVXI + AVXI + false + + + true + true + MultiThreaded + true + true + false + true + stdcpp17 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + $(IntDir)%(Filename).res + + + + + + + true + + + .\x64\release\yapb.dll + true + user32.dll;ws2_32.dll;%(DelayLoadDLLs) + true + false + Windows + true + true + false + + + .\x64\release\inf\yapb.lib + + + ws2_32.lib;%(AdditionalDependencies) + false + + + UseLinkTimeCodeGeneration + true + NotSet + + + + + +