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
+
+
+
+
+
+