diff --git a/.autotools b/.autotools
new file mode 100755
index 00000000..538972ac
--- /dev/null
+++ b/.autotools
@@ -0,0 +1,83 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.circleci/config.yml b/.circleci/config.yml
old mode 100644
new mode 100755
diff --git a/.gitmodules b/.gitmodules
old mode 100644
new mode 100755
index 492db354..18405cfe
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,9 +16,9 @@
[submodule "external/co-library"]
path = external/co-library
url = https://github.com/nullworks/co-library.git
-[submodule "external/TF2_NavFile_Reader"]
- path = external/TF2_NavFile_Reader
- url = https://github.com/nullworks/TF2_NavFile_Reader
-[submodule "external/PathFinder"]
- path = external/PathFinder
- url = https://github.com/Sahnvour/PathFinder
+[submodule "include/TF2_NavFile_Reader"]
+ path = include/TF2_NavFile_Reader
+ url = https://github.com/nullworks/TF2_NavFile_Reader.git
+[submodule "external/MicroPather"]
+ path = external/MicroPather
+ url = https://github.com/leethomason/MicroPather
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 1cc782b7..1d20b371 100755
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -111,8 +111,7 @@ target_include_directories(cathook SYSTEM PRIVATE
"external/source-sdk-2013-headers/mp/src")
target_include_directories(cathook PRIVATE "external/ucccccp")
-target_include_directories(cathook PRIVATE "external/TF2_NavFile_Reader")
-target_include_directories(cathook PRIVATE "external/PathFinder/src/")
+target_include_directories(cathook PRIVATE "external/MicroPather")
if(EnableWarnings)
target_compile_options(cathook PRIVATE -Wall -Wextra)
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
old mode 100644
new mode 100755
diff --git a/build_names b/build_names
old mode 100644
new mode 100755
diff --git a/data/menu/Verdana.ttf b/data/menu/Verdana.ttf
old mode 100644
new mode 100755
diff --git a/data/menu/VerdanaBold.ttf b/data/menu/VerdanaBold.ttf
old mode 100644
new mode 100755
diff --git a/data/menu/color-picker.xml b/data/menu/color-picker.xml
old mode 100644
new mode 100755
diff --git a/data/menu/cross.png b/data/menu/cross.png
old mode 100644
new mode 100755
diff --git a/data/menu/menu.xml b/data/menu/menu.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullified-ui.xml b/data/menu/nullified-ui.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/aimbot.xml b/data/menu/nullifiedcat/aimbot.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/antiaim.xml b/data/menu/nullifiedcat/antiaim.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/chat.xml b/data/menu/nullifiedcat/chat.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/crits.xml b/data/menu/nullifiedcat/crits.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/debug.xml b/data/menu/nullifiedcat/debug.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/hackinfo.xml b/data/menu/nullifiedcat/hackinfo.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc.xml b/data/menu/nullifiedcat/misc.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/Misc2.xml b/data/menu/nullifiedcat/misc/Misc2.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/achievement.xml b/data/menu/nullifiedcat/misc/achievement.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/announcer.xml b/data/menu/nullifiedcat/misc/announcer.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/antibackstab.xml b/data/menu/nullifiedcat/misc/antibackstab.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/anticheat.xml b/data/menu/nullifiedcat/misc/anticheat.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/autodeadringer.xml b/data/menu/nullifiedcat/misc/autodeadringer.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/bhop.xml b/data/menu/nullifiedcat/misc/bhop.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/bptf.xml b/data/menu/nullifiedcat/misc/bptf.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/collective.xml b/data/menu/nullifiedcat/misc/collective.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/misc/remove.xml b/data/menu/nullifiedcat/misc/remove.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/spyalert.xml b/data/menu/nullifiedcat/spyalert.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/trigger/autobackstab.xml b/data/menu/nullifiedcat/trigger/autobackstab.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/trigger/autodetonator.xml b/data/menu/nullifiedcat/trigger/autodetonator.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/trigger/autoheal.xml b/data/menu/nullifiedcat/trigger/autoheal.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/trigger/autoreflect.xml b/data/menu/nullifiedcat/trigger/autoreflect.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/trigger/autosticky.xml b/data/menu/nullifiedcat/trigger/autosticky.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/triggerbot.xml b/data/menu/nullifiedcat/triggerbot.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals.xml b/data/menu/nullifiedcat/visuals.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals/chams.xml b/data/menu/nullifiedcat/visuals/chams.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals/esp.xml b/data/menu/nullifiedcat/visuals/esp.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals/glow.xml b/data/menu/nullifiedcat/visuals/glow.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals/lightesp.xml b/data/menu/nullifiedcat/visuals/lightesp.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals/misc.xml b/data/menu/nullifiedcat/visuals/misc.xml
old mode 100644
new mode 100755
diff --git a/data/menu/nullifiedcat/visuals/radar.xml b/data/menu/nullifiedcat/visuals/radar.xml
old mode 100644
new mode 100755
diff --git a/data/menu/player-list-row.xml b/data/menu/player-list-row.xml
old mode 100644
new mode 100755
diff --git a/data/menu/player-list-window.xml b/data/menu/player-list-window.xml
old mode 100644
new mode 100755
diff --git a/data/menu/window-settings.xml b/data/menu/window-settings.xml
old mode 100644
new mode 100755
diff --git a/data/sound/piss.wav b/data/sound/piss.wav
old mode 100644
new mode 100755
diff --git a/external/MicroPather b/external/MicroPather
new file mode 160000
index 00000000..33a3b840
--- /dev/null
+++ b/external/MicroPather
@@ -0,0 +1 @@
+Subproject commit 33a3b8403f1bc3937c9d364fe6c3977169bee3b5
diff --git a/include/.gitignore b/include/.gitignore
old mode 100644
new mode 100755
diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt
index 2f2991a6..f8f33bfe 100644
--- a/include/CMakeLists.txt
+++ b/include/CMakeLists.txt
@@ -39,6 +39,7 @@ target_sources(cathook PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/velocity.hpp"
"${CMAKE_CURRENT_LIST_DIR}/votelogger.hpp"
"${CMAKE_CURRENT_LIST_DIR}/MiscTemporary.hpp"
+ "${CMAKE_CURRENT_LIST_DIR}/navparser.hpp"
"${CMAKE_CURRENT_LIST_DIR}/Options.hpp"
"${CMAKE_CURRENT_LIST_DIR}/PlayerTools.hpp")
@@ -49,6 +50,7 @@ add_subdirectory(classinfo)
add_subdirectory(copypasted)
add_subdirectory(hacks)
add_subdirectory(hooks)
+add_subdirectory(TF2_NavFile_Reader)
add_subdirectory(reclasses)
add_subdirectory(sdk)
add_subdirectory(online)
@@ -56,4 +58,5 @@ add_subdirectory(settings)
if(EnableVisuals)
add_subdirectory(visual)
-endif()
\ No newline at end of file
+endif()
+
diff --git a/include/MiscTemporary.hpp b/include/MiscTemporary.hpp
old mode 100644
new mode 100755
diff --git a/include/Options.hpp b/include/Options.hpp
old mode 100644
new mode 100755
diff --git a/include/PlayerTools.hpp b/include/PlayerTools.hpp
old mode 100644
new mode 100755
diff --git a/include/TF2_NavFile_Reader b/include/TF2_NavFile_Reader
new file mode 160000
index 00000000..65818ea2
--- /dev/null
+++ b/include/TF2_NavFile_Reader
@@ -0,0 +1 @@
+Subproject commit 65818ea2cda4fa3f8e3f17e272692543f704d1f4
diff --git a/include/classinfo/CMakeLists.txt b/include/classinfo/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/classinfo/dummy.gen.hpp b/include/classinfo/dummy.gen.hpp
old mode 100644
new mode 100755
diff --git a/include/classinfo/dynamic.gen.hpp b/include/classinfo/dynamic.gen.hpp
old mode 100644
new mode 100755
diff --git a/include/common.hpp b/include/common.hpp
index 82e7845a..e3d92d42 100755
--- a/include/common.hpp
+++ b/include/common.hpp
@@ -98,6 +98,8 @@
#include "core/sharedobj.hpp"
#include "init.hpp"
#include "reclasses/reclasses.hpp"
+#include
+#include
#include "copypasted/Netvar.h"
#include "copypasted/CSignature.h"
diff --git a/include/conditions.hpp b/include/conditions.hpp
old mode 100644
new mode 100755
diff --git a/include/config.h.in b/include/config.h.in
old mode 100644
new mode 100755
diff --git a/include/copypasted/CMakeLists.txt b/include/copypasted/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/core/CMakeLists.txt b/include/core/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/core/cvwrapper.hpp b/include/core/cvwrapper.hpp
old mode 100644
new mode 100755
diff --git a/include/core/offsets.hpp b/include/core/offsets.hpp
old mode 100644
new mode 100755
diff --git a/include/entitycache.hpp b/include/entitycache.hpp
old mode 100644
new mode 100755
diff --git a/include/globals.h b/include/globals.h
old mode 100644
new mode 100755
diff --git a/include/hack.hpp b/include/hack.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/Achievement.hpp b/include/hacks/Achievement.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/Announcer.hpp b/include/hacks/Announcer.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/AntiAntiAim.hpp b/include/hacks/AntiAntiAim.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/AutoDeadringer.hpp b/include/hacks/AutoDeadringer.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/Backtrack.hpp b/include/hacks/Backtrack.hpp
old mode 100644
new mode 100755
index fb39f395..cfe50210
--- a/include/hacks/Backtrack.hpp
+++ b/include/hacks/Backtrack.hpp
@@ -25,6 +25,7 @@ struct BacktrackData
float viewangles{ 0.0f };
float simtime{ 0.0f };
Vector entorigin{ 0.0f, 0.0f, 0.0f };
+ int index{ 0 };
};
struct BestTickData
{
diff --git a/include/hacks/CMakeLists.txt b/include/hacks/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/hacks/FollowBot.hpp b/include/hacks/FollowBot.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/LightESP.hpp b/include/hacks/LightESP.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/SeedPrediction.hpp b/include/hacks/SeedPrediction.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/Thirdperson.hpp b/include/hacks/Thirdperson.hpp
old mode 100644
new mode 100755
diff --git a/include/hacks/ac/CMakeLists.txt b/include/hacks/ac/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/helpers.hpp b/include/helpers.hpp
old mode 100644
new mode 100755
diff --git a/include/hooks.hpp b/include/hooks.hpp
old mode 100644
new mode 100755
diff --git a/include/hooks/CMakeLists.txt b/include/hooks/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/hooks/HookedMethods.hpp b/include/hooks/HookedMethods.hpp
old mode 100644
new mode 100755
diff --git a/include/navparser.hpp b/include/navparser.hpp
new file mode 100755
index 00000000..e69de29b
diff --git a/include/online/CMakeLists.txt b/include/online/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/online/Online.hpp b/include/online/Online.hpp
old mode 100644
new mode 100755
diff --git a/include/prediction.hpp b/include/prediction.hpp
old mode 100644
new mode 100755
diff --git a/include/projlogging.hpp b/include/projlogging.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/CMakeLists.txt b/include/reclasses/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/reclasses/CTFInventoryManager.hpp b/include/reclasses/CTFInventoryManager.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/C_BaseEntity.hpp b/include/reclasses/C_BaseEntity.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/C_MannVsMachineStats.hpp b/include/reclasses/C_MannVsMachineStats.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/C_TEFireBullets.hpp b/include/reclasses/C_TEFireBullets.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/C_TFWeaponBaseGun.hpp b/include/reclasses/C_TFWeaponBaseGun.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/C_TFWeaponBaseMelee.hpp b/include/reclasses/C_TFWeaponBaseMelee.hpp
old mode 100644
new mode 100755
diff --git a/include/reclasses/ITFGroupMatchCriteria.hpp b/include/reclasses/ITFGroupMatchCriteria.hpp
old mode 100644
new mode 100755
diff --git a/include/sdk/CMakeLists.txt b/include/sdk/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/sdk/ScreenSpaceEffects.h b/include/sdk/ScreenSpaceEffects.h
old mode 100644
new mode 100755
diff --git a/include/sdk/c_basetempentity.h b/include/sdk/c_basetempentity.h
old mode 100644
new mode 100755
diff --git a/include/sdk/netmessage.hpp b/include/sdk/netmessage.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Bool.hpp b/include/settings/Bool.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/CMakeLists.txt b/include/settings/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/settings/Float.hpp b/include/settings/Float.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Int.hpp b/include/settings/Int.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Key.hpp b/include/settings/Key.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Manager.hpp b/include/settings/Manager.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Registered.hpp b/include/settings/Registered.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Rgba.hpp b/include/settings/Rgba.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/Settings.hpp b/include/settings/Settings.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/SettingsIO.hpp b/include/settings/SettingsIO.hpp
old mode 100644
new mode 100755
diff --git a/include/settings/String.hpp b/include/settings/String.hpp
old mode 100644
new mode 100755
diff --git a/include/tfmm.hpp b/include/tfmm.hpp
old mode 100644
new mode 100755
diff --git a/include/version.h.in b/include/version.h.in
old mode 100644
new mode 100755
diff --git a/include/visual/CMakeLists.txt b/include/visual/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/visual/EffectChams.hpp b/include/visual/EffectChams.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/EventLogging.hpp b/include/visual/EventLogging.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/SDLHooks.hpp b/include/visual/SDLHooks.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/colors.hpp b/include/visual/colors.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/drawing.hpp b/include/visual/drawing.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/CMakeLists.txt b/include/visual/menu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/visual/menu/GuiInterface.hpp b/include/visual/menu/GuiInterface.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/BaseMenuObject.hpp b/include/visual/menu/menu/BaseMenuObject.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/BoundingBox.hpp b/include/visual/menu/menu/BoundingBox.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/CMakeLists.txt b/include/visual/menu/menu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/Debug.hpp b/include/visual/menu/menu/Debug.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/KeyValue.hpp b/include/visual/menu/menu/KeyValue.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/Menu.hpp b/include/visual/menu/menu/Menu.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/Message.hpp b/include/visual/menu/menu/Message.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/ModalBehavior.hpp b/include/visual/menu/menu/ModalBehavior.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/ObjectFactory.hpp b/include/visual/menu/menu/ObjectFactory.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/StaticTextComponent.hpp b/include/visual/menu/menu/StaticTextComponent.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/TextComponent.hpp b/include/visual/menu/menu/TextComponent.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/Tooltip.hpp b/include/visual/menu/menu/Tooltip.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/Utility.hpp b/include/visual/menu/menu/Utility.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/interface/IMessageHandler.hpp b/include/visual/menu/menu/interface/IMessageHandler.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/ModalSpinner.hpp b/include/visual/menu/menu/object/ModalSpinner.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/Option.hpp b/include/visual/menu/menu/object/Option.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/TabButton.hpp b/include/visual/menu/menu/object/TabButton.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/Text.hpp b/include/visual/menu/menu/object/Text.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/Box.hpp b/include/visual/menu/menu/object/container/Box.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/Container.hpp b/include/visual/menu/menu/object/container/Container.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/LabeledObject.hpp b/include/visual/menu/menu/object/container/LabeledObject.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/List.hpp b/include/visual/menu/menu/object/container/List.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/ModalColorSelect.hpp b/include/visual/menu/menu/object/container/ModalColorSelect.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/ModalContainer.hpp b/include/visual/menu/menu/object/container/ModalContainer.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/ModalSelect.hpp b/include/visual/menu/menu/object/container/ModalSelect.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/ScrollableList.hpp b/include/visual/menu/menu/object/container/ScrollableList.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/SmartContentContainer.hpp b/include/visual/menu/menu/object/container/SmartContentContainer.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/TData.hpp b/include/visual/menu/menu/object/container/TData.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/TRow.hpp b/include/visual/menu/menu/object/container/TRow.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/TabContainer.hpp b/include/visual/menu/menu/object/container/TabContainer.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/TabSelection.hpp b/include/visual/menu/menu/object/container/TabSelection.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/container/Table.hpp b/include/visual/menu/menu/object/container/Table.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/Checkbox.hpp b/include/visual/menu/menu/object/input/Checkbox.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/ColorSelector.hpp b/include/visual/menu/menu/object/input/ColorSelector.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/InputKey.hpp b/include/visual/menu/menu/object/input/InputKey.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/Select.hpp b/include/visual/menu/menu/object/input/Select.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/Slider.hpp b/include/visual/menu/menu/object/input/Slider.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/Spinner.hpp b/include/visual/menu/menu/object/input/Spinner.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/StringInput.hpp b/include/visual/menu/menu/object/input/StringInput.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/object/input/TextInput.hpp b/include/visual/menu/menu/object/input/TextInput.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/ModalFactory.hpp b/include/visual/menu/menu/special/ModalFactory.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/PlayerListController.hpp b/include/visual/menu/menu/special/PlayerListController.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/SettingsManagerList.hpp b/include/visual/menu/menu/special/SettingsManagerList.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/TreeListBaseEntry.hpp b/include/visual/menu/menu/special/TreeListBaseEntry.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/TreeListCollapsible.hpp b/include/visual/menu/menu/special/TreeListCollapsible.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/VariableListEntry.hpp b/include/visual/menu/menu/special/VariableListEntry.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/special/VariableTreeList.hpp b/include/visual/menu/menu/special/VariableTreeList.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/tinyxml2.hpp b/include/visual/menu/menu/tinyxml2.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/Task.hpp b/include/visual/menu/menu/wm/Task.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/TaskBar.hpp b/include/visual/menu/menu/wm/TaskBar.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/WMWindow.hpp b/include/visual/menu/menu/wm/WMWindow.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/WindowCloseButton.hpp b/include/visual/menu/menu/wm/WindowCloseButton.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/WindowContainer.hpp b/include/visual/menu/menu/wm/WindowContainer.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/WindowHeader.hpp b/include/visual/menu/menu/wm/WindowHeader.hpp
old mode 100644
new mode 100755
diff --git a/include/visual/menu/menu/wm/WindowManager.hpp b/include/visual/menu/menu/wm/WindowManager.hpp
old mode 100644
new mode 100755
diff --git a/include/votelogger.hpp b/include/votelogger.hpp
old mode 100644
new mode 100755
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
old mode 100644
new mode 100755
index 90a49c3a..c54107fb
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -32,9 +32,9 @@ target_sources(cathook PRIVATE
"${CMAKE_CURRENT_LIST_DIR}/velocity.cpp"
"${CMAKE_CURRENT_LIST_DIR}/votelogger.cpp"
"${CMAKE_CURRENT_LIST_DIR}/MiscTemporary.cpp"
+ "${CMAKE_CURRENT_LIST_DIR}/navparser.cpp"
"${CMAKE_CURRENT_LIST_DIR}/Options.cpp"
- "${CMAKE_CURRENT_LIST_DIR}/PlayerTools.cpp"
- "${CMAKE_CURRENT_LIST_DIR}/pathfinder.cpp")
+ "${CMAKE_CURRENT_LIST_DIR}/PlayerTools.cpp")
add_subdirectory(core)
add_subdirectory(classinfo)
diff --git a/src/MiscTemporary.cpp b/src/MiscTemporary.cpp
old mode 100644
new mode 100755
diff --git a/src/Options.cpp b/src/Options.cpp
old mode 100644
new mode 100755
diff --git a/src/PlayerTools.cpp b/src/PlayerTools.cpp
old mode 100644
new mode 100755
diff --git a/src/backpacktf.cpp b/src/backpacktf.cpp
old mode 100644
new mode 100755
diff --git a/src/chatlog.cpp b/src/chatlog.cpp
old mode 100644
new mode 100755
diff --git a/src/classinfo/CMakeLists.txt b/src/classinfo/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/classinfo/dynamic.gen.cpp b/src/classinfo/dynamic.gen.cpp
old mode 100644
new mode 100755
diff --git a/src/copypasted/CMakeLists.txt b/src/copypasted/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/copypasted/CSignature.cpp b/src/copypasted/CSignature.cpp
old mode 100644
new mode 100755
diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/core/cvwrapper.cpp b/src/core/cvwrapper.cpp
old mode 100644
new mode 100755
diff --git a/src/core/logging.cpp b/src/core/logging.cpp
old mode 100644
new mode 100755
diff --git a/src/core/netvars.cpp b/src/core/netvars.cpp
old mode 100644
new mode 100755
diff --git a/src/crits.cpp b/src/crits.cpp
old mode 100644
new mode 100755
diff --git a/src/entitycache.cpp b/src/entitycache.cpp
old mode 100644
new mode 100755
diff --git a/src/entityhitboxcache.cpp b/src/entityhitboxcache.cpp
old mode 100644
new mode 100755
diff --git a/src/hack.cpp b/src/hack.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Achievement.cpp b/src/hacks/Achievement.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Aimbot.cpp b/src/hacks/Aimbot.cpp
old mode 100644
new mode 100755
index 4c43719e..e060bfb4
--- a/src/hacks/Aimbot.cpp
+++ b/src/hacks/Aimbot.cpp
@@ -93,55 +93,6 @@ Timer zoomTime{};
// This array will store calculated projectile/hitscan predictions
// for current frame, to avoid performing them again
AimbotCalculatedData_s calculated_data_array[2048]{};
-#define IsMelee GetWeaponMode() == weapon_melee
-bool BacktrackAimbot()
-{
- if (!hacks::shared::backtrack::isBacktrackEnabled || !*backtrackAimbot)
- return false;
- if (aimkey && !aimkey.isKeyDown())
- return true;
- if (CE_BAD(LOCAL_E) || !LOCAL_E->m_bAlivePlayer())
- return true;
- if (only_can_shoot && !CanShoot())
- return true;
- if (g_pLocalPlayer->clazz == tf_sniper)
- if (zoomed_only && !CanHeadshot())
- return true;
- int iBestTarget = hacks::shared::backtrack::iBestTarget;
- if (iBestTarget == -1)
- return true;
- int iBestTick = hacks::shared::backtrack::BestTick;
- int tickcnt = 0;
- CachedEntity *tar = ENTITY(iBestTarget);
- if (CE_BAD(tar))
- return true;
- auto i = hacks::shared::backtrack::headPositions[iBestTarget][iBestTick];
- if (!hacks::shared::backtrack::ValidTick(i, tar))
- return true;
- if (!i.hitboxes.at(head).center.z)
- return true;
- if (!IsVectorVisible(g_pLocalPlayer->v_Eye, i.hitboxes.at(head).center,
- true))
- return true;
- float &simtime = NET_FLOAT(RAW_ENT(tar), netvar.m_flSimulationTime);
- simtime = i.simtime;
- current_user_cmd->tick_count = i.tickcount;
- Vector tr = (i.hitboxes.at(head).center - g_pLocalPlayer->v_Eye);
- Vector angles2;
- VectorAngles(tr, angles2);
- // Clamping is important
- fClampAngle(angles2);
- // Slow aim
- if (*slow_aim)
- DoSlowAim(angles2);
- else if (silent)
- g_pLocalPlayer->bUseSilentAngles = true;
- // Set angles
- current_user_cmd->viewangles = angles2;
- if (autoshoot && !*slow_aim)
- current_user_cmd->buttons |= IN_ATTACK;
- return true;
-}
// The main "loop" of the aimbot.
void CreateMove()
{
@@ -162,25 +113,6 @@ void CreateMove()
// the find target and aiming system. If we just call the func than toggle
// aimkey would break so we save it to a var to use it twice
bool aimkey_status = UpdateAimkey();
- // Refresh our best target
- CachedEntity *target_entity = RetrieveBestTarget(aimkey_status);
- if (CE_BAD(target_entity) || !foundTarget)
- return;
- // Auto-zoom
- IF_GAME(IsTF())
- {
- if (auto_zoom)
- {
- if (g_pLocalPlayer->holding_sniper_rifle)
- {
- zoomTime.update();
- if (not g_pLocalPlayer->bZoomed)
- {
- current_user_cmd->buttons |= IN_ATTACK2;
- }
- }
- }
- }
// check if we need to run projectile Aimbot code
projectileAimbotRequired = false;
if (projectile_aimbot &&
@@ -204,8 +136,25 @@ void CreateMove()
if (proj_gravity)
cur_proj_grav = float(proj_gravity);
}
- if (BacktrackAimbot())
+ // Refresh our best target
+ CachedEntity *target_entity = RetrieveBestTarget(aimkey_status);
+ if (CE_BAD(target_entity) || !foundTarget)
return;
+ // Auto-zoom
+ IF_GAME(IsTF())
+ {
+ if (auto_zoom)
+ {
+ if (g_pLocalPlayer->holding_sniper_rifle)
+ {
+ zoomTime.update();
+ if (not g_pLocalPlayer->bZoomed)
+ {
+ current_user_cmd->buttons |= IN_ATTACK2;
+ }
+ }
+ }
+ }
if (!g_IEntityList->GetClientEntity(target_entity->m_IDX))
return;
@@ -413,50 +362,58 @@ CachedEntity *RetrieveBestTarget(bool aimkey_state)
CachedEntity *ent;
CachedEntity *target_highest_ent = 0;
target_highest_score = -256;
-
- for (int i = 0; i < HIGHEST_ENTITY; i++)
+ if (!hacks::shared::backtrack::isBacktrackEnabled || projectile_mode)
{
- ent = ENTITY(i);
- if (CE_BAD(ent))
- continue; // Check for null and dormant
- // Check whether the current ent is good enough to target
- if (IsTargetStateGood(ent))
+ for (int i = 0; i < HIGHEST_ENTITY; i++)
{
+ ent = ENTITY(i);
+ if (CE_BAD(ent))
+ continue; // Check for null and dormant
+ // Check whether the current ent is good enough to target
+ if (IsTargetStateGood(ent))
+ {
- // Distance Priority, Uses this is melee is used
- if (GetWeaponMode() == weaponmode::weapon_melee ||
- (int) priority_mode == 2)
- {
- scr = 4096.0f -
- calculated_data_array[i].aim_position.DistTo(
- g_pLocalPlayer->v_Eye);
- }
- else
- {
- switch ((int) priority_mode)
+ // Distance Priority, Uses this is melee is used
+ if (GetWeaponMode() == weaponmode::weapon_melee ||
+ (int) priority_mode == 2)
{
- case 0: // Smart Priority
- scr = GetScoreForEntity(ent);
- break;
- case 1: // Fov Priority
- scr = 360.0f - calculated_data_array[ent->m_IDX].fov;
- break;
- case 3: // Health Priority
- scr = 450.0f - ent->m_iHealth();
- break;
- default:
- break;
+ scr = 4096.0f -
+ calculated_data_array[i].aim_position.DistTo(
+ g_pLocalPlayer->v_Eye);
+ }
+ else
+ {
+ switch ((int) priority_mode)
+ {
+ case 0: // Smart Priority
+ scr = GetScoreForEntity(ent);
+ break;
+ case 1: // Fov Priority
+ scr = 360.0f - calculated_data_array[ent->m_IDX].fov;
+ break;
+ case 3: // Health Priority
+ scr = 450.0f - ent->m_iHealth();
+ break;
+ default:
+ break;
+ }
+ }
+ // Compare the top score to our current ents score
+ if (scr > target_highest_score)
+ {
+ foundTarget = true;
+ target_highest_score = scr;
+ target_highest_ent = ent;
}
- }
- // Compare the top score to our current ents score
- if (scr > target_highest_score)
- {
- foundTarget = true;
- target_highest_score = scr;
- target_highest_ent = ent;
}
}
}
+ else if (hacks::shared::backtrack::iBestTarget != -1)
+ {
+ target_highest_ent = ENTITY(hacks::shared::backtrack::iBestTarget);
+ foundTarget = true;
+ }
+
// Save the ent for future use with target lock
target_last = target_highest_ent;
@@ -471,6 +428,9 @@ bool IsTargetStateGood(CachedEntity *entity)
{
PROF_SECTION(PT_aimbot_targetstatecheck);
+ if (hacks::shared::backtrack::isBacktrackEnabled &&
+ entity->m_Type() != ENTITY_PLAYER)
+ return false;
// Checks for Players
if (entity->m_Type() == ENTITY_PLAYER)
{
@@ -584,7 +544,7 @@ bool IsTargetStateGood(CachedEntity *entity)
// Vis check + fov check
if (!VischeckPredictedEntity(entity))
return false;
- if ((float) fov > 0.0f && cd.fov > (float) fov)
+ if (*fov > 0.0f && cd.fov > *fov)
return false;
return true;
@@ -633,7 +593,7 @@ bool IsTargetStateGood(CachedEntity *entity)
// Vis and fov checks
if (!VischeckPredictedEntity(entity))
return false;
- if ((float) fov > 0.0f && cd.fov > (float) fov)
+ if (*fov > 0.0f && cd.fov > *fov)
return false;
return true;
@@ -677,7 +637,7 @@ bool IsTargetStateGood(CachedEntity *entity)
// Vis and fov check
if (!VischeckPredictedEntity(entity))
return false;
- if ((float) fov > 0.0f && cd.fov > (float) fov)
+ if (*fov > 0.0f && cd.fov > *fov)
return false;
return true;
@@ -715,17 +675,35 @@ void Aim(CachedEntity *entity)
// Get hitbox num
AimbotCalculatedData_s &cd = calculated_data_array[entity->m_IDX];
float minx, maxx, miny, maxy, minz, maxz, centerx, centery, centerz;
- auto hitbox = entity->hitboxes.GetHitbox(cd.hitbox);
+ auto hitboxmin = entity->hitboxes.GetHitbox(cd.hitbox)->min;
+ auto hitboxmax = entity->hitboxes.GetHitbox(cd.hitbox)->max;
+ auto hitboxcenter = entity->hitboxes.GetHitbox(cd.hitbox)->center;
+ if (hacks::shared::backtrack::isBacktrackEnabled)
+ {
+ hitboxcenter =
+ hacks::shared::backtrack::headPositions
+ [entity->m_IDX][hacks::shared::backtrack::BestTick]
+ .hitboxes[cd.hitbox]
+ .center;
+ hitboxmin = hacks::shared::backtrack::headPositions
+ [entity->m_IDX][hacks::shared::backtrack::BestTick]
+ .hitboxes[cd.hitbox]
+ .min;
+ hitboxmax = hacks::shared::backtrack::headPositions
+ [entity->m_IDX][hacks::shared::backtrack::BestTick]
+ .hitboxes[cd.hitbox]
+ .max;
+ }
// get positions
- minx = hitbox->min.x;
- miny = hitbox->min.y;
- maxx = hitbox->max.x;
- maxy = hitbox->max.y;
- minz = hitbox->min.z;
- maxz = hitbox->max.z;
- centerx = hitbox->center.x;
- centery = hitbox->center.y;
- centerz = hitbox->center.z;
+ minx = hitboxmin.x;
+ miny = hitboxmin.y;
+ maxx = hitboxmax.x;
+ maxy = hitboxmax.y;
+ minz = hitboxmin.z;
+ maxz = hitboxmax.z;
+ centerx = hitboxcenter.x;
+ centery = hitboxcenter.y;
+ centerz = hitboxcenter.z;
// Shrink positions
std::vector positions;
@@ -749,7 +727,7 @@ void Aim(CachedEntity *entity)
positions.push_back({ maxx, maxy, centerz });
positions.push_back({ minx, miny, centerz });
positions.push_back({ maxx, maxy, centerz });
- positions.push_back(hitbox->center);
+ positions.push_back(hitboxcenter);
for (auto pos : positions)
if (IsVectorVisible(g_pLocalPlayer->v_Eye, pos))
{
@@ -771,7 +749,15 @@ void Aim(CachedEntity *entity)
if (silent && !slow_aim)
g_pLocalPlayer->bUseSilentAngles = true;
-
+ if (hacks::shared::backtrack::isBacktrackEnabled)
+ {
+ auto i = hacks::shared::backtrack::headPositions
+ [hacks::shared::backtrack::iBestTarget]
+ [hacks::shared::backtrack::BestTick];
+ current_user_cmd->tick_count = i.tickcount;
+ float &simtime = NET_FLOAT(RAW_ENT(entity), netvar.m_flSimulationTime);
+ simtime = i.simtime;
+ }
// Finish function
return;
}
@@ -888,45 +874,64 @@ const Vector &PredictEntity(CachedEntity *entity)
if (cd.predict_tick == tickcount)
return result;
- // Players
- if ((entity->m_Type() == ENTITY_PLAYER))
+ if (!hacks::shared::backtrack::isBacktrackEnabled || projectile_mode)
{
- // If using projectiles, predict a vector
- if (projectileAimbotRequired)
+
+ // Players
+ if ((entity->m_Type() == ENTITY_PLAYER))
{
- // Use prediction engine if user settings allow
- if (engine_projpred)
- result = ProjectilePrediction_Engine(
- entity, cd.hitbox, cur_proj_speed, cur_proj_grav, 0);
+ // If using projectiles, predict a vector
+ if (projectileAimbotRequired)
+ {
+ // Use prediction engine if user settings allow
+ if (engine_projpred)
+ result = ProjectilePrediction_Engine(
+ entity, cd.hitbox, cur_proj_speed, cur_proj_grav, 0);
+ else
+ result = ProjectilePrediction(entity, cd.hitbox,
+ cur_proj_speed, cur_proj_grav,
+ PlayerGravityMod(entity));
+ }
else
- result = ProjectilePrediction(entity, cd.hitbox, cur_proj_speed,
- cur_proj_grav,
- PlayerGravityMod(entity));
+ {
+ // If using extrapolation, then predict a vector
+ if (extrapolate)
+ result = SimpleLatencyPrediction(entity, cd.hitbox);
+ // else just grab strait from the hitbox
+ else
+ GetHitbox(entity, cd.hitbox, result);
+ }
+ // Buildings
+ }
+ else if (entity->m_Type() == ENTITY_BUILDING)
+ {
+ result = GetBuildingPosition(entity);
+ // Other
}
else
{
- // If using extrapolation, then predict a vector
- if (extrapolate)
- result = SimpleLatencyPrediction(entity, cd.hitbox);
- // else just grab strait from the hitbox
- else
- GetHitbox(entity, cd.hitbox, result);
+ result = entity->m_vecOrigin();
}
- // Buildings
- }
- else if (entity->m_Type() == ENTITY_BUILDING)
- {
- result = GetBuildingPosition(entity);
- // Other
+
+ cd.predict_tick = tickcount;
+
+ cd.fov = GetFov(g_pLocalPlayer->v_OrigViewangles, g_pLocalPlayer->v_Eye,
+ result);
}
else
{
- result = entity->m_vecOrigin();
+ // Players only
+ if ((entity->m_Type() == ENTITY_PLAYER))
+ {
+ auto hb = hacks::shared::backtrack::headPositions
+ [entity->m_IDX]
+ [hacks::shared::backtrack::BestTick];
+ cd.predict_tick = tickcount;
+ result = hb.hitboxes[cd.hitbox].center;
+ cd.fov = GetFov(g_pLocalPlayer->v_OrigViewangles,
+ g_pLocalPlayer->v_Eye, result);
+ }
}
-
- cd.predict_tick = tickcount;
- cd.fov =
- GetFov(g_pLocalPlayer->v_OrigViewangles, g_pLocalPlayer->v_Eye, result);
// Return the found vector
return result;
}
@@ -1114,7 +1119,16 @@ bool VischeckPredictedEntity(CachedEntity *entity)
// Update info
cd.vcheck_tick = tickcount;
- cd.visible = IsEntityVectorVisible(entity, PredictEntity(entity));
+ if (!hacks::shared::backtrack::isBacktrackEnabled || projectile_mode)
+ cd.visible = IsEntityVectorVisible(entity, PredictEntity(entity));
+ else
+ cd.visible = IsVectorVisible(
+ g_pLocalPlayer->v_Eye,
+ hacks::shared::backtrack::headPositions
+ [entity->m_IDX][hacks::shared::backtrack::BestTick]
+ .hitboxes[cd.hitbox]
+ .center,
+ true);
return cd.visible;
}
diff --git a/src/hacks/Announcer.cpp b/src/hacks/Announcer.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AntiAim.cpp b/src/hacks/AntiAim.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AntiAntiAim.cpp b/src/hacks/AntiAntiAim.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AntiBackstab.cpp b/src/hacks/AntiBackstab.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AntiCheat.cpp b/src/hacks/AntiCheat.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AntiDisguise.cpp b/src/hacks/AntiDisguise.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoBackstab.cpp b/src/hacks/AutoBackstab.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoDeadringer.cpp b/src/hacks/AutoDeadringer.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoDetonator.cpp b/src/hacks/AutoDetonator.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoEquip.cpp b/src/hacks/AutoEquip.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoHeal.cpp b/src/hacks/AutoHeal.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoJoin.cpp b/src/hacks/AutoJoin.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoReflect.cpp b/src/hacks/AutoReflect.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoSticky.cpp b/src/hacks/AutoSticky.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/AutoTaunt.cpp b/src/hacks/AutoTaunt.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Backtrack.cpp b/src/hacks/Backtrack.cpp
old mode 100644
new mode 100755
index 301fefc6..69eab930
--- a/src/hacks/Backtrack.cpp
+++ b/src/hacks/Backtrack.cpp
@@ -73,6 +73,8 @@ void Init()
int BestTick = 0;
int iBestTarget = -1;
+bool istickvalid[32][66]{};
+bool istickinvalid[32][66]{};
void Run()
{
if (!shouldBacktrack())
@@ -85,6 +87,12 @@ void Run()
if (CE_BAD(LOCAL_E))
return;
+ for (auto &a : istickvalid)
+ for (auto &b : a)
+ b = false;
+ for (auto &a : istickinvalid)
+ for (auto &b : a)
+ b = false;
CUserCmd *cmd = current_user_cmd;
float bestFov = 99999;
@@ -125,7 +133,7 @@ void Run()
auto hdr = g_IModelInfo->GetStudiomodel(RAW_ENT(pEntity)->GetModel());
headPositions[i][cmd->command_number % getTicks()] =
BacktrackData{ cmd->tick_count, hbdArray, viewangles, simtime,
- ent_orig };
+ ent_orig, cmd->command_number % getTicks() };
}
if (iBestTarget != -1 && CanShoot())
{
@@ -246,8 +254,19 @@ int getTicks()
bool ValidTick(BacktrackData &i, CachedEntity *ent)
{
- return fabsf(NET_FLOAT(RAW_ENT(ent), netvar.m_flSimulationTime) * 1000.0f -
- getLatency() - i.simtime * 1000.0f) < 200.0f;
+ if (istickvalid[ent->m_IDX][i.index])
+ return true;
+ if (istickinvalid[ent->m_IDX][i.index])
+ return false;
+ if (IsVectorVisible(g_pLocalPlayer->v_Eye, i.hitboxes[head].center, true))
+ if (fabsf(NET_FLOAT(RAW_ENT(ent), netvar.m_flSimulationTime) * 1000.0f -
+ getLatency() - i.simtime * 1000.0f) < 200.0f)
+ {
+ istickvalid[ent->m_IDX][i.index] = true;
+ return true;
+ }
+ istickinvalid[ent->m_IDX][i.index] = true;
+ return false;
}
void EmptyBacktrackData(BacktrackData &i)
diff --git a/src/hacks/Bunnyhop.cpp b/src/hacks/Bunnyhop.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/CMakeLists.txt b/src/hacks/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/hacks/CatBot.cpp b/src/hacks/CatBot.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/ESP.cpp b/src/hacks/ESP.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/FollowBot.cpp b/src/hacks/FollowBot.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/KillSay.cpp b/src/hacks/KillSay.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Killstreak.cpp b/src/hacks/Killstreak.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/LightESP.cpp b/src/hacks/LightESP.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Misc.cpp b/src/hacks/Misc.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Radar.cpp b/src/hacks/Radar.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/SeedPrediction.cpp b/src/hacks/SeedPrediction.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/SkinChanger.cpp b/src/hacks/SkinChanger.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Spam.cpp b/src/hacks/Spam.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/SpyAlert.cpp b/src/hacks/SpyAlert.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Thirdperson.cpp b/src/hacks/Thirdperson.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Trigger.cpp b/src/hacks/Trigger.cpp
old mode 100644
new mode 100755
index 656da912..9ba10f8f
--- a/src/hacks/Trigger.cpp
+++ b/src/hacks/Trigger.cpp
@@ -45,7 +45,9 @@ int last_hb_traced = 0;
Vector forward;
bool CanBacktrack()
{
- CachedEntity *tar = ENTITY(hacks::shared::backtrack::iBestTarget);
+ CachedEntity *tar = (hacks::shared::backtrack::iBestTarget != -1)
+ ? ENTITY(hacks::shared::backtrack::iBestTarget)
+ : nullptr;
if (CE_BAD(tar))
return false;
for (auto i : hacks::shared::backtrack::headPositions[tar->m_IDX])
diff --git a/src/hacks/UberSpam.cpp b/src/hacks/UberSpam.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/Walkbot.cpp b/src/hacks/Walkbot.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/ac/CMakeLists.txt b/src/hacks/ac/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/hacks/ac/aimbot.cpp b/src/hacks/ac/aimbot.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/ac/antiaim.cpp b/src/hacks/ac/antiaim.cpp
old mode 100644
new mode 100755
diff --git a/src/hacks/ac/bhop.cpp b/src/hacks/ac/bhop.cpp
old mode 100644
new mode 100755
diff --git a/src/helpers.cpp b/src/helpers.cpp
old mode 100644
new mode 100755
diff --git a/src/hitrate.cpp b/src/hitrate.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks.cpp b/src/hooks.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/CMakeLists.txt b/src/hooks/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/hooks/CanPacket.cpp b/src/hooks/CanPacket.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/CreateMove.cpp b/src/hooks/CreateMove.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/DispatchUserMessage.cpp b/src/hooks/DispatchUserMessage.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/FireEvent.cpp b/src/hooks/FireEvent.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/FireEventClientSide.cpp b/src/hooks/FireEventClientSide.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/FireGameEvent.cpp b/src/hooks/FireGameEvent.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/GetFriendPersonaName.cpp b/src/hooks/GetFriendPersonaName.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/GetUserCmd.cpp b/src/hooks/GetUserCmd.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/IsPlayingTimeDemo.cpp b/src/hooks/IsPlayingTimeDemo.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/LevelInit.cpp b/src/hooks/LevelInit.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/LevelShutdown.cpp b/src/hooks/LevelShutdown.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/Paint.cpp b/src/hooks/Paint.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/PreDataUpdate.cpp b/src/hooks/PreDataUpdate.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/SendDatagram.cpp b/src/hooks/SendDatagram.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/SendNetMsg.cpp b/src/hooks/SendNetMsg.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/Shutdown.cpp b/src/hooks/Shutdown.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/others.cpp b/src/hooks/others.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/BeginFrame.cpp b/src/hooks/visual/BeginFrame.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/CMakeLists.txt b/src/hooks/visual/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/DrawModelExecute.cpp b/src/hooks/visual/DrawModelExecute.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/FrameStageNotify.cpp b/src/hooks/visual/FrameStageNotify.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/IN_KeyEvent.cpp b/src/hooks/visual/IN_KeyEvent.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/OverrideView.cpp b/src/hooks/visual/OverrideView.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/PaintTraverse.cpp b/src/hooks/visual/PaintTraverse.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/RandomInt.cpp b/src/hooks/visual/RandomInt.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/SDL_GL_SwapWindow.cpp b/src/hooks/visual/SDL_GL_SwapWindow.cpp
old mode 100644
new mode 100755
diff --git a/src/hooks/visual/SDL_PollEvent.cpp b/src/hooks/visual/SDL_PollEvent.cpp
old mode 100644
new mode 100755
diff --git a/src/ipc.cpp b/src/ipc.cpp
old mode 100644
new mode 100755
diff --git a/src/localplayer.cpp b/src/localplayer.cpp
old mode 100644
new mode 100755
diff --git a/src/navparser.cpp b/src/navparser.cpp
new file mode 100755
index 00000000..599ded82
--- /dev/null
+++ b/src/navparser.cpp
@@ -0,0 +1,61 @@
+#include "common.hpp"
+namespace nav {
+ CNavFile navfile(0);
+ CNavArea LocalNav;
+ std::vector areas;
+ std::vector SniperAreas;
+ void Init(const char *lvlname)
+ {
+ for (auto &it : areas)
+ it = {};
+ navfile = CNavFile(lvlname);
+ if (!navfile.m_isOK)
+ logging::Info("Invalid Nav File");
+ else
+ {
+ for (int i = 0; i < navfile.m_areas.size() - 1 + 100; i++)
+ areas.push_back({});
+ for (auto area : navfile.m_areas)
+ {
+ nav::singleNode node;
+ node.pos = area.m_center;
+ node.id = area.m_id;
+ areas[node.id] = &node;
+ if (area.m_hidingSpots.size())
+ SniperAreas.push_back(area);
+
+ }
+ for (auto area : navfile.m_areas)
+ {
+ for (auto node : areas)
+ {
+ if (area.m_id != node->id)
+ continue;
+ for (auto connect : area.m_connections)
+ node->addChildren(areas[connect.area->m_id]);
+ }
+ }
+ }
+ }
+ Timer cd{};
+ void CreateMove()
+ {
+ if (navfile.m_isOK)
+ {
+ if (cd.test_and_set(300)) {
+ for (auto i : navfile.m_areas) {
+ Vector vec = LOCAL_E->m_vecOrigin();
+ if (i.Contains(vec)) {
+ LocalNav = i;
+ break;
+ }
+ }
+ }
+ if (SniperAreas.size()) {
+ auto res = areas[LocalNav.m_id]->FindPath(areas[SniperAreas[0].m_id]);
+ for (auto r : res)
+ logging::Info("%f, %f, %f", r->pos.x, r->pos.y, r->pos.z);
+ }
+ }
+ }
+}
diff --git a/src/online/CMakeLists.txt b/src/online/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/online/Online.cpp b/src/online/Online.cpp
old mode 100644
new mode 100755
diff --git a/src/pathfinder.cpp b/src/pathfinder.cpp
old mode 100644
new mode 100755
index a544d620..6fbc49de
--- a/src/pathfinder.cpp
+++ b/src/pathfinder.cpp
@@ -1,5 +1,4 @@
#include "common.hpp"
-#include "external/TF2_NavFile_Reader/CNavFile.h"
#include "external/PathFinder/src/PathFinder.h"
#include "external/PathFinder/src/AStar.h"
diff --git a/src/playerlist.cpp b/src/playerlist.cpp
old mode 100644
new mode 100755
diff --git a/src/prediction.cpp b/src/prediction.cpp
old mode 100644
new mode 100755
diff --git a/src/reclasses/CMakeLists.txt b/src/reclasses/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/reclasses/CTFGCClientSystem.cpp b/src/reclasses/CTFGCClientSystem.cpp
old mode 100644
new mode 100755
diff --git a/src/reclasses/CTFInventoryManager.cpp b/src/reclasses/CTFInventoryManager.cpp
old mode 100644
new mode 100755
diff --git a/src/reclasses/CTFPartyClient.cpp b/src/reclasses/CTFPartyClient.cpp
old mode 100644
new mode 100755
diff --git a/src/reclasses/C_MannVsMachineStats.cpp b/src/reclasses/C_MannVsMachineStats.cpp
old mode 100644
new mode 100755
diff --git a/src/reclasses/C_TEFireBullets.cpp b/src/reclasses/C_TEFireBullets.cpp
old mode 100644
new mode 100755
diff --git a/src/sdk/CMakeLists.txt b/src/sdk/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/sdk/UtlString.cpp b/src/sdk/UtlString.cpp
old mode 100644
new mode 100755
diff --git a/src/sdk/netmessage.cpp b/src/sdk/netmessage.cpp
old mode 100644
new mode 100755
diff --git a/src/settings/CMakeLists.txt b/src/settings/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/settings/Manager.cpp b/src/settings/Manager.cpp
old mode 100644
new mode 100755
diff --git a/src/settings/Registered.cpp b/src/settings/Registered.cpp
old mode 100644
new mode 100755
diff --git a/src/settings/SettingCommands.cpp b/src/settings/SettingCommands.cpp
old mode 100644
new mode 100755
diff --git a/src/settings/Settings.cpp b/src/settings/Settings.cpp
old mode 100644
new mode 100755
diff --git a/src/settings/SettingsIO.cpp b/src/settings/SettingsIO.cpp
old mode 100644
new mode 100755
diff --git a/src/targethelper.cpp b/src/targethelper.cpp
old mode 100644
new mode 100755
diff --git a/src/textmode.cpp b/src/textmode.cpp
old mode 100644
new mode 100755
diff --git a/src/tfmm.cpp b/src/tfmm.cpp
old mode 100644
new mode 100755
diff --git a/src/trace.cpp b/src/trace.cpp
old mode 100644
new mode 100755
diff --git a/src/velocity.cpp b/src/velocity.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/CMakeLists.txt b/src/visual/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/visual/EffectChams.cpp b/src/visual/EffectChams.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/EffectGlow.cpp b/src/visual/EffectGlow.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/EventLogging.cpp b/src/visual/EventLogging.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/SDLHooks.cpp b/src/visual/SDLHooks.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/atlas.cpp b/src/visual/atlas.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/colors.cpp b/src/visual/colors.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/drawing.cpp b/src/visual/drawing.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/drawmgr.cpp b/src/visual/drawmgr.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/fidgetspinner.cpp b/src/visual/fidgetspinner.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/CMakeLists.txt b/src/visual/menu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/visual/menu/GuiInterface.cpp b/src/visual/menu/GuiInterface.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/BaseMenuObject.cpp b/src/visual/menu/menu/BaseMenuObject.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/BoundingBox.cpp b/src/visual/menu/menu/BoundingBox.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/CMakeLists.txt b/src/visual/menu/menu/CMakeLists.txt
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/Debug.cpp b/src/visual/menu/menu/Debug.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/KeyValue.cpp b/src/visual/menu/menu/KeyValue.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/Menu.cpp b/src/visual/menu/menu/Menu.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/Message.cpp b/src/visual/menu/menu/Message.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/ModalBehavior.cpp b/src/visual/menu/menu/ModalBehavior.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/ObjectFactory.cpp b/src/visual/menu/menu/ObjectFactory.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/Text.cpp b/src/visual/menu/menu/Text.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/Utility.cpp b/src/visual/menu/menu/Utility.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/Option.cpp b/src/visual/menu/menu/objects/Option.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/TabButton.cpp b/src/visual/menu/menu/objects/TabButton.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/Tooltip.cpp b/src/visual/menu/menu/objects/Tooltip.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/Box.cpp b/src/visual/menu/menu/objects/container/Box.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/Container.cpp b/src/visual/menu/menu/objects/container/Container.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/LabeledObject.cpp b/src/visual/menu/menu/objects/container/LabeledObject.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/List.cpp b/src/visual/menu/menu/objects/container/List.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/ModalColorSelect.cpp b/src/visual/menu/menu/objects/container/ModalColorSelect.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/ModalContainer.cpp b/src/visual/menu/menu/objects/container/ModalContainer.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/ModalSelect.cpp b/src/visual/menu/menu/objects/container/ModalSelect.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/ScrollableList.cpp b/src/visual/menu/menu/objects/container/ScrollableList.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/TData.cpp b/src/visual/menu/menu/objects/container/TData.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/TRow.cpp b/src/visual/menu/menu/objects/container/TRow.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/TabContainer.cpp b/src/visual/menu/menu/objects/container/TabContainer.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/TabSelection.cpp b/src/visual/menu/menu/objects/container/TabSelection.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/container/Table.cpp b/src/visual/menu/menu/objects/container/Table.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/Checkbox.cpp b/src/visual/menu/menu/objects/input/Checkbox.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/ColorSelector.cpp b/src/visual/menu/menu/objects/input/ColorSelector.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/InputKey.cpp b/src/visual/menu/menu/objects/input/InputKey.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/Select.cpp b/src/visual/menu/menu/objects/input/Select.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/Slider.cpp b/src/visual/menu/menu/objects/input/Slider.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/Spinner.cpp b/src/visual/menu/menu/objects/input/Spinner.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/StringInput.cpp b/src/visual/menu/menu/objects/input/StringInput.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/objects/input/TextInput.cpp b/src/visual/menu/menu/objects/input/TextInput.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/special/ModalFactory.cpp b/src/visual/menu/menu/special/ModalFactory.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/special/PlayerListController.cpp b/src/visual/menu/menu/special/PlayerListController.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/special/SettingsManagerList.cpp b/src/visual/menu/menu/special/SettingsManagerList.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/special/TreeListBaseEntry.cpp b/src/visual/menu/menu/special/TreeListBaseEntry.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/special/TreeListCollapsible.cpp b/src/visual/menu/menu/special/TreeListCollapsible.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/special/VariableListEntry.cpp b/src/visual/menu/menu/special/VariableListEntry.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/tinyxml2.cpp b/src/visual/menu/menu/tinyxml2.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/Task.cpp b/src/visual/menu/menu/wm/Task.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/TaskBar.cpp b/src/visual/menu/menu/wm/TaskBar.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/WMWindow.cpp b/src/visual/menu/menu/wm/WMWindow.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/WindowCloseButton.cpp b/src/visual/menu/menu/wm/WindowCloseButton.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/WindowContainer.cpp b/src/visual/menu/menu/wm/WindowContainer.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/WindowHeader.cpp b/src/visual/menu/menu/wm/WindowHeader.cpp
old mode 100644
new mode 100755
diff --git a/src/visual/menu/menu/wm/WindowManager.cpp b/src/visual/menu/menu/wm/WindowManager.cpp
old mode 100644
new mode 100755
diff --git a/src/votelogger.cpp b/src/votelogger.cpp
old mode 100644
new mode 100755